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, ...
-
Potrebujete zistiť koľko je
v triede žiakov.
-
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.
-
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 )
-
Na vypis prvkov pola vam posluzi
pomocnik .
-
Výpočet priemernej známky je
taký istý ako predtým.
-
Počet jedničiek, dvojok, trojok,
... zistíte najjednduchšie pomocou vetvenia switch.
-
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.
-
Budete sčítať dve matice. Najpr
ich treba deklarovať.
-
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.
-
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á.
-
Najprv si pripravte scénu
kniznica.s00 (tlačivo prihlášky).
-
Po zadaní údajov bude obrazovka
vyzerať takto: . Naprogramovať
takýto vstup by pre vás nemal byť problém.
-
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.
-
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 .
-
Na obrazovku vypíšte evidenčné
meno.
-
Pomocou prvku převod na řetězec
si môžete zjednodušiť výpis evidenčného čísla.
-
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 . .
-
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.
-
Veľkosť poľa si vložte do konštanty,
aby ste ju podľa potreby mohli meniť.
-
Najprv potrebujete pole naplniť.
-
Pre kontrolu si urobte aj pomocníka
na výpis prvkov poľa.
-
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ť.
-
Ešte treba hlavný program.
Príklady:
-
Máte
pole desiatich čísel. Usporiadajte ich vzostupne.
-
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".
-
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.
-
Pole desiatich čísel môžete
naplniť aj náhodne.
-
Výpis poľa sa vždy zíde.
-
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).
-
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.
-
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.