Você está na página 1de 12

Algoritmos e Estruturas de Dados 1 Prof.

Eduardo

1 - VARIVEIS COMPOSTAS HOMOGNEAS (VETORES E MATRIZES)


As variveis compostas homogneas so estruturas de dados que se caracterizam por um conjunto de variveis do mesmo tipo. Elas podem ser unidimensionais ou multidimensionais. Para explicar de maneira simples, vamos fazer uma analogia: imaginemos um quadradinho de um tabuleiro de damas. Este quadradinho uma varivel simples. A varivel composta homognea um conjunto desses quadradinhos. A este conjunto damos o nome de tabuleiro. Sendo assim, a nossa varivel composta homognea chama-se tabuleiro e sabemos que dentro dela existem diversos quadradinhos iguais, ou seja, cada quadradinho um elemento do tabuleiro e todos so do mesmo tipo.

(a) 1.1 VETOR

(b)

(c)

Varivel composta homognea unidimensional caracteriza-se por dados agrupados linearmente numa nica direo, como uma linha reta (b). Definio So varveis que recebem um nome e podem assumir vrios valores. Unidimensionais. Portanto, vetor tambm conhecido como varivel composta unidimensional. Isto quer dizer que se trata de um conjunto de variveis de mesmo tipo, que possuem o mesmo identificador (nome) e so alocadas sequencialmente na memria. Como as variveis tm o mesmo nome, o que as distingue um ndice que referencia sua localizao dentro da estrutura. 1.1.1 - Declarao de vetor declarao de variveis tipo nome[tamanho] onde tipo o tipo dos dados que sero armazenados no vetor; nome o nome da varivel do tipo vetor; tamanho a quantidade de variveis que vo compor o vetor. 1.1.2 - Exemplo de vetor declarao de variveis inteiro x[5]; x 1 2 3 4 5

x[1]

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

1.1.3 - Atribuindo valores ao vetor As atribuies em vetor exigem que seja informada em qual de suas posies o valor ficar armazenado. x[1] 45; No exemplo, o nmero 45 ser armazenado na posio de ndice 1 do vetor. Veja: real notas[6]; Vetor notas de 6 posies do tipo real. (sintaxe: tipo nome[posies])
Em Algoritmo

notas 6.0 1 7.0 2 4.0 3 8.0 4 8.0 5 9.0 6

Para acessar cada valor correspondente s notas, no exemplo acima, deve-se utilizar um ndice, cujo valor varia de 1 (ou 0, em C++) at o tamanho do vetor. Observe as atribuies: notas[1] 6.0; notas[2] 7.0; ... 1.1.4 - Preenchendo um vetor Preencher um vetor significa atribuir valores a todas as suas posies. Assim, deve-se implementar um mecanismo que controle o valor do ndice. Exemplo: para x1 at 5 faa incio escreva(Digite o , x, nmero:); leia(vet[x]); fim para Nesse exemplo, a estrutura de repetio para foi utilizada para garantir que a varivel x assuma todos os valores possveis para o ndice do vetor. Assim, para cada execuo da repetio, ser utilizada uma posio diferente do vetor. Simulao: MEMRIA TELA
x = 1; vet 26 1 26 1 26 1 26 1 26 1 Digite o primeiro nmero: 26 2 15 2 15 2 15 2 15 2 3 4 5 Digite o segundo nmero: 15 3 -21 3 -21 3 -21 3 4 5 Digite o terceiro nmero: -21 4 46 4 46 4 5 Digite o quarto nmero: 46 5 0 5 Digite o primeiro nmero: 0

x = 2;

vet

x = 3;

vet

x = 4;

vet

x = 5;

vet

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

1.1.5 - Mostrando os elementos do vetor Mostrar os valores contidos em um vetor tambm implica a utilizao. Exemplo:
para x1 at 5 faa incio escreva(Este o , x, escreva(x[]); fim para

nmero do vetor);

Exerccio resolvido: Criar um algoritmo que leia um vetor de nmeros inteiros e 5 posies. Mostre cada elemento do vetor multiplicado por 3.
algoritmo numeros declarao de variveis inteiro num[5], x,mult; inicio para x1 at 5 faa inicio escreva(Digite um nmero: ); leia(num[x]); fim para para x1 at 5 faa inicio multnum[x]*3; escreva(mult); fim para fim_algoritmo

