Tipul de Date Sir de Caractere (String)

Descărcați ca ppt, pdf sau txt
Descărcați ca ppt, pdf sau txt
Sunteți pe pagina 1din 20

DISCIPLINA: Informatica, anul II

PROFESOR: Bînzari Oxana

MODULUL 1: Tipuri de date structurate.

TEMA 4: Tipul de date șir de caractere (string)

Tipul lecţiei: dobândire de noi cunoştinţe, priceperi


şi deprinderi.
Locul de desfăşurare: LABORATORUL DE INFORMATICA
La finele lecției
veți cunoaște:

ce este un șir de caractere;

mulțimea de valori a tipurilor de date structurate;

restricțiile impuse de realizările limbajelor de


programare în cazul tipurilor de date structurate;
 Şirul de caractere reprezintă un tip de variabilă care include o
succesiune de maxim 255 caractere.

 Un șir de caractere reprezintă o succesiune de


caractere cuprinse între apostrofuri. Această succesiune poate fi
alcatuită din:
- litere mici, - cifre,
- litere mari, - delimitatori(., ;),
- caractere speciale(# @);

 Un șir de caractere poate fi memorat într-o variabilă de


tip STRING.
(ne amintim) (studiem)
Identificatori Șir de caractere

 literele mari și mici au  literele mari și mici apar drept


aceeași semnificație; caractere distincte;
 nu pot fi utilizate  pot fi utilizate diacriticile: ă, î,
diacriticile: ă, î, â, ș, ț; â, ș, ț - este necesar să se
instaleze programe – pilot ce
asigură introducerea, afișarea și
imprimarea acestor caractere.
Atunci cînd folosim șiruri de caractere una din reguli este că:

șirurile de caractere se indică în ‘ ’ (apostroafe).


Exemple:
1) ‘Suma’ 3) ‘Limba engleză’
2) ‘Suprafață’ 4) ‘ecuație’

Remarcă: dacă doresc să utilizez în interiorul șirului de caractere


însăși apostroful atunci va fi necesar să îl dublez,
de exemplu:

‘Casa 8 ”A” ’ – corect


‘Casa 8 ”A ’ – greșit
Un șir de caractere se definește cu ajutorul următoarelor
formule BNF:
< Șir de caractere >::= ‘<Element șir > {<Element șir > }’
< Element șir >::=‘’| < Orice caracter imprimabil>

Diagrama sintactică
< Șir de caractere >
’ Element șir ’

< Element șir >


‘ ‘
Orice caracter imprimabil
Tipul de date șir de caractere reprezintă un caz special al tipului de
date tablou (array).
Reține
Șirurile de caractere de tip array [1 .. n ] of char, conțin exact n
caractere, adică sunt șiruri cu lungime constantă;
Cum facem referință la componentele unui șir de
lungime constantă ???
Type < nume tip> = string;

Exemplu: var nume: string;

Reține
Dacă dimensiunea nu este specificată atunci compilatorul va aloca
dimensiunea maximă , adica 255 de caractere.
Un șir de caractere poate fi memorat într-o variabilă de tip STRING.
Declararea unei astfel de variabile se poate realiza fie prin specificarea
dimensiunii maxime a șirului, fie nu.

Type < nume tip> = string [nmax];

Exemplu: var nume: string [25];

Reține
Dacă la declararea unei variabile este specificata dimensiunea maxima
a sirului de caractere, atunci compilatorul va aloca un număr de
caractere pentru această variabilă.
!!!Observatie!!!

Dacă valoarea ce i se atribuie unui șir de caractere depășeste


lungimea maximă a șirului, atunci șirul de caractere va primi o
valoare trunchiată din valoarea inițială egală cu lungimea maximă
a sa.

Exemple:

a) s: string[3]; s:=’abcde’ va afișa: s=’abc’;

b) s: string; s:=’abcde’ va afișa: s=’abcde’;


Șiruri de caracere

Valorile unei variabile V de tip array [1..n] of char


pot fi introduse de la tastatură numai prin citirea
separată a componentelor respective: read (V[1]);
read (V[2]); ... , read (V[n]);
În schimb, o astfel de valoare poate fi afișată în
totalitatea ei printr-un singur apel write (V) sau
writeln (V);
Operații pe șiruri de caracere

1) Concatenarea a două sau mai multe șiruri de caractere, se


realizează folosind operatorul ”+”.
Exemplu:
 Var s: string;
