1iai2

Z Pascal
Prejsť na: navigácia, hľadanie

cvičenia pre 1iai2



aktuálna nepovinná domáca úloha

10. ndú z 20.11.2012 - 2 úlohy


  • pomocou zásobníka znakov a jednej premennej program zistí, či vstupný reťazec obsahuje rovnaký počet 'a' a 'b' - program vypíše 'ano' alebo 'nie':
type
  TStack = class
    Pole: string;
    procedure Push(P: Char);
    function Pop: Char;
    function Top: Char;
    function Empty: Boolean;
  end;
 
var
  S: TStack;
  Z: Char;
  • napr. pre vstup
aabbbbabaa   -->   vypíše ano
abcab   -->   vypíše nie


  • navrhnúť Turingov stroj, ktorý pre vstup zložený z (N+1) jednotiek vyrobí číslo N v dvojkovej sústave, napr.
111111111111   -->   akceptuje a vyrobí   1011
1110   -->   neakceptuje


bodovanie

1 d1 2 d2 3 d3 4 d4 5 d5 6 d6 7 d7 8 d8 9 d9 10 d10
Baláži Tomáš 4 1 5 1 1 2 0.5 1 1 4
Belica Martin 4 1 5 1 5 1 4 0.5 5 1 5 1 4.5 0.5
Bucha Samuel 4 1 5 1 3 0 2 1 5 0.5
Cisárik Michal 5 1 6 1 2 0 1
Dobiáš Dominik 4 1 5 1 5 1 2 0.5 3 1 1 0.5
Floch Peter 5 1 5 1 3.5 0 2
Hanzlík Roman 5 1 5 0 4 0 5 0.5 5 2
Hervay Ákos 4 5 0.5 0.5 5 0.5 0 1 1 4 0.5
Ivan Róbert 4 5 1 3 2 4 4 4.5
Jankovič Erik 5 1 5 1 4 0.5 2 0 2
Knechta Dominik 5 1 4 1 4.5 1 0.5 3 1 1 1
Kováč Matúš 5 1 4 1 5 4 2 2
Kúdora Dávid 5 1 5 1 0.5 5 0.5 0 1
Kužel Marek 5 1 5 1 4.5 0 1
Martinka Marek 5 1 5 1 3 1 0 1 2
Polakovič Luboš 5 1 5 1 3 0 5 4 3
Potisk Martin - 1 5 3 1 0.5 0 2 0.5
Prékop Tomáš 4 1 5 1 2 1 1 0
Sedláček Jakub 5 1 5 1 5 1 5 1 5 1 5 1 5 1
Sedláček Peter 5 1 5 1 5 1 5 1 4 1 5 1 5 0.5
Siraň Radovan 5 5 1 3 1 1 0.5 0 0.5 2 1 1 0.5
Sklenčár Viktor 4 1 5 1 4.5 1 5 1 5 1 5 1 5 0.5
Sopko Martin 4 1 - 3 1 1 3
Šifra Matej 5 1 5 1 2.5 1 1 1 1 0.5
Šiškovič Joachim 5 1 5 1 5 1 1 4 1 3 1 0.5 0.5
Šuník Martin 4 1 5 1 5 1 5 1 1 1 1 5
Tóthová Gabriela 5 1 - 1 4 1 5 0.5 1 0 2 1 1


predchádzajúce nepovinné domáce úlohy

1. ndú z 18.9.2012


  • pomocou MoveTo a LineTo nakresliť štvorcovú špirálu zloženú z N čiar
  • môžete predpokladať, že N je deliteľné 4
  • nepoužívajte príkaz if


2. ndú z 25.9.2012


  • program vygeneruje napr. 10000 bodiek na náhodné pozície
  • bodky zafarbí tak, aby v strede plochy vznikol modrý kríž a zvyšok plochy bol červený
  • program pred samotným bodkovaním nakreslí obrys kríža (pomocou čiar) a až potom spustí bodkovanie


3. ndú z 2.10.2012


  • hviezdičkovanie plochy NxN v konzolovom režime (kde dá funkcia True vypísať '*' inak '.')
  • urobiť logickú funkciu, ktorá bude dávať True pre políčka v štvorcovej sieti, pre ktoré:
    • sú na obvode
    • sú na nejakej uhlopriečke
    • sú v hornej alebo spodnej štvrťke, ktoré sú tvorené uhlopriečkami


4. ndú z 9.10.2012


  • zistiť počet slov v nejakom dlhom textovom súbore
    • slová = postupnosti len písmen
    • oddeľovače sú všetky ostatné znaky


5. ndú z 16.10.2012


  • na kliknutie sa prečíta bitmapa do globálnej premennej, zapamätá sa X, Y a naštartuje časovač
  • Timer: zmaže plochu, vykreslí všetky bitmapy na ich príslušné (X, Y) a posunie X o 10, ak bitmapa vypadne z plochy, uvolní bitmapu
  • každé kliknutie vyrobí novú bitmapu (aj s jej X, Y) a potom tieto bitmapy utekajú paralelne
    • každá sa na okraji zruší
    • hint: použiť globálne polia bitmáp a momentálnych súradníc X, Y


6. ndú z 23.10.2012


  • pomocou Pixels[X, Y] otočit bitmapu (napr. rozmeru 256x256) o ľubovoľný zadaný uhol


7. ndú z 30.10.2012


  • vygenerovať vedľa seba husto veľa robotov otočených smerom nahor
  • potom sa naraz všetky rozbehnú malým krokom nahor (pomocou Timer)
  • postupne niektoré z nich zastanú tak, že vytvoria sínusovku


8. ndú z 6.11.2012


  • krátenie zlomkov


9. ndú z 13.11.2012


  • pomocou dynamických polí budeme reprezentovať množiny tak, že v týchto poliach budú všetky prvky zoradené vzostupne a žiaden sa nevyskytne viackrát; naprogramujte dve funkcie, ktoré vyrobia prienik a zjednotenie takýchto množín:
type
  TPole = array of Integer;
 
function Prienik(A, B: array of Integer): TPole;
function Zjednotenie(A, B: array of Integer): TPole;
  • napr. by malo fungovať
Prienik([100, 200, 300], [200, 300, 400])   -->   vyrobí množinu {200, 300}
Zjednotenie([100, 200, 300], [200, 300, 400])   -->   vyrobí množinu {100, 200, 300, 400}




Aktualizované: 21.11.2012