C++ Modulul III

Matrice

Recapitulare

  1. Se citesc numerele n și m. Afișați un dreptunghi de n x m steluțe (n linii a câte m steluțe )

3  6

* * * * * *

* * * * * *

* * * * * *

  1. Se citesc cifrele n și m. Afișați un dreptunghi n x m din numere, astfel:

3  5

11  12  13  14  15

21  22  23  24  25

31  32  33  34  35

3  6

* * * * * *

* * * * * *

* * * * * *

Matrice - șiruri de șiruri

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.

Matrice - utilizare

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

Aplicații - matrice

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]

Aplicații - matrice

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?

Aplicații - matrice

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
 

triunghiuri

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

            * *

         * * * *

      * * * * * *

   * * * * * * * *

* * * * * * * * * *

* * * * * * * * * *

   * * * * * * * *

      * * * * * *

         * * * *

            * *

triunghiuri

Diagonala principală:

Sub diagonala secundară:

Deasupra diagonalei principale:

Diagonala secundară:

Aplicații - triunghiuri

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

Aplicații - triunghiuri

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ă

 

Aplicații - triunghiuri

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ă

 

Matrice

By Academia de Informatică