Matrizes
Problema: Ler as 5 notas de 7 alunos (identificados por um número entre e 6), calcular a média de cada aluno, e após imprimir as notas e médias dos alunos, classificados pela média. Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?
Resposta: 4 variáveis simples 3
notas, matriz, armazena para 7 ALUNOS, suas 5 NOTAS mais a MÉDIA 3 4 5 Representação espacial Cada elemento desta matriz necessita de dois índices para ser especificado--> notas é portanto uma matriz 3 4 5 6 5.4 notas[3] [] 4
Outra forma de apresentação de uma matriz: notas notas[][] notas[][] notas[][] notas[6][] notas[][] notas[][5] notas[][] notas[][5] notas[][] notas[][5]... notas[6][] notas[6][5] 5
Declaração de notas como matriz: float notas[7][6]; Acesso a um elemento de Notas: printf( %f, notas[] []); linha coluna 6
Matriz em C Primeiro índice : linha; Segundo índice : coluna. 7
Acesso a elementos determinados da matriz: Primeira nota do primeiro aluno: printf( Primeira nota do Primeiro Aluno: %f, notas[] []); Primeira nota do terceiro aluno, ou seja, i = j = : scanf( %f, ¬as[i] [j]); Última nota do último aluno: if (notas[6] [5] > 9.5) 8
ATENÇÃO: Seja qual for o número de dimensões* os elementos de um arranjo são sempre de mesmo tipo! * (número de índices necessários para acessar um elemento da matriz = número de dimensões da matriz) 9
Leitura na matriz
Leitura da matriz Int [3][3]; for (i=;i<3; i++) for (j=;j <3;j++) scanf( %d, &[i] [j]); i --> j --> [] [] <-- 9 9
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [] [] <-- 5 scanf( %d, &[i] [j]); 9 5
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [] [] <-- 7 scanf( %d, &[i] [j]); 9 5 7 3
Leitura da matriz i --> for (i=;i<3; i++) for (j=;j <3;j++) scanf( %d, &[i] [j]); j --> 3 (fim do for j) 4
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [] [] <-- scanf( %d, &[i] [j]); 5
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [] [] <-- 4 scanf( %d, & [i] [j]); 4 6
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [] [] <-- scanf( %d, & [i] [j]); 4 7
Leitura da matriz i --> for (i=;i<3; i++) for (j=;j <3;j++) scanf( %d, & [i] [j]); j --> 3 (fim do for j) 4 8
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [] [] <-- 6 scanf( %d, &[i] [j]); 4 6 9
Leitura da matriz i --> j --> for (i=;i<3; i++) [][] <-- 3 for (j=;j <3;j++) scanf( %d, & [i] [j]); 4 6 3
Leitura da matriz i --> for (i=;i<3; i++) j --> for (j=;j <3;j++) [][] <-- scanf( %d, & [i] [j]); 4 6 3
Leitura da matriz i --> for (i=;i<3; i++) for (j=;j <3;j++) scanf( %d, & [i] [j]); j --> 3 (fim do for j) 4 6 3
Leitura da matriz i --> 3 for (i=;i<3; i++) for (j=;j <3;j++) scanf( %d, & [i] [j]); j --> (fim do for i) 4 6 3 3
Uso da matriz 4
Escrita dos elementos da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> 9 } Linha 9 4 6 3 5
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> 5 } Linha 9 5 4 6 3 6
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> 7 } 5 7 4 6 3 7
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> 3 (fim do for j) } 5 7 4 6 3 8
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> } 7 Linha 4 6 3 9
Escrita da matriz for (i=; i< 3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> 4 } Linha 4 4 6 3 3
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> } 4 4 6 3 3
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> 3 (fim do for j) } 4 4 6 3 3
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> 6 } Linha 6 4 6 3 33
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [] [] --> 3 } Linha 6 3 4 6 3 34
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> [][] --> } 6 3 4 6 3 35
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> j --> 3 (fim do for j) } 6 3 4 6 3 36
Escrita da matriz for (i=; i<3; i++) { printf( \nlinha %d, i); for (j=; j <3; j++) printf( \n%d, [i] [j]); i --> 3 j --> (fim do for i) } 6 3 4 6 3 37
Programa exemplo: Gerar uma matriz com inteiros. Achar e apresentar o maior valor da matriz. Apresentar a matriz em formato matricial. 38
#include <stdio.h> #include <stdlib.h> main ( ) { int amostra[3][3]; int i, j, maior; // Leitura dos inteiros na matriz for (i=;i<3; i++) { printf("linha %d \n", i + ); for (j=;j <3;j++){ scanf("%d", &amostra[i] [j]); } } 39
} //Trecho que acha o maior valor maior = amostra[] []; for (i=;i<3; i++) for (j=;j <3;j++) if (amostra[i] [j] > maior) maior = amostra[i] [j]; printf("maior valor da matriz: %d \n", maior ); //Impressao da matriz em formato matricial printf("\nmatriz em formato matricial\n" ); for (i=;i<3; i++) { printf("\n"); for (j=;j <3;j++) printf("%d", amostra[i] [j]); printf("\n"); } system("pause"); 4
Exercício Faça um programa C que leia e preencha uma matriz 3x3 com inteiros entre e, inclusive (notas de alunos) e indique: ) Quantas vezes a nota 9 aparece na matriz. ) Quantas vezes aparece cada nota? 4
Exercício Faça um algoritmo que leia duas matrizes de tamanho 3 x 3. Em seguida, compare os das duas matrizes, nas respectivas posições, e mostre quais números são iguais nas duas matrizes, na mesma posição. Informe também a posição. 4
Exercício Faça um algoritmo que leia duas matrizes A e B de tamanho 4 x 4, conte e mostre quais dos que estão na matriz A também aparecem na matriz B, independente de sua posição na matriz B. 43