• Keine Ergebnisse gefunden

5. Übungsblatt Ausgabe:

N/A
N/A
Protected

Academic year: 2022

Aktie "5. Übungsblatt Ausgabe:"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Christoph Lüth Thomas Barkowsky Andreas Kästner Gerrit Marquardt Tobias Haslop Matz Habermann Berthold Hoffmann Praktische Informatik 3 WS 18/19

5. Übungsblatt

Ausgabe: 13.11.18 Abgabe: 20.11.18 12:00

5.1 Lagern will strukturiert sein 10 Punkte

Die Inhaberin der BäckereiBarbara’s Brotloungehat uns gebeten, ein neues Programm für ihre Lagerverwaltung zu entwickeln. Schlaue Entwickler wie wir sind, wollen wir ein allgemeines Programm entwickeln, welches wir auch an Barbaras KonkurrentenPizza-Toniverkaufen können. Damit unsere Plan funktioniert, muss unser Programm beliebige Artikel verwalten können und nicht nur Backzutaten — es gibt schließlich auch noch andere Kleingewerbetreibende mit Lagern, die verwaltet werden müssen.

Wir gehen dabei wie folgt vor:

1. In unserem Lager werden die eingelagerten Objekte als Artikel hinterlegt. Jeder Artikel besteht aus ei- ner Beschreibungaund seiner Anzahl im Lager alsNatural(wobei zwei Artikel gleich sind, wenn ihre Beschreibung gleich ist):

data Artikel a=A a Natural

Das Lager besteht aus einer einfachen Liste mit Artikeln:

type Lager a= [ Artikel a]

Produkte stellen Objekte dar, die aus Artikeln aus unserem Lager hergestellt werden können. Sie ent- halten jeweils einen Namen und eine Liste mit den benötigten Zuaten in Form einer Liste von Artikeln.

(Auch hier sind zwei Produkte gleich, wenn ihre Beschreibung (name) gleich ist.) data Produkt a b=P {name:: b, zutaten:: [ Artikel a ] }

Die wesentlichen Funktionen unseres Lagers werden das Hinzufügen und Entfernen von Artikeln sein, sowie die Überprüfung, wie viel von einem bestimmten Artikel vorhanden ist. Dazu sollen die folgenden Funktionen implementiert werden.

enthaelt :: Eq a ⇒ Lager a → a → Natural

hinzufuegen :: Eq a⇒ Lager a →a → Natural → Lager a entfernen :: Eq a ⇒ Lager a → a → Natural → Lager a

2. Für ihr Lager wünscht sich Barbara noch eine Funktion, die beim Backen überprüft, ob sie alle Zutaten für ihr Brot im Lager und das diese Zutaten auch direkt aus dem Lager entfernt werden. DaBarbara’s Brotloungeist allerdings ziemlich beliebt ist backt Barbara selten nur ein einzelnes Brot zu einem gegebe- nen Zeitpunkt, also sollte unser Programm auch mehrere Backaufträge gleichzeitig verarbeiten können.

Hierfür sollen die Funktionen

teileVorhanden :: (Eq a, Eq b) ⇒ Produkt a b → Lager a → Bool entferneProdukt :: (Eq a, Eq b) ⇒ Produkt a b → Lager a → Lager a

verwendet werden. teileVorhanden überprüft, ob sich im Lager alle Artikel in ausreichender Anzahl für das übergebene Produkt befinden undentferneProduktentfernt alle Artikel eines Produkts aus dem Lager.

Die Funktion

produzieren :: (Eq a, Eq b) ⇒ [ Produkt a b] → Lager a → Lager a

sollteileVorhandenundentferneProduktfür eine Liste von Produkten umsetzten, und dabei die Artikel von allen Produkten aus dem Lager entfernen, für die sie vorhanden sind.

— Seite 1 von 1 —

Referenzen

ÄHNLICHE DOKUMENTE

Der Fall des Auffang- und Arbeitserzie- hungslagers Innsbruck-Reichenau zeigt, dass die Erforschung eines regionalen Lagers wichtige Ergebnisse und Erkenntnisse über die

Die Effinger Schichten sind voraussichtlich ein geklüftetes poröses Medium, wobei in den Kalkmergeln mit wenig ausgeprägtem Channeling und günstigen Bedingungen für Matrix-

Diese bilden für die Nagra eine Basis für die weitere Konkretisierung der Oberflächeninfrastruktur. Fakten bewertet werden.» Gemäss Reto Porta, Fachbegleitung der FG OFI Jura

Die Nagra hat 2013 dargelegt, dass eine Oberflächenanlage für ein Tiefenlager keine Gefähr­.. dung für das Grundwasser darstellt, wenn die erforderlichen Schutzmassnahmen

Die Schweiz ist bei der Standortsuche für geologische Tiefen- lager einen Schritt weiter: Der Bundesrat hat entschieden, dass die Standortgebiete Jura Ost, Nördlich Lägern sowie

Die Heavy Tuned GmbH übernimmt weder Verantwortung für die Richtigkeit dieser Einbauhinweise noch die Haftung für Verluste oder Schäden an Material oder dritten Personen, die aus

Ich versuche nicht, die nachlaufenden Kartons auf dem Band mit der Hand zu stoppen und mit der anderen Hand den verklemmten Karton wieder richtig auf das Band zu stellen.. Sie

Sämtliche Konditionen und Geschäftsbedingungen haben Gültigkeit ab (wird noch vereinbart) Diese Vereinbarung verlängert sich automatisch um ein weiteres Jahr, wenn diese nicht bis