Техника - молодёжи 1986-09, страница 41

Техника - молодёжи 1986-09, страница 41

НС

регистр 7 какое-нибудь число, оканчивающееся на 14, например 141414). В регистры 8, 9 и Е вводятся адреса переходов: 94 П8 83 П9 86 ПЕ (владельцы Б3-34 вместо последней команды могут записать ПО; в МК-61 регистр 0 остается свободным).

Играть в «Урожай» просто: машинка сама все время «подсказывает», что нужно делать. Устанавливаем переключатель Р — Г в положение Р и нажимаем В/ОС/П. На индикаторе буква Е — признак блока подведения итогов и освоения новых земель. В регистре У — имеющаяся в вашем распоряжении сумма (35 000); какую-то ее часть вы можете сейчас выделить на освоение. А что, если вы поддадитесь на уговоры и дадите кому-нибудь участок под дачу за наличные? Задаем любое отрицательное число: 3000 /—/ С/П. ПМК незамедлительно выдает ЕГГОГ — финансовые органы не дремлют. Нажимаем XY — на индикаторе вновь появляется буква Е, признак блока, в котором допущена ошибка. Еще раз XY; на индикаторе — 3000, то самое ошибочное число, которое мы только что ввели. А если бы задали на освоение земли сумму, превышающую имеющуюся наличность (скажем, 36 000), машинка выдала бы ЕГГОГ, затем Е и, наконец, допущенный перерасход (— 1000)...

Точно так же срабатывает ПМК и при ошибке во всех остальных блоках (ЕГГОГ — признак блока — введенное отрицательное число либо перерасход). Если в конце года в кассе не хватает денег даже на погашение взятой в банке ссуды, после ЕГГОГ и XY на индикаторе появляется знак «—», смысл которого ясен без дополнительных комментариев (при повторном нажатии XY вы узнаете в этом случае сумму недоплаты). В отличие от реальной жизни у вас есть шанс начать игру сначала; достаточно скомандовать В/О ПП В/О, заново ввести начальные значения переменных (землю и деньги) в регистры А и Д, затем С/П.

Так и поступаем (правда, в нашем случае, как легко убедиться, содержимое регистров А и Д еще не изменилось, так что вводить новые исходные данные необязательно). На индикаторе вновь загорается Е, в регистре Y по-прежнему 35 000. Попробуем подойти к делу серьезно. Произведем несложный расчет. Земли у нас 1000 га, на ее обработку требуется 30 тысяч. Три с половиной придется отчислить в бюджет, еще, скажем, тысячу (откроем небольшой секрет: эта сумма близка в нынешней ситуации к оптимуму) употребим на сбор грибов и ягод... Итого 34 500. Да, и еще надо отдать сколько-то на охрану урожая! Средств, оказывается, в обрез, о новой земле думать рано. Нажимаем Сх С/П.

На индикаторе цифра 3 — знак того, что предстоит засеять три поля. В регистре Y земельная площадь, которую можно обрабатывать,— 1000 (если бы мы в предыдущем блоке отвели, скажем,

300 рублей на освоение новых земель, площадь увеличилась бы ровно на один гектар). Сейчас нужно определить площадь под посев ржи (с-х. культура с 11% риска). Команда с отрицательным числом или с превышением имеющейся земли блокируется — на индикаторе вновь загорается цифра 3 (ПМК не прощает лишь серьезных финансовых нарушений, ошибки в планировании сел ьхоз работ он дает возможность исправить). Избираем для начала стратегию «равных полей»: треть земли под каждую культуру. Поскольку суммарная площадь (1000) находится сейчас в регистре Y, а в X — тройка, достаточно нажать На индикаторе треть всей земли (333,33333). С/П. Задачи определены, ПМК принимается за работу: определяет расходы на обработку поля (очевидно, 10 тысяч), вычитает их из вашей кассы, а заодно сразу рассчитывает ожидаемый доход (с учетом всех колебаний) и заносит его в регистр С (в этой ячейке на протяжении всего цикла накапливаются будущие поступления, а потом, при подведении итогов года, они складываются с оставшимися в кассе деньгами). На индикаторе загорается цифра 2 — осталось засеять два поля. На очереди пшеница (17% риска). В регистре Y — еще не засеянная земля (666,6667). Не мудрствуя, снова нажимаем -f- (333,33335) С/П. На индикаторе мелькают числа, потом загорается цифра 1 — осталась кукуруза (33% риска). Для единообразия повторяем команду: -т- (333,33335) С/П. Кстати сказать, на каждом останове можно по содержимому регистра С проверять, как идут дела; стек восстанавливается командами ИП2 ИП1.

