-- Fläche eines Rechtecks mit Seiten a und b fläche a b = a * b -- Wert eines Bruchs mit Zähler z und Nenner n wert z n = z / n -- Anzahl der Fliesen zur Umrandung einer Terasse a*b rand a b = 2 * (a + b ) + 4 -- Minimum von x und y min x y | x <= y = x | otherwise = y -- Anzahl p der PKW's bei n Fahrzeugen mit r Rädern -- und Anzahl m der Motorräder p :: Int -> Int -> Int p n r | n<0 = error("die Anzahl der Fahrzeuge darf nicht negativ sein!") | r<0 = error("Die Anzahl der Räder darf nicht negativ sein!") | odd r = error("Die Anzahl der Räder muss gerade sein!") | r < 2*n = error("Es müssen mindestens doppelt soviele Räder wie Fahrzeuge da sein.") | r > 4*n = error("Die Zahl der Räder darf nicht mehr als das Vierfache der Fahrzeuge sein!") | otherwise = r `div` 2 - n m n r = n - p n r