program Euler(input,output); {Numerische Integration der Gleichung y'(x)=-y(x) mittels des Euler-Verfahrens} var x0, y0: double; {Anfangswerte} xf: double; {Endwert} h: double; {Schrittweite} x, y: double; function fxy(x, y: double): double; begin fxy := -y end; {fxy} procedure init; begin writeln('Exemplarische Darstellung einer numerischen Integration mittels'); writeln('des Euler-Verfahrens anhand der Gleichung y`(x)=-y(x)'); writeln; writeln('Geben Sie bitte die Anfangwerte ein.'); readln(x0, y0); writeln('Geben Sie nun an, bis zu welchem x-Wert y(x) berechnet werden soll.'); readln(xf); writeln('Und in welcher Schrittweite sollen die x-Werte liegen?'); readln(h); while (xf - x0)*h < 0 do begin writeln('Von ', x0:1:3,' aus koennen Sie ', xf:1:3,' in Schritten von ', h:1:3,' nicht erreichen.'); writeln('Geben Sie noch einmal den Endwert und die Schrittweite ein.'); readln(xf, h) end {while}; x := x0; y := y0; writeln('x y') end; {init} procedure result; begin writeln( x:1:5, ' ', y:1:5) end; {result} begin {Euler} init; while x < xf do begin y := y + h*fxy(x, y); x := x + h; result end; {while} end. {Euler}