(*--------------------------------------------------------------------------- :Program. Kurve :Author. Jörg Wesemann :Address. Auf der Heide 10, 2807 Achim - Baden :Phone. (0)4202 / 70658 :Shortcut. [jwe] :Version. 2.94 :Date. 23.03.89 :Copyright. PD :Language. Modula-II :Translator. M2Amiga :Imports. none. :Update. none. :Contents. Untersucht das Symmetrieverhalten einer Funktion :Remark. none. ---------------------------------------------------------------------------*) IMPLEMENTATION MODULE symmetrie; FROM SYSTEM IMPORT FFP; FROM InOut IMPORT Write,WriteString,WriteLn,OpenOutput, CloseOutput; FROM startupproc IMPORT fn,crlf,CLS,cursorr,nopoints,eps,d,wptr, dateiabfrage,center,fragedatei; FROM menu IMPORT wartemenu; FROM Intuition IMPORT WindowToFront; PROCEDURE symmetrie; PROCEDURE punkts():BOOLEAN; VAR i : CARDINAL; x : FFP; s : BOOLEAN; BEGIN s:= TRUE; i:= 1; x:= 0.0; WHILE (s = TRUE) AND (i <= nopoints ) DO x:= x + d; s:= ABS(fn(x,0) + fn(-x,0)) < eps; INC(i); END; RETURN s; END punkts; PROCEDURE achss():BOOLEAN; VAR i : CARDINAL; x : FFP; s : BOOLEAN; BEGIN s:= TRUE; i:= 1; x:= 0.0; WHILE (s = TRUE) AND (i <= nopoints ) DO x:= x + d; s:= ABS(fn(x,0) - fn(-x,0)) < eps; INC(i); END; RETURN s; END achss; BEGIN (* symmetrie Main *) WindowToFront(wptr); Write(CLS); IF dateiabfrage THEN fragedatei(); END; crlf(4); center("SYMMETRIEÜBERPRÜFUNG"); WriteLn; center("--------------------"); crlf(6); IF (punkts() = TRUE) THEN center("Die Funktion ist - punktsymmetrisch - zum Ursprung"); ELSIF (achss() = TRUE) THEN center("Die Funktion ist - achsensymmetrisch - zur Y-Achse"); ELSE center("Es ist keine Symmetrie erkennbar"); END; WriteLn; CloseOutput; crlf(4); center("Bitte 'RETURN' drücken für MENU "); wartemenu; END symmetrie; END symmetrie.