...cum suntem obisnuiti . Astfel , ti1s retine codul caracterului I , ti2s retine codul caracterului e s.a.m.d. Programul care urmeaza afiseaza acelasi cuvant , pe litere . program st2var t string i integerbegint iepuras for i 1to n do rite tiisend . Mai mult , putem modifica continutul unui singur octet , asa cum rezulta din programul urmator program st3var t string begint iepuras ti6s iritetend .In loc de a t i6s 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 st4var t z stringbegint iepuras z tritezend .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 i4s 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 i4s begin t mama rite tend . 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 S1S2 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 S1S2 MIRABELA Observatie ! Concatenarea sirurilor nu este comutativa , adica S1S2 nu este tot una cu S2S1 .Exemplu S1 MIRA S2 BELA S1S2 MIRABELA corect S2S1 BELAMIRA incorect Operatorii , , , .Comparatia se realizeaza din punct de vedere lexicografic ordinea alfabetica .Exemplu S1 MINI S2 MARTIE MM MINI MARTIEIAS1 IUNIE S2 MARTIE IM atunci IUNIE MARTIE FUNCTIILE SI PROCEDURILE UTILIZATE DE TIPUL STRING Functia CopySintaxa functiei Copy Copy sir 1 , pozitie , numar Copiaza din sirul dat incepand cu pozitia data de variabila pozitie un sir format dintr-un numar de caractere dat de variabila numarului .Exemplu 1 S MIRABELA S1 copy S , 5 , 4 riteln S1 afisaza BELA Exemplu 2 S CALCULATOR a S1 COPY S , 1 ,4riteln S1 afiseaza CALCFunctia PosSintexa functiei PosPossir1 , sir2 Testeaza daca sirul nu este sub sir al sirului 2 returnand pozitia de inceput a variabilei sir1 in cadrul sirului2 .Observatie Daca sirul 1 nu este sub sir al sirului 2 o sa returneze valoarea 0.zeroExemplu S MIRABELA aS1 BELAaS2 BIANCA aP1 POS S1 , S P2 POS S2 , S riteln p1 , p2 P1 5P2 0Functia Length Sintaxa functiei Length Length S S variabila de tip string .Returneaza dimensiunea unui sir de caractere .I Exemplu pe calculator scrii intreg Exemplu S Exemplu 1 S MIRABELA aN length S riteln N N 8Exemplu 2 S LILIAC aN length S riteln N N 6Observatie Folosind functia length putem afisa un sir de caractere pe litere .Exemplu S MIRABELA aFor i 1 to length S doriteln S i i s afisaza S i 1 s M , S i 2 s I , S i 3 s R s s S i 8 s A Procedura delete .Sintexa proceduri Delete Delete sir , poz , nr Sterge din variabila sir incepand cu pozitia data de variabila pozitie un sir format dintr-un numar de caractere dat de variabile numere .Observatie Sirul rezultat in urma stergeri va fi memorat in variabila sir .Exemplu Sa PROGRAMARE aDelete S , 8 , 2 riteln S afiseaza program Procedura Insert .Sintaxa procedurii Insert Insert subsir , sir , poz Adauga in variabile sir un subsir dat de variabila subsir incepand cu pozitia data de variabila poz .Exemplu S a PROGRAME aInsert a AR a , s , 8 riteln s afiseaza programe .Procedura Str folosita pentru a transforma un numar in sir de caractere.Sintaxa procedurii Str str numar , sir Transforma numarul dat de variabila numerelor intr-un sir de caractere retinut in variabila sir .Exemplu n 125 n de tip intreg str n,s riteln s afiseaza s 125 Procedura Val folosita pentru a transforma un sir de caractere in numar. Sintaxa procedurii Val val sir , numar , eroare Transforma sirul dat de variabila sir in numar retinut in variabila numar .Observatie Daca transformarea reuseste , variabila eroare ia valoarea 0 zero , iar daca transformarea nu reuseste variabila eroare ia valoarea pozitiei caracterului din cauza careia nu a reusit transformarea , variabila eroare este de tip intreg .Exemplu s1 - 125 . 36 s2 - 125 . A36 val s1 , n1 , e1 val s2 , n2 , e2 riteln e1 , e2 , n1 , n2 afiseaza e1 0 e2 6 n1 - 125 . 36 n2 nu afiseaza nimic Observatie Pentru a transforma o litera mica in litera mare se poate folosi functia UPCASE siis UPCASE siis Siis chr ord siis - 32Pentru a transforma o litera mare in litera mica se foloseste Siis chr ord siis 32 . PROBLEME 1 . Se da un numar format din 7 cifre . Sa se elimine cifra din mijloc.program eliminare var n longint s string e integer beginriteln Dati pe n readln n str n , s delete s , n , e val Nr rezultat este , n s readln end .2 . Se da un cuvant scris in litere mici . Sa se transforme in litere mari .program litere var i integer s string begin riteln S readlns for i 1 to length s do begin siis upcase Siis riteln s iis riteln siis end readln end.3 . Se da un nr de tip intreg . Sa se memoreze cifrele lui intr-un vector folosind siruri de caractere .program vector var i , n integer s string e integer v array i1..10s of integer beginriteln n readln n str n,s for i 1 to n length s dobeginval siis , v iis , e riteln viis sendreadln end .4 . Se da un cuvant sa se elimine caracterele care apar de mai multe ori . Sa se afiseze sirul de caractere format din litere distincte .programul litsdistinctii var c string i , j integer beginriteln dati pe c readln c for i 1 to length c -1 dofor j i1 to length c doif Ciiscijs thendelete c , j , i riteln c readln end .5 . Sa se afiseze unul sub altul toate sufixele unui cuvant citit de la tastatura .program sufixe var s string i integer beginriteln Dati pe s readln s for i 1 to length s do...
Download