Студопедия — Лабораторная работа № 5. Программирование на языке ПРОЛОГ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа № 5. Программирование на языке ПРОЛОГ






Программирование на языке ПРОЛОГ

 

1. Изучите главное меню оболочки Turbo-Prolog. (см. пояснения по выполнению лабораторной работы).

2. Научитесь открывать программы-примеры и запускать их.

3. Наберите первую программу на Прологе под названием «Привет, мир!» (см. пояснения к работе).

4. Изучите основные блоки программы на Прологе. Определите, какие программные блоки обязательны, а какие – нет.

5. Наберите программу «непарные страны Европы», сравните получаемый ответ с ответом других студентов. Он должен быть одинаковым для всех.

6. Возьмите задание 2 контрольной работы для варианта 10 и попробуйте решить его.

ПОДСКАЗКА: в папке «Примеры» (EXAMPLES) можно отыскать похожую задачу и слегка видоизменить её.

7. Найдите в пояснениях к работе пример задачи на поиск факториала. Наберите её и решите подобную задачу для вычисления 10!

8. Обратитесь к преподавателю для получения дополнительных упражнений по Прологу, зависящих от вашего направления обучения (конструирование или технология).

 

 

Пояснения по выполнению лабораторной работы № 5

Главное меню Турбо-Пролога включает в себя 7 опций (команд) в верхней части экрана. Первая буква названия каждой из команд выделена при помощи увеличенной яркости. Выделение означает, что для задания команды достаточно нажать лишь первую букву ее названия.

Команды относятся к 7 функциям, описываемым в меню Турбо-Пролога:

1. Запуск программы на счет (Run)

2. Трансляция программы (Compile)

3. Редактирование текста программы (Edit)

4. Задание опций компилятора (Options)

5. Работа с файлами (Files)

6. Настройка системы в соответствии с индивидуальными потребностями (Setup)

7. Выход из системы (Quit)

 

Существует два способа задания команд. Первый требует нажатия клавиши, соответствующей первой букве названия выбранной команды. Так, для выбора команды Edit необходимо нажать Е. Для окончания работы с командой используется клавиша Esc. Второй способ состоит в перемещении по меню при помощи стрелок; переход к работе с выбранной командой осуществляется нажатием Enter.

Главный экран содержит четыре окна (рис. 22.). В левом верхнем углу располагается окно редактора Турбо-Пролога (Editor), в правом верхнем углу – окно диалога (Dialog), в левом нижнем – окно сообщений (Message), в правом нижнем – окно трассировки (Trace).

 

Run Compile Edit Options Files Setup Quit

 

Editor Line1 Col1 Indent Insert WELCOM Predicates Hello Goal Hello. Clauses Hello:- Write(“Welcome to Turbo Prolog!”), nl.       Load Save  
File name: WELCOME.PRO
Rename File Name Module list Zap file in editor Erase Operating system  

 

 

Message Compiling WELCOME.PRO Hello Compilation successful Trace

Рис. 22. Вид главного экрана.

 

После ввода программы экран компьютера должен выглядеть так, как это показано на рисунке. Для того чтобы запустить ее, сначала требуется нажать клавишу Esc. Курсор редактора при этом исчезнет, а курсор главного меню укажет на команду Edit. Далее следует задать команду Run. Результат работы программы - в окне диалога Dialog.

Базовое понятие языка ПРОЛОГ – это предикат, или отношение между объектами (доменами). Имена объектов записываются с маленькой буквы, если это константы, и с большой буквы, если это переменные.

Отдельно выделенный предикат называется фактом, например,

likes(john,camera).

likes(tom,computer).

likes(kathy,X).

Первые два предиката likes описывают отношение объектов john и tom к объектам camera и computer, а третий предикат likes описывают отношение объекта kathy к неизвестному объекту.

Программа, написанная на Турбо-Прологе, состоит из 5 разделов (есть необязательные!), представленных в таблице 5.

 

Таблица 5.

 

  /*------------------------------------------------*/ /* */ /* Комментарии */ /*----------------------------------------------- */     domains ‹описание доменов› database ‹описание предикатов динамической базы данных› predicates ‹описание предикатов› goal ‹целевое утверждение› clauses ‹утверждения›  

 

