Zum Hauptinhalt
Startseite der TUB
TU Berlin
ISIS
Mensa
Moses
Matrix Chat
Bibliothek
TU Sport
Campusplan
TU-Mail
Studien-beratung
Mathe-Brückenkurs
Vorlesungs-verzeichnis
Videochat
tubCloud
GitLab
Chatbot Alex
Mehr anzeigen
Copyright by InnoCampus
README
Impressum
Kontakt
Hilfe
Covid-19-Info
Deutsch (de)
Weikun Ye
[WS 20/21] Softwaretechnik und Programmierparadigmen
. Meine Startseite Meine Kurse [WS 20/21] SWTPP Tests Test 2A (17.03.2021)
Frage 10
Antwort gespeichert
Erreichbare Punkte: 5,0
Frage markieren
Fragetext
Eine Konditorei möchte auf ihrer Webseite die Bestellung von Torten nach Kundenwünschen ermöglichen. Kunden sollen die Anzahl der Schichten und für jede Schicht eine Zutat bestimmen können.
Gegeben sind folgende Datentypen. Hilfsfunktionen sind erlaubt.
data Torte = Schicht Zutat Torte | Boden
deriving (Eq, Show)
data Zutat = Erdbeeren | Schokoraspeln | Kirschen | Mandeln | Pistazien
| Sahne | Zitronenpudding | Buttercreme
deriving (Eq, Show)
Translation Aid
A pastry shop wants to allow their customers to order custom layered cakes (Torten) on their website. Customers should be able to specify the number of layers (Schichten) and an ingredient (Zutat) for each layer.
Consider the given data types. Helper functions are allowed.
a) Implementieren Sie die Funktion zutatenToTorte, die aus einer Liste von Zutaten eine Torte erstellt. Die gegebenen Zutaten sind von oben nach unten gelistet. Der Boden zählt nicht als Zutat.
Signatur: zutatenToTorte :: [Zutat] -> Torte
Translation Aid
Implement the function zutatenToTorte, converting a list of ingredients to a cake. The given ingredients are listed from top to bottom. The cake base (Boden) does not count as an ingredient.
b) Da Torten beliebiger Höhe nicht möglich sind, brauchen wir eine Funktion tortenhoeheBegrenzen, die aus einer gegebenen Torte und einer Zahl
n
≥
0
eine neue Torte mit den
n
oberen Schichten der gegebenen Torte erzeugt. Hat die gebebene Torte weniger als
n
Schichten, so wird diese nicht verändert. Der Boden zählt nicht als eine Schichte.
Signatur: tortenhoeheBegrenzen :: Int -> Torte -> Torte
Translation Aid
Since cakes can only have so many layers, we need a function tortenhoeheBegrenzen. Given a cake and a number
n
≥
0
, it produces a new cake with the
n
upper layers of the given cake. If the given cake has less than
n
layers, it is not changed. The cake base (Boden) does not count as a layer.
c) Kunden sollen gewarnt werden, falls ihre Torten möglicherweise nicht lecker sind. Implementieren Sie die Funktion istLecker, um dies zu prüfen. Leckere Torten sind nur mäßig süß und sind durch herbe oder säuerliche Zutaten ausgeglichen. Dafür müssen sie immer eine herbe oder säuerliche Schicht direkt auf dem Boden haben. Außerdem muss sich jede süße Schicht über einer herben oder säuerlichen Schicht befinden. Sie dürfen die Funktionen istSuess :: Zutat -> Bool, istHerb :: Zutat -> Bool und istSaeuerlich :: Zutat -> Bool verwenden.
Signatur: istLecker :: Torte -> Bool
Translation Aid
Customers should be warned when their cakes are possibly not delicious. Implement the function istLecker to check this. Delicious cakes must have not be too sweet, being balanced by bitter (“herb”) or sour (“säuerlich”) notes. Thus, they must have one bitter or sour layer directly above the cake base (“Boden”). Moreover, every sweet layer must be above a bitter or sour layer. You may use the functions istSuess :: Zutat -> Bool, istHerb :: Zutat -> Bool and istSaeuerlich :: Zutat -> Bool.
— a)
zutatenToTorte zs =
— b)
tortenhoeheBegrenzen maxHoehe torte =
— c)
istLecker torte =
Test-Navigation
Information
Information
i
Information
i
Codequalität und Testen (6 Punkte)
Frage
1
markiert
Frage
2
markiert
Frage
3
Frage
4
Haskell (15 Punkte)
Frage
5
Frage
6
Frage
7
Frage
8
Frage
9
Frage
10
Diese Seite
Prolog (9 Punkte)
Frage
11
Frage
12
Abschluss
Information
i
Zwischenspeichern …
Verbleibende Zeit 0:58:46
Kontakte
Favoriten
Gruppe
Persönlich
Alle anzeigen
Sie sind angemeldet als Weikun Ye (Logout)
[WS 20/21] SWTPP
Impressum · Nutzungsbedingungen · Datenschutz
powered by innoCampus
[WS 20/21] SWTPP
Teilnehmer/innen
Bewertungen
meet@ISIS
Meine Startseite
Alle Kurse
Kalender
Meine Kurse
WiSe2021 Webtech
Wiss. Rechnen-WiSe 20/21
Ana1LinAlg WS202021
[WS2021] BSPrak
[WiSe 20/21] B & K
TKN RNVS 2020w
[WiSe2020/21] Logik
[WS 20/21] SWTPP
ROrg WS 20/21
Mikroökonomik SS 20
19/20-ReSyst
Digitale Systeme SS 2020
TKN WS19/20 VL Rechnernetze und Verteilte Systeme
Stochastik (Service) SoSe19
SoSe19-DS
SoSe19-ReSyst
FM IV
Mehr …