Информатика. Часть 2. Мойзес О.Е - 148 стр.

UptoLike

148
{ Параметры графика }
Xmin= 0.0; Xmax= 2.2; Ymin= 0; Ymax= 1.0;
dNx1= 40; dNx2= 20; dNy1= 20; dNy2= 20;
X1 = 0.0; Y1 = 0; dX = 0.5; dY = 0.2;
{ Исходные данные для решения дифференциального уравнения }
x0=0.0; y0=1.0; {Начальные условия
}
xk=2.0;H=0.1; {Граничнное условие и шаг}
{ Функция-правая часть дифференциального уравнения }
function F(x,y:real):real;
begin F:=x-3*sqrt(y)+0.3 end;
var
Nx1,Nx2,Ny1,Ny2:integer;
x,y,xs,ys:real;
S:string;
dr,dm,i,j,xcr:integer;
{Функция масштабирования по оси OХ}
function Kx(x:real):integer;
begin
Kx:=round(Nx1+(Nx2-Nx1)*(X-Xmin)/(Xma
x-Xmin))
end;
{Функция масштабирования по оси OY}
function Ky(y:real):integer;
begin
Ky:=round(Ny2-(Ny2-Ny1)*(Y-Ymin)/(Ymax-Ymin))
end;
BEGIN
{ Построение рамки, осей и сетки графика. }
dr:=detect;
InitGraph(dr,dm,'c:\bp\bgi');
Nx1:=dNx1; Nx2:=GetMaxX-dNx2;
Ny1:=dNy1; Ny2:=GetMaxY-dNy2;
SetColor(LightGray);
SetLineStyle(DottedLn,0,NormWidth);
{Вычерчивание вертикальных линий сетки.}
x:=x1;
repeat
line(kx(x),Ny1,kx(x),Ny2);
x:=x+dX
until x>Xmax;
{Вычерчивание горизонтальных линий сетки.}
y:=y1;
repeat
line(Nx1,ky(y),Nx2,ky(y));
y:=y+dY
until y>Ymax;
{Вывод заголовка графика}
SetTextJustify(CenterText,BottomText);
xcr:=(Nx1+Nx2) div 2;
SetColor(LightBlue);
OutText
XY(xcr,Ny1-2,'Метод Эйлера');