Programação de Computadores – 2o Sem- 2013 – Prof. André Amarante Luiz – LAB7 Esse material foi preparado pelos professores Aníbal Tavares de Azevedo e Cassilda Maria Ribeiro para o curso de Programação de Computadores I – FEG/UNESP Se não puder se destacar pelo talento, vença pelo esforço. Dave Weinbaum MATRIZES A declaração de vetores com uma dimensão, nada mais é que um caso particular da declaração de vetores com qualquer número de dimensões. Com a seguinte sintaxe: tipo vetor[dim1] [dim2] [...] [dimn] Então, uma matriz pode ser vista como um vetor de 2 dimesões e pode ser declarada da seguinte forma: tipo vetor[dim1] [dim2] A inicialização de uma matriz pode ser feita das seguintes formas: int M[2][3] = {{1, 2, 3}, {4, 5, 6}}; int M[2][3] = {1, 2, 3, 4, 5, 6}; Neste caso as declarações são equivalentes, mas a primeira declaração diz para colocar o vetor {1, 2, 3} na primeira linha da matriz M e o vetor {4, 5, 6} na segunda linha da matriz M. A segunda declaração simplesmente usa um único vetor que vai sendo percorrido e preenchendo cada linha da matriz M. Quando uma linha é totalmente preenchida e ainda restam elementos no vetor de inicialização, passa-se para a próxima linha da matriz. PT1: Construa um programa que use a inicialização {1, 2, 3, 4, 5, 6} e mostre os elementos da matriz. #include <stdio.h> main() { int i, j; int M[2][3] = {1, 2, 3, 4, 5, 6}; for ( i = 0 ; i < 2 ; i++ ) { for (j = 0; j < 3; j++ ) printf("%d ",M[i][j]); printf("\n"); } } Com o PT1 é possível saber como manipular os elementos de uma matriz. Também é possível ver que o elemento M[1][2] ocupa a 2ª. linha e a 3ª. coluna da matriz M de dimensão 2x3 e vale 6: [0] [1] [0] [1] [2] 1 2 3 4 5 6 PT2: Construir um código que calcule a multiplicação de uma matriz A pelos elementos de um vetor x e coloque o resultado em um vetor b. float a[3][3], x[3], b[3]; int i,j; for ( i = 0 ; i < 3 ; i++ ) { b[i] = 0.0; for ( j = 0 ; j < 3 ; j ++ ) b[i] += a[i][j] * x[j]; } PE2: Crie um programa que imprime o resultado do código do PT2 para os seguintes valores de a e b: 1 2 3 1 a 4 5 6 e b 2 . 7 8 9 3 PROGRAMAS BÁSICOS PB1: Generalize o PT11 para qualquer matriz mxn. Os elementos da Matriz M são dados por M i j 2 * i j e do vetor x por xi i 1 . Calcule o valor de M*x e mostre o vetor resultante. PB2: Elabore um programa que fornece uma matriz C com o triângulo de pascal até a n-ésima linha (dado fornecido pelo usuário): 1 11 121 1331 Dica: use que Cn,k = Cn-1,k-1 + Cn-1,k. PB3: Construa um programa que calcule e mostre a soma de duas matrizes de dimensão 4x4. Use qualquer regra de formação para construir as duas matrizes. PB4: Construa um programa que fornece o 1 Programação de Computadores – 2o Sem- 2013 – Prof. André Amarante Luiz – LAB7 Esse material foi preparado pelos professores Aníbal Tavares de Azevedo e Cassilda Maria Ribeiro para o curso de Programação de Computadores I – FEG/UNESP resultado da multiplicação de 2 matrizes A e B quaisquer. PB5: Ler uma matriz A de elementos inteiros distintos de dimensão MxM (M50). Gerar dois vetores V e W, formados respectivamente pela linha de A correspondente ao maior elemento da diagonal principal e pela coluna de A correspondente ao menor elemento da diagonal principal. Escrever a matriz A e os vetores V e W. pelo vetor V. Escrever a matriz A inicial , os M vetores produzidos, o vetor V e a matriz A modificada. PB8: Gerar uma matriz A(MxN) triangular superior da seguinte maneira: A(I,J) = 0 para I >J A(I,J) = e (I J) para I J 1 2 3 8 4 0 5 1 Exemplo : A = 6 7 9 3 4 10 3 5 V = (6,7,9,-3) e W = (8,-1,-3,-5) PB6: Ler uma matriz A (MxN) de elementos inteiros. Calcular e imprimir a soma dos elementos situados abaixo da diagonal principal da matriz, incluindo os elementos da própria diagonal. PB7: Ler uma matriz A (MxN) de elementos inteiros. Calcular o traço da matriz A (soma dos elementos da diagonal principal). PB8: Ler uma matriz A de dimensão M x M e a seguir gerar M vetores, onde cada vetor corresponde a uma linha da matriz. Encontrar os maiores elementos de cada vetor e armazená-los em um vetor V. Substituir a penúltima coluna da matriz A 2