Раздел domains содержит определения доменов, которые описывают различные классы объектов. Имеется 6 встроенных типов доменов, представленных в таблице 6.

Для рассмотренных ранее фактов в разделах domains и predicates должны появиться такие описания:

domains

person, things = symbol

predicates

likes(person, things)

 

Таблица 6.

 

Тип данных Ключевое слово Диапазон значений Примеры использования
Символы Char Все возможные символы “a”,”b”,”#”,”B”, “13”,”%”
Целые числа Integer От –32768 до 32767 -63, 84, 2349,
Действительные числа Real От +1Е –307 до +1Е308 -42769, 8324, 360, 093, 1.25E23, 5.15E-
Строки String Последовательность символов (не более 250) “Today”,”123”, “just_a_reminder”
Символические имена Symbol 1).Последова-тельность букв, цифр и подчер-ков; первый символ - строч- ная буква 2).Последова- тельность символов, заключенная в кавычки pay _check, school_day, flower   “Stars and Stripes”, ”Singing in the rain”
Файл File Допустимое в DOS имя файла Mail.txt, BIRDS.DBA

 

Можно не описывать в разделе domains домены person, things. Тогда в разделе predicates необходимо сделать следующее описание:

predicates

likes(symbol, symbol)

 

Раздел database содержит утверждения динамической базы данных (может быть опущен).

Раздел predicates служит для описания используемых предикатов.

Раздел goal содержит формулировку задачи, записанную как внутренняя цель (чаще задачи формулируются как внешние цели).

В разделе clauses содержаться данные и знания, описывающие предметную область (факты и правила).

Кроме фактов для описания знаний используются правила. Согласно синтаксису Пролога, правила состоят из головы (предикат Вn) и тела (предикаты А1 Ù А2 Ù Ù Аm). Тело записывается в виде последовательности предикатов, отделенных друг от друга запятыми, а символ ;заменяется на:-, т.е. правило имеет вид Вn:- А1, А2, …Аm.

С точки зрения математической логики предикат Вn истинен, если при каком-либо сочетании значений доменов истинны все предикаты А1 Ù А2 Ù Ù Аm.

Все знания на языке Пролог состоят из набора фактов и правил. Каждая задача формулируется, как цель (goal), которую необходимо достигнуть.

 

Пример.

Известно, что определенные страны Европы имеют общие между собой границы, в то время как другие их не имеют. Предикатом для предоставления этого отношения служит

border(country, country)

 

Тот факт, что Германия в Франция имеют общую границу, можно представить в виде утверждения

border(“France”, “Germany”)

 

Франция с Германией имеют общую границу, так же как и Франция с Испанией, и Франция с Италией.

Шесть утверждений задают все возможные пары четырех выбранных европейских стран:

euro_pair(“France”, “Germany”)

euro_pair (“France”, “Spain”)

euro_pair(“France”, “Italy”)

euro_pair(“Germany”, “Spain”)

euro_pair(“Germany”, “Italy”)

euro_pair(“Spain”, “Italy”)

 

Утверждения для стран с общей границей выглядят так:

border(“France”, “Germany”)

border(“France”, “Spain”)

border(“France”, “Italy”)

 

Предположим теперь, что вы хотите определить, какие из стран не имеют общей границы. Отрицание предиката border задается при помощи предиката not:

not(border (country1, country2))

 

Этот предикат, используемый как цель, выдает все пары не граничащих друг с другом стран.

 

Итак, полный текст программы:

 

/*Программа “Пары стран Европы” */

 

domains

 

country = symbol

 

predicates

 

euro_pair (country, country)

border(country, country)

find_non_border_pair

 

goal

 

find_non_border_pair.

 

clauses

 

/* факты*/

 

euro_pair(“France”, “Germany”).

euro_pair(“France”, “Spain”).

euro_pair(“France”, “Italy”).

euro_pair(“Germany”, “Spain”).

euro_pair(“Germany”, “Italy”).

euro_pair(“Spain”, “Italy”).

 

border(“France”, “Germany”).

border(“France”, “Spain”).

border(“France”, “Italy”).

 

/*правила*/

 

find_non_border_pair:-

euro_pair(X,Y),

not(border (X,Y)),

write(X,” -“, Y).







Дата добавления: 2015-09-19; просмотров: 574. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия