Ladění, hledání chyb

MTR
Zkopírovat krátkou adresu (umime.to/MTR)
Ukázat QR kód

umime.to/MTR


Stáhnout QR kód
Ukázat/skrýt shrnutí

Jen málokdy napíšeme napoprvé bezchybný kód. Riziko chyb snižuje snaha o kvalitní kód, chybám se ale zcela nevyhneme, proto je potřeba chyby aktivně hledat. Chyby v kódu se někdy označují anglickým termínem bug. Proces ověřování správnosti kódu nazýváme testování, proces zjišťování příčiny chyby a její odstranění nazýváme ladění (někdy též „debugování“, angl. „debugging“).

Typy chyb

Rozlišujeme chyby syntaktické (chybný zápis programu – program nelze spustit) a sémantické (program se vykoná, ale nesplňuje požadované chování). Speciálním případem sémantické chyby je zacyklení (program se nikdy nezastaví, např. protože podmínka cyklu nikdy nepřestane platit).

Příklady chyb

Několik příkladů častých sémantických chyb:

  • prohození pořadí příkazů (např. pořadí zatáčení a posunu vpřed)
  • chybný počet opakování cyklu
  • chybné vymezení těla cyklu (např. chybí odsazení příkazu, který se má opakovat)
  • záměna cyklu a podmíněného příkazu (dokud místo pokud)
  • záměna ostré a neostré nerovnosti (x < y místo x ≤ y)
  • záměna logické spojky (P a Q místo P nebo Q)
  • prohození srovnávaných proměnných (x < y místo y < y)
  • prohození přiřazované proměnné a hodnoty (x ← y místo y ← x)
  • záměna proměnných (použití chybné proměnné, hrozí zejména při nevhodném pojmenování)
  • použití špatného typu proměnné (řetězec “3” místo čísla 3)
  • chybná hodnota parametru (např. nesprávný úhel, o který je potřeba zatočit)
  • záměna argumentů při volání funkce (f(a, b) místo f(b, a))
  • záměna výpisu a vrácení z funkce (vypiš místo vrať)

Znalost běžných chyb umožňuje zaměřit při ladění pozornost na místa, kde by se mohla chyba ukrývat.

Postup při ladění programu

Pokud program nevrací správné výsledky, spustíme si ho krok po kroku a sledujeme, kdy se odchýlí od našeho očekávání. Pokud program netvoří grafický výstup, lze si hodnoty proměnných průběžně vypisovat, nebo použít nástroj, který umožňuje program krokovat a sledovat hodnoty proměnných (tzv. debugger). Místo v programu, kde se program odchyluje od našeho očekávání, zkusíme upravit.

Tipy k ladění programů

  • Po každé úpravě je vhodné program znova spustit, abychom si ověřili efekt úpravy.
  • Pokud není jasné, jak přesně kód upravit (např. o jaký úhel zatočit), může pomoct nakreslit si obrázek.
  • Pokud není jasné, proč se v nějakém bodě program chová určitým způsobem, je lepší to nejprve pochopit, než začneme dělat změny.
  • Pokud si nejsme jistí, co dělá některá použitá jazyková konstrukce (příkaz, operátor), vyhledáme si její chování na internetu a ověříme naše porozumění vyzkoušením jednoduchého kódu s danou konstrukcí.
  • Pokud je kód zbytečně složitý nebo používá nevhodná jména proměnných, může být po odstranění těchto nedostatků (např. přejmenování proměnných) chyba zjevná.
  • Rozložení do funkcí usnadní hledání chyby – můžeme totiž testovat jednotlivé funkce izolovaně.
Souhrn mi pomohl
Souhrn mi nepomohl
Souhrn je skryt.

Krok po kroku

Doplňování jednotlivých kroků v rozsáhlejším postupu.


Ladění, hledání chyb  
Zobrazit souhrn tématu
Ladění programů
Ladění programů s proměnnými


Želví grafika

Vykreslování obrázků želví grafikou za využití blokového programování.


Ladění obrázků

V této sadě máte připravené programy, které jsou skoro správně. Ale jenom skoro. Zkuste v nich najít chybu a opravit ji.



ProgMalování

Tvorba obrázků skládáním základním tvarů (např. kruh, čtverec), využití blokového programování.


Ladění obrázků

Důležitou součástí programování je ladění, tedy hledání chyb a jejich opravování. V této sadě si to můžete natrénovat: dostanete připravený program a jen ho musíte mírně doladit.



NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence