mff

Markéta Popelová - Výuka

Programování 1

Ukázky programů ze cvičení - Programování 1

2. hodina (11.10.2012)

  1. Vyhledávání v setříděném seznamu - algoritmus zapsaný v pseudokódu.

3. hodina (18.10.2012)

  1. Načítání čísel I. - načtení n čísel: ukázka použití for-cyklu. Ke stažení: code.pas.
  2. Načítání čísel II. - načtení posloupnosti čísel ukončených -1: ukázka použití while-cyklu. Ke stažení: code.pas.
  3. Mini kalkulačka - procvičení podmínky (if). Ke stažení: code.pas.

4. hodina (25.10.2012)

  1. Dělitelé v intervalu - procvičení podmínky for-cyklu a operace mod. Ke stažení: code.pas.
  2. Kladná čísla - procvičení while-cyklu (trochu jiné zadání než na hodině). Ke stažení: code.pas.
  3. Obrácený výpis n čísel - procvičení for-cyklu a pole. Ke stažení: code.pas.
  4. Test prvočíselnosti I. - elegantní (ale ne ideálně efektivní) řešení pomocí while cyklu. Ke stažení: code.pas.
  5. Test prvočíselnosti II. - efektivnější řešení pomocí for-cyklu a boolean proměnné. Ke stažení: code.pas.

5. hodina (1.11.2012)

  1. Testík 1 - princezniny korále: první řešení. Ke stažení: code.pas.
  2. Testík 2 - princezniny korále: druhé řešení. Ke stažení: code.pas.
  3. Hádanka 1 - aneb pozor na indentaci, begin a end. Ke stažení: code.pas.
  4. Hádanka 2 - kreslení z hvězdiček. Ke stažení: code.pas.
  5. Hádanka 3 - aneb pozor na indenatci a středníky. Ke stažení: code.pas.
  6. Hádanka 4 - aneb pozor na závorky a prioritu operací. Ke stažení: code.pas.
  7. NSD 1 - pomalá verze Euklidova algoritmu. Ke stažení: code.pas.
  8. NSD 2 - pokus o rychlejší verzi, ale s chybou. Ke stažení: code.pas.
  9. NSD 3 - rychlejší verze Euklidova algoritmu. Ke stažení: code.pas.
  10. Faktoriál malého čísla - ukázka funkce. Ke stažení: code.pas.
  11. Kódy všech znaků - operace chr. Ke stažení: code.pas.
  12. Je zadaný znak cifra? - ukázka funkce a použití ord. Ke stažení: code.pas.
  13. Hodnota cifry - ukázka funkce a použití ord. Ke stažení: code.pas.

6. hodina (8.11.2012)

  1. Testík - funkce jeZnak. Ke stažení: code.pas.
  2. Opisovač vstupu - detekce konce vstupu pomocí EOF, načítání vstupu po znacích. Ke stažení: code.pas.
  3. Jednoduchý devypatlátor - použití ord, chr, převody znaků. Ke stažení: code.pas.
  4. Hornerovo schema - načítání čísla (v desítkové soustavě) po znacích a převedení na integer. Ke stažení: code.pas.
  5. Z dvojkove - načtení čísla zadaného v dvojkové soustavě a převedení na integer pomocí Hornerova schematu. Ke stažení: code.pas.
  6. Rekurzivní výpis sestupný - ukázka jednoduché lineární rekurze na sestupný výpis čísel. Ke stažení: code.pas.
  7. Rekurzivní výpis vzestupný - ukázka jednoduché lineární rekurze na vestupný výpis čísel. Ke stažení: code.pas.
  8. Ladění v Pascalu - součást úkolu - na tomto (chybném) programu si vyzkoušejte ladící prostředky Pascalu a odhalte všechny chyby. Ke stažení: code.pas.
  9. Soubory 1 - převod velkých písmen na malá - ze standardního vstupu na standardní výstup. Ke stažení: code.pas.
  10. Soubory 2 - převod velkých písmen na malá - ze souboru na standardní výstup. Jako vstup můžete použít například tento soubor in1.txt. Ke stažení: code.pas.
  11. Soubory 3 - převod velkých písmen na malá - ze souboru do souboru. Jako vstup můžete použít například tento soubor in1.txt. Výstup hledejte v souboru out1.txt. Ke stažení: code.pas.
  12. Soubory 4 - výpis kódů všech znaků do souboru. Výstup hledejte v souboru znaky.txt. Ke stažení: code.pas.

