19

Использование отсечения в пролог-программах. Определение возрастного статуса человека

Лабораторная работа

Информатика, кибернетика и программирование

Определение возрастного статуса человека по известному году рождения в соответствии с таблицей. Разработка двух вариантов программы: без отсечения и с использованием отсечения.

Русский

2012-11-17

34.73 KB

44 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И РОБОТОТЕХНИКИ

Кафедра «Программное обеспечение вычислительной техники и

автоматизированных систем»

ОТЧЁТ

по лабораторной работе №5

к дисциплине

«Функциональное и логическое программирование»

Тема: «ИСПОЛЬЗОВАНИЕ ОТСЕЧЕНИЯ В ПРОЛОГ-ПРОГРАММАХ» 

Выполнили:  ст.  гр. 107310 Абросимова С.А., Синькевич Я.А.

Приняла: Ковалькова И.А.

 

2011-2012 учебный год

ЛАБОРАТОРНАЯ РАБОТА

ИСПОЛЬЗОВАНИЕ ОТСЕЧЕНИЯ В ПРОЛОГ-ПРОГРАММАХ

Цель лабораторной работы: приобретение  практических навыков использования отсечения в программах на Турбо-Прологе.

Постановка задачи:

Определить возрастной статус человека по известному году рождения в соответствии с таблицей. Разработать два варианта программы: без отсечения и с использованием отсечения.

Возраст, лет

Статус

< 2

Младенец

2 – 12

Ребенок

12 – 16

Подросток

16 – 25

Юноша

25 – 70

Мужчина

70 – 100

Старик

> 100

долгожитель

Результаты лабораторной работы:

Рисунок 1 – Результат работы программы

Контрольные вопросы:

  1.  Для чего используется отсечение?

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

  1.  Как обозначается отсечение в программе?

Ответ: !.

  1.  Механизм работы отсечения.

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

  1.  «Красное» и «зеленое» отсечения.

Ответ: Зелеными называются те из них, при отбрасывании которых программа продолжает выдавать те же решения, что и при наличии отсечения. Если же при устранении отсечений программа начинает выдавать неправильные решения, то такие отсечения называются красными.

  1.  Какое отсечение, «красное» или «зеленое» , в процедуре max2 ?

Ответ: «красное».

  1.  Повлияет ли на результат удаление отсечения в процедуре max2 ?

Ответ: Да, повлияет.

  1.  Что происходит после выполнения комбинации !, fail?

Ответ: когда встретится предикат fail, который всегда вызывает состояние неудачи, то стоящий перед ним предикат отсечения остановит работу механизма возврата и в результате ответом на запрос будет No Solution (Нет решения).

  1.  Могут ли располагаться подцели после предиката fail ?

Ответ: нет.

  1.  Декларативный и процедурный смысл Пролог-программы.

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

  1.  Важен ли порядок следования предложений в процедурах max1 и max2 ?

Ответ: нет, не важен.

Выводы:

Приобрели практические навыки, научились использовать отсечения на языке пролог.


ПРИЛОЖЕНИЕ

Листинг исходного кода программы:

predicates

nondeterm voz( integer, integer, string).

nondeterm result.

clauses

voz(X,Y,"младенец") :- X=2012-Y, X<2, !.

voz(X,Y,"ребёнок") :-X=2012-Y, X<12, !.

voz(X,Y,"подросток") :- X=2012-Y,X<16, !.

voz(X,Y,"юноша") :- X=2012-Y,X<25, !.

voz(X,Y,"мужчина") :-X=2012-Y, X<70, !.

voz(X,Y,"старик") :- X=2012-Y,X<100, !.

voz(X,Y,"долгожитель") :-X=2012-Y, X>100, !.  

result :- write("Введите год рождения: "), nl, readint(Y), voz(_,Y,Z), write("Данный возраст соответствует группе  ", Z), nl.

goal

result.

/*

predicates

nondeterm voz( integer,integer, string).

nondeterm result.

clauses

voz(X,Y,"младенец") :- X=2012-Y, X<2.

voz(X,Y,"ребёнок") :-X=2012-Y, X<12, X>2.

voz(X,Y,"подросток") :- X=2012-Y,X<16, X>12.

voz(X,Y,"юноша") :- X=2012-Y,X<25, X>16.

voz(X,Y,"мужчина") :-X=2012-Y, X<70, X>25.

voz(X,Y,"старик") :- X=2012-Y,X<100, X>70.

voz(X,Y,"долгожитель") :-X=2012-Y, X>100.  

result :- write("Введите год рождения: "), nl, readint(X), voz(X,Y), write("Данный возраст соответствует группе  ", Y), nl.

goal

result. */


 

