You are on page 1of 4

1. Дано діагональ квадрата. Знайти периметр цього квадрата.

perimeter :: Float -> Float

perimeter d = 4 * (d / sqrt 2)

main :: IO ()

main = do

putStrLn "Enter the diagonal length:"

input <- getLine

let d = read input :: Float

let p = perimeter d

putStrLn $ "Perimeter: " ++ show p

2. Дано три сторони трикутника. Знайти периметр трикутника.

perimeter :: Float -> Float -> Float -> Float

perimeter a b c = a + b + c

main = do

let a = 5.0

b = 7.0

c = 9.0

print $ perimeter a b c
Домашнє завдання:

1. А і В або А і С або не С

module Main where

myFunction :: Bool -> Bool -> Bool -> Bool

myFunction a b c = (a && b) || (a && c) || (not c)

main :: IO ()

main = do

putStrLn $ show $ myFunction True False True

2.

module Main where

myFunction :: Double -> Double

myFunction x

| x <= -3 = 3 * x + 1
| x > -3 && x < 4 = x ** 2 - 1

| x >= 4 = x ** 3 + 1

main :: IO ()

main = do

putStrLn "Enter a value for x: "

input <- getLine

let x = read input :: Double

let y = myFunction x

putStrLn $ "y = " ++ show y

3. Дано тризначене число. Вивести на екран число, що утворено при перестановці його 1-ї та 3-ї
цифр. Наприклад, 123 -> 321.

module Main where

swapDigits :: Int -> Int

swapDigits n = read (third ++ second ++ first)

where

(first, second, third) = splitDigits n

splitDigits :: Int -> (String, String, String)

splitDigits n = (first, second, third)


where

digits = show n

first = take 1 digits

second = drop 1 (take 2 digits)

third = drop 2 digits

main :: IO ()

main = do

let n = 123

putStrLn $ "Original number: " ++ show n

let swapped = swapDigits n

putStrLn $ "Swapped number: " ++ show swapped

You might also like