
- •Базовий курс програмування у середовищі 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 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
1 Структура модуля
Модуль (unit) складається з наступних частин:
назви або заголовка (наприклад, unit My_Modyl);
інтерфейсу або розділу оголошень (interface);
виконавчої частини або розділу реалізації (implementation);
розділу або секції ініціалізацій.
Зазначена тут послідовність розділів модуля є обов'язковою, однак блоки, з яких складаються ці розділи, можуть бути частково або повністю відсутніми.
1.1 Заголовок модуля
Заголовок модуля складається із зарезервованого слова unit і унікального ідентифікатора (не повинен повторюватися усередині модуля), що може мати, як і будь-який ідентифікатор, до 64 символів.
1.2 Інтерфейс модуля
interface {Всі об'єкти цього розділу, крім uses, розташовані у
сегменті даних}
[uses... {Перераховуються імена модулів, які використовуються
даним модулем}]
[const... {Описуються константи, які повинні бути доступними
програмі або іншим модулям, що підключили цей модуль}]
[var... {Описуються змінні, які розрізняє програма або інші
модулі, в яких оголошений цей модуль}]
[procedure... {Надається повний заголовок процедури з описом
формальних параметрів}]
[function... {Надається повний заголовок функції з описом
формальних параметрів}
... {Описуються повні заголовки всіх інших процедур і
функцій модуля, доступних програмі або іншим
модулям, що підключили даний модуль}
1.3 Виконавча частина модуля
implementation {Всі об'єкти, крім const і uses, розташовані в
сегменті стека}
[uses... {Перераховуються імена модулів, використаних в
даній виконавчій частині й не зазначених в
інтерфейсі}]
[label... {Перераховуються імена міток, використані в
підпрограмах даного розділу модуля}]
[const... {Описуються константи, використані в
підпрограмах даного розділу модуля й не
оголошені в інтерфейсі}]
[var... {Описуються змінні, використані в підпрограмах
даного розділу модуля й не оголошені в
інтерфейсі}]
[procedure... {Надається скорочений або повний заголовок
процедури, оголошеної в interface}]
{Тіло процедури}
[function... {Надається скорочений або повний заголовок
функції, оголошеної в interface}]
{Тіло функції}
Цей розділ містить у собі опис всіх підпрограм модуля, оголошених в інтерфейсі. У ньому можуть бути також оголошені типи й змінні, що використовуються в підпрограмах даного розділу модуля й не описані в інтерфейсі, а також може міститись перелік локальних міток, застосованих у підпрограмах даного розділу. У розділі implementation можуть бути описані також підпрограми, що беруть участь у роботі оголошених в інтерфейсі процедур і функцій, однак самі в ньому не оголошені. У програмі, що підключає модуль, такі підпрограми є недоступними.
Недоступні для програми також модулі, мітки, константи, типи й змінні, оголошені в цьому розділі. Всі ці об'єкти, крім const, розташовуються в сегменті стека. Значення констант містяться у сегменті даних, однак, у програмі вони все-таки невидимі.
1.4 Розділ ініціалізації.
Цей розділ дозволяє встановити зв'язок з тими або іншими файлами за допомогою процедури assign, ініціювати деякі змінні (наприклад, S:=0; Р:=1), константи-змінні (типізовані константи), виконати якісь інші одноразові дії, які завжди будуть виконуватися на початку програми, наприклад, друк повідомлення на екрані за допомогою процедури writeln('Привіт!');.
Розділ починається словом begin, після якого можуть стояти виконавчі оператори, а закінчується словом end. (з крапкою).
begin
assign(F1,'My_File.dat');
S:=0; P:=1
writeln('Привіт!');
end.
Якщо ініціалізація чого-небудь (файлів, змінних, типізованих констант) не потрібна, то в розділі міститься лише слово end. (з крапкою).
Якщо в програмі і її модулі описуються змінні з тим самим ім'ям, то така змінна модуля в програмі є невидимою. Її доступність у програмі можна забезпечити лише за допомогою кваліфікатора, що ставиться перед такою змінною й відділяється від неї крапкою. У якості кваліфікатора виступає ім'я модуля. Наприклад, у тілі програми з модулем My_Modyl можливі такі оператори:
х:=5; {х – глобальна змінна програми}
My_Modyl.x:=4; {х – описана в інтерфейсі модуля My_Modyl}
х:=х+My_Modyl.х; {в комірці х буде зберігатися число 9}
Якщо до програми підключений модуль, в інтерфейсі якого оголошені інші модулі, то всі об'єкти цих модулів у програмі виявляться невидимими. Для забезпечення їх доступності в програмі всі їх імена необхідно оголосити безпосередньо в директиві компілятора uses програми.