Rady a často kladené dotazy

Často kladené dotazy

  • Jak psát apostrofy nebo jiné znaky anglické klávesnice? TODO
  • Jak je to s různými kompilátory v CodExu? TODO
    • Free Pascal, GNU Pascal, GNU Pascal emulující Turbo Pascal
    • Od 21.11.2009 bude k dispozici pouze Free Pascal

Rady

  • Odsazujte podle logické struktury programu, vkládejte rozumně prázdné řádky.
  • Komentujte svá řešení. Bez komentářů se v tom nevyzná nejen jiný člověk, ale po čase ani vy.
  • Studnice vědomostí a návod pro přístup k ní

Typické problémy -> rady

Z 8. cvičení.

  • chybí komentáře
    • popis programu - aspoň jedna věta, co program řeší
    • popis funkcí a procedur, proměnných, popis algoritmů
  • špatné odsazování - v kódu se nikdo nevyzná
  • chybí rozdělení do podprogramů, vše se řeší na globální úrovni
  • špatně pojmenované proměnné
    • není srozumnitelné, k čemu proměnné slouží
  • program je užvaněný - vypisuje, co podle zadání nemá vypisovat
  • odevzdaný program nejde zkompilovat
    • před odevzdáním nebyl odladěn
    • nebyl vyzkoušen ve FreePascalu, který se nyní bude výlučně používat v CodExu
  • nesmyslné použítí proměnných
    • například hafo proměnných místo pole
  • program není rozumně rozšiřitelný nebo měnitelný i při malé změně zadání
    • natvrdo zadané hodnoty, místo konstant
  • běhové chyby
    • indexování mimo hranice pole
    • přetečení zásobníku (zacyklení) - např. při špatně ukončené rekurzi
  • program neřeší nebo řeší špatně okrajové případy
    • prázdný string, string velikosti 1, číslo = 0, záporné číslo, …
  • nesmyslné porovnávání logických proměnných
    • if (BoolPromenna = TRUE) then writeln('TRUE') else writeln('FALSE') end;
    • if (Vyraz) then Promenna := TRUE else Promenna := FALSE end;
  • odevzdávání zkompilovaného EXE souboru místo zdrojáku
  • debugování v CodExu místo u sebe
    • nejdřív si svůj program otestuji na dostupných vzorových testovacích datech a napíšu si svoje rozumné testy, pak teprv odevzdávám
  • kombinace češtiny a angličtiny ve zdrojáku
  • zbytečné opakování stejných výpočtů
  • to, že program prošel CodExem, neznamená, že program je v pořádku
  • komentáře v programu neodpovídají tomu, co program opravdu dělá
    • jsou typicky neaktuální
  • pole jsou číslována dost neintuitivně
    • může mást dalšího programátora, nebo původního po delší době
  • další rady
    • lepší je jednoduchost než zbytečná chytrost
      • kdo se má vyznat po čase v geniálním programu, když jej lze těžko pochopit, protože není rozumně popsaný?

Testovací vstup v souboru

Máte-li program, který tahá data ze standardního vstupu, není při ladění příliš praktické pokaždé zadávat data ručně. Užitečnější je programu na vstup zadat data ze souboru. To lze provést pomocí takzvaného přesměrování vstupu.

Návod (pro Windows):

Zjistěte, do kterého adresáře vám Borland Pascal (resp. Free Pascal) ukládá zkompilované zdrojáky (*.exe). Typicky se jedná o stejný adresář, ve kterém jsou uloženy původní zdrojáky (*.pas, *.fp, …).

Otevřete si konzoli. Například pomocí: Start→Spustit:

cmd

Přejděte do zmíněného adresáře pomocí příkazu do konzole. Např.:

cd C:\programs\bpascal

Zkuste si spustit svůj program:

mujprogram.exe

Připravte si vstupní soubor, např. vstup.txt. Pozor, aby na konci byla prázdná řádka, jinak program bude čekat na ukončení vstupu. Konečně program s přesměrováním vstupu spustíte pomocí příkazu ve tvaru:

mujprogram.exe < vstup.txt

Co dále? Takto si můžete vstup připravovat ve svém oblíbeném editoru, můžete jej mít uložený a opakovaně používat. Můžete používat i více vstupnéch souborů s různými testovacími daty.

V Linux by se pracovalo velmi podobně. Přesměrování vstupu v linuxové konzoli (shellu) má stejnou syntax, používá se také znak <.

 
vyuka/2009-10/rady.txt · Poslední úprava: 2009/11/21 16:39 autor: bohous
 
Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki