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

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

чисел с постепенно уменьшающимися отрицательными порядками, наконец, после 1000 круг замыкается — на сцену вновь выступают числа с положительными порядками, затем ЕГГОГи, и все повторяется. А теперь познакомимся ближе с населением каждого этажа.

1-й этаж. Здесь, как уже отмечалось, обитают обычные числа. У них, конечно, много всяких любопытных свойств (как и у самых обыкновенных земных животных), но к предмету нашего разговора они не относятся.

2-й этаж. ЕГГОГи, населяющие глубины (порядки) от 100 до 200,— самые неинтересные из обитателей нашего «электронного океана». В обшем-то, это обычные числа, которые можно делить, умножать, складывать, записывать в регистры, но которые не выводятся на индикатор в силу своей чрезмерной величины. Изловить ЕГГОГа проще простого: достаточно, например, отдать команду 1 ВП 50 Fx2 ПО Сх, и ЕГГОГ (десять в сотой степени) сидит в регистре 01 Если теперь разделить его, допустим, на 10, то на индикаторе появится совершенно обыденная единица с порядком 99.

3-й этаж. Если возвести ЕГГОГа из предыдущего примера в квадрат (или иным способом получить число с показателем степени между 200 и 300), на индикаторе появится ЗГГОГ. Эти числа также можно умножать, складывать, записывать в регистры и так далее. Однако, помимо этого, ЗГГОГ обладает целым рядом присущих только ему и весьма полезных качеств.

1) Десятичная точка при появлении на индикаторе ЗГГОГа сохраняет свое положение, как бы «наследует» его от предыдущего числа. Запишите какого-нибудь ЗГГОГа в произвольный регистр. Наберите на индикаторе любое число (в его состав, естественно, обязательно входит десятичная точка — если число целое, она его замыкает) и вызовите ЗГГОГ на индикатор. Точка осталась на прежнем месте. Это свойство позволяет использовать ЗГГОГов в электронных играх для визуальной индикации положения объекта (как сделано, например, в игре «Посадка на планету ЗГГОГ», см. «ТМ» № 10 за 1985 год; напоминаем, что в программе опечатка — по адресу 22 должна стоять стрелка вверх).

2) Всякий ЗГГОГ выполняет операцию безусловного перехода на адрес, совпадающий с первыми двумя цифрами порядка «зашифрованного» под ним числа. Так, полученный нами ЗГГОГ равен 10 в двухсотой степени; если при его появлении на индикаторе отдать команду F ПРГ, убедимся, что справа горит 20. Это свойство также использовано в № 10 — далеко не каждый ЗГГОГ годится для той игры!

3) Всякого ЗГГОГа, появившегося на индикаторе, легко «расшифровать» с помощью следующей процедуры: нажать F АВТ, затем десятичную точку — справа на индикаторе загорится трехзначный порядок числа, которое прячет

ся под личиной ЗГГОГа. Снова нажмите F АВТ — слева на индикаторе появится мантисса числа, справа — некий новый показатель, весьма причудливый, зависящий от способа появления данного ЗГГОГа на индикаторе и для дешифровщика бесполезный. Применение этой процедуры к нашему ЗГГОГу дает порядок 200 и мантиссу 1, как, очевидно, и должно быть.

4) Предыдущее свойство подсказывает новый эффективный прием формирования показательных сообщений (о них смотри № 12 за 1985 год). Вызвав нашего ЗГГОГа из регистра, куда он был записан, и применив к нему процедуру «расшифровки», получим показатель, с которым прежде не встречались (--L). Если теперь отдать

команду ВП 99 F АВТ, появится еще одно новое показательное сообщение (справа на индикаторе горит «чистая» буква Е). Из этих двух сообщений с помощью команд ВП /—/ 1 и ВП /—/ 10 легко получить все остальные мыслимые показательные шифры.

