Desde de ontem estou queimando a cabeça num exercício, ele pede o seguinte: dar um código (matricula), nome de 5 alunos, assim como suas notas (P1 e P2), e média final. O programa inicia com um menu,:
a)Cadastrar alunos
b)Cadastrar notas
c)Exibir notas
d)Exibir medias
e)Exibir os codigos, os nomes, notas e medias (em forma de matriz)
f)Sair
Toda vez que a opção é escolhida o menu deve sumir, por exemplo, escolheu a) o menu some, faz o cadastro, chegou no fim do cadastro, some esta opção e volta o menu. Não é permitido usar procedure, registro, functions, só pode usar if..then..else, case..of, vetor e matriz.
O que játenho pronto é isto:
Em VETOR
program diego1;
uses crt;
var
aluno : array[1..5] of string;
nome : array[1..5] of string;
notas1 : array[1..5] of real;
notas2 : array[1..5] of real;
i, j : integer;
opcao : char;
m1, m2, m3, m4, m5 : real;
begin
clrscr;
opcao := 'g'; {Ignorar o Case}
while opcao <> 'f' do
begin
clrscr;
case (opcao) of
'a' : begin {Armazenar código e nome do aluno}
for i := 1 to 5 do
begin
writeln('Digite o codigo do ', i, ' aluno:');
readln(aluno[i]);
end;
writeln;
for j := 1 to 5 do
begin
writeln('Digite o nome do ', j, ' aluno:');
readln(nome[j]);
end;
end;
'b' : begin {Armazenar notas do aluno}
for i := 1 to 5 do
begin
writeln('Digite a nota P1 do ', i, ' aluno:');
readln(notas1[i]);
end;
writeln;
for j := 1 to 5 do
begin
writeln('Digite a nota P2 do ', j, ' aluno:');
readln(notas2[j]);
end;
end;
'c' : begin {Mostrar as notas do aluno}
for i := 1 to 5 do
begin
writeln('A nota P1 do aluno ', i, ' foi ', notas1[i]:2:2);
end;
writeln;
for j := 1 to 5 do
begin
writeln('A nota P2 do aluno ', j, ' foi ', notas2[j]:2:2);
end;
readln;
end;
'd' : begin {Cálulo da médias e sua exibição}
m1 := (notas1[1] + notas2[1]) / 2;
m2 := (notas1[2] + notas2[2]) / 2;
m3 := (notas1[3] + notas2[3]) / 2;
m4 := (notas1[4] + notas2[4]) / 2;
m5 := (notas1[5] + notas2[5]) / 2;
writeln('A media do aluno 1 ', m1:2:2);
writeln('A media do aluno 2 ', m2:2:2);
writeln('A media do aluno 3 ', m3:2:2);
writeln('A media do aluno 4 ', m4:2:2);
writeln('A media do aluno 5 ', m5:2:2);
readln;
end;
'e' : begin {Mostrar tudo na tabela}
write( ' Codigo ',' ', ' Nome ',' ', ' P1 ',' ',' P2 ',' ', ' Medias ');
FALTA ESTA PARTE
end;
clrscr;
writeln('Digite a opcao desejada: ');
writeln('a)Cadastrar alunos');
writeln('b)Cadastrar notas');
writeln('c)Exibir notas');
writeln('d)Exibir medias');
writeln('e)Exibir os codigos, os nomes, notas e medias');
writeln('f)Sair');
readln(opcao);
end;
end.
Em MATRIZ
program diego2;
uses crt;
var
dados : array[1..5, 1..2] of string;
notas : array[1..5, 1..2] of real;
media : array[1..5] of real;
i, j : integer;
opcao : char;
m1, m2, m3, m4, m5 : real;
begin
clrscr;
opcao := 'g'; {Ignorar o Case}
while opcao <> 'f' do
begin
clrscr;
case (opcao) of
'a' : begin {Armazenar código e nome do aluno}
for i := 1 to 5 do
for j := 1 to 2 do
begin
writeln('Digite o codigo do ', i, ' aluno:');
writeln('Digite o nome do ', j, ' aluno:');
readln(dados[i,j]);
end;
end;
'b' : begin {Armazenar notas do aluno}
for i := 1 to 5 do
for j := 1 to 2 do
begin
writeln('Digite a nota P1 do ', i, ' aluno:');
writeln('Digite a nota P2 do ', j, ' aluno:');
readln(notas[i,j]);
end;
end;
'c' : begin {Mostrar as notas do aluno}
for i := 1 to 5 do
for j := 1 to 2 do
begin
writeln('As notas dos alunos foram ', notas[i,j]:2:2);
end;
readln;
end;
'd' : begin {Cálculo das médias e exibição}
m1 := (notas[1,1] + notas[1,2]) / 2;
m2 := (notas[2,1] + notas[2,2]) / 2;
m3 := (notas[3,1] + notas[3,2]) / 2;
m4 := (notas[4,1] + notas[4,2]) / 2;
m5 := (notas[5,1] + notas[5,2]) / 2;
writeln('A media do aluno 1 foi: ', m1:2:2);
writeln('A media do aluno 2 foi: ', m2:2:2);
writeln('A media do aluno 3 foi: ', m3:2:2);
writeln('A media do aluno 4 foi: ', m4:2:2);
writeln('A media do aluno 5 foi: ', m5:2:2);
readln;
end;
'e' : write( ' Codigo ',' ', ' Nome ',' ', ' P1 ',' ',' P2 ',' ', ' Medias ');
FALTA ESTA PARTE
end;
clrscr;
writeln('Digite a opcao desejada: ');
writeln('a)Cadastrar alunos');
writeln('b)Cadastrar notas');
writeln('c)Exibir notas');
writeln('d)Exibir medias');
writeln('e)Exibir os codigos, os nomes, notas e medias');
writeln('f)Sair');
readln(opcao);
end;
end.
Só que EM ambos não estou conseguindo fazer o item E. Fora que no de Matriz não aparece, no prompt, o cadastro dos alunos certo, ou seja:
Pergunta
diego_moicano
Amigos
Desde de ontem estou queimando a cabeça num exercício, ele pede o seguinte: dar um código (matricula), nome de 5 alunos, assim como suas notas (P1 e P2), e média final. O programa inicia com um menu,:
Toda vez que a opção é escolhida o menu deve sumir, por exemplo, escolheu a) o menu some, faz o cadastro, chegou no fim do cadastro, some esta opção e volta o menu. Não é permitido usar procedure, registro, functions, só pode usar if..then..else, case..of, vetor e matriz.O que játenho pronto é isto:
Em VETOR
Em MATRIZSó que EM ambos não estou conseguindo fazer o item E. Fora que no de Matriz não aparece, no prompt, o cadastro dos alunos certo, ou seja:
Agradeço qualquer tipo de ajuda!
Abraços :D
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.