Les matrius en C

Considerarem matrius els arrays de C de dues dimensions.
Si els haguéssim de dibuixar, ho fariem utilitzant una quadrícula d'un determinat nombre de files i un determinat nombre de columnes.

Com creus que s'hauria de dibuixar la matriu int dades[2][5]?

Coneixem com es pot fer un recorregut d'un vector. Però què hi ha del d'una matriu?

Com emplenaries una matriu amb les dades següents? Com la imprimiries?

1
2
3
4
5
6
7
8
9
10
11
12

Sabem que els vectors s'enmagatzemen en posicions consecutives de memòria, de tal manera que quan escrivim v[3], per trobar la dada, s'agafa el valor de v (adreça del primer element del vector), se li suma 3 (aritmètica d'apuntadors) i es mira quin element hi ha en aquella posició de memòria.

Com s'enmagatzemen els elements d'una matriu? Quan cal accedir a un element com ara mat[20][15] quin mecanisme se seguirà?
Si tenim la matriu char noms[100][30], cerca sinònims per noms[23], noms[23][1] i noms.

Anem a veure si està tot clar amb uns quants exercicis, on no només cal definir les matrius sinó també provar-les en programes.

Emplena una matriu d'enters de 10 files i 5 columnes amb nombres aleatoris entre 1 i 100. Imprimeix-la.
Declara una matriu de 10 files que a cada fila pugui contenir un string de fins a 20 caràcters. Demana per teclat 10 noms i enmagatzema'ls a la matriu. Imprimeix els noms.
Modifica l'exercici anterior intercanviant el primer nom per l'últim abans d'imprimir.

El pas d'una matriu a una funció és delicat. Informa't de com s'ha de fer.

Fes una funció que rebi com a paràmetre una matriu d'enters i substitueixi cada un d'ells pel seu quadrat.


Tornar