Slides_Matrizes

Propaganda
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.
Download