19

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

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

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

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

Русский

2012-11-17

34.73 KB

42 чел.

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

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

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

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

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

ОТЧЁТ

по лабораторной работе №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. */


 

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

27618. Преступления против безопасности движения и эксплуатации транспортных средств 96.5 KB
  Объективная сторона преступления состоит в одном из двух деяний: нарушение правил дорожного движения и нарушении правил эксплуатации транспортных средств. Квалифицирующий признак: деяние повлекшее по неосторожности смерть человека в соответствии с Правилами учета ДТП к числу погибших относятся и те кто скончался от полученных травм в течение 7 суток со дня ДТП. Нарушение правил обеспечивающих безопасную работу транспорта ст. Общественная опасность нарушения правил обеспечивающих безопасную работу транспорта...
27620. Наука уголовного права, ее предмет, метод и задачи. Её связь с другими отраслями научных знаний. Роль науки уголовного права в совершенствовании законодательства 35 KB
  Наука уголовного права ее предмет метод и задачи. Роль науки уголовного права в совершенствовании законодательства. Понятие уголовного права как науки. Предмет науки УП составляет уголовное законодательство и практика его применения обобщение действующего уголовного закона и проблем его совершенствования.
27622. Невиновное причинение вреда и его формы. Юридическая и фактическая ошибки. Их влияние на вину и уголовную ответственность 36.5 KB
  Юридическая ошибка это неправильное представление лица о преступности или не преступности совершенного им деяния его квалификации о виде и размере наказания предусмотренного за данные деяния. Фактическая ошибка это неправильное представление заблуждение лица относительно фактических обстоятельств содеянного его объективных признаков. Ошибка относительно объекта посягательства не меняет формы вины она определяет лишь ее содержание. Данная ошибка может состоять в неправильном представлении лица о том объекте на который оно посягает...
27623. Незаконное задержание, заключение под стражу или содержание под стражей (ст. 301 УК). Принуждение к даче показаний (ст. 302 УК) 32 KB
  Незаконное задержание заключение под стражу или содержание под стражей 301 Объект преступления непосредственный – общест. Заведомо незаконное задержание представляет заключение под стражу в виде меры пресечения органами дознания в качестве подозреваемого при отсутствии оснований указанных в законе УПК; Лицо может быть задержано по подозрению в совершении преступления за которое может быть назначено наказание в виде лишения свободы только при наличии одного из следующих оснований: 1 когда лицо застигнуто при совершении преступления...
27625. Незаконное предпринимательство (ст. 171 УК) и лжепредпринимательство (ст. 173 УК) как преступления против установленного порядка предпринимательской и банковской деятельности 31.5 KB
  173 УК как преступления против установленного порядка предпринимательской и банковской деятельности. Объектом незаконного предпринимательства являются установленные НПА правила государственного надзора за осуществлением законной предпринимательской деятельности то есть принцип законности экономической деятельности. Объективная сторона – 3 признака: 1 осуществление именно предпринимательской деятельности 2 а в отсутствии соответствующей регистрации; б с нарушением правил регистрации а равно предоставление в орган осуществляющий...
27626. Объект преступления - общественная безопасность в сфере обращения указанных в ст.222 УК предметов (оружие, боеприпасы, взрывчатые вещ-ва, взрывчатые устройства) 81.5 KB
  Сбыте хранении перевозке либо ношении огнестрельного оружия боеприпасов взрывчатых веществ или взрывных устройств. Основные части оружия это ствол затвор барабан рамка и стальная коробка. Нёзаконность заключается в нарушении норм Закона об оружии хранение и ношение оружия без лицензии. Хранение нахождение оружия и предметов в помещениях тайниках а также в иных местах обеспечивающих их сохранность.