Está dando algum erro quando calcula o menor e o maior aí a média tá dando errado.
programa
{
funcao inicio()
{
real n, menor=0, maior=0, media
caracter s
escreva ("Digite 'S' para começar :")
leia(s)
faca{
escreva("Número:")
leia(n)
se(n<=maior){
maior = menor
menor = n
}se(n>=menor){
menor = maior
maior = n
}
media = (maior + menor)/2
escreva ("Deseja continuar? 'Y' se sim e 'N' se não:")
leia (s)
}enquanto(s== 'y' ou s=='Y')
escreva("Número maior: ", maior," - ", "Número menor: ", menor)
escreva("\n\nMédia entre o menor e o maior: ", media)
}
}
Boa tarde, Andrielli.
Achei sua dúvida muito interessante. Porém aqui tiramos as dúvidas mais especificas. Essa necessita mais tempo. Sugiro que você coloque na parte de tarefas, fica melhor para tirar todas as duvidas e exemplificar. Abraços!!!
Olá, tudo bem?
Essa dúvida é um pouco complicada de explicar por aqui porque existem diversos pontos no código que interferem no funcionamento.
Porém, o principal é a lógica para definir qual valor vai ser o menor e o maior.
Neste trecho, está misturada a lógica relacionada ao menor e ao maior valor:
se(n<=maior){
maior = menor
menor = n
}se(n>=menor){
menor = maior
maior = n
}
Minha sugestão é separar as regras de maior e menor:
Exemplo: se o valor digitado (n) for maior que o valor da variável maior, a variável maior recebe o valor digitado (n);
se(n > maior){
maior = n
}
e se o valor digitado (n) for menor que o valor da variável menor, a variável menor recebe o valor digitado (n);
se(n < menor){
menor = n
}
Colocando desta forma fica mais simples, porém ainda não vai funcionar como esperado porque a variável menor é iniciada com 0, então de acordo com a lógica que mandei, a variavel menor vai continuar como 0 até o usuário digitar um número negativo.
Para que isso não ocorra, você pode alterar o programa para que quando o usuário digitar o primeiro número, o valor digitado seja colocado tanto na variável menor, quanto na variável maior:
se(primeiroValorDigitado){
maior = n
menor = n
primeiroValorDigitado = falso
}