Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
• generische Operatoren: können mit mehreren Implementierungen umgehen<br />
• manifeste Typen: Daten haben explizite Angabe über die Art der Implementierung<br />
• datengesteuerte Programmierung: Daten entscheiden selbst über Verarbeitung<br />
3.3.1 Beispiel: komplexe Zahlen<br />
Darstellung durch Real- und Imaginärteil bzw. als Koordinaten in R 2 (Rechteckkoordinaten,<br />
gut für Addition) oder durch Betrag und Winkel (Polarkoordinaten,<br />
gut für Multiplikation);<br />
Daher gewünschte Programmebenen:<br />
1. +c, -c, ×c, ÷c<br />
2. konstr-rechtecke, konstr-polar;<br />
real-teil, im-teil, abs-wert und winkel<br />
3. Paare und normale Arithmetik<br />
3.3.2 Implementierung oberste Ebene (Arithmetik)<br />
Addition in Rechteckkoordinaten (x 1 , y 1 ) + (x 2 , y 2 ) = (x 1 + x 2 , y 1 + y 2 ); Multiplikation<br />
in Polarkoordinaten (a 1 , ϕ 1 ) · (a 2 , ϕ 2 ) = (a 1 · a 2 , ϕ 1 + ϕ 2 ):<br />
(define (+c z1 z2)<br />
(konstr-rechteck (+ (real-teil z1) (real-teil z2))<br />
(+ (im-teil z1) (im-teil z2))))<br />
(define (*c z1 z2)<br />
(konstr-polar (* (abs-wert z1) (abs-wert z2))<br />
(+ (winkel z1) (winkel z2))))<br />
3.3.3 Implementierung der Selektoren und Konstruktoren<br />
mit x = a · cos ϕ; y = a · sin ϕ; a = √ x 2 + y 2 ; ϕ = arctan(x, y)<br />
verschiedene Ansätze:<br />
1. intern nur Rechteckskoordinaten<br />
32