1iai2: Rozdiel medzi revíziami

Z Pascal
Prejsť na: navigácia, hľadanie
(bodovanie)
 
(27 intermediate revisions by the same user not shown)
Riadok 1: Riadok 1:
 
{{Nadpis0|cvičenia pre 1iai2}}__NOTOC__
 
{{Nadpis0|cvičenia pre 1iai2}}__NOTOC__
  
 
<!-- -->
 
 
== aktuálna nepovinná domáca úloha ==
 
 
{{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}
 
|}
 
  
 
<!-- -->
 
<!-- -->
Riadok 28: Riadok 9:
 
{| width="100%" class="wikitable" style="text-align: center;"
 
{| width="100%" class="wikitable" style="text-align: center;"
 
|- align="center"
 
|- align="center"
| width="80" | ||width="20"| 1 ||width="20"| d1 ||width="20"| 2 ||width="20"| d2 ||width="20"| 3 ||width="20"| d3 ||width="20"| 4 ||width="20"| d4 ||width="20"| 5 ||width="20"| d5 ||width="20"| 6 ||width="20"| d6 ||width="20"| 7 ||width="20"| d7 ||width="20"| 8 ||width="20"| d8 ||width="20"| 9 ||width="20"| d9 ||width="20"| 10 ||width="20"| d10
+
! width="80" | ||width="20"| 1 ||width="20"| d1 ||width="20"| 2 ||width="20"| d2 ||width="20"| 3 ||width="20"| d3 ||width="20"| 4 ||width="20"| d4 ||width="20"| 5 ||width="20"| d5 ||width="20"| 6 ||width="20"| d6 ||width="20"| 7 ||width="20"| d7 ||width="20"| 8 ||width="20"| d8 ||width="20"| 9 ||width="20"| d9 ||width="20"| 10 ||width="20"| d10 ||width="20"| 11 ||width="20"| d11 ||width="20"| &sum;
 
|-
 
|-
| Baláži Tomáš || 4 || 1 || 5 || 1 || 1 || || 2 ||0.5|| 1 || || 1 || || 4 || || || || || || ||
+
! Belica Martin
 +
| 2 || 1 ||4.5|| 1 || 5 || 1 || 4.5 || 1 || 3 || || 4 || 1 ||3.5|| 2 || 2 || || 5 ||0.5|| 5 || || || || {{Red|40}}
 
|-
 
|-
| Belica Martin || 4 || 1 || 5 || 1 || 5 || 1 || 4 ||0.5|| 5 || 1 || 5 || 1 ||4.5||0.5|| || || || || ||
+
! Bucha Samuel
 +
|0.5||0.5||0.5|| || 4 || || 2 || || 2 || || - || || 2 || || 2 || ||1.5|| || 1 || ||0.5|| || 15.5
 
|-
 
|-
| Bucha Samuel || 4 || 1 || 5 || 1 || 3 || 0 || 2 || 1 || 5 || || || || ||0.5|| || || || || ||
+
! Dobiáš Dominik
 +
| 2 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 5 || 1 || 4 || || - || || 2 || ||3.5|| || 3 || 2 || || || {{Red|40}}
 
|-
 
|-
| Cisárik Michal || 5 || 1 || 6 || 1 || 2 || || 0 || || || || || || 1 || || || || || || ||
+
! Hanzlík Roman
 +
| 5 || || - || || 1 || || 1 || || 2 || || 1 || || 2 || || - || || - || || 3 || ||0.5|| || 15.5
 
|-
 
|-
| Dobiáš Dominik || 4 || 1 || 5 || 1 || 5 || 1 || 2 ||0.5|| 3 || || 1 || 1 || ||0.5|| || || || || ||
+
! Hervay Ákos
 +
| - || || - || ||3.5|| ||2.5|| ||3.5||0.5|| 3 || || - ||0.5|| 2 || || 1 || ||4.5|| ||4.5|| || 25.5
 
|-
 
|-
| Floch Peter || 5 || 1 || 5 || 1 ||3.5|| || 0 || || || || || || 2 || || || || || || ||
+
! Jankovič Erik
 +
| - || 1 ||4.5|| 1 || - ||0.5|| 1 || 1 ||3.5|| || - || || 5 || 1 ||4.5|| 1 || 5 || ||4.5|| 2 || || 1 || 36.5
 
|-
 
|-
| Hanzlík Roman || 5 || 1 || 5 || 0 || 4 || 0 || 5 ||0.5|| 5 || || 2 || || || || || || || || ||
+
! Knechta Dominik
 +
| 3 || ||4.5|| || 4 || ||0.5|| || - || || 1 || || 2 || || 2 || ||1.5|| || 2 || || 2 || || 21
 
|-
 
|-
| Hervay Ákos || 4 || || 5 ||0.5|| ||0.5|| 5 ||0.5|| || 0 || 1 || 1 || 4 ||0.5|| || || || || ||
+
! Kováč Matúš
 +
| 5 || ||4.9|| || 1 || || 1 || || 3 || || 1 || ||2.5|| || 2 || ||4.5|| || 3 || || 5 || || 24.9
 
|-
 
|-
| Ivan Róbert || 4 || || 5 || 1 || 3 || || 2 || || 4 || || 4 || ||4.5|| || || || || || ||
+
! Krampl Werner
 +
|4.5|| 1 || 5 || || 5 || ||4.5|| 1 || 2 ||0.5|| 2 || 1 ||3.5|| 1 || 5 || 1 || 5 || 1 || 5 || || 5 || || {{Red|40}}
 
|-
 
|-
| Jankovič Erik || 5 || 1 || 5 || 1 || 4 ||0.5|| 2 || || || 0 || 2 || || || || || || || || ||
+
! Sedláček Jakub
 +
| - || ||4.5|| ||2.5|| || 2 || || 2 || || - || || - || || 2 || || - || || 3 || ||1.5|| || 17.5
 
|-
 
|-
| Knechta Dominik || 5 || 1 || 4 || 1 ||4.5|| || 1 ||0.5|| 3 || || 1 || 1 || 1 || || || || || || ||
+
! Sedláček Peter
 +
|4.5|| ||4.5|| ||4.5|| ||3.5|| ||2.5|| || - || || - || || 5 || || - || || 5 || ||1.5|| || 31
 
|-
 
|-
| Kováč Matúš || 5 || 1 || 4 || 1 || 5 || || 4 || || 2 || || 2 || || || || || || || || ||
+
! Sklenčár Viktor
 +
| 5 || 1 ||2.5|| 1 ||3.5|| 1 || 5 || 1 || 3 || || 1 || 1 || 3 || 1 || 2 || 1 || 5 || 1 || 5 || 2 || || || {{Red|40}}
 
|-
 
|-
| Kúdora Dávid || 5 || 1 || 5 || 1 || ||0.5|| 5 ||0.5|| || 0 || 1 || || || || || || || || ||
+
! Šiškovič Joachim
 +
| - || ||4.5|| 1 || - || || 5 || ||3.5|| || 3 || ||4.5|| 2 || 1 || || 4 || || 3 || || 5 || || 35.5
 
|-
 
|-
| Kužel Marek || 5 || 1 || 5 || 1 ||4.5|| || 0 || || || || || || 1 || || || || || || ||
+
! Šuník Martin
 +
| - || 1 || 5 || 1 || - || 1 ||4.5|| 1 || 5 || || 5 || 1 || 5 || 1 || 5 || 1 || 5 || || 5 || || || || {{Red|40}}
 
|-
 
|-
| Martinka Marek || 5 || 1 || 5 || 1 || 3 || || || || 1 || 0 || 1 || || 2 || || || || || || ||
+
! Tóthová Gabriela
 +
| 1 || 0 ||4 || 1 || 2 || 1 ||3.5||0.5|| 2 || || 1 ||1.5|| 1 || || 1 || ||3.5|| || 3 || ||2.5|| || 25.5
 +
<!--
 
|-
 
|-
| Polakovič Luboš || 5 || 1 || 5 || 1 || 3 || 0 || 5 || || || || 4 || || 3 || || || || || || ||
+
! Šišková Patrícia
 +
| - || || - || || 4 || || - || || || || || || || || || || || || || || || || 4
 
|-
 
|-
| Potisk Martin || - || 1 || 5 || || 3 || 1 || ||0.5|| || 0 || 2 || || ||0.5|| || || || || ||
+
! Štefanisko Jozef
|-
+
| - || || 5 || || - || || - || || || || || || || || || || || || || || || || 0
| 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 || || || || || ||
+
 
|}
 
|}
  
