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

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

  1. У чому полягає принцип модульного програмування?

  2. Що забезпечує принцип приховування інформації?

  3. Дві основні мети, які досягаються при використанні модулів?

  4. У якому розділі програми вказують підключення модулів?

  5. Які існують особливості при розробці власних модулів?

  6. У чому полягає відмінність сфери дії в модулі та процедурі?

  7. З яких розділів складається модуль?

  8. Що описується у розділі interface?

  9. Що описується у розділі implementation?

  10. Що описується у розділі ініціалізації?

  11. Чи можна використовувати у програмі підпрограму, яка описана у виконавчій частині модуля і не оголошувати її в інтерфейсі?

  12. Чи можна використовувати у програмі константи, змінні, підпрограми, які описані в інтерфейсі модуля, що підключається до модуля, який оголошений у власній програмі?

Практична робота №10

Графіка

Мета роботи: ознайомитись з принципами побудови графіків функцій та інших графічних об’єктів за допомогою засобів TurboPascal.

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

З появою високотехнологічних пристроїв виведення графічної інформації (нових типів моніторів), відкрилися нові можливості для вирішення математичних і технологічних задач на якісно новому рівні. Побудова графіків згідно математичних формул, дуже широко використовується в роботі з ЕОМ (хоча б назвати потужну систему побудови графіків та діаграм інтегровану в пакет програмного забезпечення Microsoft Office). Розглянемо які засоби є в резерві мови програмування Pascal для обробки та виводу графічної інформації.

Графічні функції TurboPascal описані в модулі Graph. Модуль підключається до програми за допомогою ключового слова uses.

program ex_1;

uses graph;

var

...

1 Основні процедури і функції модуля Graph

Процедура InitGraph – ініціює переведення відеоадаптера у відеорежим.

Загальний вигляд:

InitGraph(driver,mode,path);

driver – параметр, що визначає графічний драйвер; 0 – автовизначення, 9 – VGA.

mode – параметр, який задає один з графічних режимів. Для VGA 0 – 640×200 16 кольорів, 1 – 640×350 16 кольорів, 2 – 640×480 16 кольорів. Якщо стоїть автовизначення, то параметр mode треба задавати, вибір буде зроблений на користь максимально можливого з режимів.

path – ім'я файлу і шлях графічного драйвера. Вказувати треба тільки шлях. Зазвичай в Pascal використовується egavga.bgi. Він розташований в каталозі(наприклад): D:\tp7\BGI\

InitGraph(9,2,'d:\tp7\bgi\');

Зауваження: вказаний приклад не працюватиме, оскільки перші два аргументи біля процедури InitGraph – параметри-змінні. Тобто, числа 9 і 2 треба помістити в змінні типу integer, і імена цих змінних ставити як перші два аргументи:

var gd,gm:integer;

...

gd:=9;

gm:=2;

...

InitGraph (gd,gm,'d:\tp7\bgi\');

Процедура DetectGraph – тестує апаратуру і визначає, який графічний драйвер і режим (максимально допустимі) підходять для даного відеоадаптера.

Загальний вигляд:

DetectGraph(driver,mode);

driver – параметр, що визначає відповідний тип графічного драйвера.

mode – параметр, який задає один з графічних режимів, що підтримує даний драйвер.

uses Graph;

var D,M:integer;

begin

DetectGraph(D,M);

write('Тип графічного адаптера: ',D,' Графічний режим: ',M);

end.

Якщо відеоадаптер не був знайдений, то змінна driver поверне значення –2.

Функція GraphResult – повертає код помилки графічної операції, що виконувалася останньою.

Загальний вигляд:

GrapgResult;

Приклад:

uses Graph;

var H,k,l:integer;

begin

DetectGraph(к,l);

InitGraph(к,l,'d:\tp7\bgi\');

H:=GraphResult;

if h=0 then write('OK') else write('Error');

end.

Значення GraphResult, що повертаються:

0 – без помилок;

1 – не ініціалізував графічний режим

2 – не вдалося визначити тип адаптера

3 – не знайдено файл з драйвером

4 – знайдений файл не містить відповідного драйвера

5 – недостатньо пам'яті для завантаження драйвера

6 – недостатньо пам'яті для перегляду областей

7 – недостатньо пам'яті для заповнення областей

8 – не знайдено файл з шрифтом

9 – недостатньо пам'яті для завантаження шрифту

10 – неприпустимий режим для вибраного драйвера

11 – загальна помилка

12 – помилка вводу-виводу

13 – невірний формат шрифту

14 – невірний номер шрифту

Функція GraphErrorMsg – повертає текст-повідомлення про помилку, англійською.

Приклад:

...

GraphResult(i);

GraphErrorMsg(i);

...

Процедура RestoreCrtMode – здійснює перехід у відеорежим (текстовий), який використовувався до переходу в графічний режим. Не звільняє пам'ять і не скидає параметри графічного режиму.

Приклад:

...

RestoreCrtMode;

...

Процедура SetGraphMode – встановлює для драйвера, що використовується, новий графічний режим і очищує екран. Переходить в один з доступних режимів для даного драйвера (на відміну від InitGraph).

Загальний вигляд:

SetGraphMode(mode);

mode – ціле число від 0 до 5, яке визначає режим. За допомогою SetGraphMode можна переходити в інший графічний режим, відмінний від того, що використовується. Може використовуватися спільно з процедурою RestoreCrtMode, щоб тимчасово і швидко переходити з графічного в текстовий режим і назад. SetGraphMode встановлює для всіх графічних параметрів (палітра, колір тощо) значення за замовчуванням, які задані для даного режиму.

Функція GetGraphMode – повертає числовий код графічного режиму, що використовується на даний момент. Для VGA – це 0,1 або 2.

Приклад:

...

var I:integer;

...

I:=GetGraphMode;

...

Функція GetModeName – повертає рядок з ім'ям графічного режиму, що використовується.

Приклад:

...

var I:integer;

...

I:=GetGraphMode;

write('Графічний режим: ',GetModeName(i));

...

Функція GetDriverName – повертає ім'я (без розширення) драйвера, що використовується на даний момент.

Приклад:

...

var I:string;

...

I:=GetDriverName;

write('Драйвер: ',i);

...

або

...

write('Драйвер',GetDriverName);

...

Функція GetMaxMode – повертає код граничного графічного режиму завантаженого драйвера, в якому може працювати графічний адаптер.

Приклад:

uses Graph;

var I:integer;

begin

InitGraph(0,0,''); {шукаємо драйвер в каталозі з програмою}

I:=GetMaxMode;

...

end.

Процедура GetModeRange – повертає діапазон допустимих графічних режимів для вказаного драйвера.

Загальний вигляд:

GetModeRange(driver,minmode,maxmode).

driver – код графічного драйвера.

minmode – код <мінімального> режиму.

maxmode – код граничного допустимого режиму для даного драйвера.

Приклад:

...

var minmod,maxmod:integer;

...

GetModeRange(9,minmod,maxmod);

write('Мінімальний режим: ',minmode,'Граничний режим: ',maxmode);

...

Процедура CloseGraph – відновлює відеорежим (текстовий), що використовувався до переходу в графічний режим, звільняє пам'ять від графічних буферів і драйвера.

Приклад:

...

InitGraph(0,0,'');

CloseGraph;

...

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