Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Exercício de lógica com pseudocódigo

Olá, pessoal, tudo bem?

Estou estudando lógica de programação com pseudocódigo no Visualg e tenho o seguinte problema:

Mostre a soma dos valores digitados e o menor valor entre eles.

Então, se eu digitar, por exemplo: 2 3 4 Soma: 9 Menor valor entre eles: 2

Acontece que pelo pseudocódigo que digito, o menor valor sempre dá ZERO. Alguém consegue me ajudar a entender o erro, por favor?

Algoritmo "contadornumerico"

Var
   contador, numero, soma, menorNumero: Inteiro

Inicio
      contador <- 1
      soma <- 0
      Enquanto (contador <= 3) faça
         Escreval("Digite um número: ")
         Leia(numero)
         Se(numero < menorNumero) então
         menorNumero <- numero
         FimSe
         soma <- soma + numero
         contador <- contador + 1
      FimEnquanto
      Escreval("A soma dos valores é de ", soma)
      Escreval("O menor valor digitado é ", menorNumero)
Fimalgoritmo

Muito obrigado!

2 respostas
solução!

Oii, Juan!

No seu pseudocódigo, a variável "menorNumero" está sendo comparada com "numero", mas como "menorNumero" não tem um valor inicial, ela é considerada como zero (que é o valor padrão para uma variável inteira não inicializada).

Portanto, quando você insere qualquer número, ele sempre será maior que zero, e a condição "Se(numero < menorNumero)" nunca será verdadeira.

Para corrigir isso, você pode inicializar a variável "menorNumero" com um valor alto, para garantir que o primeiro número inserido seja menor que "menorNumero". Aqui está o pseudocódigo corrigido:

Algoritmo "contadornumerico"

Var
   contador, numero, soma, menorNumero: Inteiro

Inicio
      contador <- 1
      soma <- 0
      menorNumero <- 999999 // Inicialize a variável com um valor alto
      Enquanto (contador <= 3) faça
         Escreval("Digite um número: ")
         Leia(numero)
         Se(numero < menorNumero) então
         menorNumero <- numero
         FimSe
         soma <- soma + numero
         contador <- contador + 1
      FimEnquanto
      Escreval("A soma dos valores é de ", soma)
      Escreval("O menor valor digitado é ", menorNumero)
Fimalgoritmo

Espero ter ajudado e bons estudos!

Muito obrigado pela resposta, Vinicius!