1iai2: Rozdiel medzi revíziami

Z Pascal
Prejsť na: navigácia, hľadanie
(aktuálna nepovinná domáca úloha)
Riadok 6: Riadok 6:
 
== aktuálna nepovinná domáca úloha ==
 
== aktuálna nepovinná domáca úloha ==
  
{{Podnadpis1|10. ndú z 20.11.2012 - 2 úlohy}}
+
{{Podnadpis1|10. ndú z 27.11.2012}}
* 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':
+
* predpokladáme, že už je definovaná trieda '''TMojRobot''', ktorá vie nakresliť binárny strom úrovne '''NN''' a veľkosti '''DD''' (tieto dve hodnoty sa inicializujú v konštruktore: náhodné '''NN''' z intervalu <3, 7>, '''DD''' z intervalu <30, 60>):
 
{{Prog}}
 
{{Prog}}
 
  type
 
  type
   TStack = class
+
   TMojRobot = class(TRobot)
     Pole: string;
+
     NN, DD: Integer;
     procedure Push(P: Char);
+
     constructor Create(XX, YY: Integer);
     function Pop: Char;
+
     procedure Strom(N: Integer; D: Real);
    function Top: Char;
+
     procedure Kresli;
     function Empty: Boolean;
+
 
   end;
 
   end;
&nbsp;
 
var
 
  S: TStack;
 
  Z: Char;
 
 
|}
 
|}
* napr. pre vstup
+
* okrem toho máme dynamické pole robotov: do ktorého sa budú ukladať vytvorené roboty
 
{{Prog}}
 
{{Prog}}
  aabbbbabaa  -->  vypíše ano
+
  var
abcab  -->  vypíše nie
+
  R: array of {{Blue|TRobot}};
|}
+
 
+
 
+
* navrhnúť '''Turingov stroj''', ktorý pre vstup zložený z (N+1) jednotiek vyrobí číslo N v dvojkovej sústave, napr.
+
{{Prog}}
+
111111111111  -->  akceptuje a vyrobí  1011
+
1110  -->  neakceptuje
+
 
|}
 
|}
 +
* treba naprogramovať '''Image1MouseDown''', '''Image1MouseMove''', '''Image1MouseUp''':
 +
** pri kliknutí do plochy ('''Image1MouseDown'''), buď vznikne nový robot (pridá sa do poľa '''R'''), alebo sa naštartuje ťahanie už existujúceho robota (ak sa kliklo blízko niektorého)
 +
** ak sa naštartovalo ťahanie, v '''Image1MouseMove''' sa ťahanému robotu zmení (X, Y), zmaže sa plocha a všetky sa znovu nakreslia (metóda '''Kresli''')
 +
** v '''Image1MouseUp'''sa zruší príznak, že niektorý robot je ťahaný
  
 
<!-- -->
 
<!-- -->
Riadok 45: Riadok 37:
 
|-
 
|-
 
! Baláži Tomáš
 
! Baláži Tomáš
| 4 || 1 || 5 || 1 || 1 || || 2 ||0.5|| 1 || || 1 || || 4 || || || || || || ||
+
| 4 || 1 || 5 || 1 || 1 || || 2 ||0.5|| 1 || || 1 || || 4 || || || || 4 || || ||
 
|-
 
|-
 
! Belica Martin
 
! Belica Martin
| 4 || 1 || 5 || 1 || 5 || 1 || 4 ||0.5|| 5 || 1 || 5 || 1 ||4.5||0.5|| || || || || ||
+
| 4 || 1 || 5 || 1 || 5 || 1 || 4 ||0.5|| 5 || 1 || 5 || 1 ||4.5|| 1 || 2 || 1 ||4.5|| 1 || 4 ||
 
|-
 
|-
 
! Bucha Samuel
 
! Bucha Samuel
| 4 || 1 || 5 || 1 || 3 || 0 || 2 || 1 || 5 || || || || ||0.5|| || || || || ||
+
| 4 || 1 || 5 || 1 || 3 || 0 || 2 || 1 || 5 || || || || || 1 || 4 || 1 || 1 || || 3 ||
 
|-
 
|-
 
! Cisárik Michal
 
! Cisárik Michal
| 5 || 1 || 6 || 1 || 2 || || 0 || || || || || || 1 || || || || || || ||
+
| 5 || 1 || 6 || 1 || 2 || || 0 || || || || || || 1 || || || ||4.5|| || ||
 
|-
 
|-
 
! Dobiáš Dominik
 
