Faça um programa que pergunte ao usuário a quantidade de números ( N ) que ele deseja digitar. Em seguida, o usuário deverá digitar esses N números, que podem ou não ter casas decimais. Finalmente, seu programa deverá imprimir na tela o maior e o menor valor dentre os números digitados. Obs: Utilize no máximo cinco variáveis para resolver esse exercício e não utilize array/vetor.

Passo 1

O enunciado pede que eu escreva um programa que:
  • Pergunte ao usuário a quantidade de números N que ele deseja digitar.
  • Leia esses N números (podem ter casas decimais).
  • Imprima na tela o maior e o menor valor dentre os números digitados.
Informações relevantes fornecidas:
  • Os números podem ser reais (com casas decimais).
  • Deve ser usada no máximo cinco variáveis e não é permitido usar array/vetor.
  • Presume-se que a questão está bem formulada (ou seja, faz sentido pedir N números). Porém, podemos considerar casos limites como N=1 ou N\le 0 e tratá-los.
As perguntas que o programa precisa responder ao final:
  • Qual é o maior valor digitado?
  • Qual é o menor valor digitado?

Passo 2

Escolha do método (resumo do raciocínio): vamos fazer uma varredura única (uma única passagem) sobre os N números. Esse é o método mais simples e eficiente: enquanto lemos cada número, comparamos com o maior e o menor atuais e atualizamos quando necessário. Isso usa tempo linear O(N) e espaço constante O(1) (nenhum vetor).
Como vamos respeitar a restrição de no máximo cinco variáveis? Vamos usar exatamente cinco variáveis:
  • N — quantidade de números a ler.
  • i — contador de iteração (laço).
  • x — número lido atualmente.
  • maior — maior valor encontrado até agora.
  • menor — menor valor encontrado até agora.
Nenhuma outra variável é necessária. Não usamos arrays.

Passo 3

Como inicializar maior e menor sem usar valores sentinela (como infinito) ou variáveis extras? Estratégia padrão e simples: ler o primeiro número fora do laço e atribuí-lo tanto a maior quanto a menor. A partir do segundo número em diante fazemos as comparações. Isso evita sentinelas e mantém as cinco variáveis.
Detalhes práticos de leitura:
  • Primeiro lemos N (inteiro). Se N\le 0 podemos exibir uma mensagem de erro e terminar, ou pedir novamente; aqui vamos tratar imprimindo uma mensagem e saindo porque não há números para determinar maior/menor.
  • Depois lemos o primeiro número e inicializamos maior = menor = x.
  • Para os N-1 números restantes fazemos um laço que, a cada iteração:
    • x,
    • se x > maior então maior \leftarrow x,
    • se x < menor então menor \leftarrow x.

Passo 4

Explicando passo a passo a lógica das comparações (a “aula” curta):
  • Comparar números: quando escrevemos x > maior estamos perguntando “o novo número é maior que o maior conhecido até agora?”. Se sim, o novo número passa a ser o maior.
  • Analogamente, x < menor pergunta se o novo número é menor que o menor conhecido.
  • Por que isso garante que ao final maior e menor sejam corretos? Porque toda vez que aparece um número maior que todos os anteriores atualizamos maior; se não aparecer, o maior permanece aquele que realmente era o máximo. Mesmo raciocínio para o mínimo.
  • Exemplo rápido: se N=3 e os números forem 2{,}5, -1 e 4. Leio primeiro 2{,}5 maior=2{,}5, menor=2{,}5. Leio -1: -1<menor então menor=-1. Leio 4: 4>maior então maior=4. Resultado: maior =4, menor =-1, correto.

Passo 5

Tratamento de casos especiais:
  • Se N=1: o único número será simultaneamente maior e menor. O programa deve imprimir o mesmo número nas duas saídas.
  • Se o usuário digitar valores negativos ou com casa decimal, usamos conversão para ponto flutuante (por exemplo, em Python usamos float()) para manter precisão de números reais.
  • Se N\le 0: o programa não consegue determinar maior/menor; vamos detectar isso logo após a leitura de N e informar ao usuário.

Passo 6

Implementação concreta (explicada para poder copiar na prova). A seguir está um código em Python que usa exatamente as cinco variáveis mencionadas e não usa arrays. Comentários rápidos dentro do código explicam cada linha; na prova, você pode escrever pseudocódigo equivalente se preferir outra linguagem.

Passo 7

Código (implementação final). Copie/execute este código; ele pede entradas do usuário e ao final imprime o maior e o menor valor:
N = int(input("Quantos números você vai digitar? "))
if N <= 0:
    print("Quantidade inválida. Deve ser um inteiro positivo.")
else:
    x = float(input("Digite o número 1: "))
    maior = x
    menor = x
    i = 2
    while i <= N:
        x = float(input(f"Digite o número {i}: "))
        if x > maior:
            maior = x
        if x < menor:
            menor = x
        i += 1
    print("Maior:", maior)
    print("Menor:", menor)

Resposta

N = int(input("Quantos números você vai digitar? "))
if N <= 0:
    print("Quantidade inválida. Deve ser um inteiro positivo.")
else:
    x = float(input("Digite o número 1: "))
    maior = x
    menor = x
    i = 2
    while i <= N:
        x = float(input(f"Digite o número {i}: "))
        if x > maior:
            maior = x
        if x < menor:
            menor = x
        i += 1
    print("Maior:", maior)
    print("Menor:", menor)

Exercícios relacionados