program lab4;
uses crt, graphabc;
const a= 0 ;
b= 10 ;
c= 0.05 ;
m= 10 ;
d= 250 ;
var y, r, e: real ;
n: integer ;
dy: array [ 1 .. 100 ] of real ;
dx: array [ 1 .. 100 ] of real ;
function f( x, y: real ) : real ;
begin
//f:=2*x+y-1;
f: = sin ( x) ;
end ;
procedure euler( n: integer ; var y: real ) ;
var x, h: real ;
i: integer ;
begin
x: = 0 ;
y: = 1 ;
h: = ( b- a) / n;
for i: = 1 to n do begin
y: = y+ h* f( x, y) ;
x: = x+ h;
dy[ i] : = y;
dx[ i] : = x;
end ;
end ;
procedure draweuler;
var i: integer ; xc, yc: integer ;
begin
xc: = trunc( dx[ 1 ] * m) ;
yc: = trunc( dy[ 1 ] * m) ;
moveto( xc+ d, d- yc) ;
for i: = 2 to n do begin
xc: = trunc( dx[ i] * m) ;
yc: = trunc( dy[ i] * m) ;
lineto( xc+ d, d- yc) ;
end ;
end ;
procedure drawaxis;
var i, j: integer ;
begin
moveto( trunc( dx[ 1 ] * m+ d) , trunc( d- dy[ 1 ] * m) ) ;
lineto( trunc( dx[ 1 ] * m+ d) , 5 ) ;
moveto( trunc( dx[ 1 ] * m+ d) , trunc( d- dy[ 1 ] * m) ) ;
lineto( 400 , trunc( d- dy[ 1 ] * m) ) ;
end ;
begin
clrscr;
write ( 'n=' ) ;
readln ( n) ;
write ( 'e=' ) ;
readln ( e) ;
euler( n, y) ;
clrscr;
draweuler;
setpencolor( clred) ;
drawaxis;
end .
cHJvZ3JhbSBsYWI0Owp1c2VzIGNydCwgZ3JhcGhhYmM7CmNvbnN0IGE9MDsKICAgICAgYj0xMDsKICAgICAgYz0wLjA1OwogICAgICBtPTEwOwogICAgICBkPTI1MDsKICAgICAgCnZhciB5LHIsZTpyZWFsOwogICAgbjppbnRlZ2VyOwogICAgZHk6IGFycmF5WzEuLjEwMF0gb2YgcmVhbDsKICAgIGR4OiBhcnJheVsxLi4xMDBdIG9mIHJlYWw7CgpmdW5jdGlvbiBmKHgseTpyZWFsKTpyZWFsOwpiZWdpbgovL2Y6PTIqeCt5LTE7CmY6PXNpbih4KTsKZW5kOwoKcHJvY2VkdXJlIGV1bGVyKG46aW50ZWdlcjsgdmFyIHk6cmVhbCk7CnZhciB4LGg6cmVhbDsKICAgIGk6aW50ZWdlcjsKYmVnaW4KICAgICB4Oj0wOwogICAgIHk6PTE7CiAgICAgaDo9KGItYSkvbjsKICAgICBmb3IgaTo9MSB0byBuIGRvIGJlZ2luCiAgICAgICAgIHk6PXkraCpmKHgseSk7CiAgICAgICAgIHg6PXgraDsKICAgICAgICAgZHlbaV06PSB5OwogICAgICAgICBkeFtpXTo9IHg7CiAgICAgZW5kOwplbmQ7CgoKcHJvY2VkdXJlIGRyYXdldWxlcjsKdmFyIGk6aW50ZWdlcjsgeGMsIHljOmludGVnZXI7CmJlZ2luCiAgICAgeGM6PSB0cnVuYyhkeFsxXSptKTsKICAgICB5Yzo9IHRydW5jKGR5WzFdKm0pOwogICAgIG1vdmV0byh4YytkLCBkLXljKTsKICAgICBmb3IgaTo9IDIgdG8gbiBkbyBiZWdpbgogICAgICAgICB4Yzo9IHRydW5jKGR4W2ldKm0pOwogICAgICAgICB5Yzo9IHRydW5jKGR5W2ldKm0pOwogICAgICAgICBsaW5ldG8oeGMrZCwgZC15Yyk7CiAgICAgZW5kOwplbmQ7CgoKcHJvY2VkdXJlIGRyYXdheGlzOwp2YXIgaSxqOmludGVnZXI7CmJlZ2luCiAgICAgbW92ZXRvKHRydW5jKGR4WzFdKm0rZCksIHRydW5jKGQtZHlbMV0qbSkpOwogICAgIGxpbmV0byh0cnVuYyhkeFsxXSptK2QpLCA1KTsKICAgICBtb3ZldG8odHJ1bmMoZHhbMV0qbStkKSwgdHJ1bmMoZC1keVsxXSptKSk7CiAgICAgbGluZXRvKDQwMCwgdHJ1bmMoZC1keVsxXSptKSk7CmVuZDsKCgoKYmVnaW4KCmNscnNjcjsKd3JpdGUoJ249Jyk7CnJlYWRsbihuKTsKd3JpdGUoJ2U9Jyk7CnJlYWRsbihlKTsKZXVsZXIobix5KTsKY2xyc2NyOwpkcmF3ZXVsZXI7CnNldHBlbmNvbG9yKGNscmVkKTsKZHJhd2F4aXM7CgoKCmVuZC4KCgoKCgoKCg==