This repository has been archived on 2021-11-27. You can view files and clone it, but cannot push or open issues or pull requests.
fprog2021WS/code/Aufgabe1.hs
2021-10-15 16:11:06 +02:00

72 lines
1.8 KiB
Haskell

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:
...
-}