Паскаль: область дії, модулі, структури, Детальна інформація
Паскаль: область дії, модулі, структури
end.
2. Модуль – збірник означень
Повернемося до задач 3.19–3.22. У програмах для їх розв'язання використовуються ті самі підпрограми обчислення коефіцієнтів рівняння прямої та перевірки, чи лежать точки по один бік прямої. Ці спільні підпрограми, а також інші означення, можна вилучити з програм і зібрати в спеціальному "збірнику означень". Цьому збірнику можна дати ім'я і вказувати його в програмах замість вилучених означень, помітно скорочуючи текст програм. Стандарт мови Паскаль, правда, такої можливості не дає, але всі системи програмування її забезпечують. Збірник означень називається модулем; конкретний його синтаксис залежить від системи програмування. Розглянемо модулі на прикладі діалекту Турбо Паскаль.
Приклад 7.3. Напишемо модуль з означеннями імен normcoef і oneside – імен підпрограм обчислення коефіцієнтів нормалізованого рівняння та перевірки, чи лежать дві точки по один бік прямої (див. відповідь до задачі 3.19).
Модуль має загальний вигляд:
Unit ім'я-модуля;
Інтерфейсний розділ;
Розділ реалізації;
Розділ ініціалізації
end.
Інтерфейсний розділ починається службовим словом Interface і містить означення імен, призначених для використання за межами модуля. Проте замість підпрограм тут записуються тільки їх заголовки. У нашому прикладі цей розділ виглядає так:
Interface
procedure normcoef(x1, y1, x2, y2 : real; var a, b, c : real);
function oneside(x1, y1, x2, y2, a, b, c : real) : boolean;
Слово "інтерфейс" перекочувало з англійської. Одне з його значень – точка з'єднання, взаємодії різноманітних систем. Інше – спосіб сприйняття і виразу даних, заданий програмою. Інтерфейс програми можна розуміти як "зовнішній вигляд її виконання". Відповідно інтерфейс модуля – це "те, що в ньому видно ззовні". У даному прикладі це заголовки двох підпрограм.
Розділ реалізації починається службовим словом Implementation і містить підпрограми, вказані в інтерфейсному розділі, але зі скороченими заголовками – за словом function або procedure записується тільки ім'я. У нашому випадку вигляд цього розділу такий:
Implementation {"втілення", "реалізація"}
procedure normcoef; {скорочений заголовок}
begin ... {повний блок; див. відповідь до задачі 3.21} end;
function oneside; {скорочений заголовок}
begin ... {повний блок; див. відповідь до задачі 3.19} end;
o
th
"
o
Якби в цих підпрограмах використовувалися підпрограми, не вказані в інтерфейсному розділі, то їх слід було б записати на початку розділу реалізації. У нас таких поки що немає.
Узагалі, імена, означені в розділі реалізації і не вказані в інтерфейсному розділі, називаються іменами, захованими в модулі. Вони призначені для використання всередині модуля, але не за його межами.
Відзначимо, що для модуля діють ті ж самі правила дії іменувань, що і для програм.
Розділ ініціалізації задає дії, що виконуються один разів на початку виконання програми, яка використовує означення модуля. Він має вигляд:
Begin послідовність операторів
2. Модуль – збірник означень
Повернемося до задач 3.19–3.22. У програмах для їх розв'язання використовуються ті самі підпрограми обчислення коефіцієнтів рівняння прямої та перевірки, чи лежать точки по один бік прямої. Ці спільні підпрограми, а також інші означення, можна вилучити з програм і зібрати в спеціальному "збірнику означень". Цьому збірнику можна дати ім'я і вказувати його в програмах замість вилучених означень, помітно скорочуючи текст програм. Стандарт мови Паскаль, правда, такої можливості не дає, але всі системи програмування її забезпечують. Збірник означень називається модулем; конкретний його синтаксис залежить від системи програмування. Розглянемо модулі на прикладі діалекту Турбо Паскаль.
Приклад 7.3. Напишемо модуль з означеннями імен normcoef і oneside – імен підпрограм обчислення коефіцієнтів нормалізованого рівняння та перевірки, чи лежать дві точки по один бік прямої (див. відповідь до задачі 3.19).
Модуль має загальний вигляд:
Unit ім'я-модуля;
Інтерфейсний розділ;
Розділ реалізації;
Розділ ініціалізації
end.
Інтерфейсний розділ починається службовим словом Interface і містить означення імен, призначених для використання за межами модуля. Проте замість підпрограм тут записуються тільки їх заголовки. У нашому прикладі цей розділ виглядає так:
Interface
procedure normcoef(x1, y1, x2, y2 : real; var a, b, c : real);
function oneside(x1, y1, x2, y2, a, b, c : real) : boolean;
Слово "інтерфейс" перекочувало з англійської. Одне з його значень – точка з'єднання, взаємодії різноманітних систем. Інше – спосіб сприйняття і виразу даних, заданий програмою. Інтерфейс програми можна розуміти як "зовнішній вигляд її виконання". Відповідно інтерфейс модуля – це "те, що в ньому видно ззовні". У даному прикладі це заголовки двох підпрограм.
Розділ реалізації починається службовим словом Implementation і містить підпрограми, вказані в інтерфейсному розділі, але зі скороченими заголовками – за словом function або procedure записується тільки ім'я. У нашому випадку вигляд цього розділу такий:
Implementation {"втілення", "реалізація"}
procedure normcoef; {скорочений заголовок}
begin ... {повний блок; див. відповідь до задачі 3.21} end;
function oneside; {скорочений заголовок}
begin ... {повний блок; див. відповідь до задачі 3.19} end;
o
th
"
o
Якби в цих підпрограмах використовувалися підпрограми, не вказані в інтерфейсному розділі, то їх слід було б записати на початку розділу реалізації. У нас таких поки що немає.
Узагалі, імена, означені в розділі реалізації і не вказані в інтерфейсному розділі, називаються іменами, захованими в модулі. Вони призначені для використання всередині модуля, але не за його межами.
Відзначимо, що для модуля діють ті ж самі правила дії іменувань, що і для програм.
Розділ ініціалізації задає дії, що виконуються один разів на початку виконання програми, яка використовує означення модуля. Він має вигляд:
Begin послідовність операторів
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021