Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabTp_14_grafika.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
57.86 Кб
Скачать

Л.В. Рибакова Модуль 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.

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]