Programozási alapismeretek 9. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/362014. 07. 14.2014. 07. 14.2014. 07. 14.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
H IBAKERESÉS, HIBAJAVÍTÁS. H IBAJELENSÉGEK Szintaktikai hiba:  Csak értelmezés esetén fordul elő, hiszen a fordítóprogramok korábban, még a fordítási.
Rendszerfejlesztés gyakorlat - © Fülöp Lajos
Programozási alapismeretek
Programozási alapismeretek 9. előadás
A webes tesztelés jövője
Programozási alapismeretek 5. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 5.2/  Programozási tételek.
Programozási alapismeretek 6. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 6.2/  Rekordok/struktúrák.
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
INFOÉRA Kombinatorikai algoritmusok (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Algoritmizálás, adatmodellezés tanítása 4. előadás
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozási ismeretek oktatása: kód vagy algoritmus
Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/  A szöveg A szöveg.
Programozási alapismeretek 2. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 2.2/  Adatokkal kapcsolatos.
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Programozási alapismeretek 3. előadás
Programozási alapismeretek 13. előadás. ELTE Érdekességek - kombinatorika  Az iskola bejáratánál N lépcsőfok van. Egyszerre maximum K fokot tudunk lépni,
Programozási alapismeretek
Programozási alapismeretek 1. előadás
Programozási alapismeretek 10. előadás
Programozási alapismeretek 5. előadás. ELTE 2/  Programozási tételek – a lényeglényeg  Sorozatszámítás Sorozatszámítás.
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Programozási alapismeretek 11. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom.
Programozási alapismeretek 12. előadás. ELTE  Tapasztalatok a rendezésről Tapasztalatok a rendezésről  Keresés rendezett sorozatban Keresés rendezett.
Borland C/C++ mintapéldák
Gombkötő Attila Lineáris egyenlet.
Készítette: Pető László
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 8.1/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 10.1/ Összegzés mátrixra Feladat: Egy mátrix elemeinek összege.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Sorozatszámítás Specifikáció (a végleges) :  Bemenet:
ELTE Szlávi-Zsakó: Programozási alapismeretek Szlávi-Zsakó: Programozási alapismeretek 3. 1/
Vizuális és web programozás II.
Nyíregyházi Főiskola 1 Szoftvertesztelés Előadó: Dr. Nagy Mihály Előadó: Dr. Nagy Mihály WEB: WEB:
A problémamegoldás lépései
ELTE Adatokkal kapcsolatos fogalmak  Konstans: az az adat, amely a műveletvégzés során nem változtat(hat)ja meg értékét, mindvégig ugyanabban az „állapotban”
Szintaktikai, szemantikai szabályok
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Kölcsönös megfeleltetés december 20. Bányai Tibor, Univerpenta TSzK SZTIR Projekt Szaktanácsadási Tartalomszolgáltató Információs Rendszer.
A Dijkstra algoritmus.
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Rendszám Felismerő Rendszer Fajt Péter Vácz István
Dinamikus programozás
Programozás I. Típus algoritmusok
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Algoritmizálás, adatmodellezés tanítása 2. előadás.
Algoritmus és adatszerkezet Tavaszi félév Tóth Norbert1 Floyd-Warshall-algoritmus Legrövidebb utak keresése.
Programozási alapismeretek * A Zh-írás módszertana.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
WP-Dyna: tervezés és megerősítéses tanulás jól tervezhető környezetekben Szita István és Takács Bálint ELTE TTK témavezető: dr. Lőrincz András Információs.
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
Mohó algoritmusok Szlávi Péter ELTE IK
Grafikus programozás Készítette: Csernok László
Programozási alapismeretek 11. előadás
Programozási alapismeretek 2. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 2.2/  Adatokkal kapcsolatos.
Algoritmizálás, adatmodellezés tanítása 6. előadás.
Programozási alapismeretek 4. előadás. ELTE  Programozási tételek – a lényeglényeg  Sorozatszámítás – összegzés… Sorozatszámítás  Megszámolás.
Adatstruktúrák Algoritmusok Objektumok
Compiler illetve interpreter nyelvek
MINŐSÉG BS 4778 "Egy termék vagy szolgáltatás jellemzőinek és sajátosságainak összessége, amelyek együttesen egy adott szükséglet kielégítésére képesek".
Mesterséges intelligencia
Programozási alapismeretek 2. előadás
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Programozási tételek.
Algoritmusok és Adatszerkezetek I.
Előadás másolata:

Programozási alapismeretek 9. előadás

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/  Tesztelés – elvek + módszerek Tesztelés  Futtatás adatfájllal – C++ Futtatás adatfájllal  Hibakeresés Hibakeresés  Hibajavítás Hibajavítás  Dokumentálás + szövegszerkesztési minimum Dokumentálás  Programkészítési elvek Programkészítési elvek Tartalom

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Tesztelés Tesztelési fogalmak:  Teszteset = bemenet + kimenet  Próba = teszteset-halmaz  Jó teszteset: nagy valószínűséggel felfedetlen hibát mutat ki  Ideális próba: minden hibát kimutat  Megbízható próba: nagy valószínűséggel min- den hibát kimutat A „hiba” helyett jobb lenne „problémát” mondani, mivel a tesztelés nemcsak a hibakeresés, hanem a hatékonyságvizsgálat eszköze is. 3/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Tesztelés Tesztelési elvek:  Érvényes ( megengedett ) és érvénytelen ( hibás ) bemenetre is kell tesztelni.  Rossz a meg nem ismételhető (  nem adminisztrált ) teszteset.  Minden teszteset által nyújtott információt maximálisan ki kell használni ( a következő tesztesetek kiválasztásánál ).  Csak más ( mint a szerző ) tudja jól tesztelni a programot. 4/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Tesztelés Tesztelési módszerek:  Statikus tesztelés: a programszöveget vizs- gáljuk, a program futtatása nélkül.  Dinamikus tesztelés: a programot futtatjuk különböző bemenetekkel és a kapott ered- ményeket vizsgáljuk. A tesztelés eredménye:  hibajelenséget találtunk;  nem találtunk –még– hibát. 5/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Kódellenőrzés: o algoritmus  kód megfeleltetés o algoritmus+kód elmagyarázása másnak  Szintaktikus ellenőrzés: o fordítóprogram esetén automatikus, értelmező esetén – esetleg – sok futtatással  Szemantikus ellenőrzés, ellentmondás- keresés: o felhasználatlan érték ( i=1;for(i=2;… ) vagy változó o önmagának értékadás ( i=1*i+0 ) 6/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Szemantikus ellenőrzés, ellentmondás- keresés ( folytatás ) : o inicializálatlan változó i=1; while (i<=n) … (  for (i=1;i<=n;…)… ) 7/36 „Rafináltan inicializált” változó: int n; ← globális n … int fv() { for (int n=0;n<9;++n) ← lokális n { … n … ; ← lokális n felhasználása } return …n…; ← globális n-et tartalmazó formula }

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Szemantikus ellenőrzés, ellentmondás- keresés ( folytatás ) : o érték nélküli fv. 8/36 Szintaktikusan hibás C++-ban : int fv() { … return; ← … error: return-statement with no value, in function returning 'int'| } … de ez csak figyelmeztetést vált ki: int fv() { … } ← … warning: control reaches end of non-void function|

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Szemantikus ellenőrzés, ellentmondás- keresés (folytatás) : o azonosan igaz/hamis feltétel ( i>1 || i maxN ) o végtelen számlálós ciklus 9/36 Talán egy while -os ciklus átírása során jött ki: for (int n=0;n<maxN;++n) { …; --n; ← sajnos nem okoz fordítási hibaüzenetet }

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Szemantikus ellenőrzés, ellentmondás- keresés (folytatás) : o végtelen feltételes ciklus ( i<N feltételű ciklusban sem i, sem N nem vagy „szin- kronban” változik) o konstans értékű, ( bár ) változókat tartalmazó kifejezés y=sin(x)*cos(x)-sin(2*x)/2 10/36 i=1; while (i<=N) { … i=1; ← talán i+=1 akart lenni? }

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés Tesztelési módszerek:  Fekete doboz módszerek (←nincs kimerítő be- menet halmaz– nem lehet minden lehetséges bemenetre kipróbálni): a teszteseteket a program specifikációja alapján optimálisan választjuk.  Fehér doboz módszerek (←nincs kimerítő út halmaz– nem lehet minden végrehajtási sor- rendre kipróbálni): a teszteseteket a program struktúrája alapján optimálisan választjuk. 11/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fekete doboz módszerek  Ekvivalencia-osztályok módszere: a bemeneteket (vagy a kimeneteket) soroljuk olyan osztályokba, amelyekre a program vár- hatóan egyformán működik; ezután osztá- lyonként egy tesztesetet válasszunk!  Határeset elemzés módszere: az ek- vivalencia-osztályok határáról válasszunk tesztesetet! 12/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fekete doboz módszerek  Feladat: Egy N természetes szám valódi (1- től és önmagától különböző) osztója… Ekvivalencia osztályok ( bemenet alapján ): o N prímszám: 3 o N-nek egyetlen valódi osztója van: 4 =2*2 o N-nek több, különböző valódi osztója is van: 6 =2*3 o N páros o N nem természetes szám Érvényes adatokra Érvénytelen adatokra 13/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fehér doboz módszerek Kipróbálási stratégiák:  utasítás lefedés: minden utasítást legalább egy- szer hajtsunk végre!  feltétel lefedés: minden feltétel legyen legalább egyszer igaz, illetve hamis!  részfeltétel lefedés: minden részfeltétel legyen legalább egyszer igaz, illetve hamis! Tesztadat-generálás:  automatikus tesztbemenet-előállítás Ezekhez továbbiakat talál itt: vi/PrM1felev/Pdf/PrTea7.p df vi/PrM1felev/Pdf/PrTea7.p df fejezetében vi/PrM1felev/Pdf/PrTea7.p df 14/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fehér doboz módszerek  Feladat: Egy N természetes szám valódi (1-től és önmagától különböző) osztója… Utasítás lefedés: o i:=i+1 végrehajtandó: N=9 o O:=i végrehajtandó (  Van=Igaz ): N=9 Feltétel lefedés: o Ciklusfeltétel igaz: N=3 o Ciklusfeltétel hamis: N=3 ( i=3 esetén ) o Elágazásfeltétel igaz (  Van=Igaz ): N=4 o Elágazásfeltétel hamis (  Van=Hamis ): N=3 15/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Speciális tesztelések  Biztonsági teszt: ellenőrzések vannak?  Hatékonysági teszt Speciális programokhoz  Funkcióteszt: tud minden funkciót?  Stressz-teszt: gyorsan jönnek a feldol- gozandók,...  Volumen-teszt: sok adat sem zavarja 16/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Futtatás adatfájllal (C++) Elv: A standard input/output átirányítható fájlba. Ekkor a program fájlt használ az inputhoz és az outputhoz. Következmény: szerkezetileg a kon- zol inputtal/outputtal megegyező kell legyen / lesz a megfelelő fájl. „Technika”: A lefordított kód mögé kell paraméterként írni a megfelelő fájlok nevét. prog.exe outputfájl Nyereség: Kényelmes és adminisztrálható tesztelés. Figyelem! Ha van outputfájl, akkor a kérdés szövege is abban „jelenik meg”. prog.exe >>outputfájl outputfájlhoz írás! 17/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Futtatás adatfájllal (C++) Demo: 1. Készítsen néhány bemeneti adatot tartalmazó fájlt (a konzol inputnak megfelelő szerkezetben) 2. Futtassa ezekkel az előbb elmondottak szerint: 1. prog.exe 1.ki 2. prog.exe 2.ki 3. … 3. Ellenőrizze a kimeneti fájlok tartalmát: olyan-e, amilyennek várta Megjegyzés: tovább egyszerűsítheti a tesztelést, ha egy batch állománnyal automatizálja a 2.-t! Valahogy így: próba…próba Kód jegyzet- ként 18/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresés Hibajelenségek a tesztelés során…  hibás az eredmény,  futási hiba keletkezett,  nincs eredmény,  részleges eredményt kaptunk,  olyat is kiír, amit nem vártunk,  túl sokat (sokszor) ír,  nem áll le a program,  … 19/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresés Célja: a felfedett hibajelenség okának ( helyének ) megtalálása. Elvek:  Eszközök használata előtt alapos végiggondolás.  Egy megtalált hiba a program más részeiben is okozhat hibát.  A hibák száma, súlyossága a program méretével nemlineárisan ( annál gyorsabban! ) nő.  Egyformán fontos, hogy miért nem csinálja a prog- ram, amit várunk, illetve, hogy miért csinál olyat, amit nem várunk.  Csak akkor javítani, ha megtaláltuk a hibát. 20/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresés Hibakeresési eszközök:  Változó-, memória-kiírás ( feltételes fordítás ) feltételes fordítás  Nyomkövetés ( hibától visszafelé is )  A hiba helyének és okának kijelzése  Töréspont elhelyezése  Lépésenkénti végrehajtás  Adat-nyomkövetés  Állapot-nyomkövetés ( pl. paraméterekre vonat- kozó előfeltételek, ciklus-invariánsok )  Speciális ellenőrzések ( pl. indexhatár ) 21/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresési módszerek Célja: bemenetnekmely  A bemenetnek mely része, amire hibásan működik a program?  Hol programban  Hol található a programban a hibát okozó utasítás? Módszerfajták: Indukciós módszer ( hibásak körének bővítése ) Dedukciós módszer ( hibásak körének szűkítése ) Hibakeresés hibától visszafelé Teszteléssel segített hibakeresés ( olyan teszteset kell, amely az ismert hiba helyét fedi fel ) hibásak nem hibásak 22/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresési módszerek Példa az indukciós módszerre: Feladat: 1 és 99 közötti N szám kiírása betűkkel  Tesztesetek: N=8  jó, N=17  jó, N=30  hibás  Próbáljunk a hibásakból általánosítani: tegyük fel, hogy minden 30-cal kezdődőre rossz!  Ha beláttuk (teszteléssel), akkor próbáljuk tovább általánosítani, pl. tegyük fel, hogy minden legalább 40-re rossz!  Ha nem tudjuk tovább általánosítani, akkor tudjuk mit kell keresni a hibás programban.  Ha nem ment az általánosítás, próbáljuk más- képp: hibás-e minden 0-ra végződő számra!  … 23/36 hibásak

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresési módszerek Példa a dedukciós módszerre: Feladat: 1 és 99 közötti N szám kiírása betűkkel  Tesztesetek: N=8  jó, N=17  jó, N=30  hibás  Tegyük fel, hogy minden nem jóra hibás!  Próbáljunk a hibás esetek alapján szűkíteni: tegyük fel, hogy a 20-nál kisebbekre jó!  Ha beláttuk (teszteléssel), akkor szűkítsünk tovább, jó-e minden legalább 40-re?  Ha nem szűkíthető tovább, akkor megtalál- tuk, mit kell keresni a hibás programunkban.  Ha nem, szűkítsünk másképp: tegyük fel, hogy jó minden nem 0-ra végződő számra!  … 24/36 nem hibásak

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibajavítás Célja: a megtalált hiba kijavítása. Elvek:  A hiba kijavítása a program más részében hibát okozhat ( rosszul javítunk, illetve korábban elfedett más hibát ).  A hibát kell javítani és nem a tüneteit.  Javítás után a tesztelés megismételendő!  A jó javítás valószínűsége a program méretével fordítva arányos.  A hibajavítás a tervezési fázisba is visszanyúlhat ( a módszertan célja: lehetőleg ne nyúljon vissza ). 25/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dokumentációk Fajtái:  Felhasználói dokumentáció  Fejlesztői dokumentáció  Programismertető  … 26/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Felhasználói dokumentáció Tartalma:  feladat (összefoglaló és részletes is)  környezetleírás  használat leírása (telepítés, kérdések + lehet- séges válaszok,...)  bemenő adatok, eredmények, szolgáltatások  mintaalkalmazások – példafutások  hibaüzenetek és a hibák lehetséges okai 27/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Fejlesztői dokumentáció Tartalma:  specifikáció, követelményanalízis  környezetleírás  adatleírás (feladatparaméterek reprezentálá- sa)  algoritmusok leírása, döntések, más alternatí- vák, érvek, magyarázatok  kód, implementációs szabványok, döntések  tesztesetek  hatékonysági mérések  fejlesztési lehetőségek 28/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szövegszerkesztési isme- retek a dokumentációhoz  Karakterformázás (szöveg, program)  Bekezdésformázás  Tabulátorok  Képbeillesztés (pl. a futás bemutatásához)  Oldalformázás  Táblázatok (struktogram, tesztek)  Egyenletszerkesztő (pl. a specifikációhoz)  Szervezeti diagram-készítő 29/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Programkészítési elvek  Stratégiai elv: a problémamegoldás logikája – a lépésenkénti finomítás.  Taktikai elvek: az algoritmuskészítés gondolati elvei a felülről lefelé kifej- téshez.  Technológiai elvek: algoritmus és kód módszertani kívánalmai.  Technikai elvek: kódolási technika.  Esztétikai, ergonómiai elvek: ember- közelség. 30/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Stratégiai elv: lépésenkénti finomítás  Felülről–lefelé (top–down) = probléma–dekomponálás, –analizálás.  Alulról–felfelé (bottom–up) = probléma–szintézis. 1. szint 2. szint 3. szint 31/36 Nem alternatívák!

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Taktikai elvek  Párhuzamos finomítás  Döntések elhalasztása  Döntések nyilvántartása  Vissza az ősökhöz  Nyílt rendszer felépítés ( általánosítás )  Párhuzamos ágak függetlensége  Szintenkénti teljes kifejtés  Adatok elszigetelése ( pl. alprogramokba helyezéssel + paraméterezéssel + lokális adatok deklarálásával ) 32/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Technológiai elvek  Struktúrák zárójelezése  Bekezdéses struktúrák  Kevés algoritmusleíró szabály  Értelmes sorokra tördelés  Beszédes azonosítók, kifejező névkon- venciók (pl. Hungarian Notation)Hungarian Notation 33/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Technikai elvek  Barátságosság  Biztonságosság  Jól olvashatóság 34/36

ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás Esztétikai/ergonómiai elvek  Lapokra tagolás, kiemelés, elkülönítés  Menütechnika  Ikontechnika, választás egérrel  Következetesség (beolvasás, kiírás,...)  Hibafigyelés, hibajelzés, javíthatóság  Súgó, tájékoztató  Ablakkezelés  Értelmezési tartomány kijelzése  Naplózás 35/36

Programozási alapismeretek 9. előadás vége