diff --git a/solutions/block4/helloWorld.hs b/solutions/block4/helloWorld.hs new file mode 100644 index 0000000..8f4dc97 --- /dev/null +++ b/solutions/block4/helloWorld.hs @@ -0,0 +1,4 @@ +import System.IO + +main :: IO() +main = putStrLn "Hello World" diff --git a/solutions/block4/listenverdreher.hs b/solutions/block4/listenverdreher.hs new file mode 100644 index 0000000..db5cc42 --- /dev/null +++ b/solutions/block4/listenverdreher.hs @@ -0,0 +1,15 @@ +import qualified Data.List (nub,sort, reverse) + +uniqueReverseList :: (Eq a, Ord a) => [a] -> [a] +uniqueReverseList list = Data.List.reverse (Data.List.sort (Data.List.nub list)) + + +main :: IO () +main = do + + let x = uniqueReverseList [2,1,13,1,27,71,59,43] == [71,59,43,27,13,2,1] + let y = uniqueReverseList "abcde" == "edcba" + + if x == y + then putStrLn "Funktion funktioniert" + else putStrLn "Funktion funktioniert nicht" diff --git a/solutions/block4/module.hs b/solutions/block4/module.hs new file mode 100644 index 0000000..1b75991 --- /dev/null +++ b/solutions/block4/module.hs @@ -0,0 +1,31 @@ +--Schreibe ein Modul welches Funktionen zur berechnung der Volumen von +--Kugel, Würfel, Pyramide und Zylinder enthällt + +--Grundgerüst +module Volumenberechnung +( kugel +, wuerfel +, pyramide +, zylinder +) where + + +--Funktionen + + +--Kugel +kugel :: (Floating a)=> a -> a +kugel radius = (4/3) * pi * radius ^ 3 + +--Würfel +wuerfel :: (Floating a) => a -> a +wuerfel kantenlaenge = kantenlaenge ^ 3 + +--Pyramide +pyramide :: (Floating a) => a -> a -> a -> a +pyramide laenge breite hoehe = 1/3 * laenge * breite * hoehe + + +--Zylinder +zylinder :: (Floating a) => a -> a -> a +zylinder radius hoehe = pi * radius ^ 2 * hoehe diff --git a/solutions/block4/oche.hs b/solutions/block4/oche.hs new file mode 100644 index 0000000..c81ebee --- /dev/null +++ b/solutions/block4/oche.hs @@ -0,0 +1,15 @@ +import System.IO + +reverseWords :: String -> String +--reverseWords = unwords . map reverse . words +--obige Zeile ist die kurzschreibweise mit der Punktnotation +reverseWords message = unwords (map reverse (words message)) + +main :: IO () +main = do + line <- getLine + if null line + then return () + else do + putStrLn $ reverseWords line + main \ No newline at end of file