7. hodina (15.11.2012)

  1. Testík - Str2Int. Ke stažení: code.pas.
  2. Parametry 1 - předávání odkazem a hodnotou. Ke stažení: code.pas.
  3. Parametry 2 - předávání odkazem a hodnotou. Ke stažení: code.pas.
  4. Parametry 3 - předávání odkazem a hodnotou. Ke stažení: code.pas.
  5. Generování 1 - generování čísel o K cfirách v jedničkové soustavě. Ke stažení: code.pas.
  6. Generování 2 - generování čísel o K cfirách ve dvojkové soustavě. Ke stažení: code.pas.
  7. Generování 3 - generování čísel o K cfirách v soustavě o základu N. Ke stažení: code.pas.

8. hodina (22.11.2012)

  1. Testík - část 1 - funkce, procedury a předávání odkazem a hodnotou. Ke stažení: code.pas.
  2. Testík - část 2 - funkce, procedury a předávání odkazem a hodnotou. Ke stažení: code.pas.
  3. Testík - část 3 - funkce, procedury a předávání odkazem a hodnotou. Ke stažení: code.pas.
  4. Faktoriál - ukázka jednoduché nevětvící se rekurze. Ke stažení: code.pas.
  5. Mocnina - ukázka jednoduché nevětvící se rekurze. Ke stažení: code.pas.
  6. Součet - ukázka jednoduché nevětvící se rekurze. Ke stažení: code.pas.
  7. Binární vyhledávání - ukázka nevětvící se rekurze. Ke stažení: code.pas.
  8. Rozklad na sčítance - již větvící se trošku složitější rekurze. Ke stažení: code.pas.
  9. Batoh 1 - část domácího úkolu - co (a jak) dělá tento rekurzivní program? Ke stažení: code.pas.
  10. Batoh 2 - část domácího úkolu - co (a jak) dělá tento rekurzivní program? Ke stažení: code.pas.

9. hodina (29.11.2012)

  1. Dlouhá čísla - ukázka sčítačky celých (tedy kladných i záporných) čísel. Použití vlastního datového typu a recordu. Nejedná se zrovna super-krátké řešení, ale zase je pěkně dekomponované. Ke stažení: code.pas.

11. hodina (13.12.2012)

  1. Fronta - povídání o datové struktuře fronta.
  2. UnitData - jednotka obsahující datový typ pro položky, které budeme ukládat do zásobníku či fronty. Ke stažení: code.pas.
  3. UnitZasobnik - jednotka obsahující datovou strukturu zásobník včetně základních operací pro práci se zásobníkem. Ke stažení: code.pas.
  4. Test zásobníku - program testující, zda nám zásobník funguje správně. Ke stažení: code.pas.
  5. UnitFronta - chcete-li domácí úkol napsat jako knihovnu, můžete vyjít z tohoto kódu. Ke stažení: code.pas.
program prevodTextu;
{ Program čte znaky ze souboru in.txt a opisuje je na standardní výstup.
  Pokud se jedná o velké písmeno, vypíše místo něj příslušné malé písmeno.}

var c:char;
    f:text;             { Proměnná pro práci s textovým souborem. }

{Mala pismena zakladni abecedy prevede na velka, ostatni nezmeni.}
function preved( c:char ):char;
begin
    preved := c;
    if ( c >= 'A' ) and ( c <= 'Z' ) then
        preved := chr( ord(c) + ord('a') - ord('A') );
end;

begin
    assign(f,'in1.txt');  { Textové proměnné f přiřadíme relativní cestu k souboru. }
    reset(f);             { Ze souboru f chceme číst. }
    while not EOF(f) do   { Dokud jsme nenarazili na konec souboru f (!) }
        begin
            read(f,c);               { Chceme číst ze souboru f. }
            write(preved(c));        { Zapisovat chceme na standardní výstup. }
        end;
    close( f );           { Nesmíme zapomenout soubor f zavřít. }
end.

Kdo byste našel v nějakém z těchto programů chybu, dejte mi to vědět - můžete tak získat bonusové body (1 chyba ≈ 5 bodů). ;)

© Markéta Popelová 2009 - 2012