87732

ПРОГРАММИРОВАНИЕ В СРЕДЕ VISUAL PROLOG

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

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

Написать программу, которая составляет меню в виде первого, второго и третьего блюда. При этом задать наименования первых, вторых и третьих блюд и их стоимости. В качестве входных данных использовать наличную сумму денег.

Русский

2015-04-22

66.4 KB

0 чел.

Отчёт по лабораторной работе №1

«ПРОГРАММИРОВАНИЕ В СРЕДЕ VISUAL PROLOG»

1.Цель работы:

  1.  ОСНОВЫ СОЗДАНИЯ И ВЫПОЛНЕНИЯ ПРОГРАММ В VISUAL PROLOG
  2.  РАЗРАБОТКА ЛОГИЧЕСКИХ ПРОГРАММ

2.Задание

Написать программу, которая составляет меню в виде первого, второго и третьего блюда. При этом задать наименования первых, вторых и третьих блюд и их стоимости. В качестве входных данных использовать наличную сумму денег.

3.Ход работы

Для решения этой задачи нужно составить  логическое уравнение.

Стоимость трёх блюд не должна быть больше введённой суммы.

Обозначим стоимости блюд и суммы как S1,S2,S3 и S.

Выражение для условий задачи: Если S1+S2+S3<=S то вывести меню.

Введем предикаты 

first(string,integer),second(string,integer),  third(string,integer),

которые устанавливают значение переменных P и S1,V и S2,T и S3.

Введем значения переменных для предикатов.

Для first(P,S1) - first(160, "Borsch"), first(150, "Harcho").

Для second(V,S2)- second(200, "Kotleta"), second(120, "Kartoshka").

Для third(T,S3)- third(100,"Cofee"), third(50,"Tea"), third(30,"Kompot").

Составим предикат:

rest(S,P,V,T):- first(S1,P),

second(S2,V),

third(S3,T),

S1+S2+S3<=S,

write("Summ=",S,"\nFor this summ you can get:","\nFirst=",P,"\nSecond=",V,"\nThird=",T) readchar(_).

Работа программы:

В секции predicates объявляются предикаты и их аргументы

В секции GOAL объявляются  предикаты, представляющие всю программу как таковую. Они выполняются в порядке очерёдности. Система ищет определение этих предикатов в разделе CLAUSES.

В секции CLAUSES имеется определение предиката rest(S,P,V,T)

Первым выполняется предикат first(S1, P).

В определении переменных S1,S2,S3 имеется по три  альтернативы. Процесс выбора одной из альтернатив называется ветвлением.  Всегда выбирается первая по порядку из числа неисследованных альтернатив. В момент выбора первой альтернативы имеется два предиката: первый из них – это предикат first (S1, P), который система пытается доказать; и второй  first (160, "Borsch"), который система берет из определения. Система сопоставляет эти два предиката и пытается согласовать их аргументы. Согласование аргументов называется унификацией. При унификации аргументы предикатов сопоставляются в порядке их расположения. У предиката first два аргумента. У доказываемого – это переменные P,S1, у взятого из определения  это 160, "Borsch". Таким образом, выполняется привязка аргумента P к аргументу "Borsch", а S1 к 160. Процесс переходит на предикат second, для которого действия выполняются по аналогии и далее. Проверяется условие S1+S2+S3<=S.

Если проверка условия заканчивается неудачей, в действие вступает механизм ветвление-возврат. Система возвращается в точку последнего ветвления, т.е. к предикату third. Для предиката third(S3, T) подставляются другие значения. Если проверка условия заканчивается неудачей и значения для предиката third(S3, T) закончились, система возвращается в точку предпоследнего ветвления, т.е. к предикату second(S2, V). Если проверка условия заканчивается неудачей и значения для предиката second(S2, V) закончились, система возвращается к предикату first(S1, P) и подставляет другие значения.

Листинг:

predicates

nondeterm        rest(integer,string,string,string)

nondeterm        first(integer,string)

nondeterm        second(integer,string)

nondeterm      third(integer,string)

           

                             goal

                       write("Input summa:"), readint(S), rest(S,P,V,T).

            clauses

                  

               rest(S,P,V,T):- first(S1,P),

                               second(S2,V),

                               third(S3,T),

                               

                               

                               S>=S1+S2+S3,

                               

                      write("Summ=",S,"\nFor this summ you can get:","\nFirst=",P,"\nSecond=",V,"\nThird=",T),  readchar(_).

first(160, "Borsch").

first(150, "Harcho").

second(200, "Kotleta").

second(120, "Kartoshka").

third(100,"Cofee").

third(50,"Tea").

third(30,"Kompot").

Вывод:

Мы рассмотрели простейшую структуру программы, ее составные части и описали процесс выполнения логической программы. При этом мы выяснили, в чем состоят логические механизмы ветвления, возврата и унификации.


 

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

25530. Влияние ситуации развода на ребенка 15.78 KB
  Влияние ситуации развода на ребенка. Тащева на усугубление переживаний ребенка влияют следующие обстоятельства: предшествующие разводу ссоры родителей и неизбежное ухудшение обращения с ребенком в этой ситуации; ощущение ребенком эмоционального отсутствия ушедшего родителя восприятие его ухода как обесценивания самого ребенка; изменение интенсивности общения с оставшимся родителем; возможные ухудшения отношения ребенка со сверстниками. Бывшие супруги могут настраивать ребенка друг против друга внося еще больший психологический дискомфорт в...
25531. СИМПАТИЯ 18.58 KB
  Иногда как следствие избирательной положительной реакции на привлекательную внешность поведение черты характера другого человека аттракция. На первых этапах общения заметнее всего будет воздействие наиболее открытых для наблюдения характеристик человека не требующих для своего опознания скольконибудь длительного времени таких как социальнодемографическая принадлежность социальный статус и т. Но следует отметить что единого эталона красоты нет представления о красоте человека многообразны тем более для людей разных культур.
25533. Стадии создания и развития молодой семьи 10.21 KB
  Один мол чел отдел от родит. Поиск компромисса когда молодожены устанавливают правила совместн жизни проходят период адаптации привыкают к новым ролям 3 триады. Есть также альтерн периодизация раз мол семьи в основе кот лежат содержательные аспекты межличн интимных отнош 1 этап взаимного интереса 2 этап пробы когда личн контакты становятся более глубокими и постоянными.
25534. Сущность, цель, принципы, направления семейной политики в РФ 16.92 KB
  В конце прошлого века в российской социологической литературе достаточно четко обозначились 2 концептуальных подхода интерпретирующие семейные отношения и необходимость воздействия на них в рамках семейной политики. Отсюда следовала цель семейной политики: укрепление семьи как социального института. Разнообразие подходов к раскрытию сущности и целей семейной политики привели к ее пониманию как комплексной и межотраслевой.
25535. Типологии любви 13.82 KB
  романтическая любовь в которой оба члена пары обладают и статусом и поскольку каждый из них может наказать другого лишив его проявлений своей любви властью по отношению к партнеру; 2. харизматическая любовь в которой один партнер обладает и статусом и властью другой только статусом. измена один партнер обладает и властью и статусом другой только властью. влюбленность один из партнеров обладает и власть и статусом другой не пользуется ни тем ни другим.
25538. Особенности семейного воспитания близнецов 14.89 KB
  Воспитывая близнецов надо помнить что вы воспитываете две личности. И ваша задача воспитать не близнецов а каждого из малышей в отдельности. Воспитательной ошибкой авторитетный педагог Марсель Руфо считает помещение близнецов в одну группу в детском саду и в один школьный класс.