MANAGEMENT EDUCAŢIONAL PERFORMANT Limbajul de programare Borland Pacal Management Educational Performant Şiruri de caractere Limbajul de programare Borland Pacal Universitatea din Pitesti 2010 Universitatea din Pitesti 2010
CUPRINS Şirurile de caractere Tipul string Management Educational Performant CUPRINS Şirurile de caractere Tipul string Atribuirea valorilor pentru variabilele de tip string Lungimea şirului de caractere Funcţia length(x) Compararea şirurilor Concatenarea şirurilor Concluzii Aplicaţie Exemple de apeluri Test Rezolvare Bibliografie Universitatea din Pitesti 2010
Şirurile de caractere sunt secvenţe de caractere din Management Educational Performant Şirurile de caractere sunt secvenţe de caractere din codul Ascii precedate şi urmate de caracterul apostrof. Universitatea din Pitesti 2010
MANAGEMENT EDUCAŢIONAL PERFORMANT Management Educational Performant Tipul string Este alcătuit din şiruri de caractere. Se pot folosi două variante ale acestui tip: • string • string[k], unde k este o constantă nr. nat. nenul mai mic sau egal cu 255 Universitatea din Pitesti 2010 Universitatea din Pitesti 2010
MANAGEMENT EDUCAŢIONAL PERFORMANT Management Educational Performant Exemplu Var x:string; Var z:string[20]; Universitatea din Pitesti 2010 Universitatea din Pitesti 2010
Atribuirea valorilor pentru variabilele de tip string MANAGEMENT EDUCAŢIONAL PERFORMANT Management Educational Performant Atribuirea valorilor pentru variabilele de tip string Prin citirea de la tastatură Prin atribuire directă Universitatea din Pitesti 2010 Universitatea din Pitesti 2010
Exemplu readln(x); read(x); x:=‘Popescu’; Management Educational Performant Exemplu readln(x); read(x); x:=‘Popescu’; Universitatea din Pitesti 2010
Lungimea şirului de caractere Management Educational Performant Lungimea şirului de caractere Este dată de numărul de caractere din şir. Nu poate depăşi 255 de caractere. Universitatea din Pitesti 2010
MANAGEMENT EDUCAŢIONAL PERFORMANT Management Educational Performant Funcţia length(x) Determină lungimea şirului de caractere indicat ca argument. Universitatea din Pitesti 2010 Universitatea din Pitesti 2010
Exemplu a:=length(x)+length(y), unde: Management Educational Performant Exemplu a:=length(x)+length(y), unde: - x şi y sunt variabile de tip string; - a este variabilă de tip integer. Universitatea din Pitesti 2010
Management Educational Performant Compararea şirurilor Şirul de caractere x este mai mare decât şirul de caractere y, dacă este îndeplinită una din condiţiile: • y este mai scurt decât x şi y apare integral la începutul lui x; • primele k-1 caractere din x sunt egale cu primele k-1 caractere din y, iar caracterul de pe poziţia k din x are codul ASCII mai mare ca cel de pe aceeaşi poziţie din y. Universitatea din Pitesti 2010
Exemple ‘popescu’ > ‘pop’; ‘ana_are’ < ‘ana_nare’ Management Educational Performant Exemple ‘popescu’ > ‘pop’; ‘ana_are’ < ‘ana_nare’ pentru că ‘a’ < ‘n’ şi până la aceste caractere toate celelalte sunt egale. Universitatea din Pitesti 2010
Concatenarea şirurilor Management Educational Performant Concatenarea şirurilor este o operaţie specifică şirurilor de caractere, prin care la un şir de caractere se pot lipi caracterele altui şir de caractere. Operatorul folosit este “+”. Universitatea din Pitesti 2010
Exemplu A:=‘Popescu’ b:=‘Ion’ a:=a+b; Management Educational Performant Exemplu A:=‘Popescu’ b:=‘Ion’ a:=a+b; În urma executării acestor instrucţiuni a va deveni ‘ PopescuIon’. Universitatea din Pitesti 2010
Concluzii alfabetică elevii dintr-o clasă? Cum putem aşeza în ordine Management Educational Performant Concluzii Cum putem aşeza în ordine alfabetică elevii dintr-o clasă? Universitatea din Pitesti 2010
Management Educational Performant Vom concatena şirurile de caractere formate din numele, respectiv prenumele fiecărui elev, iar şirurile astfel obţinute vor fi comparate. Universitatea din Pitesti 2010
Management Educational Performant Aplicaţie Se dau de la tastatură prenumele a doi elevi (cu maxim 40 de caractere). Să se afişeze numele elevilor în ordine alfabetică, unul sub altul. Universitatea din Pitesti 2010
Soluţie Program sir; Var x,y:string[40]; Begin Writeln(y); End Management Educational Performant Soluţie Program sir; Var x,y:string[40]; Begin Write(‘primul prenume este’); Readln(x); Write(‘al doilea prenume este’); Readln(y); If x>y Then writeln(x); Writeln(y); End Else Begin writeln(x); End; Readln; End. Universitatea din Pitesti 2010
Exemple de apeluri corecte: Management Educational Performant Exemple de apeluri corecte: s:string; S:=‘matematica’; S:=a+b; S:=‘Popescu’+’ ‘+’Ionela’; Writeln(s); Universitatea din Pitesti 2010
Exemple de apeluri incorecte: Management Educational Performant Exemple de apeluri incorecte: s:string[char]; S:=“matematica”; S:=a-b; S:=‘Popescu’+4; Universitatea din Pitesti 2010
Test 1. Daţi exemplu de trei şiruri de caractere. Management Educational Performant Test 1. Daţi exemplu de trei şiruri de caractere. 2. Care este lungimea şirului ‘test’? 3. Care este lungimea şirului ‘Eu învăţ’? 4. Ce se afişează după execuţia secvenţei de program de mai jos? Var x:string; n:integer; … x:=‘ion’; N:=length(x); Write(n); 5. Care dintre şirurile ‘Ana’, ‘Anca’, ‘anda’ următoare este mai mare? Universitatea din Pitesti 2010
Management Educational Performant Test 6. Dar mai mic? 7. De ce tip se declară o variabilă ce va reţine lungimea unui şir? 8. Ce reprezintă constanta 20 din declararea: Var x:string[20]; 9. Este corectă declararea Var x:string[y]? De ce? 10. Ce valoare primeşte a:=‘Ana’+’are’+’mere’? Universitatea din Pitesti 2010
Test 11. Cum puteţi lăsa spaţii între cuvinte? Management Educational Performant Test 11. Cum puteţi lăsa spaţii între cuvinte? 12. Ce se va afişa în urma executării instrucţiunii writeln(‘Ionela’+’ ‘+ ‘este’+’ ‘+’eleva’)? 13. Cum pot fi aşezate trei şiruri în ordine crescătoare? 14. Care este lungimea sirului a:=b+c? 15. Care este lungimea minimă a unui şir de caractere? Universitatea din Pitesti 2010
Test 16. Dar cea maximă? 17. Puneti semnul corespunzător: ‘a’ ‘A’. Management Educational Performant Test 16. Dar cea maximă? 17. Puneti semnul corespunzător: ‘a’ ‘A’. 18. Formaţi un şir de caractere format din toate vocalele litere mici. 19. Cum verificaţi dacă un şir de caractere poate reţine un număr de telefon mobil? 20. Se citesc de la tastatură 2 şiruri de caractere. Să se verifice dacă sunt egale (la fel) fără a se face deosebire între literele mari şi literele mici. Universitatea din Pitesti 2010
Rezolvare ‘a’, ‘abc’, ‘ ‘, etc. 4. 8. 3. ‘anda’. Management Educational Performant Rezolvare ‘a’, ‘abc’, ‘ ‘, etc. 4. 8. 3. ‘anda’. Universitatea din Pitesti 2010
Rezolvare 6. ‘Ana’. 7. Integer. 8. Lungimea maximă a şirului. Management Educational Performant Rezolvare 6. ‘Ana’. 7. Integer. 8. Lungimea maximă a şirului. 9. Nu, pentru că argumentul trebuie să fie o constantă. 10. Anaaremere. Universitatea din Pitesti 2010
Rezolvare 11. a:=‘Ana’+’ ‘+’are’+’ ‘+’mere’. 12. Ionela este eleva. Management Educational Performant Rezolvare 11. a:=‘Ana’+’ ‘+’are’+’ ‘+’mere’. 12. Ionela este eleva. 13. Prin compararea lor. 14. Length(a)=length(b)+length(c); 15. 0. Universitatea din Pitesti 2010
Rezolvare 16. 255. 17. > 18. A:=‘a e i o u’. Management Educational Performant Rezolvare 16. 255. 17. > 18. A:=‘a e i o u’. 19. Lungimea şirului trebuie să fie egală cu 10. Universitatea din Pitesti 2010
Rezolvare while(i<=n1) do begin var s1,s2:string; Management Educational Performant Rezolvare var s1,s2:string; procedure citire; begin write('primul sir'); readln(s1); write('al doilea sir');readln(s2); end; procedure verificare; var n1,n2,i:byte; n1:=length(s1); n2:=length(s2); if n1<>n2 then begin write('nu sunt egale');halt; end; i:=1; while(i<=n1) do begin if upcase(s1[i])=upcase(s2[i]) then i:=i+1 else begin write('sirurile nu sunt egale'); halt; end; end; writeln('siruri egale'); end; begin citire; verificare; end. Universitatea din Pitesti 2010
Bibliografie Informatică pentru gimnaziu, Doru Popescu Anastasiu Management Educational Performant Bibliografie Informatică pentru gimnaziu, Doru Popescu Anastasiu http://referat.clopotel.ro/TIPUL_STRING-10459.html http://www.asciitable.com/ http://tic.ro4.ro/javascript/chap01/ascii.pdf Universitatea din Pitesti 2010