Техника - молодёжи 1986-06, страница 52Ill_ клуб, очень здорово! Но посвятите хотя бы один номер тому, как самому придумывать игры. Составить программу решения уравнения легко, а игру никак... Научите составлять игры!» Что ж, пожелания законные, давайте придумаем игру вместе. По глубокому убеждению администрации, главное — это название. Назовем ее, скажем, «Многоступенчатая ракета». Ясно же, что на лунолете класса «Кон-Тики» далеко не улетишь, даже взлететь с Земли вряд ли удастся. Поставим задачу так: количество ступеней произвольно, после команды на отделение ступени за-действуется следующая. Желательно, чтобы программа в обращении не была сложнее «Лунолета-3», который и возьмем за основу. Неплохо было бы сохранить и видеосообщения. Договоримся все постоянные и переменные величины оставить в прежних регистрах. Только теперь в регистре Д разместится запас топлива первой ступени, а в регистре 5, ясное дело,— ее «сухая» масса плюс полная масса всех последующих ступеней, включая полезную нагрузку. Посмотрим, какие внутренние резервы есть у нашего «Лунолета-3». Команды, записанные по адресам 12—18, никакой роли не играют, просто повышают сервисность программы, рассчитывая и переводя в регистр У круговую скорость на данной высоте. Это семь команд. Можно ли уместить сюда «многоступенчатый блок»? Возьмем простейший случай. Пусть при зажигании двигателя каждой ступени полная масса ракеты распределяется поровну между следующими компонентами: 1) масса топлива нижней ступени; 2) масса ее конструкции; 3) масса всех последующих ступеней, включая полезную нагрузку. Легко видеть, что после команды на отделение ступени необходимо проделать следующие операции: 1) разделить оставшуюся массу ракеты (содержимое регистра 5) на 3; 2) полученное число записать в регистры 5 и Д; 3) вернуться на начало программы. Наиболее простая последовательность команд, реализующая данный алгоритм, такова (адреса условные): 01.ИП5 02.3 03.-f- 04.П5 05.ПД 06.БП 07.00. Уложились ровно в семь команд! Блок сконструирован, но куда его вставить? И £аким образом, не усложняя работы с программой, отдавать команду на разделение ступеней??? Обратим внимание на блок-схему, на то место, где производится проверка на перерасход топлива. Если вы внимательно следите за «топливными ресурсами», она бесполезна. Что, если команду с перерасходом сделать сигналом на отделение ступени? Значит, надо сделать так, чтобы при перерасходе управление перешло на только что сконструированный «блок многоступенчатости»! Тот, кто хочет внести необходимые исправления сам, может «приглушить звук». Для остальных сообщаем алго ритм преобразования «Лунолета-3» в «Многоступенчатую ракету»: 1) Выбросить из программы команды по адресам 12—18; 2) Команды по адресам 19—26 «сдвинуть» вверх. Теперь они будут занимать адреса 12—19. 3) Вписать на адреса 20—21 команды 20. Fx<0 21. 29. 4) Вписать на адреса 22—28 только что сконструированный «блок многоступенчатости». Ракета построена. Вводите видеосообщения, нужные вам исходные данные, заливайте в баки горючее, определите себе цели полета — ив путь! Только администрация настоятельно рекомендует: внимательно следите за содержимым регистра 5. Ведь это масса всех пока еще бездействующих ступеней, включая полезную нагрузку. Не забывайте, что в нее входите и вы сами! И если команда ИП5 на очередном останове выдаст на индикатор, скажем, число 100, администрация обоснованно опасается, что вам, увы, уже ничто не поможет... «Недавно просматривал ваш журнал № 10 за 1985 год, в частности рубрику «Клуб электронных игр», и возникло желание спросить: почему сообщение микрокалькуляторов типа Б3-34 и МК-54 по ошибке ERROR на страницах вашего (впрочем, не только вашего) журнала печатается в виде ЕГГОГ? — справедливо недоумевает А. Федоренко из Новосибирска.— Если это результат стремления избежать дополнительных трудностей при наборе, то оправдано ли такое стремление, в результате которого вместо осмысленного и понятного (по крайней мере, переводимого) слова появляется какой-то птичий набор?» Отвечаем по существу. Для нас и наших читателей ЕГГОГ в первую очередь это: 1) условное обозначение чисел с порядками между 100 и 200 (см. № 1 с. г.), которые можно, например, записывать в регистры, отдавать по ним команды косвенной адресации (об этом еще расскажем) и т. д.; 2) своеобразное «прикрытие», пользуясь которым можно вызывать в регистр X и подвергать различным операциям числа, которые иначе вызвать не удается, скажем Тьму (№ 3); 3) универсальное «сырье», из которого можно получать такие полезные продукты, как символы Е, Г, С, L и —. Даже язык как-то не поворачивается назвать столь бесценное сокровище «ошибкой», пусть даже на английском языке... Кстати, насчет символов Е, Г и т. д. «Почему вы написали, что после адреса 99 идут (в Б3-34) адреса А0...А9, В0...В9, С0...С9, Д0...Д9, Е0...Е9, 0...9? — просит разъяснений заинтересовавшийся проблемой 160-шагового цикла А. Короткое из Тулы.— У меня они идут в следующем порядке: —0...—9, L0...L9, С0...С9, Г0...Г9, Е0...Е9, 0...9. А «темная зона» начинается с адреса СЗ, а не С1, как сказано у вас». Охотно даем разъяснения. Во-пер вых, символы —, L и Г есть соответственно коды букв А, В и Д, так что никакого противоречия в первом обнаруженном факте нет. Кстати, странички нашего клуба (или стены?) пронумерованы именно этими кодами. Второе замечание справедливо — «темная зона» начинается не с адреса С1 (что было бы странно!), а с адреса СО. При переходе же на адрес С2 она сплошь заполняет индикатор. Наконец, сообщение, которое, несомненно, порадует всех любителей, если можно так выразиться, «компьютерной грамматики». Буквально накануне отправки номера в производство администрация КЭИ получила сенсационную телефонограмму следующего содержания: «Извещаю, что мною получен простой способ формирования на Б3-34 любых комбинаций из цифр и символов Е, Г, С, L, —, не начинающихся с 0. Для этого нужно ввести в ПМК следующую программу: 00.КИП0 01.ВП 02.7 03.П9 04.КИП9 05.КИПЕ 06.ИП9 07.ХУ 08.ХУ 09.ВП 10.ВП 11.1 12./—/ 13.FL0 14.03 15.С/П. (Е по адресу 05 означает стрелку вверх.— М. П.) После ввода программы нужно сформировать и ввести в регистры 1, 2 и т. д. вплоть до 8 необходимые символы в том же порядке, в каком они входят в состав необходимого слова. Например, если вы хотите получить на индикаторе «слово» ГО-ГО-ГО, нужно ввести букву Г в регистры 1, 4 и 7, обнулить регистры 2, 5 и 8, ввести символ «—» в регистры 3 и 6. В регистр 0 заносится число букв в слове, не считая замыкающих его нулей, плюс один. В нашем случае 8. Теперь В/О С/П. Через десяток секунд на индикаторе появляется заказанное вами слово (с точностью до положения десятичной точки, но она легко переносится с помощью команды ВП). Сообщаю также, что мною сконструирован инструмент для программного получения символов Е, Г, С, L и —. Вот соответствующая программа: 00.1 01.Сх 02.ХУ ОЗ.ХУ 04.ВП 05.С/П. (По адресу 00 вписана стрелка вверх.) Если подать на ее вход цифру 9, после останова получим —. Если —, то L. Букву Е лучше не вводить — она дает «пустышку», а это символ весьма опасный. В. Архипов». Администрация КЭИ объявляет Владимиру Архипову благодарность и в этой связи дает следующее задание: 1) Получить максимальное число осмысленных слов и прислать их. 2) Придумать, каким образом, несмотря на категорическое утверждение нашего постоянного корреспондента, можно зафиксировать на индикаторе и записать в адресуемые регистры, скажем, названия программ «ОС-1», «ОС-2», «ОС-3». Михаил ПУХОВ
|