Text
                    • ЧЕЛОВЕК И КОМПЬЮТЕР	Раздел ведет кандидат физико-

математических наук Ю. ПУХНАЧЕВ.

Первый выпуск раздела «Человек и компьютер» за текущий год (Ne 2, 1989 г.)
был составлен из писем киевлян. Во вступлении к нему выражалась надежда, что
какой-либо из следующих выпусков удастся составить из писем ленинградцев, горь-
ковчан...

Первый отклик на зто предположение был неожиданным. «На мой взгляд,— пи-
шет И. Суровикин из Омска,— было бы разумнее делить читателей раздела не по тер-
риториальному, а по профессиональному признаку. Сам я по специальности химик-
технолог и призываю своих коллег активнее писать в «Науку и жизнь», чтобы один
из ближайших выпусков раздела «Человек и компьютер» можно было укомплектовать
исключительно из выступлений химиков, освоивших в своей работе компьютер или,
на худой конец, программируемый микрокалькулятор».

Что ответим на зто, товарищи химики! Ждем от вас писем с алгоритмами и про-
граммами на химические темы!

ТАЙНА ГСЧ
РАСКРЫТА?

Редакция получила почти одновременно
два письма, где речь идет о генераторе слу-
чайных чисел в микрокалькуляторах МК-61
и МК-52. Автор одного из писем — Л. Ти-
тов из Красноярска — сообщает, что, по
его мнению, для генерации псевдослучайных
чисел в этих калькуляторах используется со-
отношение:

Рп-н = {10(рп + Y + Х7) / 3 + 0,404067 },
где 0,404067 — начальное (стартовое) число
генератора, рп и pn+i—два соседних слу-
чайных числа из последовательности, вы-
даваемой генератором, Y — число, находя-
щееся в регистре Y в момент нажатия кла-
виш К СЧ, а Х7 — цифра, стоящая в этот
момент в седьмом разряде числа, находя-
щегося в регистре X. Мантиссы чисел, нахо-
дящихся в регистрах X и Y, нормализуют-
ся — десятичная точка стоит после первой
значащей цифры, знак числа и цифры по-
рядка отбрасываются. В ОЗУ существуют
специальные ячейки памяти для записи те-
кущего значения чисел рп, которые не-
доступны для пользователя. Однако после
выполнения операций, вводимых клавишей
К (то есть К [х], К {х} и т. д.), результат
замещает в ячейках ОЗУ случайное число
рп, что и является, по мнению Л. Титова,
источником многих бед.

Второе письмо на ту же тему в редакцию
прислали создатели микрокалькуляторов
МК-61 и МК-52 — сотрудники киевского
ПО «Кристалл». Отвечая на многочисленные
письма читателей, они пишут: «Генератор
псевдослучайных последовательностей обес-
печивает получение ряда чисел, содержа-
щего периодическую и непериодическую ча-
сти. Длина этих частей, их состав и харак-
тер распределения чисел в интервале от 0
до 1 зависят от содержания регистра Y и
ячеек памяти. Естественно, что при одина-
ковых исходных состояниях будут выда-
ваться и одинаковые последовательности.
Так, при исходном нулевом содержании ре-
гистров, то есть сразу после включения мик-

рокалькулятора, генератор выдаст последо-
вательность, содержащую 89 чисел в непе-
риодической и 145 чисел в периодической
частях. Ради обеспечения нормальной рабо-
ты этого генератора предприятие рекомен-
дует для генерации случайных чисел ис-
пользовать программу: ПХО Bf КСЧ ХПО
С/П — последняя команда ставится, если
нужна индикация псевдослучайного числа.
Очередное псевдослучайное число будет ге-
нерироваться при возврате к началу прог-
раммы. Рекомендация об использовании
этой программы внесена в «Руководство по
эксплуатации». Вводя в регистр 0 восьми-
значное стартовое число, получим опреде-
ляемую им псевдослучайную последователь-
ность. Для получения новой последователь-
ности достаточно изменить стартовое число
и записать его в регистр 0».

Публикуя эти письма, редакция надеется,
что они помогут нашим читателям использо-
вать встроенный в микрокалькуляторы МК-
61 и МК-52 генератор псевдослучайных чи-
сел. Разговор, однако, нельзя считать за-
конченным, так как в обоих объяснениях
есть неясности, которые еще нужно уточ-
нить. Так что любители могут продолжить
поиски.

• МАЛЕНЬКИЕ ХИТРОСТИ

Для экономии батарей калькуляторов БЗ-
34, МК-52 и сохранения программы в ПМК
можно использовать своеобразный «режим
памяти», в котором на индикаторе све-
тится только десятичная точка и потребле-
ние энергии минимально. Для перехода в та-
кой режим можно выполнить последователь-
ность команд Сх ftt: ВП К. Для возврата
в режим вычислений набрать F10x F10x Сх.

Г. ТАРАСОВ (г. Чита).