Riadok 89: Riadok 69:
 
== predchádzajúce nepovinné domáce úlohy ==
 
== predchádzajúce nepovinné domáce úlohy ==
  
 +
<!-- -->
  
{{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}}
+
* napíšte program, ktorý vytvorí binárny súbor z riadkov textového súboru '''studenti.txt''', tento súbor obsahuje riadky tvaru
* program vygeneruje napr. 10000 bodiek na náhodné pozície
+
{{Prog}}
* bodky zafarbí tak, aby v strede plochy vznikol modrý kríž a zvyšok plochy bol červený
+
meno;rocnik priemer
* program pred samotným bodkovaním nakreslí obrys kríža (pomocou čiar) a až potom spustí bodkovanie
+
|}
 +
* treba to prečítať do záznamu:
 +
{{Prog}}
 +
type
 +
  TStudent = record
 +
    Meno: string[15];
 +
    Rocnik: Byte;
 +
    Priemer: Real;
 +
  end;
 +
|}
 +
* každý prečítaný záznam sa zapíše do súboru
 +
:* v hex-editore sa pozrite, ako je to uložené, koľko bajtov zaberá jeden záznam (SizeOf(TStudent))
 +
* NDÚ odovzdávať len text projektu (napr. project1.lpr)
 +
 
 +
 
 +
{{Podnadpis1|2. ndú z 22.2.2013}}
 +
 
 +
