PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás...
Transcript of PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás...
![Page 1: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/1.jpg)
PROGRAMOZÁS III.11. évfolyamInformatikai rendszerüzemeltető2018.
Források: wikipedia.org, ikron.hu, szit.hu, progalap.elte.huAngster Erzsébet: Az objektumorientált tervezés és programozás alapjai
![Page 2: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/2.jpg)
2
PROGRAMOZÁS III.● Témakörök:
– Fejlesztői környezet, fordítás, forráskód– Programozás alapfogalmai, adattípusok, vezérlési szerkezetek– Programozási típusfeladatok, tételek– Dokumentálás– Haladó programozás– OOP fejlesztés (objektum orientált programozás)– SQL alapok
![Page 3: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/3.jpg)
3
PROGRAMOZÁS III.● ISMÉTLÉS
– Szoftverfejlesztés● Programnyelv: C# v. JAVA (Pascal, Fortran, C/CC++ ...stb.)● Szintaktika● Forráskód● Futtatható kód (bináris kód)
![Page 4: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/4.jpg)
4
PROGRAMOZÁS III.● ISMÉTLÉS
– Szoftverfejlesztés– IDE: integrált fejlesztői környezet → pl. Visual Studio
● Forráskód● Bináris állomány● „Köztes kód” → Objekt formátum… stb.
– Fordító (compiler)– Linker (szerkesztő) (bináris, futtatható állomány)
● Terjesztés (pl. github-ra)● Team Development (csapatban fejlesztés)● Verziókövetés (SVN)● Telepítőkészlet készítése
![Page 5: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/5.jpg)
5
PROGRAMOZÁS III.● ISMÉTLÉS
– Adattípusok● Változók
– Szöveges, string– Karakteres– Numerikus (egész, tört - lebegőpontos)– Dátum– Logikai
● Konstansok (állandók)– Szöveges, numerikus… stb.
![Page 6: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/6.jpg)
6
PROGRAMOZÁS III.● ISMÉTLÉS
– Adattípusok● Értékadás:
int x = 56;double f = 56.66;
![Page 7: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/7.jpg)
7
PROGRAMOZÁS III.● ISMÉTLÉS
– Vezérlési szerkezetek● A vezérlési szerkezetek elemei elemi utasításokból állnak, ill. ezek
kombinációja, amely a program vezérlési felépítését valósítja meg.● Alapvető vezérlési szerkezetek:
– Szekvencia– Elágazás– Ciklus (iteráció)
![Page 8: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/8.jpg)
8
PROGRAMOZÁS III.● ISMÉTLÉS
– Vezérlési szerkezetek● Szekvencia: Szekvenciának nevezzük egyes utasítások (vagy blokkkok)
egymás után történő végrehajtását. Rendkívül gyakran használt szerkezet, főleg az imperatív jellegű nyelvekben. Általában nem, vagy csak minimálisan kell jelezni. Jele az utasítások egymás mögé (alá) írása, vagy a ';', esetleg a ',' karakter lehet.
![Page 9: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/9.jpg)
9
PROGRAMOZÁS III.● ISMÉTLÉS
– Vezérlési szerkezetek● Elágazás: ha valamilyen feltételtől függően a programnak az adott
helyzetben mást és mást kell elvégeznie. A végrehajtható ágak száma akár több is lehet.
![Page 10: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/10.jpg)
10
PROGRAMOZÁS III.● ISMÉTLÉS
– Vezérlési szerkezetek● Ciklus (iteráció): ha egy programrész valamilyen feltételtől függően
többször egymás után hajtódik végre. A feltételt ciklusfeltételnek, a részt a ciklus magjának hívjuk.
![Page 11: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/11.jpg)
11
PROGRAMOZÁS III.● FÜGGVÉNYEK
– Függvény fogalma: a függvény és az eljárás egy nagyobb program forráskódjának része, amely egy adott feladatot hajt végre, a kód többi részétől viszonylag független egység, és többször felhasználható anélkül, hogy a program kódjának több példányban is tartalmaznia kellene. Hasonló fogalmat jelölnek a szubrutin, metódus, procedúra vagy alprogram nevek is.
![Page 12: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/12.jpg)
12
PROGRAMOZÁS III.● FÜGGVÉNYEK
– Függvény definiálása: a függvényt definiálni kell, hogy pontosan mit hajtson végre.
– Pl.:
Terulet(int a,b)
{int c;
c = a * b;
return c;
}
![Page 13: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/13.jpg)
13
PROGRAMOZÁS III.● FÜGGVÉNYEK
– Mi a különbség a függvény és az eljárás között?● Az eljárás a végrehajtása során keletkező új adatokat a program egy közös
tárhelyen helyezi el, amelyeket a program többi része az egyéb esetekben szokásos módon használ fel.
● A függvény egy visszatérési értéket ad vissza, nem a közös tárhelyen helyezi el az adatot.
![Page 14: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/14.jpg)
14
PROGRAMOZÁS III.● FÜGGVÉNYEK
– Mi a különbség a függvény és az eljárás között?● Példa:
– Eljárás:Terulet(a,b){
c = a*b;}
– Függvény:Terulet(a,b){
return a*b;}
![Page 15: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/15.jpg)
15
PROGRAMOZÁS III.● FÜGGVÉNYEK
– Paraméterek:● Függvényeknek, eljárásoknak lehet paramétere → ezeket át kell adni a
függvény részére, amivel dolgozni fog.● Pl.:
– Terulet(a,b)– Két paramétere van: a,b → ezeket használja fel a feldolgozás során. Ezek
a változók lokális változók!
![Page 16: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/16.jpg)
16
PROGRAMOZÁS III.● FÜGGVÉNYEK
– Hívása:● Függvényeket meg kell híni, hogy végrehajtódjanak.● Meghívás a függvény nevével és paramétereivel (ha van)
– Pl.:Terulet(3,4);Terulet(x,y);
![Page 17: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/17.jpg)
17
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Több csoportosítás létezik, a legfontosabbakat kiemelve:● Lineáris, vízesés módszer● Iteratív módszer● Agilis módszer (Scrum)
![Page 18: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/18.jpg)
18
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Lineáris, vízesés módszer: A módszertan lényege, hogy a fejlesztést több részfolyamatra bontják és minden fázist az előző jóváhagyása és befejezése után indítanak el. A folyamat kidolgozása előre meghatározott sorrendben történik, így nagy hangsúlyt kell fektetni a rendszer megtervezésére. Mivel a vízesés modell egy lineáris lépéssorozat, ezért a projektben bekövetkező visszalépés, javítás minden esetben határidőcsúszást és költségnövekedést jelent. A módszertan előnye, hogy nem csak szoftverfejlesztési, hanem termékfejlesztési területen is kiválóan alkalmazható magas fokú szabályozottsága révén. Egyszerű és könnyen menedzselhető felépítése miatt a kisebb és jól definiált projektekhez gyakran használják.
![Page 19: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/19.jpg)
19
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Lineáris, vízesés módszer:
![Page 20: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/20.jpg)
20
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Iteratív módszer: A határidők és a költségvetési határok betartását eredményezi a kiemelkedő színvonal megtartása mellett. Alapja az iteráció, melynek segítségével eltérő szakaszokban ugyanazon fejlesztési terület kidolgozását teszi lehetővé a precízebb végeredmény érdekében.
![Page 21: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/21.jpg)
21
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Iteratív módszer:
![Page 22: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/22.jpg)
22
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Agilis módszer (Scrum): Az agilis szoftverfejlesztés a gyors és rugalmas megoldásokat segíti elő. Multifunkcionális és önszervező csapatok együttműködésével fejlődik a szoftver a követelmények és megoldások összehangolásával.
A Scrum egy agilis szoftverfejlesztési módszertan, mely a csoporton belüli összetartásra összpontosít. A folyamatos szóbeli kommunikáció és személyes találkozók szervezésével hatékony módszert alkot a fejlesztési területen. A Scrum meghatározott szerepeket és tevékenységeket állít fel, mellyel lefedi az összes munkafolyamatot.
A módszertan alapvető elgondolása, hogy az ügyfél által a tervezési fázisban felállított követelmények a fejlesztés során megváltozhatnak. Ebben az esetben a fejlesztési csapat elsődleges feladata, hogy az új igényekhez a legrövidebb idő alatt alkalmazkodjanak és a kivitelezést az új szempontok szerint megvalósítsák.
![Page 23: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/23.jpg)
23
PROGRAMOZÁS III.● FEJLESZTÉSI MÓDSZEREK
– Agilis módszer (Scrum): A legtöbb agilis módszer lebontja a feladatot kisebb feladatokra. Egy fejlesztési ciklus (azaz iteráció vagy sprint) maximum 4 hétig tart. Ezt az időtartamot idődoboznak hívjuk. Minden iterációban lévő feladat elkészítése egy keresztfunkcionális fejlesztői csoport feladata, amely a tervezéstől, elemzéstől a programozáson át a tesztelésig és átvételi tesztig mindent elvégez. Az iteráció végén bemutatják az elkészült feladatokat a megrendelőnek. Így minimalizálhatóak a hosszú fejlesztésből fakadó kockázatok, és a projekt gyorsan alkalmazkodhat a változásokhoz. Az inkrementum talán nem alkalmas az értékesítésre önmagában, azonban cél, hogy minden fejlesztési ciklus végén potenciálisan szállítható termék készüljön el. A módszer ismétlődésen alapul (minden iterációban azonos szakaszokon megy végig a fejlesztőcsoport), és növekményes, mert mindig a már elkészült inkrementumot egészítik ki.
![Page 24: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/24.jpg)
24
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– A programozási tételek gyakran használt algoritmusokat takarnak. Ezeket az algoritmusokat általában tömbökön hajtjuk végre.
– Az adatok persze jöhetnek billentyűzetről, fájlból vagy adatbázisból is.– A tömbök indexelését 0-val kezdjük. Az értékadást egy darab
egyenlőségjel (=) jelenti, az egyenlőség vizsgálatot két egyenlőségjel (==) jelzi, a nem egyenlőt egy kisebb-mint és egy nagyobb-mint jel jelzi (<>).
● Lehetnek: halmazból halmaz v. halmazból egy elem
![Page 25: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/25.jpg)
25
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– ÖSSZEGZÉS:
osszeg = 0
ciklus i = 0 .. n -1
osszeg = osszeg + t[i]
ciklus vége
ki osszeg
![Page 26: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/26.jpg)
26
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– MEGSZÁMLÁLÁS: Adott feltételek alapján a tömb bizonyos elemeit megszámolom. Pl.: Megszámoljuk mennyi negatív szám van a tömbben
szamlalo = 0
ciklus i = 0 .. n - 1
ha t[i] < 0 akkor
szamlalo = szamlalo + 1
ha vége
ciklus vége
ki szamlalo
![Page 27: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/27.jpg)
27
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– ELDÖNTÉS: Szeretnénk tudni, hogy egy érték megtalálható-e egy tömbben.
van = 0
ciklus i = 0 .. n-1
ha tomb[i] = keresett_ertek akkor
van = 1
ha vége
ciklus vége
![Page 28: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/28.jpg)
28
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– KIVÁLASZTÁS: Az adott elem a tömb hányadik helyén van. A kiválasztás tételt akkor használjuk, ha tudjuk, hogy a keresett értéket tartalmazza a tömb.
i = 0
ciklus amíg tomb[i] <> ker
i = i + 1
ciklus vége
ki i + 1
![Page 29: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/29.jpg)
29
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– LINEÁRIS (szekvenciális) KERESÉS: Adott elem szerepel-e a tömbben és hányadik helyen.
ker = 30
i = 0
ciklus amíg i<n és t[i]<>ker
i = i + 1
ciklus vége
Ha i<n akkor
ki "Van ilyen"
ki: "Indexe: ", i
különben
ki: "A keresett érték nem található"
ha vége
![Page 30: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/30.jpg)
30
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– MÁSOLÁS: Egy sorozat elemet átmásolom egy másik sorozatba, miközben valamilyen átalakítást végzek az egyes elemeken.
ciklus i = 0 .. n
b[i] = művelet(a[i]) //valamilyen művelet a[i]-vel
ciklus vége
![Page 31: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/31.jpg)
31
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– KIVÁLOGATÁS: A tömb elemit egy másik tömbbe rakom, feltételhez kötve.
j = 0
ciklus i = 0 .. n - 1
ha a[i] < 5
b[j] = a[i]
j = j + 1
ha vége
ciklus vége
![Page 32: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/32.jpg)
32
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– SZÉTVÁLOGATÁS: Két tömbbe válogatjuk szét egy tömb elemeit. Pl.: adott „a” tömb,
amely egész számokat tartalmaz. A „b” és „c” tömb pedig üres. Az „a” elemeit „b” tömbbe rakjuk ha kisebbek 5-él, különben c-ben tároljuk. j = 0
k = 0
ciklus i = 0 .. n-1
ha a[i] < 5
b[j] = a[i]
j = j + 1
különben
c[k] = a[i]
k = k + 1
ha vége
ciklus vége
![Page 33: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/33.jpg)
33
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– METSZET: Két tömb azonos elemeinek kiválogatása
egy harmadik tömbbe. Adott A, B halmaz (tömb) és aközös elemeket szeretnénk C tömbbe elhelyezni: k = 0
ciklus i = 0 .. n-1
j = 0
ciklus amíg j<m és b[j]<>a[i]
j = j + 1
ciklus vége
ha j<m akkor
c[k] = a[i]
k = k + 1
ha vége
ciklus vége
![Page 34: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/34.jpg)
34
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– UNIÓ: A és B tömb minden elemét szeretnénk
C tömbbe tenni.: ciklus i = 0 .. n-1
c[i] = a[i]
ciklus vége
k = n
ciklus j = 0 .. m-1
i = 0
ciklus amíg i<n és b[j]<>a[i]
i = i + 1
ciklus vége
ha i>=n akkor
c[k] = b[j]
k = k + 1
ha vége
ciklus vége
![Page 35: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/35.jpg)
35
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– MAXIMUM kiválasztás: Keressük a tömb legnagyobb elemét.
max = t[0]
ciklus i = 1 .. n - 1
ha t[i]> max akkor
max = t[i]
ha vége
ciklus vége
ki max
![Page 36: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/36.jpg)
36
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– MINIMUM kiválasztás: Keressük a tömb legkisebb elemét.
min=t[0]
ciklus i = 1 .. n-1
ha t[i] < min
min = t[i]
ha vége
ciklus vége
ki min
![Page 37: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/37.jpg)
37
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– BUBORÉKOS rendezés: Feltételezzük, hogy az n a tömb elemeinek száma. A sorozat két első
elemét összehasonlítjuk, és ha fordított sorrendben vannak felcseréljük. Utána a másodikat és a harmadikat hasonlítom össze. Ha a nagyobb számokat a végén szeretném látni, akkor az első körben a legnagyobb szám tulajdonképpen a sor végére kerül. Ezért a következő körben azzal már nem foglalkozunk, ezért megyünk mindig a belső ciklusban csak i változó értékéig. A külső ciklus így megmutatja meddig kell mennünk. ciklus i = n-1 .. 1
ciklus j = 0 .. i
ha t[j] > t[j+1] akkor
b = t[j+1]
t[ j+1] = t[j]
t[ j] = b
ha vége
ciklus vége
ciklus vége
![Page 38: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/38.jpg)
38
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– MAXIMUMKIVÁLASZTÁSOS rendezés: Kiválasztjuk a legnagyobb elemet és
a tömb végére rakjuk. Például a tömb végétől kezdve feltételezem, hogy a legutolsó a legnagyobb. De nem magát a számot, hanem annak indexét jegyzem fel. Ezek után elölről kezdve átnézem, hogy a feltételezettnél nagyobb-e valamelyik. A végén mindenképpen cserélek. ciklus i := n .. 1
max := i
ciklus j := 1 .. i
ha t[j] > t[max] akkor max := j
ciklus vége
csere(t[i], t[max])
ciklus vége
![Page 39: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/39.jpg)
39
PROGRAMOZÁS III.●PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– MINIMUMKIVÁLASZTÁSOS rendezés: Megkeressük a legkisebbet és a tömb
elejére tesszük.ciklus i := 1 .. n-1
min := i
ciklus j := i+1 .. n
ha T[j] < T[min] akkor
min := j
Elágazás vége
ciklus vége
ha min <> i akkor
Csere(i,min)
Elágazás vége
ciklus vége
![Page 40: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/40.jpg)
40
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK– ÖSSZEFUTTATÁS (összefésülés): Itt is két tömb unóját szeretném megkapni, viszont a tömbök most rendezettek, és az unióképzés után
szeretném megtartani a rendezettséget.i := 0
j := 0
k := -1
ciklus amíg (i< n) és (j<m)
k := k + 1
ha a[i] < b[j] akkor
c[k] := a[i]
i := i + 1
ellenben
ha a[i] = b[j] akkor
c[k] := a[i]
i := i + 1
j := j + 1
ellenben
ha a[i]> b[j] akkor
c[k] := b[j]
j := j + 1
ha vége ciklus vége
ciklus amíg i < n
k := k + 1
c[k] := a[i]
i := i + 1
ciklus vége
ciklus amíg j < m
k := k + 1
c[k] := b[j]
j := j + 1
ciklus vége
![Page 41: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/41.jpg)
41
PROGRAMOZÁS III.● PROGRAMOZÁSI TÉTELEK, TÍPUSFELADATOK
– Programozási tételek alkalmazása:● Specifikáljuk a konkrét programozási feladatot● A specifikáció ismeretében eldöntjük, hogy az adott feladat programozási
tétellel megoldható-e● Ha megoldható, akkor a megfelelő kiválasztása● A tételben szereplő általános elemeket megfeleltetjük a konkrét feladat elemeivel● A behelyettesítés módszerével megoldjuk a feladatot
![Page 42: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/42.jpg)
42
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– Miért kell dokumentálni?● A program egy termék, és egy termékhez mindig tartozniuk kell különböző
leírásoknak.● Mire is lehet szükség egy program kapcsán? Először is egy leendő felhasználónak
el kell döntenie, hogy milyen programot, akar használni. Ha a programot megvette, akkor el szeretné helyezni a számítógépén, majd használni szeretné, és a felhasználásban segítséget vár.
● Nemcsak a felhasználónak van szüksége dokumentációra, hanem a fejlesztőnek, karbantartónak is (nem véletlenül adnak például háztartási készülékeinkhez műszaki leírást is).
● Milyen dokumentáció létezik akkor? Többféle? Igen!
![Page 43: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/43.jpg)
43
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– Dokumentációk fajtái?● Fejlesztői dokumentáció● Felhasználói dokumentáció● Programismertető● Installálási kézikönyv, operátori kézikönyv
![Page 44: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/44.jpg)
44
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– FEJLESZTŐI dokumentáció● Kinek szól? Fejlesztők● A fejlesztői dokumentációt használja az, akinek a programban hibát kell keresnie,
a hibát ki kell javítania, a programot hatékonyabbra kell írnia, át kell vinnie más gépre, át kell írnia más nyelvre, valamint tovább kell fejlesztenie.
![Page 45: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/45.jpg)
45
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– FEJLESZTŐI dokumentáció● Tartalma:
– specifikációk, követelményanalízis (korlátozások, pl. megkívánt hatékonysági jellemzők, alkalmazandó adatszerkezetek). A feladat és a megoldástól elvárt követelmények meghatározása. Ezt még a feladat kitűzője adta, vagy vele történt megbeszélés során pontosodott a megoldás első lépéseként;
– a futási környezet leírása: számítógép, operációs rendszer, memóriaméret, (speciális) perifériaigény, grafikus kártya… stb.
– fejlesztői környezet leírása: a választott programnyelv(ek), és verziószáma(i); eljáráskönyvtárak, unitok
– az algoritmusok és az adatok (típusok, osztályok, programkonstansok) leírása
![Page 46: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/46.jpg)
46
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– FEJLESZTŐI dokumentáció● Tartalma:
– kód, implementációs szabványok (ún. kódolási szabályok, egyéni konvenciók)– tesztesetek, azaz milyen (jellegzetes) bemeneti adatokra, milyen
eredménnyel „válaszol” a program– hatékonysági mérések (hatékonysági tesztesetek), megfontolások, javaslatok
az esetleges hatékonyabbra írásra– fejlesztési lehetőségek– a készítő adatai
![Page 47: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/47.jpg)
47
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– FEJLESZTŐI dokumentáció● A programkészítés közben keletkezhetnek olyan dokumentumok, amelyek az
elkészítést támogatják, majd lényegük később beépülhet a fejlesztői dokumentációba. Ezek a következők:
– Koncepcióterv: Feladata a probléma lehetséges megoldásainak bemutatása és értékelése. Felhasználásával a feladat kitűzője választhat megoldási lehetőségek között.
– Rendszerterv: Tartalmaznia kell a szükséges hardver-szoftver környezet leírását, amely meghatározza a rendszer használhatósági körét. Itt konkrét döntéseket kell megfogalmazni, következményeikkel, indoklásukkal együtt. Ez az a dokumentum, amelynek alapján a tényleges programozási munka elkezdődhet.
![Page 48: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/48.jpg)
48
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– FELHASZNÁLÓI dokumentáció● Kinek szól? felhasználó, az üzembe helyező, a betanító● Tartalma:
– a feladat – egy rövid összefoglaló leírás is kell az áttekintés miatt és egy részletes a pontos használathoz;
– a futási környezet leírása: számítógép, operációs rendszer, memóriaméret, perifériaigény, grafikus kártya
– a használat leírása – hogyan kell a programot betölteni/elindítani, milyen kérdéseket tesz fel, mik a lehetséges válaszok, mik a program egyes lépései, lehetőségei (nagyvonalú funkcionális leírás);
![Page 49: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/49.jpg)
49
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– FELHASZNÁLÓI dokumentáció● Tartalma:
– bemenő adatok, eredmények, szolgáltatások részletes leírása: mit, mikor, milyen sorrendben kell megadni (részletes funkcionális leírás);
– mintaalkalmazás – példafutás. A felhasználó – főleg a betanító – ennek alapján tudja előre – gép nélkül – „elképzelni” a programot;
– hibaüzenetek és a hibák lehetséges okai – mi a teendő valamely hibaüzenet láttán.
![Page 50: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/50.jpg)
50
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– PROGRAMISMERTETŐ● Kinek szó? vásárló, programkereső, felhasználó● A programismertető célja: leírás, a választás megkönnyítése.● Tartalma:
– a feladat rövid, szöveges leírása, áttekintési céllal;– a program tulajdonságainak rövid leírása.– minimális hardver és szoftver (operációs rendszer és az esetlegesen
megkívánt egyéb, a programmal együtt nem „szállított” szoftverkellékek, pl. driverek, dll-ek stb.) környezet.
![Page 51: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/51.jpg)
51
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– INSTALLÁLÁSI- OPERÁTORI kézikönyv● Kinek szó? Kezelő, üzemeltető● Nagyobb programok esetén külön installálási (üzembe helyezési) kézikönyvet
mellékelnek, máskor ez a felhasználói dokumentáció része.● Telepítési, üzemeltetési információkat tartalmazza, ha az a felhasználótól nem
várható el.
![Page 52: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/52.jpg)
52
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– A dokumentáció tulajdonságai● Szerkezet:
– ne legyen túl hosszú– ne legyen túl rövid– legyen világosan tagolt, és a tagolás segítse elő az egyes tudnivalók gyors
keresését– legyen tömör: az olvasója ne vesszen el a részletekben– legyen olvasható: a túlságos (és kizárólagos) formalizálás az érthetőség
rovására megy– legyen pontos: az olvasója minden kérdésére tartalmazza a választ
![Page 53: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/53.jpg)
53
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– A dokumentáció tulajdonságai● Forma:
– Tartalomjegyzék– Index
– Világos szerkezetű kell legyen: kitalálható mondanivalójú fejezetekre bontva. További stílusjegyek megegyeznek bármely szakmai kiadványéval.
![Page 54: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/54.jpg)
54
PROGRAMOZÁS III.● DOKUMENTÁLÁS
– A dokumentáció tulajdonságai● Stílus:
– felhasználói dokumentáció elsősorban részletes szöveges leírás, amely időnként lehet „szájbarágó” is. (Célszerű figyelembe venni a várható felhasználói kört a leírás részletességének, a szájbarágósság szintjének megtervezésénél. Például teljességgel fölösleges egy Windows környezetben futó program esetében az ablakkezelésről általánosságban szólni.)
– fejlesztői dokumentációban minden más szempontnál fontosabb a pontosság, emiatt ebben kerülhet elő a matematikai leírás, a formális specifikáció
– installálási, illetve az operátori kézikönyv elsősorban utasítások, teendők pontos felsorolása, utalva a lehetséges válaszok következményeire
![Page 55: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/55.jpg)
55
PROGRAMOZÁS III.● Haladó programozás
– Programozási módszerek:● Moduláris programozás● Struktúrált programozás● Objektumorientált programozás
![Page 56: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/56.jpg)
56
PROGRAMOZÁS III.● Haladó programozás
– Moduláris programozás:
● A modulokon belüli erős összetartás, a modulok között laza kapcsolat.● A modulok szintaktikailag jól elkülöníthetőek.● Modulok közötti kapcsolatok száma minél kevesebb.● Kicsi interfésze legyen a moduloknak.● Az interfész legyen egyértelmű és jól definiált.● Minél nagyobb része legyen zárt és sérthetetlen.
![Page 57: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/57.jpg)
57
PROGRAMOZÁS III.● Haladó programozás
– Struktúrált programozás:
● Program = adat + algoritmus.● Bármely algoritmus leírható az alábbi 3 vezérlési szerkezet véges sokszori
alkalmazásával:– szekvencia– szelekció– Iteráció
● A legkisebb modul az eljárás.
![Page 58: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/58.jpg)
58
PROGRAMOZÁS III.● Haladó programozás
– Struktúrált programozás:
● Az eljárások adatokon dolgoznak, a zártság érdekében megpróbáljuk a globális adatokat minimalizálni.
● A lokális adatok elvesznek az eljárásból való kilépéskor, ezért az ilyen zártság nem minden esetben megoldás.
![Page 59: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/59.jpg)
59
PROGRAMOZÁS III.● Haladó programozás
– Struktúrált programozás:
● Az eljárások adatokon dolgoznak, a zártság érdekében megpróbáljuk a globális adatokat minimalizálni.
● A lokális adatok elvesznek az eljárásból való kilépéskor, ezért az ilyen zártság nem minden esetben megoldás.
![Page 60: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/60.jpg)
60
PROGRAMOZÁS III.● Haladó programozás
– Objektum-orientált programozás (OOP):
● Objektumokra épülő programozás a valós világ modellezésére.– Osztályok → objektumok
![Page 61: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/61.jpg)
61
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Lényege:● A valóság pontosabb leírása, modellezése.● Objektumokra épül● Egységbe foglalják az adatokat és hozzájuk tartozó műveleteket
– Milyen programnyelv alkalmas erre?
![Page 62: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/62.jpg)
62
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Programnyelvek osztályozása:● Hagyományos: C, Pascal… stb.● OOP-t támogató nyelvek: Object Pascal, C++● Tisztán OOP nyelvek: JAVA, C#
![Page 63: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/63.jpg)
63
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Fogalmak:● Osztály:
– az adatformátum és az elérhető metódusok definíciója az adott típus vagy a típushoz tartozó objektumok számára. Az osztályok is tartalmazhatnak adattagokat és metódusokat, amelyek műveleteket végeznek az osztály adattagjain. Összetartozó adatok és függvények, eljárások egysége.
● Objektum, példány: az Osztály egy konkrét példánya
![Page 64: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/64.jpg)
64
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Fogalmak:● Osztálynak vannak tagjai, lehetnek:
– Tulajdonságai (attribútum, adat, mező)– Metódusai (művelet, eljárás)
● Öröklődés:– Egy osztályból újabb osztályt hozhatunk létre, ennek folyamatát nevezzük
öröklésnek. Az öröklés során az új osztály örökli az előző minden tagját, beleértve a mezőket és a metódusokat.
![Page 65: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/65.jpg)
65
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Fogalmak:● Többalakúság (polimorfizmus):
– A metódusok és a konstruktorok több alakban is meghívhatók, az egyes osztályok példányai másként viselkedhetnek egy adott helyzetben.
– a leszármazott osztály felülírja az ősosztályában meglévő viselkedést.
![Page 66: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/66.jpg)
66
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Fogalmak:● Virtuális metódus:
– Egy metódus akkor virtuális, ha az örökölt osztályokban felülírható. A programozási nyelvekben ezt az ősosztályban kell beállítani, általában a virtual kulcsszóval. A Java nyelvben nem szükséges ezt megtenni, mivel minden metódus alapértelmezettként felülírható, vagyis virtuális.
![Page 67: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/67.jpg)
67
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Fogalmak:● Elérés, láthatóság:
– Az osztály egyes tagjai (változók és metódusok) elérése változtatható: ● A public elérés, azt jelenti, hogy az adott tag más osztályokból is
elérhető.● A private elérés, azt jelenti, hogy más osztályokból nem érhető el a
tag, még az örökölés lévén létrejött osztályokban sem.● A protected elérés, az jelenti, hogy csak az örökölés során
létrehozott osztályokban érhető el.
![Page 68: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/68.jpg)
68
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Fogalmak:● Alapmetódusok:
– Konstruktor: az objektum létrehozásakor fut le, inicializálás– Destruktor: az objektum megszűnésekor fut le, memória
felszabadítás… stb.
![Page 69: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/69.jpg)
69
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Példa:
![Page 70: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/70.jpg)
70
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Osztálydiagram (UML diagram típusa):● Az osztálydiagram osztályokat és azok kapcsolatait ábrázolja.● Az osztály jele alapesetben egy függőlegesen három részre osztott téglalap. A
legfelső részbe írandó az osztály neve, a középsőbe az attribútumok, az alsóba az metódusok (operációk) specifikációja. A fejlesztés korai fázisaiban még nincs feltétlenül minden rész kitöltve, és a kitöltés részletessége is változhat.
● Láthatóság, elérés: + public
# protected
~ csomagszintű
- private
![Page 71: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/71.jpg)
71
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Osztálydiagram (UML diagram típusa):● Példa
![Page 72: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/72.jpg)
72
PROGRAMOZÁS III.● Haladó programozás (OOP)
– Osztálydiagram (az UML diagram egyik típusa):● Példa
![Page 73: PROGRAMOZÁS III. - M-info.hu...Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai 2 PROGRAMOZÁS III. Témakörök: – Fejlesztői környezet, fordítás,](https://reader033.fdocument.pub/reader033/viewer/2022041713/5e4927bcdc156a604370da1f/html5/thumbnails/73.jpg)
73
PROGRAMOZÁS III.
KÖSZÖNÖM A FIGYELMET!