Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпора прогр кол 1)).docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
59.01 Кб
Скачать

7.Модулі.

USES < ім’я1 >,…

- Стандартні модулі.

  • SYSTEM(автоматично) представляє бібліотеку часу виконання програм, яка підтримує динамічний розподіл пам’яті;

  • CRT – встановлює режим роботи адаптера дисплея, організує прямий вивід в буфер екрану, регулює зображення символів;

  • PRINTER – забезпечує зв’язок між процесором і прінтером;

LST – стандартний логічний файл;

  • TURBO3 і GRAPH3 – для підтримки програм, написаних у версії 3.0

  • GRAPH – реалізує бібліотеку підпрограм, створену фірмою BORLAND;

  • OVERLAY (може виникнути ситуація, коли значний об’єм програми буде перевищувати розмір доступної оперативної пам’яті).

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  1. Основні способи використання та розміщення підпрограм.

Паскаль допускає 5 основних способiв використання та розмiщення пiдпрограм:

  • основна програма, процедури та функцiї розмiщенi в одному файлi;

  • пiдпрограми розмiщенi в окремих файлах та викликаються в основний файл з допомогою директиви компiлятора $I;

  • пiдпрограми оформлюються як "зовнiшнi" та викликаються з основної програми.

2. Формат процедур та функцій, визначених користувачем.

  • Процедури користувача - це iменована група операторiв, яка реалiзує певну частину загальної задачi, що викликається по iменi при необхiдностi використання з будь-якої позицiї роздiлу операторiв.

  • Формат:

  • Procedure <iм'я>{(формальнi параметри)};

  • <роздiли описiв>

  • begin

  • <роздiл операторiв>

  • end;

  • Формат:

  • Function <iм'я>{(формальнi параметри)}:<тип результату>;

  • <роздiл описiв>

  • begin

  • <роздiл операторiв>

  • end;

3.Параметри.

  • Паскаль пiдтримує два способи передачi параметрiв:по значенню та по зсилкам.

  • - Формальні та фактичні параметри.

  • I. Формальний параметр є змiнною, локальною в блоцi. Фактичний тоже може бути буть-яким виразом того ж типу, що i вiдповiдний йому формальний параметр. Такi параметри називаються параметрами-значеннями.

  • II. Фактичний параметр є змiнною. Формальний параметр означає цю фактичну змiнну на протязi всього часу активiзацiї блоку.

  • -Параметри-змiннi. Для їх опису в секцiї формальних параметрiв служить Var.

  • - Параметри-значення та параметри-змінні.

  • Допускається комбiнацiя параметрiв-значень i параметрiв-змiнних в однiй секцiї формальних параметрiв:

  • Procedure Prots(Var A,B,C:real; S:boolean);

  • A,B,C-параметри-змiннi, а S-параметри-значення.

4.Правила використання та визначення області дії ідентифікаторів.

Програма на мовi Паскаль має модульну структуру та може складатись з ряду вкладених один в одних блокiв. Правила вiрного використання та визначення областi дiї iдентифiкаторiв:

  1. кожен iдентифiкатор повинен бути описаний перед тим, як використовуватись;

  2. область дiї iдентифiкатора є блок, в якому вiн описаний;

  3. всi iдентифiкатори в блоцi рiзнi, тобто не повиннi повторюватись.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Модуль - це програма, яка має спеціальну структуру, містить свої внутрішні описування та виконавчу частину, але сама організація роботи модуля може бути схованою, оскільки модуль розподіляється на окремі частини, не всі з котрих є доступними для користувача. Структура модуля:

UIN <ідентифікатор модуля>

{заголовок}

INTERFACE [USES <список модулів>;]

{інтерфейсна секція}

<відкриті описування>;

IMPLEMENTATION [USES <список модулів>;]

{секція реалізації}

<закриті описування>;

[begin <операторна частина>]

{секція ініціалізації}

end.

