
- •Базовий курс програмування у середовищі Turbo Pascal Методичні вказівки
- •Базовий курс програмування у середовищі Turbo Pascal Методичні вказівки
- •Практична робота №1
- •Організація вводу та виводу даних
- •Мета роботи: ознайомитись з конструкціями мови Turbo Pascal, структурою програм, стандартними типами даних і процедурами вводу та виводу.
- •Теоретичні відомості
- •1 Особливості мови Turbo Pascal
- •1.1 Спеціальні символи
- •1.2 Зарезервовані (ключові) слова
- •1.3 Ідентифікатори
- •1.5 Числа
- •1.6Рядки
- •1.7 Коментарі
- •2 Структура програми
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №2
- •Логічні та циклічні структури
- •Теоретичні відомості
- •1 Логічні структури
- •1.1 Команда розгалуження if (умовна команда)
- •1.2 Команда goto
- •1.3 Команда вибору (сase)
- •2 Циклічні структури
- •2.1 Команда циклу з параметром (for)
- •2.2 Команда циклу з передумовою (while)
- •2.3 Команда циклу з постумовою (repeat)
- •2.4 Порівняння роботи команд циклу while, repeat та for
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №3
- •Одновимірні масиви. Сортування
- •Мета роботи: ознайомитись з поняттям одновимірних масивів та діями над ними, навчитися застосовувати різні методи сортування для розв’язку математичних і технічних задач.
- •Теоретичні відомості
- •1 Одновимірні масиви
- •1.1 Додавання елементів масиву
- •1.2 Лічильник
- •1.3 Екстремуми
- •2 Методи сортування
- •2.1 Метод лінійного сортування
- •2.2 Сортування методом «бульбашки»
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №4
- •Багатовимірні масиви
- •Мета роботи: вивчити технологію роботи з багатовимірними масивами.
- •Теоретичні відомості
- •1 Опис багатовимірних масивів
- •2 Доступ до елементів масивів
- •3 Масиви ідентичного типу
- •4 Головна та побічна діагоналі
- •6 Ввід матриці
- •7 Виведення матриці
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №5
- •Підпрограми
- •Мета роботи: ознайомитись з правилами використання підпрограм, вивчити відмінності між процедурами та функціями.
- •Теоретичні відомості
- •1 Процедури та функції
- •1.1 Опис процедури
- •1.2 Опис функції
- •1.3 Формальні та фактичні параметри
- •1.3.1 Передача параметрів у підпрограмах
- •1.3.2 Виклик підпрограм
- •1.4 Глобальні та локальні змінні
- •1.5 Основні відмінності між функціями і процедурами
- •2 Рекурсивні функції
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №6
- •Символьні та рядкові змінні
- •Мета роботи: ознайомитись з прийомами роботи із символьними та рядковими змінними.
- •Теоретичні відомості
- •1 Символьні змінні
- •2 Множини
- •3 Рядкові змінні
- •3.1 Оголошення рядкових змінних
- •3.2 Доступ до окремих елементів рядка
- •3.3 Зміна поточної довжини рядка
- •3.4 Злиття рядків
- •3.5 Порівняння рядків
- •3.6 Порожній рядок
- •3.7 Рядки і символи
- •3.8 Масиви символів і рядка
- •3.9 Стандартні підпрограми для обробки рядків.
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №7
- •Записи. Записи з варіантами
- •Мета роботи: навчитись створювати прості бази даних за допомогою записів та записів з варіантами.
- •Теоретичні відомості
- •1 Записи
- •2 Записи з варіантами.
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №8
- •Файли: текстові, типізовані, нетипізовані
- •Мета роботи: ознайомитись з випадками використання файлів, типами файлів та методами обробки елементів файлів.
- •Теоретичні відомості
- •1 Текстові файли
- •2 Типізовані файли. Мітки
- •3 Нетипізовані файли
- •Приклад 4:
- •Приклад 5:
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №9
- •Мета роботи: вивчити структуру та особливості роботи з модулями в Turbo Pascal.
- •Теоретичні відомості
- •1 Структура модуля
- •1.1 Заголовок модуля
- •1.2 Інтерфейс модуля
- •1.3 Виконавча частина модуля
- •1.4 Розділ ініціалізації.
- •2 Етапи розробки модуля
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №10
- •Графіка
- •Мета роботи: ознайомитись з принципами побудови графіків функцій та інших графічних об’єктів за допомогою засобів TurboPascal.
- •Теоретичні відомості
- •1 Основні процедури і функції модуля Graph
- •2 Робота із зображеннями.
- •3 Побудова і масштабування графіків
- •Індивідуальні завдання
- •Контрольні питання
- •1 Дані динамічної структури
- •2 Вказівник
- •3 Списки
- •4 Стек. Черга
- •4.1 Алгоритм побудови стека
- •4.2 Алгоритм побудови черги
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №12
- •Об’єктно-орієнтоване програмування
- •Мета роботи: засвоїти матеріал щодо можливостей TurboPascal при створенні об’єктів.
- •Теоретичні відомості
- •1 Поняття «об'єкт»
- •2 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
Контрольні питання
У чому полягає принцип модульного програмування?
Що забезпечує принцип приховування інформації?
Дві основні мети, які досягаються при використанні модулів?
У якому розділі програми вказують підключення модулів?
Які існують особливості при розробці власних модулів?
У чому полягає відмінність сфери дії в модулі та процедурі?
З яких розділів складається модуль?
Що описується у розділі interface?
Що описується у розділі implementation?
Що описується у розділі ініціалізації?
Чи можна використовувати у програмі підпрограму, яка описана у виконавчій частині модуля і не оголошувати її в інтерфейсі?
Чи можна використовувати у програмі константи, змінні, підпрограми, які описані в інтерфейсі модуля, що підключається до модуля, який оголошений у власній програмі?
Практична робота №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;
...