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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 1. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 2. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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
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
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.
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
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)
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
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.
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
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.
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
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.
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
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
Programozási tételek Keresések Keresés rendezett sorozatban Későbbi dián…
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)
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!
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
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)
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
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
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 [ 1..25 ] 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 ] := 34000 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 2010.
Programozás módszertan 3. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 4. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 5. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 5. Tétel Quick sort Programozás módszertan vizsgatételek
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 7 4 9 10 6 8 3 5 2 1 Pivot= 6 - i= 0 - j= 9 1 4 9 10 6 8 3 5 2 7 Pivot= 6 - i= 2 - j= 8 1 4 2 10 6 8 3 5 9 7 Pivot= 6 - i= 3 - j= 7 1 4 2 5 6 8 3 10 9 7 Pivot= 6 - i= 4 - j= 6 1 4 2 5 3 8 6 10 9 7 Pivot= 2 - i= 1 - j= 2 1 2 4 5 3 8 6 10 9 7 Pivot= 1 - i= 0 - j= 0 1 2 4 5 3 8 6 10 9 7 Pivot= 5 - i= 3 - j= 4 1 2 4 3 5 8 6 10 9 7 Pivot= 4 - i= 2 - j= 3 1 2 3 4 5 8 6 10 9 7 Pivot= 10 - i= 7 - j= 9 1 2 3 4 5 8 6 7 9 10 Pivot= 6 - i= 5 - j= 6 1 2 3 4 5 6 8 7 9 10 Pivot= 7 - i= 6 - j= 7 1 2 3 4 5 6 7 8 9 10 Pivot= 8 - i= 7 - j= 7 1 2 3 4 5 6 7 8 9 10 Végeredmény = 1 2 3 4 5 6 7 8 9 10 Programozás módszertan vizsgatételek
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 2010.
Programozás módszertan 6. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 7. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 8. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 9. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 10. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 11. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 12. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 13. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 14. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 15. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 16. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 17. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.
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 2010.
Programozás módszertan 18. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 19. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
Programozás módszertan 20. Tétel Programozás módszertan vizsgatételek Illés Attila 2010.
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 2010.
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 2010.
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 2010.