s:=’ab’+’ ‘+’cde’; va afișa s=ab cde

 s1:= ’prima’;
s2:= ’vara’;
s3:=s1+s2; va afișa: ’primavara’
Operații pe șiruri de caracere

2) Compararea a două caractere precum și compararea a două


șiruri de caractere se realizează folosind operatorii relationali:
=, <, <=, >, >=, < >
Exemplu: s1:= ’prima’;
s2:= ’vara’;
s3:=s1 < > s2; va afișa: true

3) Parcurgerea unui șir de caractere length (șir)-returnează


lungimea șirului de caractere.
Exemplu: s1:= ’primavara’;
i:=length(s1); va afișa: 9
Observație
ord, chr – două funcții predefinite specifice caracterelor;
ORD (un caracter) returnează codul ASCII al
caracterului;
CHR (un număr) returnează caracterul corespunzător
codului ASCII.
Funcții predefinite pe stringuri

1) POS (șir, șir2) – verifică dacă șirul 1 se situează în șirul 2 și


returnează poziția de început în șirul 2.

2) COPY (șir, poz, nr) – extrage un subșir al șirului specificat,


începînd din poziția poz cu un număr de caractere.

3) LENGTH (șir) – returnează lungimea unui șir de caractere.

4) CONCAT (s1,s2,…,sn) – lipește mai multe șiruri s1,s2,…,sn.

Exemplu: s1:= ’prima’; s2:= ’vara’;


s3:=concat(s1,s2); va afișa: ’primavara’
Proceduri predefinite in stringuri

1) DELETE (șir, poz, nr)– șterge din șir un subșir începînd cu


poziția poz un număr nr de caractere.
Exemplu: S= ‘casa’;
delete(S,2,2); va afișa: S=’ca’;

2) INSERT (subșir, șir, poz)– înserează subșirul dat în


șirul șir începînd din poziția poz.
Exemplu: subșir== ‘rr’; șir== ‘casa’;
insert(subsir,sir,30); va afișa: șir=’casarr’;
insert(subsir,sir,2); va afișa: șir=’crrasa’;
Analizăm cîteva exemple de program

1) Programul dat va citi un șir de caractere și va afișa lungimea lui.

Program P1;
{ Siruri de caractere de lungime variabilă }
var s : string;
nr : integer;
begin
writeln (’Dați șirul de caractere’);
readln(s);
nr:=length(s);
writeln(’lungimea s este ’,nr);
readln;
end.
Analizăm cîteva exemple de program
1) Programul dat va afișa două șiruri de caractere pentru nume și
prenume cu lungime constantă.
Program P2;
{ Siruri de caractere de lungime constanta }
type Nume = string [8]; Sarcină individuală nr.1
Prenume = string [5]; Elaborați un program care va afișa lungimea
NumePrenume = string; numelui și prenumelui personal,
var N : Nume; de exemplu: Munteanu Mihai
P : Prenume; Va afișa: Munteanu Mihai 14
L : integer;
begin
N:='Munteanu'; L:=length(N); writeln(N, L:4);
P:='Mihai'; L:=length(P); writeln(P, L:4);
readln;
end.
Analizăm cîteva exemple de program
2) Programul dat va afișa numărul de apariții a caracterului spațiu
într-un șir.
Program P3;
{ Numărul de apariții într-un șir de caractere}
var s:string;
i,j:integer;
begin
writeln (’Dați șirul de caractere:’);
repeat
Sarcină individuală nr. 2
readln(s);
i:=0; Modificați programul P3 pentru a
for j:=1 to length(s) do determina numărul de apariții ale
if s[j]= ’ ’ then i:=i+1;
caracterului ’A’ într-un șir.
writeln (’ nr de spații =’ , i);
until s= ’ sfîrșit’
end.
Analizăm cîteva exemple de program

3) Programul dat va înlocui într-un șir de caractere litera A prin


caracterul * și va afișa șirul modificat.
Program P4;
{ substituie caracterul ’A’ prin ’*’}
var s : string;
j : integer;
begin
writeln (’Dați șirul de caractere:’);
readln(s);
for j:=1 to length(s) do
if s[j]= ’ A ’ then s[j]= ’ * ’
writeln (’ șirul modificat este: ’ , s);
readln;
end.
TEMA PENTRU ACASĂ

1) De studiat tema;
2) Exercițiul 7 (e, f) pagina 38;

S-ar putea să vă placă și