Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методуказания к лабораторным ИИС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
792.58 Кб
Скачать

Выражения и функции "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

/* ЭТОТ НАБОР ПРАВИЛ ПОЗВОЛИТ ВАМ ПОЛУЧИТЬ РЯД СОВЕТОВ ПО */ /* УСТРАНЕНИЮ НЕПОЛАДОК ВАШЕГО ЛЮБИМОГО АВТОМОБИЛЬЧИКА И */ /* ПРИЧИН ИХ ПОЯВЛЕНИЯ. КОНЕЧНО, ЭТО МАЛЕНЬКИЙ И НЕ ПОЛНЫЙ */ /* НАБОР, НАПИСАННЫЙ ПЛОХО ЗНАЙЩИМ ЭТУ ОТРАСЛЬ ЧЕЛОВЕКОМ, НО */ /* ВЕДЬ ОН И ПРЕДНАЗНАЧЕН ДЛЯ ПОКАЗА САМЫХ ТРИВИАЛЬНЫХ */ /*СРЕДСТВ GURU. ТАК ЧТО ИЗВИНИТЕ, ПОЖАЛУЙСТА, ЗА НЕКОРРЕКТНЫЕ */ /* СОВЕТЫ. */

/* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */

/* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ ( ДА-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. */

/* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */ /* ЗНАЧЕНИЕ БУЛЕВСКОЙ ПЕРЕМЕННОЙ ( ДА-TRUE, HET-FALSE) */

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 (potetou= "y" or potetou="Y")

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

IF: not power

THEN: output

reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК ЛЕЖИТ ВНЕ"

reasons=reasons+" ПРЕДЕЛОВ ПАЯЛЬНИКА. ОНА КРОЕТСЯ В "

reasons=reasons+"BE3OTBETCTBEHHОЙ РАБОТЕ "

reasons=reasons+ГОРЭЛЕКТРОСЕТЕЙ, НЕИСПРАВНОСТИ ПРОБОК"

reasons=reasons+" ИЛИ ПРОТИВОЗАКОННОМ ДЕЯНИИ КАКИХ-ТО" reasons=reasons+" ХУЛИГАНОВ, ЛИБО ВАШИХ СОСЕДЕЙ."

ways="ECЛИ ВЫ В СОСТОЯНИЙ УСТРАНИТЬ ВСЕ ПЕРЕЧИСЛЕННЫЕ"

ways=ways+" ВЫШЕ ПРИЧИНЫ, ТО СДЕЛАЙТЕ ЭТО."

REASON: ЕСЛИ НЕТ НАПРЯЖЕНИЯ В СЕТИ, ТО СТОИТ ПОДОЖДАТЬ, ПОКА ОНО ПОЯВИТСЯ, ЛИБО САМОРУЧНО УСТРАНИТЬ ПРИЧИНЫ ЕГО ОТСУТСТВИЯ.

COMMENT: ОТСУТСТВИЕ НАПРЯЖЕНИЯ В СЕТИ.

RULE: R7

IF: power and not lowtemp

THEN: output

output "В ПОРЯДКЕ ЛИ ШНУР ПИТАНИЯ (НЕТ ЛИ ПОРЫВОВ,"

output " ГОРЕЛЫХ МЕСТ )?"

input cabel logic

REASON: ЕСЛИ СЕТЕВОЕ НАПРЯЖЕНИЕ В ПОРЯДКЕ, ТО СКОРЕЕ ВСЕГО ЭТО ОЗНАЧАЕТ РАЗРЫВ ШНУРА ПИТАНИЯ ПАЯЛЬНИКА.

COMMENT: В ПОРЯДКЕ ЛИ ШНУР ПИТАНИЯ.

RULE: R8

IF: power and hightemp

