Электроника Б3-34

Микрокалькулятор - Загадка

Часть 2

English version

Начало на первой странице

Как известно, большинство микрокалькуляторов оперирует с числами, по абсолютной величине не превышающие 9.9999999e99. В инструкции по эксплуатации B3-34 также сказано, что 9.9999999e99 - максимальное число, с которым он работает. Однако это не так. Калькулятор B3-34 способен формировать числа гораздо большие (с порядком до 1000!), причем при соответствующем навыке каждое из них можно "изловить" (записать в регистр), проанализировать, а затем как-то использовать. Конкретный вид и свойства этих "арифметических чудищ" зависят от глубин числового океана, где они водятся (точнее, от величины порядка). "Охота" на них - нзанятие увлекательное и в ряде случаев небезопасное.

Вот краткая классификация "глубоководной фауны" калькулятора. Глубины (порядки) до 100 заселены обычными числами. Следующий "этаж" (от 100 до 200) принадлежит ЕГГОГам. Еще глубже (от 200 до 300) обитают ЗГГОГи - создания, вопреки своему зловещему виду, в высшей степени полезные, их легко приручить.
Далее (от 300 до 400) располагается вотчина диких и неукротимых чудовищ, норовящих при малейшей
оплошности со стороны охотника привести программу в негодность и заставить его выключить калькулятор.
Следующий этаж (от 400 до 500) заселен ОС-оборотнями - существами очень полезными, но, в свою очередь, подразделяющимися на многочисленные семейства. Еще ниже (от 500 до 600) располагаются владения Тьмы, при любом контакте с этой таинственной и грозной субстанцией индикатор гаснет, и приходится отключать калькулятор. (Отметим, что с Тьмой можно случайно столкнуться и на других этажах.)
Глубже, за пределы Тьмы, можно проникнуть лишь с помощью специального "водолазного оборудования" (соответствующих программ): глубины от 600 до 700 заселены медлительными С-ЕГГОГ-оборотнями, еще ниже (от 700 до 800) обитают неповоротливые монстры, чьи повадки тем не менее заставляют вспомнить безудержных чудовищ 4-го этажа и охота на которых протекает аналогично.
На предпоследнем этаже (от 800 до 900) безраздельно властвует Ноль (самый обычный, насколько удалось выяснить), дальше (от 900 до 1000) начинается зона обычных чисел с постепенно уменьшающимися отрицательными порядками, наконец, после 1000 круг замыкается - на сцену вновь выступают числа с положительными порядками, затем ЕГГОГи, и все повторяется.

А теперь познакомимся ближе с населением каждого этажа.

1-й этаж.

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

2-й этаж.

ЕГГОГи, населяющие глубины (порядки) от 100 до 200,- самые неинтересные из обитателей нашего "электронного океана". В общем-то, это обычные числа, которые можно делить, умножать, складывать, записывать в регистры, но которые не выводятся на индикатор а силу своей чрезмерной величины. Изловить ЕГГОГа проще простого: достаточно, например, отдать команду , и ЕГГОГ (десять в сотой степени) сидит в регистре 0! Если теперь разделить его, допустим, на 10, то на индикаторе появится совершенно обыденная единица с порядком 99.

3-й этаж.

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

1) Десятичная точка при появлении на индикаторе ЗГГОГа сохраняет свое положение, как бы "наследует" его от предыдущего числа. Запишите какого-нибудь ЗГГОГа в произвольный регистр. Наберите на индикаторе любое число (в его состав, естественно, обязательно входит десятичная точка - если число целое, она его замыкает) и вызовите ЗГГОГ на индикатор. Точка осталась на прежнем месте.

2) Всякий ЗГГОГ выполняет операцию безусловного перехода на адрес, совпадающий с первыми двумя цифрами порядка "зашифрованного" под ним числа. Так, полученный нами ЗГГОГ равен 10 в двухсотой степени; если при его появлении на индикаторе отдать команду , убедимся, что справа горит 20.

