Linguagem C Estruturas de Dados Homogêneas Multidimensionais – Matrizes Matrizes em Linguagem “C” • Matrizes são Estruturas de Dados Homegêneas Multidimensionais • Necessitam de dois (ou mais) índices de acesso. • Declaração: tipo nomedamatriz[DimMax_x][DimMax_y]; Onde: – tipo:um dos tipos primitivos de dados em C (char, int, float, double) – nomedamatriz: segue as mesmas regras das variáveis básicas – DimMax_x, DimMax_y: define o tamanho da área de armazenamento - pode ser uma expressão constante inteira Matrizes em Linguagem “C” #include <stdio.h> #include <stdlib.h> void main() { float matriz [2][2]; float media, quant; matriz[0][0] = 9.0; matriz[0][1] = 8.0; matriz[1][0] = 7.0; matriz[1][1] = 7.0; quant = matriz[0][0] + matriz[0][1] + matriz[1][0] + matriz[1][1]; media = quant / 4.0; printf (“ A média dos 4 números é: %f.”, media); system (“PAUSE”); } Matrizes em Linguagem “C” Exemplos: int main() { float parc_aluno[2]; float notas_alunos[5][2]; char nome[40]; char nomes_turma[5][40]; return 0; } (Importante: Indexação no estilo [Linha][Coluna]) Matrizes em Linguagem “C” #include <stdio.h> #include <stdlib.h> void main () { float matriz [2][2]; float media, quant; printf ( “Digite o 1o número:” ); scanf ( “%f”, &matriz [0][0] ); printf ( “Digite o 2o número:” ); scanf ( “%f”, &matriz [0][1] ); printf ( “Digite o 3o número:” ); scanf ( “%f”, &matriz [1][0] ); printf ( “Digite o 4o número:” ); scanf ( “%f”, &matriz[1][1] ); quant = matriz[0][0] + matriz[0][1] + matriz[1][0] + matriz[1][1]; media = quant / 4.0; printf(“ A média dos 4 números é: %f.”, media); system (“pause”); } Matrizes em Linguagem “C” #include <stdio.h> #include <stdlib.h> void main () { float matriz [2][4]; float media[2], soma; int cont1, cont2; for ( cont1 = 0; cont1 < 2; cont1 = cont1 + 1 ) { soma = 0.0f; for ( cont2 = 0; cont2 < 4; cont2 = cont2 + 1 ) { printf ( “ Digite a nota posição %i, %i da matriz: ”, cont1, cont2 ); scanf ( “%f”, &matriz[cont1][cont2] ); soma = soma + matriz[cont1][cont2] ; } media[cont1] = quant / 4.0; printf ( “ A média dos números da linha %d da matriz é: %f.”, cont1, media[cont1]); } printf(“\nE a média geral entre todos os números é: %2.2f\n”, (media[0]+media[1])/2.0f); system (“pause”); } Matrizes em Linguagem “C” Exercícios a) Uma matriz M pode ser transposta em uma matriz N onde o número de linhas/colunas da primeira passa a ser o número de colunas/linhas da segunda. Faça um programa que: - Leia uma matriz M (o usuário deve fornecer a quantidade de linhas e a quantidade de colunas que não deverão exceder 50 linhas e 50 colunas). - Calcule a transposta N da matriz M. - Imprima a transposta calculada. b) Elabore um programa que multiplique duas Matrizes M e N (10x10) fornecidas pelo usuário. O programa deve: - Ler as matrizes M e N. - Calcular a multiplicação e armazenar na matriz Mult. - Imprimir o resultado. c) Elabore um programa que manipule os dados para uma sala de 40 alunos. O programa deve receber como entrada (via leitura de teclado): - Os nomes dos alunos (máximo 50 caracteres). - As duas notas parciais. O programa deve calcular e imprimir, numa mesma linha, para cada aluno: - O nome, a média final e a freqüência. E também deve apresentar: - A maior média da turma, e a menor média da turma. - A quantidade de alunos aprovados, reprovados e em exame. - Uma listagem com o nome dos alunos que irão para a final.