Crie um algoritmo que leia dois números, e indique qual é o maior entre eles. Se o primeiro número lido for o maior, escrever “Primeiro número é maior”, se o segundo número lido for o maior, escrever “Segundo número é maior”. Caso sejam iguais, escrever “Números iguais”.

Passo 1

O que o enunciado pede e quais são os dados fornecidos:
  • Pedem que criemos um algoritmo que leia dois números e indique qual é o maior entre eles.
  • Saídas exigidas (textos exatos a imprimir):
    • “Primeiro número é maior” quando o primeiro lido for maior que o segundo.
    • “Segundo número é maior” quando o segundo lido for maior que o primeiro.
    • “Números iguais” quando os dois forem iguais.
  • Informações relevantes dadas:
    • Precisamos ler dois números (vou chamar o primeiro de a e o segundo de b).
    • A comparação deve distinguir as três situações: a>b, b>a e a=b.

Passo 2

Ideia geral do algoritmo (em linguagem simples):
  • Ler o primeiro número e guardar em a.
  • Ler o segundo número e guardar em b.
  • Comparar a com b:
    • Se a>b, então imprimir “Primeiro número é maior”.
    • Senão, se b>a, então imprimir “Segundo número é maior”.
    • Senão (ou seja, se nenhuma das duas comparações anteriores for verdadeira), os números são iguais e imprimimos “Números iguais”.
      Explicando o porquê: ao comparar dois números existem apenas três possibilidades exclusivas e exaustivas — maior, menor ou igual — e cobrimos cada uma com um ramo da estrutura condicional.

Passo 3

Relembrando operador de comparação e o que cada condição significa:
  • O operador > significa “maior que”. A condição a>b é verdadeira quando o valor de a é estritamente maior que o valor de b.
  • O operador < significa “menor que”. A condição b>a é equivalente a a<b.
  • O operador = significa igualdade. A condição a=b é verdadeira quando a e b têm o mesmo valor numérico.
    Na prática, em linguagens de programação a igualdade é testada por um operador específico (ex.: == em C/Python). Aqui, conceitualmente, usamos a=b para dizer “são iguais”.

Passo 4

Detalhes de entrada (tipo de número) e tratamento de casos especiais:
  • É comum aceitar tanto inteiros quanto números reais. Portanto, ao implementar, converter a entrada para um tipo numérico que permita casas decimais (ex.: float ou double).
  • Casos especiais:
    • Números negativos funcionam normalmente com as mesmas comparações.
    • Na presença de entradas não numéricas, é bom validar; se a prova não exigir validação, pode-se assumir que a entrada será válida.
    • Para igualdade de números de ponto flutuante, em aplicações numéricas avançadas poderia ser usada uma tolerância (eps) para evitar problemas de precisão. Para este exercício simples, assumir igualdade direta é aceitável, salvo indicação contrária.

Passo 5

Complexidade e justificativa de corretude:
  • Complexidade temporal: O algoritmo faz um número constante de operações (leituras e até duas comparações), portanto é O(1).
  • Corretude: As três ramificações cobrem todas as possibilidades mutuamente exclusivas de comparação entre dois números, logo o algoritmo sempre produzirá a saída correta.

Passo 6

Exemplos de execução (passo a passo com números) para fixar a lógica:
  • Exemplo A:
    • Entradas: a=7, b=3.
    • Teste a>b: 7>3 é verdadeiro → imprimir “Primeiro número é maior”.
  • Exemplo B:
    • Entradas: a=-1, b=2.
    • Teste a>b: -1>2 é falso. Teste b>a: 2>-1 é verdadeiro → imprimir “Segundo número é maior”.
  • Exemplo C:
    • Entradas: a=4{,}5, b=4{,}5.
    • Teste a>b: falso. Teste b>a: falso. Ramo “senão” → imprimir “Números iguais”.

Passo 7

Observações finais e dica para a prova:
  • No enunciado da prova, escreva claramente os passos: ler a, ler b, comparar a e b, imprimir a mensagem correspondente.
  • Se a prova exigir pseudocódigo, use a forma estruturada com SE ... ENTÃO ... SENÃO SE ... SENÃO ... para ficar claro.
  • Se for implementado em linguagem real, lembre-se de converter a entrada para número (ex.: float/double) e de usar os operadores corretos de comparação da linguagem.

Resposta

Pseudocódigo:
Ler a
Ler b
SE a>b ENTÃO
Escrever “Primeiro número é maior”
SENÃO SE b>a ENTÃO
Escrever “Segundo número é maior”
SENÃO
Escrever “Números iguais”
FIM
Implementação em Python:
a = float(input())
b = float(input())
if a > b:
    print("Primeiro número é maior")
elif b > a:
    print("Segundo número é maior")
else:
    print("Números iguais")
Implementação em C:
#include <stdio.h>

int main(void) {
    double a, b;
    if (scanf("%lf %lf", &a, &b) != 2) return 0;
    if (a > b) {
        printf("Primeiro número é maior\n");
    } else if (b > a) {
        printf("Segundo número é maior\n");
    } else {
        printf("Números iguais\n");
    }
    return 0;
}

Exercícios relacionados