SS 1998 - Fachhochschule Köln
Fachbereich Nachrichtentechnik
Dr. Matthias Groß

Praktikum Datenverarbeitung - 7. Arbeitsblatt

Abgabetermin für alle: Montag 22.06. 1998 im DV-Labor

Bei dieser Praktikumsaufgabe sollen alle erlernten Fähigkeiten noch einmal gesammelt verwendet und zu einem Programm vereinigt werden. Diese Aufgabe enthält auch viele Komponenten, die für die Klausur am Ende des Semesters wichtig sind. Es werden zur konkreten Bearbeitung folgende theoretische Hilfsmittel benötigt:

Es soll ein Programm zum symbolischen Differenzieren geschrieben werden, d.h. aus einem Ausdruck der Form

    f(x)=a*x^3+x*(x+2*x^2) soll

    f'(x)=a*3*x^2+1*(x+2*x^2)+x*(1+2*2*x^1)

    oder noch besser f'(x)=a*3*x^2+x+2*x^2+x*(1+4*x)

werden.

Wer noch Lust hat, kann auch leicht Erweiterungen wie sin(x), cos(x), exp(x) etc. hinzunehmen und so ein komplettes Produkt herstellen.

Beachten Sie bitte auch alle weiteren Hinweise aus der Vorlesung. Um den Einstieg leichter zu finden verwenden Sie bitte das Beispielprogramm ableit.c mit dem zugehörigen Headerfile ableit.h.

Bei dieser Aufgabe stellen sich Ihnen mehrere Probleme:

Die Speicherung der Funktion f(x)=a*x^3+x*(x+2*x^2) erfolgt in Form eines Binär-Baumes, der sich schrittweise wie folgt aufbaut:

  1. Schritt 2. Schritt 5. Schritt
Der Baum
     __+__
a*x^3     x*(x+2*x^2)
    _____+____
 __*__      __*__
a     x^3  x     x+2*x^2
    ____+______
 __*__       __*__
a   __^__   x   __+__
   x     3     x   __*__
                  2   __^__
                     x     2

Man erkennt im obigen Beispiel recht gut, wie an jedem Knoten des B-Baumes (Binären Baums), der jeweils (maximal) zwei Nachfolger hat, jeweils ein Operator (+, -, *, /, ^) steht und an den Blättern jeweils eine konkrete Zahl oder x bzw. evtl. eine andere Variable. Eine Speicherung mathematischer Ausdrücke in dieser Form nennt man Syntaxbaum. Hat man diesen Syntaxbaum einmal aufgebaut, so kann man davon ausgehend verschiedene Dinge tun. Die erste Aufgabe ist die Ausgabe des eingegebenen und im B-Baum abgespeicherten Ausdruckes sowohl in Postfix-Notation (2 x 3 ^ * x x 2 x 2 ^ * + * +) als auch wieder in Infix-Notation (a*x^3+x*(x+2*x^2)). Das fertige Programm sollte nachher ein kurzes Menue wie folgt aufweisen:

Tips und Anregungen:

Literatur: Algorithmen in C, Robert Sedgewick, Addison-Wesley 1992.


FH-Köln zurück zurück vor WWW-Wais whois mail Hilfe


Seite zuletzt aktualisiert am 28.05.1998 von Matthias Groß. Diese Seite ist Teil des WWW-Dienstes der FH-Köln, Germany.