Ir ao conteúdo

Posts recomendados

Postado

Boa tarde a todos, como forma de treinamento eu desenvolvi essa calculador básica que calcula a media de 3 notas de 2 participantes e exibe as notas, a média e qual a maior média, e gostaria que avaliassem apontando os erros e o que poderia melhorar ou ate sugerir algo mais, simplesmente para fim didático, segue abaixo. 

Program calc_med ;
var
x,b: array [1..2 , 1..3] of real;
i,j:integer;
Begin
  writeln('Calculo da média de 3 notas de 2 participantes');
  for j:= 1 to 2 do
  for i:= 1 to 3 do
  begin
    write(i,'ª nota do ',j,'º participante: ');
    readln(x[j][i]);
  end;
  clrscr;
  
  for j:= 1 to 2 do
  begin
    b[j][i]:= (x[j][1] + x[j][2] + x[j][3])/3;            (!) 
  end;
  
  for j:= 1 to 2 do
  for i:= 1 to 3 do
  writeln(i,' ª nota do ',j,' º participante: ',x[j][i]);
  
  
  
  for j:= 1 to 2 do
  writeln('Média das notas do ',j,' º participante é: ',b[j][i]);
  
  if (b[1][i]) > (b[2][i]) then
  writeln('O primeiro participante ganhou o concurso!')
  else
  writeln('O segundo participante venceu o concurso!');
End.

Tive ate uma certa dificuldade para desenvolver, principalmente onde marquei com (!) pois não vi necessidade de adicionar o ''[i']'' na linha do calculo 

Citação

b[j][i']:= (x[j][1] + x[j][2] + x[j][3])/3;

já que não faria sentindo eu por o comando ''for i:= 1 to 3 do'' pois calcularia o mesmo resultado nas 3 repetições...

enfim, ainda me restam algumas dúvidas pois ainda não domino o assunto, se algum puder me da uma luz eu agradeço. :thumbsup:

 

ps: coloquei como [i'] pois no pré -visualizar não estava aparecendo.

  • Curtir 2
  • Membro VIP
Postado

Olá.

 

1#

Você precisa sempre manter o código indentado. Ex.:

Program calc_med ;
var
  x,b: array [1..2 , 1..3] of real;
  i,j:integer;
Begin
writeln('Calculo da média de 3 notas de 2 participantes');
for j:= 1 to 2 do
  for i:= 1 to 3 do
    begin
    write(i,'ª nota do ',j,'º participante: ');
    readln(x[j][i]);
    end;
clrscr;

for j:= 1 to 2 do
  begin
  b[j][i]:= (x[j][1] + x[j][2] + x[j][3])/3;            (!) 
  end;

for j:= 1 to 2 do
  for i:= 1 to 3 do
    writeln(i,' ª nota do ',j,' º participante: ',x[j][i]);

for j:= 1 to 2 do
  writeln('Média das notas do ',j,' º participante é: ',b[j][i]);

if (b[1][i]) > (b[2][i]) then
  writeln('O primeiro participante ganhou o concurso!')
else
  writeln('O segundo participante venceu o concurso!');
End.

 

 

 

2#

Alguns detalhes no código... para facilitar, vou postar um código "corrigido".

Program calc_med ;
uses
  CRT;
var
  //x,b: array [1..2 , 1..3] of real;
  notas :array [1..2,1..3] of real; //vetor das notas [participante,nota]
  medias:array [1..3]      of real; //vetor das médias
  i,j   :integer; //auxiliares para percorrer os vetores
BEGIN
//ler as notas dos participantes
writeln('Calculo da média de 3 notas de 2 participantes');
for i:= 1 to 2 do
  for j:= 1 to 3 do
    begin
    write(j,'ª nota do ',i,'º participante: ');
    readln(notas[i][j]);
    end;
ClrScr;

//exibe as notas dos participantes
for i:= 1 to 2 do
  for j:= 1 to 3 do
    writeln(j,' ª nota do ',j,' º participante: ',notas[i][j]:0:2);

//calcula a média
for i:= 1 to 2 do
  medias[i]:=(notas[i][1]+notas[i][2]+notas[i][3])/3;

//exibe as medias
for i:= 1 to 2 do
  writeln('Média do ',i,' º participante: ',medias[i]:0:2);

//verifica o vencedor
if medias[1] = medias[2] then
  writeln('Empatou')
else
  if medias[1] > medias[2] then
    writeln('O primeiro participante ganhou o concurso!')
  else
    writeln('O segundo participante venceu o concurso!');
readln;
END.

 

 

***

 

Daí, analise as diferenças. Veja se tem alguma parte que não entendeu ou acha que ficou errado ou ruim.

 

Qualquer dúvida é só postar.

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!