|
|||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ. 2. Подсчитать сумму ряда целых четных чисел от 2 до N1. Вычислить сумму 1+2+3+…+N. 2. Подсчитать сумму ряда целых четных чисел от 2 до N. 3. Вычислить сумму ряда целых нечетных чисел от 1 до n. 4. Найти значение произведения: 2*4*6*...*26 5. Найти значение произведения: 1*3*5*...*11 6. Вычислить значение n-го члена ряда Фибоначчи: f(0)=0, f(1)=1, 7. Используя базу данных и правило предок из примера 2 составить правило для определения всех потомков-мужчин. 8. Используя базу данных и правило предок из примера 2 составить правило для определения всех потомков-женщин. Отчет о выполненной самостоятельной работе должен содержать: 1) тему лабораторной работы; 2) условие задачи; 3) листинг программы; 4) результаты ее тестирования. Решение логических задач в ПРОЛОГе ПРОЛОГ позволяет наиболее естественным образом решать логические задачи, моделируя процесс размышления человека с помощью правил. Многие логические задачи связаны с рассмотрением нескольких конечных множеств с одинаковым количеством элементов, между которыми устанавливается взаимно-однозначное соответствие. В ПРОЛОГе эти множества можно описывать как базы данных, а зависимости между объектами устанавливать с помощью правил.
В автомобильных гонках три первых места заняли Алеша, Петя и Коля. Какое место занял каждый из них, если Петя занял не второе и не третье место, а Коля - не третье? Решение Традиционным способом задача решается заполнением таблицы. По условию задачи Петя занял не второе и не третье место, а Коля - не третье. Это позволяет поставить символ '-' в соответствующих клетках.
Между множеством имен участников гонки и множеством мест должно быть установлено взаимнооднозначное соответствие. Поэтому определяем занятое место сначала у Пети, затем у Коли и, наконец, у Алеши. В соответствующих клетках проставляем знак '+'. В каждой строке и каждом столбце должен быть только один такой знак.
Из последней таблицы следует, что Алеша занял третье место, Петя - первое, Коля - второе. Программа на ПРОЛОГе будет выглядеть следующим образом: PREDICATES имя(string) место(string) соответствие(string,string) решение(string,string,string,string,string,string) CLAUSES имя(алеша). имя(петя). имя(коля). место(первое). место(второе). место(третье). /* Устанавливаем взаимнооднозначное соответствие между множеством имен и множеством мест, X - имя,Y - место */ /* Петя занял не второе и не третье место */ соответствие(X, Y):-имя(X), X=петя, место(Y),not(Y=второе), not(Y=третье). /* Коля занял не третье место */ соответствие(X, Y):- имя(X), X=коля, место(Y), not(Y=третье). соответствие(X, Y):- имя(X), X=алеша, место(Y). /* У всех ребят разные места */ решение(X1,Y1,X2,Y2,X3,Y3):- X1=петя,соответствие(X1,Y1), X2=коля,соответствие(X2,Y2), X3=алеша,соответствие(X3,Y3), Y1<>Y2, Y2<>Y3, Y1<>Y3. GOAL решение(X1,Y1,X2,Y2,X3,Y3), write(X1," - ",Y1),nl, write(X2," - ",Y2),nl,write(X3," - ",Y3),nl. Результат выполнения программы петя - первое коля - второе алеша - третье
Пример 2 Наташа, Валя и Аня вышли на прогулку, причем туфли и платье каждой были или белого, или синего, или зеленого цвета. У Наташи были зеленые туфли, а Валя не любит белый цвет. Только у Ани платье и туфли были одного цвета. Определить цвет туфель и платья каждой из девочек, если у всех туфли и платья были разного цвета. Решение PREDICATES имя(string) туфли(string) платье(string) соот(string,string,string) решение(string,string,string,string,string,string, string,string,string) CLAUSES имя(наташа). имя(валя). имя(аня). туфли(белый). туфли(синий). туфли(зеленый). платье(белый). платье(синий). платье(зеленый). % X – имя, Y – цвет туфель, Z – цвет платья соот(X,Y,Z):-имя(X),туфли(Y),платье(Z), X=наташа,Y=зеленый,Y<>Z. соот(X,Y,Z):-имя(X),туфли(Y),платье(Z), X=валя,not(Y=белый), not(Z=белый), Y<>Z. соот(X,Y,Z):-имя(X),туфли(Y),платье(Z),X=аня,Y=Z. решение(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3):- X1=наташа,соот(X1,Y1,Z1), X2=валя, соот(X2,Y2,Z2), X3=аня, соот(X3,Y3,Z3), Y1<>Y2, Y2<>Y3, Y1<>Y3, Z1<>Z2, Z2<>Z3, Z1<>Z3. GOAL решение(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3), write(X1," туфли- ",Y1," платье- ",Z1),nl, write(X2," туфли- ",Y2," платье- ",Z2),nl, write(X3," туфли- ",Y3," платье- ",Z3),nl. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |