Questão 1: Desenvolva um programa em Haskell que leia do teclado o valor do raio de um círculo e imprima seu diâmetro, perímetro e área. Seu programa deve definir uma função para o cálculo do diâmetro, outra para o cálculo do perímetro e uma terceira para o cálculo da área:
Exemplo:
Entre com o valor do raio do circulo: 10
Diametro: 20
Perímetro: 62.83
Area: 314.15

Passo 1

Vamos começar entendendo o enunciado: o programa em Haskell precisa ler do teclado um valor de raio de um círculo e imprimir o diâmetro, o perímetro e a área. Devemos definir três funções separadas para cada um desses cálculos, além de montar a parte de IO para ler e imprimir valores.

Passo 2

Antes de codificar, relembramos as fórmulas da geometria do círculo. Para um raio r temos:
D = 2r
P = 2pi r
A = pi r^2

Passo 3

Agora vamos traduzir essas fórmulas em funções Haskell, começando pelas assinaturas de tipo (usando Double para lidar com ponto flutuante) e depois as definições:

Passo 4

Por fim, implementamos a função main para interagir com o usuário: ler o raio com getLine, converter para Double usando read, chamar nossas funções e imprimir cada resultado formatado com Text.Printf.

Resposta

import Text.Printf
diametro :: Double -> Double
diametro r = 2 * r
perimetro :: Double -> Double
perimetro r = 2 * pi * r
area :: Double -> Double
area r = pi * r * r
main :: IO ()
main = do
putStr "Entre com o valor do raio do circulo: "
input <- getLine
let r = read input :: Double
printf “Diametro: %.0f\n” (diametro r)
printf “Perímetro: %.2f\n” (perimetro r)
printf “Area: %.2f\n” (area r)

Exercícios relacionados