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ň