SAI || Vorlesungen im WS 96/97 || Programmieren || Übungen

Übungen zu Programmieren WS 96/97
Blatt 9 (09.01.97 - 16.01.97)


Aufgabe 13 (15 Punkte)

Gegeben sei folgender Programmrumpf:

MODULE QuadrGl;
	IMPORT InOut;
	IMPORT RealInOut;
	FROM MathLib IMPORT sqrt;

	PROCEDURE parabel(x,a,b,c: REAL): REAL;
	BEGIN
		RETURN (a*x*x+b*x+c);
	END parabel;

	CONST eps = 1.0E-3; (*Genauigkeit*)


(* zu ergaenzen *)

END QuadrGl.
Die Prozedur parabel definiert eine quadratische reellwertige Funktion, wie Sie aus dem Ausdruck nach RETURN leicht entnehmen können.

(a)5 Punkte
Ihr Programm soll zunächst die reellwertigen Koeffizienten a,b,c von der Standardeingabe einlesen und bestimmen, ob die dadurch definierte Funktion keine, eine oder zwei Nullstellen besitzt.
(b)10 Punkte
Falls die Funktion zwei Nullstellen x1, x2 mit x1 < x2 besitzt, soll als nächstes die von der Kurve und der x-Achse eingeschlossene Fläche näherungsweise nach folgendem Verfahren bestimmt werden:
Das Intervall [x1,x2] wird in n Teilintervalle der Länge h=(x2-x1)/n eingeteilt. Die Fläche kann nun wie folgt approximiert werden:
R(n) := 0; 
FOR i:=1 TO n DO
	R(n) := R(n) + h*parabel(x1+(i-1)*h,a,b,c)
END;

Danach wird n verdoppelt und nach dem gleichen Verfahren R(2*n) berechnet.
Falls sich zwei so gebildete aufeinanderfolgende Rechteckssummen um weniger als die Konstante eps unterscheiden, wird die letzte berechnete Summe als Fläche ausgegeben. Startwert für n sei 2.

Hinweis: Lesen Sie zu den Modulen RealInOut und MathLib im Modula-2 Referenzmanual unter hhtp://www.mathematik.uni-ulm.de/modula/ nach!

Viel Erfolg!


SAI || Vorlesungen im WS 96/97 || Programmieren || Übungen

Franz Schweiggert, 08.01.1997