Italo Info


Vetores bidimensionais (Matrizes)

Além da manipulação de vetores unidimensionais, a linguagem C também permite a manipulação de um vetor de vetores, isto é, um vetor bidimensional (Matriz). A declaração de um vetor bidimensional é simples, veja abaixo um programa com matrizes:

#include <stdio.h> int main() { int mat[2][2]; int a, b; mat[0][0] = 8; mat[0][1] = 4; mat[1][0] = 2; mat[1][1] = 3; a = mat[0][0]; b = mat[0][1]; printf( "\n(1,1): %d", a ); printf( "\n(1,2): %d", b ); printf( "\n(2,1): %d", mat[1][0] ); printf( "\n(2,2): %d", mat[1][1] ); return 0; }

No programa acima foi declarada uma variável do tipo matriz de nome mat. Repare na compatibilidade entre os elementos da matriz e as variáveis comuns. Veja abaixo outro exemplo de matriz:

#include <stdio.h> void le_matriz( int mat[2][2] ) { int i, j; for( i = 0; i < 2; i++ ) { for( j = 0; j < 2; j++ ) { printf( "Informe o elemento (%d,%d): ", (i+1), (j+1) ); scanf( "%d", &mat[i][j] ); } } } void imprime_matriz( int mat[2][2] ) { int i, j; for( i = 0; i < 2; i++ ) { for( j = 0; j < 2; j++ ) printf( "%5d", mat[i][j] ); printf( "\n" ); } } void soma_matrizes( int matc[2][2], int mata[2][2], int matb[2][2] ) { int i, j; for( i = 0; i < 2; i++ ) for( j = 0; j < 2; j++ ) matc[i][j] = mata[i][j] + matb[i][j]; } int main() { int mat1[2][2]; int mat2[2][2]; int mat3[2][2]; printf( "Leitura da matriz(1)\n\n" ); le_matriz( mat1 ); printf( "\nLeitura da matriz(2)\n\n" ); le_matriz( mat2 ); soma_matrizes( mat3, mat1, mat2 ); printf( "\nResultado - (Soma)\n\n" ); imprime_matriz( mat3 ); return 0; }

No exemplo acima, são declaradas três matrizes de dimensões 2x2. Onde, são lidas duas matrizes e, então, o programa calcula a soma das matrizes e a imprime na tela. Repare que o tipo matriz na função soma_matrizes. Não precisa ser passado como referência para ser alterado. Sem o uso do & as matrizes são passadas como parâmetro por referência. O que permite que a função altere os valores da matriz.

Exercícios

1) Faça um programa que leia 2 matrizes e calcule a subtração de seus elementos. Para isto, basta alterar o programa anterior que soma matrizes

2) Faça um programa que mostra o resultado da soma de duas matrizes de dimensão 3x3 lidas do teclado. Dica: se baseie no programa que soma matrizes mostrado anteriormente.