i

Funktionen

Automatisierte Berechnung von Farbmengen

Wir haben mit Racket bereits die zu streichende Fläche unseres WG-Zimmers ausgerechnet. Natürlich wäre es schön eine automatisierte Berechnung für egal welche Zimmermaße zu haben. Unten siehst du einen solchen Rechner, der sogar direkt die benötigte Farbmenge für das Zimmer ausrechnet.

Rechner 1: Wie viel Farbe brauchst du?

Benötigte Farbmenge in Liter:

Eine weitere Webseite erlaubt es uns Farbe zu bestellen. Um im Voraus die auf uns zukommenden Kosten zu bestimmen, stellt die Webseite eine Funktion zur Berechnung zur Verfügung:

Rechner 2: Kosten der benötigten Farbe

Kosten in Euro:

Aufgabe 1: Farbberechnungen mit vorgegeben Rechnern

(a) Berechne mit dem ersten Rechner wie viel Liter Farbe du für das WG-Zimmer benötigst. Die Farbreichweite beträgt $8\ m^2/l$.

(b) Berechne mit dem zweiten Rechner wie viel die benötigte Menge an Farbe kosten würde. Welches Problem tritt auf, wenn du das Ergebnis des ersten Rechners in den zweiten überträgst? Wie lässt sich diese Problem lösen?

(c) Bestimme möglichst präzise, welche Zahlen von den beiden Rechnern akzeptiert werden.


Aufgabe 2: Beschreibung der Rechner anhand der akzeptierten Zahlen

In Racket lassen sich verschiedene Zahlenmengen angeben. Drei der geläufigsten Mengen findest du in der Tabelle:

Zahlenmengen in Racket Beschreibung
natural Alle positiven ganzen Zahlen, inklusive der Null.
(natural $\subset$ integer $\subset$ real)
integer Alle ganzen Zahlen, sowohl negativ als auch positiv.
(integer $\subset$ real)
real Alle reellen Zahlen.

Mittels dieser Angaben können wir die einzelnen Rechner genauer beschreiben.

Betrachte hierzu die nachfolgenden sechs abstrakten Beschreibungen und bestimme welche der Beschreibung auf welchen Rechner zutrifft.
Hinweis: Mit dem -> Symbol werden die Zahlen die wir eingeben und die Zahlen die wir als Ergebnis bekommen voneinander getrennt.

  1. natural -> real
  2. integer -> real
  3. integer integer -> integer
  4. real real real -> real
  5. real real real real -> real
  6. real real real integer -> real

Aufgabe 3: Racket-Operatoren

Auch die zulässigen Operanden in Racket Ausdrücken lassen sich wie in Aufgabe 2 beschreiben.
So ergibt sich für den Operator round beispielsweise:
real -> integer

Im Folgenden findest du eine Auflistung verschiedener Racket-Operatoren. Teste die Operatoren in der REPL von DrRacket, finde heraus welche Daten als Operanden akzeptiert werden und fülle anschließend die Lücken unter den Operatoren analog zum Beispiel aus.

(a) ceiling (real -> integer)

(b) remainder (integer integer -> integer)

Wie wir bereits wissen lassen sich in Racket jedoch nicht nur Zahlen verarbeiten. Zwei weitere geläufige Datentypen siehst du in der Tabelle:

Datentyp Beschreibung
string Eine Zeichenkette. Steht immer in Anführungszeichen " ".
boolean Ein Wahrheitswert. Entweder True (#t) oder False (#f)

Ergänze mithilfe der Tabelle die Operatoren (c)-(e) um die jeweilig korrekten Signaturen:

(c) string-length (string -> natural)

(d) odd? (integer -> boolean)

(e) string-append (string string -> string)


Aufgabe 4: Verkettete-Funktionen

Betrachte die folgenden Ausdrücke. Überlege und begründe warum einige dieser Ausdrücke funktionieren und andere nicht. Überprüfe deine Überlegung anschließend in DrRacket.

(a)

> (odd? (ceiling 49.3))

(b)

> (ceiling (string-length "Hallo Welt!"))

(c)

> (remainder (string-length "Informatik") (odd? 3))

(d)

> (string-length (string-length "Drei"))

(e)

> (remainder 7 (remainder (ceiling 4.7) 2))

Suche

v
100.137.2.2.1 Funktionen
Kopieren durch Anklicken

Rückmeldung geben