Підключення модулів до програми Виконується за допомогою рядка USES безпосередньо після заголовку. При цьому стають доступними інтерфейсні ("зовнішні") описування констант, змінних, процедур чи функцій цих модулів. Модуль SYSTEM.TPU підключається автоматично. Модуль що приєднюється розшукується компілятором: a) a) серед резидентних модулів, завантажених у пам'ять під час запуску компілятора із бібліотеки TURBO.TPL b) у поточному каталозі c) у каталогах, наданих у списку каталогів файлів в меню options/directories/unit directories Тут надаються шляхи пошуку у форматі DOS: \GRPH DI;\MY DI\OLD;\HELP; При підключенні ряду модулів бажано виконувати правило: якщо один модуль використовує інші, то в переліку їх у рядку uses цей модуль треба указувати після всіх модулів, які він використовує, навіть, коли вони не використовуються явно головною програмою. Якщо один і той самий ідентифікатор зустрічається у різних модулях, то, оскільки вони компілюються у черзі слідування, виникає вкладена структура, така, що кожний внутрішній модуль відміняє призначення зовнішнього (як локальне описування по відношенню до інших) Якщо треба отримати значення, пов'язані з конкретним модулем, треба використати кваліфікатор - ім'я модуля: <кваліфікатор>.<ідентифікатор> Непряме використання модулів 1. 1. Якщо головна програма використовує модуль, який, в свою чергу, звертається до інших модулів, їх треба указувати у рядку uses головної програми за визначеним приоритетом. Приклад

program host; uses unit1,unit2; const a=b; var b:ar; begin : Writeln(f(b)); end.

unit unit2 interface uses unit1; const b=c; function f(a:ar):byte; implementation end.

unit unit1 interface const c=1; type ar=array[1..100] of byte; implementation end.

Використання рядка uses у секції реалізації модуля робить посилання на інший модуль невидимим, але це посилання повинно бути зроблене перед його використанням. Приклад

program host; uses unit1,unit2; var и:integer; begin : и:=b; : end.

unit unit2; interface var b:integer; implementation uses unit1; const d=c; : begin b:=d; end.

unit unit1; interface const c=1; implementation end.

Перехресні посилання на модулі Можна робити перехресні посилання, як правило, на процедури чи функції

unit u1 interface implementation uses u2; : end.

unit u2 interface implementation uses u1; : end.

Такі перехресні посилання можуть виконуватись тільки у секції реалізації, також треба слідкувати, щоб описування з'являлись до їх використання. У цьому випадку інтерфейсні секції можуть бути скомпоновані за загальним правилом (у прикладі - у будь-якому порядку, оскільки інтерфейсні секції не залежать одна від одної). Правила розподілення програми на модулі 1. Рекомендується створювати окремий модуль, що містить всі глобальні визначення: константи, типи, змінні, оскільки для подключених модулів описування у головній програмі є недосяжними. (Модулям досяжні їх описування та описування модулів, що вони викликають, тому кожний із наступних модулів повинен викликати модуль з глобальними описуваннями. 2. Головним модулем як правило стає головна програма. 3. У наступні модулі виділяють підпрограми, об'єднані за логічною ознакою. Виділені у окремий модуль підпрограми не повинні залежати від програм у інших модулях, інакше зміни у одному із методів викликають зміни у інших, від нього залежних, і, як наслідок, їх повторну компіляцію. Порядок компіляції Як головна програма, так і модулі компілюються за допомогою меню compile/compile Після трансляції модулі .TPU розміщуються у каталозі, визначеному options/directories/exe & TPU directory При утворенні .EXE-файлу відповідні .TPU-файли розшукуються за описаним вище порядком в каталогах, визначених в options/directories/unit directories Коли у інтерфейсну частину модуля вносяться зміни, то всі модулі, які його використовують, треба перекомпілювати. Якщо зміни стосуються тільки секції реалізації, то перекомпілюється тільки змінений модуль. При створенні .EXE-файлу з підключенням зовнішніх модулів можна використовувати меню COMPILE: compile/primary file в тому разі, якщо головна програма не знаходиться у поточному вікні редагування. При цьому відчиняється вікно primary file Підвікно Primary program file - задає ім'я головного файлу, який потрібно відкомпілювати з включенням зовнішніх модулів. Clear primary file - очищує це підвікно. Додатково можна визначити режим компіляції модулів, що приєднюються: compile/make compile/buildv Compile/make - створює файл "EXE", при цьому файли компілюються у відповідності з правилами: 1. Якщо compile/primary file містить ім'я головного файлу, він компілюється, інакше компілюється файл у поточному вікні редагування. 2. Перевіряються всі файли, від яких залежить головний, і, якщо вихідні .PAS файли мали зміни після створення відповідних файлів .TPU, вони перекомпілюються так само, як і залежні від зміненого модуля інші модулі. Compile/build - перекомпіляція виконується для всіх модулів, що викликаються головним, незалежно від того, були чи ні вони змінені (компіляція не виконується, якщо не знайдено відповідного модуля з розширенням .PAS).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]