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


 

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

70214. Сущность, функции и основные задачи инвестиционного анализа 140 KB
  В общепринятом смысле инвестиции – осознанный отказ от тек потребления в пользу возможного относительно большего дохода в будущем который как ожидается обеспечит и большее суммарное потребление. По определению инвестиции связаны с затратами и риском это главная особть...
70216. ХИМИЧЕСКАЯ СВЯЗЬ. СТРОЕНИЕ ВЕЩЕСТВА 305 KB
  В 1852 году английский исследователь Франкланд ввел понятие валентности (атомности). Валентность выражает способность атома данного элемента вступать в соединение с определенным числом атомов другого элемента. Приняв валентность водорода за единицу, можно считать, что валентность...
70217. ГЕНЕЗИС И ЭВОЛЮЦИЯ ФИНАНСОВ 71.5 KB
  Финансы как экономическая категория Общественно-экономические системы различаются экономическими отношениями которые в свою очередь являются производными от уровня и характера развития производительных сил. При этом финансы не могут не учитывать отношения распределения...
70218. УГОЛОВНО-ИСПОЛНИТЕЛЬНОЕ ПРАВО 217 KB
  Уголовно-исполнительная политика направление деятельности государства в его специально уполномоченных органах в сфере исполнения уголовного наказания. Уголовно-исполнительная политика определяет: цели; принципы; стратегию; основные направления формы методы деятельности...
70219. Фотокомпозиция 77.5 KB
  Композиция – построение, группировка и последовательность изобразительных приёмов, организующих идейно-художественное целое; соотношение и взаимное расположение частей. Точка съёмки – это положение фотоаппарата по отношению к снимаемому объекту. Ниже приведена классификация точки съемки.
70220. Введение в фотографию 103.5 KB
  Развитие на нынешнем этапе цифровой фотографии происходит в основном благодаря электронным и информационным технологиям. Принцип действия фотографии основан на получении изображений и фиксировании их с помощью химических и физических процессов получаемых с помощью света...
70221. Основы теории цвета 86.5 KB
  Индивидуальное восприятие цвета определяется его спектральным составом а также цветовым и яркостным контрастом c окружающими источниками света а также несветящимися объектами. Накопленные экспериментальные данные в XX веке по волновым и корпускулярным свойствам видимого...
70222. Принципы работы фотоаппаратов 95.5 KB
  Численное значение диафрагмы определяет следующие элементы фотографического процесса: экспозиция с уменьшением отверстия на одну ступень поток света уменьшается вдвое что требует увеличения вдвое времени выдержки для сохранения правильной экспозиции; глубина резкости чем меньше отверстие...