Informatikai gyakorlatok 11. évfolyam

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

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.
Programozási feladatok
Hatékonyságvizsgálat, dokumentálás
3. A programozás eszközei, programozás-technikai alapismeretek
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hibakezelés és Tesztelés a Visual Studio.NET-ben
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Programozási alapismeretek 9. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/
Programozás alapjai.
Programozás II. 3. Gyakorlat C++ alapok.
C A C nyelv utasításai.
Java Típuskonverziók.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Vizuális és web programozás II.
Bevezetés a C++ programozási nyelvbe
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Programozás alapismeretek
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
Programozás Az adatokról C# -ban.
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
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”
Ismétlés.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Ciklusok (iterációk).
Szintaktikai, szemantikai szabályok
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
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.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Turbo Pascal Indítás: C:\LANGS\Turbo Pascal Turbo Pascal.
Visual Basic 2008 Express Edition
Java programozási nyelv Tömbök
Programozási tételek.
Programozás III KIVÉTEL.
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 7. előadás.
Programozás, programtervezés
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
C Programozási alapok.
Programozás III KIVÉTEL. KIVÉTELKEZELÉS Hibátlan program nincs!!! eddig hiba esetén leállt a program. Példa ilyen hibákra: ─ ArrayBoundsOfException (tömb.
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Informatikai gyakorlatok 11. évfolyam
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Kivételek kezelése, ellenőrzött adatbevitel Czigléczky Gábor 2009.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Windows Forms alkalmazás készítése Czigléczky Gábor 2009.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Programozás alapjai Készítette: Csiszár Nóra Anita
Script nyelvek előadás
Adatstruktúrák Algoritmusok Objektumok
Script nyelvek előadás
Informatikai gyakorlatok 11. évfolyam
a programegységek között
Gépészeti informatika (BMEGEMIBXGI)
Programozási nyelvek típusossága.
Script nyelvek előadás
Programozás C# -ban Elágazások.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Gazdaságinformatikus MSc
Programozási nyelvek alapfogalmai
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
ITERÁCIÓ.
Gazdaságinformatikus MSc
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

Informatikai gyakorlatok 11. évfolyam Hibák, hibaüzenetek és kezelésük Czigléczky Gábor 2009 TÁMOP 2.2.3-07/1-2F-2008-0011

Hibák csoportosítása A programozás során óhatatlanul hibákat vétünk. Ezeket a hibákat két fő csoportra tudjuk osztani: Szintaktikai: formai hiba, azaz a programozási nyelv szabályainak figyelmen kívül hagyása. Szemantikai: tartalmi hiba, azaz egy rossz vagy rosszul kódolt algoritmus miatt a program nem vagy hibásan működik.

Szintaktikai hibák (1.) A fordítóprogram ezeket minden esetben kiszűri. A szintaktikai hibás program nem lefordítható, amíg mindent ki nem javítottunk benne. A fejlesztői környezet sok esetben felajánlja a hiba javítását. Videó: Szintaktikai hibák és javításuk

Szintaktikai hibák (2.) Leggyakoribb hibaüzenetek: ’karakter’ expected (Az adott helyről a megadott karakter – ; { } – hiányzik.) Cannot implicitly convert type ’típus1’ to ’típus2’ (Nem lehet automatikusan az egyik típusról a másikra konvertálni. Tipikus hiba, amikor string típusú értéket akarunk valamilyen szám típusú változónak értékül adni.)

Szintaktikai hibák (3.) Leggyakoribb hibaüzenetek: Operator ’op’cannot be applied to operands of type ’típus1’ and ’típus2’ (Az adott műveleti jel nem alkalmazható az adott típusokra, például egy string és egy int típusú változó nem osztható el egymással.) Use of unassigned local variable ’változónév’ (Az adott változót úgy akartuk használni, hogy nem adtunk neki előtte értéket.)

Szintaktikai hibák (4.) Leggyakoribb hibaüzenetek: The name ’név’ does not exist in the current context (Leggyakrabban akkor fordul elő, amikor elgépelünk valamit: egy változó nevét, vagy kulcsszót, és a fordító számára az így keletkezett hibás név nem értelmezhető az adott blokkban.) Megjegyzés: a C# nyelvben blokknak nevezzük a programkód azon részét, amit a { és } jelek fognak közre.

Szemantikai hibák (1.) A program formailag hibátlan, azonban mégsem működik jól. Hibajelenségek: Nem a várt eredményt adja Nem fejeződik be a futása („lefagy”) Hibaüzenettel leáll a futása (kivételt dob, lásd a következő fejezetben)

Szemantikai hibák (2.) Lehetséges okok: Nem a várt eredményt adja Rossz algoritmusból indultunk ki, vagy rosszul kódoltunk (például ciklusban nulláztunk, vagy osztottunk, amikor nem kellett volna). Nem fejeződik be a futása („lefagy”) Elrontottuk a ciklusfeltételt, vagy nem változtatjuk a ciklusváltozó értékét a ciklusmagban, ezért végtelen ciklus az eredmény. Hibaüzenettel leáll a futása (kivételt dob, lásd a következő fejezetben) Nullával osztottunk, vagy szám helyett szöveget írtunk be.

Hibakeresési eszközök (1.) Lépésenkénti futtatás Az F11 billentyű lenyomásával a programot soronként, utasításonként futtathatjuk, és figyelhetjük az eredményeket. Lokális változók figyelése (Locals) Figyelemmel tudjuk kísérni a lokális változók aktuális értékét, így láthatjuk, melyik lépésben válik rosszá az eredmény. Töréspont beiktatása A program futását egy adott helyen megszakíthatjuk, ahol úgy sejtjük, hogy „elromlik”. Videó: Hibakeresési és nyomkövetési eszközök

Hibakeresési eszközök (2.) Hibás program javítási lépései: Töréspont beiktatása Oda célszerű elhelyezni, ameddig szerintünk jól működik a program. Lépésenkénti futtatás A törésponttól indítva futtassuk lépésenként a programot. Lokális változók figyelése (Locals) A lépésenkénti futtatás közben kísérjük figyelemmel a lokális változók aktuális értékét. Javítás, és azonnali folytatás A hiba kijavítása után használhatjuk az „Edit and Continue” funkciót, azaz a programot a teljes újrafordítás nélkül kipróbálhatjuk, és rögtön láthatjuk a javítás eredményét.