Читайте также:
|
|
Составим программу построения графика функции
, используя кусочно-линейный метод.
Алгоритм действия следующий:
yi = │f(xi)│, где хi = a + i∙h, , ;
а) Xgmin=100; Xgmax=500; Ygmin= 50; Ygmax=300
б) Xgmin=550; Xgmax=620; Ygmin= 10; Ygmax=100.
Тогда построение графика функции на экране происходит установкой точек (Xg,, Yg) соответствующих координатам математическим (xi, f(xi)) и эти точки соединяются отрезками ломаной с применением процедуры lineto.
Оси координат на графическом экране строятся с учетом формул для экранного начала координат:
Программа построения графиков:
Program grafik;
Uses crt, graph;
Var d, m, n, i,j: integer;
a, b: real;
Function f (x: real): real;
Begin if x<>0 then f:=x*x*sin(1/x);
End;
Procedure grafun(xgmin,xgmax,ygmin,ygmax,n:integer;a,b:real);
Var h, m, x, t1, t2:real;
i, xg, yg, xv, yv: integer;
Begin h:= (b-a)/n;
m:=abs(f(а));
for i:=1 to n do
if m<abs(f(a+i*h)) then m:=abs(f(a+i*h));
{ отношение экранных координат к математическим }
t1:=(xgmax-xgmin)/(b-a);
t2:=(ygmax-ygmin)/(2*m);
{ задается цвет и стиль закраски }
Setfillstyle(1, 15);
Bar(xgmin-5, ygmin-5, xgmax+5, ygmax+5);
{ задается экранное начало координат }
xv:=round(xgmin-a*t1);
yv:=round((ygmin+ygmax)/2);
setcolor(1);
{ нарисовать оси }
Line(xv, ygmin, xv, ygmax);
Line(xgmin, yv, xgmax, yv);
{ устанавливаем курсор в начало графика }
Moveto(xgmin, yv-round(f(a)*t2));
Setcolor(4);
for i:=1 to n do
begin x:=a+i*h;
{формулы связи графических и математических координат}
xg:=xgmin+round((x-a)*t1);
yg:=yv-round(f(x)*t2);
lineto(xg, yg);
end;
End;
Begin clrscr; {Очистка экрана}
Writeln(‘ввод a, b, n’);
Readln(a,b,n);
i:=detect;
Initgraph(i, j, ‘ ’);
SetBkColor(7);{задан светло-серый цвет фона}
grafun(100, 500, 50, 300, n, a, b);{первый график строится пределах графического окна (100, 500, 50, 300)}
grafun(550, 620, 10, 100, 200, -0.1, 0.1) {второй график строится в пределах графического окна (550, 620, 10, 100)};
repeat until keypressed; {функция keypressed предназначена для работы с клавиатурой. Она принимает значение true, если буфер клавиатуры не пуст и false, если буфер клавиатуры пуст, эту функцию удобно использовать пока не нажата клавиша}
closegraph;
End.
Рисунок 2
Данная программа строит 2 графика. Первый график строится пределах графического окна (100, 500, 50, 300), а второй график строится в пределах графического окна (550, 620, 10, 100). На примере второго графика показано, какие параметры n, a, b могут быть выбраны для подробного построения искомого графика. В первом случае параметры n, a, b устанавливаются пользователем произвольно.
Дата добавления: 2015-07-20; просмотров: 61 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Точечный метод построения графика | | | Лабораторная работа №2 |