0% au considerat acest document util (0 voturi)
221 vizualizări20 pagini

Tipul de Date Sir de Caractere (String)

Documentul prezintă noțiuni de bază despre tipul de date șir de caractere în limbajele de programare. Se explică ce este un șir de caractere, modul de declarare și operații posibile asupra acestuia, precum și exemple de programe care utilizează șiruri de caractere.
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PPT, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
221 vizualizări20 pagini

Tipul de Date Sir de Caractere (String)

Documentul prezintă noțiuni de bază despre tipul de date șir de caractere în limbajele de programare. Se explică ce este un șir de caractere, modul de declarare și operații posibile asupra acestuia, precum și exemple de programe care utilizează șiruri de caractere.
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PPT, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 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