3) Всякого ЗГГОГа, появившегося на индикаторе, легко "расшифровать" с помощью следующей процедуры: нажать , затем десятичную точку - справа на индикаторе загорится трехзначный порядок числа, которое прячется под личиной ЗГГОГа. Снова нажмите  - слева нa индикаторе появится мантисса числа, справа - некий новый показатель, весьма причудливый, зависящий от способа появления данного ЗГГОГа на индикаторе и для дешифровщика бесполезный. Применение этой процедуры к нашему ЗГГОГу дает порядок 200 и мантиссу 1, как, очевидно, и должно быть.

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

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

4-й этаж.

Перейдем к "охоте" на глубинах 300-400. Выберем в качестве объекта, например, число 10 в трехсотой степени. Отдаем команды , (записываем ЗГГОГа для последующего использования в качестве анализатора) . Все готово: в регистре Y сидит ЗГГОГ (10 в двухсотой степени), в регистре Х - ЕГГОГ (10 в сотой степени). Остается их перемножить...
Караул! На экране мелькают цифры - ПМК самопроизвольно перешел в режим счета! Чудовище вырвалось на свободу и мчится по нашей пустой программе, как по бесконечному коридору! Срочно нажимаем . На индикаторе ноль. Это естественно - программа пуста, она состоит из нолей, вот ноль и считался в регистр X, оттеснив чудовище в регистр Y. Чтобы взглянуть на "добычу", нужно нажать
Нас ждет новое потрясение! Вместо ожидаемого чудища мы видим перед собой лишь следы его деятельности - испорченный фрагмент программы. Калькулятор самопроизвольно перешел в режим программирования! На индикаторе видим . Значит, программа остановилась на адресе 30. По аналогии со ЗГГОГами заключаем, что это опять-таки первые две цифры порядка изловленного числа. Точка, как и у ЗГГОГа, унаследовала свое положение от предыдущего числа (только что на индикаторе горел ноль, естественно, с точкой). Наконец, левый ноль - это вторая цифра порядка (300). Если бы порядок был, скажем, 384, то слева на индикаторе горело бы .8, справа - 39. Что делать дальше? Грубейшей ошибкой будет естественное - калькулятор зациклится на поврежденной команде и не отзовется ни на один приказ с пульта, придется его отключить. Нажимаем . Точка исчезает. Теперь (шаг назад). Какой командой заменить испорченную? Наша задача - поймать чудовище, поэтому впишем сюда, например, . Затем (чтобы очистить стек) и . Вот теперь можно и . На индикаторе тут же загорается 0 - стек чист, а чудовище сидит в регистре A! Самое время проанализировать его с помощью ЗГГОГа из регистра 9. Трижды нажимаем (для компенсации вписанных в программу команд), , (на индикаторе появляется порядок 300) и . (слева загорается мантисса - 1). Забив на всякий случай нолями вписанные в программу команды, можно начинать охоту на следующее чудовище (только не надо забывать, что первое все еще томится в регистре А, ожидая команды , чтобы оттуда вырваться!). Вся эта процедура может пригодиться и для получения совершенно конкретных практических результатов. Например, она позволяет определять факториалы чисел вплоть до 210 (воспользуйтесь любой программой, вычисляющей факториал, и проанализируйте результат с помощью ЗГГОГа из регистра 9).

Охота на 5-м уровне в обители ОС-оборотней - не менее увлекательна, о ней можно прочитать на следующей странице, когда она будет написана.

А пока можно попробовать получить сообщение :

,

И напоследок - :

Не правда ли, ситуация сильно напоминает ту, когда фокусник на ваших глазах извлекает из вашей же шляпы сначала живого кролика, а потом еще и хрюкающего поросенка? Только здесь и в роли фокусника, и в качестве шляпы выступает калькулятор.

 

Продолжение на следующей странице.

Последние изменения: 25.03.00

. 1