Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozás módszertan

Hasonló előadás


Az előadások a következő témára: "Programozás módszertan"— Előadás másolata:

1 Programozás módszertan
NEM TELJES VERZIÓ!!! HOZZÁOLVASÁS ÉS AZ ÓRAI JEGYZETELÉSEK SZÜKSÉGESEK! Programozás módszertan vizsgatételek Illés Attila

2 Programozás módszertan
Alapfogalmak Szekvencia megvalósítása folyamatábrával utasítás1 utasítás2 utasítás3 Programozás módszertan vizsgatételek Illés Attila

3 Programozás módszertan
Alapfogalmak Elágazás megvalósítása folyamatábrával feltétel h i Utasítás(ok) igaz esetén Utasítás(ok) hamis esetén Az ágak valamelyike el is maradhat: egyágú elágazás. Többágú elágazásra nincs folyamatábra-jelölés, több kétágú elágazással írható le. Programozás módszertan vizsgatételek Illés Attila

4 Programozás módszertan
Alapfogalmak Elöl tesztelő ciklus megvalósítása folyamatábrával ciklusfeltétel h i A ciklusmag nem biztos, hogy végrehajtódik! Ciklusmag utasításai Programozás módszertan vizsgatételek Illés Attila

5 Programozás módszertan
Alapfogalmak Hátul tesztelő ciklus megvalósítása folyamatábrával A ciklusmag egyszer biztos, hogy végrehajtódik! Ciklusmag utasításai ciklusfeltétel h i Programozás módszertan vizsgatételek Illés Attila

6 Programozás módszertan
Alapfogalmak Számláló ciklus megvalósítása folyamatábrával Változó:=tól..ig h i A ciklusmag nem biztos, hogy végrehajtódik! Ciklusmag utasításai Programozás módszertan vizsgatételek Illés Attila

7 Programozás módszertan
Alapfogalmak Egyéb elemek a folyamábrás ábrázoláshoz Bevitel / kivitel Start Stop Programozás módszertan vizsgatételek Illés Attila

8 Programozás módszertan
Alapfogalmak Struktogram elágazás Feltétel megadása szekvencia igaz hamis ciklus utasítás 1 utasítás 2 ciklus feltétel utasítás 1 utasítás 2 utasítás 1 utasítás 2 ciklusmag Programozás módszertan vizsgatételek Illés Attila

9 Programozás módszertan
1. Tétel Programozás módszertan vizsgatételek Illés Attila

10 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Programozás módszertan vizsgatételek Illés Attila

11 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Információtartalom vázlata: A rendszerelemek tartalmi tervezése  Feladat elemekre bontása Eszközkörnyezet meghatározása  A környezet adta lehetőségek feltárása Állománykezelés  Állományok másolása Eseménykezelés  A másolás folyamatának szemléltetése Felhasználói felületek  Folyamatjelző használata Programozás módszertan vizsgatételek Illés Attila

12 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? A rendszerelemek tartalmi tervezése Feladat elemekre bontása Forrásmappa megadása Ellenőrzések Méret meghatározás Célmappa megadása Ellenőrzések Másolás folyamata Folyamat állapotának jelzése Ellenőrzések Másolás folyamatának befejezése Programozás módszertan vizsgatételek Illés Attila

13 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Eszközkörnyezet meghatározása A környezet adta lehetőségek feltárása Operációs rendszer Fejlesztőrendszer kiterjedtsége Fájlrendszer Alacsony / magas szintű nyelv Modulok, komponensek támogatása Párhuzamosság támogatása Assembly, C/C++, Pascal, C# Párhuzamosság támogatása Programozás módszertan vizsgatételek Illés Attila

