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
e o segundo de ). - A comparação deve distinguir as três situações:
, e .
- Precisamos ler dois números (vou chamar o primeiro de
Passo 2
Ideia geral do algoritmo (em linguagem simples):
- Ler o primeiro número e guardar em
. - Ler o segundo número e guardar em
. - Comparar
com : - Se
, então imprimir “Primeiro número é maior”. - Senão, se
, 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.
- Se
Passo 3
Relembrando operador de comparação e o que cada condição significa:
- O operador
significa “maior que”. A condição é verdadeira quando o valor de é estritamente maior que o valor de . - O operador
significa “menor que”. A condição é equivalente a . - O operador
significa igualdade. A condição é verdadeira quando e 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, usamospara 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.:
floatoudouble). - 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 é
. - 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:
, . - Teste
: é verdadeiro → imprimir “Primeiro número é maior”.
- Entradas:
- Exemplo B:
- Entradas:
, . - Teste
: é falso. Teste : é verdadeiro → imprimir “Segundo número é maior”.
- Entradas:
- Exemplo C:
- Entradas:
, . - Teste
: falso. Teste : falso. Ramo “senão” → imprimir “Números iguais”.
- Entradas:
Passo 7
Observações finais e dica para a prova:
- No enunciado da prova, escreva claramente os passos: ler
, ler , comparar e , 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
Ler
SE ENTÃO
Escrever “Primeiro número é maior”
SENÃO SE ENTÃO
Escrever “Segundo número é maior”
SENÃO
Escrever “Números iguais”
FIM
Ler
Ler
SE
Escrever “Primeiro número é maior”
SENÃO SE
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;
}