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


 

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

11378. ГИПЕРТОНИЯ, АНТИГИПЕРТЕНЗИВНЫЕ СРЕДСТВА 103.5 KB
  В зависимости от этиологии гипертонию подразделяют на два типа:первичную и вторичную симптоматическую. симптоматическая гипертония симптом заболевания какоголибооргана: почек эндокринных желез сосудов сердца ЦНС... Лечат основ...
11379. МОЧЕГОННЫЕ СРЕДСТВА (ДИУРЕТИКИ) 97.5 KB
  МОЧЕГОННЫЕ СРЕДСТВА ДИУРЕТИКИ Изменение объема и электролитного состава жидкостей организма наблюдаются довольно часто и являются серьезными клиническими проблемами. Задержка солей и воды в организме с увеличением гидратации тканей образованием отеков и скоплен...
11380. Стимуляторы дыхания (Дыхательные аналептики) 76 KB
  При лечении острых и хронических заболеваний органов дыхания которые широко распространены в медицинской практике могут быть использованы лекарственные средства из различных групп в том числе противомикробные противоаллергические и другие противовирусные. В данн
11381. Средства, влияющие на ЖКТ. Средства, влияющие на аппетит 194 KB
  Лекции по курсу Фармакология тема: Средства влияющие на ЖКТ I. Средства влияющие на аппетит Физиологическая система регуляции аппетита включает центральное и периферическое звенья. Центральные механизмы: в ядрах гипоталамуса находятся центр голода и цен...
11382. Средства, влияющие на гемопоэз 98 KB
  Средства влияющие на гемопоэз Введение. Кровь состоит из форменных элементов и плазмы. Форменные элементы имеют небольшую продолжительность жизни от несколько дней до нескольких месяцев эритроциты = 120 дней тромбоциты = 10 дней. В организме постоянно идет процесс р
11383. ЛЕКАРСТВЕННЫЕ СРЕДСТВА, ВЛИЯЮЩИЕ НА СВЕРТЫВАНИЕ КРОВИ 211.5 KB
  ЕКАРСТВЕННЫЕ СРЕДСТВА ВЛИЯЮЩИЕ НА СВЕРТЫВАНИЕ КРОВИ I Введение В организме две эти системы находятся в динамическом равновесии и в зависимости от конкретных условий преобладает одна или другая. Если равновесие нарушается то либо повышается к...
11384. Моторика и тонус миометрия регулируется нейрогуморальными механизмами 48.5 KB
  Введение. I. Моторика и тонус миометрия регулируется нейрогуморальными механизмами. А В миометрии находятся МХР α1 и β2 АР Возбудители МХР и α АР стимулирующее действие. Возбудители β2 АР угнетающее действие Б Стимулирующее влияние на сократительную актив
11385. Гормональные препараты, Механизм действия гормонов 119 KB
  СПХФА Кафедра фармакологии Лекции по курсу Фармакология тема: Гормональные препараты доц. Н.А. Анисимова 2008 г. Схема организации эндокринной системы В гипоталамус поступает и
11386. Стероидные гормоны. Препараты гормонов коры надпочечников 75 KB
  Стероидные гормоны Препараты гормонов коры надпочечников Кора надпочечников вырабатывает несколько десятков стероидных соединений ЦППГФК среди них 3 группы гормонов. Биосинтез секреция и метаболизм всех стероидных гормонов взаимосвязан. Кортикостероиды: минера...