Hausaufgabe 2 – Programmieren mit Ausdrücken
Nach der Bearbeitung dieses Arbeitsblattes haben Sie gelernt
- die Syntax von Ausdrücken zu beherrschen,
- komplexe, geschachtelte Ausdrücke zu schreiben,
- verschiedene Fehlerarten zu erkennen und zu beheben und
- die Zeichenbibliothek
2htdp/image
zu verwenden, um Bilder und Grafiken zu erstellen.
Bearbeiten Sie dieses Hausaufgabenblatt alleine. Stellen Sie dabei sicher, dass Sie die gesetzten Lernziele erreichen.
Technische Vorraussetzung für die Bearbeitung der Aufgaben ist, dass Sie Racket 6.2.1 installiert haben, als Sprache BSL (How to Design Programs - Anfänger) ausgewählt ist und das Teachpack
2hdtp/image
am Anfang der Datei über(require 2htdp/image)
importiert wird.
Bitte beachten Sie auch die Vorlesungshomepage
Abgabeformat
Wie bei dem ersten Übungsblatt erfolgt die Abgabe von DrRacket aus. Erstellen Sie hierfür zunächst eine neue Datei in DrRacket (z.B. hausaufgabe2.rkt
). Um die Lösungen zu den einzelnen Teilaufgaben anzugeben, definieren Sie bitte eine entsprechende Konstante (hier für Aufgabe 1a):
(define TASK-1-A
(... Ihre Lösung hier einsetzen ...))
Sie können dann das Ergebnis Ihrer Lösung im DrRacket Interaktionsmodus anzeigen lassen, indem Sie den Namen der Konstante eingeben, z.B.:
> TASK-1-A
914544000
Viel Erfolg!
Die Arithmetik der Zahlen
- 2pt
- Es wurde ein Ausdruck programmiert, welcher der jeweiligen Berechnung entspricht.
Schreiben Sie Programme für die folgenden Berechnungen. Verwenden Sie dabei das obige Abgabeformat (also (define TASK-1-A ...)
usw.).
(2015 - 1986) * 365 * 24 * 60 * 60
20.50 / 1.19 * 1.07
(17 + 32 + 6 + 7 + 4) * (1/4)
14 - 9 * 8 + 4 * 5.5 + 22
3 * 8 * 5 * 3.17 * 4 - 12
Fehlermeldungen interpretieren
Pro Teilaufgabe sind insgesamt 8 pt zu erreichen. Für jede der Teilaufgaben gilt das folgende Bewertungsschema:
- 2 pt
- Das Programm wurde repariert und gibt nun das gewünschte Ergebnis aus.
- 2 pt
- Die richtige Fehlerart wurde genannt.
- 2 pt
- Es ist eine schlüssige Erklärung vorhanden.
- 2 pt
- In der Erklärung wurden die richtigen Fachbegriffe verwendet.
Bearbeiten Sie diese Schritte für jedes der nachfolgenden Programme:
- Geben Sie das folgenden Programm in DrRacket ein und starten Sie anschließend die Auswertung. Achten Sie dabei auf eine zeichengenaue Übertragung in Racket.
- Lesen Sie die Fehlermeldung oder versuchen Sie das Ergebnis zu verstehen.
- Reparieren Sie das Programm, so dass keine Fehler mehr angezeigt werden und das gewünschte Ergebnis ausgegeben wird. Das reparierte Programm sollte dabei nicht nur aus dem gewünschten Ergebnis bestehen.
- Erklären Sie kurz in eigenen Worten in einem Kommentar oberhalb des jeweiligen Programmes, warum das Programm nicht korrekt war. Um welche Art von Fehler hat es sich hier gehandelt?
Verwenden Sie wieder jeweils das Abgabeformat (define TASK-2-A ...)
für die einzelnen Teilaufgaben:
- Program
(+ 2 (- 12 8)
- Gewünschtes Ergebnis
6
- Program
(+ 42)
- Gewünschtes Ergebnis
42
- Program
(rectangle 40 30 "slid" "darkorange")
- Gewünschtes Ergebnis
- Program
(place image (circle 10 120 "white") 25 25 (rectangle 50 50 110 "red"))
- Gewünschtes Ergebnis
- Program
(string-append "The answer is " 42)
- Gewünschtes Ergebnis
"The answer is 42"
Die Arithmetik der Bilder
Als Ergebnis wird das finale Bild zur Bewertung herangezogen. Sollte dies nicht vorhanden sein, können auch auf einzelne Teilbilder Punkte vergeben werden.
- 12 pt
- Es wird mindestens eine Säule gezeichnet (4pt), welcher sowohl mit der Anzahl (4pt) als auch mit einer Identifikation (4pt) beschriftet ist.
- 12 pt
- Vier Datenpunkte sind im Bild / in Bildern repräsentiert und im richtigen Verhältnis dargestellt (8pt), sowie mit der vollen Beschriftung versehen (4pt).
- 12 pt
- Vier Säulen werden in einem Bild gleichzeitig dargestellt (4pt), sind an ihrer Unterseite vertikal ausgerichtet (4pt) und es ist etwas Platz zwischen den Säulen (4pt).
- 6 pt
- Lesbare Formatierung mit geeigneten Zeilenumbrüchen, Einrückung, Leerzeichen.
In dieser Aufgabe geht es darum, Bilder aus mehreren Teilbildern zusammenzusetzen und dabei Erfahrung mit der Arithmetik der Bilder zu sammeln. Ihre Aufgabe ist es ein Säulendiagramm zu zeichnen, welches die folgenden Daten visualisiert:
a. | Informatik | 164 |
b. | Bioinformatik | 45 |
c. | Medieninformatik | 34 |
d. | Medizininformatik | 25 |
e. | Medizintechnik | 88 |
f. | Kognitionswissenschaften | 60 |
g. | Physik | 35 |
h. | Mathematik | 3 |
i. | Philosophie | 2 |
j. | Anderes Fach | 17 |
Es handelt sich hierbei um die aktuelle Anzahl der Informatik 1 TeilnehmerInnen per Studiengang. Bitte suchen Sie sich vier Datenpunkte aus der Tabelle aus, die Sie als Säulendiagramm visualisieren.
Welche Funktionen Ihnen auf Bildern zur Verfügung stehen und wie Sie diese verwenden können ist unter 2htdp/image dokumentiert.
Bitte geben Sie das Endergebnis dieser Aufgabe als einen Ausdruck im obigen Abgabeformat ab:
(define TASK-3
(... der Ausdruck, der das finale Bild berechnet ...))
Die Zwischenschritte können Sie selbstverständlich in Ihrem Programm als einzelne Ausdrücke stehen lassen.
Bearbeitungsschritte:
- Beginnen Sie mit Ihrem eigenen Studiengang und zeichnen Sie eine Säule in geeigneter Skalierung. Dokumentieren Sie die von Ihnen gewählte Skalierung in einem Kommentar in Ihrem Programmcode.
- Platzieren Sie einen Schriftzug oberhalb der Säule, welcher die Anzahl der Studierenden in diesem Studiengang anzeigt (z.B.
164
). - Platzieren Sie einen zusätzlichen Schriftzug unterhalb der Säule, welcher eine Zuordnung zum Studiengang zulässt (z.B.
a.
). - Wiederholen Sie den Vorgang für die restlichen Daten, so dass Sie insgesamt vier Bilder erhalten.
- Setzen Sie die Teilbilder zusammen, indem Sie sie nebeneinander anordnen und an ihrer Unterseite ausrichten. Achten Sie auf etwas Platz zwischen den einzelnen Säulen.
- Freiwillig: Wenn Sie wollen können Sie noch eine Legende hinzufügen oder mit anderen Arten der Visualisierung experimentieren.