THEN: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК СКОРЕЕ " reasons=reasons+"ВСЕГО КРОЕТСЯ В ТОМ, ЧТО ПРОИЗОШЛО" reasons=reasons+" МЕЖВИТКОВОЕ ЗАМЫКАНИЕ В " reasons=reasons+"НАГРЕВАТЕЛЬНОМ ЭЛЕМЕНТЕ ПАЯЛЬНИКА." ways="ВСКРЫТЬ ПАЯЛЬНИК И ПЕРЕМОТАТЬ НАГРЕВАТЕЛЬНЫЙ " ways=ways+"ЭЛЕМЕНТ, ИЛИ ОТДАТЬ В РЕМОНТ ИЛИ ПРОСТО" ways=ways+" ВЫКИНУТЬ."

REASON: ЕСЛИ СЕТЕВОЕ НАПРЯЖЕНИЕ В ПОРЯДКЕ, ТО СКОРЕЕ ВСЕГО ПРОИЗОШЛО МЕЖВИТКОВОЕ ЗАМЫКАНИЕ В НАГРЕВАТЕЛЬНОМ ЭЛЕМЕНТЕ ПАЯЛЬНИКА.

COMMENT: КОРОТКОЕ ЗАМЫКАНИЕ.

RULE: R9

IF: noice

THEN: cabel=false

REASON: ЕСЛИ СЛЫШЕН ТРЕСК, ТО НЕ В ПОРЯДКЕ ШНУР ПИТАНИЯ. COMMENT: СПОСОБ УСТРАНЕНИЯ НЕИСПРАВНОСТИ, СОПРОВОЖДАЕМОЙ ТРЕСКОМ.

RULE: R10

IF: not noice

THEN: reasons="ПАЯЛЬНИК ПОДКЛЮЧЕН К НЕСООТВЕТСТВУЮЩЕМУ "

reasons=reasons+"ИСТОЧНИКУ НАПРЯЖЕНИЯ."

ways="ПОДКЛЮЧИТЕ ПРИБОР К ИСТОЧНИКУ НАПРЯЖЕНИЯ, " ways=ways+" УДОВЛЕТВОРЯЮЩЕМУ УСЛОВИЯМ ЭКСПЛУАТАЦИИ,"

ways=ways+" УКАЗАННЫМ НА КОРПУСЕ ПАЯЛЬНИКА."

REASON: ЕСЛИ ПАЯЛЬНИК НЕ ДОСТИГАЕТ НЕОБХОДИМОЙ ТЕМПЕРАТУРЫ БЕЗ КАКИХ-ЛИБО ДОПОЛНИТЕЛЬНЫХ ОТКЛОНЕНИЙ, ТО СКОРЕЕ ВСЕГО ЭТО ПРОИСХОДИТ ИЗ-ЗА НЕСООТВЕТСТВИЯ ИСТОЧНИКА ПИТАНИЯ.

COMMENT: НЕСООТВЕТСТВУЮЩИЙ ИСТОЧНИК ПИТАНИЯ.

RULE: R11

IF: not cabel

THEN: reasons="ИЗНОСИЛСЯ ШНУР ПИТАНИЯ (ПЕРЕЛОМИЛСЯ ПРОВОД)" reasons=reasons+" ИЛИ ШТЕПСЕЛЬНАЯ ВИЛКА."

ways="ЗАМЕНИТЬ ШНУР ПИТАНИЯ ИЛИ ШТЕПСЕЛЬНУЮ ВИЛКУ."

COMMENT: ИЗНОСИЛСЯ ШНУР ПИТАНИЯ.

RULE: R12

IF: cabel

THEN: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК НАМ " reasons=reasons+" HEИ3BECTHA. "

ways="ПОПРОБУЙТЕ ОБРАТИТЬСЯ К БОЛЕЕ ОПЫТНОМУ "

ways=ways+''СПЕЦИАЛИСТУ."

REASON: ЕСЛИ ТАКОВО ВНЕШНЕЕ ОПИСАНИЕ НЕИСПРАВНОСТИ, ТО НИЧЕГО ПУТНОГО ПОСОВЕТОВАТЬ ВАМ Я НЕ МОГУ.

COMMENT: КАКИЕ-ТО НЕ ЗАРЕЗЕРВИРОВАННЫЕ ПОЛОМКИ.

VAR: temperature

LABEL: ПАЯЛЬНИК РАЗОГРЕЛСЯ НЕДОСТАТОЧНО.

VAR: WAYS