Exerccios:
1 Dado o seguinte vetor:

Qual ser o contedo do vetor V depois de executado o algoritmo abaixo?


para i8 at 5 passo -1 faa inicio aux v [i]; v [i] v [8 - i + 1]; v [8 - i + 1] aux; fim_para v [3] v [1]; v [v [3]] v [v [2]];

2 - Criar um algoritmo que leia 4 notas de um aluno armazenando-as em um vetor. Posteriormente, mostre as notas do fim para o comeo. 3 - Escreva um algoritmo que permita a leitura de 10 nmeros e armazene os nmeros lidos em um vetor. Aps isto, o algoritmo deve permitir a leitura de mais 1 nmero qualquer para pesquisar no vetor. Depois escrever a mensagem ACHEI, se o nmero estiver entre os 10 nmeros lidos anteriormente (guardados no vetor), ou NO ACHEI caso contrrio.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

4 - Ler um vetor Q de 20 posies (aceitar somente nmeros positivos). Escrever a seguir o valor do maior elemento de Q e a respectiva posio que ele ocupa no vetor. 5 - O mesmo exerccio anterior, mas agora deve escrever o menor elemento do vetor e a respectiva posio dele nesse vetor. 6 - Ler um vetor A de 10 nmeros. Aps, ler mais um nmero e guardar em uma varivel X. Armazenar em um vetor M o resultado de cada elemento de A multiplicado pelo valor X. Logo aps, imprimir o vetor M. 7 - Faa um algoritmo para ler um valor N qualquer (que ser o tamanho dos vetores). Aps isso, ler (preencher) dois vetores A e B (de tamanho N cada um) e depois armazenar em um terceiro vetor Soma, a soma dos elementos do vetor A com os do vetor B (respeitando as mesmas posies) e escrever o vetor Soma. 8 - Faa um algoritmo para ler dois vetores V1 e V2 de 15 nmeros cada. Calcular e escrever abquantidade de vezes que V1 e V2 possuem os mesmos nmeros e nas mesmas posies. 9 - Faa um algoritmo para ler um vetor de 30 nmeros. Aps isto, ler mais um nmero qualquer, calcular e escrever quantas vezes esse nmero aparece no vetor. 10 - Faa um algoritmo para ler 50 nmeros e armazenar em um vetor VET, verificar e escrever se existem nmeros repetidos no vetor VET e em que posies se encontram. 11 - Criar um algoritmo de Loteria que leia uma aposta de 13 nmeros e um gabarito com 13 nmeros de resultado. Compare o vetor de aposta com o vetor de gabarito e mostre o total de acertos. Exibe a mensagem de Ganhador caso ocorra 13 acertos. 12 - Criar um algoritmo que preencha um vetor com nove nmeros inteiros, calcule e mostre os nmeros primos e suas respectivas posies. 13 - Criar um algoritmo que leia um vetor A com cinco nmeros inteiros e outro vetor B com 4 nmeros inteiros. Mostrar os elementos que esto em A e no esto em B. A 1 5 10 8 7 B 2 1 10 5 14 - Criar um algoritmo que leia um vetor de trs caracteres e outro de cinco caracteres. Depois, mostrar os caracteres que so comuns aos dois. A a b c B a x 2 4 7 15 - Criar um algoritmo que leia dois vetores com 10 nmeros inteiros cada. Depois, deve-se subtrair o 1 elemento do vetor A do ltimo elemento do vetor B, o segundo elemento de A do penltimo de B e assim por diante. Os resultados das subtraes devem ser armazenados em um 3 vetor. 16 - Criar um algoritmo que preencha dois vetores de dez elementos numricos cada um e mostre o vetor resultante da intercalao deles. vetor1 3
1

5
2

4
3

2
4

2
5

5
6

3
7

2
8

5
9

9
10

vetor2

7
1

15
2

20
3

0
4

18
5

4
6

55
7

23
8

8
9

6
10

Intercalao

3
1

7 5
2 3

15
4

4
5

20
6

2 0
7 8

2
9

18
10

5
11

4
12

