Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Avaliação do algorítimo em pascal


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

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