Programozás alapjai
A program építőelemei Szimbólumok (pl. :;<*>()=/ ) Fenntartott szavak (pl. begin, var, if, function) Azonosítók - programelem azonosítására használják Címkék Számkonstansok (pl 4,6,3) Szövegkonstansok (aposztróf közé zárt karakter(ek) ) Elválasztójelek (szóköz, megjegyzés)
Típusok csoportosítása A típus az objektumban tárolt érték értelmezését határozza meg. Skalár (egyszerű) típusok: shortint (8 bit) -128 … 127 Byte (8 bit) 0…255 Integer (16 bit) -32768…32767 Word (16 bit) 0…65535 Longint (32 bit) -2.147.483.648…2.147.483.647 Real (6 bájt) 2,9*10-39...1,7*1038 Single (4 bájt) 1.5*10-45...3,4*1038 Double (8 bájt) 5.0E-324 … 1.7E+308 Extended (10 bájt) 3.4E-4932 … 1.1E+4932 Boolean Char String Mutatók
Típusok csoportosítása Összetett típusok: Tömb típus (array) Rekord típus (record) Halmaz Állománytípus (file)
Tömbtípus Type azonosító=array[k1..k2] of típus Var a:azonosító
Algoritmusok felépítése Egy tetszőleges algoritmus felépíthető a következő elemekből: Szekvencia :egymás után végrehajtandó tevékenységek sorozata. Szelekció : választás megadott tevékenységek közül. Iteráció : megadott tevékenységek ismételt végrehajtása. Feltétel nélküli ugrás: vezérlés átadása a program egy megadott pontjára.
Strukturált program Szekvencia Szelekció Iteráció A strukturált programozásban ismeretlen a feltétel nélküli ugrás fogalma.
Szelekció If feltétel then parancs1; If feltétel then parancs1 else parancs2; Melyek a sűrűn előforduló hibák?
Szelekciók Többágú szelekció (CASE) CASE = ESET Case kifejezés of érték1: utasítás1; érték2: utasítás2; érték3: utasítás3; … else utasítás end; Hibalehetőségek?
Iteráció Melyek a sűrűn előforduló hibák? For számláló:=kezdőérték to végsőérték do parancs; Melyek a sűrűn előforduló hibák?
Iteráció Melyek a sűrűn előforduló hibák? While feltétel do Begin Parancsok; End; Melyek a sűrűn előforduló hibák?
Eljárások (procedure) Függvények (function) Változók típusai: - lokális - globális
Az objektum orientált programozás (OOP) Sokkal strukruráltabb modulárisabb, és absztraktabb mint a hagyományos programozási nyelv.
Az objektum orientált programozás (OOP) jellemzői Egységbezárás (encapsulation) Öröklés (inheritance) Sokalakúság (polymorphism)
Egységbezárás (encapsulation) Míg a hagyományos programozási nyelvek használata során az adatok csak másodlagos szerepet töltenek be a rajtuk elvégzendő műveletekkel (függvényekkel) szemben, addig az objektum-orientált nyelvben az adatokat (adattagok) és az adatokon elvégzendő műveleteket (tagfüggvények, metódus) egyenrangúan, zárt egységben kezeljük. Egység = Objektum
Osztály deklarálása Meg kell határozni az adat-mezőket és a tagfüggvényeket public: adatmezők private: adatmezők protected: adatmezők public: tagfüggvények private : tagfüggvények protected: tagfüggvények -az osztály minden egyes mezőjéhez való hozzáférés kézben tartható azáltal, hogy publikusnak (public), privátnak (private) vagy védettnek (proteceted) deklaráljuk
Hozzáférési szintek public: az így deklarált tag bárhonnan elérhető a programon belül, ahonnan maga az objektum elérhető. (Az adatrejtés elvének érvényesüléséhez ajánlott, hogy public eléréssel csak tagfüggvényeket deklaráljunk.) private: az ilyen tagokat csak az osztály saját tagfüggvényeiből, illetve az osztály „barátaiból” (friend) érhetjük el. A külső függvények és a származtatott osztályok tagfüggvényei (habár a private tagok is öröklődnek), nem rendelkeznek hozzáférési joggal a private osztálytagokhoz. protected: az ilyen tagok külső függvények számára private, de a származtatott osztályok tagfüggvényei számára public elérésűek. Az osztálytagok protected elérése az osztályhierarchia kialakításánál (öröklődésnél) játszik szerepet.
Öröklés (inheritance) A meglévő osztály(ok)ból kiindulva újabb osztályt építhetünk fel, amely örökli a felhasznált osztály(ok) adattagjait és tagfüggvényeit. Azt az osztályt, amelyből az új osztályt származtatjuk ős, vagy alap (base) osztálynak, míg az új osztályt származtatott (derived) osztálynak nevezzük. A multiple inheritance: az új osztály származtatása során több alaposztályból indulunk ki. A származtatott osztály örökli az alaposztály(ok) tulajdonságait (adattagjait, tagfüggvényeit), ezek azonban meg is változtathatók: - új tagok hozzáadása, a tagfüggvények újradefiniá-lása, az örökölt tagok elérhetőségének megváltoztatása
Sokalakúság (polymorphism) az öröklés során a tulajdonságok egyre módosulhatnak, azaz például egy öröklött tagfüggvény neve nem változik egy leszármazottban, de esetleg már másképp viselkedik. Ezt a virtuális függvények teszik lehetővé. (virtual functions)
Konstruktor, destruktor Az objektumok inicializálását speciális tagfüggvények, a konstruktorok végzik. Destruktor Feladata: egy objektumpéldány megszüntetése