Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Interface. Зверніть увагу: через те, що умова закінчення в процесі вибору звелася до одного відношення k = m, оператор повторення зі словом REPEAT заміниться на оператор




Begin

Implementation

Interface

END

END

END;

Зверніть увагу: через те, що умова закінчення в процесі вибору звелася до одного відношення k = m, оператор повторення зі словом REPEAT заміниться на оператор циклу з FOR. Дивно, що пошук усіх можливих рішень виконується більш простою програмою, чим у випадку пошуку одного єдиного рішення.

Узагальнений алгоритм, відшукує 92 рішення задачі про вісьмох ферзів. Однак принципово різних рішень усього 12.

Спробуйте самостійно розробити програму пошуку всіх розв’язків.

 


Модулі в Турбо Паскалі

У Турбо Паскалі допускається розбивати програми на частині і зберігати ці частини в окремих файлах на диску. Крім основної програми з'являються так називані модулі, що надають основній програмі чи іншим модулям свої змінні, константи, типи, процедури, функції і т.п. Щоб використовувати модуль у програмі, потрібно вказати його ім'я після uses.

При написанні модуля спочатку описується те, що він надає для загального користування (секція інтерфейсу), а потім – як він улаштований (секція реалізації). Іноді існує секція ініціалізації, де записані дії, що виконуються при підключенні цього модуля. Записується це все так:

unit MyUnit;

(*Интерфейсная секція*)

uses...;

const...;

type...;

procedure...; {Тільки

function...; заголовки}

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

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;

 




Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 424; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.