Přechod z Pascalu do C++ Hodně lidí, zabývajících se programováním v Pascalu, se snaží přejí do C++. Samozřejmě jsou tu i zapřísáhlí odpůrci C, kteří u Pascalu zůstanou na věky věků. To je jejich problém. Tento článek je určen pro vás inteligentnější. Jak jste si jistě všimli, Pascal a C++ jsou si hodně podobný (podobné, podobná) a to proto, že mají stejné předchůdce. Avšak jsou tu značné rozdíly. Céčko je mnohem chaotičtější, dají se v něm dělat větší prasárny a programátora méně kontroluje. A teď popíšu základní rozdíly. 1.)CASE SENSITIVE Céčko je CASE SENSITIVE => rozlišuje malá a velká písmena, takže proměnná a je různá od proměnné A. Je nepsaná dohoda, že fce. se značí malými písmeny a makra velkými. 2.)Hlavní program a podprogramy V Pascalu se program vymezuje pomocí slůvek BEGIN a END. V Céčku se s těmito slovy nesetkáte. Používají se místo nich složené závorky (je to kratší). Hlavní program v Céčku zastupuje fce. main s nepovinnými parametry main(int argc, char ** argv), kde argc je počet parametrů a argv je pole ukazatelů na ukazatele, kde jsou tyto parametry uloženy (tyto proměnné se samozřejmě mohou jmenovat i jinak).Tyto parametry zastupují Paskalské fce. ParamCount a ParamStr. 3.)Operátory V pascalu se proměnným přiřazuje hodnota operátorem := v C++ je to pouze =, Pascalským operátorům =, <> odpovídají v C ==, !=. V C se ! používá pro negaci (jako not v Pascalu). Logický AND je && a binární &. Místo mod se používá %. 4.)Typy Předkládám vám tabulku typů. Poslední sloupec ukazuje ekvivalent v Pascalu Typ |Velik. | Rozsah |Ekvivalent -------------+-------+------------------------------------+--------- unsigned char| 8 bitů| 0..255 |Byte,Char char | 8 bitů| -128..127 |Shortint enum |16 bitů| -32,768..32,767 |Integer unsigned int |16 bitů| 0..65,535 |Word short int |16 bitů| -32,768..32,767 |Integer int |16 bitů| -32,768..32,767 |Integer unsigned long|32 bitů| 0..4,294,967,295 | long |32 bitů| -2,147,483,648..2,147,483,647 |Longint float |32 bitů| 3.4 * (10**-38)..3.4 * (10**+38) |Real double |64 bitů| 1.7 * (10**-308)..1.7 * (10**+308) |double long double |80 bitů|3.4 * (10**-4932)..1.1 * (10**+4932)|extended C++ neobsahuje typ boolean, příkazy typu IF vyhodnocují je-li výraz nulový či ne. 5.)Příkazy Klasické příkazy jako FOR, WHILE, IF.. byly zjednodušeny a zkráceny. Koukněte se do helpu nebudu to kvůli vám opisovat. 6.)Pole a String V Céčku se pole deklaruje takto: typ jmeno[delka], přičemž délka určuje počet proměnných pole včetně nultého. Takže pole char pole[10] bude obsahovat prvky pole[0]..pole[9]. Céčko nezná typ string, takže si ho musíte deklarovat jako pole charů. Se stringy neumí pracovat přes operátory, ale jen přes fce. knihovny STRING.H. Se stringy se obvykle pracuje pomocí ukazatelů (pointerů). 7.)Procedury a funkce C nezná procedury, má jen fce. které nevracejí hodnotu (vracejí proměnnou typu void.) 8.)Makra V C je dobrá pomůcka pro programátora. jsou to tzn. makra. Dají se využít místo konstant nebo fcí. Nadefinujete-li si např. makro #define DELKA 50 tak se při překladu místo všech slov DELKA napíše číslo 50. 9.)Poznámky Složené závorky ohraničují podprogram takže se poznámky značí dvojicemi znaků /* pro začátek a */ pro konec poznámky. Dvojice // značí poznámku do konce řádku. 10.)Ukazatele Deklarují se stejně jako normální proměnné jen s hvězdičkou před názvem (viz. argv v bodu 2.). Např. int * p,c; p je pointer na int. Z proměnné uděláte pointer operátorem &. Např. &c je pointer na proměnnou c. Z pointeru dostanete hodnotu předřazením operátoru *. Např. *p vrací hodnot uloženou na adrese p. A to je pro dnešek všechno, příště budu možná pokračovat se složitějšími věcmi. HIPP výheň