tip string u pascalu

5
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

Upload: samuel-marrokson

Post on 19-Jan-2016

26 views

Category:

Documents


2 download

DESCRIPTION

Opis string podataka u pascalu

TRANSCRIPT

Page 1: Tip String u pascalu

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

        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

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

                           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'