5) ЗГГОГ, записанный в регистр 9 либо 0, может использоваться как анализатор состояния программного счетчика. Убрав ЗГГОГа с индикатора, отдайте, например, команду БП 58. Вызовите ЗГГОГа и нажмите десятичную точку. Справа на индикаторе загорится 580. Данное свойство ЗГГОГа позволяет использовать его для «дешифровки» некоторых других «чудовищ», населяющих глубинные этажи нашего «числового моря».

4-й этаж. Перейдем к «охоте» на глубинах 300—400. Выберем в качестве объекта, например, число 10 в трехсотой степени. Отдаем команды 1 ВП 50 Fx2 Fx2 П9 (записываем ЗГГОГа для последующего использования в качестве анализатора) FBx. Все готово: в регистре У сидит ЗГГОГ (10 в двухсотой степени), в регистре X — ЕГГОГ (10 в сотой степени). Остается их перемножить...

Караул! На экране мелькают цифры — ПМК самопроизвольно перешел в режим счета! Чудовище вырвалось на свободу и мчится по нашей пустой программе, как по бесконечному коридору! Срочно нажимаем С/П. На индикаторе ноль. Это естественно — программа пуста, она состоит из нолей, вот ноль и считался в регистр X, оттеснив чудовище в регистр У. Чтобы взглянуть на «добычу», нужно нажать ХУ...

Нас ждет новое потрясение! Вместо ожидаемого чудища мы видим перед собой лишь следы его деятельности — испорченный фрагмент программы. ПМК самопроизвольно перешел в режим программирования! Слева на индикаторе горит .0, затем две пары 00, в правом углу — 31. Значит, программа остановилась на адресе 30. По аналогии со ЗГГОГами заключаем, что это опять-таки первые две цифры порядка изловленного числа. Точка, как и у ЗГГОГа, унаследовала свое положение от предыдущего числа (только что на индикаторе горел ноль, естественно, с точкой).

Наконец, левый ноль это вторая цифра порядка (300). Если бы порядок был, скажем, 384, то слева на индикаторе горело бы .8, справа — 39.

Что делать дальше? Грубейшей ошибкой будет естественное F АВТ — ПМК зациклится на поврежденной команде и не отзовется ни на один приказ с пульта, придется его отключить. Нажимаем F ПРГ. Точка исчезает. Теперь ШГ влево. Какой командой заменить испорченную? Наша задача — поймать чудовище, поэтому впишем сюда, например, ПА. Затем Сх (чтобы очистить стек) и С/П. Вот теперь можно и F АВТ. На индикаторе тут же загорается О — стек чист, а чудовище сидит в регистре А! Самое время проанализировать его с помощью ЗГГОГа из регистра 9. Трижды нажимаем ШГ влево (для компенсации вписанных в программу команд), ИП9, точку (на индикаторе появляется порядок 300) и F АВТ (слева загорается мантисса — 1). Забив на всякий случай нолями вписанные в программу команды, можно начинать охоту на следующее чудовище (только не надо забывать, что первое все еще томится в регистре А. ожидая команды ИПА, чтобы оттуда вырваться!). Вся эта процедура может пригодиться и для получения совершенно конкретных практических результатов. Например, она позволяет определять факториалы чисел вплоть до 210 (воспользуйтесь любой программой, вычисляющей факториал, и проанализируйте результат с помощью ЗГГОГа из регистра 9).

Охота на 5-м уровне — в обители ОС-оборотней — не менее увлекательна, о ней мы расскажем в следующем выпуске. Уникальные свойства этих созданий подтверждаются, например, простыми алгоритмами получения знакомого нам по предыдущему номеру сообщения ЕЕ: 1 ВП 55 Fx* Fx2 Fx12 ИПС ИПС ВП 6 КНОП (на экране искомое сообщение)— и трехбуквенного шифра ЕЕЕ: 3,1622777 ВП 55 Fx2 Fx2

КЛУБ ЭЛЕКТРОННЫХ ИГР