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


 

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

36698. ОПРЕДЕЛЕНИЕ ОТНОШЕНИЯ ТЕПЛОЕМКОСТЕЙ ГАЗА МЕТОДОМ КЛЕМАНА - ДЕЗОРМА 73 KB
  Основные теоретические положения к данной работе основополагающие утверждения: формулы схематические рисунки: Для определения отношения Сp Cv в случае воздуха в данной лабораторной работе применен метод предложенный Клеманом и Дезормом в котором использовано охлаждение газа при его адиабатическом расширении. Быстрое сжатие и быстрое расширение газа приблизительно можно рассматривать как адиабатический процесс. Отсюда видно что при адиабатическом сжатии температура газа повышается за счет работы внешних сил а при адиабатическом...
36699. Определение параметров импульсных сигналов, используемых для электростимуляции 495 KB
  Связь амплитуды формы импульса частоты следования импульсов длительности импульсного сигнала с раздражающим действием импульсного тока. Какова будет сила тока в начале разрядки конденсатора Через 6 мс напряжение на конденсаторе упадет до 250 В. Цель работы: Используя осциллограф С819 источник питания постоянного тока Б545 дифференцирующие и интегрирующие цепи.
36700. Изучение действия СВЧ поля на вещество 551 KB
  Переменные токи наведенные электрическим полем создают в диполе стоячую волну с пучностью тока в его середине. Они препятствуют ответвлению в гальванометр высокочастотного тока свободно пропуская выпрямленный.Исследование нагревания токами СВЧ электролита и диэлектрика.Делают вывод о влиянии СВЧ поля на вещество Воздействие переменными токами Первичное действие переменного тока и электромагнитного поля на биологические объекты в основном заключается в периодическом смещении ионов растворов электролитов и изменении поляризации...
36701. Градуирование электростатического вольтметра с помощью электрометра Томсона 396 KB
  Градуирование электростатического вольтметра с помощью электрометра Томсона. Цель работы: Градуирование шкалы электростатического вольтметра с помощью абсолютного электрометра Томсона т. Основные теоретические положения к данной работе основополагающие утверждения: формулы...
36702. Определение омического сопротивления при помощи моста Уитстона 306.5 KB
  Определение омического сопротивления при помощи моста Уитстона. Цель работы: Экспериментальное определение сопротивления проводников и проверка закона Ома с помощью моста постоянного тока. Однако существует одно определенное...
36703. Определение собственной люминесценции белка 1.1 MB
  Характеристики люминесценции спектр длительность квантовый выход. Задачи Исследование спектров люминесценции Спектром люминесценции называется кривая зависимости интенсивности люминесценции от длины волны или частоты: I = f  Интенсивность люминесценции выражается обычно в величинах пропорциональных энергии или числу квантов. Качественный и количественный анализ веществ в растворе и в живой клетке может производиться по спектрам люминесценции аналогично тому как это было описано выше для спектров поглощения.
36704. ИЗУЧЕНИЕ ЗАКОНОВ ДВИЖЕНИЯ ЭЛЕКТРОНА В ЭЛЕКТРИЧЕСКОМ И МАГНИТНОМ ПОЛЯХ 290 KB
  ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №22 ИЗУЧЕНИЕ ЗАКОНОВ ДВИЖЕНИЯ ЭЛЕКТРОНА В ЭЛЕКТРИЧЕСКОМ И МАГНИТНОМ ПОЛЯХ Цель работы: Определение опытным и расчетным путем индукции магнитного поля на оси соленоида с помощью законов движения электрона в электрическом и магнитном полях. С соленоид служащий для создания магнитного поля; А амперметр для...
36705. Изучение затухающих электромагнитных колебаний в колебательном контуре с помощью осциллографа 550 KB
  Изучение с помощью электронного осциллографа электромагнитных колебаний, возникающих в колебательном контуре, содержащем индуктивность, емкость и активное сопротивление; изучение условий возникновения затухающих колебаний в контуре; расчет основных физических величин, характеризующих эти колебания.
36706. Психологічне консультування щодо вибору професії у старшокласників 392.5 KB
  Важливим аспектом у розвитку і самореалізації особистості є правильний вибір професії – це моральне задоволення, висока самооцінка. Водночас це й висока продуктивність праці, висока якість продукції. Вибір професії – точка, в якій сходяться інтереси особистості та суспільства