Temperatura

Temperatura

Exercício de aprendizagem

Introdução

Os Integer guardam qualquer número, por maior que seja, até o limite da memória da sua máquina, enquanto o Int corresponde ao conjunto dos números inteiros positivos e negativos que podem ser expressos em 32 ou 64 bits (com garantia de pelo menos -2^29 a 2^29).

O Float corresponde ao conjunto dos números reais, limitado pela precisão do computador. As operações definidas sobre números geralmente funcionam com um tipo ou com o outro, mas não com os dois.

As funções para converter entre Float e Integer incluem, entre outras, toFloat, que converte Int/Integer para Float, e ceiling, que converte um Float para um Int.

A conversão de um tipo inteiro (Int ou Integer) para qualquer outro tipo numérico é feita com a função fromIntegral. O tipo de destino é inferido automaticamente. Por exemplo:

n :: Integer
n = 6
x :: Float
x = fromIntegral n      --> x = 6.0

m :: Int
m = 7
y :: Double
y = fromIntegral m      --> y = 7.0

Instruções

Você faz parte de uma organização de bombeiros formada por voluntários internacionais. Por causa da natureza internacional da equipe, um tempo valioso foi perdido nas últimas ocorrências convertendo entre Fahrenheit e Celsius enquanto estimavam a temperatura dentro dos prédios em chamas. Para poupar tempo, e pessoas, você decide criar um programa que converta automaticamente entre Fahrenheit e Celsius para a sua equipe internacional.

1. Converta Fahrenheit para Celsius

Implemente a função tempToC para converter uma temperatura Integer em Fahrenheit para o Float equivalente em Celsius, arredondado para o centésimo mais próximo. A temperatura em graus Celsius é definida como: T(°C) = (T(°F) - 32) / 1.8.

> tempToC 32
0.00

2. Converta Celsius para Fahrenheit

Implemente a função tempToF para converter uma temperatura Float em Celsius para o equivalente em Fahrenheit. Por questões de segurança, arredonde para cima o resultado para o Integer imediatamente superior. A temperatura em graus Fahrenheit é definida como: T(°F) = T(°C) × 1.8 + 32.

> tempToF 4
40
Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Temperatura?

Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.