FIND: reasons="ПРИЧИНА ПОЯВЛЕНИЯ ЭТИХ НЕПОЛАДОК НАМ НЕИЗВЕСТНА"

ways="ПОПРОБУЙТЕ ОБРАТИТЬСЯ К БОЛЕЕ ОПЫТНОМУ СПЕЦИАЛИСТУ."

LABEL: СПОСОБ УСТРАНЕНИЯ НЕПОЛАДОК.

END:

В варианте 9 предлагается предусмотреть изменения, учитывающие ситуации:

а) поломку жала паяльника;

б) очень длительное нагревание паяльника.

Вариант 10

GOAL: howrest

/* ЭТА ЭКСПЕРТНАЯ СИСТЕМКА ДАСТ ВАМ РЯД СОВЕТОВ, КАК ПРОВЕСТИ*/

/* ДОЛГОЖДАННЫЙ ЛЕТНИЙ ОТПУСК ПРИ ВАШЕМ ФИНАНСОВОМ */

/* ПОЛОЖЕНИИ И ПРИ ОПРЕДЕЛЕННОМ ЧИСЛЕ ЖЕЛАЮЩИХ */

/* ОТДОХНУТЬ ЗА ВАШ СЧЕТ. ЕСЛИ СРЕДСТВ ДЛЯ ОТДЫХА НА ВОДЕ */

/* НЕДОСТАТОЧНО, ТО МОЖЕТ БЫТЬ, ВАШИ СИМПАТИИ БУДУТ */

/* ОТДАНЫ ОТДЫХУ В ЛЕСУ И ГОРАХ. КОНЕЧНО, */

/* ЭТО ДАЛЕКО НЕ ПОЛНЫЙ НАБОР, НО ВЕДЬ ОН И ПРЕДНАЗНАЧЕН */

/* ДЛЯ ПОКАЗА САМЫХ ТРИВИАЛЬНЫХ СРЕДСТВ GURU. ТАК */

/* ЧТО НЕ ИЩИТЕ В НЕМ СВЕРХИНТЕЛЕКТУАЛЬНОГО. */

/* НА ВОПРОСЫ СИСТЕМЫ СЛЕДУЕТ ВВОДИТЬ СООТВЕТСТВУЮЩЕЕ */

/* ЗНАЧЕНИЕ СТРОКОВОЙ ПЕРЕМЕННОЙ (ДА-Y, HET-N) ИЛИ ЧИСЛО. */

INITIAL:

clear

release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */

e.lstr=250 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */

output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)."

output " НАСТАЛА ПОРА ВАШЕГО ДОЛГОЖДАННОГО ЛЕТНЕГО ОТПУСКА."

output "КАК ЕГО ПРОВЕСТИ? МЫ ПОСТАРАЕМСЯ ДАТЬ ВАМ СОВЕТ, КАК "

output "ПРИ ВАШЕМ ФИНАНСОВОМ ПОЛОЖЕНИИ ПРОВЕСТИ ЖЕЛАННЫЕ "

output "ДЕНЬКИ."

output "НО ДЛЯ ЭТОГО ВЫ ДОЛЖНЫ ПРЕДОСТАВИТЬ МНЕ"

output " ВСЮ ИНФОРМАЦИЮ."

output " ИТАК, НАЧНЕМ ..."

finance=0

output " КАКУЮ СУММУ ВЫ ГОТОВЫ БЫЛИ БЫ ПОТРАТИТЬ?"

input finance num

DO:

clear

output " ВОТ ЧТО МНЕ КАЖЕТСЯ ПРИЕМЛЕМЫМ В ДАННОЙ СИТУАЦИИ. "

output

output howrest

RULE: Rl

IF: (finance/acount)>=5000 and (f inance/acount)<9000

THEN: howrest=" BЫ МОЖЕТЕ ПРИОБРЕСТИ КАЖДОМУ ПО ПУТЕВКЕ В" howrest=howrest+" САНАТОРИИ НА ПОБЕРЕЖЬЕ КАКОЙ-ЛИБО" howrest=howrest+" РЕКИ, ОЗЕРА ИЛИ ВОДОХРАНИЛИЩА."

