Informática, perguntado por Luiz46n, 1 ano atrás

VISUALG, VETORES
tenho uma duvida, não consigo terminar esse algoritmo, alguém pode me ajudar?

Faça um algoritmo para ler no máximo 30 números reais informados pelo usuário, e exibir depois a média destes números. Considere que o valor -99 encerra a entrada dos dados. Exemplo: se eu digitar somente 5 vetores e não os 30, e pra ele encerrar a entrada de dados ate o 5º vetor, e pra isso e preciso digitar o número= -99

Se quiser seguir minha logica:

var

// X= VALOR, N= NUMEROS, S= SOMA, M= MEDIA.
x: inteiro
n: vetor [0..29] de real
s, m: real

inicio

enquanto x<=29 faca
escreva ("Digite um numero: ")
leia (n[x])
s<-s+n[x]
x<-x+1
m<-s/30
fimenquanto

Soluções para a tarefa

Respondido por cledersonbc
3
Vou comentar sobre o seu código. Você utilizou a estrutura de repetição correta, o enquanto, porque é incerto a quantidade de vezes que esse conjunto de instrução precisa ser repetido.

Mas deve haver uma condição a mais no seu laço, porque ele vai se repetir se a variável incremento for menor ou igual a 29 E se x for diferente de -99.

Um outro ponto é não armazenar diretamente o valor recebido no vetor, porque dessa forma, se o usuário digitar -99 então o -99 será armazenado sendo que ele não é um valor e sim código. O vetor também é desnecessário, já que o enunciado não pede para exibir os valores informados.

algoritmo "ExBrainly"

var
  i: inteiro //para incremento
  media, x: real //média e valor lido
inicio
      enquanto (i <= 29) E (x <> -99) faca
               escreva("Digite um numero: ")
               leia(x)
              
               se (x <> -99) entao //condição para não armazenar o -99
                  media <- media + x
                  i <- i + 1
               fimse
      fimenquanto
      media <- media/i
      escreva("Media dos valores: ", media)
fimalgoritmo


cledersonbc: Se tiver dúvidas, basta executar o algoritmo no Visualg pressionando o F8.
Perguntas interessantes