top of page

Tablouri bidimensionale

 

Tablourile Bidimensionale se folosesc pentru a pastra mai multe valori in memorie , uneori grupate pe categorii. Acestea sunt determinate de mai multe variabile decat tablourile unidimensionale.

  Sintaxa
  • Declararea: se precizeaza tipul elementelor din matrice, numele matrici, nr maxim de linii si nr maxim de coloane

  • Forma generala:

  tip nume M [lmax][cmax]
  Referirea unui element se face precizand, numele matrici, linia pe care se afla elementul, coloana pe care se afla elementul , intre paranteze patrate
 
nume M[linie][coloane]
Observatie: Fie matricea a cu 3 linii si 4 coloane
l=3; c=4;
A11  A12  A13  A14
A21  A22  A23  A24
A31  A32  A33  A34

Reprezentarea in memorie – elementele matrici ocupa un spatiu compact de dimensiune egal cu nr de lini inmultit cu nr de coloane.O line din matrice este defapt un sir.

  • Matrici patratice

  Spunem despre o matrice ca este patratica daca nr de linii e egal cu cel de coloane ( vom preciza numai nr de linii)

Matricile patratice admit diagonala:
-diagonala principala: uneste coltul din stanga sus cu cel din dreapta jos si diagonala secundara si uneste coltul din dreapta sus cu cel din stanga jos

 
 
 
 

Matrice patratica

m

Exemplu Program:

Program ce calculeaza suma elementelor de pe perimetrul unui tablou bidimensional.

 

Program Di; {Di - numele programului}

uses crt; {Directiva ce permite utilizarea bibliotecii CRT, adica pot fi executate astfel de functii, precum: curatarea ecranului dupa executare, adaugarea culorilor, sunetelor in program etc.}

var T: array[1..100,1..100] of integer; {Declaram variabila T de tip array , elementele de tip integer- matrice cu nu mai mult de 100 de randuri si coloane}

s1, s2, s3, n, m, i, j: integer; {Declaram variabilele s1, s2, s3, n, m, i, j de tip integer - numere intregi}

begin {Inceputul programului}

clrscr; {Comanda ce va curata automat ecranul dupa executie}

textcolor(3); {Coloreaza textul programului in culoarea cu nr. 3 - cyan}

textbackground(0); {Coloreaza fundalul programului in culoarea cu nr. 0 - black}

write('Introdu nr.(<100) de randuri si coloane: '); {Afiseaza pe ecran  "Introdu nr.(<100) de randuri si coloane: "}

readln(n, m); {Citeste numerele introduse de la tastatura, atribuie variabilelor  valorile respectivetrece in rand nou}

for i:=1 to n do {Parcurge toate elementele  de pe randuri, se repeta pana cand i=n si efectueaza urmatoarele sarcini}

for j:=1 to m do {Parcurge toate elementele  de pe coloane, se repeta pana cand j=m si efectueaza urmatoarele sarcini}

begin {Inceputul ciclului} 

write('T[',i,j,']= '); {Afiseaza pe ecran  "T[", afiseaza valorile lui i si j, afiseaza " ]="}

readln(T[i]); {Citeste valoarea introdusa de la tastatura si o atribuie elementului de pe pozitia corespunzatoaretrece in rand nou}

end; {Sfarsitul ciclului; intoarcere la sintaxa for}

writeln('Ati introdus: '); {Afiseaza pe ecran  "Ati introdus "trece in rand nou}

for i:=1 to n do {Parcurge toate elementele de pe randuri, se repeta pana cand i=n si efectueaza urmatoarea sarcina}

begin {Inceputul ciclului} 

for j:=1 to m do {Parcurge toate elementele  de pe coloane, se repeta pana cand j=m si efectueaza urmatoarea sarcina}

write(T[i,j]:3); {Afiseaza pe ecran  valoarea fiecarui element, cu 3 spatii intre ele}

writeln; {Trece in rand nou}

end; {Sfarsitul ciclului; intoarcere la sintaxa for}

s1:=0; {Ii atribuim variabilei s1, care va calcula suma elemetelor de pe coloane, valoarea initiala 0}

s2:=0; {Ii atribuim variabilei s2, care va calcula suma elemetelor de pe randuri , valoarea initiala 0}

for i:=1 to n do {Parcurge toate elementele de pe randuri, se repeta pana cand i=n si efectueaza urmatoarea sarcina}

s1:=s1+T[i,1]+T[i,m]; {Adaugam la valoarea variabilei s1 valoarea elementelor situate in prima coloana - j=1 - si valoarea elementelor situate pe ultima coloana - j=m }

for j:=2 to m-1 do {Parcurge toate elementele  de pe coloane, incepand cu j=2, se repeta pana cand j=m-1 - pentru ca deja am luat in calcul elementele de pe prima si ultima coloana - si efectueaza urmatoarea sarcina}

s2:=s2+T[1,j]+T[n,j]; {Adaugam la valoarea variabilei s2 valoarea elementelor situate in primul rand - i=1 - si valoarea elementelor situate pe ultimul rand - i=n }

s3:=s1+s2; {Ii atribuim variabilei s2, care va calcula suma elemetelor de pe perimetru, suma valorilor variabilelor s1 si s2}

writeln('Suma elementelor de pe perimetru este ',s3); {Afiseaza pe ecran  "Suma elementelor de pe perimetru este ", afiseaza valoarea lui s3, trece in rand nou}

writeln('Autor: Mirela Burduja'); {Se afiseaza pe ecran fraza: " Autor: Mirela Burduja", trece in rand nou}

readkey; {La apasarea unei taste, trece din ecranul negru in ecranul albastru}

end. {Sfarsitul programului}

 

 

Screenshot-uri:

© Creat in 2015 de Mirela. Toate drepturile rezervate!!

bottom of page