Ir ao conteúdo
  • Cadastre-se

Vetor com estrutura While dando resultado sempre nulo


Posts recomendados

 

Galera estou aprendendo vetores em Pasca e utilizei o mesmo problema com as três estruturas de repetições: While,For e Repeat.

Usando o Repeat e o For o vetor MEDIA recebe um valor, porém ao usar o While o vetor MEDIA sempre recebe o valor de 0.

Aqui esta o algoritmo com as três estruturas, vale lembrar que com a While deixei incompleto pois a MEDIA não funciona:

var sala: array[1..6] of integer;i,soma: integer;media:real;//Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas (REPEAT)Beginsoma:=0;i:=1;repeatwriteln('Informe o numero de alunos da sala ',i);readln(sala[i]);soma:= soma + sala[i];i:= i+1;until (i>5);media:= soma/5;i:=1;repeatwriteln(' A sala ',i,' possui ', sala[i] - media:6:2, ' alunos acima da media');i:=i+1;readln;until (i>5); End.

-----------------------------

var sala: array[1..6] of integer;i,soma: integer;media: real;//Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas (FOR) Beginsoma:=0;for i:=1 to 5 dobeginwriteln('Informe o numero de alunos da sala ',i);readln(sala[i]);soma:= soma + sala[i];end;media:= soma/5;for i:=1 to 5 dobeginwriteln(' A sala ',i,' possui ', sala[i] - media:6:2, ' alunos acima da media');readln;end;end.

--------------------------------------------

var sala: array[1..6] of integer;i,soma: integer;media: real;// Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas// porém o calculo da média sempre resulta em zero usando o WHILEBeginsoma:=0;i:=1;while (i<=5) dobeginwriteln('Informe o numero de alunos da sala ',i);readln(sala[i]);i:=i+1;soma:= soma + sala[i];media:= soma/5;end;writeln(media);End.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Isaac Maciel

Imagino que esses programas estejam incompletos, correto?

Pois no primeiro código ele pede os alunos da sala e responde com uma média que não tem nada a ver, já que ele não pediu nenhuma nota.


Pra facilitar a organização do tópico, coloque os códigos dentro da TAG de código (é um botão aí no menu com < >).

Link para o comentário
Compartilhar em outros sites

Na verdade não é que esteja incompleto.

Ele pede pra o usuário colocar a quantidade de alunos em 5 salas, e depois o próprio soft  calcula os alunos acima da média...
(Estou resolvendo exercício do Livro de Lógica de Programação, e surgiu essa duvida por causa do WHILE que não consegue efetuar o cálculo)

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Program Pzim ;var sala: array[1..6] of integer;i,soma: integer;media: real;//Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas (FOR) Begin	soma:=0;	i:=1;	while (i <= 5) do	begin		writeln('Informe o numero de alunos da sala ',i);		readln(sala[i]);		soma:= soma + sala[i];		i:=i+1;	end;	media:= soma/5;		i:=1;		while (i <= 5) do	begin		writeln(' A sala ',i,' possui ', sala[i] - media:6:2, ' alunos acima da media');		readln;		i:=i+1;	end;end.

Repare que reiniciei a variável "i" antes do segundo while. Senão ela entraria valendo 5 e não mostraria nada.

Também deixei o incremento antes do "End".

 

Obs: Indentado é bem mais fácil de ler.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.
 

porém ao usar o While o vetor MEDIA sempre recebe o valor de 0.

Isso está acontecendo, pois está incrimentando o "i" antes da soma, ou seja, está lendo um valor, mas está somando outro.
 

writeln('Informe o numero de alunos da sala ',i);readln(sala[i]);i:=i+1;  //<--essa incrementação não pode ficar entre a leitura e a soma... "i é diferente de i+1"soma:= soma + sala[i];media:= soma/5;

Obs.1: o cálculo da média deve ser feito fora do laço, pois se tiver dentro, vai ficar calculando a cada loop.

Obs.2: você precisa revisar seu código... tem alguns detalhes que precisam ser ajustados., veja o que você comentou:

 

//Algoritmo para captar numero de alunos de cada sala e depois descobrir quantos alunos estão acima da media geral das salas

Então, acho que deve ser algo mais ou menos assim: primeiro você tem que saber a quantidade de alunos por sala, depois coletar "algo" desss alunos e calular a média geral desse "algo'. Depois exibir quantos alunos, por sala, estão acima desse média geral do "algo".

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!