На индикаторе буква Г — признак блока «Грибы и ягоды», в регистре Y — оставшиеся в кассе деньги (5 тысяч). Как намечено, отдаем сборщикам одну из них: 1000 С/П. ПМК послушно анализирует эту операцию, затем выдает на индикатор букву С — признак блока «Сторожа и собаки». В регистре Y — оставшаяся сумма (4 тысячи). Пора выделять деньги на охрану собранного урожая и добытых даров природы. 150 С/П (откроем еше один небольшой секрет — это число в сложившейся ситуации также близко к оптимуму). Новые финансовые подсчеты, затем появляется буква L — пора вносить в госбюджет свою скромную лепту. Кроме регистра В, необходимая сумма (3500) находится сейчас и в регистре Y. Любую попытку уклониться от этой выплаты калькулятор решительно пресечет.

Выбора нет—нажимаем 3500 С/П. ПМК подводит итоги года: на экранчи-ке загорается буква Е. XY (32188,165). Очевидно, у нас неурожай, потеряны почти три тысячи. О новой земле нечего и думать, но и надежду терять рано. Сх С/П. На индикаторе цифра 3. Проводим прошлогоднюю стратегию: ~ С/П (2) -г- С/П (1) -г- С/П (Г) 1000С/П (С) 150 С/П (L) 3500 (в кассе чуть больше тысячи, волей-неволей приходится обращаться в банк за ссу

дой) С/П (Е). Второй год кончился, каковы результаты? XY (34099,159). Отлично! Дела пошли на поправку. Повторяем все еще раз: Сх С/П (3) ^ С/П (2) ~ С/П (1) -f- С/П (Г) 1000 С/П (С) 150 С/П (L) 3500 С/П (Е). Еще один год позади! XY (35187,236). Урожай, стало быть, вновь выдался на славу — в кассе даже больше, чем было в начале!

Для теста, пожалуй, достаточно. Игра очень азартная и не такая уж простая. Вовсе не обязательно, кстати, ограничиваться лишь проведенными константами;, однако рекомендуем так их подбирать, чтобы средняя прибыль от урожая и сбора грибов примерно равнялась постоянным отчислениям — при этом достигается максимальный игровой эффект.

Теперь, как обычно, раскроем «секреты» программы. Из блок-схемы видно, что некоторые операции повторяются многократно. Соответствующие последовательности команд оформлены в две подпрограммы — ПП8 (она располагается на адресах 94—98) и ППЕ (86—93), а также блок аварийного останова (83—85). Для обращения к этим фрагментам (с адресов 05, 27, 28, 45, 56, 68, 72, 89, 90, 91) использованы команды косвенной адресации. Это сделано просто ради экономии места — команда КППЕ функционально полностью эквивалентна занимающему две ячейки прямому обращению ПП 86 (в регистре Е хранится число 86), КПП8 — ПП 94. С аналогичной целью употреблена и команда косвенного условного перехода по адресу 82: если число в регистре В заканчивается двумя нулями, она эквивалентна Fx<0 00. Команды блокировки по адресам 17 и 21 используют в качестве адреса условного перехода букву Е, хранящуюся в регистре 7. Каждая из них функционально эквивалентна команде обычного условного перехода на адрес 14 (этому «явному» адресу, как мы знаем из № 3, соответствует «тайный» ОЕ).

Команды косвенного вызова КИП1 по адресам 44, 53, 65, 73 преобразуют записанную в регистр 1 букву Е последовательно в Г, С, L и —. Функционально они эквивалентны ИПД, ИПС, ИПВ и ИПА, причем во втором и третьем случаях используются в программе и в этом качестве.

Осталось сказать о попавшей в начач ло команде В/О — казалось бы, ничто не мешает сдвинуть ее на «законное» место (адрес 97), начав «Урожай» со следующей команды: ОО.Сх. Но если так сделать, нумерация изменится и использовать букву Е в качестве адреса перехода уже не удастся

Легко видеть, что в разобранном варианте реализована экстенсивная экономическая модель: увеличение средних доходов можно обеспечить лишь за счет расширения посевных площадей В этом случае вы полностью зависите от «капризов погоды» — даже если дела идут хорошо (попробуйте, например, задать в начале работы