! Dobiáš Dominik
| 4 || 1 || 5 || 1 || 5 || 1 || 2 ||0.5|| 3 || || 1 || 1 || ||0.5|| || || || || ||
+
| 4 || 1 || 5 || 1 || 5 || 1 || 2 ||0.5|| 3 || || 1 || 1 || ||0.5|| || 1 || || || 3 ||
 
|-
 
|-
 
! Floch Peter
 
! Floch Peter
| 5 || 1 || 5 || 1 ||3.5|| || 0 || || || || || || 2 || || || || || || ||
+
| 5 || 1 || 5 || 1 ||3.5|| || 0 || || || || || || 2 || || || || 4 || || ||
 
|-
 
|-
 
! Hanzlík Roman
 
! Hanzlík Roman
| 5 || 1 || 5 || 0 || 4 || 0 || 5 ||0.5|| 5 || || 2 || || || || || || || || ||
+
| 5 || 1 || 5 || 0 || 4 || 0 || 5 ||0.5|| 5 || || 2 || || || || 5 || || || || 1 ||
 
|-
 
|-
 
! Hervay Ákos
 
! Hervay Ákos
| 4 || || 5 ||0.5|| ||0.5|| 5 ||0.5|| || 0 || 1 || 1 || 4 ||0.5|| || || || || ||
+
| 4 || || 5 ||0.5|| ||0.5|| 5 ||0.5|| || 0 || 1 || 1 || 4 ||0.5|| 4 ||0.5|| || || ||
 
|-
 
|-
 
! Ivan Róbert
 
! Ivan Róbert
| 4 || || 5 || 1 || 3 || || 2 || || 4 || || 4 || ||4.5|| || || || || || ||
+
| 4 || || 5 || 1 || 3 || || 2 || || 4 || || 4 || ||4.5|| || 3 || || 2 || || 3 ||
 
|-
 
|-
 
! Jankovič Erik
 
! Jankovič Erik
| 5 || 1 || 5 || 1 || 4 ||0.5|| 2 || || || 0 || 2 || || || || || || || || ||
+
| 5 || 1 || 5 || 1 || 4 ||0.5|| 2 || || || 0 || 2 || || ||0.5|| 4 || ||4.5|| 1 || 3 ||
 
|-
 
|-
 
! Knechta Dominik
 
! Knechta Dominik
| 5 || 1 || 4 || 1 ||4.5|| || 1 ||0.5|| 3 || || 1 || 1 || 1 || || || || || || ||
+
| 5 || 1 || 4 || 1 ||4.5|| || 1 ||0.5|| 3 || || 1 || 1 || 1 || || 2 || ||3.5|| || 4 ||
 
|-
 
|-
 
! Kováč Matúš
 
! Kováč Matúš
| 5 || 1 || 4 || 1 || 5 || || 4 || || 2 || || 2 || || || || || || || || ||
+
| 5 || 1 || 4 || 1 || 5 || || 4 || || 2 || || 2 || || || || 3 || || 1 || || 2 ||
 
|-
 
|-
 
! Kúdora Dávid
 
! Kúdora Dávid
| 5 || 1 || 5 || 1 || ||0.5|| 5 ||0.5|| || 0 || 1 || || || || || || || || ||
+
| 5 || 1 || 5 || 1 || ||0.5|| 5 ||0.5|| || 0 || 1 || || || ||4.5|| || || || ||
 
|-
 
|-
 
! Kužel Marek
 
! Kužel Marek
| 5 || 1 || 5 || 1 ||4.5|| || 0 || || || || || || 1 || || || || || || ||
+
| 5 || 1 || 5 || 1 ||4.5|| || 0 || || || || || || 1 || || || ||4.5|| || ||
 
|-
 
|-
 
! Martinka Marek
 
! Martinka Marek
| 5 || 1 || 5 || 1 || 3 || || || || 1 || 0 || 1 || || 2 || || || || || || ||
+
| 5 || 1 || 5 || 1 || 3 || || || || 1 || 0 || 1 || || 2 || 1 ||2.5|| || 2 || || 1 ||
 
|-
 
|-
 
! Polakovič Luboš
 
! Polakovič Luboš
| 5 || 1 || 5 || 1 || 3 || 0 || 5 || || || || 4 || || 3 || || || || || || ||
+
| 5 || 1 || 5 || 1 || 3 || 0 || 5 || || || || 4 || || 3 || || || || 4 || || ||
 
|-
 
|-
 
! Potisk Martin
 