RULE: R2

IF: (finance/acount)>=9000 and (finance/acount)<90000

THEN: howrest=" ВЫ МОЖЕТЕ ПРИОБРЕСТИ КАЖДОМУ ПО ПУТЕВКЕ В " howrest=howrest+"CAHATОРИЙ НА ПОБЕРЕЖЬЕ ЧЕРНОГО "

howrest=howrest+"МОРЯ. ТАКОЙ ОТДЫХ ВАМ ЗАПОМНИТСЯ"

howrest=howrest+"НАДОЛГО."

RULE: R3

IF: (finance/acount)>=90000

THEN: howrest=" BЫ МОЖЕТЕ ПЕРЕВЕСТИ ЧАСТЬ ВАШИХ СРЕДСТВ В " howrest=howrest+" СКВ И ПРИОБРЕСТИ КАЖДОМУ ПО "

howrest=howrest+"ПУТЕВКЕ НА КАНАРСКИЕ ОСТРОВА ИЛИ " howrest=howrest+''ДВУХНЕДЕЛЬНЫИ КРУИЗ. ФИРМА" howrest=howrest+" ГАРАНТИРУЕТ, ЧТО ТАКОЙ ОТДЫХ " howrest=howrest+"ПОЗВОЛИТ ВАМ ЗАБЫТЬ АБСОЛЮТНО ВСЕ" howrest=howrest+" ВАШИ ПРОБЛЕМЫ."

RULE: R4

IF: (finance/acount)<5000 and (finance/acount)>=3000

THEN: howrest=" ВАМ СТОИТ ПОДУМАТЬ ОБ ОТДЫХЕ В ЛЕСУ ИЛИ" howrest=howrest+" ГОРАХ, ДЛЯ ТАКОГО ОТДЫХА У ВАС " howrest=howrest+"CPEДCTB ВПОЛНЕ ДОСТАТОЧНО, А " howrest=howrest+"BОЗMOЖHO СТОИТ ОТПРАВИТЬСЯ ДИКАРЯМИ" howrest=howrest+" НА МОРЕ."

RULE: R5

IF: finance>3000

THEN: output

output "А СКОЛЬКО ЧЕЛОВЕК БУДУТ ОТДЫХАТЬ ЗА ВАШ СЧЕТ ?"

input acount num using "nn"

output

RULE: R6

IF: (finance/acount)<3000

THEN: howrest=" ВАМ СТОИТ ПОДУМАТЬ ЛИБО О СОКРАЩЕНИЙ ЧИСЛА " howrest=howrest+"ОТДЫХАЩИХ ЗА ВАШ СЧЕТ, ЛИБО ОБ"

howrest=howrest+" УВЕЛИЧЕНИИ СУММЫ НА ОТДЫХ."

RULE: R7

IF: finance<=3000 and finance>1000

THEN: output " ПРОСТИТЕ ЗА БЕСТАКТНЫЙ ВОПРОС, ВЫ "

output "ЖЕНАТЫ (ЗАМУЖЕМ) (Y/H)?"

input wife str using "a"

RULE: R8

IF: (wife="Y") or (wife="y")

THEN: output " ВЫ ПРОВЕДЕТЕ ОТПУСК ВМЕСТЕ (Y/H)? "

input withwife str using "a"

RULE: R9

IF: (withwife="Y") or (withwife="y")

THEN: howrest="HA ТАКУЮ СУММУ НА ДВОИХ МОЖНО ОТДОХНУТЬ "

howrest=howrest+"TOЛЬKO СИДЯ ДОМА ИЛИ КОВЫРЯЯСЬ НА ДАЧЕ."

RULE: R10

IF: finance<=1000

THEN: howrest="HA ТАКУЮ СУММУ МОЖНО ОТДОХНУТЬ ТОЛЬКО "

howrest=howrest+''СИДЯ ДОМА ИЛИ КОВЫРЯЯСЬ НА ДАЧЕ."

RULE: R11

IF: wife<>"Y" or wife<>"y" or withwife<>"Y" or withwife<>"y"

