Funktionale Programmierung - auf Matthias

Werbung
Funktionale Programmierung
WS07/08
E. Fehr
Aufgabenblatt 6
Abgabe bis Dienstag, dem 27.11.2007
Aufgabe 1)
a) Schreiben Sie eine Haskell-Funktion dreieck, die zu gegebener Höhe n ein
Dreieck der Form
*
***
*****
...
***********














n













ausdruckt.
b) Schreiben Sie eine Haskell-Funktion tree, die zu gegebener Höhe n einen Baum
der Form
*
***
*****
...
***********
*














n













ausdruckt.
c) Schreiben Sie eine Haskell-Funktion baumReihe, die zu gegebener Liste mit
Höhenangaben ein Bild erzeugt, in dem Bäume mit den angegebenen Höhen
nebeneinander stehen.
Beispiel: baumReihe [2,3] ergibt
*
***
*
*
***
*****
*
Aufgabe 2)
a) Definieren Sie einen Datentyp Matrix in Haskell, dessen Wertebereich zur
Darstellung von Matrizen dient.


!
−2 0
1 −2 0

Beispiel: A =
ist eine (2 × 3)-Matrix. B = 
 −4 1  ist
−1
1 2
8 3
eine (3 × 2)-Matrix.
b) Definieren Sie die Addition von Matrizen in Haskell.
!
2 −4 0
Beispiel: A + A =
−2
2 4
c) Definieren Sie die Multiplikation von Matrizen in Haskell. Verwenden Sie dabei
die Funktion sp aus der Vorlesung zur Berechnung des Skalarprodukts. Die
Matrizenmultiplikation ist wie folgt definiert: Wenn A eine n × m-Matrix ist
und B eine (r × n)-Matrix ist, dann ist C das Produkt von A und B mit
cij = sp (i-te Zeile von A) (j-te Spalte von B).
Herunterladen