Tutorium 2 – Programmieren mit Ausdrücken

Informatik 1
Wintersemester 2015/16
FB Informatik • AG Programmiersprachen und Softwaretechnik
Tutorium 2 – Programmieren mit Ausdrücken
Bearbeiten Sie die Aufgaben in kleinen Gruppen (2 - 3 Personen). Sie müssen nicht alle Aufgaben bearbeiten, aber:
Achten Sie selbständig darauf, die Lernziele zu erreichen!
Helfen Sie sich bei Bedarf gegenseitig oder fragen Sie Ihre Tutorin oder Ihren Tutor.
–
Technische Vorraussetzung für die Bearbeitung der
Aufgaben ist, dass Sie Racket 6.2.1 installiert haben, als
Sprache BSL ("Anfänger") ausgewählt ist und das
Teachpack 2hdtp/image am Anfang der Datei über
Lernziele
Nach der Bearbeitung dieses Arbeitsblattes haben
Sie gelernt
✓
✓
✓
✓
✓
verwenden, um Bilder und Grafiken zu
erstellen.
(require'2htdp/image)
importiert wird.
–
Bitte beachten Sie auch die Vorlesungshomepage
(http://ps.informatik.uni-tuebingen.de/teaching
die Syntax von Ausdrücken zu beherrschen,
komplexe, geschachtelte Ausdrücke zu
schreiben,
den Stepper in DrRacket zu nutzen,
verschiedene Fehlerarten zu erkennen und
zu beheben und
die Zeichenbibliothek 2htdp/image zu
Nach dieser Übung sollen Sie in der Lage sein,
selbständig mit DrRacket und den Programmen aus
der Vorlesung zu experimentieren.
/ws15/info1/)
Viel Erfolg!
Checkliste für das Programmieren von
Ausdrücken
Die folgende Checkliste soll Ihnen beim Programmieren von Ausdrücken helfen. Anfangs kann es
sich lohnen, diese für jeden Ausdruck durchzugehen und sicherzustellen, dass alle Vorraussetzungen erfüllt sind:
✓
✓
✓
✓
✓
✓
✓
✓
Alle Klammern sind geschlossen
Es sind keine überflüssigen Klammern
vorhanden
Klammern werden in der richtigen
Reihenfolge geöffnet und geschlossen.
Alle verwendeten Funktionen sind
vorhanden ( d.h. es gibt sie und sie sind
richtig geschrieben)
Die Zeilen sind nicht zu lang
Die Einrückung reflektiert die Struktur Ihres
Programms
Der Ausdruck kann von DrRacket
ausgewertet werden
Das Auswerten ergibt das erwartete
Ergebnis
Aufgabe 1: Programmieren mit Zahlen
Benutzen Sie DrRacket wie einen Taschenrechner, um die folgenden Rechnungen durchzuführen.
a.
3 + 4
b.
12 + 3 * 7 - 5
c.
12 / 11 - 3 + √3
d.
e.
Durchschnitt der Zahlen 3, 5, 19 und 31
Berechnen Sie jeweils für x = 1 , x = 3 und x = 8 : 10x + 3πx - 42
Aufgabe 2: Der Stepper in DrRacket
Ziel dieser Aufgabe ist es, dass Sie den DrRacket "Stepper" kennenlernen. Bearbeiten Sie für die Programme, die Sie in der vorigen Aufgabe geschrieben haben jeweils die folgenden Schritte:
1.
2.
3.
Spielen Sie Computer: Schreiben auf Papier die einzelnen Schritte auf, die DrRacket ausführen würde, wenn es den
entsprechenden Ausdruck auswertet.
Verwenden Sie den Stepper, um die tatsächliche Auswertungsreihenfolge zu beobachten.
Vergleichen Sie die Ergebnisse aus 1. und 2. und diskutieren Sie eventuelle Unterschiede.
Aufgabe 3: Fehlerarten
Beim Programmieren und während der Ausführung von Programmen können verschiedene Fehler auftreten. Sind die folgenden
Ausdrücke Syntaxkorrekt? Haben Sie eine Bedeutung? Was ist die Ausgabe, wenn Sie die Ausdrücke von DrRacket auswerten lassen? Tragen Sie Ihre Vermutungen ein:
Program
Vermutung
Beobachtung
(+ 1 0)
(/ 1 0)
(+ 0
(+ 0)
(0)
(plus 1 0)
Überprüfen Sie Ihre Vermutungen, indem Sie die Programme in DrRacket ausführen. Entspricht das Ergebnis Ihren Erwartungen?
Tipp: Sie können ein Teilprogramm, welches Fehler enthält "auskommentieren" und damit verhindern, dass es von DrRacket ausgeführt wird. Es wird dann als Kommentar behandelt und ignoriert und alle anderen Ausdrücke in Ihrem Programm können nun
wieder ausgeführt werden. Details hierzu finden Sie in der Racket Dokumentation (http://docs.racket-lang.org/reference/reader.html#%28part._parse-comment%29).
Aufgabe 4: Programmieren mit Texten
Ein großer Teil der Interaktion mit Benutzern von Computerprogrammen geschieht über Texte, die auf dem Bildschirm angezeigt
werden. In dieser Aufgabe lernen Sie Texte aus anderen Bestandteilen zusammenzusetzen.
a.
b.
Programmieren Sie einen Ausdruck, der Ihren Namen erzeugt.
Programmieren Sie einen Ausdruck, der "Hallo ..." erzeugt. Statt der drei Punkte soll Ihr Name stehen.
c.
Programmieren Sie einen Ausdruck, der "Das Ergebnis ist ..." erzeugt. Statt der drei Punkte soll der Durchschnitt der
Zahlen 3, 5, 19, und 31 stehen. Verwenden Sie den Ausdruck, der diesen Durchschnitt berechnet als Unterausdruck.
Aufgabe 5: Programmieren mit Bildern
In dieser Aufgabe werden Sie nun üben das Image-Teachpack zu verwenden. Eine Liste der Funktionen, welche Sie auf Bildern
verwenden können, ist in der Racket Dokumentation (http://docs.racket-lang.org/teachpack/2htdpimage.html) zu finden.
Versuchen Sie sich einen Überblick darüber zu verschaffen, welche Funktionen Ihnen zur Verfügung stehen, um Bilder zu zeichnen und sie miteinander zu zu kombinieren.
a.
b.
c.
d.
e.
f.
g.
Programmieren Sie einen Ausdruck, welcher einen Kreis zeichnet.
Programmieren Sie einen Ausdruck, welcher ein Rechteck zeichnet.
Setzen Sie die zwei Ausdrücke (a) und (b) zusammen, so dass sie horizontal angeordnet sind.
Setzen Sie die zwei Ausdrücke (a) und (b) zusammen, so dass sie vertikal angeordnet sind.
Setzen Sie die zwei Ausdrücke (a) und (b) zusammen, so dass sie horizontal angeordnet sind und zwischen den Teilbildern
mindestens 10 Pixel Abstand besteht.
Platzieren Sie einen von Ihnen gewählten Schriftzug (z.B. einen der Texte aus der vorigen Aufgaben auf dem
zusammengesetzten Bild.
Zeichnen Sie ein Bild oder erstellen Sie eine illustrative Grafik, in dem Sie mit den Ihnen zur Verfügung stehenden
Funktionen auf Bildern experimentieren.