Estrutura Se no visualg

Oi gente!
Então, eu comecei faz pouquíssimo tempo a estudar algoritmos pelo canal do professor Gustavo Guanabara. Estou tendo dificuldade para mostrar o menor valor digitado pelo usuário. O programa repete 4x, quando coloco o primeiro valor sendo o menor, no final ele mostra 0, ele só me mostra o menor valor quando colocado a partir da terceira repetição. alguém pode me ajudar? queria saber como escrever esse código da maneira correta!!

eu enviei uma imagem para vocês verem o código e também o programa. Obrigada desde já!

Tenta fazer algo nesse sentido:

Se contador = 1 entao
    	maior <- reall
    	menor <- reall    	
Senao
    Se reall > maior entao
    	maior <- reall
    FimSe	

    Se reall < menor entao
    	menor <- reall
    FimSe
FimSe

Nenhuma das duas formas funcionaram :sob:

Eu não entendi muito bem, o seu programa serve para mostrar o menor valor inputado pelo usuário, é isso?

sim! quero mostrar o maior e menor valor que o usuário digitou

Acho que entendi. O primeiro valor que “menor” recebe é zero (inicialização). Comece com um número alto. Em Java, se faz assim:

public static void main(String[] args) {
int menorNumero = 1000;
int maiorNumero = 0;
Scanner scan = new Scanner(System.in);
    for (int i = 0; i < 4; i++) {
      int foo =  scan.nextInt();

      if(foo > maiorNumero){
          maiorNumero = foo;
      }
      if (foo < menorNumero){
          menorNumero = foo;
      }

    }
    System.out.println("O maior valor é:" + maiorNumero);
    System.out.println("O menor valor é:" + menorNumero);
}

Portanto, a lógica é:
Dado a varíavel menor (iniciando em 9999), tudo que for menor que ela terá seu valor atribuido a ela passando assim a ser o menor número. A lógica se aplica para o maior, também.

Logo, imagine que entrarei com os números 10, 20, 30 e 40. Funcionará assim:

1º MOMENTO: maiorNumero = 0, menorNumero = 1000
entrada:10 (MAIOR que maiorNumero), (MENOR que menorNumero) 2 CONDIÇÕES VERDADEIRAS

2ºMOMENTO: maiorNumero = 10, menorNumero = 10
entrada: 20 (MAIOR que maiorNumero), (MAIOR que menorNumero) 1 CONDIÇÃO VERDADEIRA

3ºMOMENTO: maiorNumero = 20, menorNumero = 10
entrada: 30 (MAIOR que maiorNumero), (MAIOR que menorNumero) 1 CONDIÇÃO VERDADEIRA

4ºMOMENTO: maiorNumero = 30, menorNumero = 10
entrada: 40 (MAIOR que maiorNumero), (MAIOR que menorNumero) 1 CONDIÇÃO VERDADEIRA

SAÍDA FINAL:
maiorNumero = 40
menorNumero = 10

Espero que dê pra esclarecer :slight_smile:

1 curtida

Mas não são duas formas, eu coloquei uma única forma!
Como você implementou?

Eu vim perceber depois que era um código só! olhei muito rápido, deveria ter parado pra entender ele antes de “jogar” no visualg, o resultado foi o mesmo. muuuuito obrigada mesmo assim!

Eu testei o código aqui e funciona!

Como você implementou o algoritmo?

estou escrevendo algo errado ?

Essa parte aqui está no lugar errado:

contador <- contador + 1

Percebe que se incrementar o contador antes do teste lógico o mesmo não vai ser alimentado como deveria, esse trecho do código tem que ficar após o teste lógico, antes do fim do laço de repetição.

1 curtida