tip string u pascalu
DESCRIPTION
Opis string podataka u pascaluTRANSCRIPT
![Page 1: Tip String u pascalu](https://reader036.vdocuments.pub/reader036/viewer/2022082404/55cf9502550346f57ba5f19c/html5/thumbnails/1.jpg)
TIP STRING
Za razliku od standardnog PASCAL-a TURBO PASCAL raspoloaže tipom STRING kome se mora (radi prevodjenja) unapred definisati maksimalna dužina, dok stvarna dužina vrednosti string promenljive može varirati(do maksimalne) u toku izvršavanja programa. Primer var kolac:string[10]; sok :string[30]; Dužine string promenljive može biti najviše 255 simbola. U prethodnom primeru string promenljiva kolac može imati bilo koju dužinu od 0 do 10 znakova; string promenljiva sok od 0 do 30 znakova. String promenljiva zauzima jedan bajt više od definisane dužine.Npr kolac zauzima 11 bajtova memorije.Prvi bajt sadrži dužinu tekuće vrednossti string promenljive. Ako je izvršena dodela kolac:='torta' to će se u memoriji registrovati na sledeći način:
0 1 2 3 4 5 6 7 8 9 10
5 t o r t a ( + ) ? @ dužina string
String dužine nula '' (dva znaka apostrofa jedan do drugog).
Operacije nad stringovima
Za manipulaciju sa podacima string koristi se niz ugradjenih funkcija i procedura.
F-ja LENGTH:
F-ja length(s) odredjuje dužinu string promenljive s. primer: length('torta')=5
primer: kolac:='torta' for i:=1 to length(kolac) do writeln(kolac[i]); Da bi se izdala vrednost promenljive tipa string može se koristiti naredba WRITE i WRITELN. Ako je dužina polja u naredbi izlaza veća od tekuće dužine string promenljive, vrši se poravnanje sa desne strane polja, a s leve starne je dopunjavanje prazninama.Ako je dužina polja manja od dužine promenljive vrši se odsecanje stringa sa desne strane tako da se može smestiti u polje. primer: program a1; var cifre:string[10]; begin cifre:='0123456789'; writeln(cifre:10); writeln(cifre:13); writeln(cifre:5) end.
Da bi se učitala vrednost promenljive tipa string mora se koristiti naredba READLN , a ne može se koristiti naredba READ.
Nad sting tipom je definasano poredjenje koje daje rezultate logičkog tipa.Rezultat poredjenja zavisi od poredjenja prvog para znakova koji nije u relaciji jednako.
![Page 2: Tip String u pascalu](https://reader036.vdocuments.pub/reader036/viewer/2022082404/55cf9502550346f57ba5f19c/html5/thumbnails/2.jpg)
primer: 'ABCD' < 'ABCE' True 'ABCD' < 'ABCC' False '300' < '32' True '30' < '300' True
F-ja CONCAT
F-jom concat(s1,s2,s3,...) se formira novi string nadovezivanjem više stringova koji su argumenti f-je.
primer: concat('ABC,'XYZ')='ABCXYZ'
Stringovi se mogu nadovezivati(konkatencija) i primenom znaka + (plus) .
primer: s4:=s1+s2+s3 ; s4:=concat(s1,s2,s3);
F-ja POS
F-ja pos(s1,s2) ispituje da li se string s1 sadrži u stringu s2.Ako je to tačno f-ja pos daje ceo broj koji označava poziciju prvog pojavljivanja idući s leve starne s1 u s2. U protivnom daje 0.
primer:
pos('gram','programiranje') 4 pos('VAR','VAR') 1 pos('grad','beograd') 4 pos('bor','negotin') 0
F-ja COPY
F-ja copy(s,p,d) daje novi string formiran kopiranjem d znakova stringa s počev od pozicije p.
primer:
copy('beograd',4,4) 'grad'
Procedura DELETE
Procedura delete(s,p,d) uklanja podstring od s počev od pozicije p na dužini d.
primer: film:='Let iznad kukavicjeg gnezda'; delete(film,11,10); writeln(film);
posle izvršenja program ispisuje: Let iznad gnezda
proba:='Danas je lep suncan dan'; delete(proba,14,6); writeln(proba);
posle izvršenja program ispisuje: 'Danas je lep dan'
![Page 3: Tip String u pascalu](https://reader036.vdocuments.pub/reader036/viewer/2022082404/55cf9502550346f57ba5f19c/html5/thumbnails/3.jpg)
Procedure INSERT
Procedura insert(s1,s2,p) umeće string s1 u string s2 počev od pozicije p.
primer: rec:='suncan '; proba:='Danas je lep dan'; insert(rec,proba,14); writeln(proba);
posle izvršenja program ispisuje: 'Danas je lep suncan dan'
Procedura STR
Procedura str(num,s) obezbedjuje konverziju numeričke vrednosti num (integer,real) u string s. primer: str(130,s) s='130'
Procedura VAL Procedura val(s,num,kodgreske) konvertuje string s u broj tipa real ili integer. Ako string sadrži korektan brojni zapis( celobrojni,realni) konverzoja je uspešna i kodgreske se postavlja na 0, ako string sadrži nekorektan brojni zapis kodgreske dobija vrednost različitu od nule(0).
Zadaci: 1. Šta se dobija izvršavanjem sledećih sekvenci naredbi: a) s:=concat('BEO','GRAD"); writeln(s);
rešenje: BEOGRAD
b) s:=concat('BA','SK','ET'); writeln(s)
rešenje: BASKET
c) s:='Zdravo'+'!'; writeln(s);
rešenje: Zdravo!
d) s1:='prvo'; s2:='drugo'; writeln(s1+s2,' ',s2+s1);
rešenje: prvodrugo drugoprvo
2. [ta je vrenost koja se dobija izvr{avanjem f-ja: a) pos('gol','golman') 1 b) pos('TIP','TOP') 0 c) pos('grad','beograd') 4 d) pos('pas','kompas') 4
3. Šta se ispisuje posle izvršavanja sledećeg niza naredbi: a) s1:='*'; s2:='1234567890'; insert(s1,s2,5); writeln(s2);
![Page 4: Tip String u pascalu](https://reader036.vdocuments.pub/reader036/viewer/2022082404/55cf9502550346f57ba5f19c/html5/thumbnails/4.jpg)
delete(s2,5,1); writeln(s2);
resenje: 12345*67890 1234567890
b) film:='Prohujalo sa vihorom'; delete(film,11,3); writeln(film);
resenje: Prohujalo vihorom
c) film:='Prohujalo vihorom' rec:='sa'; insert(rec,film,11); writeln(film);
resenje: Prohujalo sa vihorom
4. Odrediti vrednost promenljive s po izvršenju sledećih procedura:
a) str(30,s); s='30' b) str(30:4,s); s=' 30' c) str(7.5,s) s='7.500000000e+00' d) str(7.5:15:3,s) s=' 7.500'