• Keine Ergebnisse gefunden

Übungen Programmieren in Clojure Serie 3

N/A
N/A
Protected

Academic year: 2021

Aktie "Übungen Programmieren in Clojure Serie 3"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Burkhardt Renz TH Mittelhessen

Programmieren in Clojure Übungen Serie 3

Übungen Programmieren in Clojure Serie 3

1. Summation

Berechnen Sie die SummePn i=1i (a) durch Rekursion

(b) durch Endrekursion (c) ohneloop/recur

(d) und noch ganz anders ohne Schleife 2. Euklidischer Algorithmus

Programmieren Sie eine Funktion(gcd n m), die mit dem Euklidischen Algorithmus den größten gemeinsamen Teiler (greatest common divisor) der natürlichen Zahlen n und m berechnet.

3. Pascalsches Dreieck Das Pascalsche Dreieck

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

. . .

hat an seinen Rändern den Wert 1, im Inneren ergibt sich der Wert durch die Summe der beiden Werte darüber.

(a) Schreiben Sie eine rekursive Funktion (pascal row index), die die Pascalsche Zahl in der Zeile row und Position index berechnet. (Zählung der Zeilen und Positionen beginnt mit1.)

(b) Gibt es auch eine endrekursive Variante?

4. Fibonacci-Zahlen

Die Fibonacci1-Zahlen sind definiert durch

f ib(n) =

0 fallsn= 0

1 fallsn= 1

f ib(n−1) +f ib(n−2) sonst

(a) Setzen Sie diese Definition in eine rekursive Funktion um, dief ib(n)berechnet.

(b) Programmieren Sie eine endrekursive Variante nach folgender Idee.

Initialisiere a = 1, b = 0.

Wiederhole gleichzeitig die Transformationen (a = a + b, b = a) n-mal.

1Leonardo da Pisa, genannt Fibonacci, etwa 1180 - 1241

Wintersemester 2017/18 1

(2)

Prof. Dr. Burkhardt Renz TH Mittelhessen

Programmieren in Clojure Übungen Serie 3

(c) Berechnen Sie die Fibonacci-Zahl mit der Formel von Moivre-Binet2.

(d) Zusatzaufgabe: In welcher europäischen Stadt gibt es ein Museum, dessen Fassade die Fibonacci-Folge ziert?

5. Newtons Methode zur Berechnung der Quadratwurzel

(a) Studieren Sie in Abelson/Sussmanhttps://mitpress.mit.edu/sicp/full-text/

book/book.htmlAbschnitt 1.1.7 wie man Quadratwurzeln mit der Newton-Methode berechnet und schreiben Sie eine entsprechende Funktion in Clojure.

(b) Schreiben Sie eine Variante für die Funktion, dieiterateverwendet.

Rev 4.0 – 11. August 2017

2Abraham de Moivre 1167 - 1754, Jacques Philippe Marie Binet 1786 - 1856

Wintersemester 2017/18 2

Referenzen

ÄHNLICHE DOKUMENTE

Was ergeben die folgenden Ausdrücke in der Repl, eingegeben in der vorgegebenen Rei- henfolge.. Burkhardt Renz

Eine Bank bezahlt Zinsen gestaffelt nach dem Guthaben: 1% bis 1000€, 1,25% bis 2000€ und 1,5% über 2000€.. Schreiben Sie eine Funktion, die zu einem Guthaben g den Jahreszins

Schreiben Sie eine Funktion (freq coll), die wie frequencies eine Map der verschie- denen Elemente einer Kollektion mit der Zahl ihres Vorkommens ermittelt. Verwenden Sie

Auch die Eulersche Zahl e kann durch einen Kettenbruch approzimiert werden, nämlich durch den Kettenbruch mit folgender Folge der a i 4 :.. [2; 1, 2, 1, 1, 4, 1, 1,

(a) Schreiben Sie eine „Factory-Funktion“ für komplexe Zahlen, basierend auf einer Implementierung als Vektor aus Real- und Imaginärteil.. (b) Schreiben Sie eine Multimethode (add x

Entwerfen und realisieren Sie defrecords für Währungen und Geldbeträge sowie Funk- tionen, so dass man Folgendes tun kann:.. (a) Währungen definieren

Schreiben Sie ein Makro (assert-eq actual expected), das die beiden Ausdrücke auf Gleichheit überprüft und eine aussagekräftige Exception wirft, wenn sie nicht gleich sind,

Schreiben Sie zunächst eine Funktion int gcd(int,int) (Greatest common divisor), diese werden Sie später benötigen, um den Bruch zu kürzen.. • Sie können den größten