1iai2: Rozdiel medzi revíziami

Z Pascal
Prejsť na: navigácia, hľadanie
(bodovanie)
Riadok 6: Riadok 6:
 
== aktuálna nepovinná domáca úloha ==
 
== aktuálna nepovinná domáca úloha ==
  
{{Podnadpis1|11. ndú z 27.11.2012}}
+
{{Podnadpis1|1. ndú z 15.2.2013}}
 +
<!--
 
* 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>):
 
* 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}}
Riadok 17: Riadok 18:
 
   end;
 
   end;
 
|}
 
|}
* okrem toho máme dynamické pole robotov: do ktorého sa budú ukladať vytvorené roboty
+
-->
{{Prog}}
+
var
+
  R: array of {{Blue|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 '''Image1MouseUp'''sa zruší príznak, že niektorý robot je ťahaný
+
  
 
<!-- -->
 
<!-- -->
Riadok 31: Riadok 24:
 
== bodovanie ==
 
== bodovanie ==
  
 
+
<!--
 
{| width="100%" class="wikitable" style="text-align: center;"
 
{| width="100%" class="wikitable" style="text-align: center;"
 
|- align="center"
 
|- align="center"
Riadok 117: Riadok 110:
 
| 5 || 1 || - || 1 || 4 || 1 || 5 ||0.5|| 1 || 0 || 2 || 1 || || 1 || 5 || 1 || || ||2.5|| 1 || 2 || || 34
 
| 5 || 1 || - || 1 || 4 || 1 || 5 ||0.5|| 1 || 0 || 2 || 1 || || 1 || 5 || 1 || || ||2.5|| 1 || 2 || || 34
 
|}
 
|}
 +
-->
  
 
<!-- -->
 
<!-- -->
Riadok 124: Riadok 118:
 
<!-- -->
 
<!-- -->
  
{{Podnadpis1|1. ndú z 18.9.2012}}
+
{{Podnadpis1|1. ndú z 15.2.2013}}
* 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'''
+
  
{{Podnadpis1|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
 
 
{{Podnadpis1|3. ndú z 2.10.2012}}
 
* hviezdičkovanie plochy '''N'''x'''N''' 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
 
 
{{Podnadpis1|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
 
 
{{Podnadpis1|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'''
 
 
{{Podnadpis1|6. ndú z 23.10.2012}}
 
* pomocou '''Pixels[X, Y]''' otočit bitmapu (napr. rozmeru 256x256) o ľubovoľný zadaný uhol
 
 
{{Podnadpis1|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
 
 
{{Podnadpis1|8. ndú z 6.11.2012}}
 
* krátenie zlomkov
 
 
{{Podnadpis1|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:
 
{{Prog}}
 
type
 
  TPole = array of Integer;
 
&nbsp;
 
function Prienik(A, B: array of Integer): TPole;
 
function Zjednotenie(A, B: array of Integer): TPole;
 
|}
 
* napr. by malo fungovať
 
{{Prog}}
 
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}
 
|}
 
 
{{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 215: Riadok 129:
  
 
----
 
----
<div align="right"><small>Aktualizované: 28.11.2012</small></div>
+
<div align="right"><small>Aktualizované: 20.2.2013</small></div>

Verzia zo dňa a času 14:42, 20. február 2013

cvičenia pre 1iai2



aktuálna nepovinná domáca úloha

1. ndú z 15.2.2013



bodovanie

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

1. ndú z 15.2.2013





Aktualizované: 20.2.2013