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

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

Это и есть новые координаты ферзя; вновь следует обращение к подпрограмме ввода-вывода.

А что будет, если король заберется на первую вертикаль? В этом случае, благополучно миновав проверку 88-89, мы оказываемся на начале тактического блока (90-93). Номер горизонтали (вертикальная координата) сравнивается с пятью; в позиции Кр15 ферзь может располагаться лишь на полях 77, 28, 38, 47 и 46. Во всех случаях, кроме последнего, программа играет обычным порядком — результатом будет Ф27. Но в позиции Кр15 Ф46 нормальная процедура даст Ф36 — пат. Чтобы этого избежать, проводится проверка вертикальной координаты ферзя (94-96): синус 7 или 8 радианов положителен, и управление передается в стратегический блок, а вот синус 6 радианов отрицателен, и программа посылает ферзя на поле 24 с шахом (97, 00-02). Кстати, в первоначальном варианте Сергея исследовался знак косинуса произведения координат ферзя; в позиции Кр 15 Ф27 (тоже угроза пата!) та же операция (97, 00—02) приводила к остроумному выжидательному маневру Ф22. К сожалению, такая про

верка давала неверные результаты при Кр15 Ф38. А наш вариант допускает позицию Кр 15 Ф27 только при ходе черных.

Если король не стоит на поле 15, управление передается на адрес 29. Число 97 воспринимается как код проверки Кх>07 (адресно-кодовая связка!), различающей игру на полях 16-18 (адреса 30-50) и на полях 11-14 (адреса 51-56). В первом случае содержимое регистра X вычитается из запасенной еще в КППВ двойки; если получается ноль или единица (король на поле 16 или 17), управление передается в стратегический блок — можно играть по обычному алгоритму. В позиции Кр 18 (угроза пата и повторения ходов) производится проверка условия первого хода (32-34): если король забрел в угол после длительных странствий,'ферзь делает шах на 45 (35—37). Если черные ответили Кр28, оператор (40-41) передает управление на адрес 48, положение ферзя в памяти ПМК сменяется на Ф35 (это сделано, чтобы избежать хода на 47, ведущего к повторению позиции), «вхолостую» проходится участок 51-56, и ферзь в рамках нормальной процедуры делает ход на

36. А если король после шаха уйдет на 17, следует Ф25 (39-44; команды 38.4- и 42.ВП в данном случае не несут никакой полезной нагрузки), а в ответ на вынужденное Кр18 ПМК смещает в своей памяти короля на поле 28 (команда 45.КИП5), «вхолостую» минует блок 51-56 и по обычному алгоритму ставит ферзя на 47. Наконец, если черные оказались в углу на первом ходу, управление после проверки (32-34) сразу передается на адрес 45 с такими же последствиями. Во всех этих вариантах условие первого хода уничтожается: командой 50.П1 в регистр 1 записываются положительные числа, не равные нулю или единице.

Осталось рассмотреть последнюю ветвь программы: тактическую игру на полях 11-14. После проверки по адресу 29 управление передается на тот самый злополучный участок 51-56, который мы уже столько раз проскакивали «своим ходом», добираясь до адреса 57 без дополнительной команды безусловного перехода (для нее в программе просто не осталось места). Команда 51.+ складывает входное число с запасенной в КППВ двойкой; в результате при распо-

ВАРИАЦИИ НА ТЕМУ

МИКРОКАЛЬКУЛЯТОРА

Как бы ни были ограничены вычислительные возможности программируемых микрокалькуляторов, во многих случаях они позволяют провести довольно сложные расчеты. Выпущенные сотнями тысяч экземпляров, карманные ЭВМ стали важным подспорьем для людей весьма различных специальностей. Помочь им в освоении этих машин — задача серьезная. Ее решению служат несколько книг, вышедших в прошлом году в издательствах страны. Каждая из них намечает свой путь к решению.

Ю. В. Пухначев и И. Д. Данилов, авторы книги «Микрокалькуляторы для всех» (М., «Знание», 1986), считают необходимым сначала провести с читателем подробный курс занятий. «Знакомство с микрокалькулятором», «Этапы решения задач на ЭВМ», «Погрешности вычислений», «Культура и искусство программирования» — вот важнейшие этапы этого курса, образующего первую часть книги. Часть вторая — собрание практических задач из разнообразных сфер деятельности. Для каждой задачи прослеживается весь путь от ее постановки до получения

книжная орбита

результата, причем каждая программа снабжена комментарием, где разбираются примененные при ее составлении специфические приемы программирования.

«Секреты программируемого микрокалькулятора» — так назвал свою книгу, вышедшую в серии «Библиотечка «Квант» (выпуск 55. М., «Наука», 1986), И. Д. Данилов. Ярок и интересен ее стиль: автор вовлекает читателя в живой разговор о «маленькой, но удаленькой» машинке, приглашает вместе разобраться в особенностях ее работы, ее «секретах».

Если брать в союзницы занимательность изложения, то приемы работы на программируемом микрокалькуляторе можно иллюстрировать не только задачами, но и играми,— полагают авторы третьей книги, вышедшей в серии «Кибернетика. Неограниченные возможности и возможные ограничения». Она так и озаглавлена: «Микрокалькуляторы в играх и задачах» (руководитель авторского коллектива Ю. В. Пухначев. М., «Наука», 1986). От простейших развлечений, которые можно предложить даже первокласснику, до некоторых основных положений теории игр — таков восходящий путь, предлагаемый читателю этого сборника. О том, как авторы справляются с ролью гидов, позволяет судить фраза из предисловия, написанного академиком А. П. Ершовым: «После знакомства с книгой

остается ощущение интеллектуального напряжения и безграничного энтузиазма».

Разные главы сборника привлекают к себе людей не только разных возрастов, но и разных вкусов. Четвертая глава «Разбираем игровые задачи» придется по нраву человеку с аналитическим складом ума, пятая глава «Составляем игровые программы» — с конструктивным, причем ее стиль, подчеркнуто бел-летризованный, проникнутый юмором, способен увлечь читателя с гуманитарными склонностями.

«Игры с микроЭВМ» — заголовок книги Я. К. Трохименко (Киев, «Техника», 1986) побуждает предположить, что и тут игры привлечены к делу исключительно в целях занимательности. Однако это предположение неверно. Автор уже в предисловии подчеркивает, как мало внимания уделяется в литературе решению логических задач с помощью ЭВМ. И продолжает: «Навыки в решении подобных задач проще всего (в особенности для пользователей, работа которых не связана с вычислениями) приобрести на примерах решения занимательных игровых задач».

Шестьдесят игровых программ предлагает Я. К. Трохименко своему читателю. Здесь и разнообразные соревнования, и гонки, и посадка на Луну... Есть чем занять досуг! А в заголовках, комментариях — научный фон, на который нетрудно спро-