Joi, 28.03.2024, 20:01
Bine aţi venit Vizitator

Bine ai venit

Meniu site
Sondajul nostru
Evaluează site-ul meu
Total răspunsuri: 17
Statistici

Total online: 1
Vizitatori: 1
Utilizatori: 0
D Un sir de caractere reprezinta o succesiune de caractere cuprinsa intre apostrofuri. Aceasta succesiune poate fi alcatuita din:
-litere mici;
-litere mari;
-cifre;
-delimitatori(., ;);
-caractere speciale(# @);
Un sir de caractere poate fi memorat intr-o variabila de tipSTRING.
Declararea unei astfel de variabile se poate realize fie prin specificarea dimensiunii maxime a sirului , fie nu.
 
1.      var nume:string[25];  2. var nume: string;
 
    nume:string[nr]; 1<=nr<=255;
 
   Daca la declararea unei variabile este specificata dimensiunea maxima a sirului de caractere , atunci compilatorul va aloca un numar nr de caractere pentru aceasta variabila .
   Daca dimensiunea nu este specificata atunci compilatorul va aloca dimensiunea maxima , adica 255 de caractere.
   Unui sir i se poate asocial o valoare prin doua modalitati:
a)prin atribuirea directa a unei valori folosind operatorul de atribuire(:=);
b)prin procedura (read, readln);
 
!!!Observatie!!!
  Daca valoarea ce i se atribuie unui sir de caractere depaseste lungimea maxima a sirului , atunci sirul de caractere va primi o valoare trunchiata din valoarea initiala egala cu lungimea maxima a sa.
 
Exemple:
a) s:string[3]; s:=’abcde’=>s=’abc’;
b) s:string; s:=’abcde’=>s=’abcde’;
c) s=’‘-stringul de lungime 0;
d) s=’ ‘-sir de caractere de lungime 1.
Operatii pe siruri de caractere
 
1)Concatenarea a doua sau mai multe siruri de caractere.
Se realizeaza folosind operatorul ”+”.
s:string;
s:=’ab’+’ ‘+’cde’;
ð        s=’ab cde’
2)Compararea a doua caractere precum si compararea a doua siruri de caractere se realizeaza folosind operatorii relationali: =, <, <=, >, >=, <>.
Compararea a doua caractere se realizeaza comparand codurile Asci ale celor doua caractere.
Compararea a doua siruri de caractere se realizeaza prin compararea lexicografica , reducandu-se la compararea a doua caractere.
3)Parcurgerea unui sir de caractere
length(sir)-returneaza lungimea sirului specificat.
sir:string;
Valoarea returnata de aceasta functie este o valoare de tip byte.
length(‘’)=0-sirul vid.
s:string ;
s[i]-caracterul de pe pozitia i;
for i:= 1 to length(s) do
        <prelucreaza s[i]>;
!!!Observatii!!!
1)Relatia de legatura intre caracterele mari si caracterele mici este urmatoarea:
CA(mare)+32=CA(mic); CA-codul Asci;
2)ord , chr –doua functii predefinite specifice caracterelor;
ORD(un character)=codul Asci al caracterului;
CHR(un numar)=caracterul corespunzator codului Asci.
 
Functii predefinite pe stringuri
 
1)POS(sir1,sir2);
2)COPY(sir,poz,nr);
3)LENGTH(sir);
4)CONCAT(c1,c2,…,cn);
 
1)    Functia POS verifica daca sirul 1 se situeaza in sirul 2 si returneaza pozitia de inceput in sirul 2 daca exista sau 0 daca sirul 1 nu se afla in sirul 2.
2)    Functia COPY extrage un subsir al sirului specificat, incepand din pozitia poz cu un numar nr de caractere.
3)    Functia LENGTH returneaza lungimea unui sir de caractere.
4)    Functia CONCAT lipeste mai multe siruri c1,c2,…,cn.
 
!!!Observatii!!!
1)    Daca poz este mai mare decat length(sir) atunci sirul rezultat va fi sirul vid.
2)    Daca nr este mai mare decat length(sir)-poz+1 atunci subsirul obtinut va contine numai length(sir)-poz+1 caractere.
 
|----------|---------------------|
1              poz                           length(sir)
               |---------------------|
                     Length(sir)-poz+1
 
 
 
 
 
Proceduri predefinite in stringuri
 
1)DELETE(sir,poz,nr)
Sterge din sir un sir incepand cu pozitia poz un numar nr de caractere.
!!!Observatie!!!
1)    Daca poz>length(sir) atunci nu se sterge nimic.
2)    Daca nr>length(sir)-poz+1 , atunci se vor sterge length(sir)-poz+1 caractere.
Exemple
S=’casa’;
1)delete(S,2,2)->S=’ca’;
2)delete(S,7,3)->S=’casa’;
3)delete(S,3,7)->S=’ca’.
 
2)INSERT(subsir, sir, poz)
Insereaza subsirul dat in sirul sir incepand din pozitia poz.
!!!Observatii!!!
1)    Daca pozitia este mai mare decat length(sir) , atunci subsirul se insereaza la sfarsitul sirului .
subsir=’rr’; sir=’casa’;
insert(subsir,sir,30)->sir=’casarr’;
insert(subsir,sir,2)->sir=crrasa’.
2)    Daca lungimea sirului + lungimea subsirului depaseste lungimea de definitie a sirului “sir”, atunci lungimea sirului se pastreaza la lungimea de definitie (trunk(int)) character de dupa lungime.
   sir=’casa’; subsir=’rr’; sir:string[4];
   insert(subsir,sir,2)->sir=’crra’.
 3)STR(numar,sir)
 Transforma variabila “numar” intr-un sir de caractere.
   12->’12’.
4)VAL(sir, numar, eroare)
Incearca sa transforme sirul de caractere “sir” intr-un numar real. Daca reuseste atunci parametrul eroare va avea valoarea 0, daca nu reuseste valoarea parametrului “numar”=0, “eroare” va avea pozitia de unde incepe nereusita.
Val(‘12.3’, numar, eroare)-> eroare=0
                             ->numar=12.3
Val(’12,3’,numar,eroare)->eroare=3
                           ->numar=0.
Autentificare
Căutare