Ladenie, hľadanie chýb

MTR
Skopírovať kód témy
Skopírovať krátku adresu(viemeto.eu/MTR)
Ukázať QR kód

viemeto.eu/MTR


Stiahnuť QR kód

Iba málokedy napíšeme na prvý raz bezchybný kód. Riziko chýb znižuje snaha o kvalitný kód, chybám sa ale úplne nevyhneme, preto je treba chyby aktívne hľadať. Chyby v kóde sa niekedy označujú anglickým termínom bug. Proces overovania správnosti kódu nazývame testovanie, proces zisťovania príčiny chyby a jej odstránenia nazývame ladenie (niekedy tiež „debugovanie“, po anglicky „debugging“).

Typy chýb

Rozlišujeme chyby syntaktické (chybný zápis programu – program sa nedá spustiť) a sémantické (program sa vykoná, ale nespĺňa požadované správanie). Špeciálnym prípadom sémantickej chyby je zacyklenie (program sa nikdy nezastaví, napr. pretože podmienka cyklu nikdy neprestane platiť).

Príklady chýb

Niekoľko príkladov častých sémantických chyb:

  • prehodenie poradia príkazov (napr. poradie zatáčania a posunu vpred)
  • chybný počet opakovaní cyklu
  • chybné vymedzenie tela cyklu (napr. chýba odsadenie príkazu, ktorý sa má opakovať)
  • zámena cyklu a podmieneného príkazu (kým namiesto ak)
  • zámena ostrej a neostrej nerovnosti (x < y namiesto x ≤ y)
  • zámena logickej spojky (P a Q namiesto P alebo Q)
  • prehodenie porovnávaných premenných (x < y namiesto y < x)
  • prehodenie priraďovanej premennej a hodnoty (x ← y namiesto y ← x)
  • zámena premenných (použitie chybnej premennej, hrozí hlavne pri nevhodnom pomenovaní)
  • použitie nesprávneho typu premennej (reťazec “3” namiesto čísla 3)
  • chybná hodnota parametra (napr. nesprávny uhol, o ktorý je treba zatočiť)
  • zámena argumentov pri volaní funkcie (f(a, b) namiesto f(b, a))
  • zámena výpisu a vrátenia z funkcie (vypíš namiesto vráť)

Znalosť bežných chyb umožňuje zamerať pri ladení pozornosť na miesta, kde by sa mohla chyba ukrývať.

Postup pri ladení programu

Ak program nevracia správne výsledky, spustíme si ho krok za krokom a sledujeme, kedy sa odchýli od nášho očakávania. Ak program netvorí grafický výstup, je možné si hodnoty premenných priebežne vypisovať, alebo použiť nástroj, ktorý umožňuje program krokovať a sledovať hodnoty premenných (tzv. debugger). Miesto v programe, kde sa program odchyľuje od nášho očakávania, skúsime upraviť.

Tipy na ladenie programov

  • Po každej úprave je vhodné program znovu spustiť, aby sme si overili efekt úpravy.
  • Ak nie je jasné, ako presne kód upraviť (napr. o aký uhol zatočiť), môže pomôcť nakresliť si obrázok.
  • Ak nie je jasné, prečo sa v nejakom bode program správa určitým spôsobom, je lepšie to najskôr pochopiť, než začneme robiť zmeny.
  • Ak si nie sme istí, čo robí niektorá použitá jazyková konštrukcia (príkaz, operátor), vyhľadáme si jej správanie na internete a overíme naše porozumenie vyskúšaním jednoduchého kódu s danou konštrukciou.
  • Ak je kód zbytočne zložitý alebo používa nevhodné mená premenných, môže byť po odstránení týchto nedostatkov (napr. premenovaní premenných) chyba zjavná.
  • Rozloženie do funkcií uľahčí hľadanie chyby – môžeme totiž testovať jednotlivé funkcie izolovane.

Korytnačia grafika

Vykreslovanie obrázkov korytnačou grafikou s využitím blokového programovania.


Ladenie obrázkov



Maľovanie

Tvorba obrázkov skladaním základných tvarov (napr. kruh, štvorec), využitie blokového programovania.


Ladenie obrázkov



NAPÍŠTE NÁM

Ďakujeme za vašu správu, bola úspešne odoslaná.

Napíšte nám

Neviete si rady?

Pred položením otázky si, prosím, pozrite návody:

Prosíme, neposielajte otázky na prezradenie riešenia úloh alebo vysvetlenie postupu. Ak hlásite chybu, upresnite, prosím, v čom presne spočíva a pripojte snímku obrazovky.

Čoho sa správa týka?

Odkaz Hlásenie chyby Obsah Ovládanie Prihlásenie Licencia