THEN: output " ВЫ ХОТЕЛИ БЫ ВЫБРАТЬСЯ НА ПРИРОД (Y/N)?"

input townout str using "a"

RULE. R12

IF: townout="Y" or townout="y"

output " ВАМ НРАВИТСЯ ОТДЫХ В ЛЕСУ (Y/N)?"

input forest str using "a"

RULE: R13

IF: (townout="Y" or townout="y") and forest<>"Y"

and forest<>"y"

THEN: output " ВАМ НРАВИТСЯ ОТДЫХ В ГОРАХ (Y/N)? "

input mountain str using "a"

RULE: R14

IF: (townout="Y" or townout="y'') and mountain<>"Y" and mountain<>"y"

THEN: howrest=" В ТАКОМ ФИНАНСОВОМ ПОЛОЖЕНИИ ВАМ СТОИТ " howrest=howrest+"OCTATЬСЯ ДОМА И ВОЗМОЖНО РАЗОК - " howrest=howrest+"ДРУГОЙ СХОДИТЬ В КАФЕ 'МОРОЖЕННОЕ'."

howrest=howrest+"ИHOЙ ОТДЫХ ДЛЯ ВАС НЕДОСТУПЕН."

RULE: R15

IF: forest="Y" or forest="y"

THEN: howrest=" ПРИ ВАШИХ СРЕДСТВАХ ВАМ СТОИТ ВЗЯТЬ " howrest=howrest+"HAПPOKAT, HA 3 НЕДЕЛИ, ОДНОМЕСТНУЮ" howrest=howrest+" ПАЛАТКУ, РЮКЗАК, СПАЛЬНЫЙ МЕШОК, " howrest=howrest+"ЗАГОТОВИТЬ НА ОСТАВШУЮСЯ СУММУ" howrest=howrest+" МАКАРОНЫ, ТУШЕНКУ, СУХОФРУКТЫ," howrest=howrest+"CПИЧКИ И Т. П. И ОТПРАВИТЬСЯ В" howrest=howrest+" ПРИГЛЯНУВШИЙСЯ ЛЕСОК."

RULE: R16

IF: mountain="Y" or mountain="y"

THEN: howrest=" ПРИ ВАШИХ СРЕДСТВАХ ВАМ СТОИТ ВЗЯТЬ НА " howrest=howrest+"IIPOKAT,HA 2 НЕДЕЛИ, ОДНОМЕСТНУЮ " howrest=howrest+"ПАЛАТКУ, РЮКЗАК, СПАЛЬНЫЙ МЕШОК," howrest=howrest+"КУПИТЬ БИЛЕТ ТУДА-ОБРАТНО." howrest=howrest+"3AГOTOBHTЬ НА ОСТАВШУЮСЯ СУММУ " howrest=howrest+"MAKAPOH, ТУШЕНКИ, СУХОФРУКТОВ "

howrest=hewrest+"И Т.П. И ОТПРАВИТЬСЯ К ВЕРШИНАМ..."

RULE: R17

IF: townout<>"y" or townout<>"Y"

THEN: howrest=" В ТАКИХ ИНТЕРЕСАХ ВАМ СТОИТ ОСТАТЬСЯ ДОМА" howrest=howrest+" И ВОЗМОЖНО РАЗОК-ДРУГОЙ СХОДИТЬ" howrest=howrest+" В КАФЕ 'МОРОЖЕНОЕ'. БЫТЬ МОЖЕТ, ЗА" howrest=howrest+" ОТПУСК ВЫ УСПЕЕТЕ СДЕЛАТЬ МНОГО " howrest=howrest+''ПОЛЕЗНОГО ДЛЯ СЕБЯ И БЛИЗКИХ ВАМ" howrest=howrest+" ЛЮДЕЙ."

VAR: finance

LABEL: СУММА, КОТОРУЮ ВЫ ГОТОВЫ ПОТРАТИТЬ НА ОТДЫХ.

END:

В варианте 10 предлагается предусмотреть изменения, учитывающие:

а) возможность подзаработать за некоторое время отпуска и потратить заработанное на отпуск;

б) возможность одолжить деньги на проведение отпуска.