! Potisk Martin
| - || 1 || 5 || || 3 || 1 || ||0.5|| || 0 || 2 || || ||0.5|| || || || || ||
+
| - || 1 || 5 || || 3 || 1 || ||0.5|| || 0 || 2 || || ||0.5|| 4 || || || || ||
 
|-
 
|-
 
! Prékop Tomáš
 
! Prékop Tomáš
| 4 || 1 || 5 || || || 1 || 2 || 1 || 1 || || || || || 0 || || || || || ||
+
| 4 || 1 || 5 || || || 1 || 2 || 1 || 1 || || || || || 0 ||1.5|| 1 || 1 ||0.5|| 4 || 1
 
|-
 
|-
 
! Sedláček Jakub
 
! Sedláček Jakub
| 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || || || || || ||
+
| 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 4 || 1 ||4.5|| || 4 ||
 
|-
 
|-
 
! Sedláček Peter
 
! Sedláček Peter
| 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 4 || 1 || 5 || 1 || 5 ||0.5|| || || || || ||
+
| 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 4 || 1 || 5 || 1 || 5 ||0.5|| 5 || 1 || 4 || 1 || 5 ||
 
|-
 
|-
 
! Siraň Radovan
 
! Siraň Radovan
| 5 || || 5 || 1 || 3 || 1 || 1 ||0.5|| 0 ||0.5|| 2 || 1 || 1 ||0.5|| || || || || ||
+
| 5 || || 5 || 1 || 3 || 1 || 1 ||0.5|| 0 ||0.5|| 2 || 1 || 1 ||0.5|| 3 ||0.5||4.5|| ||3.5||
 
|-
 
|-
 
! Sklenčár Viktor
 
! Sklenčár Viktor
| 4 || 1 || 5 || 1 ||4.5|| 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 ||0.5|| || || || || ||
+
| 4 || 1 || 5 || 1 ||4.5|| 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 3 || 1 || 5 || 1 ||3.5||
 
|-
 
|-
 
! Sopko Martin
 
! Sopko Martin
| 4 || 1 || - || || 3 || 1 || 1 || || 3 || || || || || || || || || || ||
+
| 4 || 1 || - || || 3 || 1 || 1 || || 3 || || || || || ||2.5|| || || || 1 ||
 
|-
 
|-
 
! Šifra Matej
 
! Šifra Matej
| 5 || 1 || 5 || 1 ||2.5|| 1 || || 1 || 1 || || 1 || || ||0.5|| || || || || ||
+
| 5 || 1 || 5 || 1 ||2.5|| 1 || || 1 || 1 || || 1 || || ||0.5|| 3 || || || || 1 ||
 
|-
 
|-
 
! Šiškovič Joachim
 
! Šiškovič Joachim
| 5 || 1 || 5 || 1 || 5 || 1 || 1 || || 4 || 1 || 3 || 1 ||0.5||0.5|| || || || || ||
+
| 5 || 1 || 5 || 1 || 5 || 1 || 1 || || 4 || 1 || 3 || 1 ||0.5|| 1 || 3 ||0.5||4.5|| ||3.5||
 
|-
 
|-
 
! Šuník Martin
 
! Šuník Martin
| 4 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 1 || 1 || || 1 || 5 || || || || || || ||
+
| 4 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 1 || 1 || || 1 || 5 || 1 || 5 || 1 || 5 || ||4.5||
 
|-
 
|-
 
! Tóthová Gabriela
 
! Tóthová Gabriela
| 5 || 1 || - || 1 || 4 || 1 || 5 ||0.5|| 1 || 0 || 2 || 1 || || 1 || || || || || ||
+
| 5 || 1 || - || 1 || 4 || 1 || 5 ||0.5|| 1 || 0 || 2 || 1 || || 1 || 5 || 1 || || ||2.5||
 
|}
 
|}
  
Riadok 185: Riadok 177:
 
  Prienik([100, 200, 300], [200, 300, 400])  -->  ''vyrobí množinu'' {200, 300}
 
  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}
 
  Zjednotenie([100, 200, 300], [200, 300, 400])  -->  ''vyrobí množinu'' {100, 200, 300, 400}
 +
|}
 +
 +
{{Podnadpis1|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':
 +
{{Prog}}
 +
type
 +
  TStack = class
 +
    Pole: string;
 +
    procedure Push(P: Char);
 +
    function Pop: Char;
 +
    function Top: Char;
 +
    function Empty: Boolean;
 +
  end;
 +
&nbsp;
 +
var
 +
  S: TStack;
 +
  Z: Char;
 +
|}
 +
* napr. pre vstup
 +
{{Prog}}
 +
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.
 +
{{Prog}}
 +
111111111111  -->  akceptuje a vyrobí  1011
 +
1110  -->  neakceptuje
 
|}
 
