Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
абораторна робота № 16
Євтушенко Михайло, ТМ-21
Лабораторна робота № 16 Побудова графіків функцій
Мета роботи: навчитися будувати графіки функцій у середовищі Turbo Pascal засобами графічної бібліотеки Graph.
Завдання: розробити алгоритм побудови графіка заданої функції шляхом її табулювання й застосування програм бібліотеки Graph. Алгоритм реалізувати за допомогою окремих підпрограм:
задання проміжку з області визначення функції (відрізок не повинен містити точок, в яких функція не визначена; передбачити перевірку правильності введення значень і ; значення вводити в циклі, доки вони не будуть введені правильно) і одержання табличних значень заданої функції на цьому проміжкові;
визначення границь зміни значень функції для знаходження меж графіка знаходження найбільшого й найменшого значень функції серед табличних значень;
побудови графіка функції на основі табличних значень з використанням бібліотечних графічних підпрограм і функцій. Графік побудувати в окремому графічному вікні, зробивши відступи від краю екрана (наприклад, на 10% його розмірів). По центру вікна розмістити координатні осі з розміткою через деякі проміжки і на координатних осях зробити підписи. Відносно координатних осей, враховуючи, що вони перетинаються в точці (0,0), розмістити зображення графіка функції. При цьому табличні значення функції перерахувати в значення пікселів графічного вікна, враховуючи, що екранні вертикальні координати збільшуються від верхнього до нижнього краю екрана.
Глобальні змінні не використовувати.
Передбачити виконання програми доти, поки на запит, продовжувати роботу 'y' чи ні 'n', користувач не відповість 'n'. За допомогою програми провести побудову графіків не менше, ніж на 4 різних проміжках.
Варіант№8
8. при
Текст програми:
program lab_16;
uses crt,graph;
const n=100;
type mas=array[0..n] of real;
var g_xmax,g_ymax:word;{kilkist pikseliv na ekrani po horyzontali ta
po vertykali}
x,y:mas;{tablytsia znachen funktsii}
x0,xn,ymin,ymax:real;{naibilshi ta naimenshi znachennia x i y}
procedure tabfun(n:integer;var x,y:mas;var x0,xn:real);
{tabuliuvannia funktsii}
var h:real;{krok}
i:integer;
begin
writeln('funktsia f(x)=x^2+3x-1');
writeln('zadaite promizhok[x0,xn]-vvedit znachennia x0 i xn');
readln(x0,xn);
h:=(xn-x0)/n;
for i:=0 to n do
begin x[i]:=x0+h*i;y[i]:=x[i]*x[i]+3*x[i]-1;end;
end;
procedure yminmax(n:integer; x,y:mas;var ymin,ymax:real);
{vyznachennia hranyts zminy znachennia funktsii}
var i: integer;
begin
ymin:=y[0];
ymax:=y[0];
for i:=1 to n do
if y[i]<ymin then ymin:=y[i]
else if y[i]>ymax then ymax:=y[i];
end;
procedure graphik(var x,y:mas; n:integer; x0,xn,ymin,ymax:real);
{pobudova graphika}
var driver,mode:integer;
g_xmas,g_ymas:integer;{rozmiry ekrana v pikseliah}
x1,x2,y1,y2,hx,hy:integer;{kordynaty i rozmiry vikna v pikseliah}
mx,my:real;{maksymum absolutnoi velychynu}
m_ox,m_oy:real;{masshtab:kilkist pikseliv na odynytsy po osi ox i oy}
i:integer;
begin
driver:=detect;
InitGraph(driver,mode,'E:\tp\BGI');
g_xmax:=GetMaxX; g_ymax:=GetMaxY;
x1:=round(0.1*g_xmax);x2:=g_xmax-x1;
y1:=round(0.1*g_ymax);y2:=g_ymax -y1;
hx:=x2-x1; hy:=y2-y1
SetViewPort(x1,y1,x2,y2,ClipOn);
OutText('hrafik funktsii f(x)=x^2+3x-1');
SetColor(15);SetLineStyle(0,0,1);
MoveTo(0,hy div 2);LineRel(hx,0);
MoveTo(hx div 2,0);LineRel(0,hy);
if abs(x0)>abs(xn)then mx:=abs(x0) else mx:=abs(xn);
m_ox:=hx/(2*mx);
if abs(ymin)>abs(ymax)then my:=abs(ymin)else my:=abs(ymax);
m_oy:=hy/(2*my);
SetColor(13); SetLineStyle(0,0,3)
MoveTo(round((x[0]+mx)*m_ox),round(hy/2-y[0]*m_oy));
readln;
CloseGraph;
end;
begin
readkey
clrscr;
tabfun(n,x,y,x0,xn);
ynimax(n,x,y,ymin,ymax);
grafik(x,y,n,x0,xn,ymin,ymax);
end.
Висновок:я навчився будувати графіки функцій у середовищі Turbo Pascal засобами графічної бібліотеки Graph.