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. */


 

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

72493. Первая медицинская помощь при травмах 79 KB
  Травма (от греч. trаuma — рана) — повреждение тканей организма человека с нарушением их целостности и функций, вызванное механическими или иными воздействиями (например, вывихи, растяжения, переломы). Травматология – наука о травмах и их лечении.
72494. Упражнение в свободе 69 KB
  Это не расхожая мораль: поблудил покайся вернись; или слезная история возвращения неузнанного сына столь любезная чувствительным сирийцам дар слезный в противовес египетской памяти смертной а что-то совершенно поразительное: поражающее как молния аз есмь Этот опыт себя в истории философии и в жизни...
72495. Філософсько-теоретичні основи історії української культури 56.5 KB
  У середні віки набуває поширення комплекс значень згаданого слова, згідно з яким культура стала асоціюватися з міським укладом життя, а пізніше, в епоху Відродження, — з досконалістю людини. Нарешті, у XVIII ст. слово культура набуло самостійного наукового значення.
72496. Історичні умови виникнення та джерела формування української культури 58.5 KB
  Жоден фактор, що визначає нації сучасного світу, не може пояснити самобутність кожної національної культури. Тільки у неповторному комплексі природних, расово-етнічних, мовних та геополітичних факторів, що діяли в конкретному історичному часі, й формувалися народи теперішнього світу...
72497. Понятие, предмет и задачи социально-экономической статистики 508 KB
  Статистика населения Статистика населения решает задачи по изучению численности населения движения населения уровня доходов и расходов населения и уровня неравенства населения в разрезе различных территорий. Данные о численности населения берутся по данным переписи населения.
72498. Предмет, метод, задачи статистики 789.5 KB
  Статистика – это наука, которая присущими ей методами изучает количественную сторону массовых общественных явлений в неразрывной связи с их качественной стороной и дает числовые выражения закономерностей общественного развития в конкретных условиях места и времени.
72499. Содержание ощущений Б.М. Шуранов 43.76 KB
  Примеры ощущений: зелёный цвет, горький вкус, звук «си», гладкая поверхность, горячее. Помимо двух капитальных общефилософских проблем, связанных с нематериальным миром, к которому принадлежат ощущения – психофизической и психофизиологической – есть ещё 2 важнейших подхода к рассмотрению природы нематериального...
72500. СОВЕТСКОЕ ОБЩЕСТВО В 1920-1930-е гг.: ДОСТИЖЕНИЯ И ПРОБЛЕМЫ 159.5 KB
  В 1922 г. в руководстве РКП (б) возникло два проекта объединения. И.Сталин, В.Куйбышев и Ф.Дзержинский отстаивали план автономизации. Согласно ему все республики входили в состав РСФСР на правах автономных образований. В.Ленин выступал за равноправный союз республик, где РСФСР имела бы такой же статус, как и другие государства.
72501. ЛОГИСТИЧЕСКИЙ КОНТРОЛЛИНГ В СИСТЕМЕ УПРАВЛЕНИЯ ЗАТРАТАМИ 479 KB
  В рыночных условиях объемы продаж и цены подвержены колебаниям поэтому уровень покрытия затрат доходами получается Разным и по видам продукции покупателям и по группам расходов и по отчетным периодам. Сложность контроллинга связана с классификацией затрат.