Ce este o matrice? In principiu o matrice e o multime de numere aranjate pe linii si coloane, dar fara linii intre ele care sa le desparte. Seamana foarte mult cu un tabel.
Ex:
1 2 3 4 5
6 7 8 9 10
11 12 13 1415
16 17 18 1920
In informatica o matrice e o multime de elemente de acelasi tip (integer sau real) aranjate pe linii si coloane.
Ca si la Vectori o matrice se declara astfel:
Var a: array[1..10,1..15] of ‘tip’
unde cifra 10 reprezinta numarul maxim de linii iar cifra 15 numarul maxim de coloane in matricea a!
unde cifra 10 reprezinta numarul maxim de linii iar cifra 15 numarul maxim de coloane in matricea a!
Cum arataun element al matricei intro problema TURBO PASCAL?
Ceva degenul asta: ‘a[i,j]’ care este elemental matricei ‘a’ aflata pe linia ‘i’ si coloana ’j’.
De exemplu alegem cifra 8 din matricea de mai jos. In limbajul pascal cifra 8 va fi afisata astfel:
a[2,3]=8 unde 2 va fi a doua linie si 3 coloana a treia.
1 2 3 4 5
6 7 8 9 10
11 12 13 1415
16 17 18 1920
Alt exempluin care alegem cifra 10 care va fi: a[2,5]=10
1 2 3 4 5
6 7 8 9 10
11 12 13 1415
16 17 18 1920
Citirea unei matrice
Citirea unei matrice se realizeaza cu ajutorul a doua structuri FOR (un FOR pentru variabila ‘i’-linia si alt FOR pentru variabila ‘j’-coloana.
EXEMPLU:
For i:=1 ton do
For j:=1 tom do
readln(a[i,j]);
Exemplu de problema: Calculati suma elementelor impare dintr-o matrice.
Program matrice_1;
Var a:array[1..10, 1..10] of integer;
Var m,n,I,j,S: integer;
Begin
Write(‘n’); readln(n);
Write(‘m’) ; readln(m);
{Variabilele ‘n’ si ‘m’ reprezinta numarul maxim (pe care il poate lua respectiv variabilele ‘i’ si ‘j’ in structurile FOR) de liniisi coloane}
For i:=1 to n do
For j:=1 to m do
Begin
Write(‘a[‘,i,’,’,j,’]=’);
{aici e utilizata o forma frumoasa de afisare a mesajului care la executareaprogramului va arata astfel: a[4,2]=17 si nu a[i,j]=17. ATENTIE LA PUNCTUATIE!!!
1 2 3 4 5
6 7 8 9 10
11 12 13 1415
16 17 18 1920
}
Readln(a[i,j];
End;
S:=0;
{Mai jos observam repetarea celor doua structuri FOR, si mai observam ca ele sunt la fel! Nu se modifica nimic}
For i:=1 to n do
For j:=1 to m do
If a[i,j] mod 2=0 then S:=S+a[i,j];
Writeln(‘S=’,S);
End.
Alt exemplu de problema: Calculati Produsul elementelor a unei matrice mai mare ca 10 aflate pe coloane pare si linii impare.
Program matrice_2;
Vara:array[1..10, 1..10] of integer;
N,m,I,j,P:integer;
Begin
Write(‘n=’); readln(n);
Write(‘m’); readln(m);
For i:=1 to n do
For j:=1 to m do
Begin
Write(‘a[‘,i,’,’,j,’]=’);
Readln(a[i,j]);
End;
P:=1;
For i:=1 to n do
For j:=1 to m do
{O instructiune mai complexa}
If(a[I,j]>10) and (I mod 2<>0) and (j mod 2=0)
Then P:=P*a[I,j];
Write(‘P=’,P);
End.
Intrebari? Nelamuriri? Nu ezitati sa postati un comentariu mai jos!
Niciun comentariu:
Trimiteți un comentariu