String

  În Turbo Pascal pentru a putea lucra cu şirurile de caractere se folosesc variabilele de tip string.

  Tipul string este predefinit, adică este cunoscut, nu avem nevoie sa-l declaram cu type.

27.png

 Programul de mai sus are declarată o variabilă t, de tip string. Ea este iniţializată cu şirul ’iepuras’, apoi este afişată.  În exemplul dat sirul ’iepuras’ este alcatuit din 7 caractere. Octeţii de la 1 la 7 memorează caracterele din care este alcătuit şirul. Restul octeţilor, de la 8 la 255 au un conţinut neprecizat. De altfel, nici nu ne interesează conţinutul lor. Observăm faptul că afişarea s-a realizat, în ansamblu, prin precizarea numelui.

OPERATORII UTILIZAȚI LA COMPARAREA ȘIRURILOR DE CARACTERE:

Asupra şirurilor de carcatere sunt admise operaţiile relaţionale <, <=, =, >=, >, <>.   Şirurile se compară componentă cu componentă de la stânga la dreapta în conformitate cu ordonarea caracterelor în tipul de date char.

Operatorul ,,=’’ testează dacă două şiruri de caractere sunt egale din punct de vedere al ordinii alfabetice.

28.png

Operatorul ,,+’’ are rolul de concatenare (juxtapunere) a doua şiruri de caractere.

Concatenarea este operaţia prin care din două şiruri de caractere se obţine un al treilea şir de caractere.

29.png

Observatie! Concatenarea şirurilor nu este comutativă, adică S1+S2 nu este la fel ca şi S2+S1.

30.png

Operatorii „<”, „>”, „<=”, „>=”.

Comparaţia se realizează din punct de vedere lexicografic (ordinea alfabetică).

31

FUNCȚIILE ȘI PROCEDURILE UTILIZATE DE TIPUL STRING:
  • Functia Copy
    Sintaxa functiei Copy:  Copy (șir , poz, nr) – extrage un subșir al primului șir, începând de la poziția poz și având un număr nr de carcatere.
    Exemplu 1 : S := ‘ MIRABELA ‘;
    S1 := copy ( S , 5 , 4 ) ;
    Writeln (S1) ; => afisează BELA ;
    Exemplu  2 : S : =’ CALCULATOR ‘;
    S1 : = COPY (S , 1 ,4);
    Writeln (S1) => afiseaza CALC.
  • Functia Pos
    Sintaxa functiei Pos: Pos( , ) – testează dacă șirul nu este subșir al sirului 2 returnând poziția de început a variabilei șir1 în cadrul șirului2 .
    Observație :Dacă șirul 1 nu este subșir al șirului 2 o să returneze valoarea 0 (zero).
    Exemplu :
    S : = ‘ MIRABELA ‘;
    S1 : = ‘BELA’;
    S2 : = ‘ BIANCA ‘;
    P1 : = POS ( S1 , S) ;
    P2 : = POS ( S2 , S ) ;
    Writeln ( p1 , p2 ) ;
    P1 : = 5;
    P2 : = 0;
  • Functia Length
    Sintaxa funcției Length : Length ( S ) . S – variabila de tip string .
    Returnează dimensiunea unui șir de caractere .
    { Exemplu : pe calculator scrii întreg => Exemplu }
    Exemplu : 1
    S : = ‘ MIRABELA ‘;
    N := length ( S ) ;
    Writeln ( N ) => N = 8;
    Exemplu : 2
    S : = ‘LILIAC ‘;
    N : = length ( S ) ;
    Writeln ( N ) => N = 6;
    Observație : Folosind funcția length putem afișa un șir de caractere pe litere .
    Exemplu :
    S :=’MIRABELA ‘;
    For i : = 1 to length ( S ) do
    Writeln ( S [ i ] ) ; afisaza S [ 1 ] = M , S [ 2 ] = I , S [ 3 ] = R … S [ 8 ] = A;
  • Procedura Delete .
    Sintexa proceduri Delete :  Delete ( < sir > , < poz > , < nr > ) ;
    Șterge din variabila șir începand cu poziția dată de variabila poziție un șir format dintr-un număr de caractere dat de variabile numere .
    Observație : Șirul rezultat în urma ștergerii va fi memorat în variabila șir .
    Exemplu : S := ‘ PROGRAMARE ‘,
    Delete ( S , 8 , 3 );
    Writeln ( S ) => afisează program.
  • Procedura Insert .
    Sintaxa procedurii Insert : Insert ( < subsir > , < sir > , < poz >) ;
    Adaugă în variabile șir un subșir dat de variabila subșir începand cu poziția dată de variabila poz .
    Exemplu :
    S := ‘ PROGRAME ‘;
    Insert ( ‘ AR ‘ , s , 8 ) ;
    Writeln ( s ) => afisează PROGRAMEAR .
  • Procedura Str utilizată pentru a transforma un număr în șir de caractere.
    Sintaxa procedurii Str : str (nr , șir) ;
    Transformă numărul dat de variabilă numerelor într-un șir de caractere reținut în variabila șir .
    Exemplu : n := 125 (n de tip intreg ) ;
    str (n,s) ;
    writeln (s) ;=> afiseaza s = ’ 125 ’;
  • Procedura Val utilizată pentru a transforma un șir de caractere în număr.
    Sintaxa procedurii Val : val (șir ,nr , eroare) ;
    Transformă șirul dat de variabila șir în număr reținut în variabila număr .
    Observație : Dacă transformarea reușeste , variabila eroare ia valoarea 0 (zero) , iar dacă transformarea nu reusește variabila eroare ia valoarea poziției caracterului din cauza careia nu a reuțit transformarea , variabila eroare este de tip intreg .
    Exemplu : s1 := ’ – 125 . 36 ’ ;
    s2 := ’ – 125 . A36 ;
    val (s1 , n1 , e1) ;
    val (s2 , n2 , e2) ;
    writeln (e1 , e2 , n1 , n2) ;
    => afiseaza
    e1 := 0 ;
    e2 := 6;
    n1 := – 125 . 36;
    n2 nu afiseaza nimic.
  • Observatie : Pentru a transforma o litera mică în litera mare se poate folosi : funcția UPCASE :s[i] = UPCASE (s[i]) ;
    S[i] = chr (ord (s[i]) – 32)
    Pentru a transforma o litera mare în literă mică se folosesște :
    S[i] := chr (ord (s[i]) +32) .