Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
• Selektor (variable (konstr-poly v tl)) = v<br />
• Selektor (termliste (konstr-poly v tl)) = tl<br />
• Konstante leere-termnliste<br />
• Abfrage leere-termnliste?<br />
• Prozedur term-anhaengen mit höherem Grad<br />
• Selektor erster-term<br />
• Selektor rest-term<br />
• Selektor grad Grad eines Termes<br />
• Selektor koeff Koeffizienten eines Termes<br />
Rechnen mit Polynomen: Addition (und analog Multiplikation)<br />
(define (+poly p1 p2)<br />
(if (gleiche-variable (variable p1) (variable p2))<br />
(konstr-poly (variable p1) (+terme (term-liste p1)<br />
(term-liste p2)))<br />
(error "Polynome haben ungleiche Variablen")))<br />
Erweiterung der generischen Arithmetik:<br />
(put ’poly ’add +poly)<br />
(put ’poly ’mult *poly)<br />
Implementierung <strong>von</strong> +terme (siehe Zettel): Vergleiche Grad der ersten Terme,<br />
wenn diese gleich sind, so addiere Koeffizienten, andernfalls füge Term mit<br />
größerem Grad hinzu. *terme:<br />
• multipliziere jeden Term mit allen Termen des anderen Polynoms<br />
• addiere diese Polynome<br />
• Multiplikation <strong>von</strong> Termen: Addiere Grade, Multipliziere Koeffizienten<br />
Koeffizienten mit generischen Operatoren add/mult verknüpft ⇒ Polynome<br />
mit beliebigen Koeffizienten aus Arithmetikmodul (reell, komplex, rat)<br />
• mit Typanpassung: (5x 2 + (4 − 2i)x · (6x 5 + 3 2 x2 )<br />
• auch Polynome als Koeffizienten: (y + 1)x 2 + (y 3 + 5y 2 )x<br />
Implementierung der Termlisten:<br />
40