3
13

55
14

2
15

23
16

5
17

8
18

9
19

6
20

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

17 - Faa um algoritmo que preencha um vetor com dez nmeros inteiros, calcule e mostre o vetor resultante de uma ordenao decrescente. vet 3 1 11 1 5 2 9 2 4 3 8 3 2 4 7 4 1 5 6 5 6 6 5 6 8 7 4 7 7 8 3 8 11 9 2 9 9 10 1 10

ordenado

18 - Faa um programa que preencha dois vetores com cinco elementos numricos cada um e depois ordeneos de maneira crescente. Dever ser gerado um terceiro vetor com dez posies, composto pela juno dos elementos dos vetores anteriores, tambm ordenado de maneira crescente. vet1 6 1 1 1 8 2 3 2 1 3 6 3 10 4 8 4 3 5 10 5

vet1 ordenado

vet2

20 1 0 1 3 4

0 2 2 2 5 5

7 3 5 3 6 6

2 4 7 4 7 7

5 5 20 5 8 8 10 9 20 10

vet2 ordenado

Resultado 0 1

1 2

2 3

19 - Faa um algoritmo para corrigir provas de mltipla escolha. Cada prova tem oito questes e cada questo vale um ponto. O primeiro conjunto de dados a ser lido o gabarito da prova. Os outros dados so os nmeros dos alunos e as respostas que deram s questes. Existem dez alunos matriculados. Calcule e mostre: O nmero e a nota de cada aluno; A percentagem de aprovao, sabendo-se que a nota mnima 6.

20 - Faa um algoritmo que receba seis nmeros inteiros e mostre: Os nmeros pares digitados; A soma dos nmeros pares digitados; Os nmeros mpares digitados; A quantidade de nmeros mpares digitados. vetor Relatrio: Os nmeros pares so: Nmero 2 na posio 1 Nmero 4 na posio 2 Nmero 6 na posio 4 Soma dos pares = 12 2 1 4 2 5 3 6 4 3 5 7 6

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

Os nmeros mpares so: Nmero 5 na posio 3 Nmero 3 na posio 5 Nmero 7 na posio 6 Quantidade de mpares = 3 21 - Faa um algoritmo que preencha dois vetores, A e B, com vinte caracteres cada um. A seguir, troque o 1 elemento de A com o 20 de B, o 2 de A com o 19 de B, e assim por diante, at trocar 20 de A com o 1 de B. Mostre os vetores antes e depois da troca. Vetores antes da troca: A A 1 S 1 G 2 D 2 Y 3 4 3 W 4 5 4 5 5 H 5 V 6 G 6 S 7 R 7 8 8 U 8 6 9 8 9 J 10 9 10 G A W 2 M C H Q 6 L 11 12 13 14 15 16 17 18 19 20 K S A 1 2 V 4 D 5 M 11 12 13 14 15 16 17 18 19 20

Vetores depois da troca: A M 1 L 1 5 2 6 2 D 3 Q 3 4 4 H 4 V 5 C 5 2 6 M 6 1 7 2 7 A 8 W 8 S 9 A 9 K 10 G 10 9 8 U R G H 5 4 D S 11 12 13 14 15 16 17 18 19 20 J 6 8 S V 5 W Y G A 11 12 13 14 15 16 17 18 19 20

22 Faa um algoritmo que simule um controle bancrio. Para tanto, devem ser lidos os cdigos de dez contas e seus respectivos saldos. Os cdigos devem ser armazenados em um vetor de nmeros inteiros (no pode haver mais de uma conta com o mesmo cdigo) e os saldos devem ser armazenados em um vetor de nmeros reais. O saldo dever ser cadastrado na mesma posio do cdigo. Por exemplo, se a conta 504 foi armazenada na quinta posio do vetor de cdigos, seu saldo dever ficar na quinta posio do vetor de saldos. Depois de fazer a leitura dos valores, dever aparecer o seguinte menu na tela: 1 Efetuar depsito 2 Efetuar saque 3 Consultar o ativo bancrio ( somatrio dos saldos de todos os clientes) 4 Finalizar o programa Para efetuar depsito, deve-se solicitar o cdigo da conta e o valor a ser depositado. Se a conta no estiver cadastrada, dever aparecer a mensagem Conta no encontrada e voltar ao menu. Se a conta existir, atualizar o seu saldo. Para efetuar saque, deve-se solicitar o cdigo da conta e o valor a ser sacado. Se a conta no estiver cadastrada, dever aparecer a mensagem Conta no encontrada e voltar ao menu. Se a conta existir, verificar se seu saldo suficiente, realizar o saque. (Estou supondo que a conta no pode ficar com saldo negativo.) Se o saldo for suficiente, realizar o saque e voltar ao menu. Caso contrrio, mostrar a mensagem Saldo insuficiente e voltar ao menu; Para consultar o ativo bancrio, deve-se somar o saldo e todas as contas do banco. Depois de mostrar esse valor, voltar ao menu; O algoritmo s termina quando for digitada a opo 4 Finalizar o programa.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

