Tablouri bidimensionale
1.Program ce calculeaza suma elementelor de pe diagonala principala a unui tablou bidimensional.
Program P1; {P1 - 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}
s, 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}
textbackground(9); {Coloreaza fundalul programului in culoarea cu nr. 9}
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 respective, trece 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 corespunzatoare, trece 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}
s:=0; {Ii atribuim variabilei s, care va calcula suma elemetelor de pe diagonala principala, 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}
for j:=1 to n do {Parcurge toate elementele de pe coloane, se repeta pana cand j=m si efectueaza urmatoarea sarcina}
begin {Inceputul ciclului}
if i=j then{Daca i=j}
s:=s+T[i,j]; {Adaugam la valoarea variabilei s valoarea elementelor situate pe pozitiile respective}
writeln('Suma elementelor de pe diagonala principala este ',s); {Afiseaza pe ecran "Suma elementelor de pe diagonala principala este ", afiseaza valoarea lui s, trece in rand nou}
readkey; {La apasarea unei taste, trece din ecranul negru in ecranul albastru}
end. {Sfarsitul programului}
2.Program ce calculeaza suma elementelor de sub diagonala secundara a unui tablou bidimensional.
Program P2;
uses crt;
var T: array[1..100,1..100] of integer;
s, n, m, i, j: integer;
begin
clrscr;
textcolor(4);
textbackground(1);
write('Introdu nr.(<100) de randuri si coloane: ');
readln(n, m);
for i:=1 to n do
for j:=1 to m do
write('T[',i,j,']= ');
readln(T[i]);
end;
writeln('Ati introdus: ');
for i:=1 to n do
begin
for j:=1 to m do
write(T[i,j]:3);
writeln;
end;
s:=0;
for i:=1 to n do
for j:=1 to n do
begin
if (i+j)>(n+1) then
s:=s+T[i,j];
writeln('Suma elementelor de sub diagonala secundara este ',s);
readkey;
end.
3.Program ce calculeaza suma elementelor de deasupra diagonalei secundare a unui tablou bidimensional.
Program P3;
uses crt;
var T: array[1..100,1..100] of integer;
s, n, m, i, j: integer;
begin
clrscr;
textcolor(6);
textbackground(8);
write('Introdu nr.(<100) de randuri si coloane: ');
readln(n, m);
for i:=1 to n do
for j:=1 to m do
write('T[',i,j,']= ');
readln(T[i]);
end;
writeln('Ati introdus: ');
for i:=1 to n do
begin
for j:=1 to m do
write(T[i,j]:3);
writeln;
end;
s:=0;
for i:=1 to n do
for j:=1 to n do
begin
if (i+j)<(n+1) then
s:=s+T[i,j];
writeln('Suma elementelor de deasupra diagonalei secundare este ',s);
readkey;
end.

