Техника - молодёжи 1986-03, страница 55с нулем. Если высота положительна, то управление передается на адрес 13 (останов для ввода очередного маневра), если же отрицательна, то вступает в действие «посадочный блок» (08—12). Он организован точно так же, как в программах «Лунолет-3», «Маскон» и «ОС-1»: отрицательная высота делится на вертикальную скорость (которая при посадке, как правило, тоже отрицательна), знак перед получившимся числом меняется на противоположный, после чего оно используется в качестве времени очередного маневра с прежним ускорением. Легко видеть, что если последнее равно нулю или отрицательно (вертикальная скорость по мере приближения к поверхности постоянна либо увеличивается), то при повторении этой процедуры несколько раз ваш корабль вернется на нулевую высоту, а его скорость окажется такой же, как и в момент контакта с поверхностью (отметим, что при расчете высоты попутно происходит ее округление — до десятых долей метра, если радиус планеты измеряется тысячами километров). Если же вертикальное ускорение положительно (скорость корабля при снижении убывает), то посадочный блок «подбросит» аппарат на некую положительную высоту и, таким образом, своей задачи не выполнит (на это указывает в своем письме в редакцию москвич С. Вардин). Во избежание недоразумений лучше всего садиться с выключенным двигателем либо на малой тяге — более точный посадочный блок попросту не умещается ни в программу «Атмосфера-1», ни в «Лунолет-3» и «ОС-1». При нормальном задании маневра расход записывается в регистр 8, время — в регистр 2, регистр 9 используется как рабочий, для временного хранения промежуточных результатов вычислений. Команды 16—54 рассчитывают сумму реактивного ускорения и аэродинамического торможения, затем к ним добавляются центробежное и ко-риолисово ускорение, после чего вычисляются новые значения координат и компонент скорости. Фрагмент (31—37) введен из-за несовершенства процедуры, с помощью которой ПМК вычисляет функцию 10*: при отрицательных аргументах, превышающих по модулю 99, «Электроника» выдает вместо нуля сообщение ЕГГОГ. Рассматриваемый фрагмент устраняет эту неприятность, задавая на высотах свыше 150 км (для Земли) постоянную плотность, равную одной миллиардной доле плотности на нулевой высоте. Из-за перегруженности счетного блока для преобразования радианов в градусы вместо применявшейся раньше точной последовательности 180XFJT-f-(6 команд) используется приближенная формула (71); она справедлива лишь при довольно малых (не более 10—20°) угловых перемещениях космического аппарата; по этой причине ограничения на шаг по времени не снимаются даже при полете по круговой орбите. Концовка программы «Атмосфера !» (92—97) одновременно используется в качестве подпрограммы (вызов 67— 68); этот прием использовался и прежде. Время маневра, введенное в стек командой по адресу 55, переводится тремя последующими командами (56—58) в регистр Т, «цепляется» за конец стека и неоднократно используется в вычислениях (при умножении по адресам 63, 88 и дважды 94). Таким образом, экономится несколько ячеек программной памяти, отпадает необходимость записывать время в посадочном блоке. ОХОТА НА ИНОПЛАНЕТНЫХ ЧУДОВИЩ (3) Самым,- пожалуй, неприятным обитателем глубин нашего «числового океана» (см. предыдущие выпуски) является Тьма — при любом контакте с ней индикатор гаснет. Основные владения Тьмы располагаются между порядками 500 и 600 (таким образом, всякое число от 1 ВП 500 до 9,9999999 ВП 599 — это Тьма). Для первого знакомства с ней можно в режиме АВТ набрать на клавиатуре такую, например, последовательность команд: 1 ВП 70 Fx2 (ЕГГОГ) Fx2 (ЗГГОГ) Fx2. Индикатор гаснет — наши действия привели к числу Ю560, а это, конечно же, Тьма. Легко убедиться, что ПМК не отзывается теперь ни на один приказ с пульта. Однако если его выключить на несколько секунд, а затем включить снова, он будет работать как ни в чем не бывало. Чтобы упрятать Тьму в «клетку» (адресуемый регистр), можно воспользоваться простой программой: OO.Fx2 01.Fx2 02.Fx2 03.ПА 04.Сх 05.С/П. Команда: F АВТ В/О 1 ВП 70 С/П. После останова на индикаторе горит ноль, но в регистре А сидит Тьма! Если вы рискнете и выпустите ее оттуда (ИПА), то индикатор погаснет, придется отключить калькулятор и вводить программу снова. Как вы помните, для количественного анализа чудовищ 4-го этажа использовался ЗГГОГ из регистра 9. Однако для расшифровки как ОС-оборотней, так и Тьмы такой анализатор непригоден. Чтобы дешифровать Тьму (да и любые другие «суперчисла»), полезен логарифмический анализатор: OO.Fx2 01 Fx2 02.Fx2 03.Fig 04.1 05.0 06.0 07.0 08.— 09./—/ 10.П9 11.КИП9 12.ХУ 13.ИП9 14.— 15.FBx 16.ХУ 17.F10 * 18.С/П (стрелки в командах ХУ по техническим соображениям опущены). Программа логарифмирует сформированное командами (00—02) «чудовище» и вычисляет его мантиссу и порядок, так что после останова в регистре X оказывается мантисса (с небольшой ошибкой в последних десятичных знаках), в регистре У — порядок. Обратите внимание на фрагмент (04—09) — вычисленный логарифм числа вычитается из тысячи; легко убедиться, что такая коррекция необходима при логарифмировании всех «сверхчисел», вплоть до Нуля (то есть по 9,9999999 ВП 799 включительно). Фрагмент (10—13) исполь зует для выделения целой части числа команду косвенного вызова; как справедливо указывают в своих письмах Д. Кайков из Белгорода и другие читатели, это наиболее простой путь выполнения такой операции на «Электронике Б3-34» (в новых моделях ПМК для нее предусмотрена специальная команда). Испробуем наш анализатор на Тьме: В/О 1 ВП 70 С/П. После возведения в восьмую степень должно, очевидно, получиться число Ю560. На индикаторе зажигается приближенное значение мантиссы (1,0002303), в регистре У оказывается совершенно правильная величина порядка (560). Можно ли вызвать Тьму в регистр X? Казалось бы, странный вопрос... Но введите в ПМК программу: OO.Fx2 01.Fx2 02 Fx2 03.К7 (подойдет и любая другая «неправильная» команда, начинающаяся с К). Перейдите в режим АВТ и скомандуйте: В/О 1 ВП 70 С/П. На индикаторе загорается сообщение ЕГГОГ (результат «неправильной» команды), но под ним скрывается Тьма — если отдать сейчас одну из команд КНОП, К1, К2, стрелка вверх (ввод в стек) или F АВТ, индикатор погаснет. Тьма, «замаскированная» сообщением ЕГГОГ, находится в регистре X, и с нею можно обращаться как с любым «нормальным» числом — умножить на что-нибудь, разделить, прологарифмировать вручную, используя приведенную выше процедуру... А что, если попробовать вычислить число, обратное Тьме? Команда: F 1/х. На индикаторе — ноль. Казалось бы, ничего удивительного — что же еще "могло получиться в результате такой операции? Однако не будем спешить с выводами, заглянем в регистр С. ИПС ИПС. На индикаторе — знакомый по прошлому выпуску «хвост» (00,0000ЕЕ) оборотня, равного 10440. Итак, разделив единицу на Ю560, мы получили Ю440; впрочем, если вспомнить, что наш «числовой океан» характеризуется периодом в 1000 по величине порядков, в этом опять-таки нет ,ничего удивительного: единица в «арифметике» ПМК тождественно равна 101000 (вспомните коррекцию логарифма, о которой только что шла речь) Отсюда следует важный вывод: числа, обратные Тьме, это ОС-оборотни; следовательно, числа, обратные ОС-оборотням,— это Тьма; значит, во избежание неприятностей не стоит производить над ОС-оборотнями такой операции... Кроме того, возникает подозрение, что в наш «числовой океан» можно проникнуть и с «черного хода» — через числа с отрицательными порядками; забегая вперед, укажем, что это действительно так. Кроме своего «законного» этажа, Тьма занимает и две «ниши» в мире ОС-оборотней: от 1 ВП 450 до 9,9999999 ВП 469 (оборотни первого порядка) и от 1 ВП 445 до 9,9999999 ВГ1 446 (оборотни второго порядка); легко видеть, что в этих мирах Тьма «оккупирует» еще и соседний этаж, где, по идее, долж 52
|