1iai2
Z Pascal
cvičenia pre 1iai2
aktuálna nepovinná domáca úloha
11. 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 | 11 | d11 | ∑ | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Baláži Tomáš | 4 | 1 | 5 | 1 | 1 | 2 | 0.5 | 1 | 1 | 4 | 4 | 25 | |||||||||||
Belica Martin | 4 | 1 | 5 | 1 | 5 | 1 | 4 | 0.5 | 5 | 1 | 5 | 1 | 4.5 | 1 | 2 | 1 | 4.5 | 1 | 4 | 40 | |||
Bucha Samuel | 4 | 1 | 5 | 1 | 3 | 0 | 2 | 1 | 5 | 1 | 4 | 1 | 1 | 3 | 37 | ||||||||
Cisárik Michal | 5 | 1 | 6 | 1 | 2 | 0 | 1 | 4.5 | 20 | ||||||||||||||
Dobiáš Dominik | 4 | 1 | 5 | 1 | 5 | 1 | 2 | 0.5 | 3 | 1 | 1 | 0.5 | 4 | 1 | 3 | 4 | 40 | ||||||
Floch Peter | 5 | 1 | 5 | 1 | 3.5 | 0 | 2 | 4 | 22 | ||||||||||||||
Hanzlík Roman | 5 | 1 | 5 | 0 | 4 | 0 | 5 | 0.5 | 5 | 2 | 5 | 1 | 39 | ||||||||||
Hervay Ákos | 4 | 5 | 0.5 | 0.5 | 5 | 0.5 | 0 | 1 | 1 | 4 | 0.5 | 4 | 0.5 | 31 | |||||||||
Ivan Róbert | 4 | 5 | 1 | 3 | 2 | 4 | 4 | 4.5 | 3 | 2 | 3 | 32 | |||||||||||
Jankovič Erik | 5 | 1 | 5 | 1 | 4 | 0.5 | 2 | 0 | 2 | 0.5 | 4 | 4.5 | 1 | 3 | 35 | ||||||||
Knechta Dominik | 5 | 1 | 4 | 1 | 4.5 | 1 | 0.5 | 3 | 1 | 1 | 1 | 2 | 3.5 | 4 | 32 | ||||||||
Kováč Matúš | 5 | 1 | 4 | 1 | 5 | 4 | 2 | 2 | 3 | 1 | 2 | 29 | |||||||||||
Kúdora Dávid | 5 | 1 | 5 | 1 | 0.5 | 5 | 0.5 | 0 | 1 | 4.5 | 24 | ||||||||||||
Kužel Marek | 5 | 1 | 5 | 1 | 4.5 | 0 | 1 | 4.5 | 22 | ||||||||||||||
Martinka Marek | 5 | 1 | 5 | 1 | 3 | 1 | 0 | 1 | 2 | 1 | 2.5 | 2 | 1 | 25 | |||||||||
Polakovič Luboš | 5 | 1 | 5 | 1 | 3 | 0 | 5 | 4 | 3 | 4 | 31 | ||||||||||||
Potisk Martin | - | 1 | 5 | 3 | 1 | 0.5 | 0 | 2 | 0.5 | 4 | 25 | ||||||||||||
Prékop Tomáš | 4 | 1 | 5 | 1 | 2 | 1 | 1 | 0 | 1.5 | 1 | 1 | 0.5 | 4 | 1 | 28 | ||||||||
Sedláček Jakub | 5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 4 | 1 | 4.5 | 4 | 40 | ||||
Sedláček Peter | 5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 4 | 1 | 5 | 1 | 5 | 0.5 | 5 | 1 | 4 | 1 | 5 | 40 | |||
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 | 35 | |||||
Sklenčár Viktor | 4 | 1 | 5 | 1 | 4.5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 3 | 1 | 5 | 1 | 3.5 | 40 | |||
Sopko Martin | 4 | 1 | - | 3 | 1 | 1 | 3 | 2.5 | 1 | 25 | |||||||||||||
Šifra Matej | 5 | 1 | 5 | 1 | 2.5 | 1 | 1 | 1 | 1 | 0.5 | 3 | 1 | 25 | ||||||||||
Šiškovič Joachim | 5 | 1 | 5 | 1 | 5 | 1 | 1 | 4 | 1 | 3 | 1 | 0.5 | 1 | 3 | 0.5 | 4.5 | 3.5 | 40 | |||||
Šuník Martin | 4 | 1 | 5 | 1 | 5 | 1 | 5 | 1 | 1 | 1 | 1 | 5 | 1 | 5 | 1 | 5 | 4.5 | 40 | |||||
Tóthová Gabriela | 5 | 1 | - | 1 | 4 | 1 | 5 | 0.5 | 1 | 0 | 2 | 1 | 1 | 5 | 1 | 2.5 | 33 |
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é: 28.11.2012