3 6
* * * * * *
* * * * * *
* * * * * *
3 5
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
3 6
* * * * * *
* * * * * *
* * * * * *
Dacă despre șiruri spunem că sunt tablouri de date liniare, matricile sunt tablouri de date bidimensionale.
O matrice poate fi considerată un șir de șiruri sau un tabel cu n linii și m coloane, unde pe fiecare linie / coloană este o variabilă.
a[0][2] | ||||||
---|---|---|---|---|---|---|
a[1][0] | ||||||
a[i][j] | ||||||
0 | 1 | 2 | 3 | j | m-1 | m |
---|
a[0] |
---|
a[1] |
a[i] |
a[n] |
a[i][j] - elementul de pe linia i, coloana j.
La fel ca variabilele sau șirurile, înainte de a fi folosite matricele trebuie declarate. (Pot fi declarate local sau global)
tip1 nume_matrice1 [ nr_max_linii ][ nr_max_coloane ];
/// ex:
int a[100][100]; // matricea a de 100 linii și 100 coloane
Accesarea valorilor din matrice se face selectând linia și coloana între paranteze pătrate [ linia ] [coloana].
cout << a[3][5]; // afișez elementul de pe linia 3 coloana 5
// parcurgerea unei matrici n x m se face prin 2 foruri:
for(int i = 1; i <= n; i++) //pentru fiecare linie
for(int j = 1; j <= m; j++) //iau fiecare coloană
instrucțiune ( a[i][j] ); // fac ceva cu elementul
A1. Se citesc numerele n și m. Creați o matrice de n linii și m coloane, unde fiecare element este suma între indicele lui de linie și cel de coloană.
a) Afișați matricea.
b) Afișați suma elementelor de pe coloana din mijloc [m / 2 +1]
c) Afișați produsul elementelor de pe linia din mijloc [n / 2 + 1]
A2. Din fișierul “matrice2.in” se citesc numerele n și m, și o matrice de n linii și m coloane. afișați pentru fiecare linie suma elementelor de pe acea linie.
A3. Din fișierul “matrice3.in” se citesc numerele n și m, și o matrice de n linii și m coloane. afișați pentru fiecare coloană, câte elemente pare sunt pe acea coloană.
A4. Din fișierul “matrice4.in” se citesc numerele n și m, și o matrice de n linii și m coloane.
a) Calculați suma elementelor pe fiecare coloană și faceți media dintre ele.
b) Câte coloane au suma elementelor mai mare decât media?
A5. Din fișierul “matrice5.in” se citesc numerele n și m, și o matrice de n linii și m coloane. Câte coloane au suma elementelor prime?
A6. Din fișierul “matrice6.in” se citesc numerele n și m, și o matrice de n linii și m coloane. Câte linii conțin numere prime?
A7. Din fișierul “matrice7.in” se citesc numerele n și m, și o matrice de n linii și m coloane.
a) Calculați și afișați cmmdc-ul fiecărei coloane.
b) Calculați și afișați cmmmc-ul fiecărei linii.
A8. SimplMat: Elsa a găsit în podul bunicii o matrice de n linii și m coloane. Această matrice, fiind foarte veche, avea toate elemntele foarte mari. Elsa vrea să simplifice matricea până când aceasta va avea cel puțin o linie sau o coloană cu toate elementele mai mici sau egale cu 16.
Prin 'simplificarea unei matrice' Elsa înțelege înlocuirea fiecărui element din matrice cu dublul sumei cifrelor lui.
Din fișierul “simplMat.in” se citesc numerele n și m, și matrica de n linii și m coloane.
Afișați numărul de simplificări necesare.
Afișați matricea finală.
**mesaj dacă nu se poate
simpl.in | cout |
---|---|
3 4 985 432 167 999 531 412 9897 90 9328 716 123 56 |
3 14 18 4 18 18 2 12 18 14 4 12 16 |
1. 44 18 28 54
18 14 66 18
44 28 12 22
2. 16 18 20 18
18 10 24 18
16 20 6 8
3. 14 18 4 18
18 2 12 18
14 4 12 16
D1. Se citește un număr natural n. Afișați un pătrat de n linii și n coloane format din steluțe.
D2. Se citește un număr natural n. Afișați toate (4) triunghiurile dreptunghice isoscele de latură n care se pot forma din steluțe.
5
*
* *
* * *
* * * *
* * * * *
* * * * *
* * * *
* * *
* *
*
* * * * *
* * * *
* * *
* *
*
*
* *
* * *
* * * *
* * * * *
A3.* Combinați triunghiurile pentru a afișa un romb
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * *
* * * * * *
* * * *
* *
Diagonala principală:
Sub diagonala secundară:
Deasupra diagonalei principale:
Diagonala secundară:
A1. Din fișierul mat1.in se citește un număr natural n și o matrice pătratică de n x n elemente.
a) afișați elementele de deasupra diagonalei principale mai mari decât 10.
b) Afișați suma elementelor pare de deasupra diagonalei secundare.
c) Afișați suma elementelor impare de sub diagonala secundară
d) Câte numere prime se găsesc sub diagonala principală
mat1.in | console out | explicații |
---|---|---|
5 5 27 8 9 2 13 2 7 18 0 5 21 4 3 7 23 8 4 12 21 6 8 14 3 2 |
a) 27 18 21 b) 10 c) 34 d) 4 |
a) b) 8+2 = 10 c) 3+7+21+3 = 34 d) 13, 5, 23, 3 -> 4 numere prime |
A2. Din fișierul mat2.in se citește un număr natural n și o matrice pătratică de n x n elemente.
a) afișați elementul cu suma cifrelor maximă de deasupra diagonalei principale.
b) afișați elementul cu suma cifrelor maximă de sub diagonala principală
c) Afișați elementul cu suma cifrelor minimă de deasuora diagonalei secundare
d)Afișați elementul cu suma cifrelor minimă de sub diagonala secundară
A3. Din fișierul mat2.in se citește un număr natural n și o matrice pătratică de n x n elemente.
Afișați pe rând elementele triunghiurilor din Nord, Sud, Vest și Est.
Triunghi Nord = deasupra ambelor diagonale.
Triunghi Sud = sub ambele diagonale
Triunghi vest = sub diag. principală, peste diagonala secundară
Triunghi Est = peste diagonala principală, sub cea secundară