sobota 24. mája 2014

Textové reťazce


  • popíšte dvojkovú, desiatkovú,  šestnástkovú číselnú sústavu
  • demonštrujte prevody medzi jednotlivými číselnými sústavami
  • charakterizujte údajový typ string a char
  • popíšte podporné funkcie na podporu práce s textom (length)
  • popíšte procedúry na prácu s textom (val)
  • vytvorte program podľa zadania



Znakový údajový typ CHAR


Údajový typ CHAR nesie v sebe informáciu o znakoch v ASCII tabuľke, každému znaku prislúcha isté číslo (celé číslo), ktoré mu určuje pozíciu v tabuľke. Obsahuje znaky, číslice a písmená.

Funkcie so znakovým údajovým typom CHAR:

ord(x)=y vracia číslo prislúchajúce znaku X v tabuľke ASCII; y:integer, x:char
chr(x) vracia znak prislúchajúci číslu v ASCII tabuľke
upcase(x) zmení malé písmeno na veľké, plat len pre písmená a..z


Údajový typ String


Jedná sa o postupnosť znakov, jeho maximálna dĺžka je 255 znakov. Nultý znak nesie v sebe informáciu o dĺžke reťazca, je to informácia vo forme znaku, kde číslo priradené znaku v tabuľke ASCII zodpovedá dĺžke príslušného reťazca. V reťazci sa môžeme pohybovať zadávaním pozície (POZOR!!! Nultá pozícia je rezervovaná pre znak určujúci dĺžku reťazca), pr. string[1] – 1. pozícia v reťazci, string[2] – 2. pozícia ..... .


Procedúry a funkcie pre prácu s typom CHAR a STRING


ORD (x)
Funkcia vracia poradové číslo znaku x v ASCII tabuľke.

CHR (x)
Funkcia je opakom funkcie ORD, vracia znak poradového čísla x v ASCII tabuľke.

PRED (x)
Funkcia vracia predchádzajúci znak znaku x v ASCII tabuľke.

SUCC (x)
Funkcia vracia nasledujúci znak znaku x v ASCII tabuľke.

STR (x, s)
Procedúra konvertuje numerickú hodnotu premennej x do reťazca s.

VAL (s, x, kod)
Procedúra konvertuje reťazec s do premennej x, ktorá je numerického typu.
Premenná kod obsahuje nulovú hodnotu, ak operácia bola úspešná, inak ukazuje index znaku, pri ktorom došlo k chybe.

DELETE (s, p, z)
Procedúra odstráni z reťazca s počet znakov z od pozície p.

INSERT (s1, s2, p)
Procedúra vloží reťazec s1 do reťazca s2 na pozíciu p.

COPY (s, p, z)
Funkcia vytvorí podreťazec z reťazca s od pozície p dĺžky z.

LENGTH (s)
Funkcia vracia dĺžku reťazca s.

POS (s1, s2)
Funkcia hľadá reťazec s1 v reťazci s2 a vracia pozíciu, kde reťazec s1 začína.
Ak funkcia v reťazci s2 nenájde reťazec s1, vráti nulovú hodnotu.

Programy - príklad


Napíšte program, ktorý zistí dĺžku reťazca


Length (s: string): Integer;

Zistí koľko znakov obsahuje reťazec.

{ Program vypíše na obrazovku číslo 7 }

var s: string;
Begin
 s:='ABCDEFG';
 WriteLn('length = ', Length(s));
End.


Napíšte program, ktorý spočíta koľkokrát sa nachádza daný znak v reťazci


public int pocetVyskytov(String s) {
        int vysledok = 0;
        for (int i=0; i<s.length(); i++) {
                if (s.charAt(i) == 'a') {
                        vysledok++;  
                }
        }
        return vysledok;
}

Žiadne komentáre:

Zverejnenie komentára