![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Описание переменных среды
Приложение 2
Основные команды "GURU"
BUILD <имя набора правил> - используется для создания, модификации и компиляции набора правил. COMPILE <имя набора правил> - создает файл откомпилированного набора правил. CONSULT <имя экспертной системы> - обращение к ЭС за консультацией. WHY <выражение> - объясняет, почему "GURU" использовала конкретное правило. HOW <выражение> - объясняет, как "GURU" нашла значение переменной. TEXT <имя файла> - запускается текстовый редактор "GURU". CLEAR - очистить экран. INPUT <переменная> <USING шаблон><WITH выражение> - ввод данных в переменную с использованием шаблона (USING) и с подсказкой (WITH). Шаблоны: а - для буквенных символов (латинский шрифт); с - для буквы или числа; d - для цифры, знака (+ или -) или десятичной точки; е - преобразование в символы нижнего регистра; n - символ шаблона, который воспринимает только цифры в занимаемой им позиций; r - для символов ASCII; u - преобразует в символы верхнего регистра. Например: INPUT num USING "dddd" with "Введите номер" На экране появляется текст: Введите номер __ Рассмотрим еще одну команду "GURU". OUTPUT <имя переменной><USING шаблон> - выводит на экран переменную или строку. Шаблоны в этой команде аналогичны шаблонам для команды INPUT. Например: OUTPUT ''Лабораторная работа N1" Выводит на экран: Лабораторная работа N1 Другой пример: OUTPUT num Выводит на экран значение переменной num. Приведем также перечень следующих команд "GURU": HELP - выводит справочную информацию; RUN — выполняет внешнюю программу; DIR - просматривает директорию; BYE - выходит из режима; RELEASE - освобождает память, удаляя данные и программы "GURU"; PEPFORM - выполняет процедуру; WAIT - приостанавливает обработку до нажатия любой клавиши.
Приложение 3
Выражения и функции "GURU"
Арифметические:
+ - сложение; - - вычитание; * - умножение; / - деление; ** - возведение в степень; MOD - деление по модулю.
Сравнение:
EQ = - равно; NЕ, <> - не равно; GT, > - больше чем; LT, < - меньше чем; GE, < = - меньше или равно; LE, > = - больше или равно.
Логические:
NОТ - нет; AND, & - и; OR - или; XОR - исключающее "или"; = - присвоение; () - индексы массива.
Строковые:
+ - сцепление строк; ' - кавычка; $ - символ соответствия символа; * - символ соответствия строки.
Числовые функций:
ABS - абсолютное значение; ARCSIN - арксинус; ЕХР – е в степени; INIT - инициализирует массив; LEN - определяет длину строки; LN - вычисляет натуральный логарифм; LOG - вычисляет логарифм с основанием 10; МАХ - наибольшее из двух чисел; MENU - создает меню; MIN - меньшее из двух чисел; RAND - случайное число; SIN - синус; SQRT - квадратный корень.
Символьные функции:
CHR - преобразует код ASCII в его символьный эквивалент; VAL - преобразует символ в его код ASCII; INIT - инициализирует массив; SUBSTR - выделяет подстроку из строки; TIME - возвращает текущее время; TOSTR - преобразует числа в символы; TONUM - преобразует строку в число; TRIM - отсекает конечные пробелы; ТУРЕ - тип переменной.
Логические функции:
ALPHASTR - вся ли строка состоит из букв; INIT - инициализирует массив.
Приложение 4 Варианты заданий к лабораторной работе 1
Вариант 1 GOAL: ways
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ (ДА-TRUE, HET-FALSE) */
INITIAL: Clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output "ДОБРЫЙ ДЕНЬ, МИСТЕР (МИССИС)." output output "ВЫ, ПУТЕШЕСТВУЯ НА СВОЕМ АВТОМОБИЛЕ, ОСТАНОВИЛИСЬ ПЕРЕ-" output "ДОХНУТЬ. А КОГДА НАБРАЛИСЬ СИЛ, ТО ОБНАРУЖИЛИ, ЧТО output "ВАША МАШИНА НЕ ЗАВОДИТСЯ. MЫ ПОСТАРАЕМСЯ ДАТЬ ВА СОВЕТ" output "ПО УСТРАНЕНИЮ И ПРИЧИНАМ ПОЯВЛЕНИЯ НЕИСПРАВНОСТЕЙ." output "НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ ВНЕ ВСЮ ИНФОРМАЦИЮ." output " ИТАК, ПОЕХАЛИ" output fires = true input fires logic with "ЕСТЬ ЛИ ИСКРА В БЛОКЕ ЗАЖИГАНИЯ?"
DO: clear output "ВОТ ЧТО Я ВАМ СКАЖУ, ЛЮБЕЗНЕЙШИЙ." output output reasons output output "А ВОТ ЧТО ВАМ СЛЕДУЕТ СДЕЛАТЬ В ДАННОЙ СИТУАЦИИ." output output ways
RULE: Rl IF: fires THEN: output input petrol logic with " ПОСТУПАЕТ ЛИ БЕНЗИН В КАРБЮРАТОР?" REASON: ЕСЛИ ЕСТЬ ИСКРА, ТО НУЖЕН ЕЩЕ И БЕНЗИН. COMMENT: ПОСТУПАЕТ ЛИ БЕНЗИН В КАРБЮРАТОР.
RULE: R2 IF: not fires THEN: output input acommulate logic with " ОКИСЛЕНЫ КЛЕММЫ АККУМУЛЯТОРА?" REASON: ЕСЛИ НЕТ ИСКРЫ, ТО СКОРЕЕ ВСЕГО ОКИСЛИЛИСЬ КЛЕММЫ АК-РА. COMMENT: ОКИСЛИЛСЯ ЛИ АККУМУЛЯТОР.
RULE: R3 IF: not petrol THEN: output "ЕСТЬ ЛИ БЕНЗИН В БАКЕ ВАШЕГО АВТОМОБИЛЯ?" input ptrltank logic REASON: ЕСЛИ БЕНЗИН В КАРБЮРАТОР НЕ ПОСТУПАЕТ, ТО СКОРЕЕ ВСЕГО, ОН ПРОСТО КОНЧИЛСЯ. COMMENT: НЕТ БЕНЗИНА В БАКЕ АВТОМОБИЛЯ.
RULE: R4 IF: not ptrltank THEN: rasons="KOHЧИЛСЯ БЕНЗИН В БАКЕ ВАШЕГО АВТОМОБИЛЯ." ways=" ЗАПРАВЬТЕ МАШИНУ ГОРЮЧИМ." REASON: ЕСЛИ НЕТ БЕНЗИНА, ТО НАДО ЗАПРАВИТЬСЯ. COMMENT: ПУСТОЙ БАК.
RULE: R5 IF: ptrltank THEN: геаsons="ЗАСОРИЛАСЬ ТРУБКА БЕНЗОНАСОСА." wavs="ОТСОЕДИНИТЕ ТРУБКУ И ПРОДУЙТЕ. ЗАТЕМ, УСТАНОВИВ" ways=ways+" НА МЕСТО, ПОПРОБУЙТЕ СНОВА ЗАВЕСТИ." REASON: ЕСЛИ БЕНЗИН В БАКЕ ЕСТЬ, А В КАРБЮРАТОРЕ ЕГО НЕТ, ТО НАДО ПРОЧИСТИТЬ ТРУБКИ, ПОСТАВЛЯЮЩИЕ ТОПЛИВО В КАРБЮРАТОР COMMENT: ЗАСОРИЛИСЬ КАНАЛЫ ПОДАЧИ БЕНЗИНА.
RULE: R6 IF: acommulate THEN: reasons="ПЛОХОЙ КОНТАКТ ЦЕПИ ЗАЖИГАНИЯ С АККУ-РОМ" ways="ЗАЧИСТИТЕ КЛЕММЫ НАЖДАЧНОЙ ШКУРКОЙ И ПОПЫТАЙТЕСЬ" ways=ways+" ЗАВЕСТИ ВНОВЬ." REASON: ЕСЛИ ОКИСЛЕНЫ КОНТАКТЫ, ТО ИХ НАДО ЗАЧИСТИТЬ. COMMENT: ПЛОХОЙ КОНТАКТ АККУМУЛЯТОРА С ПРОВОДКОЙ.
RULE: R7 IF: not acommulate THEN: output "АККУМУЛЯТОР ВЫРАБОТАЛ СВОЙ РЕСУРС?" input lowenergy logic REASON: ЕСЛИ НЕТ ИСКРЫ И КОНТАКТ В ПОРЯДКЕ, ТО СКОРЕЕ ВСЕГО ВАШ АККУМУЛЯТОР ПРИШЕЛ В НЕГОДНОСТЬ. COMMENT: РЕСУРС АККУМУЛЯТОРА.
RULE: R8 IF: lowenergy THEN: reasons="ВАШ АККУМУЛЯТОР СТАЛ НЕПРИГОДНЫМ." ways=" ЕСЛИ ЕСТЬ ВОЗМОЖНОСТЬ, ТО ЗАМЕНИТЕ СВОЙ АККУМУ-" ways=ways+"ЛЯТOP. B ПРОТИВНОМ СЛУЧАЕ ВАМ ПРИДЕТСЯ" ways=ways+" ЗАВОДИТЬ СВОИ АППАРАТ 'РУЧКОЙ' (ИЗОГНУТЫЙ " wауs=wауs+" КУСОК ЖЕЛЕЗКИ)" REASON: ЕСЛИ СЕЛ АККУМУЛЯТОР, ТО ЕГО НАДО МЕНЯТЬ ЛИБО ЗАВОДИТЬ МАШИНУ 'РУЧКОЙ' COMMENT: СЕЛ АККУМУЛЯТОР.
VAR: fires LABEL: НАЛИЧИЕ ИСКРЫ В БЛОКЕ ЗАЖИГАНИЯ
VAR: WAYS FIND: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК НЕИЗВЕСТНА." ways="ПОПРОБУЙТЕ ОБРАТИТЬСЯ В АВТОСЕРВИС." LABEL: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК
END:
В варианте 1 предлагается предусмотреть изменения, учитывающие ситуации: а) автомобиль заводится, но не едет; б) автомобиль заводится, едет, но не туда, куда его направляет водитель.
Вариант 2 GOAL: computer
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ, */ /* КАК ДЕЙСТВОВАТЬ, ЕСЛИ ВДРУГ ВАШ КОМПЬЮТЕР ПРИ ВКЛЮЧЕНИИ */ /* ЕГО В СЕТЬ ВЕДЕТ СЕБЯ НЕ ТАК, КАК ОБЫЧНО. И ВОТ, В ЗАВИСИ- */ /* МОСТИ ОТ ВНЕШНЕГО ПРОЯВЛЕНИЯ ЭТИХ СТРАННОСТЕЙ ВАМ БУДЕТ */ /* ДАН СОВЕТ, КАКОЕ ДЕЙСТВИЕ ПРЕДПРИНЯТЬ. КОНЕЧНО, ЭТО МАЛЕНЬ- */ /* КИИ И ДАЛЕКО НЕПОЛНЫЙ НАБОР, И, ВОЗМОЖНО, СОВЕТЫ ВАМ ПОКА- */ /* ЖУТСЯ НЕУМЕСТНЫМИ, НО ВЕДЬ ОН И ПРЕДНАЗНАЧЕН ДЛЯ ПОКАЗА */ /* САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU. */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output output " ПРИ ВКЛЮЧЕНИИ КОМПЬЮТЕРА ВЫ НЕ ПОЛУЧАЕТЕ ОБЫЧНОГО" output " РЕЗУЛЬТАТА. МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ В ЭТОМ НЕ-" output "ПРОСТОМ ДЕЛЕ. НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ" output " МНЕ ВСЮ ИНФОРМАЦИЮ. ИТАК, НАЧНЕМ" power=true output "ЗАГОРАЕТСЯ ЛИ ИНДИКАТОР ПИТАНИЯ НА ВАШЕМ КОМПЬЮТЕРЕ?" input power logic
DO: clear output " ВОТ ЧТО Я ВАМ СКАЖУ, ЛЮБЕЗНЕЙШИЙ." output output computer
RULE: R1 IF: power THEN: output output "НУ ХОТЬ ПИТАНИЕ В ПОРЯДКЕ, И ТО ХОРОШО!" output "ИСПРАВЕН И ПРАВИЛЬНО ЛИ ПОДКЛЮЧЕН ДИСПЛЕЙ?" input displ logic REASON: ЕСЛИ В ПОРЯДКЕ ПИТАНИЕ, ТО В ПОРЯДКЕ ЛИ ДИСПЛЕЙ. COMMENT: ДЛЯ, ТОГО ЧТОБЫ ЧТО-ТО УВИДЕТЬ, НЕОБХОДИМО УСТРОЙСТВО ОТОБРАЖЕНИЯ ИНФОРМАЦИИ.
RULE: R2 IF: not power THEN: output computer="ПРОВЕРЬТЕ НАПРЯЖЕНИЕ В СЕТИ. ВКЛЮЧИТЕ ПИТА-" computer=computer+"HИE ИЛИ ПОЧИНИТЕ БЛОК ПИТАНИЯ И" computer=computer+"ПОПРОБУЙTE ЕЩЕ РАЗ." REASON: ЕСЛИ НЕТ ПИТАНИЯ, ТО НЕОБХОДИМО ЕГО ОБЕСПЕЧИТЬ COMMENT: БЕЗ НОРМАЛЬНОГО ПИТАНИЯ НИКТО ВАМ РАБОТАТЬ НЕ БУДЕТ.
RULE: R3 IF: not displ THEN: output computer= EPbTE НАПРЯЖЕНИЕ СЕТИ. ВКЛЮЧИТЕ ДИСПЛЕИ" computer=computer+"ИЛИ УСТРОИТЕ ТАК, ЧТОБЫ ОН РАБОТАЛ" computer=computer+"И ПОПРОБУЙТЕ ЕЩЕ РАЗ." "ПPOB REASON: HE РАБОТАЕТ ДИСПЛЕИ. НЕОБХОДИМО, ЧТОБЫ ОН РАБОТАЛ. COMMENT: БЕЗ РАБОТАЮЩЕГО ДИСПЛЕЯ - НЕ ЖИЗНЬ.
RULE: R4 IF: displ THEN: output "ЕСТЬ ЛИ У ВАШЕГО КОМПЬЮТЕРА ЖЕСТКИЙ ДИСК?" input harddisk logic REASON: ЕСЛИ ПИТАНИЕ КОМПЬЮТЕРА И ДИСПЛЕИ В ПОРЯДКЕ, ТО НАДО ЗНАТЬ, ПОДКЛЮЧЕН ЛИ К ВАШЕЙ МАШИНЕ ЖЕСТКИЙ ДИСК. COMMENT: ПОДКЛЮЧЕН ЛИ ЖЕСТКИЙ ДИСК.
RULE: R5 IF: harddisk THEN: output "ПРОИСХОДИТ ОБРАЩЕНИЕ К ДИСКУ (ИНДИКАТОР " output "ГОРИТ)?" input HDtest logic REASON: ЕСЛИ УСТАНОВЛЕН "ВИНЧЕСТЕР", ТО ПРОВЕРИМ ПОДКЛЮЧЕНИЕ. COMMENT: ЕСЛИ "ВИНТ" НА МЕСТЕ, ТО ЗАМЕЧАЕТ ЛИ ЕГО СИСТЕМА.
RULE: R6 IF: not harddisk THEN: output "УСТАНОВЛЕНЫ НА ВАШЕЙ МАШИНЕ ДИСКОВОДЫ ГИБ-" output "КИХ ДИСКОВ (1 И БОЛЕЕ)? " input diskete logic REASON: ЕСЛИ НЕТ "ВИНТА", ТО ДИСКОВОДЫ НА МАШИНЕ УСТАНОВЛЕНЫ? COMMENT: ЕСТЬ ЛИ ДИСКОВОДЫ.
RULE: R7 IF: not HDtest output "УСТАНОВЛЕНЫ ЛИ НА ВАШЕЙ МАШИНЕ ДИСКОВОДЫ" output " ГИБКИХ ДИСКОВ (1 И БОЛЕЕ)? THEN: input diskete logic REASON: УСТАНОВЛЕНЫ ЛИ ДИСКОВОДЫ НА МАШИНЕ? COMMENT: ЕСТЬ ЛИ ДИСКОВОДЫ.
RULE: R8 IF: HDtest THEN: output "ВЫДАЕТСЯ ЛИ СООБЩЕНИЕ ОБ ОШИБКЕ ЧТЕНИЯ 'ВИ-" output "НЧЕСТЕРА'?" input HDerror logic REASON: БЕЗ ОШИБОК ЛИ ПРОХОДИТ ОПЕРАЦИЯ ТЕСТИРОВАНИЯ. COMMENT: НАЛИЧИЕ ОШИБОК ТЕСТИРОВАНИЯ ДИСКА.
RULE: R9 IF: HDerror THEN: output "УСТАНОВЛЕНЫ ЛИ НА ВАШЕЙ МАШИНЕ ДИСКОВОДЫ ГИ-" output "БКИХ ДИСКОВ (1 И БОЛЕЕ)? " input diskete logic REASON: ЕСЛИ ЕСТЬ ОШИБКИ В РАБОТЕ "ВИНТА", ТО ИНТЕРЕСНО, УСТАНОВЛЕНЫ ЛИ ДИСКОВОДЫ НА МАШИНЕ? COMMENT: ЕСТЬ ЛИ ДИСКОВОДЫ.
RULE: R10 IF: diskete THEN: computer="BAM СЛЕДУЕТ ВСТАВИТЬ В ДИСКОВОД СИСТЕМНУЮ " computer=computer+"ДИСКЕТУ СООТВЕТСТВУЮЩЕГО ФОРМАТА " computer=computer+" И ПЕРЕЗАГРУЗИТЬ КОМПЬЮТЕР." REASON: ЕСЛИ "ВИНТ" НЕ В ПОРЯДКЕ, ТО СЛЕДУЕТ ИСПОЛЬЗОВАТЬ ГИБКИЙ ДИСК ДЛЯ ЗАГРУЗКИ СИСТЕМЫ. COMMENT: СЛЕДУЕТ ИСПОЛЬЗОВАТЬ ГИБКИЙ ДИСК ДЛЯ ЗАГРУЗКИ СИСТЕМЫ.
RULE: R11 IF: not diskete THEN: computer="BAM ЛУЧШЕ ВСЕГО ДАЛЬШЕ НЕ УГЛУБЛЯТЬСЯ В " computer=computer+"ЭТУ ПРОБЛЕМУ, А ВЫЗВАТЬ МАСТЕРА." REASON: ЕСЛИ НЕ РАБОТАЮТ (ОТСУТСТВУЮТ) ДИСК И ДИСКОВОДЫ, ТО НЕ СТОИТ ПЫТАТЬСЯ ПЕРЕЗАГРУЗИТЬ МАШИНУ. COMMENT: HE РАБОТАЮТ ДИСК И ДИСКОВОДЫ, СЛЕДОВАТЕЛЬНО, НЕ СТОИТ ПЫТАТЬСЯ ПЕРЕЗАГРУЗИТЬ МАШИНУ.
RULE: R12 IF: not HDerror THEN: computer="ECЛИ HE ПОЯВЛЯЕТСЯ ПРИГЛАШЕНИЕ ОПЕРАЦИОННОЙ" computer=computer+" СИСТЕМЫ, ТО ПРОВЕРЬТЕ СОДЕРЩИМОЕ" computer=computer+"ФАЙЛОВ autoexec.bat И config.sys," computer=computer+'3AГРУЗИВШИСЬ С ДИСКЕТЫ. И ЕСЛИ ТАМ" computer=computer+" ВСЕ В ПОРЯДКЕ, ПЕРЕЗАПИШИТЕ ОС." REASON: ЕСЛИ НЕТ ОШИБКИ ЧТЕНИЯ "ВИНЧЕСТЕРА" ТО ВСЕ ЕЩЕ МОЖНО ИСПРАВИТЬ, ЛИШЬ БЫ ДИСКОВОД ГИБКИХ ДИСКОВ БЫЛ ИСПРАВЕН. COMMENT: НЕТ ОШИБКИ ЧТЕНИЯ "ВИНТА".
VAR: POWER LABEL: СРАБАТЫВАНИЕ СВЕТОВОЙ ИНДИКАЦИИ ПРИ ВКЛЮЧЕНИИ КОМПЬЮТЕРА END:
В варианте 2 предлагается предусмотреть изменения, учитывающие ситуации: а) неисправность клавиатуры компьютера; б) неисправность манипулятора типа "мышь".
Вариант 3 GOAL: ways
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /* УСТРАНЕНИЮ НЕКОТОРЫХ ДЕФЕКТОВ ВОДНЫХ КРАСОК И СООБЩИТ */ /* ПРИЧИНЫ ИХ ПОЯВЛЕНИЯ. КОНЕЧНО, ЭТО МАЛЕНЬКИЙ И НЕ ПОЛНЫЙ */ /* НАБОР, НО ВЕДЬ ОН И ПРЕДНАЗНАЧЕН ДЛЯ ПОКАЗА САМЫХ */ /* ТРИВИАЛЬНЫХ СРЕДСТВ GURU. ТАК ЧТО НЕ ОЖИДАЙТЕ */ /* ЧЕГО-ЛИБО СВЕРХИНТЕЛЛЕКТУАЛЬНОГО. */ /* НА ВОПРОСЫ СИСТЕМ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ*/ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ. (ДА-TRUE, HET-FALSE) */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output output " ПОСЛЕ ОКРАСКИ ПОВЕРХНОСТИ ВОДНЫМИ КРАСКАМИ МОГУТ" output " ПРОЯВИТЬСЯ ДЕФЕКТЫ." output " МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ ПО ИХ УСТРАНЕНИЮ И" output " ПРИЧИНАМ ПОЯВЛЕНИЯ." output " НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ ВСЮ " output "ИНФОРМАЦИЮ." output " ИТАК, НАЧНЕМ..." defects=true output " ПОЯВИЛИСЬ ЛИ ДЕФЕКТЫ НА ОКРАШЕННОЙ ПОВЕРХНОСТИ?" input defects logic
DO: clear output " ВОТ ЧТО Я ВАМ СКАЖУ, ЛЮБЕЗНЕЙШИЙ." output output reasons output output "А ВОТ ЧТО ВАМ СЛЕДУЕТ СДЕЛАТЬ В ДАННОЙ СИТУАЦИЙ." output output ways
RULE: Rl IF: defects THEN: output input circle logic with " ЭТИ ДЕФЕКТЫ - ПЯТНА?" REASON: ЕСЛИ ЕСТЬ ДЕФЕКТЫ, ТО СКОРЕЕ ВСЕГО ЭТО ПЯТНА. COMMENT: ЯВЛЯЮТСЯ ЛИ ДЕФЕКТЫ ПЯТНАМИ.
RULE: R2 IF: not defects THEN: output reasons="HET ДЕФЕКТОВ НА ПОВЕРХНОСТИ, ЗНАЧИТ ВЫ " reasons=reasons+"BCE СДЕЛАЛИ ПРАВИЛЬНО." ways="ПОЙДИТЕ ЛУЧШЕ ОТДОХНИТЕ. ВЕДЬ У ВАС" ways=ways+" ВСЕ В ПОРЯДКЕ." REASON: ЕСЛИ НЕТ ДЕФЕКТОВ, ТО НИЧЕГО ДЕЛАТЬ НЕ НУЖНО. COMMENT: НЕТ ДЕФЕКТОВ - ОТДЫХАЙ.
RULE: R3 IF: not circle THEN: output input lines logic with " ЭТИ ДЕФЕКТЫ - ПОЛОСЫ? " REASON: ЕСЛИ ДЕФЕКТЫ НЕ ПЯТНА, ТО СКОРЕЕ ВСЕГО ЭТО ПОЛОСЫ. COMMENT: ЯВЛЯЮТСЯ ЛИ ДЕФЕКТЫ ПОЛОСАМИ.
RULE: R4 IF: circle THEN: output input fatcrcl logic with "ЭТО ЖИРНЫЕ ПЯТНА?" REASON: ЕСЛИ ДЕФЕКТЫ ПЯТНА, ТО СКОРЕЕ ВСЕГО ЭТО ЖИРНЫЕ ПЯТНА. COMMENT: ЯВЛЯЮТСЯ ЛИ ПЯТНА ЖИРНЫМИ.
RULE: R5 IF: fatcrcl THEN: output output "ОКРАШЕННАЯ ПОВЕРХНОСТЬ ЯВЛЯЕТСЯ " output " ШТУКАТУРКОЙ?" input sfcshtkr logic output REASON: ЕСЛИ ПЯТНА ЖИРНЫЕ, ТО ВАЖНО ЗНАТЬ, КАКАЯ ПОВЕРХНОСТЬ ОКРАШЕНА. COMMENT: НА ШТУКАТУРКЕ ЖИРНЫЕ ПЯТНА.
RULE: R6 IF: not sfcshtkr THEN: output output "ОКРАШЕННАЯ ПОВЕРХНОСТЬ ЯВЛЯЕТСЯ" output " ЖЕЛЕЗОБЕТОННОЙ?" input sfcsteel logic REASON: ЕСЛИ ПЯТКА ЖИРНЫЕ, ТО ВАЖНО ЗНАТЬ, КАКАЯ ПОВЕРХНОСТЬ ОКРАШЕНА. COMMENT: НА ЖЕЛЕЗОБЕТОНЕ ЖИРНЫЕ ПЯТНА.
RULE: R7 IF: not sfcsteel THEM: output reasons="ПPИЧИHA ПОЯВЛЕНИЯ ЭТИХ ЖИРНЫХ ПЯТЕН" reasons=reasons+" МНЕ НЕИЗВЕСТНА." ways="ПОПРОБУКТЕ ОБРАТИТЬСЯ К БОЛЕЕ ОПЫТНОМУ" ways=ways+" СПЕЦИАЛИСТУ." REASON: ЕСЛИ ЖИРНЫЕ ПЯТНА ПОЯВИЛИСЬ НА КАКОЙ-ТО ДРУГОЙ ПОВЕРХНОСТИ, ТО НИЧЕГО ПУТНОГО ПОСОВЕТОВАТЬ ВАМ Я НЕ МОГУ. COMMENT: ЖИРНЫЕ ПЯТНА НА НЕЗАРЕЗЕРВИРОВАННОЙ ПОВЕРХНОСТИ.
RULE: E8 IF: sfcsteel THEN: reasons="HA ЖЕЛЕЗОБЕТОНЕ СЛЕДЫ НЕВЫСЫХАЮЩИХ " reasons=reasons+"MACEЛ ОТ СМАЗКИ ФОРМ." wауs="ОЧИСТИТЬ ПОВЕРХН. ОТ СЛОЯ КРАСКИ ВМЕСТЕ СО" ways=ways+" ШПАКЛЕВКОЙ, ПРОМЫТЬ 5%-НЫМ РАСТВ. " ways=ways+"ТРИНАТРИЙФОСФАТА ИЛИ КАЛЬЦ-ОЙ " ways=ways+"СОДЫ, НЕЙТРАЛИЗОВАТЬ ПОВЕРХНОСТЬ 5%-НЫМ" ways=ways+" PACTB. СОЛЯНОЙ КИСЛОТЫ И ВНОВЬ ОКРАСИТЬ." REASON: ЕСЛИ ЖИРНЫЕ ПЯТНА НА ЖЕЛЕЗОБЕТОНЕ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ ЖИРНЫХ ПЯТЕН НА ЖЕЛЕЗОБЕТОНЕ.
RULE: R9 IF: sfcshtkr THEN: reasons="HA ШТУКАТУРКЕ ОСТАЛИСЬ ПЯТНА НЕВЫСЫХАЮЩИХ" reasons=reasons+" МИНЕРАЛЬНЫХ И ЖИВОТНЫХ МАСЕЛ." ways="ВЫРУБИТЬ ШТУКАТУРКУ НА УЧАСТКЕ ПЯТНА, ВНОВЬ " ways=ways+"ОТШТУКАТУРИТЬ И ОКРАСИТЬ, ПРОМЫТЬ ПОВЕР-" ways=ways+"XHOCTb ЩЕЛОЧНОЙ ВОДОЙ И ВНОВЬ ОКРАСИТЬ." REASON: ЕСЛИ ЖИРНЫЕ ПЯТНА НА ШТУКАТУРКЕ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ ЖИРНЫХ ПЯТЕН НА ШТУКАТУРКЕ.
RULE: R10 IF: not fatcrcl THEN: output output "ЭТО ЖЕЛТЫЕ РЖАВЫЕ ПЯТНА?" input rsvcrcl logic REASOH: ЕСЛИ ДЕФЕКТЫ НЕ ЖИРНЫЕ ПЯТНА, ТО СКОРЕЕ ВСЕГО ЭТО РЖАВЫЕ ПЯТНА. COMMENT: ЯВЛЯЮТСЯ ЛИ ПЯТНА РЖАВЫМИ.
RULE: R11 IF: not rsvcrcl THEN: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ ПЯТЕН МНЕ" reasons=reasons+" НЕИЗВЕСТНА." ways="ПОПРОБУЙТЕ ОБРАТИТЬСЯ К БОЛЕЕ ОПЫТНОМУ" ways=ways+" СПЕЦИАЛИСТУ." REASOH: ЕСЛИ ПОЯВИЛИСЬ КАКИЕ-ТО ДРУГИЕ ПЯТНА,ТО НИЧЕГО ПУТНОГО ПОСОВЕТОВАТЬ ВАМ Я НЕ МОГУ. СОММЕНТ: КАКИЕ-ТО НЕЗАРЕЗЕРВИРОВАННЫЕ ПЯТНА НА ПОВЕРХНОСТИ.
RULE: R12 IF: rsvcrcl ТНЕН: reasons="ПРОИСХОДИТ ПРОСАЧИВАНИЕ СМОЛИСТЫХ ВЕЩЕСТВ " reasons=reasons+"ЧЕРЕЗ ШТУКАТУРКУ И КРАСКУ." ways="УДАЛИТЬ СТАРЫЙ НАБЕЛ, ПРОМЫТЬ ТЕПЛЫМ З% РАСТВ." ways=ways+"СОЛЯНОЙ КИСЛОТЫ И, ЕСЛИ ПЯТНА НЕВЕЛИКИ" ways=ways+", ОТГРУHTOBATЬ МЕДНОКУПОРОСНОЙ ГРУНТОВКОЙ" ways=ways+" БЕЗ МЕЛА, А ПРИ БОЛЬШИХ РАЗМЕРАХ - ЩЕЛ" ways=ways+"ОЧНЫМ, СПИРТОВЫМ ИЛИ КАНИФОЛЬНЫМ ЛАКОМ." REASON: ЕСЛИ ЖИРНЫЕ ПЯТНА НА ШТУКАТУРКЕ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ ЖИРНЫХ ПЯТЕН НА ШТУКАТУРКЕ.
RULE: R13 IF: lines THEN: reasons="НЕДОСТАТОЧНО ПЕРЕМЕШАНЫ ПИГМЕНТЫ В КОЛЕРЕ," reasons=reasons+" ПЛОХОРАСТУШЕВАН КОЛЕР." ways="ПРОМЫТЬ ПОВЕРХНОСТЬ И ОКРАСИТЬ ИЗ " ways=ways+"KPACKOПУЛЬТА." REASON: ЕСЛИ ПОЛОСЫ НА ОКРАШЕННОЙ ПОВЕРХНОСТИ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ ПОЛОС.
RULE: R14 IF: not lines THEN: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ДРУГИХ ДЕФЕКТОВ МНЕ" reasons=reasons+" НЕИЗВЕСТНА." ways="ПОПРОБУЙТЕ ОБРАТИТЬСЯ К БОЛЕЕ ОПЫТНОМУ" ways=ways+"СПЕЦИАЛИСТУ." REASON: ЕСЛИ ПОЯВИЛИСЬ КАКИЕ-ТО ДРУГИЕ ДЕФЕКТЫ, ТО НИЧЕГО ПУТНОГО ПОСОВЕТОВАТЬ ВАМ Я НЕ МОГУ. COMMENT: КАКИЕ-ТО НЕЗАРЕЗЕРВИРОВАННЫЕ ДЕФЕКТЫ НА ПОВЕРХНОСТИ.
VAR: defects LABEL: НАЛИЧИЕ ДЕФЕКТОВ НА ОКРАШЕННОЙ ПОВЕРХНОСТИ.
END:
В Варианте 3 предлагается предусмотреть изменения, учитывающие ситуации: а) появление пузырей на окрашенной поверхности; б) отслаивание краски после высыхания.
Вариант 4 GOAL: breaking
/*ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /*ОРГАНИЗАЦИИ ОГРАБЛЕНИЯ БАНКА. КОНЕЧНО, ЭТО МАЛЕНЬКИЙ */ /*НАБОР И ОН ПРЕДНАЗНАЧЕН ДЛЯ ПОКАЗА САМЫХ */ /*ТРИВИАЛЬНЫХ СРЕДСТВ GURU. ТАК ЧТО НЕ ОЖИДАЙТЕ ЧЕГО-ЛИБО */ /*МОЩНОГО. НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ */ /*СООТВЕТСТВУЮЩЕЕ ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕНКОЙ */ /*(ДА-TRUE, HET-FALSE) */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output "ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output output " ВСЕ ХОТЯТ ОГРАБИТЬ БАНК, ДА НЕ ВСЕ МОГУТ..." output "МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ В ЭТОМ НЕПРОСТОМ ДЕЛЕ." output " НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ ВСЮ" output " ИНФОРМАЦИЮ." output " ИТАК, ПОЕХАЛИ..." output at 17,10 output "СКОЛЬКО У ВАС ВЕРНЫХ ЛЮДЕЙ?" input people num using "nn" at 19,10 output "СКОЛЬКО У ВАС 'СТВОЛОВ'?" input guns num using "nn" at 21,10 output " А СКОЛЬКО ВЫ ХОТИТЕ ВЗЯТЬ?" input nmoney num output clear
DO: clear output output " ВОТ ЧТО Я ВАМ СКАЖУ, ЛЮБЕЗНЕЙШИЙ." output output breaking
RULE: R1 IF: nmoney >=10000000 THEN: output output "A У ВАС ГУБА НЕ ДУРА!" output "А СКОЛЬКО ДЕНЕГ ХРАНИТСЯ В БАНКЕ " output "НАЛИЧНЫМИ?" input emoney num REASON: ЕСЛИ ВЫ ТАК МНОГО ХОТИТЕ ВЗЯТЬ, ТО СЛЕДУЕТ ЗНАТЬ, РАСПОЛАГАЕТ ЛИ БАНК ТАКОЙ СУММОЙ. COMMENT: ВЫ ТАК МНОГО ХОТИТЕ ВЗЯТЬ, СЛЕДОВАТЕЛЬНО. СЛЕДУЕТ ЗНАТЬ, РАСПОЛАГАЕТ ЛИ БАНК ТАКОЙ СУММОЙ.
RULE: R2 IF: nmoney<10000000 THEN: output "A СКОЛЬКО ДЕНЕГ ХРАНИТСЯ В БАНКЕ НАЛИЧНЫМИ?" input emoney num REASON: ЕСЛИ ВЫ ХОТИТЕ ОГРАБИТЬ БАНК, ТО СЛЕДУЕТ ЗНАТЬ, РАСПОЛАГАЕТ ЛИ ОН ТАКОЙ СУММОЙ. COMMENT: ВЫ ХОТИТЕ ВЗЯТЬ ЧУЖИЕ ДЕНЬГИ, СЛЕДОВАТЕЛЬНО, СЛЕДУЕТ ЗНАТЬ, РАСПОЛАГАЕТ ЛИ БАНК ТАКОЙ СУММОЙ.
RULE: R3 IF: nmoney<emoney THEN: output output "И ТАК, ВЫ РЕШИЛИСЬ НА ДЕЛО, А КАК ОБСТОЯТ" output "ДЕЛА С ОХРАНОЙ?" output output "ОХРАНЯЕТСЯ ЛИ БАНК ДНЕМ?" input dayctrl logic output output "ОХРАНЯЕТСЯ ЛИ БАНК ПОЛИЦЕЙСКИМИ НОЧЬЮ?" input nitectrl logic REASON: ЕСЛИ В БАНКЕ ДОСТАТОЧНО ДЕНЕГ, ТО НАЧИНАЕМ СОБИРАТЬ ИНФОРМАЦИЮ ОБ ОХРАНЕ. COMMENT: БАНК ИМЕЕТ ДОСТАТОЧНО СРЕДСТВ ДЛЯ УДОВЛЕТВОРЕНИЯ ВАШИХ ПОТРЕБНОСТЕЙ. УЗНАЕМ, ОХРАНЯЕТСЯ ЛИ ОН ДНЕМ И НОЧЬЮ.
RULE: R4 IF: dayctrl THEN: output output "СКОЛЬКО ЧЕЛОВЕК СТОИТ НА ОХРАНЕ БАНКА ДНЕМ?" input dayсol num using "nn" output output "ПРОСМАТРИВАЕТСЯ ЛИ ПОМЕЩЕНИЕ БАНКА" output "ВИДЕОКАМЕРОЙ?" input kamera logic REASON: ЕСЛИ ДНЕМ БАНК ОХРАНЯЕТСЯ, ТО НАДО УЗНАТЬ КОЛ-ВО ОХРАНЫ И ПОЛУЧИТЬ ИНФОРМАЦИЮ О НАЛИЧИИ В ПОМЕЩЕНИИ БАНКА ВИДЕОКАМЕРЫ. COMMENT: ЕСЛИ У ВХОДА ДНЕМ СТОЯТ ПОЛИЦЕЙСКИЕ, ТО НАДО УЗНАТЬ СКОЛЬКО ИХ, И ПРОСМАТРИВАЕТСЯ ЛИ ПОМЕЩЕНИЕ ВИДЕОКАМЕРОЙ
RULE: R5 IF: nitectrl THEN: output output"СКОЛЬКО ЧЕЛОВЕК СТОИТ НА ОХРАНЕ БАНКА НОЧЬЮ?" input nitecol num using "nn" output output "МОЖЕТЕ ЛИ ВЫ ОТКЛЮЧИТЬ СИГНАЛИЗАЦИЮ," output "ЧТОБЫ ОНА НЕ СРАБОТАЛА?" input signal logic REASON: ЕСЛИ НОЧЬЮ БАНК ОХРАНЯЕТСЯ, TO НАДО УЗНАТЬ КОЛ-ВО ОХРАННИКОВ И МОЖНО ЛИ ОТКЛЮЧИТЬ, СИГНАЛИЗАЦИЮ. COMMENT: ЕСЛИ НОЧЬЮ БАНК ОХРАНЯЮТ ПОЛИЦЕЙСКИЕ, ТО НАДО УЗНАТЬ СКОЛЬКО ИХ И МОЖНО ЛИ ОТКЛЮЧИТЬ СИГНАЛИЗАЦИЮ.
RULE: R6 IF: not nitectrl THEN: output output "МОЖЕТЕ ЛИ ВЫ ОТКЛЮЧИТЬ СИГНАЛИЗАЦИЮ," output " ЧТОБЫ ОНА НЕ СРАБОТАЛА?" input signal logic REASON: ЕСЛИ НОЧЬЮ БАНК НЕ ОХРАНЯЕТСЯ, ТО НАДО УЗНАТЬ, ВОЗМОЖНО ЛИ ОТКЛЮЧИТЬ СИГНАЛИЗАЦИЮ. COMMENT: ЕСЛИ НОЧЬЮ БАНК НЕ ОХРАНЯЮТ ПОЛИЦЕЙСКИЕ, ТО ВОЗМОЖНО ЛИ ОТКЛЮЧИТЬ СИГНАЛИЗАЦИЮ.
RULE: R7 IF: not nitectrl and signal THEN: breaking="ОПЕРАЦИЮ НАДО НАЧИНАТЬ В 2 ЧАСА 17 МИНУТ" breaking=breaking+" ПО МЕСТНОМУ ВРЕМЕНИ." REASON: ЕСЛИ БАНК НОЧЬЮ ПОД ПЛОХОЙ ОХРАНОЙ, ТО ОГРАБЛЕНИЕ ПРОЙДЕТ ВПОЛНЕ УСПЕШНО. ГЛАВНОЕ НАЧАТЬ ЕГО В 2 ЧАСА 17 МИНУТ. В НОЧЬ НА ПЯТНИЦУ. COMMENT: ТАКИЕ БАНКИ НАДО БРАТЬ НОЧЬЮ.
RULE: R8 IF: not nitectrl and not signal and dayctrl THEN: breaking="ОПЕРАЦИЮ НАДО НАЧИНАТЬ В 2 ЧАСА 17 МИНУТ " breaking=breaking+"ПO МЕСТНОМУ ВРЕМЕНИ. НО БУДЬТЕ " breaking=breaking+" OCTOPOЖНЫ, BAM НАДО ВСЕ СДЕЛАТЬ" breaking=breaking+" ЗА 15 МИНУТ. ТРЕНИРУЙТЕСЬ!" REASON: ЕСЛИ БАНК НОЧЬЮ ПОД ПЛОХОЙ ОХРАНОЙ, ТО ОГРАБЛЕНИЕ ПРОЙДЕТ ВПОЛНЕ УСПЕШНО. ГЛАВНОЕ НАЧАТЬ ЕГО В 2 ЧАСА 17 МИНУТ. В НОЧЬ НА ПЯТНИЦУ. И УЧТИТЕ, У ВАС ВСЕГО 15 МИНУТ. COMMENT: ТАКИЕ БАНКИ НАДО БРАТЬ НОЧЬЮ.
RULE: R9 IF: (nitectrl or not signal and not nitectrl) and not dayctrl and not kamera THEN: breaking="TAKOЙ БАНК НАДО БРАТЬ В 16 ЧАСОВ 45 МИНУТ" breaking=breaking+" ВДВОЕМ, ИМЕЯ ПРИ СЕБЕ ПИСТОЛЕТЫ." REASON: ЕСЛИ БАНК НОЧЬЮ ПОД ОХРАНОЙ ИЛИ СИГНАЛИЗАЦИЕЙ, НО ДНЕЙ БРОШЕН НА ПРОИЗВОЛ СУДЬБЫ, ТО ОГРАБЛЕНИЕ ПРОЙДЁТ ВПОЛНЕ УСПЕШНО. ГЛАВНОЕ НАЧАТЬ ЕГО В 16 ЧАСОВ 45 МИНУТ В ПЯТНИЦУ. COMMENT: ТАКИЕ БАНКИ НАДО БРАТЬ ДНЕМ ПРИ ВСЕМ ЧЕСТНОМ НАРОДЕ.
RULE: R10 IF: (nitectrl or not signal and not nitectrl) and not dayctrl and kamera THEN: breaking="TAKOЙ БАНК НАДО БРАТЬ В 16 ЧАСОВ 45 МИНУТ" breaking=breaking+" ВДВОЕМ, ИМЕЯ ПРИ СЕБЕ ПИСТОЛЕТЫ" breaking=breaking+" И МАСКИ." REASON: ЕСЛИ БАНК НОЧЬЮ ПОД ОХРАНОЙ ИЛИ СИГНАЛИЗАЦИЕЙ, НО ДНЕМ БРОШЕН НА ПРОИЗВОЛ СУДЬБЫ, ТО ОГРАБЛЕНИЕ ПРОЙДЕТ ВПОЛНЕ УСПЕШНО. ГЛАВНОЕ НАЧАТЬ ЕГО В 16 ЧАСОВ 45 МИНУТ В ПЯТНИЦУ. COMMENT: ТАКИЕ БАНКИ НАДО БРАТЬ ДНЕМ ПРИ ВСЕМ ЧЕСТНОМ НАРОДЕ.
RULE: R11 IF: dayctrl and nitectrl and (people<nitecol or guns<daycol) THEN: breaking="СИДЕЛИ БЫ ВЫ ЛУЧШЕ ДОМА И НЕ РЫПАЛИСЬ " breaking=breaking+"ПОНАПРАСНУ."
RULE: R12 IF: (people or guns)<l and not signal THEH: breaking="СИДЕЛИ БЫ ВЫ ЛУЧШЕ ДОНА И НЕ РЫПАЛИСЬ " breaking=breaking+"ПОНАПРАСНУ ПРИ ТАКОМ РАСКЛАДЕ " breaking=breaking+"BЫ ОБЯЗАТЕЛЬНО ПОПАДЕТЕСЬ. МОЙ " breaking=breaking+"BAM СОВЕТ: ИЩИТЕ ЛЮДЕЙ И " breaking=breaking+"ПРИОБРЕТАЙТЕ ОРУЖИЕ."
RULE: R13 IF: not dayctrl and people>1 and guns>l and nitectrl THEN: breaking="У ВАС НЕПЛОХИЕ ШАНСЫ НА УСПЕХ ПРИ РАБОТЕ" breaking=breaking+" ДНЕМ. И ЕСЛИ ВЫ ЗАХВАТИТЕ ДВУХ " breaking=breaking+"CAMHX ЛОВКИХ РЕБЯТ, ТО ПРИ " breaking=breaking+"НЕПЛОХОМ РАСКЛАДЕ ВЫ СДЕЛАЕТЕ ЭТО" breaking=breaking+" УСПЕШНО. ДА, И НЕ ЗАБУДЬТЕ МАСКИ," breaking=breaking+"TAM НАВЕРНЯКА УСТАНОВЛЕНА " breaking=breaking+"BИДEOKAMEРА." COMMENT: ДНЕМ БАНК НЕ ОХРАНЯЕТСЯ.
RULE: R14 IF: daycol<min(people,guns)-2 and nitecol>daycol+l THEN: breaking="ЛУЧШE ВСЕГО БРАТЬ ЭТОТ БАНК ШТУРМОМ," breakine=breaking+"TAK КАК У ВАС ВПОЛНЕ ДОСТАТОЧНО" breaking=breaking+" ЛЮДЕЙ. НО СТОИТ ЛИ ДЕЛАТЬ ЭТО?" COMMENT: ДНЕМ КОНТРОЛЬ ПОСЛАБЕЕ, ЧЕМ НОЧЬЮ.
VAR: GUNS LABEL: КОЛ-ВО ИМЕЮЩИХСЯ В ВАШЕМ РАСПОРЯЖЕНИИ ЕД. ОГНЕСТРЕЛЬНОГО ОРУЖИЯ.
VAR: NMONEY LABEL: ПЛАНИРУЕМАЯ СУММА ОГРАБЛЕНИЯ.
VAR: PEOPLE LABEL: КОЛ-ВО ЧЛЕНОВ ВАШЕЙ ТУСОВКИ.
END:
В варианте 4 предлагается предусмотреть изменения, учитывающие ситуации: а) ограбление транспорта, перевозящего банковские ценности; б) ограбление банка в условиях стихийного бедствия.
Вариант 5 GOAL: dinner
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ. ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /*ПРИГОТОВЛЕНИЮ ОБЕДА НА ЖЕЛАЕМОЕ ЧИСЛО ПЕРСОН В */ /* ЗАВИСИМОСТИ ОТ НАБОРА И КОЛИЧЕСТВА ПРОДУКТОВ, */ /* ИМЕЮЩИХСЯ В ВАШЕМ РАСПОРЯЖЕНИИ. СООБЩИТ ПРИЧИНЫ */ /*ПОЯВЛЕНИЯ ИМЕННО ЭТИХ СОВЕТОВ. */ /* КОНЕЧНО, ЭТО ДАЛЕКО НЕ ПОЛНЫЙ НАБОР, НО ВЕДЬ ОН И ПРЕДНА- */ /*ЗНАЧЕН ДЛЯ ПОКАЗА САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU. ТАК ЧТО */ /* НЕ ИЩИТЕ В НЕМ ЧЕГО-ЛИБО СВЕРХИНТЕЛЛЕКТУАЛЬНОГО. */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ (ДА-Y, HET-N) */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output " ПОШАРИВ В СВОЕМ ХОЛОДИЛЬНИКЕ И ОБНАРУЖИВ ТАМ " output "КОЕ-КАКИЕ ЗАПАСЫ, ВЫ РЕШИЛИ ЧТО-НИБУДЬ СОСТРЯПАТЬ. НО " output "ЧТО ИМЕННО ВЫ ЕЩЕ НЕ ПРИДУМАЛИ. МЫ ПОСТАРАЕМСЯ ДАТЬ " output "ВАМ СОВЕТ, КАК ИЗ ИМЕЮЩИХСЯ ПРОДУКТОВ СДЕЛАТЬ НЕЧТО" output " СЪЕДОБНОЕ. НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ " output "ВСЮ ИНФОРМАЦИЮ." output " ИТАК, НАЧНЕМ..." meatexst="Y" output " СКАЖИТЕ, ВЫ НАШЛИ В ХОЛОДИЛЬНИКЕ МЯСО (Y/N)?" input meatexst str using "a"
DO: clear output " ВОТ ЧТО МНЕ КАЖЕТСЯ ПРИЕМЛЕМЫМ В ДАННОЙ СИТУАЦИИ." output output dinner
RULE: Rl IF: meatexst<>"Y" or meatexst<>"y" THEN: output " ИЗВИНИТЕ, А ВЫ ВЕГЕТАРИАНЕЦ (Y/N)?" input vegitar str using "a"
RULE: R2 IF: (meatexst<>"Y" or meatexst<>"y") and (vegitar<>"y" or vegitar<>"Y") THEN: dinner=" ЛУЧШЕ ВСЕГО ВОЗЬМИТЕ СВОЙ ТОЛСТЫЙ БУМАЖНИК" dinner=dinner+" И ОТПРАВЛЯЙТЕСЬ В РЕСТОРАН, ИБО БЕЗ " dinner=dinner+"MЯCA НОРМАЛЬНОГО ОБЕДА НЕ ПОЛУЧИТСЯ "
RULE: R3 IF: vegitar="y" or vegitar="Y" THEN: output output " НУ, РАЗ ВЫ ВЕГЕТАРИАНЕЦ, ТО, НАВЕРНО,ОВОЩЕЙ " output "У ВАС НАВАЛОМ (Y/N)?" input vagitables str using "a"
RULE: R4 IF: meatexst="Y" or meatexst="y" THEN: output output " СКОЛЬКО ГРАММ МЯСА ВЫ ИМЕЕТЕ?" input howmeat num using "nnnn" output output " НА СКОЛЬКО ПЕРСОН ЗАДУМАН ВАШ ОБЕД?" input howfamily num using "n"
RULE: R5 IF: meatexst<>"Y" or meatexst<>"y" THEN: output output " ИЗВИНИТЕ, А ВЫ ВЕГЕТАРИАНЕЦ (Y/N)?" input vegitar str using "a"
RULE: R6 IF: howmeat/howfamily>300 THEN: dinner="ЛУЧШЕ ВСЕГО ВОЗЬМИТЕ ЭТОТ КУСОК МЯСА," dinner=dinner+"ПOPEЖTE ЕГО ВДОЛЬ ВОЛОКОН НА " dinner=dinner+"HETOЛCTЫE ПЛАСТЫ, ОТБЕЙТЕ, НАШПИГУЙТЕ" dinner=dinner+" И НА 30 МИН. ОТЛОЖИТЕ. ЗАТЕМ БЕРЕТЕ" dinner=dinner+" СКОВОРОДУ И ЖАРИТЕ НА МЕДЛЕННОМ " dinner=dinner+"ОГHE. КАК ГОВОРИТСЯ, СОЛЬ, АНАНАСЫ," dinner=dinner+" ФИСТАШКИ - ПО ВКУСУ."
RULE: R7 IF: (howmeat/howfamily>80) and (howmeat/howfamily<=300) THEN: enoughmeat=true
RULE: R8 IF: enoughmeat THEN: output output " МЯСО - ЭТО ЗАЛОГ УСПЕХА." output output"ИМЕЕТСЯ ЛИ В ВАШЕМ РАПОРЯЖЕНИИ КАПУСТА (Y/N)?" input kapusta str using "a" output input svekla str using "a" with " СВЕКЛА (Y/N)?". output input potetou str using "a" with " КАРТОФЕЛЬ (Y/N)?"
RULE: R9 IF: (kapusta="y" or kapusta="Y") and (svekla="y" or svekla="Y") and THEN: dinner=" ВАРИТЕ УКРАИНСКИЙ БОРЩ."
RULE: R10 IF: howmeat/howfamily<=80 THEN: enoughmeat=false
RULE: R11 IF: not enoughmeat THEN: dinner=" МЯСА ОЧЕНЬ МАЛО, ЧТОБЫ ПРИГОТОВИТЬ ПЕРВОЕ ИЛИ" dinner=dinner+"BTOPOE, HO, БЫТЬ МОЖЕТ, ЕГО ХВАТИТ НА " dinner=dinner+"МЯСНОЙ САЛАТ."
RULE: R12 IF: vagitables="Y" or vagitables="y" THEN: dinner=" СВАЛИТЕ ВСЕ В ОДНУ КУЧУ, ЗАТЕМ МЕЛКО ПОКРОШИТЕ" diriner=dinner+"(МОЖНО ПРОПУСТИТЬ ЧЕРЕЗ МЯСОРУБКУ)," dinner=dinner+" ПЕРЕЛОЖИТЕ ПОЛУЧИВШУЮСЯ МАССУ В " dinner=dinner+"САЛАТНИЦЫ И ПОДАВАЙТЕ К СТОЛУ. ЕСЛИ ВАМ " dirmer=dinner+':ПОBE3ET, TO ВСЕ БУДУТ ДОВОЛЬНЫ. ЕСЛИ НЕТ -" dinner=dinner+" HE ОБЕССУДЬТЕ."
VAR: DINNER FIND: dinner="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК НАМ НЕИЗВЕСТНА." LABEL: КАК ПОСТУПИТЬ, ЕСЛИ НУЖНО ПРИГОТОВИТЬ ОБЕД.
VAR: MEATEXST LABEL: НАЛИЧИЕ МЯСА В ВАШЕМ ХОЛОДИЛЬНИКЕ.
VAR: ENOUGHMEAT LABEL: ДОСТАТОЧНО ЛИ МЯСА ДЛЯ ОДНОГО ИЗ ПЕРВЫХ БЛЮД.
VAR: HOWMEAT LABEL: ПРИМЕРНЫЙ ВЕС КУСКА МЯСА.
VAR: HOWFAMILY LABEL: КОЛИЧЕСТВО ПЕРСОН, ПРИГЛАШЕННЫХ НА ОБЕД.
VAR: KAPUSTA LABEL: ЕСТЬ ЛИ В ДОМЕ КАПУСТА.
VAR: SVEKLA LABEL: ЕСТЬ ЛИ В ДОМЕ СВЕКЛА.
VAR: POTETOU LABEL: ЕСТЬ ЛИ В ДОМЕ КАРТОФЕЛЬ.
VAR: VEGITAR LABEL: ЯВЛЯЕТЕСЬ ЛИ ВЫ ВЕГЕТАРИАНЦЕМ.
END:
В варианте 5 предлагается предусмотреть изменения, учитывающие ситуации: а) наличие в холодильнике сыра; б) наличие в холодильнике пива.
Вариант 6 GOAL: whattodo
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ НА */ /* ТЕМУ "КАК УСПЕТЬ НА ЭКЗАМЕН", В ЗАВИСИМОСТИ ОТ ОПОЗДАНИЯ И*/ /* ВАЖНОСТИ СВОЕВРЕМЕННОГО ПРИХОДА. ОЧЕВИДНО, ЧТО ЭТО */ /* ДАЛЕКО НЕ ПОЛНЫЙ НАБОР, НО ВЕДЬ ОН И ПРЕДНАЗНАЧЕН ДЛЯ */ /* ПОКАЗА САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU. ТАК ЧТО НЕ */ /* ИЩИТЕ В НЕМ СВЕРХИНТЕЛЛЕКТУАЛЬНОГО. */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ (ДА-Y, НЕТ-N) */ /* НУ, И КОНЕЧНО, НА ПРОСЬБУ СИСТЕМЫ ВВЕСТИ СООТВЕТ- */ /* СТВУЮЩЕЕ ЧИСЛО. */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output output " У ВАС СЕГОДНЯ ЭКЗАМЕН, А ВЫ ПРОСНУЛИСЬ СЛИШКОМ " output "ПОЗДНО... ВАМ, ЕСТЕСТВЕННО, НАДО УСПЕТЬ НА НЕГО, НО " output "КАК? МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ, КАК, ИСХОДЯ ИЗ " output "СЛОЖИВШЕЙСЯ СИТУАЦИИ, ВАМ СЛЕДУЕТ ПОСТУПИТЬ. НО ДЛЯ " output "ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ ВСЮ ИНФОРМАЦИЮ." output " ИТАК, НАЧНЕМ..." output lating="Y" output" СКАЖИТЕ, ВЫ ДЕЙСТВИТЕЛЬНО ОПАЗДЫВАЕТЕ (Y/N)?" input lating str using "a"
DO: clear output " ВОТ ЧТО МНЕ КАЖЕТСЯ ПРИЕМЛЕМЫМ В ДАННОЙ СИТУАЦИИ." output output whattodo
RULE: Rl IF: mainexam and biglate THEN: whattodo=" БЕРИТЕ ТАКСИ НА ВЕСЬ ПУТЬ ДО ИНСТИТУТА. В" whattodo=whattodo+"TAKОЙ СИТУАЦИИ ДЕНЬГИ ЗНАЧЕНИЯ НЕ " whattbdo=whattodo+"ИМЕЮT."
RULE: R2 IF: not mainexam THEN: whattodo=" УСПОКОИТЕСЬ, НА НЕ ОЧЕНЬ ВАЖНЫЙ ЭКЗАМЕН " whattodo=whattodo+"HE СТОИТ СИЛЬНО СПЕШИТЬ. ПОВЕРЬТЕ," whattodo=whattodo+"BAM ПРОСТЯТ ВАШЕ ОПОЗДАНИЕ ИЛИ ДАЖЕ" whattodo=whattodo+"ОТСУТСТВИЕ. ТАК ЧТО НЕСПЕША ПО-" whattodo=whattodo+"EЗЖAЙTE НА ОБЩЕСТВЕННОМ ТРАНСПОРТЕ."
RULE: R3 IF: not biglate and mainexam THEN: whattodo=" HE ВОЛНУЙТЕСЬ, ВСЕ ЕЩЕ БУДЕТ ХОРОШО. ВАМ " whattodo=whattodo+"СТОИТ ВЗЯТЬ ТАКСИ НА ЧАСТЬ ПУТИ," whattodo=whattodo+" НАПРИМЕР, ДО КАКОГО-НИБУДЬ " whattodo=whattodo+"УЗЛОВОГО ПУНКТА (ДО МЕТРО, АВТ." whattodo=whattodo+"OCTAHQBKИ). "
RULE: R4 IF: onlyge4 THEN: mainexam=false
RULE: R5 IF: veroyatn >= 90 THEN: mainexam=false
RULE: R6 IF: (veroyatn <90) and not onlyge4 THEN: mainexam=true
ROLE: R7 IF: lating<>"Y" and lating<>"y" THEN: whattodo=" ВСЕ В ПОРЯДКЕ. ЖЕЛАЮ ВАМ НИ ПУХА."
RULE: R8 IF: howcommon<onwalk+bymetro+bybus+15 THEN: biglate=true
RULE: R9 IF: howcommon >= onwalk+bymetro+bybus+15 THEN: biglate=false
VAR: WHATTODO FIND: whattodo=" СОЖАЛЕЮ, Я НЕ ЗНАЮ, ЧТО ВАМ ПОСОВЕТОВАТЬ..." LABEL: СОВЕТ КАК ДЕЙСТВОВАТЬ В ДАННОЙ СИТУАЦИИ.
VAR: MAINEXAM LABEL: ПРЕДСТОЯЩИЙ ЭКЗАМЕН - ВАЖНЫЙ.
VAR: BIGLATE LABEL: ТЕКУЩЕЕ ОПОЗДАНИЕ - ЗНАЧИТЕЛЬНОЕ.
VAR: LATING LABEL: ВЫ РЕАЛЬНО ОПАЗДЫВАЕТЕ.
VAR: HOWCOMMON FIND: output output " СКОЛЬКО МИНУТ ВАМ ДОБИРАТЬСЯ ДО ИНСТИТУТА " output "ОБЩЕСТВЕННЫМ ТРАНСПОРТОМ?" input howcommon num using "nnn" LABEL: ВРЕМЯ В ПУТИ ДО ИНСТИТУТА.
VAR: ONWALK FIND: output output " СКОЛЬКО МИНУТ ВАМ ПРИХОДИТСЯ ИДТИ ПЕШКОМ?" input onwalk num using "nn" LABEL: ВРЕМЯ ПЕШЕГО ПЕРЕДВИЖЕНИЯ.
VAR: BYMETRO FIND: output output " СКОЛЬКО МИНУТ ВАМ ПРИХОДИТСЯ ПРОВОДИТЬ В " output "МЕТРО?" input byinetro num using "nnn" LABEL: ВРЕМЯ ПРОЕЗДА В МЕТРОПОЛИТЕНЕ.
VAR: BYBUS FIND: output output " СКОЛЬКО МИНУТ ВАМ ПРИХОДИТСЯ ПРОВОДИТЬ В " output "АВТОБУСЕ?" input bybus num using "nnn" LABEL: ВРЕМЯ ПРОЕЗДА В АВТОБУСЕ, ТРОЛЛЕЙБУСЕ, ТРАМВАЕ.
VAR: ONLYGE4 FIND: output output " НА ПРЕДСТОЯЩЕМ ЭКЗАМЕНЕ НЕ СТАВЯТ МЕНЬШЕ 4?" input onlyge4 logic LABEL: НА ПРЕДСТОЯЩЕМ ЭКЗАМЕ НЕ НЕ СТАВЯТ МЕНЬШЕ 4.
VAR: VEROYATN FIND: output output " КАКОВА ОБЪЕКТИВНАЯ ВЕРОЯТНОСТЬ ПОЛУЧЕНИЯ ВАМИ" output " ЖЕЛАЕМОЙ ОЦЕНКИ?" input veroyatn num using "nn" LABEL: ОБЪЕКТИВНАЯ ВЕРОЯТНОСТЬ ПОЛУЧЕНИЯ ВАМИ ЖЕЛАЕМОЙ ОЦЕНКИ.
END:
В варианте 6 предлагается предусмотреть изменения, учитывающие ситуации: а) свое плохое самочувствие (болезнь); б) возможность позвонить экзаменатору в аудиторию, где проходит экзамен (предупредить).
Вариант 7 GOAL: youhouse
/* ЭТА ЭКСПЕРТНАЯ СИСТЕМКА ДАСТ ВАМ РЯД СОВЕТОВ НА ТЕМУ: */ /* ХВАТИТ ЛИ ВАМ ЗАГОТОВЛЕННЫХ СТРОЙМАТЕРИАЛОВ ДЛЯ */ /* ПОСТРОЙКИ ЗАДУМАННОГО ВАМИ СОБСТВЕННОГО ДОМИКА НА */ /* СОБСТВЕННОЙ ЗЕМЛЕ. КОНЕЧНО, ЭТО ДАЛЕКО НЕ ПОЛНЫЙ */ /* НАБОР, НО ВЕДЬ ОН И ПРЕДНАЗНАЧЕН ДЛЯ ПОКАЗА */ /* САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU. */ /* ТАК ЧТО НЕ ИЩИТЕ В НЕМ ЧЕГО-ЛИБО СВЕРХИНТЕЛЛЕКТУАЛЬНОГО. */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ СТРОКОВОЙ ПЕРЕМЕННОЙ (ДА-Y, HET-N) ИЛИ ЧИСЛО. */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output " НАСТАЛА ПОРА ОБЗАВЕСТИСЬ НЕДВИЖИМОСТЬЮ (ВЫ РЕШИЛИСЬ " output "ПОСТРОИТЬ СЕБЕ ДОМ). МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ, С " output "ПОМОЩЬЮ КОТОРОГО ВЫ СМОЖЕТЕ ОПРЕДЕЛИТЬ, ХВАТИТ ЛИ ВАМ * output "СТРОЙМАТЕРИАЛОВ НА НЕГО." output "НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ ВСЮ " output "ИНФОРМАЦИЮ." output " ИТАК, НАЧНЕМ..." sqrland=0 output " СКОЛЬКО СОТОК ЗЕМЛИ НАХОДИТСЯ В ВАШЕМ ВЛАДЕНИИ?" input sqrland num using "nn"
DO: clear output " ВОТ ЧТО МНЕ КАЖЕТСЯ ПРИЕМЛЕМЫМ В ДАННОЙ СИТУАЦИИ." output output youhouse
RULE: Rl IF: sqrland<10 THEN: enoughland=false
RULE: R2 IF: sqrland>=10 THEN: enoughland=true
RULE: R3 IF: enoughland THEN: output "СКОЛЬКО ЭТАЖЕЙ В ДОМЕ БУДЕТ?" input howflors num using "nn" output "КАКОВА ПЛОЩАДЬ ОДНОГО ЭТАЖА (KB. M.)?" input howsqr num using "rin"
RULE: R4 IF: howsqr>sqrland*5 THEN: rightsqr=false
RULE: R5 IF: howsqr<=sqrland*5 THEN: rightsqr=true
RULE: R6 IF: not rightsqr THEN: youhouse="ДЛЯ ВАШЕГО УЧАСТКА ТАКАЯ ПЛОЩАДЬ ЭТАЖА НЕ " уоuhouse=youhousa+"ПОДХОДИТ."
RULE: R7 IF: howflors<=2 THEN: rightflors=true
RULE: R8 IF: howflors>2 THEN: rightflors=false
RULE: R9 IF: rightflors and rightsqr THEN: output output "СКОЛЬКО ТЫС. ШТ. КИРПИЧА ВЫ ПРИГОТОВИЛИ ДЛЯ" output " СТРОИТЕЛЬСТВА?" input howbloks num using "nn"
RULE: R10 IF: howbloks<howflors*howsqr*3 THEN: enoughbloks=false
RULE: R11 IF: howbloks>=howflors*howsqr*3 THEN: enoughbloks=true
RULE: R12 IF: not enoughbloks THEM: youhouse="HA ЖЕЛАЕМЫЙ ДОМ ВАМ НЕ ХВАТАЕТ КИРПИЧА."
RULE: R13 IF: enoughbloks THEN: output "СКОЛЬКО KB. M. ШИФЕРА ИЛИ ДРУГОГО " output "КРОВЕЛЬНОГО МАТЕРИАЛА ВЫ ИМЕЕТЕ?" input howshifers num using "nn"
RULE: R14 IF: howshifers>=howsqr*l.2 THEH: enoughshifers=true
RULE: R15 IF: howshifers<howsqr*1.2 THEN: enoughshifers=false
RULE: R16 IF: not enoughshifers THEN: youhouse="BAM HE ХВАТАЕТ КРОВЕЛЬНОГО МАТЕРИАЛА ДЛЯ " youhouse=youhouse+"TOГO, ЧТОБЫ НАКРЫТЬ СВОЙ " youhouse=youhouse+"БУДУЩИЙ ДОМ. ВАМ НУЖНО ЕЩЕ " youhouse=youhouse+"МАЛОСТЬ ПОДЗАКУПИТЬСЯ ИЛИ" youhouse=youhouse+" ПЕРЕСМОТРЕТЬ ПРОЕКТ."
RULE: R17 IF: enoughshifers and enoughbloks and enoughland THEN: youhouse="ВЫ ИМЕЕТЕ ПОЧТИ ВСЕ НЕОБХОДИМОЕ ДЛЯ" youhouse=youhouse+"ОСУЩЕСТВЛЕНИЯ СВОИХ ПЛАНОВ." youhouse=youhouse+"И ЕСЛИ ВЫ ПРИЛОЖИТЕ ДОСТАТОЧНО" youhouse=youhouse+"УСИЛИЙ, TО ЧЕРЕЗ ГОДИК-ДРУГОЙ " youhouse=youhouse+"БУДЕТ У ВАС СВОИ ДОМИК."
RULE: R18 IF: not rightflors THEN: youhouse="TAKHE ДОМА СТРОИТЬ НЕ НАДО. НЕ ДРАЗНИТЕ" youhouse=youhouse+"BAШИX СОСЕДЕЙ. ВЕДЬ ОНИ ПРОСТЫЕ " yotshouse=youhouse+"CMEPTHЫE. ПОДЖЕЧЬ МОГУТ..."
VAR: SQRLAND LABEL: ПЛОЩАДЬ ВАШЕГО УЧАСТКА
VAR: EHOUGHLAND LABEL: ДОСТАТОЧНО ЛИ ПЛОЩАДИ ВАШЕГО УЧАСТКА
VAR: HOWSQR LABEL: ПЛОЩАДЬ ОДНОГО ЭТАЖА В ДОМЕ
VAR: HOWFLORS LABEL: КОЛИЧЕСТВО ЭТАЖЕЙ В ДОМЕ
VAR: RIGHTSQR LABEL: СООТВЕТСТВИЕ ПЛОЩАДИ ЭТАЖА ПЛОЩАДИ ДОМА
VAR: RIGHTFLORS LABEL: ВОЗМОЖНОСТЬ ПОСТРОЙКИ ДОМА С ТАКОЙ ЭТАЖНОСТЬЮ
VAR: HOWSHIFERS LABEL: КОЛ-ВО КРОВЕЛЬНОГО МАТЕРИАЛА (КВ. М.)
VAR: EHOUGHSHIFERS LABEL: ДОСТАТОЧНО ЛИ КРОВЕЛЬНОГО МАТЕРИАЛА
END:
В варианте 7 предлагается предусмотреть изменения, учитывающие ситуации: а) возможность заказать строительство дома строительной организации; 6) необходимость постройки гаража.
Вариант 8 GOAL: ways
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /* УСТРАНЕНИЮ НЕКОТОРЫХ ДЕФЕКТОВ ПИСТОЛЕТОВ- */ /* КРАСКОПУЛЬТОВ И СООБЩИТ ПРИЧИНЫ ИХ ПОЯВЛЕНИЯ. */ /* КОНЕЧНО, ЭТО МАЛЕНЬКИЙ И ДАЛЕКО НЕ ПОЛНЫЙ */ /* НАБОР, НО ВЕДЬ ОН И ПРЕДНАЗНАЧЕН ДЛЯ */ /* ПОКАЗА САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU. TAK ЧТО */ /* НЕ ИЩИТЕ В НЕМ СВЕРХИНТЕЛЛЕКТУАЛЬНОГО. */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ (ДА-Y, HET-N) */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output "ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output "ВЫ РЕШИЛИСЬ ОКРАСИТЬ КАКУЮ-ТО ПОВЕРХНОСТЬ ПРИ ПОМОЩИ" output "ПИСТОЛЕТА-КРАСКОПУЛЬТА. А ВАШ ПИСТОЛЕТИК ЧТО-ТО" output "НЕНОРМАЛЬНО РАБОТАЕТ. МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ, " output "КАК УСТРАНИТЬ НЕКОТОРЫЕ НЕИСПРАВНОСТИ И СОВЩИМ ВАМ " output "ПРИЧИНЕ ИX ПОЯВЛЕНИЯ." output "НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ ВСЮ" output "ИНФОРМАЦИЮ." output "ИТАК, ПОЕХАЛИ..." gunsdef=true output "ПРИ РАБОТЕ ПИСТОЛЕТА ПОЯВИЛИСЬ КАКИЕ-ТО ДЕФЕКТЫ (Y/N)?" input gunsdef str using "a"
DO: clear output output " ВОТ ЧТО Я ВАМ СКАЖУ:" output output reasons output output '"А ВОТ ЧТО ВАМ СЛЕДУЕТ СДЕЛАТЬ В ДАННОЙ СИТУАЦИИ." output ways
RULE: Rl IF: gunsdef="Y" or gunsdef="y" THEN: output " ЧТО-ТО НЕЛАДНОЕ СО СТРУЕЙ КРАСКИ (Y/N)? " input drops str using "a" REASON: ЕСЛИ ЕСТЬ ДЕФЕКТЫ, ТО СКОРЕЕ ВСЕГО ОНИ СВЯЗАНЫ СО СТРУЕК КРАСКИ. COMMENT: СВЯЗАНЫ ЛИ ДЕФЕКТЫ СО СТРУЕЙ.
RULE: R2 IF: gunsdef<>"Y" or gunsdef<>"y" THEN: output reasons="HET ДЕФЕКТОВ, ЗНАЧИТ НЕЧЕГО ВОЛНОВАТЬСЯ ЗРЯ." wауs="ПОЙДИТЕ ЛУЧШЕ ОТДОХНИТЕ, ВЕДЬ У ВАС ВСЕ В " wауs=wауs+"ПОРЯДКЕ." REASON: ЕСЛИ НЕТ ДЕФЕКТОВ, ТО НИЧЕГО ДЕЛАТЬ НЕ НУЖНО COMMENT: НЕТ ДЕФЕКТОВ - ОТДЫХАЙ
RULE: R3 IF: notkrask="Y" or notkrask="y" THEN: reasons=" ЗАСОРЕНА СЕТКА РЕЗЕРВУАРА ДЛЯ КРАСКИ ИЛИ" reasons=reasons+"НЕДОСТАТОЧНЫЙ УРОВЕНЬ КРАСКИ В " reasons=reasons+''БАКЕ. " ways="В ПЕРВОМ СЛУЧАЕ НАДО ПРОЧИСТИТЬ СЕТКУ, А ВО " ways=ways+"ВТОРОМ ДОБАВИТЬ КРАСКУ В КРАСКОНАГНЕТА" ways=ways+''ТЕЛЬНЫЙ БАЧОК." REASON: ЕСЛИ СОВСЕМ НЕ ПОСТУПАЕТ КРАСКА В КРАСКОПУЛЬТ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК, СВЯЗАННЫХ С НЕПОСТУПЛЕНИЕМ КРАСКИ В ПИСТОЛЕТ.
RULE: R4 IF: drops="Y" or drops="y" THEN: output output "СЛАБЫЙ РАСПЫЛ СТРУИ?" input lowfluct str using "a" REASON: ЕСЛИ ДЕФЕКТЫ СВЯЗАНЫ СО СТРУЕЙ, ТО СКОРЕЕ ВСЕГО ЭТО ЕЕ СЛАБЫЙ РАСПЫЛ. COMMENT: СЛАБЫЙ ЛИ РАСПЫЛ СТРУИ.
RULE: R5 IF: (drops="Y" or drops="y") and lowfluct<>"Y" and lowfluct<>"y" THEN: output output " СЛИШКОМ РАЗБРОСАННАЯ СТРУЯ, СИЛЬНОЕ " output "ТУМАНООБРАЗОВАНИЕ?" Input highfluct str using "a" REASON: ЕСЛИ ДЕФЕКТЫ СВЯЗАННЫ СО СТРУЕЙ И СТРУЯ НЕ СЛАБАЯ, ТО СКОРЕЕ ВСЕГО СЛИШКОМ СИЛЬНЫЙ РАСПЫЛ ОННОЙ. COMMENT: СИЛЬНЫЙ ЛИ РАСПЫЛ СТРУИ.
RULE: R6 IF: (drops="Y" or drops="y") and (harddrops="Y" or harddrops="y") THEN: reasons=" ТАКОЙ ЭФФЕКТ ВОЗМОЖЕН ТОЛЬКО В ТРЕХ " reasons=reasons+"СЛУЧАЯХ: СЛАБОЕ ДАВЛЕНИЕ НА " reasons=reasons+''КРАСКУ, СЛИШКОМ ГУСТАЯ КРАСКА ИЛИ " reasons=reasons+"HEПЛOTHO ПРИЖАТ ВОЗДУХОПРОВОД." ways=" СООТВЕТСТВЕННО НЕОБХОДИМО: ОТРЕГУЛИРОВАТЬ " ways=ways+"ДАВЛЕНЙЕ, РАЗБАВИТЬ КРАСКУ РАСТВОРИТЕЛЕМ," ways=ways+"ПРИЖАТЬ И ЗАКРЕПИТЬ ВОЗДУХОПРОВОД." REASON: ЕСЛИ СТРУЯ КРАСКИ ПОДАЕТСЯ РЕЗКИМИ ТОЛЧКАМИ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК, СВЯЗАННЫХ С РЕЗКИМИ ТОЛЧКАМИ СТРУИ КРАСКИ В ПИСТОЛЕТЕ.
RULE: R7 IF: (drops="Y" or drops="y") and (lowfluct="Y" or lowfluct="y") THEM: reasons="ТАКОЙ ЭФФЕКТ ВОЗМОЖЕН ТОЛЬКО В ДВУХ СЛУЧАЯХ:" reasons=reasons+"MAЛO ВОЗДУХА ИЛИ ЗАГРЯЗНЕНО ОТВЕРСТИЕ" reascns=reasons+" COПЛA." ways=" СООТВЕТСТВЕННО НЕОБХОДИМО: ПРОВЕРИТЬ И УСТРА" ways=ways+"НИТЬ МЕСТА УТЕЧКИ ВОЗДУХА, ПРОЧИСТИТЬ СОПЛО." REASON: ЕСЛИ СТРУЯ КРАСКИ ИМЕЕТ СЛАБЫЙ РАСПЫЛ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИЛА. COMMENT: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК, СВЯЗАННЫХ СО СЛАБЫМ РАСПЫЛОМ СТРУИ КРАСКОПУЛЬТА.
RULE: R8 IF: (drops="Y" or drops="y") and (highfluct="Y" or highfluct="y") THEN: reasons="TAKOH ЭФФЕКТ ВОЗМОЖЕН ТОЛЬКО В ТРЕХ СЛУЧАЯХ:" reasons=reasons+" ЗАГРЯЗНЕН КОНЧИК ИГЛЫ, СРАБОТАЛОСЬ" reasons=reasons+" САЛЬНИКОВОЕ УПЛОТНЕНИЕ ИГЛЫ " reasons=reasons+"ИЗЛИШНЯЯ ПОДАЧА ВОЗДУХА ИЛИ НЕДОС" reasons=reasons+"TATОЧНАЯ ПОДАЧА КРАСКИ." ways=" СООТВЕТСТВЕННО НЕОБХОДИМО: ОЧИСТИТЬ КОНЧИК " ways=ways+"ИГЛЫ, ПОДТЯНУТЬ ГАЙКУ САЛЬНИКОВОГО " ways=ways+"УПЛОТНЕНИЯ, ОТРЕГУЛИРОВАТЬ ПОДАЧУ ВОЗДУХА" ways=ways+"И КРАСКИ." REASON: ЕСЛИ СТРУЯ КРАСКИ ИМЕЕТ СИЛЬНЫЙ РАСПЫЛ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК, СВЯЗАННЫХ С СИЛЬНЫМ РАСПЫЛОМ СТРУИ КРАСКОПУЛЬТА.
RULE: R9 IF: not (drops="Y" or drops="y") and (badklap="Y" or badklap="y") THEN: reasons=" ТАКОЙ ЭФФЕКТ ВОЗМОЖЕН ТОЛЬКО В ДВУХ " reasons=reasons+"СЛУЧАЯХ: СРАБОТАЛАСЬ ИГЛА СОПЛА," reasons=reasons+"ИГЛА HE ЗАКРЫВАЕТ ОТВЕРСТИЯ СОПЛА." ways=" СООТВЕТСТВЕННО НЕОБХОДИМО: ПРИТЕРЕТЬ ИЛИ " ways=ways+"CMEНИТЬ ИГЛУ, ВЫДВИНУТЬ ИГЛУ ПУТЕМ " ways=ways+"ОТВИНЧИВАНИЯ РЕГУЛИРОВОЧНЫХ ГАЕК." REASON: ЕСЛИ НЕПОЛАДКИ СОСТОЯТ В ПРОТЕЧКЕ КРАСКИ ПРИ ЗАКРЫТОМ КЛАПАНЕ, ТО ЭТА ПРОБЛЕМА ВПОЛНЕ РАЗРЕШИМА. COMMENT: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК, СВЯЗАННЫХ С ПРОТЕКАНИЕМ КРАСКИ ПРИ ЗАКРЫТОМ КЛАПАНЕ.
VAR: GUNSDEF LABEL: НАЛИЧИЕ ДЕФЕКТОВ ПИСТОЛЕТА-КРАСКОПУЛЬТА.
VAR: NOTKRASK FIND: output " КРАСКА СОВСЕМ НЕ ПОДАЕТСЯ В ПИСТОЛЕТ (Y/N)?" input notkrask str using "a" LABEL: ПОДАЧА КРАСКИ В ПИСТОЛЕТ.
VAR: HARDDROPS FIND: output " НАБЛЮДАЮТСЯ РЕЗКИЕ ТОЛЧКИ И ПУЛЬСАЦИЯ " output " СТРУИ (Y/N)? " input harddrops str using "a" LABEL: СТРУЯ ПУЛЬСИРУЕТ И БЫВАЮТ РЕЗКИЕ ТОЛЧКИ.
VAR: BADKLAP FIND: output "KPACKA ПРОХОДИТ ПРИ ЗАКРЫТОМ КЛАПАНЕ(Y/N)?" input badklap str using "a" LABEL: НЕГОДЕН КЛАПАН ПИСТОЛЕТА.
VAR: WAYS FIND: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК МНЕ " reasons=reasons+"HEИ3BECTHA." ways="ПОПРОБУЙТЕ ОБРАТИТЬСЯ В МАСТЕРСКУЮ." LABEL: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК.
END:
В варианте 8 предлагается предусмотреть изменения, учитывающие ситуацию: наличие дефекта в пистолете, не связанного со струей (не нажимается кнопка приведения пистолета в действие или краска вытекает из пистолета через какие-то щели, но не через сопло).
Вариант 9 GOAL: ways
/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /* УСТРАНЕНИЮ НЕКОТОРЫХ НЕИСПРАВНОСТЕЙ ОБЫЧНОГО */ /* ПАЯЛЬНИКА И СООБЩИТ ВОЗМОЖНЫЕ ПРИЧИНЫ ИХ ПОЯВЛЕНИЯ. */ /* КОНЕЧНО, ЭТО МАЛЕНЬКИЙ, НЕПОЛНЫЙ НАБОР, НО ОН И */ /* ПРЕДНАЗНАЧЕН ДЛЯ ПОКАЗА САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU.*/ /* ТАК ЧТО БЫЛО БЫ С ВАШЕЙ СТОРОНЫ НАИВНО ОЖИДАТЬ ЧЕГО-ЛИБО*/ /* СВЕРХИНТЕЛЕКТУАЛЬНОГО. */ /* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ (ДА-ТRUE, HEТ-FALSE). */
INITIAL: clear release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */ e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */ output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)." output output " ВЫ ВКЛЮЧИЛИ В СЕТЬ ПАЯЛЬНИК И ОБНАРУЖИЛИ, ЧТО ОН " output " НЕИСПРАВЕН. МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ ПО " output " УСТРАНЕНИЮ И ПРИЧИНАМ ПОЯВЛЕНИЯ НЕИСПРАВНОСТЕЙ." output " НО ДЛЯ ЭТОГО ВЫ ДОЛИНЫ ПРЕДОСТАВИТЬ МНЕ " output " ВСЮ ИНФОРМАЦИЮ." output " ИТАК, НАЧНЕМ..." output temperature=true output " ПАЯЛЬНИК НЕДОСТАТОЧНО РАЗОГРЕЛСЯ?" input temperature logic
DO: clear output " ВОТ ЧТО Я ВАМ СКАЖУ, ЛЮБЕЗНЕЙШИЙ." output output reasons output output "А ВОТ ЧТО ВАМ СЛЕДУЕТ СДЕЛАТЬ В ДАННОЙ СИТУАЦИИ." output output ways
RULE: Rl IF: temperature THEN: output output "ПОСЛЕ ВКЛЮЧЕНИЯ ПАЯЛЬНИК НАГРЕЛСЯ?" input lowtemp logic REASON: ЕСЛИ НЕДОСТАТОЧНО НАГРЕЛСЯ, ТО ДО КАКОЙ ТЕМПЕРАТУРЫ. COMMENT: НАГРЕЛСЯ ЛИ ПАЯЛЬНИК ХОТЬ НА МАЛОСТЬ.
RULE: R2 IF: not temperature THEN: output output "ПОСЛЕ ВКЛЮЧЕНИЯ ПАЯЛЬНИК ПЕРЕГРЕЛСЯ? " input hightemp logic REASON: ЕСЛИ ПЕРЕГРЕЛСЯ, ТО СКОРЕЕ ВСЕГО ЭТО МЕЖВИТКОВОЕ ЗАМЫКАНИЕ. COMMENT: ПЕРЕГРЕЛСЯ ЛИ ПАЯЛЬНИК.
RULE: R3 IF: not lowtemp or hightemp THEN: output output "В ПОРЯДКЕ ЛИ НАПРЯЖЕНИЕ В СЕТИ? " input power logic REASON: ЕСЛИ ПАЯЛЬНИК НЕ НАГРЕЛСЯ ХОТЬ НА МАЛОСТЬ ИЛИ ПЕРЕГРЕЛСЯ, ТО СКОРЕЕ ВСЕГО НЕИСПРАВНА СЕТЬ. COMMENT: НАПРЯЖЕНИЕ В СЕТИ.
ROLE: R4 IF: lowtemp THEN: output output " HE СЛЫШНО ЛИ ПОТРЕСКИВАНИЯ В ПАЯЛЬНИКЕ " output " ИЛИ СОЕД. ШНУРЕ?" input noice logic REASON: ЕСЛИ ПАЯЛЬНИК НЕДОСТАТОЧНО РАЗОГРЕЛСЯ, ТО СКОРЕЕ ВСЕГО ЭТО ОЗНАЧАЕТ РАЗРЫВ В ЦЕПИ ПИТАНИЯ ИЛИ НАГРЕВАТЕЛЬНОГО ЭЛЕМЕНТА. COMMENT: СЛЫШЕН ЛИ ТРЕСК.
RULE: R5 IF: not hightemp and not temperature THEN: reasons="ПО ВАШИМ ОТВЕТАМ ПАЯЛЬНИК И НЕ ПЕРЕГРЕЛСЯ" reasons=reasons+" И НЕ НЕДОГРЕЛСЯ ОДНОВРЕМЕННО." ways="ПОЙДИТЕ ЛУЧШЕ ОТДОХНИТЕ, ПОСПИТЕ И Т. Д.." REASON: ЕСЛИ ТАКОЙ РАСКЛАД, ТО НАДО ПОСПАТЬ. COMMENT: НЕТ ДЕФЕКТОВ - ОТДЫХАЙ.
RULE: R6
Date: 2015-12-12; view: 508; Нарушение авторских прав |