Pole a reťazce

pole
matice.bpr
kniznica.bpr-reťazce
bal.bpr- 
príklady




Pole.


V lekcii č.5 ste v príklade č.3 mali naprogramovať program, ktorý vypočíta priemernú známku z písomky. Ako však doprogramovať program, keď chcete vedieť koľko bolo jedničiek, dvojok, trojok, ...
  1. Potrebujete zistiť koľko je v triede žiakov. 
  2. Kedže chcete so známkami robiť viacero operácii, bolo by výhodné uložiť ich do premenných. Aby ste nemuseli použiť viacero premenných s rôznymi názvami, použite skupinu premenných rovnakého typu, ktoré môžete používať ako jeden objekt. Použite pole. Jeho veľkosť bude rovná počtu žiakov v triede. 
  3. Na načítanie známok budete používať pomocníka . Na obrazovku sa vám vypíše: "Zadajte znamku 1-ho ziaka:", vy zadáte známku, ktorá sa uloží do poľa a zároveň sa vypíše na obrazovku.  Keďže načítanie známok prebieha v cykle, tak  lokálna premenná  zabezpečí, že do každej bunky poľa sa načíta práve jedna známka a že každá bunka poľa bude obsadená. (veľkosť poľa je  a cyklus beží od 1 do )
  4. Na vypis prvkov pola vam posluzi pomocnik 
  5. Výpočet priemernej známky je taký istý ako predtým. 
  6. Počet jedničiek, dvojok, trojok, ... zistíte najjednduchšie pomocou vetvenia switch. 
  7. Chýba už len hlavný program so všetkými pomocníkmi. 




Tento príklad sa bude týkať súčtu matíc. Budete mať matice o veľkosti 2x2. Na prácu s maticami sa najviac bude hodiť dvojrozmerné pole.
  1. Budete sčítať dve matice. Najpr ich treba deklarovať. 
  2. Matice treba naplniť hodnotami. Vzhľadom na to, že v Baltíkovi ešte nefunguje predávanie premennej odkazom pre matice (v ďalšej verazii už bude), potrebujete dvoch pomocníkov na naplnenie matíc. Na obrazovku sa vypíše: "Hodnota policka [i,,j] je: " Keď zadáte hodnotu, vypíše sa na obrazovku. 
  3. Súčet dvoch matíc bude zároveň aj výpisom tejto matice. Vypíšu sa vám štyri čísla usporiadané do štvorca. Pri zmene j sa vloží medzera, pri zmene i sa vloží novýriadok. 







Řetězce.



Hlásite sa do knižnice. Táto knižnica je zvláštna tým, že ako identifikáciu vám pridelí meno aké by ste mali vo Hviezdnych vojnách a osobné číslo. Do knižnice sa bude hlásiť napríklad Jožko Mrkvička, ktorý sa narodil v Koreňove a jeho mama sa volala za slobodna Petržlenová.
  1. Najprv si pripravte scénu kniznica.s00 (tlačivo prihlášky). 
  2. Po zadaní údajov bude obrazovka vyzerať takto: . Naprogramovať takýto vstup by pre vás nemal byť problém.
  3. Evidenčné meno sa prideľuje tak, že zoberiete prvé tri písmená z priezviska a prvé dve z mena. Priezvisko vytvoríte tak, že zoberiete prvé dve písmená z rodného mena matky a prvé tri z miesta narodenia. 
  4. Evidenčné číslo sa prideľuje ako súčet dĺžky mena a dĺžky priezviska. Pri zisťovaní dĺžky mena Vám pomôže prvok délka řetězce 
  5. Na obrazovku vypíšte evidenčné meno.  
  6. Pomocou prvku převod na řetězec  si môžete zjednodušiť výpis evidenčného čísla.  
  7. Ako evidenčné meno sa vám vypísalo MrkJo PeKor. Krajšie by to bolo Mrkjo Pekor. Vložte pred  prvok malá písmena .
  8. Teraz je aj priezvisko malým Mrkjo pekor. Budete musieť rozdeliť načítanie Hviezdneho mena. 





Keď chcete nájsť súbor s menom baltik.bpr, stačí napísať bal a vypíšu sa vám všetky súbory, ktoré obsahujú reťazec bal. Napr. balik.bpr, alobal.txt, baltazar.exe, ...  Vytvorte program, ktorý vypíše všetky slová obsahujúce reťazec bal. Slová budete načítať do poľa o veľkosti 5.
  1. Veľkosť poľa si vložte do konštanty, aby ste ju podľa potreby mohli meniť.
  2. Najprv potrebujete pole naplniť. 
  3. Pre kontrolu si urobte aj pomocníka na výpis prvkov poľa. 
  4. To, či slovo obsahuje reťazec bal zistíte pomocou prvku pozice podřetězce v řetězci . Ak sa podreťazec v reťazci nenachádza, funkcia vráti nulu. Keď funkcia vráti číslo rôzne od nuly, takýto podreťazec sa v reťazci nachádza a teda reťazec treba vypísať. 
  5. Ešte treba hlavný program. 




Príklady:
  1. Máte pole desiatich čísel. Usporiadajte ich vzostupne.
  2. V knižnici majú dôvodné podozrenie, že Jožko Mrkvička vytrháva 23 až 27 stranu z kníh. Rozhodli sa vyvesiť oznam na dvere knižnice. POZOR! JOŽKO MRKVIČKA NIČÍ KNIHY! Nakoniec ale zistili, že to bol Knižník Štvorstranový. Takže dole na oznam POZOR! KNIŽNÍK ŠTVORSTRANOVÝ NIČÍ KNIHY! pripísali: "ospravedlňujeme sa jožkovi mrkvičkovi".
  3. Upravte pomocníka  a výpis celočíselných premenných v hlavnom programe tak, aby ste nemuseli používať prvky . Ide o program z tejto stránky, kde známkujete 1.B.



Možné riešenia príkladov:

1.
  1. Pole desiatich čísel môžete naplniť aj náhodne. 
  2. Výpis poľa sa vždy zíde. 
  3. Dajme tomu, že pole obsahuje prvky 4 2 3 1 6 5 4 8 6 1 . Porovnajte prvé dva prvky poľa. Keď pole[1]>pole[2], tak do pom vložte pole[2], do pole[2] vložte pole[1] a do pole[1] vložte pom. Takže obsah poľa teraz vyzerá takto: 2 4 3 1 6 5 4 8 6 1 . Keďže porovnávate dva vedľa seba stojace prvky poľa, pole[i] a pole[i+1], dá sa to zovšeobecniť na cyklus od 1 do 9 (pre i=9, i+1=10).
  4. Po prebehnutí tohoto cyklu bude usporiadanie prvkov poľa takéto: 2 3 1 4 5 4 6 6 1 8 . Aby ste tú jednotku, ktorá je na deviatom mieste dostali dopredu, potrebujete aby cyklus z bodu 3. prebehol deväť krát. 
  5. Ešte hlavný program. 


2.
Ak nechcete mená načítať pomocou klávesnice, môžete si ich do premenných vložiť ako počiatočnú hodnotu.



3.