* napíšte procedúru '''VyhodDuplikaty''', ktorá vyhodí zo spájaného zoznamu všetky ďalšie výskyty tej iste hodnoty
 +
{{Prog}}
 +
procedure VyhodDuplikaty(Z: PVrchol);
 +
|}
 +
* napr. zo zoznamu
 +
{{Prog}}
 +
1 -> 2 -> 3 -> 2 -> 4 -> 1 -> 2 -> 5 ->
 +
|}
 +
* spraví zoznam
 +
{{Prog}}
 +
1 -> 2 -> 3 -> 4 -> 5 ->
 +
|}
 +
 
 +
 
 +
{{Podnadpis1|3. ndú z 1.3.2013}}
 +
 
 +
* Vytvorte triedu '''TSlovnik''', ktorá do spájaného zoznamu načíta zo súboru (napr. '''slovnik.txt''') zoznam dvojíc slov (slovenské anglické), napr.
 +
{{Prog}}
 +
pes dog
 +
macka cat
 +
...
 +
|}
 +
* trieda '''TSlovnik''' je spájaným zoznamom, ktorý bude mať vrcholy utriedené podľa anglických slovíčok, napr.
 +
{{Prog}}
 +
TVrchol = class
 +
  Slov, Angl: string;
 +
  Next: TVrchol;
 +
  ...
 +
end;
 +
&nbsp;
 +
TSlovnik = class
 +
  Z: Tvrchol;
 +
  constructor Create(Subor: string);
 +
  procedure Vloz(S, A: string);    ''// vloží do zoznamu na správne miesto ďalšiu dvojicu slov''
 +
  ...
 +
end;
 +
|}
  
{{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}}
+
{{Podnadpis1|4. ndú z 8.3.2013}}
* 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}}
+
* vygenerovať a nakresliť náhodný strom s číslami vo vrcholoch od 1 do 20
* na kliknutie sa prečíta bitmapa do globálnej premennej, zapamätá sa '''X''', '''Y''' a naštartuje časovač
+
:* klikanie myšou na ľubovoľný vrchol zvýši číslo v tomto vrchole o 1 (a prekreslí vrchol alebo celý strom)
* 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}}
+
{{Podnadpis1|5. ndú z 15.3.2013}}
* 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}}
+
* konštruktor (alebo funkcia, ktorá vráti koreň stromu) pre aritmetický strom, ktorý ako parameter dostáva '''string''' so zápisom aritmetického stromu v prefixe oddelený medzerami a vytvorí tento strom
* zlomky
+
'+ * 4 5 - 712 9'
 +
: zrejme budeme musieť použiť rekurziu
 +
: čísla môžu byť aj viacciferné
 +
: napr.
 +
Astrom := Vytvor('+ * 4 5 - 7 9');
  
 
<!-- -->
 
<!-- -->
Riadok 137: Riadok 154:
  
 
----
 
----
<div align="right"><small>Aktualizované: 14.11.2012</small></div>
+
<div align="right"><small>Aktualizované: 20.2.2013</small></div>

Aktuálna revízia z 11:15, 22. máj 2013

cvičenia pre 1iai2



bodovanie

