finish UE1 A.1
This commit is contained in:
parent
02f308a5ea
commit
44f00d0e7e
@ -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:
|
||||||
|
...
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user