От редакции. При экспериментальной
проверке этого совета было обнаружено,
что для МК-52 экономия составляет около
5 процентов (калькулятор потреблял 89 мА
в режиме ожидания, когда на индикаторе
горел нуль, и 84 мА в «режиме памяти»).
Однако самым неожиданном оказалось
то, что в режиме счета по программе пот-
ребление снизилось на 17 процентов отно-
сительно режима ожидания (до 73 мА). По-
лучается, что самый экономичный способ
сохранения программы — ее работа?

В ДВУХ РЕЖИМАХ Владельцам микрокалькуляторов МК-61 немало хлопот доставляет адаптация прог- рамм, написанных для МК-54 и содержащих команды со стрелкой — типа КП{. Между тем эти программы можно использовать для МК-61 без всяких доработок, если внести в электрическую схему калькулятора не- большие изменения. На фрагменте прин- ципиальной схемы новые цепи обозначены пунктиром. Во избежание выхода из строя микро- схем от воздействия статического электри- чества при переделке (рекомендуется поль- зоваться паяльником с заземленным жалом, включенным в сеть через разделительный трансформатор, на заземленной металли- ческой поверхности. Руки также должны быть заземлены с помощью металлического браслета через резистор с сопротивлением несколько мегом. После переделки при включенном режи- ме «МК-54» вы будете иметь в своем рас- поряжении полную имитацию калькулятора этой марки: все команды со стрелкой, 98 шагов программы, 14 регистров и т. д. В заключение хочу поблагодарить А. Ф. Пшеничко — сотрудника киевского ПО «Кристалл», куда я обратился по этому вопросу,— за любезно оказанную консуль- тацию. В. КУДРЯВЦЕВ (г. Калининград). КАЛЬКУЛЯТОРЫ СОВЕРШЕНСТВУЮТСЯ Редакция получила ответ от изготовителя программируе- мых микрокалькуляторов МК-61 и МК-52 — киевского ПО «Кристалл» — на публикацию «Изобретем микрокалькуля- тор» в № 12 за 1988 г., подписанный главным конструкто- ром А. Г. Шеревеней, руководителем госприемки В. В. Ко- стиковым и заместителем главного инженера А. П. Перуц- ким. Публикуем его с небольшими сокращениями. Частота тактового генера- тора микрокалькуляторов МК-61 и МК-52 выбрана исходя из номинальной ча- стоты используемых микро- схем. При более высокой ча- стоте изготовитель не гаран- тирует безошибочной рабо- ты, хотя многие экземпляры, безусловно, останутся рабо- тоспособными, но потеряют гарантию из-за наруше- ния условий эксплуатации, установленных изготови- телем. Авторы некоторых публи- каций — В. П. Дьяконов, Я. К. Трохименко и другие— без всякого согласования с объединением «Кристалл» сообщили читателям о «пе- риферийных устройствах» для МК-52. Объединение от- нюдь не планировало выпу- скать какие-либо иные уст- ройства, кроме блоков рас- ширения памяти БРП, пред- ставляющих собою постоян- ную библиотеку программ пользователя. Кроме специа- лизированного блока БРП-2 с набором программ для ре- шения навигационных за- дач, информация о котором опубликована в «Морском сборнике» № 12, 1988 г., объединением выпускаются блоки БРП-3, содержащие 60 программ для решения математических задач. Этот блок выпускается серийно и поступает в продажу по це- не 16 рублей. В 1988 году выпущено 15 200 этих бло- ков, а в 1989 году плани- руется выпустить 80 тысяч. В 1989 году объединение приступает к выпуску блока БРП-4, содержащего про- граммы игрового, спортив- но-профессионального и бы- тового характера. Дополнительный разъем установлен с технологиче- ской целью и служит для диагностики изделия в про- цессе его изготовления. Разработка блоков, в ко- торые информацию мог бы записывать сам пользова- тель, в нашем объединении не планируется. Создатели и разработчики микрокалькуляторов могут гарантировать решение за- дач без ошибок только в том случае, если пользователь не нарушает правил эксплуата- ции. «Побочные эффекты» возникают при несанкциони- рованном использовании операций или комбинаций команд, не оговоренных в «Руководстве по эксплуата- ции». Наиболее типичный пример — использование операции ВП для изменения порядка результата, хотя она предназначена только для изменения порядка опе- ранда. Невозможно оговорить в «Руководстве» все комбина- ции нажатий двух или трех клавиш из имеющихся три- дцати, приводящие к невер- ному результату. Проще было бы не использовать комбинации, которые не ука- заны в «Руководстве». С января 1989 года прини- маются меры по улучшению работы клавиатуры. В каль- куляторах, выпускаемых в этом году, устраняется «дребезг» контактов и двой- ное срабатывание. Но не все здесь зависит от изготови- теля. Ведь и пользователи вносят в порчу контактов свою лепту: ударяют или резко нажимают на клави- ши, нажимают на две кла- виши одновременно, нажи- мают на следующую клави- шу до того, как сработала предыдущая, и т. д. Наде- емся, что мероприятия, про- веденные объединением, и бережное обращение вла- дельцев с клавиатурой обес- печат ее хорошую работу.
РАСЧЕТ ЗАДЕЛА В СТРОИТЕЛЬСТВЕ Когда разрабатываются проекты органи- зации строительства, много времени уходит на монотонные расчеты с однотипными дей- ствиями. Пример — расчет задела в стро- ительстве, входящий в состав расчета сро- ков. Предлагаемая программа должна об- легчить работу и сохранить время работни- кам проектных организаций и банков. Предназначена она для МК-61. Расчетные формулы: 6= (Т/То) п, где Т—нормативная про- должительность строительства (по табли- цам СНиП 1.04^03—85), То — общая ра- счетная продолжительность строительства, п — порядковый номер месяца (квартала). К,п= Кп+ (Кп + 1— Kn)d, где d —дроб- ная часть б, Кп — нормативный показатель задела, соответствующий n-му месяцу (кварталу), К'п— расчетный показатель вышеупомянутой величины. Расчет на мик- рокалькуляторе возможен, если норматив- ная продолжительность варьируется от 1 до 10 месяцев (кварталов). При вводе программы в ПМК необходи- мо по адресу 00 ввести команду ХПМ, где N = (n + 1). По адресам 01 и 02 вво- дится двузначное число, равное п. По ад- ресам 15—18 вводится определенное по таблицам СНиП отношение Т/То. 00.XHN 01... 02....... ОЗ.ХПО 04.С/П 05.ПХО 06.ХПЕ 07.^ 08.КХПЕ 09. FL0 10.04. 11.0 12.ХПО 13.КПХ4 14.ПХА 15. ... 16. ... 17. .. 18... 19.Х 20.ХПС 21. С/П 22.К{х} 23.ХПД 24. ПХС 25.К[х] 26.ХПЕ 27.1 28.+ 29.ХПС ЗО.БП 31.42 32.Сх ЗЗ.КПХЕ 34.ПХД 35.КПХС 36.КПХЕ 37.— 38-Х 39.+ 40.С/П 41.БП 42.13 43.ПХЕ 44.3 45 — 46.Fx = 0 47.50 48.5 49.ХПС 50.ПХЕ 51.4 52.— 53Fx > 0 54.32 55.ПХЕ 56.1 57.+ 58.ХПЕ 59.1 60.+ 61.ХПС 62.БП 63.32. Инструкция. 1. Определить отношение Т/То и ввести в программную память по адресам 15—18. 2. Перевести калькулятор в режим автоматической работы. 3. Ввести ис- ходные данные: показатели задела по нор- мам СНиП в порядке Кю С/П Кэ С/П ... Ki С/П. 1—10—порядковые номера месяцев (кварталов). 4. 1-й останов «бр> С/П. 2-й останов «К1> (показатель задела для 1-го месяца в процентах от сметной стоимости в зависимости от общей продолжительности строительства). Далее попарно выводятся остальные бп и К'п- Контрольный пример. Нормативная про- должительность — 8 месяцев. Расчетная — 10 месяцев. Т/То= 0,80. В программу вве- сти команды: 00.ХП9 01.0 02.8 ... 15.0 16., 17.8 18.0 ... Ввести исходные данные: 100 С/П 95 С/П 82 С/П 63 С/П 45 С/П 0 С/П 27 С/П 16 С/П 8 С/П. Результаты: 1-й останов 6i= 0.8, К/= 6.4. 2-й останов в2= 1.6, Кг' =12.8. 3-й ос- танов б3= 2.4, Кз'= 20.4. 4-й останов б4 = 3.2. К/ = 30.6 5-й останов бб = 4.0, Кб'= 45. 6-й останов бб= 4.8, Кб'= 59.4. 7-й останов 67= 5.6, К7,== 74.4. 8-й останов б8= 6.4, Кв'= 87.2. 9-й останов б9= 7.2, Кэ'= 76. 10-й останов 6ю= 8, Кю' = 100. Результаты заносятся в таблицы согласно приложению 4 СНиП 1.04. 03—85. О. ТРОНОВ (г. Сочи). МУЛЬТФИЛЬМ НА ИНДИКАТОРЕ Логические операции мож- но использовать для созда- ния мультфильма. Конечно, сюжет такого фильма необ- ходимо рассказать заранее. Плохо лишь, что экран мал, да и смотреть приходится в полной темноте, но ведь и в настоящем кино так же. Вот один из моих мульт- фильмов. Космический ко- рабль «—» летит с Луны «L» на Землю «3». Сначала он делает прощальный круг вокруг Луны, затем совер- шает посадку на орбиталь- ной станции «С» и, наконец, прибывает на Землю. Вот программа этого мультфиль- ма: 00.ПХ1 01.BJ 02.В^ ОЗ.В] 04.ПХ2 05.В^ 06.В- 07.В 08.ПХЗ 09.В 10.В 11.В 12.ПХ1 13.В 14.В' > 15.BJ 16.ПХ2 17.BJ > 18.В ' 19.В 20.ПХ4 21 В 22.В 23.В 24.ПХ5 25.В1 ' 26. В' 27.Bf 28.ПХ6 29.В ' ЗО.В' 31.В 32.ПХ7 ЗЗ.В- ' 34.Bl 35.В 36.ПХ8 37.В ‘ 38.В 39.В 40.ПХ9 41.В' 42. Bf 43.3 44.С/П 45.БП 46.00. Теперь необходимо занести в ре- гистры памяти «кадрики» нашего мультфильма. Дела- ется это так: 10888888 Bf 13747737 KV К{х} ХП1 FO • УЗЕЛКИ НА ПАМЯТЬ Я заменил в своем микрокалькуляторе «Электроника МК- 61» элементы 316 аккумуляторами НКГЦ-0,45, которые полностью совпадают по размерам с элементами 316, но имеют в три раза большую емкость. Аккумуляторы рассчи- таны на 500 циклов «заряд—разряд» и, учитывая их более высокую емкость, заменяют 4500 элементов, каждый из ко- торых стоит 15 копеек, а весь комплект питания — 675 руб- лей. Три аккумулятора, обеспечивающих такую же продол- жительность работы, стоят 9 рублей, а зарядное устройство для их зарядки — 3 рубля 25 копеек. Цифры говорят сами за себя. А. КОРНЕВ (г. Москва). 13747237 КД К{х} ХП2 FO 13737732 KV К{х} ХПЗ FO 13774772 KV К{х} ХП4 FO 13774727 KV К{х} ХП5 FO 13774277 KV К{х} ХП6 FO 13724777 KV К{х} ХП7 FO 13724777 KV К{х} ХП8 3/—/ ХП9. Теперь остается поту- шить свет и пустить фильм командами В/О С/П. Для повторного просмотра на- жать С/П. К. КОТИН (г. Ленинград).
• МАЛЕНЬКИЕ ХИТРОСТИ Предлагаю в начале ППЗУ отводить ме- сто для записи адресов программ, храня- щихся в ППЗУ. Запись производится в ре- жиме записи данных, начиная с адреса 0000. Это позволяет быстро находить адрес. Последние знакоместа, которые на адрес не влияют, можно использовать для определе- ния названия программы. Я, например, ис- пользую их для указания номеров программ, которые храню в порядке возрастания но- меров. В. БАТКОВСКИЙ, ученик 8-го класса (г. Киев). Если необходимо на БЗ-34 воспользовать- ся программой для МК-61, содержащей команду, отсутствующую у БЗ-34, то про- ще всего вместо этой команды в программе поставить С/П, а потом при останове вы- полнить эту команду «вручную» и, получив соответствующий результат в виде числа, проделать следующие операции: нажать клавиши FO, набрать полученное в ре- зультате число, нажать клавиши Последнее необходимо, если за командой, замененной на С/П, в программе следует команда в виде цифры. После этого запу- стить программу клавишей С/П. А. МЕРЖЕЕВСКИЙ (г. Житомир). ПРЯМОУГОЛЬНИКИ И ТРАПЕЦИИ Продолжаем публика- цию программ, присылае- мых в редакцию, под деви- зом «Единство формы и со- держания» (см. №№ 6 и 10 за 1988 г.). Программы, написанные В. Чибисовым (г. Смоленск), предназначены для инте- грирования функции на от- резке методом прямоуголь- ников и методом трапеций (см. обзор методов инте- грирования в № 6 за 1987 г., стр. 136—139). Ждем от читателей новых программ. СКАЗ ПРО ТО, АВТОМОБИЛИ В некотором царстве, в не- котором государстве жили- были старик со старухой, и было у них три сына. Как сыновья подросли, отправил их старик по белу свету в разные стороны счастья ис- кать. Старшему сыну дал в дорогу овцу, среднему — ко- та, а младшему, Трифону, ничего не досталось. Думал, думал старик да и говорит: — А возьми-ка ты, Три- фон, в дорогу две дискетки, кои в сундуке хранятся: од- на со стандартным про- граммным обеспечением, а другая — чистая, для души. Взял Трифон дискетки да и отправился в путь-дорогу. Близко ли, далеко, видит — перед ним стоит отель на курьих ножках, а перед оте- лем человек сидит, горьки- ми слезами заливается. Спрашивает Трифон: — О чем печалишься, мил человек? — Да как мне не печа- литься, коли задал мне царь задачу непосильную? Вй- 1 ? ’ИНТЕГРИРОВАНИЕ МЕТОДОМ ПРЯМОУГОЛЬНИКОВ' 2 DEF F N Y (X ) =S IN (X )+С О S ( X ) -2 5 6*L ОG ( X )+А ВS ( X / 5 ) 3 INPUT 'А'В/ЧИСЛО РАЗБИЕНИЙ ИНТЕРВАЛА?’;А,В,N 4 D=(B-A)/N : SUMMA=O 5 FOR X=A+D TO В STEP D 60 SUMMA=SUMMA+FNУ(X)*D 7 0 NEXT XI---~~Z 8 0 ?’S=’ S s'" 1 PRINT’ИНТЕГРИРОВАНИЕ МЕТОДОМ ТРАПЕЦИЙ* 2 DEF F N Y (X ) «С OS ( X )-2 666*L 0 G ( X ) +A BS ( X I 5 1 ) / 3 INPUT ’А, В, ЧИСЛО РАЗБИЕНИЙ ?';A,B,N/ 4 D«(В-A)/N:REM И НИМ ИАЛИ ЗАМ ИЯ ЦИКЛА:5 = 0/ 5 S=0:Y1»FNY(А):FOR Х=А+О ТО В STEP D У 6 Y2=FNY(X): S = S + D*(Y1+Y2)/2: Y1»Y2 7 NEXT X:REM СЛЕДУЮЩЕЕ ЗНАЧЕНИЕ 8 PRINT ’ИНТЕГРАЛ ОТ А ДО B’ = S КАК ТРИФОН РАССТАВЛЯЛ дишь перед отелем стоянку для автомобилей? Да ви- дишь ли, как стоят автомо- били? Каждый вечер после заседания в царских палатах царевы гости будут подъез- жать на автомобилях к оте- лю. Остановятся на ночлег, утром позавтракают да и опять отъедут в царские па- латы. Царь дал приказ: каждый автомобиль может занимать любое свободное место на стоянке. А стоянка- то не размечена. Занимать ее можно только в один ряд, а которым гостям не хватит места — тем проез- жать далее, к другим оте- лям: автомобилей-то много Для лучшего понимания тонкостей работы стека я пред- лагаю программу решения квадратного уравнения: АХ24 + ВХ + С = 0. При решении этого уравнения не использу- ется ни одного регистра памяти, а программа получается короче, чем в справочных пособиях А. Н. Цветкова и В. П. Дьяконова. 00. : 01.— 02.FBx 03.: 04.Bf 05./—/ 06.2 07.: 08.Fx2 O9.Bf 10.FO ll.FBx 12.— ГЗУ 14.-f- 15.— 16.FBx 17.С/П. Теперь по этой программе надо составить таблицу движения информации в стеке, которая наглядно покажет, как он работает. А. РАССКАЗОВ (п/о Троицкое, Приморский край). больше, чем мест на нашей стоянке. Длина стоянки — 8 саженей, ширина каждого автомобиля — одна сажень. В каждом автомобиле ров- ным счетом по три гостя. Дал мне царь 4550 руб. на год, стало быть, на 365 дней, чтобы каждый гость полу- чил утром завтрак ценою 70 копеек. Стал я думу ду- мать: каждый день на сто- янке останавливается раз- ное число автомобилей, но самое меньшее — 4, а самое большее — 8. Стало быть, в среднем—6 автомобилей. За год получится 6X365 = 2190. Ежели завтрак стоит 0,7 руб., да в каждом авто- мобиле по три гостя, то от царя я должен бы получить 4599 руб. А он мне дал 4550. И откуда же я возьму • УЗЕЛКИ НА ПАМЯТЬ
1024 совета Судя по откликам, чита- телям пришлась по душе рубрика <1024 совета». Не- ко(торые даже подсчитали, что с учетом периодичности выхода первых «байтов» по- следний, 1024-й совет будет опубликован не раньше 2048 года. Но, дорогие чи- татели, во-первых, рубрика питается вашими письмами, так что частота публикации «байтов» зависит от вас; во- вторых, в числе 1024 нет ни- чего магического — никому • БЮРО СПРАВОК В Московском энергетическом институте создана про- грамма, облегчающая проведение подписки в институтах, учреждениях и организациях, вынужденных ежегодно выпи- сывать большое количество советских и зарубежных перио- дических изданий. Возможности данной программы позволяют найти любое издание в электронном каталоге по его индексу, при необ- ходимости исправить в каталоге цену или название газеты или журнала, дополнить каталог новыми изданиями, внести список адресов и адресатов, отпечатать подписные кар- точки, полностью заполненные, соответствующие стандар- ту «Союзпечати» и подлежащие приему во всех отделениях связи. При необходимости печатается сводная ведомость по подписным изданиям. Для использования программы пригодны персональные компьютеры ЕС—1840, Правец—16, IBM PC. 105835, Москва, Е-250, ГСП, Красноказарменная, 14, НТБ МЭИ, тел. 273-21-54. ведь не приходит в голову пересчитывать товары в ма- газине <1000 мелочей». Теперь остановимся на за- мечаниях читателей по от- дельным советам из первых трех «байтов» (см. <Наука и жизнь» № 8, 1987 г., №№ 2, 6, 1988). Совет 2, где говорилось про оператор REM. Он дей- ствует по-разному в ранних и последних версиях Бейси- ка. Первоначально этот опе- ратор мог быть только един- ственным или последним оператором на строке, так как все символы, стоящие за словом REM (включая и разделители операторов), принимались за коммента- рии. В последних версиях Бейсика оператор REM та- кой особенности не имеет; здесь для временного исклю- чения строки или даже це- лого блока программы мож- но рекомендовать оператор безусловного перехода (С. Петрухин, г. Курск). Совет 4, рекомендовавший способы задерживать счет по программе: либо задавая строго отмеренную паузу пустым циклом, либо опи- раясь на показания таймера, либо запрашивая разреше- ния человека на продолже- ние работы после нажатия им определенной клавиши. Как справедливо отметил И. Финк из Ставрополья, первый способ задержки не позволяет распараллелить работу человека и компью- тера. Последним же спосо- бом это удается: человек, к примеру, просматривает ин- формацию на дисплее, а ма- шина в это время ищет но- вую в архивной памяти; най- дя ее, перегружает в опера- тивную, а после сигнала че- ловека — на дисплей. Советы 6 и 7 с их настой- чивой пропагандой струк- турного программирования вызвали эмоциональные от- клики читателей, помнящих времена, когда структурное программирование на «нест- руктурных» языках внедря- лось, как картошка на Ру- си. Обращаем внимание чи- тателей на характерную особенность рубрики <1024 совета»: в ней нигде нет слова <нужно», но везде сто- ит слово «можно». Мы не на- вязываем наши советы, ес- ли они не годятся для ка- ких-то вычислительных си- 49 рублей? Не могу выпол- нить царские условия, отто- го и печалюсь. А коли не выполню — не сносить мне головушки кудрявой. Тут Трифон и говорит: — Не кручинься раньше времени, мил человек, ло- жись-ка спать. Утро вечера мудренее. А когда солнце встало из- за леса, спрашивает Трифон: — Мил человек, есть ли в твоем отеле персональный компьютер и транслятор с языка Паскаль? — Да нешто мы не лю- ди? — обиделся мил чело- век.— Где ж это видано, чтобы в отелях компьютеры не водились? Обрадовался Трифон: — Дай-ка я смоделирую процесс размещения автомо- А ь билей. Коли первый автомо- биль случайно занял место на стоянке, то он разделил всю стоянку (А, В) на две части (A, Y) и (Y+ 1, В). Эти части не зависят друг от друга. Стало быть, каж- дую такую часть можно снова считать стоянкой, но меньшей длины. В каждой части можно снова по- пытаться разместить авто- мобиль. Белы светушки,— хлопнул себя по лбу Три- фон,— да это же типичная рекурсия! — И то правда,— поддак- нул мил человек.— Да вот незатея: коим же образом можно получать случайные значения Y? - А о том сказано в пи- сании «Наука и жизнь» № 10, 1986 г. И про рекур- сию там же поведано, но в другом номере — № 2, 1988 г., в байке о ханойской Башне... Есть такой ге- нератор RAND, который ге- нерирует случайные числа с равномерным распределени- ем в интервале (0,1). С его помощью получим значение Y в интервале (А, В), смот- ри: Y — А + (В — А — 1) X XRAND, где 1 — ширина ав- томобиля. Если тебе, мил человек, в моих рассужде- ниях все понятно, то опусти очи свои на программу, ко- торая составлена на языке Паскаль. — Верно ли я уразумел,— говорит мил человек, обоз- ревши программу,— что функция AUTO моделирует случайное размещение авто- мобилей в течение одного вечера? Так что для подсче- та всех автомобилей за год нужно повторить моделиро- вание 365 раз? — Верно, мил человек, верно. — Батюшки мои! — уди- вился мил человек.— Это что же мы видим на экране дисплея после выполнения программы?! Автомобилей- то за год меньше, чем я счи- тал в среднем. Стало быть, царь дал мне лишку денег. Вот радость какая! Однако, братец, меня и сомнения бе-
стем, если кто-либо решает затронутые проблемы более эффективными или более привычными средствами. Совет 8, где говорилось про то, как расположение подпрограмм влияет на ско- рость их вызова. Влияние это различно на разных ма- шинах (К. Сумнин, г. Ким- ры). Не вникая в тонкости работы транслятора, про- граммист может сам опыт- ным путем определить, из какого места программы подпрограмма быстрее вы- зывается. Замер скоростных характеристик программ на машинах с разделением времени работы процессора нужно проводить с осторож- ностью: время прогонки про- граммы на такой машине за- висит от загрузки парал- лельных дисплеев. Совет 10, где прозвучала фраза: плагиат в програм- мировании пока не пресле- дуется. Но тем не менее, замечает ростовчанин Ю. Синицын, ссылка на авто- ра идеи или разработки ни- когда не будет лишней. Вот свежий пример, продолжа- ет он. В 1988 г. издатель- ство «Наука» выпустило книгу В. М. Брябрина «Про- граммное обеспечение персо- нальных ЭВМ». Книга очень интересная и полезная. В ней рассказано об операци- онных системах. Но у не- искушенного читателя по прочтении книги создается ложное мнение, будто такие популярные операционные системы, как СР/М, МС — DOS и UNIX были созданы в Вычислительном центре АН СССР, так что остается Тем, кого заинтересовала проблема структурирования ал- горитмов и программ (см. заметки в журнале «Наука и жизнь»: М. Вахтеров, «Два простых правила», № 2, 1987 г. и В. Очков, «Структурные диаграммы», № 4, 1988 г.), ре- комендуем литературу: Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. Пер. с англ., 2-е изд., М. Мир, 1985. Вирт Н. Алгоритмы + структуры данных = программы: Пер. с англ., М. Мир, 1985. Дал У., Дейкстра Э., Хоор К. Структурное программиро- вание. Пер. с англ., М. Мир, 1975. Йордан Э. Структурное проектирование и конструирова- ние программ. Пер. с англ., М. Мир, 1979. Птицын В. Отличия чисто внешние. — «Техника—молоде- жи» № 3, 1988, стр. 62. Очков В. Ф., Пухначев Ю. В. 24 этюда на Бейсике.— М. Финансы и статистика, 1988. Добавляя к сказанному в заметках М. Вахтерова и В. Оч- ков а, можно отметить, что альтернатива — это вспомога- тельная структурная управляющая конструкция. Ведь пол- ная альтернатива эквивалентна двум условным операторам (двум неполным альтернативам), которые, в свою очередь, несложно заменить на циклы «пока», у которых тело вы- полняется либо раз, либо совсем ни разу. Следовательно, алгоритм любой сложности можно реализовать, используя только две конструкции: следование и повторение. только удивляться: поче- му в основу служебных слов легли английские термины? Мы просим читателей, присылающих советы, отме- чать их авторство. Многие советы начинающим про- граммистам подобны анек- дотам в том смысле, что их знают все, но автор тем не менее неизвестен. В таком случае выручит пометка «Народное средство, подме- ченное имярек». Совет 12, где упомина- лось печатающее устройст- во. Если оно имеет буфер- ную память, то «размазыва- ние» операторов печати по тексту программы может существенно ускорить ее прогонку за счет параллель- ной работы центрального процессора и процессора (*...............................-............. ! МОДЕЛИРОВАНИЕ МЕСТОПОЛОЖЕНИЯ АВТОМОБИЛЕЙ ! ---------------------------------------------*) PROGRAM MODELCINPUT,OUTPUТ); CONST №365 ; (★ ЧИСЛО ДНЕЙ В ГОДУ ★ ) RUBL»0.7; (★ СТОИМОСТЬ ЗАВТРАКА ★ ) G0ST=3; (★ ЧИСЛО ГОСТЕЙ В АВТОМ-ЛЕ*) VAR X:REAL; (* ПЕРЕМЕННАЯ ДЛЯ "RAND" *) A,B:REAL; (★ РАЗМЕРЫ СТОЯНКИ *) SUM.-REAL; (★ КО-ВО АВТОМ-ЛЕй ЗА ГОД ★) DENGA:REAL; (★ СУММА ДАНЕГ *) I,KOL:INTEGER; (★ РАБОЧИЕ ПЕРЕМЕННЫЕ *) FUNCTION RANDCVAR X : R Е A L ) : R Е A L ; ЕХ ТЕ R N A L; (* ФУНКЦИЯ "AUTO" -------------------------------*) FUNCTION AU ТО (А,В: REAL) : INTEGER; VAR Y:REAL; BEGIN IF (B-AX1 THEN KOL: = O ELSE BEGIN Y:=A+CB-A-1)*RAND(X); KOL:=AU TO ( A z Y ) + AU TO ( Y + 1,B)+1. END; AU TO := KO'L END; (★ ОСНОВНАЯ ПРОГРАММА ...............................*) BEGIN X;s1; SUM: = O; WRITELNC'ВВЕДИТЕ ЗНАЧЕНИЯ AZB :'); READLN(A,B); FOR I:=1 TO N DO SUM:=SUM + AU TO(A,B); WRITELN('ЧИСЛО АВТОМОБИЛЕЙ s ' z SUM : 10 : 2 ) ; DENGA:= SUM*RUBL*GOST; WRITE('КОЛИЧЕСТВО ДЕНЕГ =', DENG A:10:2) END. рут. Что, ежели повторить моделирование заново, ну, скажем, с другим генерато- ром случайных чисел, но то- же с равномерным распреде- лением в интервале (0,1)? Получу ли я тогда лишек денег? — Непременно получишь, но, может, немного меньше, а может, и больше. И пригласил на радостях мил человек Трифона к завтраку царскому, а у са- мого глаза разгорелися и мысли побежали в разные стороны. — А что, братец,— заго- ворил мил человек,— что ежели в каждом автомобиле будут сидеть не три челове- ка, а случайно от 1 до 5, будет ли у меня еще лишек денег? Да будет ли он, еже- ли ширина автомобиля бу- дет тоже случайна от 0,5 до 1,5 сажени? Задумался Трифон... А что скажет дорогой чи- татель? Л. БЕРЕЗКИНА (г. Зеленоград).
принтера (В. Пернатых, г. Мелитополь). При этом ЭВМ «выстреливает» в АЦПУ оче- редную порцию информации и считает дальше, не дожи- даясь, пока неповоротливый принтер ее распечатает. Бы- вает целесообразно ставить оператор, выводящий на дисплей ту или иную пере- менную сразу за оператора- ми. ее вычисляющими. Совет 18, касавшийся «за- секречивания» файлов. А. Подземский из Москвы для этой цели использует про- белы в конце имени файла. Они не видны, но тем не ме- нее меняют идентификатор. При прямом запрете на ис- пользование кириллицы рус- ские буквы в имя файла можно вставить, набрав их на маленьком регистре ла- тинским шрифтом (машины ДВК, ДЗ-28 и др). Следует однако помнить, что некото- рые дисплеи и принтеры по-разному печатают латин- ские и русские буквы А, С, Кит. п. Следует также заметить, что опытный про- граммист может «вскрыть» секретный файл «отмыч- кой», распечатав коды сим- волов имени (см. «Наука и жизнь» № 12, 1986 г., стр. 95 — 96). Совет 19, где предлага- лось использовать звуковые сигналы, обогащающие ди- алог человека и ЭВМ. В. Глухарев из Душанбе раз- работал целую систему та- ких сигналов. Короткие му- зыкальные фразы, различа- ющиеся мелодией, темпом, высотой, обращают внима- ние пользователя на допу- щенные ошибки ввода, на Вычисление целых степеней числа 2 с помощью микро- калькуляторов связано с большими сложностями, причина которых — низкая точность результата функции Fxy. Если таким способом возводить двойку в целую степень, мы не только не получим целого числа, как должно быть на са- мом деле, но и из-за большой погрешности вычислений не найдем точного ответа с помощью простой формулы Т = [t + 0,5]. В этой и следующей формулах знаком [...] обозначена целая часть числа, Т — истинный результат, t — значение, вычисленное микрокалькулятором. Универ- сальный способ округления (до целых чисел) степеней двойки 2К, где 1<к<23, реализуется с помощью формулы Г = [ ( д/t + С)2], где С = л 10~4 — поправочный коэффи- циент. Программная реализация формулы: FxyF У FIXN + Fx2 К[х]; в регистры перед этим необходимо занести: 2—РХ К — PY, С — PN. А. ЮМАШИН (г. Москва). ЕЩЕ ОДНА ПРОГРАММА В № 10 за 1987 г. была опубликована программа моск- вича В. Жука для определения выдержки. Эту и без того короткую программу, содержащую всего 15 шагов, мне уда- лось сократить до 11 шагов: ОО.ХПО 01.1 02. + 03." 04.1 05.+ 06. : 07.Fx2 08.Х 09.С/П 10.БП 11.00. Для определения выдержки вводим выдержку Т1, полу- ченную при кратности увеличения К1, при которой был по- лучен хороший отпечаток и кратность увеличения, при ко- торой должен быть сделан новый отпечаток. После подачи команды С/П (в самый первый раз В/О С/П) через 4 се- кунды на индикаторе — новое значение выдержки. И. ЧУПРОВ (г. Гродно). необходимость включения периферии, на проход раз- личных участков програм- мы и прочее. Ждем от читателей новых советов, а также замечаний и дополнений по уже опуб- ликованным. НОВЫЕ КНИГИ Чаянов А. В. Краткий курс коопера- ции. Томское книжное издательство, 1988. 72 с. 50 к. 5000 экз. «Само слово «кооперация» стало теперь одним из самых ходовых слов в нашем обиходе... В любом газетном листе вы встретите его десятки раз, им пестрят страницы книг, его произносят на соб- раниях, конференциях и съездах...» Эти слова были сказаны более полувека тому назад известным экономистом 20-х годов Александром Васильевичем Чаяновым. Работа посвящена истории сельской коо- перации и проблемам ее развития в СССР. Среди книг, которые В. И. Ленин затре- бовал во время работы над статьей «О ко- операции», была и работа А. В. Чаянова. Историки спорят. 13 бесед. Под общей редакцией В. С. Лельчука. М., Политиз- дат, 1988. 510 с. 1 р. 50 к. 100 000 экз. Книга построена в форме полемических бесед, которые ведут между собой круп- ные специалисты по истории XX века. В центре внимания новые подходы к проблемам Великого Октября, граж- данской войны, нэпа, Великой Отечест- венной войны, культурного строительст- ва, характеристика политической системы 20 —30-х годов и другие вопросы. Малинова Р„ Малина Я. Прыжок в прошлое. Эсперимент раскрывает тай- ны древних эпох. Перевод с чешского. Комментарий и послесловие Е. Н. Чер- ныха. М. Мысль, 1988. 271 с., ил. 5 р. 50 к 50 000 экз. Археологические находки донесли до нас отзвуки далекого прошлого. По ор- наменту на сосуде или форме украшений ученые могут вычислить время, ког- да жил человек, цзготовивший данный предмет. А ведь еще в XVII веке немец- кому ученому Андреасу Альберту Роде пришлось самому сделать и испытать каменный топор, чтобы доказать, что кремневые орудия были созданы челове- ком, а не принесены на Землю грозовыми тучами, как полагали некоторые. Только эксперимент помог реконструи- ровать историю. В некоторых странах воссозданы поселения бронзового, камен- ного, железного веков. Они стали музея- ми под открытым небом. Книга об экспе- риментальной археологии иллюстрирова- на картами и схемами. Транковский С. Д. Книга о лазерах. М. Детская литература, 1988. 112 с., ил. 1 р. 50 к. 100 000 экз. На заре развития лазерной техники французский физик Луи де Бройль ска- зал: «Лазеру уготовано большое будущее. Трудно предугадать, где и как он будет применяться, но я думаю, что лазер — это целая техническая эпоха». Время по- казало, что ученый был прав. Лазер мо- жет сделать сложную хирургическую операцию и поразить вражеский самолет, мгновенно просверлить отверстие в ал- мазе и раскроить тончайшую шелковую ткань. Книга знакомит с принципами дейст- вия лазеров, с видами этих приборов, с применением лазерной техники в самых различных областях жизни.