23 Uma empresa possui nibus com 48 lugares (24 nas janelas e 24 no corredor). Faa um algoritmo que utilize dois vetores para controlar as poltronas ocupadas no corredor e na janela. Considere que 0 representa poltrona desocupada e 1, poltrona ocupada. janela 0 1 1 2 0 3 0 4 ... ... 1 22 0 23 0 24

0 0 0 1 ... 1 0 0 1 2 3 4 ... 22 23 24 Inicialmente, todas as poltronas estaro livres. Depois disso, o algoritmo dever apresentar as seguintes opes: Vender passagem. Mostrar mapa de ocupao do nibus. Encerrar. Quando a opo escolhida for Vender passagem, dever ser perguntado se o usurio deseja janela ou corredor e o nmero da poltrona. O algoritmo dever, ento, dar uma das seguintes mensagens: Venda efetivada se a poltrona solicitada estiver livre, marcando-a como ocupada. Poltrona ocupada se a poltrona solicitada no estiver disponvel para venda. nibus lotado quando todas as poltronas j estiverem ocupadas. Quando a opo escolhida for Mostrar mapa de ocupao do nibus, dever ser mostrada uma listagem conforme a seguir:
JANELA 1 Ocupada 2 Ocupada 3 Livre 4 Livre 5 Ocupada ... CORREDOR 1 Ocupada 2 Livre 3 Livre 4 - Ocupada 5 - Livre

corredor

Quando for escolhida a opo Encerrar, a execuo do programa dever ser finalizada.

1.2 - MATRIZ A varivel composta multidimensional caracteriza-se por dados agrupados em diferentes direes, como num plano (a) ou num cubo (c). 1.2.1 - Definio Uma matriz uma varivel composta homognea multidimensional. Ela formada por uma sequencia de variveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome), e alocadas sequencialmente na memria. Uma vez que as variveis tm o mesmo nome, o que as distingue so ndices que referenciam sua localizao dentro da estrutura. Uma varivel do tipo matriz precisa de um ndice para cada uma de suas dimenses. No caso mais simples, bidimensionais:
1 1 2 3 4 5 2 3 4 5

Linhas

Colunas

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

1.2.2 - Declarao de Matriz Um algoritmo pode declarar uma matriz, conforme descrito a seguir: declarao de variveis tipo nome[dimenso1,dimenso2,dimenso3, . . . ,dimensoN ]; onde tipo o tipo de dados dos elementos da matriz; nome o nome da varivel do tipo matriz; dimenso1 a quantidade de elementos da 1 dimenso (muitas vezes chamada de linha); dimenso2 a quantidade de elementos da 2 dimenso (muitas vezes chamada de coluna); dimenso3 a quantidade de elementos da 3 dimenso (muitas vezes chamada de profundidade); dimensoN a quantidade de elementos da n-sima dimenso;

1.2.3 - Exemplo de Matriz O exemplo a seguir define uma matriz bidimensional, onde o tamanho da 1 dimenso (linha) 3 e o da 2 dimenso (coluna) 5. declarao de variveis inteiro m[3,5];
1 m 1 2 3 2 3 4 5

