170 likes | 358 Views
Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia. Reťazce. Reťazec. postupnosť znakov ľubovoľnej dĺžky dĺžka reťazca = počet znakov (vrátanie medzier) dĺžka premennej typu reťazec nie je dopredu určená, nastaví sa po vložení reťazca
E N D
Kód ITMS projektu: 26110130519 Gymnázium Pavla Jozefa Šafárika – moderná škola tretieho tisícročia Reťazce
Reťazec • postupnosť znakov ľubovoľnej dĺžky • dĺžka reťazca = počet znakov (vrátanie medzier) • dĺžka premennej typu reťazec nie je dopredu určená, nastaví sa po vložení reťazca • zapisujú sa podobne ako znaky do apostrofov
Deklarácia premennej typu reťazec Označenie premennej typu reťazec: údajový typ STRING Príklad: var s: string; r: string[10]; ... • reťazec s nemá určenú dĺžku • reťazec r má určenú dĺžku 10 znakov
Manipulácia s reťazcom var r: string; Vloženie hodnoty do reťazca s:=’programovanie’; Výpis hodnoty reťazca (do Memo1) Memo1.Lines.Add(s);
Zreťazenie • slúži na spájanie reťazcov • realizuje sa pomocou operátora + Príklad ... var a, b, c: string; begin a:= ‘Dnes‘; b:= ‘pekný‘; c:= ‘deň‘; Memo1.Lines.Add( a + ‘ je ‘ + b +‘ ‘ + c +‘.‘); end;
Určenie dĺžky reťazca funkcia length(retazec) Príklad: var r: string; d: integer; begin s:=’programovanie’; d:=length(s); Premenná d obsahuje hodnotu 13
Prístup k znakom reťazca • znaky reťazca majú indexy/poradové čísla. • prvý znak v reťazci má index 1 • na označenie znaku v reťazci sa používa zápis:retazec[index] • index je celé číslo z intervalu <1, length(retazec)>
Vytvorenie podreťazca funkcia copy(retazec, index_1_znaku,pocet_znakov ) Vytvorí podreťazec reťazca od znaku s indexom index_1_znaku s počtom znakovpocet_znakov. Príklad: var r,s: string; begin r:=’programovanie’; s:=copy(r,5,9); premenná s obsahuje reťazec ramovanie
Vloženie podreťazca funkcia insert(retazec_1,retazec_2,index_1_znaku ) Vloží podreťazecretazec_2 do reťazca retazec_1 od znaku s indexom index_1_znaku. Príklad: var r,s,t: string; begin s:=’ramovanie’; r:=’prog’; t:=insert(s,r,1); premenná t obsahuje reťazec programovanie
Vymazanie podreťazca funkcia delete(retazec, index_1_znaku,pocet_znakov ) Vymaže z reťazca podreťazec od znaku s indexom index_1_znaku s počtom znakovpocet_znakov. Príklad: var r,s,t: string; begin r:=’ramovanie’; s:=’prog’; t:=insert(s,r,1); premenná t obsahuje reťazec programovanie
Zisťovanie pozície funkcia pos(retazec_1, retazec_2 ) Zistí, či sa v reťazci retazec_2 nachádza podreťazecretazec_1. Ak sa nachádza, vráti poradové číslo znaku 1. výskytu. Príklad: var r,s: string; pozicia: integer; begin r:=’programovanie’; s:=’ram’; pozicia:=pos(s,r); Premenná pozicia obsahuje reťazec 1
Úlohy • Vytvorte program, ktorý v zadanom reťazci zistí počet písmen, počet číslic a počet medzier. • Vytvorte program, ktorý zadanú vetu vypíše tak, že každé slovo vypíše do samostatného riadku.
(MO!) Betka dostala za úlohu pripraviť triednu nástenku, ale nevie, či jej stačia písmená. Uľahčite Betke prácu a spočítajte, koľko ktorých písmen na nástenku potrebuje. (Na nástenku sa používajú iba veľké písmená.) Zostavte program, ktorý vypíše početnosti veľkých písmen v zadanej vete.
(MO!)Vytvorte program, ktorý bude šifrovať text pomocou Cézarovej šifry. (substitučná šifra, ktorá pracuje s posunom každého písmena v abecede o konštantný počet znakov, napr. ak je posun 3 znaky, text: AHOJ sa zašifruje ako DKSM). Podobne chceme zašifrovaný text dešifrovať.
(dú) Vytvorte program, ktorý bude šifrovať text pomocou šifry Atbash. (substitučná šifra, zamieňa prvé písmeno v abecede (A) za posledné (Z), druhé písmeno (B) za predposledné (W) a pod. Podobne chceme zašifrovaný text aj dešifrovať.
Použité zdroje • http://www.gympd.sk/~jaro/pascal/subortxt/index.html • http://www.programovanie.kromsat.sk/prog-b/s24.htm