А также другие работы, которые могут Вас заинтересовать

15173. Экологическая оценка и экологическая экспертиза 1.19 MB
  Экологическая оценка и экологическая экспертиза Авторы: О.М.Черп В.Н.Виниченко М.В.Хотулёва Я.П.Молчанова С.Ю.Дайман 3е издание переработанное и дополненное Оглавление Полное оглавление Благодарности Термины и сокращения Введе
15175. Жамбыл - айтыс шебері 44 KB
  ӘОЖ ЖАМБЫЛ АЙТЫС ШЕБЕРІ Ж.Момбекова Ә. Уралбекова Тараз мемлекеттік педагогикалық институты Тараз қ. Халық поэзиясы көбіне ауызша айтылады кейін назарға түсіріліп оқылады. Оның көркемдеу құралдары да басқаша көбіне байырғы тіл әдісімен баяндалады. Оның та...
15176. Жамбыл - әлем түркілері поэзиясының алыбы 55.5 KB
  ӘӨЖ 894.342.35 Ә 20 ЖАМБЫЛ ӘЛЕМ ТҮРКІЛЕРІ ПОЭЗИЯСЫНЫҢ АЛЫБЫ Меңдібай Әбілұлы А.Ясауи атындағы халықаралық қазақтүрік университеті Тараз институты Тараз қаласы. Түрік әдебиетінің мақтанышы Мехмет Юрдақұл: Мен түрікпін дінім ұлтым ұлы ғой Өне ...
15177. Жамбыл - жырау 50.5 KB
  ӘОЖ:82.09:82.091 ЖАМБЫЛ ЖЫРАУ Т.Мұқашев Тараз мемлекеттік педагогикалық институты Тараз қ. Жыраулық дәстүрдің соңы ХІХ ғасырмен аяқталып оның орнына ендігі жерде ақындық дәстүр жалғасын тапты. ХІХ ғасырда өмір сүрген Базар жырау Қабан жырау сияқты жыр дүлділі ...
15178. Жамбылдың ұстазы еді Майкөт ақын 46.5 KB
  ЖАМБЫЛДЫҢ ҰСТАЗЫ ЕДІ МАЙКӨТ АҚЫН Сыманова Г.Қ 10 сынып оқушысы Жамбыл облыстық ерекше дарынды балаларға арналған Дарын мектепинтернаты. Ғасыр мен ғасыр беттесіп уақыт теңізінің алып толқындары жалын желбіретіп аспанға шапшығанда тереңде қалған жақұт ...
15179. Жүрсін Ерман 38 KB
  Сөз құны сөз қадірі Бұған дейін Жанартау Арайлы күн армысың Ұлытауға бардың ба... Құдіретке жүгіну кітаптарымен танылған Жүрсін Ерманның жақында Атамұра баспасынан Құстың көлеңкесі деп аталатын таңдамалы жарық көрді. Кітаптың кіріспесі Ақы...
15180. Жүсіпбек Аймауытов - әдебиет сыншысы 71.5 KB
  Рақымжан Тұрысбек Л.Н.Гумилев атындағы Еуразия ұлттық университетінің профессоры филология ғылымдарының докторы Ж.АЙМАУЫТҰЛЫ ӘДЕБИЕТ СЫНШЫСЫ Ұлттық сөз өнеріне оның өрісті өркендеуіне өлшеусіз үлес қосқан Жүсіпбек Аймауытұлы әдеби мұра мен оны зерт...
15181. Жүсіпбек Аймауытов 107 KB
  ЖҮСІПБЕК АЙМАУЫТОВ 18891931 Аймауытов Жүсіпбек 1889 1931 қазақтың көрнекті жазушысы қазақ әдебиетін қалыптастырушылардың бірі.Туып өскен жері Павлодар облысының Баянауыл ауданына қарасты бұрынғы Қызыл ту қазіргі Жүсіпбек Аймауытов ауылы.Әкесі Аймауыт кед