m[1,1] m[3,4] O exemplo que se segue define uma matriz tridimensional, onde o tamanho da 1 dimenso (linha) 4, o tamanho da 2 dimenso (coluna 6 e o tamanho da 3 dimenso (profundidade) 3.

Atribuindo valores a uma matriz x[2,4] 45; x[3,1] 13; x[4,2,1] 0; x[3,5,3] -4;

1.2.4 - Preenchendo uma matriz Para preencher uma matriz, necessrio identificar todas as suas posies. Isto exige a utilizao de um ndice para cada dimenso da matriz.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

No exemplo a seguir, uma matriz bidimensional com trs linhas e cinco colunas mostrada. Observe que a varivel i varia dentro do intervalo de 1 a 3, ou seja, exatamente nas linhas. Para cada valor de i, a varivel j varia de 1 a 5, ou seja, as cinco colunas que cada linha possui. para i1 at 3 faa incio para j1 at 5 faa incio escreva(Digite o nmero da linha , i, e coluna , j, :); leia(x[i,j]); fim para fim para Simulao: MEMRIA TELA i j 1 1 Digite o nmero da linha 1 e coluna 1: 12 2 Digite o nmero da linha 1 e coluna 2: 9 3 Digite o nmero da linha 1 e coluna 3: 3 4 Digite o nmero da linha 1 e coluna 4: 7 5 Digite o nmero da linha 1 e coluna 5: -23 2 1 Digite o nmero da linha 2 e coluna 1: 15 2 Digite o nmero da linha 2 e coluna 2: 4 3 Digite o nmero da linha 2 e coluna 3: 2 4 Digite o nmero da linha 2 e coluna 4: 34 5 Digite o nmero da linha 2 e coluna 5: -4 3 1 Digite o nmero da linha 3 e coluna 1: 3 2 Digite o nmero da linha 3 e coluna 2: 45 3 Digite o nmero da linha 3 e coluna 3: 3 4 Digite o nmero da linha 3 e coluna 4: 0 5 Digite o nmero da linha 3 e coluna 5: -3 Assim pode-se imaginar os elementos dispostos em uma estrutura bidimensional, como uma tabela:
1 x 1 2 3 2 3 4 5

12 15 3

9 4 45

3 2 3

7 34 0

-23 -4 -3

J no exemplo que se segue, uma matriz tridimensional com quatro linhas, trs colunas e profundidade dois preenchida. Observe que a varivel i oscila dentro do intervalo de 1 a 4, ou seja, exatamente nas linhas. Para cada valor de i, a varivel j se movimenta de 1 a 3, ou seja, as trs colunas que cada linha possui, e, por fim, a varivel k se alterna entre 1 e 2, que a profundidade. para i1 at 4 faa incio para j1 at 3 faa incio para k1 at 2 faa incio escreva(Digite o nmero da linha , i, coluna , j, e profundidade , k,:); leia(x[i,j]); fim para fim para fim para

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

10

i 1

MEMRIA j 1 2 3

TELA k 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Digite o nmero da linha 1 coluna 1 e profundidade 1: 2 Digite o nmero da linha 1 coluna 1 e profundidade 2: 5 Digite o nmero da linha 1 coluna 2 e profundidade 1: -1 Digite o nmero da linha 1 coluna 2 e profundidade 2: 0 Digite o nmero da linha 1 coluna 3 e profundidade 1: 15 Digite o nmero da linha 1 coluna 3 e profundidade 2: 8 Digite o nmero da linha 2 coluna 1 e profundidade 1: -25 Digite o nmero da linha 2 coluna 1 e profundidade 2: 3 Digite o nmero da linha 2 coluna 2 e profundidade 1: 6 Digite o nmero da linha 2 coluna 2 e profundidade 2: 9 Digite o nmero da linha 2 coluna 3 e profundidade 1: 7 Digite o nmero da linha 2 coluna 3 e profundidade 2: 11 Digite o nmero da linha 3 coluna 1 e profundidade 1: 23 Digite o nmero da linha 3 coluna 1 e profundidade 2: -2 Digite o nmero da linha 3 coluna 2 e profundidade 1: -5 Digite o nmero da linha 3 coluna 2 e profundidade 2: 46 Digite o nmero da linha 3 coluna 3 e profundidade 1: 19 Digite o nmero da linha 3 coluna 3 e profundidade 2: 1 Digite o nmero da linha 4 coluna 1 e profundidade 1: 14 Digite o nmero da linha 4 coluna 1 e profundidade 2: 27 Digite o nmero da linha 4 coluna 2 e profundidade 1: 5 Digite o nmero da linha 4 coluna 2 e profundidade 2: 4 Digite o nmero da linha 4 coluna 3 e profundidade 1: 10 Digite o nmero da linha 4 coluna 3 e profundidade 2: 65

1 2 3

1 2 3

1 2 3

Assim pode-se imaginar os elementos dispostos em uma estrutura tridimensional, como um cubo:

1.2.5 - Mostrando os elementos de uma matriz Para mostrar os elementos de uma matriz, necessrio identificar as suas posies. Isto exige a utilizao de um ndice para cada dimenso da matriz. No exemplo a seguir, uma matriz bidimensional com trs linhas e cinco colunas mostrada. Observe que a varivel i assume valores seqenciais no intervalo de 1 a 3, ou seja, exatamente nas linhas da matriz. Para cada valor assumido por i, a varivel j assume valores sequenciais de 1 a 5, ou seja, as cinco colunas que cada linha possui.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

11

para i1 at 3 faa incio para j1 at 5 faa incio escreva(x[i,j]); fim para fim para Exerccio resolvido: Criar um algoritmo que leia as trs notas de 2 alunos do 1 ano de Licenciatura em Computao. Depois mostre estas notas divididas por 2, uma vez que, constatou-se que estes alunos colaram nas provas. algoritmo notas declarao de variveis real notas[2,3], div; inteiro a,b; incio para a1 at 2 faa incio para b1 at 3 faa incio escreva(Digite uma nota: ); leia(notas[a,b]); fim para fim para para a1 at 2 faa incio para b1 at 3 faa incio divnotas[a,b]/2; escreva(Nota dividida: ,div); fim para fim para

Exerccios:
1 Criar um algoritmo que leia uma matriz 6 x 4 de nmeros inteiros e um elemento inteiro qualquer, multiplique todos os elementos da matriz por este elemento inteiro qualquer. Mostrar a matriz alterada. 2 Criar um algoritmo que leia uma matriz 3 x 3 de nmeros reais. Calcular e mostrar o somatrio dos elementos da 3 linha. 3 Criar um algoritmo que leia uma matriz 3 x 3 de nmeros inteiros e mostre apenas os elementos da diagonal principal. 4 Faa um algoritmo que preencha: um vetor com oito posies, contendo nomes de lojas; outro vetor com quatro posies, contendo nomes de produtos; uma matriz 4 x 8 com os preos de todos os produtos em cada loja. O programa dever mostrar todas as relaes (nome do produto nome da loja) em que o preo no ultrapasse R$120,00).

