Algoritmi legati de lucrul cu tablouri bidimensionale (matrice)

 

Tablourile bidimensionale mai sunt denumite şi matrice*. La declararea unui tablou bidimensional, se specifică numărul de elemente al fiecărei dimensiuni (număr de „linii” şi număr de „coloane”), incluzând fiecare dintre aceste numere între paranteze drepte. Indexul inferior al fiecarei dimensiuni este 0 (ca şi la vectori, pentru claritate, putem să utilizăm elementele de la indexul 1, atât pentru linii cât şi pentru coloane).

* Există numeroase discuţii asupra formei de plural de la substantivul „matrice” („matrice” sau „matrici”). Toate dicţionarele importante afirmă că pluralul corect este „matrice” (o matrice – două matrice). În continuare, vom folosi pluralul din DEX.

Sintaxa pentru declararea unei matrice este:

tipul_datelor nume_matrice[nr_linii][nr_coloane];

Exemple:

int a[5][4]; se declară o matrice numită „a”, având linii (indexate de la 0 la 4) şi 4 coloane (indexate de la 0 la 3) ale cărei elemente sunt toate de tip întreg

float mat[3][6]; se declară o matrice numită „mat”, având 3 linii (indexate de la 0 la 2) şi 6 coloane (indexate de la 0 la 5) ale cărei elemente sunt toate de tip fracţionar

Rămân valabile cele menţionate la capitolul referitor la tablorile unidimensionale.

Citirea, prelucrarea şi afişarea elementelor unei matrice se fac, de regulă, într-un dublu for.

 

Citirea de la tastatură, prelucrarea şi afişarea matricelor

matriceCitTast1

matriceCitTast2

rezMatriceCitTast1

rezMatriceCitTast2

 

Up Home Structura Site Algoritmi elementari

 

Citirea din fişier

 

matriceCitFis

 

matriceCitFis.in

5 9
-12 431 286 -55 631 148 882 515 -88
-87 -22 390 999 -20 503 651 421 422
631 148 392 618 230 804 216 -23 111
599 -73 208 335 -65 720 719 607 -63
-30 481 188 279 338 -20 449 390 631

rezMatriceCitFis

 

Up Home Structura Site Algoritmi elementari

 

Construcţia matricei de control

 

matriceDeControl

rezMatriceDeControl

O varianta online poate fi exersata la matriceDeControl sau la matriceDeControl

 

Up Home Structura Site Algoritmi elementari

 

 

 

EXEMPLE DE ALGORITMI

 

A. Drumuri în matrice

 

A1. Afişarea/prelucrarea unei linii sau a unei coloane

 

matriceLiniiColoane

rezMatriceLiniiColoane

O varianta online poate fi exersata la matriceLiniiColoane sau la matriceLiniiColoane

 

Up Home Structura Site Algoritmi elementari

 

A2. Afişarea/prelucrarea unei diagonale

 

matriceDiagonale

rezMatriceDiagonale

O varianta online poate fi exersata la matriceDiagonale sau la matriceDiagonale

Up Home Structura Site Algoritmi elementari

 

A3. Afişarea/prelucrarea conturului unei matrice

 

matriceContur

rezMatriceContur

O varianta online poate fi exersata la matriceContur sau la matriceContur

Up Home Structura Site Algoritmi elementari

 

B. Zone în matrice

 

B1. Afişarea/prelucrarea unei zone dreptunghiulare

 

matriceZonaDreptunghi

rezMatriceZonaDreptunghi

O varianta online poate fi exersata la matriceZonaDreptunghi sau la matriceZonaDreptunghi

 

Up Home Structura Site Algoritmi elementari

 

B2. Zone determinate de o  diagonală

matriceZoneODiagonala1

matriceZoneODiagonala2

rezMatriceZoneODiagonala1

rezMatriceZoneODiagonala2

rezMatriceZoneODiagonala3

O varianta online poate fi exersata la matriciZoneODiagonala sau la matriceZoneODiagonala

 

Up Home Structura Site Algoritmi elementari

 

 

B3. Zone determinate de două diagonale

 

matriceZoneDouaDiagonale1

matriceZoneDouaDiagonale2

rezMatriceZoneDouaDiagonale1

rezMatriceZoneDouaDiagonale2

O varianta online poate fi exersata la matriceZoneDouaDiagonale sau la matriceZoneDouaDiagonale

 

Up Home Structura Site Algoritmi elementari

 

C. Suma a două matrice

 

matriceSuma

4 7


37 12 42 21 11 12 43
18 21 43 33 37 25 19
24 24 32 41 17 15 38
45 49 23 26 13 36 34


25 33 41 21 26 21 12
32 47 48 11 10 24 48
36 46 42 15 12 22 48
23 41 27 27 23 31 34

 

rezMatriceSuma

O varianta online poate fi exersata la matriceSuma sau la matriceSuma

 

Up Home Structura Site Algoritmi elementari

 

D. Produsul a două matrice

a[n][q], b[q][m], p[n][m]

formula

matriceProdus1

matriceProdus2.png

3 2 4

1 2
3 4
5 6

7 8 9 10
11 12 13 14

rezMatriceProdus

O varianta online poate fi exersata la matriceProdus sau la matriceProdus

 

Up Home Structura Site Algoritmi elementari

 

E. Transpusa unei matrice

 

rezMatriceTranspusa.png

Ovarianta online poate fi exersata la matriceTranspusa sau la matriceTranspusa

Up Home Structura Site Algoritmi elementari

 

F. Vectori ataşaţi unei matrice

matriceVectoriAtasati1

matriceVectoriAtasati3.png

 

4 8
1 1 2 8 3 1 1 2
3 5 2 4 1 2 1 4
4 5 4 6 4 3 4 5
3 4 1 0 1 0 5 0

rezMatriceVectoriAtasati

O varianta online poate fi exersata la matriceVectoriAtasati.png sau la matriceVectori atasati

 

Up Home Structura Site Algoritmi elementari

G. Interschimbări de linii şi coloane

 

G.1. Interschimbari de linii

matriceInterschimbariLinii1

matriceInterschimbariLinii2

 

rezMatriceInterschimbariLinii

O varianta online poate fi exersata la matriceInterschimbariLinii sau la matriceInterschimbariLinii

 

G.2. Interschimbari de coloane

matriceInterschimbariColoane1

matriceInterschimbariColoane2

rezMatriceInterschimbariColoane

O varianta online poate fi exersata la matriceInterschimbariColoane sau la matriceInterschimbariColoane

Up Home Structura Site Algoritmi elementari

 

H. Punctele şa ale unei matrice

matricePuncteSa1

matricePuncteSa2

4 8
1 1 2 8 3 1 1 2
3 5 2 4 1 2 1 4
4 5 4 6 4 3 4 5
3 4 1 0 1 0 5 0

rezMatricePuncteSa

O varianta online poate fi exersata la matricePuncteSa sau la matricePuncteSa

 

Up Home Structura Site Algoritmi elementari

 

I. Alte aplicaţii

 

Text

 

Up Home Structura Site Algoritmi elementari