comparison exercises/src/Exercise_1.hs @ 4:e02058a1afbd

week 1 homework
author Markus Kaiser <markus.kaiser@in.tum.de>
date Sun, 28 Oct 2012 15:31:36 +0100
parents e532198d58f4
children
comparison
equal deleted inserted replaced
3:ce6ac2bddc76 4:e02058a1afbd
113 113
114 {---------------------------------------------------------------------} 114 {---------------------------------------------------------------------}
115 {- Aufgabe H1.1 -} 115 {- Aufgabe H1.1 -}
116 {-WETT-} {- Diese Zeile nicht entfernen -} 116 {-WETT-} {- Diese Zeile nicht entfernen -}
117 sum_max_sq :: Integer -> Integer -> Integer -> Integer 117 sum_max_sq :: Integer -> Integer -> Integer -> Integer
118 sum_max_sq x y z = undefined 118 sum_max_sq x y z = max x y ^ 2 + min x y `max` z ^ 2
119
120 {-TTEW-} {- Diese Zeile nicht enfernen! -} 119 {-TTEW-} {- Diese Zeile nicht enfernen! -}
121 120
122 121
123 122
124 {---------------------------------------------------------------------} 123 {---------------------------------------------------------------------}
125 {- Aufgabe H1.2 -} 124 {- Aufgabe H1.2 -}
126
127 {- Teil 1 -} 125 {- Teil 1 -}
128 f :: Integer -> Integer 126 f :: Integer -> Integer
129 f n = undefined 127 f n
128 | n > 100 = n - 10
129 | otherwise = f (f (n + 11))
130
130 131
131 {- Teil 2 -} 132 {- Teil 2 -}
132 {- 133 {-
133 - Schreiben Sie ihre Lösungen in diesen Kommentar 134 - [(x, f x) | x <- [0,1,2,3,42,101,1001,-10]]
135 -
136 - ( x, f x)
137 - -----------
138 - ( 0, 91)
139 - ( 1, 91)
140 - ( 2, 91)
141 - ( 3, 91)
142 - ( 42, 91)
143 - ( 101, 91)
144 - (1001, 991)
145 - ( -10, 91)
134 -} 146 -}
147
135 148
136 {- Teil 3 -} 149 {- Teil 3 -}
137 f' :: Integer -> Integer 150 f' :: Integer -> Integer
138 f' n = undefined 151 f' n = if n > 101 then n - 10 else 91
139 152
140 {- Quickcheck test -} 153
154 {- Quickcheck test -}
155 prop_f n = f n == f' n
141 156
142 157
143 158
144 {---------------------------------------------------------------------} 159 {---------------------------------------------------------------------}
145 {- Aufgabe H1.3 -} 160 {- Aufgabe H1.3 -}
146
147 {- Teil 1 -} 161 {- Teil 1 -}
148 is_square' :: Integer -> Integer -> Bool 162 is_square' :: Integer -> Integer -> Bool
149 is_square' n m = undefined 163 is_square' n 0 = n == 0
164 is_square' n m
165 | m < 0 = False
166 | otherwise = m * m == n || is_square' n (m-1)
167
150 168
151 {- Teil 2 -} 169 {- Teil 2 -}
152 is_square :: Integer -> Bool 170 is_square :: Integer -> Bool
153 is_square n = undefined 171 is_square n
172 | n < 0 = False
173 | otherwise = is_square' n n