
- •Лабораторна робота №19
- •Побудова графіків функції.
- •Теоретична частина.
- •Практична частина.
- •Індивідуальне завдання
- •Завдання.
- •1. Для всіх варіантів необхідно задати графічне вікно, у якому розмістити текст завдання, з використанням шрифту, ф.І.П-б.
- •2. Задати інше вікно у якому, згідно варіантів виконати наступні малюнки :
- •3. Зберегти малюнок у динамічній пам’яті за допомогою відомих процедур .
- •4. Розмістити малюнок у третьому графічному вікні на екрані (бажано з ефектом анімації).
- •1. Побудова складних зображень та малюнків. Виконання завдання
Л.В. Рибакова Модуль 5 Лабораторна робота № 19
Лабораторна робота №19
Тема: ГРАФІЧНІ МОЖЛИВОСТІ TURBO PASCAL
Частина 1
Побудова графіків функції.
Мета: навчитись писати програми, які дозволяють зображувати графіки функцій f(x), заданих на відрізку [a, b].
Теоретична частина.
Перед тим, як приступити до програмування, необхідно методами
математичного аналізу дослідити функцію f(x),задану на деякому
інтервалі (якщо такий заданий) або у всіх її областях визначення;
1. область допустимих значень функції;
2. парнiсть-непарнiсть функції;
3. періодичність функції;
4. монотонність функції;
5. асимптоти функції;
6. екстремальні значення функції.
Після того як це буде виконано, необхідно зробити деякі пе-
ретворення. Такі як:
1. перехід до нової системи координат
x'=x0+x
y'=y0-y, де x0,y0- начало координат в новій
системі, x,y- поточна координата;
2.обчислити коефіцієнт ростягу,рiвний колкості екранних
точок у одиничному відрізку, R=256/(b-a);
3. вибір крока (густина зображення точок графіка);
4. замість параметра x в циклі можна використовувати па-
раметр x=x0+kx, пробiгаючий значення від 0 до 255.
Практична частина.
ПРИКЛАД. Побудувати графік функції y=1/(x2+2*x+1). Дослідимо функцію методом математичного аналізу :
1. функція визначена на всій числовій вiсi, крім точок=-1;
2. функція непарна ;
3. неперіодична;
4. y=-1 асимптота функції;
5. на проміжку [-, -1] - зростає, [-1, +] - зменшується;
6. екстремумів немає;
Перейдемо до нової системи координат з центром екрана
(getmaxx div 2 getmaxy div 2):
x =getmaxx div 2+x
y =getmaxy div 2-y
Оберемо коефіцієнт розтягу k=10.
Тепер перейдемо до програмування:
program grafic ;
uses crt,graph;
var x,y:real;i,k,l,k1,l1:integer;
grDriver : Integer;
grMode : Integer;
ErrCode : Integer;
begin
grDriver := Detect;
InitGraph(grDriver, grMode,'');
ErrCode := GraphResult;
if ErrCode = grOk then
SetBkColor(0);SetColor(15);
ClearViewPort;
k:=getmaxx;l:=getmaxy;
k1:=k div 2; l1:=l div 2;
line(0,l1,k,l1); line(k1,0,k1,l);
for i:=1 to 20 do begin
line(k1,6+i*10,k1+5,6+i*10);
line (10+i*10,l1,15+i*10,l1); end;
x:=-15;
while x<15 do begin
if i<>-1 then begin
y:=1/(sqr(x)+2*x+1);
putpixel(k1+round(x*30),l1-round(y*30),15) end;
x:=x+0.3 end;
outtextxy(100,100,'y=1/(x^2+2*x+1)');
delay(1000); end.
Індивідуальне завдання
1. y=1+x2-x4 9. y=x+ln(1/x)
2. y= (1+x)2 10. y=sin(x2+1)
3.
y=
11. y=sin(x2)+cos(x)-1
4. y=(1-x2)2-3 12.y=1+sin(1/x)
5. y=ln((1-x)/(1+x)) 13. y=(1-x)/(1+x)
6. y=1/(1-x4) 14. y=x*sin(3*x)
7. y=x+1/x 15. y=sin(x)/(x2-x)
8. y=x-1/x2 16. y=1/cos(x)
Частина 2
Побудова простих зображень.
Мета : Вивчити можливості графічного режиму, та засвоїти методику написання програм з використанням процедур модуля Graph для зображення простих фігур та використання їх для освоєння ефекту анімації.
Приведемо приклад з використанням графічних процедур TYRBO PASCAL.
. Побудова сімейства прямих, паралельних вiсi OY.
uses Crt, Graph;
Var Gd, Gm, i: Integer;
begin
Gd := Detect;
InitGraph(Gd, Gm, '');
if GraphResult <> grOk then Halt(1);
FOR I:=10 to 100 do
Line(20, 20+i*5 ,500,20+i*5);
ReadLn;
CloseGraph;
end.
.