Algoritmos e Estruturas de Dados 1 Prof. Eduardo

12

6 Criar um algoritmo que preencha uma matriz 10 x 20 com nmeros inteiros e some cada uma das linhas, armazenando o resultado das somas em um vetor. A seguir, o programa dever multiplicar cada elemento da matriz pela soma da linha correspondente e mostrar a matriz resultante. 7 Criar um algoritmo que receba: um vetor com o nome de cinco cidades diferentes; uma matriz 5 x 5 com a distncia entre as cidades, sendo que na diagonal principal deve ser colocada automaticamente distncia zero, ou seja, no deve ser permitida a digitao; o consumo de combustvel de um veculo, ou seja, quantos quilmetros este veculo percorre com um litro de combustvel. O programa dever calcular e mostrar: os percursos que no ultrapassem 250 quilmetros (os percursos so compostos pelos nomes das cidades de origem e pelos nomes das cidades de destino); todos os percursos (nome da cidade de origem e nome da cidade de destino), juntamente com a quantidade de combustvel necessria para o veculo percorr-lo.

8 Uma escola deseja controlar as mdias das disciplinas cursadas por seus alunos. Sabe-se que nessa escola existem trs turmas, com oito alunos cada, e cada aluno cursa quatro disciplinas. Crie um algoritmo que armazene essas mdias em uma matriz 3 x 8 x 4. Depois da leitura, ele dever calcular e mostrar: a mdia geral de cada aluno; a mdia de cada turma.

Você também pode gostar