Kúsok teórie: Dnes sa naučíme tri nové funkcie (resp. procedúry), ktoré sú už v pascale pripravené na prácu so stringami.
Prvou z nich je funkcia Copy, ktorá vie z reťazca vybrať nejaký podreťazec. (Zamyslite sa – ako vieme z reťazca vybrať iba jeden znak?)
Funkcia Copy má 3 parametre:
Copy(z_coho, od_ktorej_pozicie, kolko);
Ide o funkciu, teda má „nejaký výsledok“, teda ju musíme priradiť do nejakej stringovej premennej, napr.:
var slovo,podslovo:string;
slovo:=’Vianoce‘;
podslovo:=copy(slovo,1,3); //v premennej podslovo bude ulozene ‚Via‘
podslovo:=copy(slovo,2,20); //do premennej podslovo sa dostane ‚ianoce‘, teda menej ako 20 znakov
podslovo:=copy(slovo,8,2); //do premennej podslovo sa dostane iba prázdny reťazec
podslovo:=copy(slovo,4,1); //do premennej podslovo sa dostane „n“, chápaný bude ale ako reťazec, nie ako char!
Často sa budeme stretávať so zápisom copy(slovo, i, maxint), kde maxint znamená čosi ako „koniec slova“ (v princípe je to maximálna celočíselná hodnota zapísateľná do premennej typu integer).
Ďalšou funkciou je funkcia Pos. Jej úlohou je zistiť, kde sa v reťazci nachádza konkrétne slovo. Ak je takýchto slov v jednom reťazci viac, vyhodí pozíciu prvého z nich.
Opäť – ide o funkciu, teda má nejaký výsledok, s ktorým musíme nejako pracovať. Výsledok je číselný, tak si zadeklarujeme premennú typu integer:
var pozicia:integer;
r:string;
r:=’Vianoce su v noci.‘;
pozicia:=pos(‚su‘,r); // vysledkom je 9
pozicia:=pos(‚noc‘,r); // vysledkom je 4
pozicia:=pos(‚jar‘,r); // vysledkom je 0
pozicia:=pos(‚ ‚,r); // vysledkom je 8
Ďalšie dva príkazy sú procedúry Delete a Insert (keďže ide o procedúry, netreba ich nikam priraďovať, stačí ich len zavolať):
– delete má tri parametre, rovnaké ako Copy – z_coho, od_ktorej_pozicie, kolko
– insert slúži na vkladanie podreťazca do reťazcovej premennej, tiež má tri parametre: co_vkladam, kam_vkladam, od_ktorej_pozicie
s := ‚abrakadabra‘; Delete(s, 4, 6); // s = ‚abrra‘
s := ‚abrakadabra‘; Delete(s, 6, 20); // s = ‚abrak‘
s := ‚abrakadabra‘; Delete(s, 1, 1); // s = ‚brakadabra‘
s := ‚abrakadabra‘; Insert(‚*‘, s, 2); // s = ‚a*brakadabra‘
s := ‚abrabra‘; Insert(‚kada‘, s, 5); // s = ‚abrakadabra‘
s := ‚abrabra‘; Insert(‚kada‘, s, 10); // s = ‚abrabrakada‘
s := ‚abxy‘; Insert(s, s, 3); // s = ‚ababxyxy‘
Ďalšie funkcie na prácu s reťazcami:
– UpperCase(text) // vráti reťazec, v ktorom budú všetky písmená veľké
– LowerCase(text) // vráti reťazec, v ktorom budú všetky písmená malé
– Trim(text) // vráti reťazec bez medzier na začiatku a na konci
Úlohy
1. Zistite, koľkokrát sa v nejakom reťazci objavuje nejaký podreťazec, napr. v reťazci „mama ma emu a ema ma mamu“ podreťazec „ma“.
2. Pomocou funkcií copy a pos rozdeľte vetu zo vstupného riadku na slová.
3. Program z prečítaného reťazca vyhodí všetky zbytočné medzery – nechá len po jednej medzi slovami.
4. Program zo zadanej vety vyhodí všetky samohlásky.
5. Program o zadanom texte zistí, či je to palindróm. Ak sa text rovnako číta zľava ako sprava (ak si nevšímame medzery), tak sa volá palindróm. Napríklad, veľmi známym palindrómom je ‚jelenovi pivo nelej‘. Ak zadaný text vyhovuje podmienke palindrómu, tak program vypíše správu ‚je to palindróm‘.
6. Program v zadanej vete každý výskyt medzery nahradí dvoma medzerami.
Domáca úloha, deadline 23.4.2017 o 23:59
Úloha č. 5.
BONUS za 1,5 bodov, deadline 23.4.2017 o 23:59
Úloha č. 6.
Najnovšie články
Najnovšie komentáre
- Kaťa komentoval 08 – Hodnotená aktivita z hardware-u
- Alica komentoval 08 – Hodnotená aktivita z hardware-u
- Daniel komentoval 08 – Hodnotená aktivita z hardware-u
- Marek komentoval 08 – Hodnotená aktivita z hardware-u
- kaja komentoval 08 – Hodnotená aktivita z hardware-u
nika.blog.matfyz.sk
Join Us On Facebook
Join Us On Twitter
Join Us On In.com
Subscribe to RSS
Follow Us On Google+
Subscribe Us On Youtube
Follow Us On Pinterest
Follow Us On Instagram
Follow Us On Tumblr
Subscribe Us On Flickr