(De Oliveira; Manzano, 2004) Desenvolva um programa que receba um valor de temperatura em graus Fahrenheit (
) e o converta para graus Celsius (
). Como resultado, mostre a seguinte mensagem: "
equivalem a
.". A fórmula de conversão é:
celsius
.
celsius
Passo 1
O que o enunciado pede e quais informações ele dá:
- Pedem para desenvolver um programa que receba um valor de temperatura em graus Fahrenheit e converta para graus Celsius.
- Entrada: um valor numérico que representa a temperatura em graus Fahrenheit (vou chamar essa variável de
). - Saída exigida: uma mensagem no formato exatamente assim (aspas só para indicar o texto): “XX°F equivalem a YY°C.” onde
é o valor em Fahrenheit lido e é o valor convertido para Celsius. - A fórmula fornecida no enunciado para a conversão é:
Passo 2
Entendendo a fórmula e cada variável (aula curta):
- A variável
é a temperatura que o programa vai receber como entrada (em graus Fahrenheit). - A variável
é o resultado que queremos calcular (em graus Celsius). - A fórmula
significa, passo a passo:
- Subtrair
de : isso ajusta a origem das escalas (porque é o ponto de congelamento da água). - Multiplicar o resultado por
: parte do fator de escala entre Fahrenheit e Celsius. - Dividir por
: o outro parte do fator de escala. Juntos convertem a diferença de unidade entre as duas escalas.
- Em linguagem simples: primeiro desloca-se a escala tirando
, depois aplica-se o fator de escala .
Passo 3
Algoritmo detalhado que o programa deve seguir (passo a passo para implementar na prova):
- Ler um número real e armazenar em
. - Calcular a diferença
. - Multiplicar por
: . - Dividir por
para obter . - Formatar e imprimir a mensagem no formato: “XX°F equivalem a YY°C.” onde
é o valor lido e é o valor calculado.
Observações práticas para a prova:
- Use tipo numérico com parte decimal (p.ex. ponto flutuante) para não perder precisão quando a entrada não for inteiro.
- Se quiser apresentar um resultado “limpo”, pode arredondar
com uma casa decimal ou com zero casas se for inteiro — mas o enunciado não exige arredondamento específico.
Passo 4
Exemplo numérico passo a passo (para fixar a ideia):
- Suponha
. Vamos converter:
Resultado:
equivalem a
.
Esse exemplo mostra que basta seguir a ordem operação por operação (subtração, multiplicação, divisão).
Esse exemplo mostra que basta seguir a ordem operação por operação (subtração, multiplicação, divisão).
Passo 5
Dicas de implementação e cuidados:
- Se implementar em linguagem que lê só texto, lembre de converter a entrada para número (p.ex. em Python usar
). - Trate entradas inválidas (opcional na prova, mas bom na prática).
- Na hora de imprimir, use o símbolo de grau
(em código frequentemente usado como ‘°’) e a letra F/C conforme pedido. - Decida como quer formatar: se quiser preservar casas decimais, use formatação como duas casas; se quiser mostrar inteiro quando for inteiro, verifique se o valor é inteiro e converta para inteiro na impressão.
Passo 6
Programa de exemplo (uma implementação simples em Python). Este código lê um valor em Fahrenheit, converte usando exatamente a fórmula dada e imprime a mensagem no formato pedido:
def main():
try:
fahrenheit = float(input("Digite a temperatura em graus Fahrenheit: "))
except ValueError:
print("Entrada inválida. Digite um número.")
return
celsius = (5 * (fahrenheit - 32)) / 9
# Impressão: se ambos forem inteiros "exatos", mostra sem casas; caso contrário, mostra com 2 casas
if fahrenheit.is_integer() and celsius.is_integer():
print(f"{int(fahrenheit)}°F equivalem a {int(celsius)}°C.")
else:
print(f"{fahrenheit:.2f}°F equivalem a {celsius:.2f}°C.")
if __name__ == "__main__":
main()
Resposta
def main():
try:
fahrenheit = float(input("Digite a temperatura em graus Fahrenheit: "))
except ValueError:
print("Entrada inválida. Digite um número.")
return
celsius = (5 * (fahrenheit - 32)) / 9
if fahrenheit.is_integer() and celsius.is_integer():
print(f"{int(fahrenheit)}°F equivalem a {int(celsius)}°C.")
else:
print(f"{fahrenheit:.2f}°F equivalem a {celsius:.2f}°C.")
if __name__ == "__main__":
main()