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

UptoLike

146
{ Построение рамки, осей и сетки графика. }
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);
OutTextXY(xcr,Ny1-2,'Метод прямоугольников');{Вывод заголовка}
{Построение прямоугольников}
SetColor(LightMagenta); {Установка цвета рамки прямоугольников}
{светло-розовый}
SetFillStyle(WideDotFill,LightRed);
{Установка типа и цвета закраски}
{точечная,светло-красный}
SetLineStyle(SolidLn,0,NormWidth); {Установка типа линии рамки-
сплошная,тонкая}
x:=a;
h:=(b-a)/n; {Ширина прямоугольника}
Int:=0;
for i:=1 to n do
begin
xc:=x+h/2; {Расчет центра очередного прямоугольника}
yc:=f(xc); {Расчет высоты очередного прямоугольника}
Int:=Int+yc*h;
bar(kx(x),Ny2,kx(x
+h),ky(yc)); {Зарисовка прямоугольника}
rectangle(kx(x),Ny2,kx(x+h),ky(yc));
x:=x+h
end;
{Построение графика подынтегральной функции по точкам}
x:=Xmin; h:=(Xmax-Xmin)/1000;
repeat
PutPixel(kx(x),ky(f(x)),10);
x:=x+h
until x>Xmax;
{Зарисовка точек пересечения высот прямоугольников
с подынтегральной
функцией}
SetColor(Yellow);