1 d1 2 d2 3 d3 4 d4 5 d5 6 d6 7 d7 8 d8 9 d9 10 d10 11 d11
Belica Martin 2 1 4.5 1 5 1 4.5 1 3 4 1 3.5 2 2 5 0.5 5 40
Bucha Samuel 0.5 0.5 0.5 4 2 2 - 2 2 1.5 1 0.5 15.5
Dobiáš Dominik 2 1 5 1 5 1 5 1 5 1 4 - 2 3.5 3 2 40
Hanzlík Roman 5 - 1 1 2 1 2 - - 3 0.5 15.5
Hervay Ákos - - 3.5 2.5 3.5 0.5 3 - 0.5 2 1 4.5 4.5 25.5
Jankovič Erik - 1 4.5 1 - 0.5 1 1 3.5 - 5 1 4.5 1 5 4.5 2 1 36.5
Knechta Dominik 3 4.5 4 0.5 - 1 2 2 1.5 2 2 21
Kováč Matúš 5 4.9 1 1 3 1 2.5 2 4.5 3 5 24.9
Krampl Werner 4.5 1 5 5 4.5 1 2 0.5 2 1 3.5 1 5 1 5 1 5 5 40
Sedláček Jakub - 4.5 2.5 2 2 - - 2 - 3 1.5 17.5
Sedláček Peter 4.5 4.5 4.5 3.5 2.5 - - 5 - 5 1.5 31
Sklenčár Viktor 5 1 2.5 1 3.5 1 5 1 3 1 1 3 1 2 1 5 1 5 2 40
Šiškovič Joachim - 4.5 1 - 5 3.5 3 4.5 2 1 4 3 5 35.5
Šuník Martin - 1 5 1 - 1 4.5 1 5 5 1 5 1 5 1 5 5 40
Tóthová Gabriela 1 0 4 1 2 1 3.5 0.5 2 1 1.5 1 1 3.5 3 2.5 25.5


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

1. ndú z 15.2.2013


  • napíšte program, ktorý vytvorí binárny súbor z riadkov textového súboru studenti.txt, tento súbor obsahuje riadky tvaru
meno;rocnik priemer
  • treba to prečítať do záznamu:
type
  TStudent = record
    Meno: string[15];
    Rocnik: Byte;
    Priemer: Real;
  end;
  • každý prečítaný záznam sa zapíše do súboru
  • v hex-editore sa pozrite, ako je to uložené, koľko bajtov zaberá jeden záznam (SizeOf(TStudent))
  • NDÚ odovzdávať len text projektu (napr. project1.lpr)



2. ndú z 22.2.2013


  • napíšte procedúru VyhodDuplikaty, ktorá vyhodí zo spájaného zoznamu všetky ďalšie výskyty tej iste hodnoty
procedure VyhodDuplikaty(Z: PVrchol);
  • napr. zo zoznamu
1 -> 2 -> 3 -> 2 -> 4 -> 1 -> 2 -> 5 -> 
  • spraví zoznam
1 -> 2 -> 3 -> 4 -> 5 -> 



3. ndú z 1.3.2013


  • Vytvorte triedu TSlovnik, ktorá do spájaného zoznamu načíta zo súboru (napr. slovnik.txt) zoznam dvojíc slov (slovenské anglické), napr.
pes dog
macka cat
... 
  • trieda TSlovnik je spájaným zoznamom, ktorý bude mať vrcholy utriedené podľa anglických slovíčok, napr.
TVrchol = class
  Slov, Angl: string;
  Next: TVrchol;
  ...
end;
 
TSlovnik = class
  Z: Tvrchol;
  constructor Create(Subor: string);
  procedure Vloz(S, A: string);     // vloží do zoznamu na správne miesto ďalšiu dvojicu slov
  ...
end;



4. ndú z 8.3.2013


  • vygenerovať a nakresliť náhodný strom s číslami vo vrcholoch od 1 do 20
  • klikanie myšou na ľubovoľný vrchol zvýši číslo v tomto vrchole o 1 (a prekreslí vrchol alebo celý strom)



5. ndú z 15.3.2013


  • konštruktor (alebo funkcia, ktorá vráti koreň stromu) pre aritmetický strom, ktorý ako parameter dostáva string so zápisom aritmetického stromu v prefixe oddelený medzerami a vytvorí tento strom
'+ * 4 5 - 712 9'
zrejme budeme musieť použiť rekurziu
čísla môžu byť aj viacciferné
napr.
Astrom := Vytvor('+ * 4 5 - 7 9');




Aktualizované: 20.2.2013