Das Auftragsbuch
Zeit für ein weiteres Projekt! Dieser Checkpoint wendet die letzten drei Lektionen an, Objekttypen, Unions und Narrowing sowie Daten, die mit diskriminierten Unions modelliert sind, und dazu alles, was du davor gelernt hast. Wie im ersten Checkpoint sagen dir die Anweisungen, was das Programm ausgeben soll, und wie du es schreibst, bleibt dir überlassen. Und wie dort führt jede Übung dein Programm auch mit anderen Daten aus, es muss also alles aus den Daten berechnen.
Das Projekt. Der Schmied von Rabenfels führt ein Buch mit Aufträgen, und du schreibst das Programm, das sie berechnet. In drei Übungen ermittelt es den Preis jedes Auftrags, gewährt Stammkunden ihre Rabatte und behandelt dann eine neue Art von Auftrag.
Die Daten. Jeder Auftrag ist ein Auftrag, eine diskriminierte Union mit dem Tag art. Der Schmied schmiedet neue Gegenstände ("schmieden") aus einem von drei Metallen, repariert beschädigte ("reparieren") und schärft Klingen ("schaerfen"). Jeder Auftrag hat einen kunde und einen gegenstand, und manche Arten haben mehr: Ein geschmiedeter Gegenstand hat sein metall, und eine Reparatur gibt an, wie stark der Gegenstand beschädigt ist, in Prozent. schmiedePreise ist ein Record mit dem Preis für das Schmieden aus jedem Metall, und auftraege enthält die Aufträge dieser Woche, einen pro Zeile.
Die Aufgabe. Das Schmieden kostet, was schmiedePreise für das Metall angibt, eine Reparatur kostet halb so viele Gold wie der Schaden, und das Schärfen kostet immer schaerfPreis. Gib für jeden Auftrag eine Zeile aus und am Ende die Summe:
Kira: Schmieden, Pfeilspitzen (Stahl), 35 Gold
Bruno: Reparatur, Streitaxt, 15 Gold
Lena: Schärfen, Dolch, 8 Gold
Bruno: Schmieden, Schild (Bronze), 20 Gold
Summe: 78 GoldEin Tipp: Ein switch über art mit der Vollständigkeitsprüfung aus der Lektion Daten modellieren ist ein guter Anfang. In der letzten Übung wirst du froh darüber sein.
So schreibst du es:
Anweisungen
- 1
Gib für jeden Auftrag eine Zeile mit seinem Preis aus, wie im Beispiel.
- 2
Gib unter den Aufträgen die Summe aus.