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ýmnamiestoak) - zámena ostrej a neostrej nerovnosti (
x < ynamiestox ≤ y) - zámena logickej spojky (
P a QnamiestoP alebo Q) - prehodenie porovnávaných premenných (
x < ynamiestoy < x) - prehodenie priraďovanej premennej a hodnoty (
x ← ynamiestoy ← x) - zámena premenných (použitie chybnej premennej, hrozí hlavne pri nevhodnom pomenovaní)
- použitie nesprávneho typu premennej (reťazec
“3”namiesto čísla3) - chybná hodnota parametra (napr. nesprávny uhol, o ktorý je treba zatočiť)
- zámena argumentov pri volaní funkcie (
f(a, b)namiestof(b, a)) - zámena výpisu a vrátenia z funkcie (
vypíšnamiestovráť)
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.



















