Vou ressuscitar esse post pq tenho uma dúvida ainda kkkkkk…
Nesse caso eu estou adicionando uma condicional para que ele funcione
se cont=1 entao
maior<-num
menor<-num
fimse
Mas será que eu consigo fazer sem essa condicional apenas usando o Senão?
Ex.
cont <- 1
S <- 0
Enquanto (cont <= 5) faça
Escreva ("Digite o ", cont, "º. valor: ")
Leia (N)
Se (N > maior) então
maior <- N
Senão
menor <- N
Fimse
S <- S + N
cont <- cont + 1
FimEnquanto
Escreval ("Terminei de contar!")
Escreval ("O resultado da soma dos valores é: ", S)
Escreval ("E o maior valor digitado foi: ", maior)
Escreva ("E o menor valor digitado foi: ", menor)
fimalgoritmo
Depende do cenário, a condicional existe porquê o número lido pode ser positivo ou negativo, e neste caso não existe uma forma de saber os valores estabelecendo um parâmetro base, por isso a primeira iteração do usuário quando ele fornece o primeiro número o consideramos como sendo o maior e menor já lido, à partir disso vai sendo atualizado com os valores subsequentes!
Por isso precisa ser da forma como foi estruturado, saca?
Agora, vamos supor que o algorítimo só permita serem lidos números inteiros positivos, neste caso os valores de maior e menor poderiam ser inicializados em zero e à partir daí irem sendo atualizados com os subsequentes, pois neste caso existe um critério mínimo.
Mesmo nas demais atualizações o senão não caberia, pois você só deve atualizar o menor caso o número lido seja menor que o atual valor que ele armazena, percebe que mesmo o número lido não sendo maior que o maior valor armazenado, isso não quer dizer que ele seja menor que menor armazenado.
Se você utilizou a estrutura condicional SE para identificar o maior número, basta finalizar a estrutura com o SENAO também. Segue o exemplo:
var
contador, N, S, maior, menor:inteiro
inicio
contador ← 1
S ← 0
Enquanto (contador <=5) faca
EscrevaL ("Digite o ", contador, "º número: ")
Leia (N)
Se (N > maior) entao
maior ← N
Senao
menor ← N
FimSE
S ← S+N
contador ← contador +1
FimEnquanto
EscrevaL (“A soma de todos os valores foi:”, S)
EscrevaL (“O maior valor digitado foi:”, maior)
EscrevaL (“O menor valor digitado foi:”, menor)
fimalgoritmo
Um bocadinho de noção e humildade precisa-se por aí.
Não podes vir ressuscitar tópicos antigos com soluções que não estão totalmente corretas e partir a insultar quem te corrige.
Como já alguém constatou, a tua solução só funciona quando os números estão por ordem crescente. Ora, para isso, não preciso de andar a comparar os números todos, o menor é sempre o primeiro e o maior é o último.
A solução para qualquer caso, já está aqui acima, colocada há quatro anos…
cara, de fato deu certo. Teria como você explicar o pq da forma em que desenvolvi não da certo ? veja:
var
n,s,maior,menor,inte,c:inteiro
inicio
Escreval ("Digite quantos números serão informados: ")
leia (inte)
s<-0
c<-1
repita
Escreval ("Digite o ",c,"° número: ")
leia (n)
se (n>maior) entao
maior<-n
fimse
se (n<menor) entao
menor<-n
fimse
s<-s+n
c<-c+1
ate (c>inte)
Escreval ("A soma entre os números é: ", s)
Escreval ("O número maior entre els é: ", maior)
Escreval ("O número menor entre eles é: ",menor)
então, para que o programa execute as condições de maior ou menor, é necessário que ele tenha um valor para ele comparar, certo ? eu fiz outro codigo, so que agora, sem estrura de repetição. Ele deu certo, mas será que não dava para melhorar ele, ou algo do tipo.
var
n1,n2,maior,menor:inteiro
inicio
Escreval ("Digite dois números: ")
leia (n1,n2)
maior<-0
menor <-n2
se (n1>maior) entao
maior <-n1
fimse
se (n2>maior) entao
maior<-n2
fimse
se (n1<menor) entao
menor<-n1
fimse
se (n2<menor) entao
menor<-n2
fimse
escreval (menor)
escreval (maior)