ALP – Algoritmos e Programação Prof. Adriano Fiorese Variáveis Indexadas Multidimensionais . Conceito . Exemplos .Exercícios 1 Prof. Adriano Fiorese Variáveis Indexadas Bi-dimensionais Um vetor é uma variável indexada unidimensional. Ou seja, apenas seu comprimento é declarado e usado para armazenar valores. Esse comprimento é usado através dos índices. Uma matriz é uma variável bi-dimensional pois, além do comprimento, pode-se usar a largura para armazenar dados. Assim, para acessar uma informação em uma matriz, precisaremos de valores para dois índices. Um para a dimensão comprimento (também conhecida por coluna) e outro para a dimensão largura (também conhecida por linha). 2 Variáveis Indexadas Bi-dimensionais Prof. Adriano Fiorese Como declarar uma variável matriz? <tipo> <nome variável>[nº linhas][nº colunas]; Ex: int B[4][4]; Exemplo de matriz: Linhas 0 1 2 3 0 B[0][0] B[1][0] B[2][0] B[3][0] 1 B[0][1] B[1][1] B[2][1] B[3][1] 2 B[0][2] B[1][2] B[2][2] B[3][2] 3 B[0][3] B[1][3] B[2][3] B[3][3] Colunas Memória Assim, por exemplo, para atribuir o valor 15, na 2ª linha e 3ª coluna usamos: B[1][2] = 15; 3 Variáveis Indexadas Bi-dimensionais - Matrizes Prof. Adriano Fiorese Da mesma forma que vetores, matrizes são estruturas de dados homogêneas pois armazenam apenas valores de um tipo de dados específico em todas as suas posições. Nome da Variável V Linhas 0 1 2 3 0 1 2 20 30 50 -7 80 15 -20 10 100 -5 20 45 3 Colunas -120 35 40 15 Assim, temos a variável V, do tipo int, com 16 posições de memória, indexada por 0, 1, 2 e 3 nas linhas e nas colunas. 4 Variáveis Indexadas Bi-dimensionais - Matrizes Prof. Adriano Fiorese Como manipular matrizes? Ex: int Matriz[3][5]; i = 2; j = 1; Matriz[i][j+i] = 10; Matriz[j][1+2] = 40; Matriz[i-1][j+1] = Matriz[i][j-1] * 2; Matriz[2][2] = 5; Matriz[i-2][j-1] = Matriz[i-2][j] +1; 5 Variáveis Indexadas Bi-dimensionais - Matrizes Fazer um programa em C, para ler uma matriz A de Prof. Adriano Fiorese números reais de ordem 2x2 (A(2x2)). Para cada elemento da matriz multiplique por 2 e guarde o resultado em uma matriz de mesma ordem chamada B. 6 Variáveis Indexadas Bi-dimensionais - Matrizes Prof. Adriano Fiorese Exemplo: 4,5 6,4 7,5 5,6 9,0 * 2 = 12,8 15,0 11,2 7 #include <stdlib.h>/*função printf */ int main(){ float A[2][2], B[2][2]; int i,j; Prof. Adriano Fiorese for(i=0; i < 2; i++){ for(j=0; j < 2; j++){ printf("Entre com o numero %d:%d ",i+1,j+1); scanf(“%f”,&A[i][j]); } } for(i=0; i < 2; i++){ for(j=0; j < 2; j++){ B[i][j] = A[i][j] * 2; printf(“B[%d][%d]= %.2f\n”,i,j,B[i][j]); } } } 8 Variáveis Indexadas Bi-dimensionais - Matrizes Faça um programa em C, para ler uma matriz A e outra Prof. Adriano Fiorese matriz B de valores inteiros. Ele deve somar as 2 matrizes e colocar o resultado em uma matriz C. A matriz C deverá ser impressa na tela. Considere a ordem das matrizes lidas como 4x3. 9 #include <stdlib.h>/*função printf */ int main(){ float A[4][3], B[4][3], C[4][3]; int i,j; Prof. Adriano Fiorese for(i=0; i < 4; i++){ for(j=0; j < 3; j++){ printf("Entre com o numero A[%d][%d] ",i+1,j+1); scanf(“%f”,&A[i][j]); printf("Entre com o numero B[%d][%d] ",i+1,j+1); scanf(“%f”,&B[i][j]); C[i][j] = A[i][j] + B[i][j]; } } } for(i=0; i < 4; i++){ for(j=0; j < 3; j++){ printf(“C[%d][%d]= %.2f\n”,i,j,C[i][j]); } } 10