14 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Állománykezelés Állományok másolása Alacsonyszintű nyelv (Assembly) Magas szintű nyelv (C/C++, C#, Delphi, Java) Bináris adatátvitel UI – User Interface (Felhasználói felület) Fájlszintű átvitel Előre definiált eljárások GUI – Graphical UI (Grafikus felhasználói f.) Előre definiált eljárások Programozás módszertan vizsgatételek Illés Attila

15 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Eseménykezelés START A másolás folyamatának szemléltetése Forrásmappa megadása Ellenőrzések igaz hamis Méret és darabszám meghatározása Kiíratás „jelentések” Célmappa megadása hamis Ellenőrzések igaz Fájlok másolása STOP Programozás módszertan vizsgatételek Illés Attila

16 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Felhasználói felületek igaz Fájlok másolása Folyamatjelző használata STOP Grafikus felhasználói felület DB > maxDB i 69% h Fájlok[DB] másolása Folyamatjelző vezérlése DB += 1 Programozás módszertan vizsgatételek Illés Attila

17 Programozás módszertan
1. Tétel Önnek egy rendszer részeként olyan programot kell készíteni, amely egy a felhasználó által megadott mappa teljes tartalmát alkönyvtárakkal együtt átmásolja egy másik szintén a felhasználó által megadott helyre. Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Hogyan tervezné meg a felhasználó felületet, és ezt milyen módon választaná szét a programlogikától? Programlogika Felhasználói felület Function masol( forras:String, cel:String, jelzo:Object) { CopyFiles(forras, cel, jelzo.ertek); } Program kezdete masol ( forrasmappa.fname, celmappa.fname, csik ); Program vége Programozás módszertan vizsgatételek Illés Attila

18 Programozás módszertan
2. Tétel Programozás módszertan vizsgatételek Illés Attila

19 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Programozás módszertan vizsgatételek Illés Attila

20 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Információtartalom vázlata: Programozási tételek (alapalgoritmusok)  Keresés, logaritmikus keresés Adatszerkezetek, objektumok  Tömbök, listák bejárása Programtervezési módszerek  Keresések optimalizálása Tesztelés, hibakeresés  Túlcsordulások kezelése Programozás módszertan vizsgatételek Illés Attila

21 Programozási tételek Mik is ezek? Miért most tanuljuk?
A programozásban előforduló típusfeladatokra adnak általános megoldást Az adott feladattípusnak matematikailag bizonyíthatóan helyes és a legoptimálisabb megoldását adják Miért most tanuljuk? A tételek többsége több bemenő adattal végez el valamilyen átalakítást, és ehhez a tömb adatszerkezet ismerete szükséges

22 Programozási tételek Csoportosításuk
Aszerint csoportosítjuk őket, hogy mi a bemenő és kimenő adatuk, eszerint megkülönböztetünk:  adatsorozathoz egy adatot rendelő tételeket;  adatsorozathoz adatsorozatot rendelő tételeket

23 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Sorozatszámítás tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Egy érték, amelynek kiszámításához az adatsorozat minden elemét felhasználjuk Szükséges hozzá még egy kiszámítási szabály, amely megmondja, hogy az értéket hogy kapjuk meg a sorozat elemeiből (F) Példák: összeg, számtani közép (átlag), mértani közép, négyzetösszeg, harmonikus közép, stb.

24 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Sorozatszámítás tétel Általános algoritmusa (összegre megírva): Eljárás Sorozatszámítás Összeg:=0 Ciklus i:=1-től N-ig Összeg:=Összeg+A(i) Ciklus vége Eljárás vége

25 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Eldöntés tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Egy logikai érték, amely megmondja, hogy egy adott T tulajdonságú elem előfordul-e az adatsorozatban Példák: van-e páros, páratlan, hárommal osztható, vagy olyan elem, aminek az előző eleme páratlan, stb. (tetszőlegesen bonyolultat ki lehet találni)

26 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Eldöntés tétel Általános algoritmusa: Eljárás Eldöntés i:=1 Ciklus amíg i<=N és A[i] nem T tulajdonságú i:=i+1 Ciklus vége VAN:=i<=N Eljárás vége

27 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Kiválasztás tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Egy adott T tulajdonságú elem sorszáma Előfeltétel: VAN T tulajdonságú elem az adatsorozatban Példák: számelméleti feladatok, amelyekhez nem kell tömb: keressük meg egy pozitív természetes szám legkisebb prímosztóját, stb.

28 Kitekintés: Programozási tételek
Adatsorozathoz egy értéket rendelő tételek Kiválasztás tétel Általános algoritmusa: Eljárás Kiválasztás i:=1 Ciklus amíg A[i] nem T tulajdonságú i:=i+1 Ciklus vége SORSZÁM:=i Eljárás vége

29 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
(Lineáris) keresés tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Egy adott T tulajdonságú elem sorszáma, és egy logikai érték, amely megmondja, volt-e T tulajdonságú elem Példák: tömbben páros elem keresése, olyan elem keresése, amely két szomszédjának számtani közepe, stb.

30 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
(Lineáris) keresés tétel Általános algoritmusa: Eljárás Keresés i:=1 Ciklus amíg i<=N és A[i] nem T tulajdonságú i:=i+1 Ciklus vége VAN:=i<=N Ha VAN akkor SORSZÁM:=i Eljárás vége

31 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Megszámolás tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Annak darabszáma, hogy egy adott T tulajdonságú elemből mennyi van Példák: tömbben páros elemek megszámolása, karakterláncban magánhangzó számolás, stb.

32 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Megszámolás tétel Általános algoritmusa: Eljárás Megszámolás DB:=0 Ciklus i:=1-től N-ig Ha A(i) T tulajdonságú, akkor DB:=DB+1 Ciklus vége Eljárás vége

33 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Maximum(minimum)kiválasztás tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Szükséges hozzá egy olyan összehasonlíthatósági tulajdonság, amely szerint a kisebb és nagyobb reláció értelmezve van Kimenő adat: Valamilyen szempontból a legnagyobb(legkisebb) elem értéke és/vagy sorszáma

34 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Maximum(minimum)kiválasztás tétel Általános algoritmusa (1. változat): Eljárás Maximumkiválasztás MAXIMUM:=A(1) INDEX:=1 Ciklus i:=2-től N-ig Ha A(i)>MAXIMUM akkor MAXIMUM:=A(i) INDEX:=i Ciklus vége Eljárás vége

35 Programozási tételek Adatsorozathoz egy értéket rendelő tételek
Maximum(minimum)kiválasztás tétel Általános algoritmusa (2. változat): Eljárás Maximumkiválasztás INDEX:=1 Ciklus i:=2-től N-ig Ha A(i)>A(INDEX) akkor INDEX:=i Ciklus vége MAXIMUM:=A(INDEX) Eljárás vége

36 Programozási tételek Adatsorozathoz adatsorozatot rendelő tételek
Kiválogatás tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Az összes T tulajdonságú elem egy új tömbben (B) A kimenő adatok tárolásához ugyanakkora tömb szükséges, mint a bemenő adatokhoz, mert nem tudjuk előre, hány T tulajdonságú elem lesz Példák: válogassuk ki a párosakat, prímeket, stb. egy számsorozatból.

37 Programozási tételek Adatsorozathoz adatsorozatot rendelő tételek
Kiválogatás tétel Általános algoritmusa Eljárás Kiválogatás j:=0 Ciklus i:=1-től N-ig Ha A(i) T tulajdonságú akkor j:=j+1 B(j):=A(i) Ciklus vége Eljárás vége

38 Programozási tételek Adatsorozathoz adatsorozatot rendelő tételek
Szétválogatás tétel Bemenő adat: egy N elemű adatsorozat (A tömb) Kimenő adat: Az összes T tulajdonságú elem egy új tömbben (B), és egy másikban (C) az összes nem T tulajdonságú elem A kimenő adatok tárolásához ugyanakkora tömbök szükségesek, mint a bemenő adatokhoz, mert nem tudjuk előre, hány T tulajdonságú elem lesz Példák: válogassuk szét a párosakat és nem párosokat, prímeket és nem prímeket, stb. egy számsorozatból.

39 Programozási tételek Adatsorozathoz adatsorozatot rendelő tételek
Szétválogatás tétel Általános algoritmusa Eljárás Kiválogatás j:=0 k:=0 Ciklus i:=1-től N-ig Ha A(i) T tulajdonságú akkor j:=j+1 B(j):=A(i) egyébként k:=k+1 C(k):=A(i) Elágazás vége Ciklus vége Eljárás vége

40 Programozási tételek Adatsorozathoz adatsorozatot rendelő tételek
Metszet Bemenő adat: két adatsorozat, egy N elemű (A tömb), és egy M elemű (B), amelyek azonos elemtípusúak Kimenő adat: Az összes olyan elem egy új tömbben (C), amely mindkét tömbben előfordul A kimenő adatok tárolásához szükséges tömb mérete N és M közül a kisebb töm elemszámával egyezik meg A feladat átfogalmazható: válogassuk ki A azon elemeit, amelyek benne vannak B-ben, vagyis két elemi tétel összeépítésével megoldható Példák: számok közös osztóinak megadása, két ember határidőnaplójának ismeretében azon esték meghatározása, amikor el tudnak menni együtt vacsorázni

41 Programozási tételek Adatsorozathoz adatsorozatot rendelő tételek Unió
Bemenő adat: két adatsorozat, egy N elemű (A tömb), és egy M elemű (B), amelyek azonos elemtípusúak Kimenő adat: Az összes olyan elem egy új tömbben (C), amely legalább az egyik tömbben előfordul A kimenő adatok tárolásához szükséges tömb mérete N+M A feladat átfogalmazható: másoljuk le A elemeit, majd válogassuk ki B-ből azokat az elemeket, amelyek nincsenek benne A-ban. Vagyis egy sorozatszámítás, majd egy kiválogatás, ami egy eldöntést tartalmaz. Példák: számok közös osztóinak megadása, két ember határidőnaplójának ismeretében azon esték meghatározása, amikor el tudnak menni együtt vacsorázni

42 Programozási tételek Rendezések
Az alapfeladat: N elemű adatsorozat (A tömb) nagyság szerinti sorba rendezése(szükséges, hogy létezzen a <,<= reláció a sorozat elemtípusára) Léteznek olyan módszerek, amelyek új tömbbe rendezik az adatsorozatot, vagy létrehoznak egy számsorozatot, amely leírja a sorrendet (indexelés) A következő algoritmusok azonban helyben rendeznek, a rendezett sorozat magában az eredeti tömbben keletkezik Minden esetben, ha két elemet ezek során fel kell cserélni, a következő eljárást alkalmazzuk: Eljárás Csere(A,B) Seged:=A A:=B B:=Seged Eljárás vége

43 Programozási tételek Rendezések Egyszerű cserés rendezés
Alapelv: hasonlítsuk össze a sorozat első elemét sorban minden utána következő elemmel, és ha szükséges (nála kisebbet találtunk), akkor cseréljünk. Ezzel elérjük, hogy a sorozat legkisebb eleme az első helyre kerül. Folytassuk ugyanezt a módszert a második, harmadik…stb. elemekre A rendezéseket aszerint jellemezzük, hogy mekkora a helyfoglalása a memóriában, hány összehasonlítás és hány mozgatás szükséges hozzá. Ezek a jellemzők az egyszerű cserés rendezésre: Helyfoglalás: N+1 elem Összehasonlítások száma: N*(N-1)/2 (N*N-nel arányos) Mozgatások száma: 0 – 3*N*(N-1)/2, függ az eredeti sorozat rendezettségétől

44 Programozási tételek Rendezések Egyszerű cserés rendezés
Általános algoritmusa Eljárás Egyszerű cserés rendezés Ciklus i:=1-től N-1-ig Ciklus j:=i+1-től N-ig Ha A(i)>A(j) akkor Csere(A(i),A(j)) Ciklus vége Eljárás vége

45 Programozási tételek Rendezések Minimumkiválasztásos rendezés
Az előző módszer hátránya a sok felesleges csere. Ennek csökkentésére új elv: keressük meg a sorozat legkisebb elemét, majd cseréljük fel az első elemmel Ezután keressük meg a második elemmel kezdődő sorozat legkisebb elemét, és ezt cseréljük fel a második elemmel Helyfoglalás: N+1 elem Összehasonlítások száma: N*(N-1)/2 (N*N-nel arányos) Mozgatások száma: 3*(N-1), nem függ az eredeti sorozat rendezettségétől

46 Programozási tételek Rendezések Minimumkiválasztásos rendezés
Általános algoritmusa Eljárás Minimumkiválasztásos rendezés Ciklus i:=1-től N-1-ig MIN:=I Ciklus j:=i+1-től N-ig Ha A(MIN)>A(j) akkor MIN:=j Ciklus vége Csere(A(i),A(MIN) Eljárás vége

47 Programozási tételek Rendezések Buborékrendezés
Új alapelv: mindig szomszédos elemeket cseréljünk Először induljunk az első elemtől, és csináljuk a szomszédok hasonlítását a sorozat végéig. Ekkor a legnagyobb elem az utolsó helyre kerül, a többi pedig a helye felé mozdul el ( a kisebbek az eleje, a nagyobbak a vége felé, innen a buborékmódszer elnevezés) Ezután ismételjük meg a cseréket, de most már csak az elsőtől az utolsó előtti elemig, mert az utolsó már jó helyen van, és így tovább Helyfoglalás: N+1 elem Összehasonlítások száma: N*(N-1)/2 (N*N-nel arányos) Mozgatások száma: 0 -3*N*(N-1), függ az eredeti sorozat rendezettségétől

48 Programozási tételek Rendezések Buborékrendezés
Általános algoritmusa Eljárás Buborékrendezés Ciklus i:=N-től 2-ig -1-esével Ciklus j:=1-től i-1-ig Ha A(j)>A(j+1) akkor Csere(A(j,A(j+1)) Ciklus vége Eljárás vége

49 Programozási tételek Rendezések Beillesztéses rendezés
Új alapelv: egyetlen elem mindig rendezett, és ha van egy rendezett részsorozatunk, abba illesszük be a megfelelő helyre az aktuális elemet Ez a beillesztés úgy működik, hogy az útban lévő elemeket a sorozat vége felé léptetjük Helyfoglalás: N+1 elem Összehasonlítások száma: 0 - N*(N-1)/2 (N*N-nel arányos, függ a rendezettségtől) Mozgatások száma: 0 -3*N*(N-1), függ az eredeti sorozat rendezettségétől

50 Programozási tételek Rendezések Beillesztéses rendezés
Általános algoritmusa Eljárás Beillesztéses rendezés Ciklus i:=2-től N-ig j:=i-1 Ciklus amíg j>0 és A(j)>A(j+1) Csere(A(j,A(j+1)) j:=j-1 Ciklus vége Eljárás vége

51 Programozási tételek Keresések
Ebben a részben speciális keresési feladatokkal foglalkozunk Már tanultuk a lineáris keresést, ami rendezetlen sorozatban keres Vannak azonban rendezett sorozatra ennél hatékonyabb keresési módszerek, illetve van olyan keresés is, amelynek nem egy elem, hanem egy adatsorozat az eredménye

52 Programozási tételek Keresések Keresés rendezett sorozatban
Bináris, vagy logaritmikus keresésnek is nevezik Elve: az intervallumfelezés Megvizsgáljuk a sorozat középső elemét: ha a keresett elem ennél nagyobb, akkor a továbbiakban csak a sorozat második felével foglalkozunk, ha nem, akkor az elejével Bemenő adat: egy N elemű RENDEZETT adatsorozat (A tömb) (feltételeztük, hogy az elemek valamilyen tulajdonság alapján sorba rendezhetők) Kimenő adat: Egy Y értékkel megegyező elem sorszáma (SORSZAM), és egy logikai érték, amely megmondja, volt-e Y értékkel megegyező elem (VAN)

53 Programozási tételek Keresések Keresés rendezett sorozatban
Későbbi dián…

54 Programozási tételek Keresések Visszalépéses keresés (back-track)
Ez nem igazi keresés: itt egy speciális feladat megoldását keressük Ez a megoldás minden esetben maga is egy sorozat E sorozat minden egyes tagját valamilyen sorozatból kell kikeresni, de az egyes keresések összefüggnek egymással Minden egyes új választás az összes korábbitól függhet, a későbbiektől azonban nem (ezt egy speciális F függvénnyel írjuk le) Egyes esetekben a választás a saját jellemzőjétől is függhet (ezt egy speciális G függvénnyel írjuk majd le)

55 Programozási tételek Keresések Visszalépéses keresés (back-track)
Példafeladatok: Helyezzünk el egy 8x8-as sakktáblán 8 vezért úgy, hogy egyik se üsse a másikat! (lehet más bábu is) Egy vállalat N db munkára szeretne munkásokat felvenni. Jelentkezik N db munkás, mindegyik megadja, hogy milyen munkát tudna elvégezni. Osszuk el közöttük a munkát úgy, hogy minden munka el legyen végezve, és mindenkinek jusson munka! N bolt M pékségtől rendel kenyeret. Ismerjük a boltok kenyérigényét, a pékségek sütési kapacitását, valamint azt, hogy melyik bolt melyik pékséggel áll kapcsolatban. Adjuk meg, melyik bolt pékségből rendelje a kenyeret, ha minden bolt csak egy pékségtől rendelhet!

56 Programozási tételek Keresések Visszalépéses keresés (back-track)
Általános algoritmusa: A használt változók: N:egész [a sorozatok száma, pl. a 8 oszlop a sakktáblán] M:tömb(1..N:egész) [az egyes sorozatok elemszáma, pl. a sakktábla oszlopainak hossza] X:tömb(1..N:egész) [a választott elemek sorszáma, pl. a mező sorszáma, ahova az adott oszlopban elhelyezzük a vezért] VAN:logikai [akkor igaz, ha minden sorozatból megtaláltuk a megfelelőt

57 Programozási tételek Keresések Visszalépéses keresés (back-track)
Általános algoritmusa: Az algoritmus megírásához három eljárást kell megírnunk: A legfelső szinten megkeressük az i. sorozatból a megfelelő elemet. Ha találtunk ilyet, akkor továbblépünk az i+1. sorozatra, ha nem találtunk, akkor visszalépünk az i-1.-re, és abban keresünk tovább Az i. sorozatban való keresés egy lineáris keresés, külön eljárásban Lesz még egy, a feladattól függő RosszEset függvény, amely azt írja le, hogy mi a nem megfelelő eset (pl. mikor ütik egymást a királynők)

58 Programozási tételek Keresések Visszalépéses keresés (back-track)
Általános algoritmusa: Eljárás BackTrack(N,M,X,VAN) i:=1 X(1..N):=(0,..,0) {0 jelzi, hogy az adott sorozatban nem találtunk még megfelelőt} Ciklus amíg i>=1 és i<=N JóEsetKeresés(M,X,i,melyik,VAN) {a melyik változóban adja vissza, hogy az i. sorozatban melyik a megfelelő} Ha VAN akkor X(i):=melyik i:=i+1 {előre lépünk} egyébként X(I):=0 i:=i-1 {visszalépünk} Elágazás vége Eljárás vége

59 Programozási tételek Keresések Visszalépéses keresés (back-track)
Általános algoritmusa: Eljárás JóEsetKeresés(M,X,i,melyik,VAN) melyik :=X(i)+1 Ciklus amíg melyik<=M(i) és RosszEset(i,X,melyik) és nem G(i,X(i) melyik:=melyik+1 Ciklus vége VAN:=(melyik<=M(I)) Eljárás vége Függvény RosszEset(i,X,melyik):Logikai j:=1 Ciklus amíg j<i és F(i, melyik,j,X(j)) j:=j+1 RosszEset:=(j<i) Függvény vége

60 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Programozási tételek (alapalgoritmusok) Keresés, logaritmikus keresés Eljárás Bináris_Keresés E := 1 U := N Ciklus K := [ ( E+U ) / 2] {E+U felének egészrésze} Elágazás Y < A( K ) esetén U := K-1 Y > A( K ) esetén E := K+1 Elágazás vége Amíg E <= U és A( K ) <> Y Ciklus vége VAN := ( E <= U ) Ha VAN akkor SORSZAM := K Eljárás vége Programozás módszertan vizsgatételek Illés Attila

61 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Programozási tételek (alapalgoritmusok) Keresés, logaritmikus keresés 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 K:=[E+U] / 2 E:=1 U:=N Programozás módszertan vizsgatételek Illés Attila

62 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Adatszerkezetek, objektumok Tömbök, listák bejárása Tömbök bejárása 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 I := Tömb[ index ] Első elem Utolsó elem Tömb[ index ] := I for (i:=1 ; i <= tömb.hossz ; i++) { K := tömb[ i ] ; Kiír_képernyőre( K ) ; } Programozás módszertan vizsgatételek Illés Attila

63 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Adatszerkezetek, objektumok  Tömbök, listák bejárása Tömbök bejárása – 2 dimenziós tömb sorszám 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 oszlopszám for ( i := 1 ; i <= tömb.sorszam ; i++) { for ( j := 1 ; j <= tömb.oszlopszam ; j++) K := tömb[ j + ( i - 1 ) * tömb.oszlopszam ] ; Kiír_képernyőre( K ) ; } Programozás módszertan vizsgatételek Illés Attila

64 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Adatszerkezetek, objektumok  Tömbök, listák bejárása Listák bejárása Egyszeresen láncolt lista Első elemre mutató változó elem elem NULL elem Programozás módszertan vizsgatételek Illés Attila

65 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Adatszerkezetek, objektumok  Tömbök, listák bejárása Listák bejárása Kétszeresen láncolt lista Első elemre mutató változó elem elem NULL NULL elem Programozás módszertan vizsgatételek Illés Attila

66 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Programtervezési módszerek  Keresések optimalizálása Értékkeresésnél  rendezés Mintakeresésnél  Ábécé sorrend Indexelés Kategorizálás Egyéb, egyéni lehetőségek Lépésszám csökkentés Futási idő csökkentés Memóriahasználat csökkentése Példa: tmb[12] = { 3,6,7,3,2,5,8,4,6,3,7,5 } i := 0; Ciklus Ha ( tmb[i] = = 5 ) akkor VAN:=IGAZ; i := i+1 ; Ciklus vége r := 1; Ciklus amíg (r < 10) eredmeny := ( 2 * π * r3 ) / 3; tmb[r] := eredmeny; r := r + 1; Ciklus vége Pi2 := 2*π; eredmeny := (Pi2 * r3) / 3; Programozás módszertan vizsgatételek Illés Attila

67 Programozás módszertan
2. Tétel Milyen módszerekkel optimalizálná egy már kész program futását, ha abban sokszor kell tömbökben, listákban keresni? Tesztelés, hibakeresés  Túlcsordulások kezelése tmb [ ] amely egész típust kezel (-32768…32767 [2 bájton] ) tmb[ 0 ] és tmb[ 26 ] hibát okoz  indexelési túlcsordulás tmb[ index ] := hibát okoz  Ábrázolhatósági túlcsordulás A programban feltételvizsgálattal kell meggátolni a túlcsordulást. Figyelni kell, ha dinamikusan foglaljuk a tömbnek a memóriát!!! Programozás módszertan vizsgatételek Illés Attila

68 Programozás módszertan
3. Tétel Programozás módszertan vizsgatételek Illés Attila

69 Programozás módszertan
3. Tétel Egy jogosultságokat is kezelő alkalmazásban milyen módszerrel oldaná meg, hogy az egyes felhasználói csoportok függvényében különböző legyen a felhasználói felület? Programozás módszertan vizsgatételek Illés Attila

70 Programozás módszertan
3. Tétel Egy jogosultságokat is kezelő alkalmazásban milyen módszerrel oldaná meg, hogy az egyes felhasználói csoportok függvényében különböző legyen a felhasználói felület? Információtartalom vázlata Szoftver architektúra kialakítása  Felhasználói interfész örököltetése, újrahasznosítása Kommunikációs kapcsolatok  A felület azonos elemeinek (felületek) fejlesztése megállapítása Rétegek típusai  A felhasználói felület és az üzleti logika szétbontása Programozás módszertan vizsgatételek Illés Attila

71 Programozás módszertan
4. Tétel Programozás módszertan vizsgatételek Illés Attila

72 Programozás módszertan
4. Tétel Egy program működése közben időnként hibák lépnek fel, de ezek nem rendszeresen következnek be. Milyen módszerrel keresné meg a hiba helyét? Programozás módszertan vizsgatételek Illés Attila

73 Programozás módszertan
4. Tétel Egy program működése közben időnként hibák lépnek fel, de ezek nem rendszeresen következnek be. Milyen módszerrel keresné meg a hiba helyét? Információtartalom vázlata: Tesztelési ismeretek (teszttípusok) - Fekete doboz és fehér doboz módszer Szoftverkomponensek - Az egyes elemek kommunikációjának vizsgálata Tesztelés, hibakeresés - A hiba helyének szűkítése Alkalmazásfejlesztő eszközök - Debuggolás használata Programozás módszertan vizsgatételek Illés Attila

74 Programozás módszertan
4. Tétel Egy program működése közben időnként hibák lépnek fel, de ezek nem rendszeresen következnek be. Milyen módszerrel keresné meg a hiba helyét? Tesztelési ismeretek (teszttípusok)  Fekete és fehér doboz módszer Íróasztalterv (programterv) A tervezés időszakában ( fehér doboz módszer) Dinamikus tesztelés Statikus tesztelés Fekete doboz módszer Fehér doboz módszer Kódellenőrzés Formai ellenőrzés Ekvivalencia osztályok Szerkezet szerinti tesztelés Tartalmi ellenőrzés Programozás módszertan vizsgatételek Illés Attila

75 Programozás módszertan
4. Tétel Egy program működése közben időnként hibák lépnek fel, de ezek nem rendszeresen következnek be. Milyen módszerrel keresné meg a hiba helyét? Szoftverkomponensek  Az egyes elemek kommunikációjának vizsgálata A - komponens B - komponens C - komponens D - komponens Programozás módszertan vizsgatételek Illés Attila

76 Programozás módszertan
4. Tétel Egy program működése közben időnként hibák lépnek fel, de ezek nem rendszeresen következnek be. Milyen módszerrel keresné meg a hiba helyét? Tesztelés, hibakeresés  A hiba helyének szűkítése Indukciós módszer Dedukciós módszer Visszalépéses módszer Ekvivalencia osztályok Lehetséges hiba okok feltárása Addig megyünk, amíg van hiba Kimenő adatokból következtetünk Hiba helyének szűkítése Programozás módszertan vizsgatételek Illés Attila

77 Programozás módszertan
4. Tétel Egy program működése közben időnként hibák lépnek fel, de ezek nem rendszeresen következnek be. Milyen módszerrel keresné meg a hiba helyét? Alkalmazásfejlesztő eszközök  Debuggolás használata Debug eszközök Step into Breakpoint Step over Programozás módszertan vizsgatételek Illés Attila

78 Programozás módszertan
5. Tétel Programozás módszertan vizsgatételek Illés Attila

79 Programozás módszertan
5. Tétel Egy rendszer tervezésénél milyen módszerekkel tenné hatékonyabbá a benne lévő ciklusok futását? Programozás módszertan vizsgatételek Illés Attila

80 Programozás módszertan
5. Tétel Egy rendszer tervezésénél milyen módszerekkel tenné hatékonyabbá a benne lévő ciklusok futását? Információtartalom vázlata: Alapfogalmak (elágazás, ciklus stb.) - Ciklusok megállító feltételeinek vizsgálata Programozási tételek (alapalgoritmusok) - Keresések, rendezések gyors változatai Kódolás, változók használata - Globális és lokális változók használata Programozás módszertan vizsgatételek Illés Attila

81 Programozás módszertan
5. Tétel Egy rendszer tervezésénél milyen módszerekkel tenné hatékonyabbá a benne lévő ciklusok futását? Alapfogalmak (elágazás, ciklus stb.)  Ciklusok megállító feltételeinek vizsgálata i := 1; do { ertek := keres( A[i] , mit); i += 1; }while ( ertek = = 0 ); Milyen hibákat figyelhetünk meg? Programozás módszertan vizsgatételek Illés Attila

82 Programozás módszertan
5. Tétel Egy rendszer tervezésénél milyen módszerekkel tenné hatékonyabbá a benne lévő ciklusok futását? Programozási tételek (alapalgoritmusok)  Keresések, rendezések gyors változatai Logaritmikus keresés Quick sort Programozás módszertan vizsgatételek Illés Attila

83 Programozás módszertan
5. Tétel Quick sort Programozás módszertan vizsgatételek

84 Programozás módszertan
5. Tétel Quick sort [ int tmb[]={7, 4, 9, 10, 6, 8, 3, 5, 2, 1}; ] void quickSort(int arr[], int left, int right) {       int i = left, j = right, tmp;       int pivot = arr [ ( left + right ) / 2];       /* partition */       while (i <= j)         while ( arr[i] < pivot ) i++;         while ( arr[j] > pivot ) j--;         if (i <= j)           tmp = arr [ i ];           arr [ i ] = arr [ j ];           arr [ j ] = tmp; (* kiíratás *)           i++ ;    j--;          }      }      /* recursion */    if (left < j)  quickSort(arr, left, j);    if (i < right) quickSort(arr, i, right); } // itt a vége a QuickSort-nak Pivot= i= 0 - j= Pivot= i= 2 - j= Pivot= i= 3 - j= Pivot= i= 4 - j= Pivot= i= 1 - j= Pivot= i= 0 - j= Pivot= i= 3 - j= Pivot= i= 2 - j= Pivot= i= 7 - j= Pivot= i= 5 - j= Pivot= i= 6 - j= Pivot= i= 7 - j= Végeredmény = Programozás módszertan vizsgatételek

85 Programozás módszertan
5. Tétel Egy rendszer tervezésénél milyen módszerekkel tenné hatékonyabbá a benne lévő ciklusok futását? Kódolás, változók használata  Globális és lokális változók használata #include <stdio.h> int masodik = 5; int osszeg( int a, int b) { int ertek; ertek = (a + b); return ertek; } void main() kiir( masodik ); kiir( osszeg(7,4) ); #include <stdio.h> void main() { int elso; elso = 15; } Van-e hiba? Programozás módszertan vizsgatételek Illés Attila

86 Programozás módszertan
6. Tétel Programozás módszertan vizsgatételek Illés Attila

87 Programozás módszertan
6. Tétel Egy felhasználó nincs teljesen tisztában azzal, milyen programot is szeretne a munkájához használni. Ön fejlesztőként hogyan segítené a megfelelő rendszer kialakításában? Programozás módszertan vizsgatételek Illés Attila

88 Programozás módszertan
6. Tétel Egy felhasználó nincs teljesen tisztában azzal, milyen programot is szeretne a munkájához használni. Ön fejlesztőként hogyan segítené a megfelelő rendszer kialakításában? Információtartalom vázlata Rendszerek (elemek, jellemzők)  Az egyes programverziók lehetőségeinek vázlata Felhasználói igények feltárása, elemzése és csoportosítása  Interjú készítése A rendszerelemek tartalmi tervezése  Felhasználói képernyők kialakítása Rendszerfunkciók tervezése  Funkciók pontosítása Programozás módszertan vizsgatételek Illés Attila

89 Programozás módszertan
7. Tétel Programozás módszertan vizsgatételek Illés Attila

90 Programozás módszertan
7. Tétel Egy adatbázist használó program tervezésekor hogyan valósítaná meg az egyes programrétegek kommunikációját? Programozás módszertan vizsgatételek Illés Attila

91 Programozás módszertan
7. Tétel Egy adatbázist használó program tervezésekor hogyan valósítaná meg az egyes programrétegek kommunikációját? Információtartalom vázlata Rendszerek működésének tervezése  Közös elemek kialakítása, keretrendszer Alkalmazásfejlesztés lépései és feladatai  Eseménykezelés Rétegek típusai  Felhasználói felület, üzleti logika, adatbázis kapcsolat Programozás módszertan vizsgatételek Illés Attila

92 Programozás módszertan
7. Tétel Egy adatbázist használó program tervezésekor hogyan valósítaná meg az egyes programrétegek kommunikációját? Rendszerek működésének tervezése  Közös elemek kialakítása, keretrendszer Felhasználói felület Komponensek használata Üzleti logika Komponensek használata Keretrendszer Adatbázis réteg Komponensek használata Programozás módszertan vizsgatételek Illés Attila

93 Programozás módszertan
7. Tétel Egy adatbázist használó program tervezésekor hogyan valósítaná meg az egyes programrétegek kommunikációját? Rétegek típusai  Felhasználói felület, üzleti logika, adatbázis kapcsolat DBL (database layer - adatbázis): szigorúan csak táblák és a bennük található adatok. Természetesen ide lehet venni a kulcsokat, indexeket is. DAL (data access layer - adatelérési réteg): Egyik oldalán az adatbázis áll, a másik egy az adatbázis típusától független adathalmaz. Lehet PostgreSQL, MySQL vagy MS SQL, a Dataset az mindig ugyan úgy néz ki. UI (user interface - felhasználói felület): vannak rajta beviteli mezők, gombok, miegymás. Felhasználó ki tudja tölteni az adatokat és el tudja küldeni az utasítását a BL felé. BLL (business-logic layer - üzleti logika): az eljárásait, property-jeit, stb a UI-ről hívogatjuk, a bemenetei pedig a DAL eljárásai. Itt valósítunk meg olyan dolgokat, amik egy vagy több táblát érintenek. Programozás módszertan vizsgatételek Illés Attila

94 Programozás módszertan
7. Tétel Egy adatbázist használó program tervezésekor hogyan valósítaná meg az egyes programrétegek kommunikációját? Rétegek típusai  Felhasználói felület, üzleti logika, adatbázis kapcsolat UI – User Interface Windows: GTK+, Delphi, C++ Builder, Java Builder Visual Studio (C/C++, C#, Java, Basic,…) Linux: Anjuta, GTK+, Mono (C#), Kdevelop, NetBeans (Java) BL – Business Logic Program nyelv PostgresDAC – PostgreSQL DA – Data access ADO / DAO ODBC / BDE Direct Access DB - Database MySQL, PostgreSQL, MS SQL, Oracle, Firebird, … Programozás módszertan vizsgatételek Illés Attila

95 Programozás módszertan
8. Tétel Programozás módszertan vizsgatételek Illés Attila

96 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Programozás módszertan vizsgatételek Illés Attila

97 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Információtartalom vázlata Eszközkörnyezet létrehozása  Tömörített állományok Állománykezelés  Könyvtárszerkezet kialakítása Állományok másolása  Registry használata Szoftverkomponensek  Az IO komponensek használata Telepítő csomagok  Install és uninstall program kialakítása Programozás módszertan vizsgatételek Illés Attila

98 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Eszközkörnyezet létrehozása  Tömörített állományok MakeCAB.exe és Extract.exe Windows .CAB fájl DEFLATE, Quantum, LZX Programozás módszertan vizsgatételek Illés Attila

99 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Állománykezelés  Könyvtárszerkezet kialakítása Könyvtárak szerkezete, fájlok céliránya Célkönyvtárak vizsgálata Tárhely, jogosultság Biztonsági házirend Program Files\ Documents and Settings\homedir Egyéb korlátozások Programozás módszertan vizsgatételek Illés Attila

100 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Állományok másolása  Registry használata Windows Registry Regedit.exe HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS (HKU) HKEY_CURRENT_CONFIG HKEY_PERFORMANCE_DATA HKEY_DYN_DATA Programozás módszertan vizsgatételek Illés Attila

101 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Szoftverkomponensek  Az IO komponensek használata Nyelvi eszköztár használata IO komponensek használata #include <stdio.h> int main () { FILE * pFile; pFile = fopen ("myfile.txt","w"); if ( pFile != NULL ) fputs ("example", pFile); fclose ( pFile ); } return 0; } Komplett hibakezelés Sokféle fájl formátum Hálózati elérés kezelése Grafikus felület Portolhatóság Programozás módszertan vizsgatételek Illés Attila

102 Programozás módszertan
8. Tétel Egy már kész rendszerhez telepítő programot készít. Mik egy ilyen program feladatai és hogyan oldaná ezt meg? Telepítő csomagok  Install és uninstall program kialakítása Install Uninstall Könyvtár és menü készítése Könyvtár és fájl törlés Jogosultságok  másolás Menü és ikon törlése Registry bejegyzések Registry bejegyzések törlése Vizsgálatok Programozás módszertan vizsgatételek Illés Attila

103 Programozás módszertan
9. Tétel Programozás módszertan vizsgatételek Illés Attila

104 Programozás módszertan
9. Tétel Egy rendszert kell dokumentálnia. Mik lesznek ennek a legfontosabb jellemzői? Milyen hátrányai vannak a nem megfelelő dokumentálásnak? Programozás módszertan vizsgatételek Illés Attila

105 Programozás módszertan
9. Tétel Egy rendszert kell dokumentálnia. Mik lesznek ennek a legfontosabb jellemzői? Milyen hátrányai vannak a nem megfelelő dokumentálásnak? Információtartalom vázlata Dokumentálás (dokumentumtípusok)  UML diagramok fajtái Kódolás  Kommentezés módszerei Szoftverkomponensek  A rendszer architektúrájának felépítése Programozás módszertan vizsgatételek Illés Attila

106 Programozás módszertan
9. Tétel Egy rendszert kell dokumentálnia. Mik lesznek ennek a legfontosabb jellemzői? Milyen hátrányai vannak a nem megfelelő dokumentálásnak? Dokumentálás (dokumentumtípusok)  UML diagramok fajtái (később) Fejlesztői dokumentum Felhasználói dokumentum Feladatspecifikáció Operátori leírás Felhasználói leírás Input / Output adatok Telepítési követelmény Indítás Adatok (típus) leírása Telepítés paraméterezése Használat Programlista Konfigurálás Tesztelés adatai Biztonsági mentések Programozás módszertan vizsgatételek Illés Attila

107 Programozás módszertan
9. Tétel Egy rendszert kell dokumentálnia. Mik lesznek ennek a legfontosabb jellemzői? Milyen hátrányai vannak a nem megfelelő dokumentálásnak? Diagram Struktúrális diagram Viselkedési diagram Osztály diagram Komponens diagram Objektum diagram Aktivitás diagram Use Case diagram Állapotgép diagram Interakciós diagram Összetett struktúra diagram Telepítési diagram Csomag diagram Szekvencia diagram Interakciós áttekintő Kommunikációs diagram Idő diagram Programozás módszertan vizsgatételek Illés Attila

108 Programozás módszertan
10. Tétel Programozás módszertan vizsgatételek Illés Attila

109 Programozás módszertan
10. Tétel Egy összetett felhasználó felületet kell terveznie. Ezt milyen szempontok alapján tenné meg, hogy az átlátható, logikus és felhasználóbarát legyen? Programozás módszertan vizsgatételek Illés Attila

110 Programozás módszertan
10. Tétel Egy összetett felhasználó felületet kell terveznie. Ezt milyen szempontok alapján tenné meg, hogy az átlátható, logikus és felhasználóbarát legyen? Információtartalom vázlata Az elemek formai meghatározása Könnyen használható felület kialakítása Navigáció megtervezése Ablakok nyitásának sorrendje Navigáció és interakciók fejlesztése Események kezelése Felhasználói felületek Ablakozó rendszer alapelvei Szerzői rendszerek Grafikus rendszerek használata Programozás módszertan vizsgatételek Illés Attila

111 Programozás módszertan
11. Tétel Programozás módszertan vizsgatételek Illés Attila

112 Programozás módszertan
11. Tétel Egy cégnél azt a feladatot kapja, hogy többnyelvű legyen a felhasználói felület. Milyen módszert használna ennek megvalósításához? Programozás módszertan vizsgatételek Illés Attila

113 Programozás módszertan
11. Tétel Egy cégnél azt a feladatot kapja, hogy többnyelvű legyen a felhasználói felület. Milyen módszert használna ennek megvalósításához? Információtartalom vázlata Rendszerek (elemek, jellemzők)  Adatbázis nyelvi tábláinak kialakítása Alkalmazásfejlesztés lépései és feladatai  Felület kialakítása, elemek szövegeinek cseréje Programtervezési módszerek  A felület elemeinek bejárása Programozás módszertan vizsgatételek Illés Attila

114 Programozás módszertan
12. Tétel Programozás módszertan vizsgatételek Illés Attila

115 Programozás módszertan
12. Tétel Egy Ön által fejlesztett programot többen is használnak egy helyi hálózatban. Milyen módon oldaná meg, hogy az új programverziók felhasználói beavatkozás nélkül jussanak el a kliens gépekre? Programozás módszertan vizsgatételek Illés Attila

116 Programozás módszertan
12. Tétel Egy Ön által fejlesztett programot többen is használnak egy helyi hálózatban. Milyen módon oldaná meg, hogy az új programverziók felhasználói beavatkozás nélkül jussanak el a kliens gépekre? Információtartalom vázlata Rendszerek működésének tervezése  Frissítő program kialakítása Szoftver architektúra kialakítása  A rendszer egyes elemeinek kommunikációja Szoftverkomponensek  Dinamikus könyvtárak (dll) használata Telepítő csomagok  Új verzió lekérése Programozás módszertan vizsgatételek Illés Attila

117 Programozás módszertan
13. Tétel Programozás módszertan vizsgatételek Illés Attila

118 Programozás módszertan
13. Tétel Egy adott rendszer fejlesztésénél milyen szempontok alapján választaná ki az adatbázis-kezelő rendszert, a fejlesztő eszközt, illetve a programozási nyelvet? Programozás módszertan vizsgatételek Illés Attila

119 Programozás módszertan
13. Tétel Egy adott rendszer fejlesztésénél milyen szempontok alapján választaná ki az adatbázis-kezelő rendszert, a fejlesztő eszközt, illetve a programozási nyelvet? Információtartalom vázlata Eszközkörnyezet meghatározása  Adatbázis-kezelők, fejlesztőeszközök előnyei, hátrányai Rendszerek működésének tervezése  A létrehozandó rendszer optimális működésének feltételei Alkalmazásfejlesztő eszközök  Fejlesztő eszközök összehasonlítása Programozás módszertan vizsgatételek Illés Attila

120 Programozás módszertan
14. Tétel Programozás módszertan vizsgatételek Illés Attila

121 Programozás módszertan
14. Tétel Egy program fejlesztőjeként milyen érvekkel győzné meg a fejlesztő cégét, hogy objektum-orientált módszert használjon a strukturált helyett? Programozás módszertan vizsgatételek Illés Attila

122 Programozás módszertan
14. Tétel Egy program fejlesztőjeként milyen érvekkel győzné meg a fejlesztő cégét, hogy objektum-orientált módszert használjon a strukturált helyett? Információtartalom vázlata Szoftver architektúra kialakítása  UML, objektumok kommunikációja Adatszerkezetek, objektumok  Objektumok használatának előnyei Programtervezési módszerek  Objektumok újrahasznosítása  Polimorfizmus Felhasználói felületek  Template felületek  Öröklések előnyei Programozás módszertan vizsgatételek Illés Attila

123 Programozás módszertan
14. Tétel Egy program fejlesztőjeként milyen érvekkel győzné meg a fejlesztő cégét, hogy objektum-orientált módszert használjon a strukturált helyett? Polimorfizmus: int cube( int inumber );             long cube( long lnumber );             double cube( double dnumber ); class Osztálynév { Private: int i; double ertek; Public: Osztálynév() // konstruktor {…} ~Osztálynév() // destruktor int maxDB; int szamol (int a, int b) Protected: }; Programozás módszertan vizsgatételek Illés Attila

124 Programozás módszertan
15. Tétel Programozás módszertan vizsgatételek Illés Attila

125 Programozás módszertan
15. Tétel Ön egy program fejlesztésének részeként keretrendszert ír. Mik azok a legfontosabb elvek, ami alapján kialakítja ezt? Programozás módszertan vizsgatételek Illés Attila

126 Programozás módszertan
15. Tétel Ön egy program fejlesztésének részeként keretrendszert ír. Mik azok a legfontosabb elvek, ami alapján kialakítja ezt? Információtartalom vázlata Rendszerek (elemek, jellemzők)  Adatbázis-kapcsolatok, osztály-kapcsolatok Sokszor használt elemek  Kommunikációs kapcsolatok (felületek) fejlesztése  Adat-érzékeny komponensek használata Alkalmazásfejlesztés lépései és feladatai  Redundáns részek kiemelése Programozás módszertan vizsgatételek Illés Attila

127 Programozás módszertan
15. Tétel Ön egy program fejlesztésének részeként keretrendszert ír. Mik azok a legfontosabb elvek, ami alapján kialakítja ezt? Programozás módszertan vizsgatételek Illés Attila

128 Programozás módszertan
16. Tétel Programozás módszertan vizsgatételek Illés Attila

129 Programozás módszertan
16. Tétel Ön egy sakk játékprogramot fejleszt. Milyen architektúrát alakítana ki, hogy a program könnyen karbantartható és továbbfejleszthető legyen? Programozás módszertan vizsgatételek Illés Attila

130 Programozás módszertan
16. Tétel Ön egy sakk játékprogramot fejleszt. Milyen architektúrát alakítana ki, hogy a program könnyen karbantartható és továbbfejleszthető legyen? Információtartalom vázlata Rendszerek működésének tervezése  Objektum-orientált rendszer kialakítása Programtervezési módszerek  Adatbázis-, illetve filekezelés használata Felhasználói felületek  Grafikus rendszerek (GDI, OpenGL, DirectX) használata  A sakkfigurák, mint objektumok Programozás módszertan vizsgatételek Illés Attila

131 Programozás módszertan
16. Tétel Ön egy sakk játékprogramot fejleszt. Milyen architektúrát alakítana ki, hogy a program könnyen karbantartható és továbbfejleszthető legyen? Rendszerek működésének tervezése  Objektum-orientált rendszer kialakítása class Mezo { Private: TColor szin; TPos2d pozicio; Public: Bool Vanrajtababu; String Melyikbabu; Mezo( TColor szine ) {…} ~Mezo() {…} void Rajzol() {…} void StatuszBeallitas() {…} } class Figura { Private: Tpos ittvagyok; // konstruktorban // kezdő értékadás Public: Figura( Tpos ide) {…} ~Figura() {…} void Rajzol() {…} Bool Lepes( Tpos hova ) {…} } Programozás módszertan vizsgatételek Illés Attila

132 Programozás módszertan
16. Tétel Ön egy sakk játékprogramot fejleszt. Milyen architektúrát alakítana ki, hogy a program könnyen karbantartható és továbbfejleszthető legyen? Felhasználói felületek  Grafikus rendszerek (GDI, OpenGL, DirectX) használata GDI OpenGL DirectX Képek Ingyenes SDK Ingyenes SDK Szövegek Képek, szövegek Képek, szövegek Menük Menük, 3d modellek Menük, 3d modellek WYSIWYG Virtuális világok, Játékok Játékok PC, XBOX 360 Programozás módszertan vizsgatételek Illés Attila

133 Programozás módszertan
17. Tétel Programozás módszertan vizsgatételek Illés Attila

134 Programozás módszertan
17. Tétel Egy csevegő (chat) program fejlesztésénél milyen lehetőségeket ismer, ami a gépek közötti kommunikációt valósítja meg? Programozás módszertan vizsgatételek Illés Attila

135 Programozás módszertan
17. Tétel Egy csevegő (chat) program fejlesztésénél milyen lehetőségeket ismer, ami a gépek közötti kommunikációt valósítja meg? Információtartalom vázlata Kommunikációs kapcsolatok (felületek) fejlesztése  Felhasználó felület kialakítása Eseménykezelés  Üzenetküldés lehetőségei Szoftverkomponensek  TCP/IP, http protokoll lehetőségei  Osztott objektumok használata Programozás módszertan vizsgatételek Illés Attila

136 Programozás módszertan
17. Tétel Egy csevegő (chat) program fejlesztésénél milyen lehetőségeket ismer, ami a gépek közötti kommunikációt valósítja meg? Eseménykezelés  Üzenetküldés lehetőségei 1. emberke Internet TCP / IP HTTP 2. emberke Programozás módszertan vizsgatételek Illés Attila

137 Programozás módszertan
17. Tétel Egy csevegő (chat) program fejlesztésénél milyen lehetőségeket ismer, ami a gépek közötti kommunikációt valósítja meg? Szoftverkomponensek  TCP/IP, HTTP protokoll lehetőségei  Osztott objektumok használata TCP/IP protokollhierarchia Protokollok Alkalmazási FTP, HTTP, IMAP, POP3, SMTP, SSH, Telnet, Bittorrent, … Szállítási TCP, UDP, … Hálózati IPv4, IPv6, … Adatkapcsolati Ethernet, Wi-Fi, Token ring, … Fizikai RS-232, 10Base-TX, 100Base-TX, 1000Base-T, … Programozás módszertan vizsgatételek Illés Attila

138 Programozás módszertan
18. Tétel Programozás módszertan vizsgatételek Illés Attila

139 Programozás módszertan
18. Tétel Egy szoftverfejlesztő cég vezető-fejlesztőjeként milyen szempontok alapján osztaná szét a feladatokat az egyes fejlesztők között? Programozás módszertan vizsgatételek Illés Attila

140 Programozás módszertan
18. Tétel Egy szoftverfejlesztő cég vezető-fejlesztőjeként milyen szempontok alapján osztaná szét a feladatokat az egyes fejlesztők között? Információtartalom vázlata Rendszerek (elemek, jellemzők)  Előző rendszerek szerkezete  Fejlesztők előző munkái Rendszerfunkciók tervezése  Jól szétválasztható modulok készítése Szoftver architektúra kialakítása  Felülettervezés, üzleti logika, adatbázis kapcsolatok Programozás módszertan vizsgatételek Illés Attila

141 Programozás módszertan
19. Tétel Programozás módszertan vizsgatételek Illés Attila

142 Programozás módszertan
19. Tétel Milyen kódolási konvenciókat vezetne be egy csoportmunkában fejlesztő cégnél, hogy a lehető leghatékonyabb módon történjen a munkavégzés? Programozás módszertan vizsgatételek Illés Attila

143 Programozás módszertan
19. Tétel Milyen kódolási konvenciókat vezetne be egy csoportmunkában fejlesztő cégnél, hogy a lehető leghatékonyabb módon történjen a munkavégzés? Információtartalom vázlata Alapfogalmak (elágazás, ciklus stb.)  Ciklusok egységes használata Programozási tételek (alapalgoritmusok)  Algoritmusok kiválasztása Kódolás  Változók, osztályok stb. elnevezése Programozás módszertan vizsgatételek Illés Attila

144 Programozás módszertan
20. Tétel Programozás módszertan vizsgatételek Illés Attila

145 Programozás módszertan
20. Tétel Milyen módszerrel tesztelné az Ön által fejlesztett modult, amely egy másik programozó által írandó modult használná, de az még nincs teljesen kész? Programozás módszertan vizsgatételek Illés Attila

146 Programozás módszertan
20. Tétel Milyen módszerrel tesztelné az Ön által fejlesztett modult, amely egy másik programozó által írandó modult használná, de az még nincs teljesen kész? Információtartalom vázlata Tesztelési ismeretek (teszttípusok)  Fekete és fehér doboz módszerek Adatszerkezetek, objektumok  Virtuális működés kialakítása  Interfészek használata Tesztelés, hibakeresés  A modul összes funkciójának tesztelése Programozás módszertan vizsgatételek Illés Attila

147 Programozás módszertan
20. Tétel Milyen módszerrel tesztelné az Ön által fejlesztett modult, amely egy másik programozó által írandó modult használná, de az még nincs teljesen kész? Adatszerkezetek, objektumok  Virtuális működés kialakítása  Interfészek használata Saját modul Másik modul interfésze Másik modul Álműködés kiváltása Virtuális működés Programozás módszertan vizsgatételek Illés Attila


Letölteni ppt "Programozás módszertan"

Hasonló előadás


Google Hirdetések