Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторна робота № 14 (16)






Тема: Побудова графіків функцій в Turbo Pascal.

Мета: Уміти створювати та реалізовувати програми, що містять побудову графіків функцій.

 

Теоретичні відомості

Графічний екран дисплея складається з точок, що світяться різним кольором: пікселів. Кількість точок, що підтримує Turbo Pascal 640 по горизонталі і 480 по вертикалі, при чому точка з координатами (0; 0) знаходиться в лівому верхньому куті екрану.

Для роботи з графічним екраном створений модуль Graph. Обов’язково потрібен файл egavga.bgi.

Графічний режим спочатку треба задати. Це виконують так:

Var driver, mode: integer; {для характеристики дисплея}

Begin

Driver: =detect; { стандартна стала}

Initgraph (driver, mode, ‘’); {задання графічного режиму}

If graphresult < > 0 then

Begin

Writeln(‘граф. режим не задано’);

Halt

End;

При побудові графіків функцій у ТР треба виходити з тих проблем, які виникають в співвідношенні декартової системи координат та графічним режимом роботи монітора. Є необхідність переведення декартових координат зі здвигом осі абсцис на 320 точок вправо, а осі ординат на 240 точок вниз, щоб початок координат бачити в центрі екрану. При чому для комп’ютера всі координати повинні бути цілими і додатними, а також прийняти до уваги зміну напрямку координати У.

При написанні програми спочатку малюють Декартові осі, а потім графіки задають промальовкою точок в циклі з параметром For зі зміною параметра від 1 до 640.

Розглянемо графік функції y=x. Це лінія, яка проходить через початок координат і знаходиться в І-й і ІІ-й чвертях декартової площини:

uses crt, graph;

var a, b, x: integer;

begin

a: =0;

initgraph(a, b, '{шлях до файлу egavga.bgi на диску}');

setcolor(2);

line(1, 240, 640, 240);

line(640, 240, 630, 245);

line(640, 240, 630, 235);

outtextxy(300, 10, 'Y');

outtextxy(620, 230, 'X');

line(320, 1, 320, 480);

line(320, 1, 315, 10);

line(320, 1, 325, 10);

for x: =1 to 640 do putpixel(x, 240-(x-320), 5);

readln;

closegraph;

end.

При побудові графіка функції y=x2 установлюють збільшення частоти точок для утворення злитої лінії графіка, тому значення аргументу беруть на порядок частіше:

for x: =1 to 640 do putpixel(x, trunc(240-sqr(x/10-320/10)), 5);

При побудові графіка функції y=sin(x) установлюють розширення по Х, щоб розши-рити діапазон перегляду значень, з огляду на те, що функція приймає значення (-1; 1) і при відсіканні дробної частини графік перетворюється в лінію:

putpixel(x, trunc(240- sin(x/50-320/50)*20), 5);

При побудові tg(x) вирізають з графіка точку при якій cos(x)=0.

if sin((x/50-320/50))< > 0 then

putpixel(x, trunc(240-cos(x/50-320/50)/sin(x/50-320/50)*20), 5);

 

Хід роботи

1. Створіть програму, що будує графіки функцій, наведених у теоретичній частині.

2. Створіть програму, що будує графік функції y=ex.

3. Створіть програму, що будує графік функції y=| x+nx |.

4. Створіть програму, що будує графік функції y=ax2/2.

5. Створіть програму, що будує графік функції тригонометричних функцій по вибору зі списку (tg(x), ctg(x), arcsin(x), arctg(x))

Контрольні запитання

1. Яким чином перевертають графік при переході від декартових координат до графічного екрана монітора і навіщо?

2. Для чого аргумент тригонометричної функції домножають на порядок?

3. Який найменший додатній період має функція sin(x)?

4. Симетрично якої осі координат необхідно розвертати графік при побудові його на комп’ютері?

5. Яким чином можна регулювати кількість віток періодів тригонометричних функцій на екрані?

6. Чи можна задати побудову залежності x(y)?

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал