Domácí úlohy z PRG030 Programování I skupina Y/39

Pokyny pro posílání domácích cvičení z Pascalu

Zadání úloh

  1. Název úlohy: pascal, datum zadání: 8.listopadu 2004

    Na vstupu je malé přirozené číslo N (např. menší než 13), na výstupu Pascalův trojúhelník o N řádcích.

  2. Název úlohy: rozdil, datum zadání: 15.listopadu 2004

    Ve vstupním souboru jsou dve řádky reprezentující datum (tři čísla: den měsíc rok). První reprezentuje dřívější datum než druhé. Program spočítá počet dní mezi těmito dvěma daty. (Omezte se na data od 1.1.1600).

  3. Název úlohy: frekv, datum zadání: 22.listopadu 2004

    Ve vstupním souboru je nejvýše 100 různých slov, žádné slovo není delší než 10 znaků (slova jsou oddělena libovolným počtem mezer a/nebo nových řádků). Na výstupu má být 10 slov, která se v souboru vyskytují nejčastěji (na jednom řádku pořadí, slovo, počet výskytů).

  4. Název úlohy: vzd, datum zadání: 29.listopadu 2004

    Ve vstupním souboru je na první řádce číslo N (N<=12) rozměr čtvercové šachovnice
    a dalších N řádcích je obraz šachovnice pomocí znaků:
    '0' - zakázané políčko a '1' - platné políčko a 'S' startovní políčko, např.
    5
    11111
    11011
    10S11
    11111
    11110
    Reprezentuje šachovnici 5 x 5 s třemi zakázanými políčky a se startovním políčkem ve středu šachovnice.
    Program by měl vytisknout "kopii" šachovnice, ve které na každém políčku bude vzdálenost daného políčka od startu. Vzdálenost se měří počtem tahů šachového koně (kůň přitom nesmí použít zakázaná políčka.

  5. Název úlohy: Yoss, datum zadání: 6.prosince 2004

    Na vstupu je textový soubor obsahující na prvním řádku přirozené číslo N (menší než 10). Od druhého řádku obsahuje soubor slova napsaná malými písmeny anglické abecedy. Vytvořte na základě čísla N z první řádky nový textový soubor, který bude kopírovat obsah vstupního souboru od druhé řádky včetně úpravy (počet mezer mezi slovy, konce řádků), ale budou v něm slova, pro která platí následující tvrzení

    „některé z následujících N slov končí trojicí písmen ’ova ’ “

    vytištěna velkými písmeny.

  6. Název úlohy: Rozkl, datum zadání: 13.prosince 2004

    Na vstupu jsou dve čísla :
    K mezi 2 a 9
    N mezi 5 a 20.

    Program by měl pro všechna přirozená čísla P od 1 do N nalézt způsob, kterým jde zapsat hodnotu čísla P pomocí co nejmenšího (půjde-li to, tak minimálního) počtu cifer K a operací sčítání, odčítání, násobení, dělení a zřetězení.
    Výstup na každou řádku vždy číslo P, znak '=' a příslušný zápis

    Např. pro K=4, N=12
    1=4/4
    2=(4+4)/4
    3=4-4/4
    4=4
    5=4+4/4
    6=4+(4+4)/4
    7=44/4-4
    8=4+4
    9=4+4-4/4
    10=(44-4)/4
    11=44/4
    12=4*4-4

    Zamyslete se nad vlivem použitých operací na algoritmus

  7. Poviná úloha z 20.12.2004 - označení rel
    buď mi musí dojít do 30.12. večer mailem nebo přineste 3.1.2005 na cvičení písemně

    Nemusíte vytvářet žádný hlavní program, jen příslušné procedury

    Předpokládejme deklarace typů pprvek = ^prvek;
    pdvoj = ^dvoj; prvek = record
    a:integer;
    next: pprvek;
    end; dvoj = record
    x : integer;
    py : pdvoj;
    next : pprvek;
    end;
    Množina je reprezentována jako rostoucí uspořádaný seznam jejích prvků - přístup ukazatel typu pprek.
    Relace R (množina dvojic integerů) je reprezentována jako spojový seznam prvků typu dvoj uspřádaný podle složky x, složka py je ukazatel na množinu prvků y, pro než platí R(x,y).
    Vytvořte podprogram, který k relaci R a množině M vytvoří množinu R(M), která je "obrazem množniny m přes relaci R" ( R(M) je množina takových y, pro které existuje x z M takové, že R(x,y) ).
  8. Další "běžná" úloha (platí pro ni obvyklá pravidla) označení vyr
    zadáno 20.12.2004

    Na prvním řádku vstupu je posloupnost desítkových cifer (mohou se opakovat, celkem je jich nejvýše sedm).
    Na dalších několika řádcích je vždy zápis čísla.

    Program v cyklu pro každé číslo z druhé až poslední řádky vypíše všechny možnosti, jak lze jeho hodnotu zapsat pomocí cifer z řádky první (není nutno všechny použít) a operací + , - , *, /(div) , zřetězení.