
- •Базовий курс програмування у середовищі 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.3.2 Виклик підпрограм
Виклик процедури здійснюється з основної програми або іншої підпрограми за допомогою команд виклику:
<ім'я процедури>(<список фактичних параметрів>);
Виклик функції здійснюється тільки з виразів:
<ім'я функції>(<список фактичних параметрів>);
Фактичними параметрами-значеннями можуть бути як змінні, так і константи різних типів. Не допускаються лише файлові типи та типи, що на них опираються.
Фактичними параметрами-змінними можуть бути змінні будь-яких типів, включаючи файловий. Не допускається лише використання констант.
Фактичними параметрами-константами можуть бути як змінні, так і константи різних типів. Не допускаються лише файлові типи та типи, що на них опираються. Крім того, забороняється виконувати присвоєння формальним параметрам-константам і формальні параметри-константи не можуть передаватися як фактичні іншим підпрограмам.
Команда виклику процедури присвоює значення фактичних параметрів відповідним формальним параметрам, виконує процедуру, визначає параметри-результати, значення яких повертаються через відповідні фактичні параметри в команді виклику.
Функція, на відміну від процедури, повертає тільки один результат.
У розділі команд функції повинна бути команда присвоєння результату функції. Результат функції повертається в основну програму через її ім'я.
1.4 Глобальні та локальні змінні
Змінні, описані в розділі змінних основної програми, називаються глобальними. З ними можна працювати протягом всієї програми; їх дія може розповсюджуватись на декілька вкладених процедур та/або функцій. Змінні, описані в розділі опису конкретної підпрограми, називаються локальними й доступні тільки в межах даної підпрограми.
program Scope;
var A0,B0,C0:integer;
procedure P1;
var A1,B1,C1:integer;
procedure P2;
var A2,B2,C2:integer;
begin
Припустиме використання як глобальних A0,B0,C0,
A1,B1,C1 так і локальних A2,B2,C2
end;
begin
Припустиме використання як глобальних A0,B0,C0
так і локальних A1,B1,C1
end;
begin
Припустиме використання тільки глобальних A0,B0,C0
end;
У наведеному прикладі A0,B0,C0 будуть глобальними для всіх процедур та функцій, що використовуються в програмі. A1,B1,C1 будуть глобальними для всіх процедур та функцій, які описані всередині процедури Р1 ( у даному прикладі для процедури Р2), і одночасно локальними для самої процедури Р1. Дані A2,B2,C2, що об’явлені у самій внутрішній процедурі Р2, будуть тільки локальними.
Правила визначення області дії для ідентифікаторів процедур та функцій:
діють усі ідентифікатори, що визначені всередині процедури/функції;
діють усі ідентифікатори оточуючого контексту, якщо їх імена відрізняються від імен, які об’явлені всередині процедури/функції;
локальні ідентифікатори процедури/функції у зовнішньому оточенні діяти ніколи не будуть;
у випадку спів падіння імен глобального та локального ідентифікаторів діяти буде тільки внутрішній локальний ідентифікатор.
Пояснення четвертого правила на прикладі:
program EqualName;
var A,B,C:integer;
procedure P1;
var A,B,C:real;
procedure P2;
var A,B,C:char;
begin
A,B,C доступні,як символьні змінні
end;
begin
A,B,C доступні,як дійсні змінні
end;
begin
A,B,C доступні,як цілі змінні
end;
Тобто, оголошення у внутрішній процедурі даних з ідентифікаторами, що співпадають за ім’ям з даними зовнішніх процедур, відміняють дію зовнішніх ідентифікаторів і вводять свої локальні описи, незалежно від того співпадають вони за типом, чи ні.
Оператори, що розміщенні у тілі процедури/функції можуть звертатися до її локальних даних (константам та змінним) і змінювати їх значення.
Але слід пам’ятати, що значення локальних даних існують поки процедура/функція працює. Як тільки вона закінчується, всі зміни значень локальних даних, які були зроблені операторами процедур/функцій, зникнуть разом із звільненням пам’яті.
Процедури можуть отримувати й повертати значення не тільки через параметри-змінні, але й через глобальні змінні. Тому списків параметрів у процедури може й не бути.