
- •Базовий курс програмування у середовищі 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 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
Контрольні питання
Яким чином здійснюється опис багатовимірних масивів?
Які дані можуть бути використані у якості індексів та елементів багатовимірного масиву?
Яким чином здійснюється доступ до елементів двовимірного масиву?
Що таке масиви ідентичного типу?
Чи приведе до помилки повторне використання оголошеного в розділі опису типів типу масиву в розділі оголошення змінних?
Яким чином здійснюється ввід матриці?
У чому полягає різниця при вводі (виводі) двовимірного та одновимірного масивів?
Яким чином здійснюється вивід матриці за рядками?
Яким чином здійснюється вивід матриці за стовпцями?
Сформулюйте умову знаходження елементів матриці на головній діагоналі.
Визначте умову знаходження елементів матриці на відрізку прямої, що розташована над (під) головною (побічною) діагоналлю.
Яким чином відбувається виконання процедури read при роботі з багатовимірними масивами?
Для зменшення впливу яких помилок використовують процедуру readln?
Яким чином відбувається виконання процедури writeln при роботі з багатовимірними масивами?
Практична робота №5
Підпрограми
Мета роботи: ознайомитись з правилами використання підпрограм, вивчити відмінності між процедурами та функціями.
Теоретичні відомості
1 Процедури та функції
Підпрограми призначені для реалізації алгоритмів обробки окремих частин деякого складного завдання. Вони дозволяють реалізувати концепцію структурованого програмування, суть якого полягає у розбитті складного завдання на послідовність простих підзадач і складанні для них алгоритмів розв'язку. Розрізняють два види підпрограм – процедури й функції. Вони також поділяються на стандартні й підпрограми користувача. Стандартні підпрограми вже містяться в стандартних модулях мови програмування (в таких модулях як System, Crt, Dos, Graph тощо). Підпрограма користувача – це поіменована група команд, створена й описана в основній програмі в секції підпрограм і до якої можна звернутися з будь-якого місця програми необхідну кількість разів.
1.1 Опис процедури
Загальний опис процедури:
procedure <ім'я процедури> (<список формальних параметрів>);
<розділи описів й оголошень процедури>;
begin
<розділ команд процедури (тіло процедури)>
end;
1.2 Опис функції
Загальний опис функції:
function <ім'я функції>(<список формальних параметрів):<тип функції>;
<розділи описів й оголошень функції>
begin
<розділ команд функції, де обов'язково повинна бути присутня команда виду: ім'я функції:=вираз>
end;
1.3 Формальні та фактичні параметри
При активації процедури/функції їй можна передавати параметри. При цьому необхідно слідкувати, щоб в операторі виклику були вказані всі параметри, які описані у заголовку процедури/функції.
Параметри, що описані у заголовку процедури/функції при її описі, мають назву формальні параметри.
Параметри, що вказуються при виклику процедури/функції, – фактичні параметри.
Між фактичними й формальними параметрами повинна бути відповідність як за їх кількістю, так і за їх типами. Відповідні фактичні й формальні параметри не обов'язково повинні мати однакові імена.
1.3.1 Передача параметрів у підпрограмах
Коректність передачі параметрів, мова йде про формальні, базується на їх порядку переліку у заголовку та сумісності за присвоєнням між відповідними фактичними та формальними параметрами. Сфера дії імен параметрів така, як і локальних даних.
У Turbo Pascal реалізовано тільки три з шістьох загальних способів передачі параметрів:
1. Параметри виду value in.
У Turbo Pascal такі параметри мають назву параметри-значення – вхідні дані для процедури. При описі заголовків процедур/функцій перед ідентифікатором параметрів-значень допоміжні ключові слова не ставлять.
procedure MyProc (Par1,Par2:Type1; Par3,Par4:Type2);
2. Параметри виду adrr inout.
У Turbo Pascal такі параметри мають назву параметри-змінні, за допомогою яких можна повертати результати роботи процедури в основну програму. При описі заголовків процедур/функцій перед ідентифікаторами параметрів-змінних кожного типу необхідно писати ключове слово var, що визначає ці змінні.
procedure MyProc (var Par1,Par2:Type1; var Par3,Par4:Type2);
3. Параметри виду adrr in.
У Turbo Pascal такі параметри мають назву параметри-константи. При описі заголовків процедур/функцій перед ідентифікаторами параметрів-констант необхідно писати ключове слово const.
procedure MyProc (const Par1,Par2:Type1; const Par3,Par4:Type2);
При описі заголовків процедур/функцій можуть також використовуватися безтипові параметри та відкриті параметри-масиви.
Безтипові параметри можуть передаватися тільки за адресою. Головна їх особливість полягає у відсутності зазначення типу параметра у заголовку підпрограми.
procedure MyProc (var Par1,Par2; const Par3,Par4);
Однак, слід пам’ятати, перед використанням такого параметру необхідно виконати приведення даного формального без типового параметру до будь-якого типу.
У списках формальних параметрів підпрограми можна описувати так звані відкриті масиви (масив заздалегідь невідомого розміру):
<ім'я масиву>:array of <ім'я базового типу>
У підпрограмі мінімальне значення індексу такого масиву дорівнює 0, а номер останнього елемента можна отримати за допомогою функції high (<ім'я масиву>). Тобто нумерація елементів починається з 0. Відкритий масив застосовується для почергової обробки в процедурі масивів різних розмірів.
Масиви фіксованих розмірів у списках формальних параметрів не можна записувати за допомогою слова array (наприклад: не array [l..n] of integer, а Mas_Type).