# HG changeset patch # User Markus Kaiser # Date 1351434696 -3600 # Node ID e02058a1afbd8ebbd0e681453bb4a94ce49a9a9d # Parent ce6ac2bddc76278f664e02c57eb75d9c3cde3bd7 week 1 homework diff -r ce6ac2bddc76 -r e02058a1afbd exercises/src/Exercise_1.hs --- a/exercises/src/Exercise_1.hs Wed Oct 24 19:33:46 2012 +0200 +++ b/exercises/src/Exercise_1.hs Sun Oct 28 15:31:36 2012 +0100 @@ -115,39 +115,59 @@ {- Aufgabe H1.1 -} {-WETT-} {- Diese Zeile nicht entfernen -} sum_max_sq :: Integer -> Integer -> Integer -> Integer -sum_max_sq x y z = undefined - +sum_max_sq x y z = max x y ^ 2 + min x y `max` z ^ 2 {-TTEW-} {- Diese Zeile nicht enfernen! -} {---------------------------------------------------------------------} {- Aufgabe H1.2 -} - {- Teil 1 -} f :: Integer -> Integer -f n = undefined +f n + | n > 100 = n - 10 + | otherwise = f (f (n + 11)) + {- Teil 2 -} {- - - Schreiben Sie ihre Lösungen in diesen Kommentar + - [(x, f x) | x <- [0,1,2,3,42,101,1001,-10]] + - + - ( x, f x) + - ----------- + - ( 0, 91) + - ( 1, 91) + - ( 2, 91) + - ( 3, 91) + - ( 42, 91) + - ( 101, 91) + - (1001, 991) + - ( -10, 91) -} + {- Teil 3 -} f' :: Integer -> Integer -f' n = undefined +f' n = if n > 101 then n - 10 else 91 + -{- Quickcheck test -} +{- Quickcheck test -} +prop_f n = f n == f' n {---------------------------------------------------------------------} {- Aufgabe H1.3 -} - {- Teil 1 -} is_square' :: Integer -> Integer -> Bool -is_square' n m = undefined +is_square' n 0 = n == 0 +is_square' n m + | m < 0 = False + | otherwise = m * m == n || is_square' n (m-1) + {- Teil 2 -} is_square :: Integer -> Bool -is_square n = undefined +is_square n + | n < 0 = False + | otherwise = is_square' n n