Informationen zum Funktionsplotter 4.02 I. Allgemein Das Programm Funktionsplotter dient grunds„tzlich der graphischen Darstellung von Funktionen. Es hat allerdings folgende, ber das normale Maá derartiger Programm hinausgehende, Funktionen: - Funktionen k”nnen auáer dem Parameter x noch einen zus„tzlichen Parameter a enthalten, um etwa Funktionsscharen zu erzeugen. - Die Formeleingabe ist stark syntaxorientiert - Enorme Zeichengeschwindigke it durch Verwendung eines PseudoCode- Compilers zur Termauswertung (typisches Merkmal: in der Testversion ben”tigte auf einem 12,5 Mhz AT der Monitor mehr Zeit zum Umschalten auf den Graphikmode als der Rechner zum Zeichnen der Funktionen) - Eingegebene Funktionen werden graphisch aufbereitet und dargestellt. - Das Programm beherrscht symbolisches Ableiten und symbolische Term- vereinfachungen wie Krzen, Ausklammern, Logarithmen vereinfachen Potenzen zusammenfassen usw. - Druckertreiber fr Nadel- und Laserdrucker sowie HP-GL Treiber - Volle Mausbedienung - automatisches Zeichnen von einhllenden Tangentenscharen - Entzerrung der Graphikdarstellung - noch 'ne Feinheit: Als Grenzen k”nnen beliebige Werte eingegeben werden, also nicht nur 3.5, -10 etc. sondern beispielsweise auch 2*ln(3+e) oder -2ã. II. Dateien Falls jemand sich fr das "How-To-Do" interessiert, habe ich die wichtigsten Quelltexte beigelegt. (Eigentlich sind die der einzige Grund, weswegen ich das Programm verteile, denn irgendwie sind die doch zu schade zum Einstauben...) Das sollte dabeisein: README.TXT Dieser Text SCANNER.PAS Scanner, der als Basis fr den Compiler in FUNKTION.PAS dient. FUNKTION.PAS Formelparser und PseudoCode-Compiler, der die eingegebenen Funktionen in Anweisungsfolgen „hnlich denen des 80x87 umwandelt. GENFORM.PAS Graphischer Formelgenerator. Verwendet den in FUNKTION erzeugten Pseudocode zum schrittweisen Aufbau der gewnschten Funktion. FPABLEIT.PAS, LEITAB.INC Symbolisches Ableiten. FPABLEIT stellt die Einbindung in das Gesamtprogramm dar, ABLEIT.INC enth„lt die eigentlichen Ableitungs- routinen. Das Programm verwendet zum Ableiten die bekannten Ableitungsregeln wie Kettenregel, Produktregel etc. Alle eingebbaren Funktionen mit Ausnahme von x^x und „hnlichen k”nnen symbolisch abgeleitet werden (mit mehr od er weniger groáem Erfolg). Das Ableiten erfolgt mit Hilfe einer Art von Stackrechner, wobei allerdings beim Abarbeiten der Anweisungsfolge nicht nach und nach das Ergebnis der Funktion ermittelt wird, sondern quasi auf einem Stack die Funktion schrittweise wieder zusammengestellt wird. Parallel dazu wird auf einem anderen Stack die Ableitung schrittweise mitbestimmt. Am Ende der Anweisungsfolge enth„lt dann der Funktionsstack die komplette Funktion, der Ableitungs- stack die Ableitung. (Genaueres m”ge man im Quelltext nachschauen.) UPNTOOL.PAS Stellt die Basisroutinen zur Termmanipulation zur Verfgung, mit deren Hilfe ABLEIT.INC die Ableitung ermittelt. Die meisten Prozeduren dienen dazu, zwei Teilterme zu einem neuen zu verknpfen (mit einer ihnen zugeordneten Operation) und sie dabei soweit wie m”glich zu vereinfachen. Beispielsweise vereinfacht MAL Produkte, entfernt 1en, stellt Multiplikation mit 0 fest und nimmt Br uchkrzungen vor. So, das sollte fr einen ersten Einblick reichen, falls sich jemand dafr interessiert. Falls irgendwer die eine oder andere Routine aus den Units verwenden m”chte (was ich ob meiner damaligen Sorgfalt beim Programmieren doch bezweifeln m”chte) kann er das gerne tun. Ich wrde allerdings gern benachrichtigt werden. Ebenso m”ge sich, wer Fragen zum Programm hat, ruhig bei mir melden. Also, viel Spaá! Torsten Rohlfing, s_rohlfing@iravcl.ira.uka.de oder uk2r@dkauni2.bitnet Karlsruhe, 12.11.92