готов лаби 4 курс 1 сим / ЛП / otchet_1
.docМіністерство освіти і науки, молоді і спорту України
Кіровоградський національний технічний університет
Механіко-технологічний факультет
Кафедра програмного забезпечення
Дисципліна: « Логічне програмування »
Лабораторна робота № 1
Тема: «Елементарні програми на мові програмування Turbo Prolog»
Виконав: ст. групи КІ-08-2
Салтан В.С.
Перевірила: викладач
Савеленко О. К.
Кіровоград 2011
Мета: Розглянути структуру елементарних програм на мові програмування Turbo Prolog та оволодіти основними навичками роботи в середовищі Turbo Prolog.
Завдання:
-
У вікні редагування набрати програму:
domains
s=symbol
predicates /*описання предикатів*/
algorithm(s)
proced(s)
clauses /*факти і правила*/
algorithm(“C”). /*С-алгоритмічна мова*/
algorithm(“Pascal”). /* Pascal -алгоритмічна мова*/
proced(X):-algorithm(X). /*якщо мова алгоритмічна, то вона є мовою процедурного типу*/
-
Командою Run головного меню запускаємо програму на виконання. Курсор у вікні діалогу вказує на успішне її виконання.
-
У вікні діалогу, обдумуючи відповіді, послідовно набираємо запитання:
-
algorithm(“C”). /*Чи алгоритмічна мова С?*/
-
algorithm(Х). /*Які є алгоритмічні мови?*/
-
proced(“Pascal”). /*Чи процедурного типу мова Pascal?*/
-
proced(Х). /*Які відомі мови процедурного типу?*/
-
proced(”Prolog”). /*Чи є Prolog мовою процедурного типу?*/
-
-
Запускаємо власну програму, що містить факти:
Я (ваше прізвище) – студент (наприклад, student („Іванов”).);
Ваш одногрупник (прізвище) – студент;
І правило:
Якщо людина – студент, то вона має право на фінансову підтримку держави (предикат, що описує право, може бути любим поєднанням рядкових латинських літер).
-
Задати запитання типу:
-
Ви (прізвище) – студент?
-
Які прізвища студентів?
-
Чи маєте ви (прізвище) право на підтримку держави?
-
Чи має право на фінансову підтримку держави Джорж Буш?
-
Лістинг програми:
domains
s=symbol
predicates
student(s)
dopomoga(s)
clauses
student("Saltan").
student("Litvinenko").
dopomoga(X):-student(X).
Рис.1 – Виконання програми
Контрольні питання:
-
Які розділи програми на мові Turbo Prolog ви знаєте?
В мові Turbo Prolog існують такі розділи:
domains
<структури і типи даних>
[global domains]
<зовнішні структури і типи даних>
[data base]
<глобальні предикати динамічної бази даних>
predicates
<визначення предикатів>
[global predicates]
<зовнішні предикати>
clauses
<факти і правила>
[goal]
<цілі>
-
Як записуються константи та змінні на мові Turbo Prolog?
Константи записуються з маленької букви або в лапках, а змінні з великої букви.
-
Синтаксис фактів і правил на мові Turbo Prolog?
Кожен факт і правило треба закінчувати крапкою. Правило складається з заголовка і правила. Допустимі наступні логічні операції: :- - означає if, , - означает and, ; - означает or.