Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65457
Модуль Forms 65217
Пример работы с... 64701
ТЕХНОЛОГИИ ДОСТ... 61904
Имитационное мо... 57784
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 13,085
новичок: nikita222dolban
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование круглосуточного интернет кафе на GPSS + Отчет
Обратное размещение элементов ЭВС на Delphi + Пояснительная записка
Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Пользователь может просить объяснения "почему?"
Усовершенствованная версия оболочки позволяет также успешно вести диалоги и с другой стороны. Когда программа задает вопрос, пользователь может ответить своим собственным вопросом “почему?”. Естественным ответом оболочки должно быть правило, на основании которого программа пытается сделать вывод. Если вам требуется продать старое железо то подать объявление можно тут: http://board.od.ua.
Такую возможность легко ввести в оболочку, расширяя все отношения дополнительным аргументом - используемым текущим правилом. Поскольку в Пролог-программах доступ к глобальному состоянию процесса вычислений невозможен, это правило должно быть явно представлено в дополнительном аргументе.
Интерфейс для обеспечения ответа на вопрос “почему?” реализуется дополнительными правилами предиката respond. Предикат respond переписывает текущее родительское правило и приглашает пользователя ответить еще раз. Формат, в котором будет представлено это правило, определяется предикатом display_rule, позволяющим пользователю представлять правила в удобной для него форме.
Повторные ответы на вопрос “почему?”, использующие предложение respond, приводят к повторной переформулировке родительского правила. Решение состоит в выдаче прародительского правила в ответ на второй во-прос “почему?”, прапрародительского правила в ответ на третье “почему?” и так далее вверх по дереву поиска. С этой целью дополнительный аргумент содержит список правил, учитывающих предысторию.
Для учета случая, когда все правила для ответа исчерпаны, необходимо дополнительное предложение.
Трудности возникают, когда приходится объяснять использования правила A в процессе доказательства not(A). В этом случае предыстория вывода теряется, и аргумент Rules в третьем предложении respond становится неконкретизованной переменной.

% программа 7
:- multifile system/1, askable/1.
:- dynamic untrue/1.

% дополнительный аргумент - список содержащий текущее
% родительское правило и правила из предыстории
solve(true,_):-!.
solve((A,B),Rules):-!,
solve(A,Rules),
solve(B,Rules).
solve(not(A),_):-!,
not(solve(A,_)).
solve(A,Rules):-
not system(A),
clause(A,B),
solve(B,[rule(A,B)|Rules]).
solve(A,_):-
system(A),
A.
solve(A,Rules):-
askable(A),
not known(A),
ask(A,Answer),
respond(Answer,A,Rules).

system(is(_,_)).
system(_=_).
system(_<_).
system(_>_).
system(write(_)).
system(nl).

ask(A,Answer):-
display_query(A),
read(Answer).

% дополнительный аргумент - список содержащий текущее
% родительское правило и правила из предыстории

respond(yes,A,_):-
assert(A).
respond(no,A,_):-
assert(untrue(A)),fail.


Опубликовал vovan666 May 23 2013 11:26:27 · 0 Комментариев · 2569 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Использование Lis...
Fig [Исходник на ...
Самоучитель C++
Медиа комбайн
BDEPack
С# для профессион...
Таймер и секундомер
TDBF
mmmJlabel
Панель Календарь
Text3D
TelBook
TmxOutlookBarPro
Borland Delphi 6....
Allsubmitter 4.7 ...
Самоучитель Прогр...
Пример работы с ф...
Delphi 2005 для W...
ActiveX в Delphi
Swing. Эффектные...

Топ загрузок
Приложение Клие... 100470
Delphi 7 Enterp... 87090
Converter AMR<-... 20078
GPSS World Stud... 12851
Borland C++Buil... 11846
Borland Delphi ... 8604
Turbo Pascal fo... 7039
Visual Studio 2... 4999
Калькулятор [Ис... 4803
FreeSMS v1.3.1 3542
Случайные статьи
Функции обработки ...
Как фильтруется и ...
Включение датчика NFC
СПИСКИ В GPSS
Смешение различных...
Destructor Identif...
Проблема универсал...
Играть в игровые а...
компьютеров:: если...
Имитационное модел...
Найти список изоли...
listing (A)
Внешние элементы ...
Может возникнуть в...
Параметры группово...
Бесплатные игровые...
Списки моделирования
Подкастинг: размещ...
Приэтом проверяетс...
Структура buf
Объединенные связи...
Содержание
Анонимность пользо...
Элементы управлени...
Приемы расположены...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?