Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Модуль CRT

Begin

Begin

Begin

Begin

Begin

Implementation

Interface

Begin

Implementation

(*Секція реалізації*)

uses ...;

const ...;

type ...;

procedure ...; {Реалізація всіх описаних

begin процедур і функцій}

...

end;

function ...;

...

end;

[begin]

(*Секція ініціалізації*)

end.

Розглянемо частини модуля докладніше. Uses у интерфейсній секції може бути потрібний, якщо в ній використовуються які-небудь ресурси з інших модулів. Процедури і функції тут тільки описуються, але не реалізуються, тобто не записуються тіла процедур і функцій (begin ... end;). У секції реалізації можна також підключати інші модулі; створювати змінні, константи, типи, процедури і функції, що «видні» тільки усередині цього модуля, ніякий інший модуль чи програма на може ними користатися. Тут же обов'язково повинні бути записані всі процедури і функції (цілком). Параметри (у дужках) після імені процедури і функції в секції реалізації можна не вказувати.

Секція ініціалізації містить ті дії, що повинні виконуватися коли наш модуль підключається до програми, тобто до того як почне працювати сама програма. Модуль graph, наприклад встановлює в секції ініціалізації значення за замовчуванням кольору ліній і фону, стиль ліній, стиль заливання т.п.

При збереженні модуля йому потрібно дати таке ж ім'я, як і після unit у тексті модуля. Імена файлів, що містять модулі, повинні мати розширення «pas», також як і програми.

Розглянемо приклад. Наш модуль призначається для операцій із тривимірними векторами:

unit Vectors;

type tVec3D = record

x,y,z: real;

end;

procedure VecAdd(a,b: tVec3D; var c: tVec3D);

procedure VecSub(a,b: tVec3D; var c: tVec3D);

procedure VecMultNum(k: real; a: tVec3D; var b: tVec3D);

function ScalarProduct(a,b: tVec3D): real;

 

procedure VecAdd(a,b: tVec3D; var c: tVec3D);

c.x:=a.x+b.x;

c.y:=a.y+b.y;

c.z:=a.z+b.z;

end;

procedure VecSub(a,b: tVec3D; var c: tVec3D);

c.x:=a.x-b.x;

c.y:=a.y-b.y;

c.z:=a.z-b.z;

end;

procedure VecMultNum(k: real; a: tVec3D; var b: tVec3D);

b.x:=k*a.x;

b.y:=k*a.y;

b.z:=k*a.z;

end;

function ScalarProduct(a,b: tVec3D): real;

ScalarProduct:=a.x*b.x+a.y*b.y+a.z*b.z;

end;

end.

У програмі наш модуль можна використовувати, наприклад, так:

program xxx;

uses Vectors;

var v1,v2,res: tVec3D;

...

...

VecMultNum(0.2,v1,res);

VecSub(v2,res,res);

{у результаті res = v2-0.2×v1}

...

end.

У випадках, коли кілька модулів містять об'єкти з однаковими іменами, звертатися до них потрібно з вказівкою імені модуля: <ім'я модуля>.<ім'я об'єкта>. Нехай, наприклад, модулі unit1 і unit2 містять процедури з однаковими іменами proc1, тоді звертатися до них слід так: unit1.proc1; і unit2.proc2; .

Переваги модулів:

1. Засоби, узяті з модулів дозволяють не повторювати в програмах ті самі фрагменти.

2. Змінні, процедури й інші об'єкти можна сховати в секції реалізації, якщо їхнє необдумане виконання може зіпсувати програму.

3. Модулі компілюються окремо від головної програми, тому при компіляції всієї програми обробляється тільки головна програма (менші витрати часу при налагодженні програм). Це особливо важливо для великих програм.

Велика програма стає більш зрозумілої, якщо різні її частини розташувати в різних модулях, відповідно до їх призначення.


Модуль CRT - набір засобів для роботи з екраном у текстовому режимі, клавіатурою і для керування звуком. Для того щоб використовувати ці засоби потрібно після заголовка програми записати: uses CRT;.


Читайте також:

  1. V міні – модуль
  2. Високочастотні перетворювачі модульної структури
  3. Друга модульна контрольна робота
  4. Друга модульна контрольна робота
  5. За конструктивними особливостями фритюр-ниці поділяють на секційно-модульні та ті, які входять до комплекту малогабаритного обладнання.
  6. За кредитно-модульною системою
  7. ЗАВДАННЯ ТА МЕТОДИЧНІ ВКАЗІВКИ ДО МОДУЛЬНОЇ КОНТРОЛЬНОЇ РОБОТИ № 1
  8. ЗАВДАННЯ ТА МЕТОДИЧНІ ВКАЗІВКИ ДО МОДУЛЬНОЇ КОНТРОЛЬНОЇ РОБОТИ № 2
  9. Заліковий МОДУЛЬ 1 . Економічна і соціальна географія світу
  10. Заліковий модуль 2. ТЕХНОЛОГІЇ ВЕДУЧИХ ГАЛУЗЕЙ НАРОДНОГО ГОСПОДАРСТВА
  11. Заліковий модуль І. Інституціональна система національної економіки
  12. Заліковий модуль І. Інституціональна система національної економіки




Переглядів: 444

<== попередня сторінка | наступна сторінка ==>
Var Ident, | Керування екраном

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.006 сек.