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.
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.
Length(sir)-poz+1
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.
SET DE PROBLME 1) Sa se afiseze toate prefixele unui cuvant. 2)Sa se afiseze toate sufixele unui cuvant. 3)Sa se elimine toate spatiile dintr-un text. 4)Verificati daca un cuvant este palindrome. 5)Afisati cate vocale contine un text. 6)Se da un text in care cuvintele sunt separate prin spatii .
Sa se afiseze pe cate un rand cuvintele textului. Program problema_1; Var cuv:string; n,i:integer; Begin write(Cuvantul este:); readln(cuv); n:=length(cuv); for i:= 1 to n do writeln(copy(cuv,1,i);
readln; END.
Program problema_2; Var cuv:string; n,i:integer; Begin write(Cuvantul este:); readln(cuv); n:=length(cuv); for i:= n downto 1 do writeln(copy(cuv,i,n); readln; END.
Program problema_3; Var cuv:string i,n:integer; Begin write(Cuvantul este:); readln(cuv); n:=length(cuv); for i:= 1 to n do if cuv[i]= then begin delete(cuv,i,1); n:=n-1; end; for i:= 1 to n do write(cuv[i]);
readln; END.
Var cuv:string; i,n:integer; OK:Boolean; Begin write(Cuvantul este:); readln(cuv); n:=length(cuv); OK:= true; for i:= 1 to n div 2 do if cuv[i]<>cuv[n-i+1] then OK:=false; if OK then writeln(Cuvantul este palindrom) else writeln(Cuvantul nu este palindrom); readln; END> Var text:string; i,n,nr:integer; Begin write(Textul este:); readln(text); n:=length(text); nr:=0; for i:= 1 to n do if (text[i] in [A,E,I,O,U]) or (text[i] in[a,e,i,o,u]) then inc(nr); writeln(sunt,nr,vocale); readln; Program problema_5;
Program problema_4;
END.
Program problema_6; Var t:string; n,i:integer; cuv:string; Begin Write(Dati textul:); Readln(t); N:=length(t); I:=1; While i<= n do Begin While (t[i] in[ ,,,.,?,!,:,;]) and (i<=n) do Inc(i); Cuv:= ; While not(t[i] in[ ,,,.,?,!,:,;]) and (i<=n) do Begin Cuv:=cuv+t[i]; Inc(i); End; Writeln(cuv); End; Readln; End.