- •Історична довідка
- •Характеристика й особливості мови
- •Алфавіт мови
- •Службові (зарезервовані) слова.
- •Структура програми мови Turbo Pascal
- •Розділ оголошень і угод
- •Розділ текстів процедур і функцій
- •Розділ основного блоку програми
- •Процедури введення-виведення. Деякі вбудовані функції Турбо-Паскаля.
- •Функції числових параметрів.
- •Базові управляючі конструкції Турбо-Паскаля Оператори умовного переходу.
- •1. Оператор if.
- •2. Оператор вибору (case)
- •Оператори циклів у Паскалі
- •1. Цикл із післяумовою (Repeat)
- •2. Цикл із предумовою (While)
- •3. Цикл із лічильником або параметром (For)
- •Концепція типів даних. Типи даних в мові Pascal
- •Дійсні типи
- •Бульовий (логічний) тип
- •Символьні і рядкові змінні
- •1. Символьний тип
- •2. Рядковий тип
- •Перерахований та обмежений типи
- •1. Перерахований тип
- •2. Обмежений тип
- •1. Поняття масиву. Одномірні масиви
- •2. Багатомірні масиви
- •3. Сортування і пошук
- •Множинний тип
- •Тип запис
- •Процедури і функції
- •Формальні і фактичні параметри. Механізм параметрів
- •Параметри - значення
- •Параметри-змінні
- •Безтипові параметри
- •Приведення типів.
- •Процедурні типи
- •Рекурсія Рекурсивні визначення
- •Рекурсивні підпрограми
- •Алгоритми з поверненням. Розв’язок задачі про рух коня
- •Алгоритми з поверненням. Розв’язок задачі про вісьмох ферзів
- •If підходить тнеn
- •Модулі в Турбо Паскалі
- •Модуль crt
- •1. Керування екраном
- •2. Робота з клавіатурою
- •3. Інші можливості
- •Графіка в Турбо Паскалі
- •1. Включення і вимикання графічного режиму.
- •2. Побудова елементарних зображень
- •3. Виведення текстової інформації.
- •Файли в мові програмування Pascal
- •Установчі і завершальні операції
- •Операції введення-виведення
- •Обробка помилок введення-виведення
- •Переміщення по файлу
- •Спеціальні операції
- •Текстові файли
- •1. Оголошення файлової змінної і прив'язка до файлу на диску
- •2. Читання даних з файлу
- •3. Запис даних у файл
- •Двійкові файли
- •1. Типізовані файли
- •2. Нетипізовані файли
- •Статичні і динамічні змінні
- •Покажчики
- •Стан покажчика
- •Установка розмірів динамічної пам'яті
- •Сумісність і перетворення посилкових типів
- •Динамічні структури даних
- •Динамічні змінні: інші види списків, стек і черга.
- •1. Інші види списків
- •2. Стек і черга
- •Дерева і пошук у деревах
- •1. Визначення й описи структур даних
- •1. Масив
- •2. Список
- •3. Дерево
- •2. Алгоритми
- •1. Лінійний пошук у масиві
- •2. Двійковий пошук
- •3. Лінійний пошук у списку
- •Змішані таблиці
- •Об’єктно-орієнтоване програмування. Що таке об’єктно-орієнтоване програмування
- •Інкапсуляція
- •Спадкування
- •Віртуальні методи і поліморфізм
- •Конструктори, динамічні об'єкти і деструктори
- •Поля і методи: сховані і загальнодоступні
- •Системно- залежні розширення
- •Налагодження змінних
- •Оверлеї
- •Переривання і системні виклики
- •Доступ до пам'яті і портів
- •Перевизначення переривань
Формальні і фактичні параметри. Механізм параметрів
У заголовку процедури чи функції, як ми вже знаємо, може міститися список параметрів. Параметри являють собою ідентифікатори змінних і служать для обміну значеннями між підпрограмою і викликаючою її програмною одиницею. При цьому в описі підпрограми, оскільки він включається в текст програми один раз, імена параметрів вибираються певним чином і безвідносно до імен змінних які використовуються в інших частинах програми. Такі параметри, імена яких зазначені в заголовку підпрограми, називаються формальними.
З іншого боку, при кожному новому зверненні до підпрограми в неї можуть передаватися значення різних змінних. Такі змінні, імена яких підставляються в оператор виклику підпрограми при фактичному звертанні до неї, називаються фактичними параметрами.
При виклику процедури чи функції кількість і тип фактичних параметрів повинні відповідати кількості і типу формальних параметрів. З останнього, утім, є виключення.
Список формальних параметрів указується після імені підпрограми і заключається в круглі дужки. Опис формальних параметрів дуже схожий на опис змінних у блоці. Кожен параметр, заданий у заголовку вважається локальним у даній підпрограмі так само, як і змінні, описані в блоці цієї підпрограми.
Ідентифікатори формальних параметрів можна вважати умовними позначеннями в тілі підпрограми тих реальних чи ФАКТИЧНИХ параметрів, що будуть передані в підпрограму при її виклику.
Нижче приводяться синтаксичні діаграми для формальних параметрів.
Приклади заголовків процедур і функцій:
function MaxElem ( A:Vector; n=byte ): real;
Procedure Sum (А,В:Matrix; var С:Matrix );
Procedure Move ( var Source, Dest; n : word);
Слід звернути увагу на декілька обставин. По-перше, типи формальних параметрів повині обов’язково позначатись ідентифікаторами. Наприклад, наступний заголовок є неприпустимим:
Procedure Incorrect ( var A : array[1..10] of byte )
Якщо необхідно передати в підпрограмму параметр із типом, який визначає програміст, слід скористатись його ідентифікатором, наприклад:
type
MyArray = array[1..10] of byte;
procedure Correct ( var A : MyArray ) ;
Таке обмеження має пряме відношення до питань еквівалентності типів Справді, іменна еквівалентність типів, прийнята в мові Pascal, приведе до того, що явне завдання типу формального параметра виключить можливість зіставлення його з будь-яким типом фактичного параметра, навіть якщо обидва цих типа будуть описані однаково.
Із приведених вище синтаксичних діаграм випливає, що в списку формальних параметрів підпрограм припустимі принаймні три способи їхнього завдання:
1. Параметри, перед якими відсутнє службове слово var і за якими вказаний ідентифікатор типу.
2. Параметри, перед якими є службове слово var і за яким стоїть тип.
3. Параметри, перед якими є службове слово var після якого не вказаний тип.
Ці три способи завдання формальних параметрів відображають три різних способи передачі параметрів. перший спосіб називається передачею параметрів за значенням, другий спосіб - передачею параметрів по посиланню, третій спосіб передачею не типізованих параметрів по посиланню. Одна підпрограма може одержувати різні параметри всіма трьома способами одночасно.
Перші два способи передачі параметрів (ці параметри також називаються параметрами-значеннями і параметрами-змінними) були визначені в авторській версії мови Pascal, третій спосіб мається тільки в Turbo Pascal і являє деякий відступ від принципів строгої типізації, характерних для мови.