diff --git a/code/Aufgabe1.hs b/code/Aufgabe1.hs index e69de29..fd2314e 100644 --- a/code/Aufgabe1.hs +++ b/code/Aufgabe1.hs @@ -0,0 +1,71 @@ +module Angabe1 where + +{- 1. Vervollstaendigen Sie gemaess Angabentext! + 2. Vervollständigen Sie auch die vorgegebenen Kommentaranfänge! + 3. Loeschen Sie keine Deklarationen aus diesem Rahmenprogramm, auch nicht die Modulanweisug! + 4. Achten Sie darauf, dass `Gruppe' Leserechte fuer Ihre Abgabedatei hat! +-} + + +type Nat0 = Int +type Zeichenreihe = String +type Teilzeichenreihe = String +type IstTeilzeichenreihe = Bool +type Zerlegungszeuge = (Zeichenreihe,Zeichenreihe,Zeichenreihe) +type Zerlegungszeugen = [Zerlegungszeuge] + + +-- Aufgabe A.1 + +ist_tzr :: Zeichenreihe -> Teilzeichenreihe -> IstTeilzeichenreihe + +{- + Solution: + - if both strings are the same, True + - if the second string is empty, True + - if the second string is longer than the first, False + - otherwise, compare the first characters of both strings and call the function recursively again. + If the second string is contained in the first string, it will get equal to [] eventually and the function will return True. + If it is not, the first string will get smaller than the second eventually and the function will return False +-} + +ist_tzr x y + | y == x = True + | y == [] = True + | length y > length x = False + | otherwise = + if head x == head y then + ist_tzr (tail x) (tail y) + else + ist_tzr (tail x) y + + + +-- Aufgabe A.2 + +--tzr_zeuge :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeuge + +{- Knapp, aber gut nachvollziehbar geht tzr_zeuge folgendermassen vor: + ... +-} + +-- Aufgabe A.3 + +--tzr_zeugen :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeugen + +{- Knapp, aber gut nachvollziehbar geht tzr_zeugen folgendermassen vor: + ... +-} + + +-- Aufgabe A.4 + +--wieOft :: Zeichenreihe -> Teilzeichenreihe -> Nat0 + +{- Knapp, aber gut nachvollziehbar geht wieOft folgendermassen vor: + ... +-} + + + +