Tipul string - teorie

TIPUL STRING - NOTIUNI INTRODUCTIVE


Poate ati observat ca, pana in acest moment, nu am memorat cuvinte. Acestea au fost numai afisate. In Pascal se poate lucra cu usurinta cu ele, datorita faptului ca limbajul este inzestrat cu un tip de date special, numit string .
O succesiune de caractere cuprinse intre doua caractere se numeste sir de caractere .

Exemple :
• ’ Un sir ’
• ’ toamna se numara bobocii ’ .

In Pascal pentru a putea lucra cu sirurile de caractere se folosesc variabilele de tip string. Tipul string este predefinit, adica este cunoscut, nu avem nevoie sa-l declaram cu type .

Exemplu :
program st1;
var t : string;
begin
t := ’ iepuras ’;
writeln (t);
end.

Programul de mai sus are declarata o variabila t , de tip string . Ea este initializata cu sirul ’iepuras’, apoi este afisata .
In exemplul dat sirul ’iepuras’ este alcatuit din 7 caractere. Octetii de la 1 la 7 memoreaza caracterele din care este alcatuit sirul. Restul octetilor, de la 8 la 255 au un continut neprecizat . De altfel, nici nu ne intereseaza continutul lor. Observati faptul ca afisarea s-a realizat, in ansamblu, prin precizarea numelui .

Intrucat o variabila de tip string memoreaza cuvintele sub forma de vector de caractere, exista posibilitatea sa accesam direct continutul unui octet, asa cum suntem obisnuiti. Astfel, t[1] retine codul caracterului I, t[2] retine codul caracterului e s.a.m.d. Programul care urmeaza afiseaza acelasi cuvant, pe litere.
program st2;
var t : string;
i : integer;
begin
t := ’ iepuras ’;
for i :=1to n do
write (t[i]);
end .

Mai mult, putem modifica continutul unui singur octet, asa cum rezulta din programul urmator:

program st3;
var t : string ;
begin
t := ’ iepuras ’;
t[6] := ’ i’;
write(t);
end .

In loc de ’a’ t [6] retine ’i’. Prin urmare , programul afisaza ’iepuras’
In cazul variabilelor de tip string exista posibilitatea ca atribuirea sa se faca direct, nu pe litere, asa cum rezulta din programul st4 .

program st4;
var t ‚ z : string;
begin
t := ’ iepuras ’;
z := t;
write(z);
end .
In urma atribuirii, variabila z retine cuvantul ’’ iepuras ’’ si acesta este afisat .
Am vazut ca pentru o variabila de tip string se retin automat 256 de octeti, din care primul retine lungimea. In multe cazuri, acest numar este prea mare – se consuma memorie inutil. Din acest motiv exista posibilitatea ca o varianta de tip string sa fie declarata in asa fel incat sa ocupe un numar mai mic de octeti.

Exemplu :
• Var t : string [4] ;

Variabila t ocupa 5 octeti. Primul, cel de indice 0, are rolul de a retine lungimea cuvantului memorat. In acest caz variabila poate retine cuvinte ce au cel mult 4 de caractere. Programl st5 afiseaza ’ mama ’

programul st5 ;
var t : string [4] ;
begin
t := ’ mama ’;
write (t);
end .

In concluzie, prin utilizarea variabilelor de tip string avem avantajul ca putem adresa sirul de caractere atat in ansamblu, prin utilizarea numelui variabilei, cat si pe caractere prin utilizarea parantezelor drepte .

Operatorii folositi la compararea sirurilor de caractere sunt :

• Operatorul ,,=’’ testeaza daca doua siruri de caractere sunt egale din punct de vedere al ordinii alfabetice.
Exemplu : S1 = ’ abc ’
=> S1=S2
S2 = ’ abc ’

• Operatorul ,,+’’ are rolul de concatenare (lipire) a doua siruri de caractere.
Concatenarea este operatia prin care din doua siruri de caractere se obtine un al treilea sir de caractere.
Exemplu : S1 = ’ MIRA ’
S2 = ’ BELA ’
S1+S2 = ’ MIRABELA ’
Observatie !
Concatenarea sirurilor nu este comutativa , adica S1+S2 nu este tot una cu S2+S1 .
Exemplu : S1 = ’ MIRA ’
S2 = ’ BELA ’
S1+S2 = ’ MIRABELA ’ (corect)
S2+S1 = ’ BELAMIRA ’ (incorect)
• Operatorii „<” , „>” , „<=” , „>=” .
Comparatia se realizeaza din punct de vedere lexicografic (ordinea alfabetica).
Exemplu : S1 = ’ MINI ’
S2 = ’ MARTIE ’

M=M
=> MINI > MARTIE
I>A
S1 = ’ IUNIE ’
S2 = ’ MARTIE ’
I

Comentarii

Postări populare de pe acest blog

Deplasarea elementelor unui vector

Alt set de probleme

Obiecte cu care lucreaza algoritmii