|}
  
Riadok 194: Riadok 215:
  
 
----
 
----
<div align="right"><small>Aktualizované: 21.11.2012</small></div>
+
<div align="right"><small>Aktualizované: 27.11.2012</small></div>

Verzia zo dňa a času 18:20, 27. november 2012

cvičenia pre 1iai2



aktuálna nepovinná domáca úloha

10. ndú z 27.11.2012


  • predpokladáme, že už je definovaná trieda TMojRobot, ktorá vie nakresliť binárny strom úrovne NN a veľkosti DD (tieto dve hodnoty sa inicializujú v konštruktore: náhodné NN z intervalu <3, 7>, DD z intervalu <30, 60>):
type
  TMojRobot = class(TRobot)
    NN, DD: Integer;
    constructor Create(XX, YY: Integer);
    procedure Strom(N: Integer; D: Real);
    procedure Kresli;
  end;
  • okrem toho máme dynamické pole robotov: do ktorého sa budú ukladať vytvorené roboty
var
  R: array of TRobot;
  • treba naprogramovať Image1MouseDown, Image1MouseMove, Image1MouseUp:
    • pri kliknutí do plochy (Image1MouseDown), buď vznikne nový robot (pridá sa do poľa R), alebo sa naštartuje ťahanie už existujúceho robota (ak sa kliklo blízko niektorého)
    • ak sa naštartovalo ťahanie, v Image1MouseMove sa ťahanému robotu zmení (X, Y), zmaže sa plocha a všetky sa znovu nakreslia (metóda Kresli)
    • v Image1MouseUpsa zruší príznak, že niektorý robot je ťahaný


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 4
Belica Martin 4 1 5 1 5 1 4 0.5 5 1 5 1 4.5 1 2 1 4.5 1 4
Bucha Samuel 4 1 5 1 3 0 2 1 5 1 4 1 1 3
Cisárik Michal 5 1 6 1 2 0 1 4.5
Dobiáš Dominik 4 1 5 1 5 1 2 0.5 3 1 1 0.5 4 1 3
Floch Peter 5 1 5 1 3.5 0 2 4
Hanzlík Roman 5 1 5 0 4 0 5 0.5 5 2 5 1
Hervay Ákos 4 5 0.5 0.5 5 0.5 0 1 1 4 0.5 4 0.5
Ivan Róbert 4 5 1 3 2 4 4 4.5 3 2 3
Jankovič Erik 5 1 5 1 4 0.5 2 0 2 0.5 4 4.5 1 3
Knechta Dominik 5 1 4 1 4.5 1 0.5 3 1 1 1 2 3.5 4
Kováč Matúš 5 1 4 1 5 4 2 2 3 1 2
Kúdora Dávid 5 1 5 1 0.5 5 0.5 0 1 4.5
Kužel Marek 5 1 5 1 4.5 0 1 4.5
Martinka Marek 5 1 5 1 3 1 0 1 2 1 2.5 2 1
Polakovič Luboš 5 1 5 1 3 0 5 4 3 4
Potisk Martin - 1 5 3 1 0.5 0 2 0.5 4
Prékop Tomáš 4 1 5 1 2 1 1 0 1.5 1 1 0.5 4 1
Sedláček Jakub 5 1 5 1 5 1 5 1 5 1 5 1 5 1 4 1 4.5 4
Sedláček Peter 5 1 5 1 5 1 5 1 4 1 5 1 5 0.5 5 1 4 1 5
Siraň Radovan 5 5 1 3 1 1 0.5 0 0.5 2 1 1 0.5 3 0.5 4.5 3.5
Sklenčár Viktor 4 1 5 1 4.5 1 5 1 5 1 5 1 5 1 3 1 5 1 3.5
Sopko Martin 4 1 - 3 1 1 3 2.5 1
Šifra Matej 5 1 5 1 2.5 1 1 1 1 0.5 3 1
Šiškovič Joachim 5 1 5 1 5 1 1 4 1 3 1 0.5 1 3 0.5 4.5 3.5
Šuník Martin 4 1 5 1 5 1 5 1 1 1 1 5 1 5 1 5 4.5
Tóthová Gabriela 5 1 - 1 4 1 5 0.5 1 0 2 1 1 5 1 2.5


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}


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




Aktualizované: 27.11.2012