Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
LucasVMonteiro

Pascal Avaliação do algorítimo em pascal

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

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.

Editado por Simon Viegas
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×