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!!
Se contador = 1 entao
maior <- reall
menor <- reall
Senao
Se reall > maior entao
maior <- reall
FimSe
Se reall < menor entao
menor <- reall
FimSe
FimSe
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
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!
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.