Матчасть диванного танкиста
Страница 5 из 6
Страница 5 из 6 • 1, 2, 3, 4, 5, 6
Re: Матчасть диванного танкиста
2/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ.
В одном из прошлых номеров нашего журнала (6/89) было предложено составить какой-либо выпуск раздела "Человек и компьютер" целиком из материалов, имеющих отношение к химии, И не без основания: подобные материалы нередки в почте раздела.
Читатели, откликнувшиеся на этот призыв, поняли его шире, чем предполагалось. Обращаясь к темам сугубо химическим, они в итоге отразили в своих письмах весь спектр тематики нашего раздела: и применение компьютеров в обучении (о своем опыте увлекательно рассказывает Г.Аверкиева из Горького), и выбор для решения конкретной проблемы наиболее эффективных вычислительных средств (одну и ту же задачу В.Васильев из Орла решает на компьютере, а В.Звычайный из Днепропетровска на микрокалькуляторе), и знакомство с новыми версиями распространенных языков программирования (ряд присланных программ составлены или переписаны на Квик-Бейсике). Д.Сукнов из Кемерова просит рассказать о блоках расширения памяти для микрокалькулятора МК-52: ведь на них рассчитывают и химики, желающие создавать для себя удобные библиотеки стандартных программ. А школьник М.Рахаев из Москвы предложил присоединить к "химической" подборке программу для раскладывания пасьянса на компьютере: мол, пасьянсами увлекались многие великие химики; сам творец периодической системы рассматривал ее как пасьянс из элементов...
Анализ строения химического вещества обычно начинают с нахождения его простейшей эмпирической формулы - например: СxНyОz. Для этого по данным анализа вычисляют массовые доли элементов в веществе, а затем определяют значения индексов (x, y и т.д.) в эмпирической формуле. Эту работу можно и нужно поручить компьютеру - см. программу. В нее заложен алгоритм Евклида поиска наибольшего общего делителя (НОД) нескольких чисел (см. цикл с параметром на строках 90-160): сначала ЭВМ находит НОД первых двух чисел, затем НОД полученного числа и третьего из данных чисел и т.д. до последнего числа. Так как массовые доли элементов всегда определяются с некоторой погрешностью, то и НОД чисел рассчитывается за десять попыток с разной точностью (см. цикл с параметром на строках 70-190).
Пример для тестирования программы: Некоторая одноосновная кислота имеет следующий состав: С (углерод) - 48.6%, Н (водород) - 8.1% и О (кислород) - 43.3% - Запускаем программу, вводим числа: 3 (число элементов), 48.6, 12.01 (второе число - атомная масса углерода), 8.1, 1.008 (водород), 43.3, 16 (кислород).
Ответ: C3Н602 - пропиновая кислота; погрешность вычисления индексов не более 8%.
В.ВАСИЛЬЕВ (г.Орел).
И вновь среди наших читателей нашлись такие, которые полагают, что для решения задачи в простейших случаях не нужен компьютер - с ней вполне справится микрокалькулятор. В.Звычайпый из Днепропетровска предлагает программу для МК-61, способную определить формулу органического вещества как по процентному содержанию углерода и водорода, так и по количеству продуктов сгорания, то есть углекислого газа и воды. Переключателем Р-Г задается желательный режим расчета: Р - формула отыскивается по продуктам сгорания, Г - по процентному содержанию углерода и водорода.
00. С/П 01. ХП1 02. ХП2 03. ХП4 04. ХПА 05. 5 06. Fsin 07. Fx>=0 08. 19 09. ПХ1 10. ПХД 11. * 12. ХП1 13. ПХ2 14. ПХД 15. * 16. ХП2 17. БП 18. 31 19. ПХ1 20. ПХ8 21. * 22. ПХА 23. / 24. ХП1 25. ПХ2 26. ПХ9 27. * 28. ПХА 29. / 30. ХП2 31. ПХ1 32. + 33. /-/ 34. 1 35. + 36. ХП3 37. ПХД 38. - 39. Fx>=0 40. 42 41. 1 42. ХП0 43. FL0 44. 50 45. ПХ3 46. ПХВ 47. / 48. /-/ 49. ХП3 50. ПХ1 51. ПХС 52. / 53. /-/ 54. ХП1 55. ПХ2 56. /-/ 57. ХП2 58. ПХ4 59. Fx!=0 60. 64 61. F1/x 62. БП 63. 71 64. ПХ1 65. ПХ2 66. Кmax 67. FL0 68. 72 69. ПХ3 70. Кmax 71. ХП5 72. ПХ1 73. ПХ5 74. / 75. ХП1 76. ПХ2 77. ПХ5 78. / 79. ХП2 80. ПХ3 81. ПХ5 82. / 83. ХП3 84. КБПЕ.
После ввода программы набрать на клавишах 16 ХПВ 12 ХПС 0.01 ХПД 0.119 ХП9 0.2729 ХП8. Далее для режима Р: В/0 С/П; после останова набрать массу углекислого газа ПП массу воды ПП молярную массу ПП массу навески С/П. Для режима Г: В/0 С/П; после останова набрать процентное содержание углерода ПП процентное содержание водорода ПП молярную массу С/П. Если молярная масса неизвестна, ввести вместо нее нуль - в этом случае результаты получаются с отрицательным знаком. Выводятся они так: ПХ1 - количество атомов углерода в молекуле, ПХ2 - количество атомов водорода, ПХ3 - количество атомов кислорода, если он есть. Время счета: 15-30 секунд.
ПЕРЕСЧЕТ КОНЦЕНТРАЦИЙ
В аналитической практике часто бывает необходимо пересчитать значение концентрации раствора из одного вида в другой. Программа позволяет автоматизировать такую работу, исключить ошибки пересчета. Программа оперирует с шестью видами выражения концентраций, но ее несложно доработать так, чтобы были учтены и другие виды: мольная доля, массовая доля и др.
Квик-версия Бейсика, на которой написана программа, не требует обязательной нумерации строк, но использование традиционных меток-номеров строк позволило в нашем случае эффективно реализовать алгоритм перевода видов концентраций.
Составление подобных программ, помимо их непосредственной пользы,- хорошее практическое занятие для студентов-химиков, изучающих программирование.
В.ЖУРАВЛЕВ (г.Томск)
БУФЕРНОСТЬ И КОМПЬЮТЕР
Одна из самых сложных и интересных тем при изучении теории растворов электролитов - это буферность, обусловленная присутствием в растворе анионов слабых кислот или катионов слабых оснований. Буферность препятствует резкому изменению реакции среды под внешними воздействиями. Буферностью, например, обладает природная вода, что в какой-то мере защищает наши водоемы при сбросе в них кислых и щелочных сточных вод, при попадании в них кислотных дождей. Буферность есть у нашей крови. Это одна из причин, почему съеденный лимон не вызывает гибельного изменения реакции крови в кислую сторону.
Для характеристики реакции растворов (щелочность, кислотность) применяют водородный показатель рН - отрицательный десятичный логарифм от концентрации (вернее, активности) ионов водорода; рН в нейтральных водных растворах близок к 7, меньше семи в кислых и больше семи в щелочных средах. Программа, помещенная здесь, строит кривую титрования водного раствора, содержащего анионы слабой угольной кислоты (Н2СО3). При этом на экран дисплея выдается либо таблица (см. строки 34- 37), либо график (см. строки 38 и 39) изменения значения рН раствора при добавлении в него соляной кислоты (имитация сброса в водоем кислых сточных вод).
В программе на Квик-Бейсике методом половинного деления (см. 4/88 ) решается уравнение электронейтральности водного раствора, записанное функцией пользователя на строке 9. Компьютер находит (см. цикл "до" на строках 24-26) такое значение рН, при котором сумма катионов (натрий, водород) равна сумме анионов (гидроксил, хлор, гидрокарбонат). Еще один цикл "до" (см. строки 21-31) реализует метод последовательных приближений для определения ионной силы раствора, связывающей концентрационные и термодинамические параметры раствора, что позволяет рассчитывать концентрацию по активности иона через коэффициенты активности (см. строку 22).
В.ПЕТУХОВ (г.Новомосковск Тульской обл.).
ОТ РЕДАКЦИИ. В программе В.Петухова применен простейший способ построения графика на экране ЭВМ с помощью табулятора - см. строку 39. Тем, у кого есть ЭВМ с хорошей графикой, с цветом и музыкой, предлагаем доработать программу. Можно средствами компьютерной мультипликации и шумовыми эффектами имитировать падение капель кислоты в колбу с буферным раствором, отображать изменение окраски индикаторов и движение стрелки рН-метра.
1024 СОВЕТА
(байт десятый, химический)
Программа линейной аппроксимации методом наименьших квадратов - одна из самых популярных программ у химиков, прибегающих к помощи компьютера или микрокалькулятора. По ней строятся различные калибровочные кривые, обрабатываются опытные данные и т.д. Вот почему для иллюстрации очередного байта советов начинающему программисту взята программа "Метод наименьших квадратов, по которой строится линейная зависимость (см. строки 4 и 5) коэффициента, стоящего в формуле определения факторов активности ионов (см. предыдущую заметку) от температуры раствора.
Автор первых пяти советов - москвич Я.Гринберг, а трех последних - его земляк В.Птицын.
Программу нелинейной аппроксимации можно увидеть па цветной вкладке 4/88.
73. Иногда удобнее вводить исходные данные не запросом через клавиатуру, а редактированием списка данных (строки 4 и 5). Преимущество такого диалога с машиной особенно ощутимо при отладке программы и при работе с частично изменяющимися данными.
74. Научи машину самостоятельно, без помощи человека, пересчитывать элементы в списке данных и фиксировать их конец (см. строку 6). Это облегчит внесение изменении в список перед новым расчетом.
75. Отмечай комментарием содержание констант в списке данных (см. строку 5) и выводи их на дисплей при прогонке программы (см второй оператор строки 9) для дополнительного контроля.
76. Если тебе все равно, какие числа ставить в программу, то поставь такие, какие характеризовали бы какой-то параметр транслятора - см. конец строки 4, где записан диапазон изменения значений вещественных переменных двойной точности на Квик-Бейсике.
77. Выноси комментарии за рамки циклов (см. строку 10). Это ускорит прогонку программы, т.к. машине нужно время не только на выполнение оператора, но и на то, чтобы понять, что данный оператор выполнят", не следует.
78. Потихонечку отучайся от использования суффиксов ($, %, # и !) для обозначения типов переменных. "Фамилию" переменной (т.е. ее тип) лучше задавать "паскалевским" манером, объявляя в заголовке программы (см. строку 2).
79. Не поленись расшифровать в программе смысл новых конструкций языка (см. строку 7), подскажи им замену на старых версиях Бейсика.
80. "Ученый должен быть достаточно ленив,- объяснял мне Зубр.- На этот счет у англичан есть прекрасное правило: не стоит делать того, что все равно сделают немцы" (Д.Гранин "Зубр"). Не стоит делать того, что все равно сделает транслятор: обрати внимание на знак вопроса вместо слова PRINT на строках 1, 6, 9, 13, 14 и 15, на отсутствие замыкающих кавычек в конце строк 1, 6, 13, 15 и точки с запятой в операторе печати на строке 14.
ИСПОВЕДЬ ПРОГРАММИСТА-НЕУДАЧНИКА
Химик я. Точнее, учитель химии. Сначала учила детей в школе этой науке, теперь в вузе учу студентов, как преподавать химию детям.
Казалось мне всегда, что дело мое поставлено и идет успешно. Но пришли другие времена, и началась ликвидация компьютерной неграмотности. Я попадаю на курсы повышения квалификации по вычислительной технике. С трудом осваиваю новую грамоту. Боюсь даже слово "осваиваю" употреблять. Многое забыто, еще больше совсем нового и, что самое страшное, непонятного. Ощущаю, однако: нужно все это. Завидую математикам - какие у них теперь возможности!
А как же в химии? Там тоже многое можно сделать. Но детям в школе что дать? Чтобы было понятно, доступно, интересно. Чтобы сами могли набирать, а потом и сочинять свои программы, использовать их. И обязательно на химическом материале.
Ломаю голову. Трудностей полно. То букв греческого алфавита нет у машины. То нет подстрочных индексов, а у химиков в формулах без этого нельзя. Правда, можно прибегнуть к шифровке химических формул и уравнений на языке компьютера, по это уж совсем усложнит освоение и без того трудного для детей химического языка.
И вдруг - озарение! Нужно сделать обучающие программы. Сначала изложить обучающий текст, а потом на его основе предложить произвести вычисления. Все это - через компьютер. Например, об открытии Д.И.Менделеевым правила вычисления атомной массы элемента как среднего арифметического атомных масс элементов - соседей по таблице. И название программе можно дать интригующее, в духе принятых в компьютерных языках сокращений- SARI (от среднего арифметического).
Сочиняю несколько таких программ: OMEGA (нахождение массовой доли "омега"), AVOG (расчеты с использованием постоянной Авогадро), MAS (вычисления относительных и абсолютных масс атомов) и другие.
Иду в кабинет информатики, оборудованный для учителей. Преподаватель-методист, ощущая за собой явное превосходство в области вычислительной техники перед робким и не очень уверенным в своих новых начинаниях химиком, говорит: уж очень длинные ваши программы, кто их набирать-то будет...
В другом месте говорят: ваши программы совсем не оформлены, нет рамок, сигнальных указателей...
В третьем - соглашаются дать студентам заняться этим на практических занятиях в терминальном классе. Получаем листинги. Приглашаем группу учеников. Они работают с программами. Кажется, дело пошло. Школьникам интересно и понятно. Правда, это испытание только для немногих. И все-таки уже удача.
Дерзаю. Предпринимаю попытку напечататься в журнале, чтобы для всех было. Но там тоже стены. В одном журнале говорят, что у них нет шрифта для машинных языков, в другом - в программах нет занимательности. И, наконец, совсем убивают: все это можно считать на обычных микрокалькуляторах.
Догадываюсь, что все мои старания ни к чему не привели. Это провал.
Узнаю из прессы: на конкурсе юные программисты сочинили такие программы, что мне их трудно даже понять. Терзает, однако, мысль: ведь таких школьников единицы. Они талантливы, они рождены для компьютеров. Но их же мало. А как приобщиться к новой технике тем, кому не дано самим творить? Тут надо что-то попроще. Вот и подошли бы мои программы. Тем более они на химическом материале, а не на математическом. Связь наук в какой-то мере. Но раз нет, значит нет.
Все же освободиться не могу от навязчивой мысли о пользе компьютера в обучении химии.
И вдруг - новое озарение. А что если сочинить программы "проверь себя"? Ведь делают же электрифицированные стенды для этого, а здесь с дисплея все можно узнать.
Снова напряжение мысли. Программы готовы.
Ну уж, если и про них скажут, что не подходят для работы... Буду смеяться.
Г.АВЕРКИЕВА (г.Горький)
ОПТИМИЗАЦИЯ В ХРОМАТОГРАФИИ
Предлагаемая программа для микрокалькуляторов МК-52 и МК-61 помогает оптимизировать условия разделения трех веществ при использовании метода тонкослойной хроматографии. Используется эмпирическое уравнение Сочевинского, описывающее зависимость подвижности Rф пятна индивидуального соединения от мольной доли полярного компонента в бинарной смеси Xм/Rм=A+B lgXм, где Rм=lg(1/Rф). Предварительно для каждого исследуемого соединения необходимо снять зависимость Rф от Xм по 5-7 точкам и, обработав линеаризованные результаты по методу наименьших квадратов, получить индивидуальные значения коэффициентов А и В, а также коэффициент корреляции. В случае, если он лежит в пределах от 0.8 до 1, можно смело считать, что уравнение для данного соединения в данной элюирующей смеси справедливо.
Программа позволяет оптимизировать разделение трех веществ. В качестве исходных вводятся индивидуальные значения коэффициентов А и В шесть ячеек памяти: для первого вещества - в PC и РД соответственно, для второго - в Р9 и РА, для третьего - в Р6 и Р7. По этим данным рассчитываются значения Rф для данной концентрации и вычисляются разности Rф. Минимальное значение Кф запоминается и происходит переход к новой концентрации полярного компонента. Значение максимального из минимальных Rф не запоминается, в регистр заносится концентрация, при которой оно имеет место. Текст программы:
00. ХПЕ 01. 1 02. 4 03. ХП3 04. 3 05. ХП0 06. ХП1 07. КПХ3 08. ПХЕ 09. * 10. КПХ3 11. + 12. F10X 13. 1 14. + 15.F1/x 16. КХП3 17. FL0 18. 07 19. ПХВ 20. ПХ8 21. ПП 22. 49 23. ПХВ 24. ПХ5 25. ПП 26. 49 27. ПХ8 28. ПХ5 29. ПП 30. 49 31. ПХ1 32. С/П 33. ПХ2 34. - 35. Fx>=0 36. 41 37. ПХ1 38. ХП2 39. ПХЕ 40. ХП4 41. Сх 42. 2 43. 0 44. F1/x 45. ПХЕ 46. + 47. БП 48. 00 49. - 50. К[х] 51. B^ 52. ПХ1 53. - 54. Fx<0 55. 58 56. x-y 57. ХП1 58. В/0.
Назначение регистров: Р0 - управление циклом, Р3 - управление записью, РB - текущая концентрация, Р4 - значение концентрации при максимальном min Rф, Р1 - min Rф, Р2 - максимальное min RRф; Р5, Р8, РB - текущие значения Rф для третьего, второго и первого уравнений.
Инструкция: ввести программу н коэффициенты А и В в регистры согласно таблице; ввести 0 в Р2, начальную концентрацию в логарифмах мольной доли в РХ; В/0, С/П; после останова - на индикаторе значение min Rф для данной концентрации; нажав С/П, переходим к расчету для новой концентрации, на 0.05 большей.
Контрольный пример: -1.13 ХПС -0.85 ХПД -1.177 ХП9 -1.645 ХПА -1.362 ХП6, - 1.15 ХП7.
Результат:
РХ. P1. P2
-1.50. 0.115. 0.115
-1.45. 0.107. 0.115
-1.40. 0.105. 0.115
-1.35. 0.098. 0.115
Расчет одного варианта концентрации занимает около 27с.
А.ЛАЗАРЕНКО (г.Киев)
ПЕРВЫЙ ТО М... КОМОМ
Во многих городах страны появился в продаже блок БРП-3 - своеобразная библиотека, вернее, первый том библиотеки программ для микрокалькулятора "Электроника МК-52". Судя по редакционной почте, появление на рынке первого дополнительного устройства к МК-52 было воспринято в основном положительно, хотя и внесло сумятицу в умы некоторых владельцев МК-61, думающих над тем, как приспособить БРП к своим калькуляторам - иными словами, над тем, можно ли путем несложных переделок в домашних условиях превратить МК-61 в МК-52. О различиях этих калькуляторов наш журнал писал в 1/89. Ознакомившись со сказанным тогда, нетрудно понять, что нужно для такой переделки, и решить, хватит ли умения и можно ли добыть микросхемы, необходимые для работы БРП, имеющиеся в МК-52 и недостающие МК-61. Место для их установки тоже придется искать.
Оставим в стороне как восторженные, так и критические отзывы о подборе программ для блока БРП-3. Одним они очень нравятся, другим нравятся, но не все, а третьи хотели бы иметь совсем другие программы. Наверное, было бы целесообразным объявить какой-то конкурс не только на перечень программ, которые должны войти в последующие блоки БРП, но и на сами программы. Первую скрипку тут должно играть ПО "Кристалл", головная организация по этим блокам.
Но вот что отмечают почти все работающие с блоком БРП. Его создатели не полностью использовали емкость блока, и покупатель мог бы получить на несколько программ больше. На сколько - сказать трудно, но больше.
Познакомимся с некоторыми аргументами. Ленинградец П.Пантелеев считает, что включение тестовых подпрограмм в программы решения задач ##13, 22-27, 29-31 абсолютно не нужно. С помощью этих подпрограмм проверяется основная программа, а ведь ее правильность гарантируется авторитетом ПО "Кристалл" и госприемкой, о чем сделана соответствующая надпись на первом листе "Руководства по эксплуатации БРП-3". В процессе пользования этими программами приходится на место тестовых подпрограмм, относящихся к условным примерам, вписать реальные, соответствующие решаемым задачам, и было бы лучше, чтобы пользователь учился это делать, вводя тест. Назначение теста в этом случае меняется. Он нужен не для проверки программы, а для приобретения навыков работы с ней.
На все тестовые программы ушло 76 шагов, а средняя длина программы, записанной в БРП-3,- 63 шага. В.Васильев (Москва) и А.Абоимов (Всеволожск) определили, что БРП-3 состоит из двух ПЗУ, в каждое из которых можно записать программы общей длиной 4096 шагов, однако в конце одного ПЗУ осталось свободное место для записи 32 шага, а второго - 298 шагов.
По мнению А.Зверева (Москва), к выбору большинства программ для блока БРП-3 создатели подошли без должной ответственности. Об этом говорит хотя бы то, что в этом блоке, сделанном для МК-52, используется набор команд для... Б3-34. Абсолютная величина числа вычисляется с помощью команд Fx2 и Fsqr (задача #2), а не K|х|. Выделение дробной части числа - по командам ПД КИПД x-y ИПД -, а не К{х} (задача #38). Число таких примеров можно увеличить.
К сожалению, не указан источник, из которого брались программы. Сравнение с книгой Я.К.Трохименко "Программирование микрокалькуляторов "Электроника МК-61" и "Электроника МК-52"", изданной в 1987г. в Киеве (там же, где находится ПО "Кристалл"), почти всегда не в пользу БРП-3. Для решения систем из двух и трех линейных уравнений в БРП-3 используются программы длиной в 35 и 91 шаг. А в книге приведены аналогичные программы #61 и #63, длина которых 25 и 53 шага. Для обращения матриц второго и третьего порядка затрачено 42 и 98 шагов, а в книге предназначенные для этого программы #72 и #73 имеют длину 23 и 58 шагов. Таких примеров можно привести много.
Но что раздражает больше всего - это многочисленные опечатки, ошибки и неточности. Вот какой список уточнений прислал нам А.Абоимов из Всеволожска.
Задача #11, с.53. Внести исправления в тест: С12=-58, С22=3, С23=21.
Задача #12, с.56. В тестовом примере приведен результат не векторного умножения, а скалярного. Результат векторного умножения (-30, 60, -30).
Задача #13, с.58. По адресу 19 вместо С/П записано 19. Для исправления: БП 19 F ПРГ С/П F АВТ.
Задача #15, с.63. Внести исправления в тест: z=5.
Задача #17, с.68. Дополнить п.4 инструкции словами: "При вычислении функций от одного аргумента после вычисления tgz или ctgz восстановить значение b в регистре 9".
Задача #18, с.71. Последняя строка п.3 инструкции должна быть написана так: ctg-1 клавиши БП 5 4 С/П "tg-1z" С/П "ctg-1z".
Задача #19, с.74. Дополнить п.3 инструкции словами: "При вычислении функций от одного аргумента после вычисления thz или cthz восстановить исходные данные".
Задача #20, с.77. Внести исправления в тест: ch-1=1+i0.523.
Задача #27, с.100. Перед вычислением Суммы yi, очистить регистр 6.
Задача #30, с.109. Внести исправления в тест: Iтабл=0.559732.
Задача #31, с.110. В строке: ввод исходных данных добавить Сх->П6; с.111. Внести исправления в тест: I=0.69315023.
Задача #32, с.114. Внести исправления в тест: S(x)=0.65536.
Задача #34, с.118. В строке: ввод данных исправить х=21.3->ПС.
Задача #35, с.121. Исходные данные заносятся в регистры: X->П9, р->П7, а1->П6, а2->П5, а3->П4, а4->П3, а5->П2.
Задача #49, с.157. Дополнить ввод исходных данных: b4->П9.
Задача #60, с.182. В п.2 инструкции исправить: "Установить переключатель Р/ГРД/Г в положение Г", с.183. Внести исправления в текст: пример 2-S2=0.7071, пример 3-С=5.
ВЫЧИСЛЯЕМ АКТИВНОСТЬ ИОНОВ
Предлагаю программу расчета индивидуальных и средних коэффициентов активности ионов и ионных веществ соответственно. Коэффициенты широко используются в химии растворов для расчета многих параметров. Алгоритм расчета коэффициентов основывается на известных уравнениях Киланда и Дэвиса: для неорганических ионов - выражение 1, для органических ионов - выражение 2, для ионов водорода - выражение 3.
В этих уравнениях, используемых при ионных силах I, не превышающих 0.1, знаком fi обозначены ионные коэффициенты активности, zi - заряд i-й частицы.
При значениях ионной силы более, чем 0.1, для расчета коэффициентов активности используется уравнение Дэвиса (выражение 4). Оно достаточно хорошо работает до значений ионной силы 0.5. Для расчета среднего коэффициента активности ионного соединения используется выражение 5. И, наконец, ионная сила определяется концентрацией и величинами зарядов ионов и определяется выражением 6, где Сi - концентрация частицы, выраженная в молярной шкале концентраций.
Как видно из вышеприведенных формул, расчет коэффициентов активности - довольно трудоемкая работа. Особенно если учесть, что возможны различные комбинации по типу ионов. Например, органическая и неорганическая кислоты, органическая и неорганическая соли и смешанные соли, состоящие из анионов и катионов органической и неорганической природы.
Программа для МК-61, приведенная далее, позволяет по минимально необходимой информации, то есть по величинам зарядов ионных частиц, концентрации вещества, рассчитать ионные коэффициенты активности, средний коэффициент активности и ионную силу. Время расчетов менее минуты.
Привожу текст программы. 00. ХП0 01. ХП2 02. ХП4 03. ХП6 04. ХПА 05. x-y 06. ХП5 07. ХПД 08. 2 09. ХП8 10. ХПВ 11. ХПС 12. 2 13. , 14. 9 15. 7 16. ХП7 17. ХП9 18. КПХ0 19. ХП1 20. КПХ0 21. ХП3 22. ПХ2 23. ПХ4 24. + 25. ХП0 26. FBx 27. * 28. С/П 29. * 30. 2 31. / 32. ХП5 33. ПХ2 34. ПХ4 35. - 36. Fx!=0 37. 42 38. ПХ5 39. ПХ2 40. * 41. ХП5 42. 0 43. , 44. 1 45. ПХ5 46. - 47. Fx>=0 48. 70 49. 0 50. ХПВ 51. 0 52. ХП6 53. ПП 54. 77 55. ПП 56. 77 57. С/П 58. Flg 59. ПХ4 60. * 61. x-y 62. Flg 63. ПХ2 64. * 65. + 66. ПХ0 67. / 68. F10X 69. С/П 70. 1 71. ХП1 72. ХП3 73. 5 74. / 75. БП 76. 50 77. ПХ5 78. Fsqr 79. F1/x 80. КПХ6 81. + 82. F1/x 83. ПХВ 84. ПХ5 85. * 86. - 87. КПХ6 88. Fx2 89. * 90. 3 91. 1 92. Ftg 93. Fln 94. * 95. F10X 96. В/0.
Инструкция. 1. В/0 Код ПП Zkt ПП Zan, С/П. Код - это число, зависящее от типа ионного соединения. Список кодов приведен ниже, Zkt и Zan - заряды катионной и анионной составляющей вещества. 2. Сi С/П. Ci - это величина молярной концентрации вещества. После 20-30сек. на индикаторе появляется значение fan - коэффициент активности анионной частицы. Нажав клавишу x-y, нужно вывести на индикатор значение fkt - коэффициент активности катионной частицы. 3. Для вычисления среднего коэффициента активности еще раз нажать клавишу С/П. Чтобы вычисления были правильными, перед выполнением этой команды в РХ должно быть значение fkt. Кроме того, переключатель "Г-Р" должен быть в положении "Г". Значение ионной силы не индицируется, но хранится в Р5.
Коды веществ: 1. Неорганическая соль - 6; 2. Неорганическая кислота - 8; 3. Органическая кислота - 10; 4. Органический катион - 12, неорганический анион - 12; 5. Органическая соль - 13; 6. Неорганический катион - 14, органический анион- 14.
Примечание: иногда ионная сила определяется не концентрацией и типом ионного соединения, а посторонним буферным электролитом, и значение его ионной силы известно. В этом случае нет необходимости рассчитывать ионную силу, и пункт 2 инструкции будет выглядеть следующим образом 2. 1. БП 41 С/П. Пункты 1 и 3 инструкции сохраняются прежними.
А.ГУЛЕВИЧ (г.Минск)
КОМПЬЮТЕРНЫЙ ПАСЬЯНС
Наш журнал часто публикует описание различных пасьянсов, которые, кстати, можно раскладывать не только на столе, но и на экране дисплея. Предлагаем вниманию читателей программу на Квик-Бейсике старинного пасьянса "Турецкий платок" (9/78 ). Ее автор - ученик 8-го класса московской школы #281 М.Рахаев.
Краткое описание пасьянса. Из колоды карт в 52 листа картинкой вверх выкладываются пять рядов по 10 карт в каждом. Последние две карты кладут в шестой ряд в левые два столбца. Требуется "распустить" этот "Турецкий платок", снимая за один ход по две нижние карты одного достоинства - две двойки, две дамы и т.д.
Компьютер сам тасует карты и раскладывает их на экране дисплея. Если человек снимет все карты, нажимая номера требуемых столбцов, то машина в награду сыграет ему турецкое рондо Моцарта.
Надеемся, что для наших читателей разбор программы будет не менее приятным делом, чем решение самого пасьянса.
Ждем от читателей новых компьютерных пасьянсов. Для этого нужно порыться в старых подшивках нашего журнала и "поколдовать" за дисплеем.
Профессиональным "колдунам" предлагаем более сложную, обратную задачу - составить программу решения на компьютере пасьянса или по крайней мере выяснения, сходится он или нет. Еще более сложная задача - определение вероятности сходимости того или иного пасьянса.
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ.
В одном из прошлых номеров нашего журнала (6/89) было предложено составить какой-либо выпуск раздела "Человек и компьютер" целиком из материалов, имеющих отношение к химии, И не без основания: подобные материалы нередки в почте раздела.
Читатели, откликнувшиеся на этот призыв, поняли его шире, чем предполагалось. Обращаясь к темам сугубо химическим, они в итоге отразили в своих письмах весь спектр тематики нашего раздела: и применение компьютеров в обучении (о своем опыте увлекательно рассказывает Г.Аверкиева из Горького), и выбор для решения конкретной проблемы наиболее эффективных вычислительных средств (одну и ту же задачу В.Васильев из Орла решает на компьютере, а В.Звычайный из Днепропетровска на микрокалькуляторе), и знакомство с новыми версиями распространенных языков программирования (ряд присланных программ составлены или переписаны на Квик-Бейсике). Д.Сукнов из Кемерова просит рассказать о блоках расширения памяти для микрокалькулятора МК-52: ведь на них рассчитывают и химики, желающие создавать для себя удобные библиотеки стандартных программ. А школьник М.Рахаев из Москвы предложил присоединить к "химической" подборке программу для раскладывания пасьянса на компьютере: мол, пасьянсами увлекались многие великие химики; сам творец периодической системы рассматривал ее как пасьянс из элементов...
Анализ строения химического вещества обычно начинают с нахождения его простейшей эмпирической формулы - например: СxНyОz. Для этого по данным анализа вычисляют массовые доли элементов в веществе, а затем определяют значения индексов (x, y и т.д.) в эмпирической формуле. Эту работу можно и нужно поручить компьютеру - см. программу. В нее заложен алгоритм Евклида поиска наибольшего общего делителя (НОД) нескольких чисел (см. цикл с параметром на строках 90-160): сначала ЭВМ находит НОД первых двух чисел, затем НОД полученного числа и третьего из данных чисел и т.д. до последнего числа. Так как массовые доли элементов всегда определяются с некоторой погрешностью, то и НОД чисел рассчитывается за десять попыток с разной точностью (см. цикл с параметром на строках 70-190).
Пример для тестирования программы: Некоторая одноосновная кислота имеет следующий состав: С (углерод) - 48.6%, Н (водород) - 8.1% и О (кислород) - 43.3% - Запускаем программу, вводим числа: 3 (число элементов), 48.6, 12.01 (второе число - атомная масса углерода), 8.1, 1.008 (водород), 43.3, 16 (кислород).
Ответ: C3Н602 - пропиновая кислота; погрешность вычисления индексов не более 8%.
В.ВАСИЛЬЕВ (г.Орел).
И вновь среди наших читателей нашлись такие, которые полагают, что для решения задачи в простейших случаях не нужен компьютер - с ней вполне справится микрокалькулятор. В.Звычайпый из Днепропетровска предлагает программу для МК-61, способную определить формулу органического вещества как по процентному содержанию углерода и водорода, так и по количеству продуктов сгорания, то есть углекислого газа и воды. Переключателем Р-Г задается желательный режим расчета: Р - формула отыскивается по продуктам сгорания, Г - по процентному содержанию углерода и водорода.
00. С/П 01. ХП1 02. ХП2 03. ХП4 04. ХПА 05. 5 06. Fsin 07. Fx>=0 08. 19 09. ПХ1 10. ПХД 11. * 12. ХП1 13. ПХ2 14. ПХД 15. * 16. ХП2 17. БП 18. 31 19. ПХ1 20. ПХ8 21. * 22. ПХА 23. / 24. ХП1 25. ПХ2 26. ПХ9 27. * 28. ПХА 29. / 30. ХП2 31. ПХ1 32. + 33. /-/ 34. 1 35. + 36. ХП3 37. ПХД 38. - 39. Fx>=0 40. 42 41. 1 42. ХП0 43. FL0 44. 50 45. ПХ3 46. ПХВ 47. / 48. /-/ 49. ХП3 50. ПХ1 51. ПХС 52. / 53. /-/ 54. ХП1 55. ПХ2 56. /-/ 57. ХП2 58. ПХ4 59. Fx!=0 60. 64 61. F1/x 62. БП 63. 71 64. ПХ1 65. ПХ2 66. Кmax 67. FL0 68. 72 69. ПХ3 70. Кmax 71. ХП5 72. ПХ1 73. ПХ5 74. / 75. ХП1 76. ПХ2 77. ПХ5 78. / 79. ХП2 80. ПХ3 81. ПХ5 82. / 83. ХП3 84. КБПЕ.
После ввода программы набрать на клавишах 16 ХПВ 12 ХПС 0.01 ХПД 0.119 ХП9 0.2729 ХП8. Далее для режима Р: В/0 С/П; после останова набрать массу углекислого газа ПП массу воды ПП молярную массу ПП массу навески С/П. Для режима Г: В/0 С/П; после останова набрать процентное содержание углерода ПП процентное содержание водорода ПП молярную массу С/П. Если молярная масса неизвестна, ввести вместо нее нуль - в этом случае результаты получаются с отрицательным знаком. Выводятся они так: ПХ1 - количество атомов углерода в молекуле, ПХ2 - количество атомов водорода, ПХ3 - количество атомов кислорода, если он есть. Время счета: 15-30 секунд.
ПЕРЕСЧЕТ КОНЦЕНТРАЦИЙ
В аналитической практике часто бывает необходимо пересчитать значение концентрации раствора из одного вида в другой. Программа позволяет автоматизировать такую работу, исключить ошибки пересчета. Программа оперирует с шестью видами выражения концентраций, но ее несложно доработать так, чтобы были учтены и другие виды: мольная доля, массовая доля и др.
Квик-версия Бейсика, на которой написана программа, не требует обязательной нумерации строк, но использование традиционных меток-номеров строк позволило в нашем случае эффективно реализовать алгоритм перевода видов концентраций.
Составление подобных программ, помимо их непосредственной пользы,- хорошее практическое занятие для студентов-химиков, изучающих программирование.
В.ЖУРАВЛЕВ (г.Томск)
БУФЕРНОСТЬ И КОМПЬЮТЕР
Одна из самых сложных и интересных тем при изучении теории растворов электролитов - это буферность, обусловленная присутствием в растворе анионов слабых кислот или катионов слабых оснований. Буферность препятствует резкому изменению реакции среды под внешними воздействиями. Буферностью, например, обладает природная вода, что в какой-то мере защищает наши водоемы при сбросе в них кислых и щелочных сточных вод, при попадании в них кислотных дождей. Буферность есть у нашей крови. Это одна из причин, почему съеденный лимон не вызывает гибельного изменения реакции крови в кислую сторону.
Для характеристики реакции растворов (щелочность, кислотность) применяют водородный показатель рН - отрицательный десятичный логарифм от концентрации (вернее, активности) ионов водорода; рН в нейтральных водных растворах близок к 7, меньше семи в кислых и больше семи в щелочных средах. Программа, помещенная здесь, строит кривую титрования водного раствора, содержащего анионы слабой угольной кислоты (Н2СО3). При этом на экран дисплея выдается либо таблица (см. строки 34- 37), либо график (см. строки 38 и 39) изменения значения рН раствора при добавлении в него соляной кислоты (имитация сброса в водоем кислых сточных вод).
В программе на Квик-Бейсике методом половинного деления (см. 4/88 ) решается уравнение электронейтральности водного раствора, записанное функцией пользователя на строке 9. Компьютер находит (см. цикл "до" на строках 24-26) такое значение рН, при котором сумма катионов (натрий, водород) равна сумме анионов (гидроксил, хлор, гидрокарбонат). Еще один цикл "до" (см. строки 21-31) реализует метод последовательных приближений для определения ионной силы раствора, связывающей концентрационные и термодинамические параметры раствора, что позволяет рассчитывать концентрацию по активности иона через коэффициенты активности (см. строку 22).
В.ПЕТУХОВ (г.Новомосковск Тульской обл.).
ОТ РЕДАКЦИИ. В программе В.Петухова применен простейший способ построения графика на экране ЭВМ с помощью табулятора - см. строку 39. Тем, у кого есть ЭВМ с хорошей графикой, с цветом и музыкой, предлагаем доработать программу. Можно средствами компьютерной мультипликации и шумовыми эффектами имитировать падение капель кислоты в колбу с буферным раствором, отображать изменение окраски индикаторов и движение стрелки рН-метра.
1024 СОВЕТА
(байт десятый, химический)
Программа линейной аппроксимации методом наименьших квадратов - одна из самых популярных программ у химиков, прибегающих к помощи компьютера или микрокалькулятора. По ней строятся различные калибровочные кривые, обрабатываются опытные данные и т.д. Вот почему для иллюстрации очередного байта советов начинающему программисту взята программа "Метод наименьших квадратов, по которой строится линейная зависимость (см. строки 4 и 5) коэффициента, стоящего в формуле определения факторов активности ионов (см. предыдущую заметку) от температуры раствора.
Автор первых пяти советов - москвич Я.Гринберг, а трех последних - его земляк В.Птицын.
Программу нелинейной аппроксимации можно увидеть па цветной вкладке 4/88.
73. Иногда удобнее вводить исходные данные не запросом через клавиатуру, а редактированием списка данных (строки 4 и 5). Преимущество такого диалога с машиной особенно ощутимо при отладке программы и при работе с частично изменяющимися данными.
74. Научи машину самостоятельно, без помощи человека, пересчитывать элементы в списке данных и фиксировать их конец (см. строку 6). Это облегчит внесение изменении в список перед новым расчетом.
75. Отмечай комментарием содержание констант в списке данных (см. строку 5) и выводи их на дисплей при прогонке программы (см второй оператор строки 9) для дополнительного контроля.
76. Если тебе все равно, какие числа ставить в программу, то поставь такие, какие характеризовали бы какой-то параметр транслятора - см. конец строки 4, где записан диапазон изменения значений вещественных переменных двойной точности на Квик-Бейсике.
77. Выноси комментарии за рамки циклов (см. строку 10). Это ускорит прогонку программы, т.к. машине нужно время не только на выполнение оператора, но и на то, чтобы понять, что данный оператор выполнят", не следует.
78. Потихонечку отучайся от использования суффиксов ($, %, # и !) для обозначения типов переменных. "Фамилию" переменной (т.е. ее тип) лучше задавать "паскалевским" манером, объявляя в заголовке программы (см. строку 2).
79. Не поленись расшифровать в программе смысл новых конструкций языка (см. строку 7), подскажи им замену на старых версиях Бейсика.
80. "Ученый должен быть достаточно ленив,- объяснял мне Зубр.- На этот счет у англичан есть прекрасное правило: не стоит делать того, что все равно сделают немцы" (Д.Гранин "Зубр"). Не стоит делать того, что все равно сделает транслятор: обрати внимание на знак вопроса вместо слова PRINT на строках 1, 6, 9, 13, 14 и 15, на отсутствие замыкающих кавычек в конце строк 1, 6, 13, 15 и точки с запятой в операторе печати на строке 14.
ИСПОВЕДЬ ПРОГРАММИСТА-НЕУДАЧНИКА
Химик я. Точнее, учитель химии. Сначала учила детей в школе этой науке, теперь в вузе учу студентов, как преподавать химию детям.
Казалось мне всегда, что дело мое поставлено и идет успешно. Но пришли другие времена, и началась ликвидация компьютерной неграмотности. Я попадаю на курсы повышения квалификации по вычислительной технике. С трудом осваиваю новую грамоту. Боюсь даже слово "осваиваю" употреблять. Многое забыто, еще больше совсем нового и, что самое страшное, непонятного. Ощущаю, однако: нужно все это. Завидую математикам - какие у них теперь возможности!
А как же в химии? Там тоже многое можно сделать. Но детям в школе что дать? Чтобы было понятно, доступно, интересно. Чтобы сами могли набирать, а потом и сочинять свои программы, использовать их. И обязательно на химическом материале.
Ломаю голову. Трудностей полно. То букв греческого алфавита нет у машины. То нет подстрочных индексов, а у химиков в формулах без этого нельзя. Правда, можно прибегнуть к шифровке химических формул и уравнений на языке компьютера, по это уж совсем усложнит освоение и без того трудного для детей химического языка.
И вдруг - озарение! Нужно сделать обучающие программы. Сначала изложить обучающий текст, а потом на его основе предложить произвести вычисления. Все это - через компьютер. Например, об открытии Д.И.Менделеевым правила вычисления атомной массы элемента как среднего арифметического атомных масс элементов - соседей по таблице. И название программе можно дать интригующее, в духе принятых в компьютерных языках сокращений- SARI (от среднего арифметического).
Сочиняю несколько таких программ: OMEGA (нахождение массовой доли "омега"), AVOG (расчеты с использованием постоянной Авогадро), MAS (вычисления относительных и абсолютных масс атомов) и другие.
Иду в кабинет информатики, оборудованный для учителей. Преподаватель-методист, ощущая за собой явное превосходство в области вычислительной техники перед робким и не очень уверенным в своих новых начинаниях химиком, говорит: уж очень длинные ваши программы, кто их набирать-то будет...
В другом месте говорят: ваши программы совсем не оформлены, нет рамок, сигнальных указателей...
В третьем - соглашаются дать студентам заняться этим на практических занятиях в терминальном классе. Получаем листинги. Приглашаем группу учеников. Они работают с программами. Кажется, дело пошло. Школьникам интересно и понятно. Правда, это испытание только для немногих. И все-таки уже удача.
Дерзаю. Предпринимаю попытку напечататься в журнале, чтобы для всех было. Но там тоже стены. В одном журнале говорят, что у них нет шрифта для машинных языков, в другом - в программах нет занимательности. И, наконец, совсем убивают: все это можно считать на обычных микрокалькуляторах.
Догадываюсь, что все мои старания ни к чему не привели. Это провал.
Узнаю из прессы: на конкурсе юные программисты сочинили такие программы, что мне их трудно даже понять. Терзает, однако, мысль: ведь таких школьников единицы. Они талантливы, они рождены для компьютеров. Но их же мало. А как приобщиться к новой технике тем, кому не дано самим творить? Тут надо что-то попроще. Вот и подошли бы мои программы. Тем более они на химическом материале, а не на математическом. Связь наук в какой-то мере. Но раз нет, значит нет.
Все же освободиться не могу от навязчивой мысли о пользе компьютера в обучении химии.
И вдруг - новое озарение. А что если сочинить программы "проверь себя"? Ведь делают же электрифицированные стенды для этого, а здесь с дисплея все можно узнать.
Снова напряжение мысли. Программы готовы.
Ну уж, если и про них скажут, что не подходят для работы... Буду смеяться.
Г.АВЕРКИЕВА (г.Горький)
ОПТИМИЗАЦИЯ В ХРОМАТОГРАФИИ
Предлагаемая программа для микрокалькуляторов МК-52 и МК-61 помогает оптимизировать условия разделения трех веществ при использовании метода тонкослойной хроматографии. Используется эмпирическое уравнение Сочевинского, описывающее зависимость подвижности Rф пятна индивидуального соединения от мольной доли полярного компонента в бинарной смеси Xм/Rм=A+B lgXм, где Rм=lg(1/Rф). Предварительно для каждого исследуемого соединения необходимо снять зависимость Rф от Xм по 5-7 точкам и, обработав линеаризованные результаты по методу наименьших квадратов, получить индивидуальные значения коэффициентов А и В, а также коэффициент корреляции. В случае, если он лежит в пределах от 0.8 до 1, можно смело считать, что уравнение для данного соединения в данной элюирующей смеси справедливо.
Программа позволяет оптимизировать разделение трех веществ. В качестве исходных вводятся индивидуальные значения коэффициентов А и В шесть ячеек памяти: для первого вещества - в PC и РД соответственно, для второго - в Р9 и РА, для третьего - в Р6 и Р7. По этим данным рассчитываются значения Rф для данной концентрации и вычисляются разности Rф. Минимальное значение Кф запоминается и происходит переход к новой концентрации полярного компонента. Значение максимального из минимальных Rф не запоминается, в регистр заносится концентрация, при которой оно имеет место. Текст программы:
00. ХПЕ 01. 1 02. 4 03. ХП3 04. 3 05. ХП0 06. ХП1 07. КПХ3 08. ПХЕ 09. * 10. КПХ3 11. + 12. F10X 13. 1 14. + 15.F1/x 16. КХП3 17. FL0 18. 07 19. ПХВ 20. ПХ8 21. ПП 22. 49 23. ПХВ 24. ПХ5 25. ПП 26. 49 27. ПХ8 28. ПХ5 29. ПП 30. 49 31. ПХ1 32. С/П 33. ПХ2 34. - 35. Fx>=0 36. 41 37. ПХ1 38. ХП2 39. ПХЕ 40. ХП4 41. Сх 42. 2 43. 0 44. F1/x 45. ПХЕ 46. + 47. БП 48. 00 49. - 50. К[х] 51. B^ 52. ПХ1 53. - 54. Fx<0 55. 58 56. x-y 57. ХП1 58. В/0.
Назначение регистров: Р0 - управление циклом, Р3 - управление записью, РB - текущая концентрация, Р4 - значение концентрации при максимальном min Rф, Р1 - min Rф, Р2 - максимальное min RRф; Р5, Р8, РB - текущие значения Rф для третьего, второго и первого уравнений.
Инструкция: ввести программу н коэффициенты А и В в регистры согласно таблице; ввести 0 в Р2, начальную концентрацию в логарифмах мольной доли в РХ; В/0, С/П; после останова - на индикаторе значение min Rф для данной концентрации; нажав С/П, переходим к расчету для новой концентрации, на 0.05 большей.
Контрольный пример: -1.13 ХПС -0.85 ХПД -1.177 ХП9 -1.645 ХПА -1.362 ХП6, - 1.15 ХП7.
Результат:
РХ. P1. P2
-1.50. 0.115. 0.115
-1.45. 0.107. 0.115
-1.40. 0.105. 0.115
-1.35. 0.098. 0.115
Расчет одного варианта концентрации занимает около 27с.
А.ЛАЗАРЕНКО (г.Киев)
ПЕРВЫЙ ТО М... КОМОМ
Во многих городах страны появился в продаже блок БРП-3 - своеобразная библиотека, вернее, первый том библиотеки программ для микрокалькулятора "Электроника МК-52". Судя по редакционной почте, появление на рынке первого дополнительного устройства к МК-52 было воспринято в основном положительно, хотя и внесло сумятицу в умы некоторых владельцев МК-61, думающих над тем, как приспособить БРП к своим калькуляторам - иными словами, над тем, можно ли путем несложных переделок в домашних условиях превратить МК-61 в МК-52. О различиях этих калькуляторов наш журнал писал в 1/89. Ознакомившись со сказанным тогда, нетрудно понять, что нужно для такой переделки, и решить, хватит ли умения и можно ли добыть микросхемы, необходимые для работы БРП, имеющиеся в МК-52 и недостающие МК-61. Место для их установки тоже придется искать.
Оставим в стороне как восторженные, так и критические отзывы о подборе программ для блока БРП-3. Одним они очень нравятся, другим нравятся, но не все, а третьи хотели бы иметь совсем другие программы. Наверное, было бы целесообразным объявить какой-то конкурс не только на перечень программ, которые должны войти в последующие блоки БРП, но и на сами программы. Первую скрипку тут должно играть ПО "Кристалл", головная организация по этим блокам.
Но вот что отмечают почти все работающие с блоком БРП. Его создатели не полностью использовали емкость блока, и покупатель мог бы получить на несколько программ больше. На сколько - сказать трудно, но больше.
Познакомимся с некоторыми аргументами. Ленинградец П.Пантелеев считает, что включение тестовых подпрограмм в программы решения задач ##13, 22-27, 29-31 абсолютно не нужно. С помощью этих подпрограмм проверяется основная программа, а ведь ее правильность гарантируется авторитетом ПО "Кристалл" и госприемкой, о чем сделана соответствующая надпись на первом листе "Руководства по эксплуатации БРП-3". В процессе пользования этими программами приходится на место тестовых подпрограмм, относящихся к условным примерам, вписать реальные, соответствующие решаемым задачам, и было бы лучше, чтобы пользователь учился это делать, вводя тест. Назначение теста в этом случае меняется. Он нужен не для проверки программы, а для приобретения навыков работы с ней.
На все тестовые программы ушло 76 шагов, а средняя длина программы, записанной в БРП-3,- 63 шага. В.Васильев (Москва) и А.Абоимов (Всеволожск) определили, что БРП-3 состоит из двух ПЗУ, в каждое из которых можно записать программы общей длиной 4096 шагов, однако в конце одного ПЗУ осталось свободное место для записи 32 шага, а второго - 298 шагов.
По мнению А.Зверева (Москва), к выбору большинства программ для блока БРП-3 создатели подошли без должной ответственности. Об этом говорит хотя бы то, что в этом блоке, сделанном для МК-52, используется набор команд для... Б3-34. Абсолютная величина числа вычисляется с помощью команд Fx2 и Fsqr (задача #2), а не K|х|. Выделение дробной части числа - по командам ПД КИПД x-y ИПД -, а не К{х} (задача #38). Число таких примеров можно увеличить.
К сожалению, не указан источник, из которого брались программы. Сравнение с книгой Я.К.Трохименко "Программирование микрокалькуляторов "Электроника МК-61" и "Электроника МК-52"", изданной в 1987г. в Киеве (там же, где находится ПО "Кристалл"), почти всегда не в пользу БРП-3. Для решения систем из двух и трех линейных уравнений в БРП-3 используются программы длиной в 35 и 91 шаг. А в книге приведены аналогичные программы #61 и #63, длина которых 25 и 53 шага. Для обращения матриц второго и третьего порядка затрачено 42 и 98 шагов, а в книге предназначенные для этого программы #72 и #73 имеют длину 23 и 58 шагов. Таких примеров можно привести много.
Но что раздражает больше всего - это многочисленные опечатки, ошибки и неточности. Вот какой список уточнений прислал нам А.Абоимов из Всеволожска.
Задача #11, с.53. Внести исправления в тест: С12=-58, С22=3, С23=21.
Задача #12, с.56. В тестовом примере приведен результат не векторного умножения, а скалярного. Результат векторного умножения (-30, 60, -30).
Задача #13, с.58. По адресу 19 вместо С/П записано 19. Для исправления: БП 19 F ПРГ С/П F АВТ.
Задача #15, с.63. Внести исправления в тест: z=5.
Задача #17, с.68. Дополнить п.4 инструкции словами: "При вычислении функций от одного аргумента после вычисления tgz или ctgz восстановить значение b в регистре 9".
Задача #18, с.71. Последняя строка п.3 инструкции должна быть написана так: ctg-1 клавиши БП 5 4 С/П "tg-1z" С/П "ctg-1z".
Задача #19, с.74. Дополнить п.3 инструкции словами: "При вычислении функций от одного аргумента после вычисления thz или cthz восстановить исходные данные".
Задача #20, с.77. Внести исправления в тест: ch-1=1+i0.523.
Задача #27, с.100. Перед вычислением Суммы yi, очистить регистр 6.
Задача #30, с.109. Внести исправления в тест: Iтабл=0.559732.
Задача #31, с.110. В строке: ввод исходных данных добавить Сх->П6; с.111. Внести исправления в тест: I=0.69315023.
Задача #32, с.114. Внести исправления в тест: S(x)=0.65536.
Задача #34, с.118. В строке: ввод данных исправить х=21.3->ПС.
Задача #35, с.121. Исходные данные заносятся в регистры: X->П9, р->П7, а1->П6, а2->П5, а3->П4, а4->П3, а5->П2.
Задача #49, с.157. Дополнить ввод исходных данных: b4->П9.
Задача #60, с.182. В п.2 инструкции исправить: "Установить переключатель Р/ГРД/Г в положение Г", с.183. Внести исправления в текст: пример 2-S2=0.7071, пример 3-С=5.
ВЫЧИСЛЯЕМ АКТИВНОСТЬ ИОНОВ
Предлагаю программу расчета индивидуальных и средних коэффициентов активности ионов и ионных веществ соответственно. Коэффициенты широко используются в химии растворов для расчета многих параметров. Алгоритм расчета коэффициентов основывается на известных уравнениях Киланда и Дэвиса: для неорганических ионов - выражение 1, для органических ионов - выражение 2, для ионов водорода - выражение 3.
В этих уравнениях, используемых при ионных силах I, не превышающих 0.1, знаком fi обозначены ионные коэффициенты активности, zi - заряд i-й частицы.
При значениях ионной силы более, чем 0.1, для расчета коэффициентов активности используется уравнение Дэвиса (выражение 4). Оно достаточно хорошо работает до значений ионной силы 0.5. Для расчета среднего коэффициента активности ионного соединения используется выражение 5. И, наконец, ионная сила определяется концентрацией и величинами зарядов ионов и определяется выражением 6, где Сi - концентрация частицы, выраженная в молярной шкале концентраций.
Как видно из вышеприведенных формул, расчет коэффициентов активности - довольно трудоемкая работа. Особенно если учесть, что возможны различные комбинации по типу ионов. Например, органическая и неорганическая кислоты, органическая и неорганическая соли и смешанные соли, состоящие из анионов и катионов органической и неорганической природы.
Программа для МК-61, приведенная далее, позволяет по минимально необходимой информации, то есть по величинам зарядов ионных частиц, концентрации вещества, рассчитать ионные коэффициенты активности, средний коэффициент активности и ионную силу. Время расчетов менее минуты.
Привожу текст программы. 00. ХП0 01. ХП2 02. ХП4 03. ХП6 04. ХПА 05. x-y 06. ХП5 07. ХПД 08. 2 09. ХП8 10. ХПВ 11. ХПС 12. 2 13. , 14. 9 15. 7 16. ХП7 17. ХП9 18. КПХ0 19. ХП1 20. КПХ0 21. ХП3 22. ПХ2 23. ПХ4 24. + 25. ХП0 26. FBx 27. * 28. С/П 29. * 30. 2 31. / 32. ХП5 33. ПХ2 34. ПХ4 35. - 36. Fx!=0 37. 42 38. ПХ5 39. ПХ2 40. * 41. ХП5 42. 0 43. , 44. 1 45. ПХ5 46. - 47. Fx>=0 48. 70 49. 0 50. ХПВ 51. 0 52. ХП6 53. ПП 54. 77 55. ПП 56. 77 57. С/П 58. Flg 59. ПХ4 60. * 61. x-y 62. Flg 63. ПХ2 64. * 65. + 66. ПХ0 67. / 68. F10X 69. С/П 70. 1 71. ХП1 72. ХП3 73. 5 74. / 75. БП 76. 50 77. ПХ5 78. Fsqr 79. F1/x 80. КПХ6 81. + 82. F1/x 83. ПХВ 84. ПХ5 85. * 86. - 87. КПХ6 88. Fx2 89. * 90. 3 91. 1 92. Ftg 93. Fln 94. * 95. F10X 96. В/0.
Инструкция. 1. В/0 Код ПП Zkt ПП Zan, С/П. Код - это число, зависящее от типа ионного соединения. Список кодов приведен ниже, Zkt и Zan - заряды катионной и анионной составляющей вещества. 2. Сi С/П. Ci - это величина молярной концентрации вещества. После 20-30сек. на индикаторе появляется значение fan - коэффициент активности анионной частицы. Нажав клавишу x-y, нужно вывести на индикатор значение fkt - коэффициент активности катионной частицы. 3. Для вычисления среднего коэффициента активности еще раз нажать клавишу С/П. Чтобы вычисления были правильными, перед выполнением этой команды в РХ должно быть значение fkt. Кроме того, переключатель "Г-Р" должен быть в положении "Г". Значение ионной силы не индицируется, но хранится в Р5.
Коды веществ: 1. Неорганическая соль - 6; 2. Неорганическая кислота - 8; 3. Органическая кислота - 10; 4. Органический катион - 12, неорганический анион - 12; 5. Органическая соль - 13; 6. Неорганический катион - 14, органический анион- 14.
Примечание: иногда ионная сила определяется не концентрацией и типом ионного соединения, а посторонним буферным электролитом, и значение его ионной силы известно. В этом случае нет необходимости рассчитывать ионную силу, и пункт 2 инструкции будет выглядеть следующим образом 2. 1. БП 41 С/П. Пункты 1 и 3 инструкции сохраняются прежними.
А.ГУЛЕВИЧ (г.Минск)
КОМПЬЮТЕРНЫЙ ПАСЬЯНС
Наш журнал часто публикует описание различных пасьянсов, которые, кстати, можно раскладывать не только на столе, но и на экране дисплея. Предлагаем вниманию читателей программу на Квик-Бейсике старинного пасьянса "Турецкий платок" (9/78 ). Ее автор - ученик 8-го класса московской школы #281 М.Рахаев.
Краткое описание пасьянса. Из колоды карт в 52 листа картинкой вверх выкладываются пять рядов по 10 карт в каждом. Последние две карты кладут в шестой ряд в левые два столбца. Требуется "распустить" этот "Турецкий платок", снимая за один ход по две нижние карты одного достоинства - две двойки, две дамы и т.д.
Компьютер сам тасует карты и раскладывает их на экране дисплея. Если человек снимет все карты, нажимая номера требуемых столбцов, то машина в награду сыграет ему турецкое рондо Моцарта.
Надеемся, что для наших читателей разбор программы будет не менее приятным делом, чем решение самого пасьянса.
Ждем от читателей новых компьютерных пасьянсов. Для этого нужно порыться в старых подшивках нашего журнала и "поколдовать" за дисплеем.
Профессиональным "колдунам" предлагаем более сложную, обратную задачу - составить программу решения на компьютере пасьянса или по крайней мере выяснения, сходится он или нет. Еще более сложная задача - определение вероятности сходимости того или иного пасьянса.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
Внезапно, новый конкурс. А чем кончился старый?
3/90
КОНКУРС ПРОГРАММИСТОВ
Пять лет назад в советских школах стали появляться первые компьютеры "Ямаха". Сегодня их число достигло 30 тысяч. На этих машинах выросло целое поколение молодых программистов, сумевших до тонкостей освоить все возможности "Ямаха-MSX". Сегодня они работают на более мощных машинах, главным образом типа IBM.
Японская фирма "Синдзидайся" заинтересована в поиске талантливых молодых программистов и в общем подъеме культуры программирования. Один из путей к этому - конкурс. Получив поддержку со стороны фирмы "АСКИ Корпорейшн" и Госкомитета по народному образованию СССР, удалось реализовать идею такого конкурса в Советском Союзе.
Его официальными учредителями стали Главные учебно-методические управления высшего и общего среднего образования, Главное управление научно-исследовательских работ Гособразования СССР совместно с фирмами "АСКИ" и "Снндзидайся Ко. Лтд." (Япония), Коммерческим центром Гособразования СССР, Научно-практическим центром "Образование" при Московском государственном педагогическом институте им.В.И.Ленина.
Итак, проводится открытый всесоюзный конкурс на лучшую программу для персональных компьютеров типа MSX, IBM PC и совместимых с ними.
Краткая справка. Фирма "Синдзидайся Ко. Лтд." сотрудничает с СССР с 1964 года, именно эта фирма поставляет в СССР компьютеры MSX-I, MSX-II (КУВТ "Ямаха"). Фирма "АСКИ Корпорейшн" - крупнейшая японская фирма по производству программного обеспечения (softwarehouse), которая совместно с фирмой Microsoft (USA) разработала стандарт MSX.
Срок подачи заявлений и программ для участия в конкурсе - с 1 февраля по 1 мая 1990 года. Подведение итогов в конце июня 1990 года.
В конкурсе могут попробовать силы все желающие - отдельные лица или организации. Всем участникам конкурса гарантируется сохранность авторских прав.
Решившим испытать свои силы необходимо получить бланк заявки на участие в конкурсе. Обращайтесь за ним в Учебно-производственный центр вычислительной техники Октябрьского района г.Москвы (адрес: 117296, г.Москва, пр.Ломоносова, д.16, тел.133-20-50), представляющий интересы японского учредителя, а также в Центр "Информатика и дети" (630098, г.Новосибирск-90, Приморская 22, тел.45-09-57).
Сведения, касающиеся советской стороны, а также технические подробности, в зависимости от выбранного направления, можно узнать в одной из трех организаций:
- программы для персональных компьютеров "MSX-I-II" - в Московском государственном педагогическом институте им.В.И.Ленина (119435, Москва, М.Пироговская 1. тел.264-25-56, 264-45-74);
- программные продукты учебного назначения для персональных компьютеров IBM PC и совместимых с ними - в научно-исследовательском институте проблем высшей школы (103062, Москва, Подсосенский пер. 20, тел.297-65-15, 297-55-26);
- программные продукты, предназначенные для выполнения научных работ на персональных компьютерах IBM PC и совместимых с ними - в коммерческом центре Гособразовання СССР (129843, Москва, Щепкина 22, тел.284-34-14, 288-46-70).
Обращайтесь по этим адресам за любой необходимой информацией, касающейся конкурса. Программы представляют записанными на флоппи-диске с наклейкой, на которой указано название программы, имя и адрес автора, тип компьютера и требования к нему. Требуется также сопроводительная документация - руководство с указаниями функций программы и особенностей управления ею, а также другой полезной информацией, техническая документация на программный продукт, заявка на участие в конкурсе.
Победителей ждет недельная поездка в Японию. Кроме того, занявшие первые места (4 победителя) награждаются призом в 3000 долларов или профессиональным компьютером, "серебряные" призеры (3 победителя) получат призы в 1000 долларов или, на выбор, цветной телевизор, либо видеомагнитофон. Обладатели "бронзы" (3 победителя) - компьютер "MSX-II". Победители конкурса подписывают лицензионный контракт с учредителем с советской или японской стороны для реализации этих программ в СССР или на мировом рынке соответственно.
Желаем успеха!
Глава фирмы "Синдзидайся" (г.Москва)
ХАДЖИМЕ КАТО
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ВТОРОЕ, где рассказано о двух популярных инструментальных системах: Norton Commander (фирмы Norton) и PCTOOLS (фирмы Central Point Software). Они дают возможность аккуратно и компактно размещать на гибких и жестких дисках (как еще говорят, в архивной памяти) нужные для работы программы и записи, систематически чистить диски от устаревших записей, быстро находить требуемую информацию, исправлять и дополнять ее.
Читателю может показаться, что машина, с которой мы работаем на нынешнем занятии, не та, что была на прежнем. Тогда мы только-только извлекли ее из упаковочных коробок, а сейчас ее диски уже заполнены информацией.
Что можно сказать на это? Во-первых, компьютер может поставляться с уже заполненными дисками, на которых часто есть и инструментальные системы. Во-вторых, многие читатели "Школы" проходят ее занятия, пользуясь не новеньким компьютером, а давно работающим, имеющим богатую архивную память. В-третьих, даже если компьютер совершенно гол, полезно знать, что должно быть или обычно бывает ни его гибких и жестких дисках.
Ведут занятие кандидат технических наук В.Ф.ОЧКОВ и кандидат физико-математических наук Ю.В.ПОБ0ЖИЙ.
Первое занятие в "Школе: пользователя ЭВМ" мы закончили на том, что познакомились с четырьмя командами дисковой операционной системы, при помощи которых отмстили на первый запрос включенной машины и даже сумели совершить некоторое простое действие - перенести с гибкого диска на жесткий нужную нам программу.
Интересно, какое чувство вызвал у читателей этот первый маленький успех? Радость? Желание заучить все подобные команды?
Утверждать это да всех читателей мы бы не рискнули. Вполне возможно, что кое у кого реакция била прямо противоположной: "Ну вот, начинается! Мне бы дай бог запомнить то, что относится к моей работе. А здесь еще предлагают учить какую-то китайскую грамоту, какие-то там команды дисковой операционной системы... Нет уж, благодарю. Обходился я раньше без машины и сейчас как-нибудь обойдусь".
Такова жизнь! Есть люди, которые ценой сколь угодно напряженных усилий не преодолеют свою неспособность к изучению языков. И тем не менее опыт показывает: когда общение становится жизненной необходимостью, то чужой язык усваивается за несколько недель.
Почему же такое возможно? С чего начинается выработка общего языка?
Вспомним классический пример: Робинзон и Пятница, их первый, если так можно выразиться, разговор. Вот как об этом рассказывает сам Робинзон: "Я стал кричать ему и делать знаки, чтобы он подошел ближе. Он понял: ступил два шага и стал как вкопанный. Я опять сделал ему знак, чтобы он приблизился ко мне, и вообще старался всячески ободрить его. Он подходил ко мне все ближе и ближе".
Мы не знаем, увлекался ли чтением популярной книги Даниеля Дефо американский программист Питер Нортон, создатель не менее популярной (но крайней мере в компьютерном мире) системы Norton Commander, или сокращенно NC. Но беремся утверждать, что глубинный смысл его системы сродни старым истинам: лучше один раз увидеть, чем сто раз услышать: лучше один раз показать наглядно, чем сто раз описать на словах.
На языке жестов можно высказывать простейшие просьбы и отдавать несложные приказания. Если нужно, чтобы кто-то перенес какую-то вещь с одного места на другое, то можно просто ткнуть пальцем к эту вещь и указать, куда ее перенести. Такой не совсем вежливый, но однозначный (а это главное!) жест понятен и без пространных разглагольствований.
Пользователь ЭВМ то и дело просит машину выполнить примерно такие же действия: "Возьми этот файл и перенеси вот сюда. Переименуй эту программу. Сотри эту запись. Дай-ка я погляжу, что у тебя хранится здесь".
Система NC хорошо справляется с такими заданиями. Но хороша она не только этим.
Представьте себе корабль в открытом океане. Машины и механизмы, приводящие его в движение, спрятаны в трюме. Если капитан будет находиться там, он сможет непосредственно наблюдать их работу и управлять ею до мельчайших деталей. Но именно в этом случае кораблю в наибольшей степени грозит крушение. Место капитана - в надстройке над палубой, на капитанском мостике. Отсюда открывается широкий вид на необозримые просторы океана. Сюда же стекается обобщенная информация о работе машин и механизмов - она отображается на шкалах приборов и индикаторов. Владея ситуацией и целом, капитан приходит к правильным решениям наиболее верным путем - от главного к частностям. Если он хочет поподробнее рассмотреть какой-то объект на горизонте, он подносит к глазам бинокль. Если ему требуется получить более подробную информацию из машинного отделения или пояснить свой приказ, отданный поворотом штурвала или нажатием кнопки, on подносит к уху телефонную трубку.
Системы, подобные NC, называются надстройками над дисковой операционной системой. Они позволяют отдавать компьютеру инструкции, не детализируя их в командах операционной системы, формулируя их в общих чертах,- все остальное умная машина домысливает сама. Таких систем уже довольно много. Рассказ о них мы решили начать с NC, потому что сегодня она наиболее распространена. Следующая за ней но степени распространенности - PCTOOLS, затрагиваемая в самом конце этого занятия. В основе ее названия - английское слово tools - инструменты, PC - это personal computer, персональный компьютер, в целом же это название следует понимать как "инструменты персонального компьютера". Заметим, что вспомогательная роль таких систем подчеркивается их собирательным обозначением: "инструментальные системы".
Какой же вид открывается перед пользователем ЭВМ на экране дисплея, когда он включает машину?
Если машина новая, с совершенно пустой памятью, то вид этот довольно беспросветный: на черном экране одиноко горит путеводной звездочкой знакомый нам символ С:>. По если архивная намять машины уже заполнена (а наше нынешнее занятие как раз и продиктовано проблемой, как не утонуть в этом кладезе информации) и хозяин компьютера вставил в запускающую программу обращение к системе NC, то машина сразу после ее включения выведет на экран своеобразный путеводитель но своей архивной памяти. Как он выглядит, показано на рисунке.
Такая картинка появляется на экране дисплея после вызова системы "Нортон Коммандер".
(Надо заметить, что на экране эта картина вырисовывается белыми линиями по черному фону. Нам же удобнее показывать ее в негативном исполнении, чтобы не утомлять глаза читателей чернотой).
Еще не разобравшись в структуре всей картинки, вы замечаете, что она составлена из слов английского языка. В компьютерном мире он стал международным. Правда, есть полулегальные (то есть сделанные без ведома фирм-разработчиков) версии NC и PCTOOLS с русскими (болгарскими, чешскими, польскими и т.д.) словами. Благо это или зло? С точки зрения одного человека, благо: так понятнее. С точки зрения общего развития, это тупиковый путь, ведущий вспять, к вавилонскому столпотворению. Лучше поступить так, как принято в балете: там стала общепринятой французская терминология, и слова "па-де-де", "антраша" понятны всякому культурному человеку в любой стране. Компьютеры становятся частью современной культуры, так что пользователю ЭВМ следует запомнить пару сотен терминов, которые пришли к нам из английского языка: file, print и т.п. (Кстати, не исключено, что с течением времени кое-какие из этих слов превратятся из специальных в бытовые, как это произошло, например, со словом "зациклиться").
Некоторые из этих слов, перейдя в компьютерный мир, сохранили свой прямой смысл или слегка изменили его. Например, print: в буквальном смысле - печатать, в "компьютерном" - выводить на любое устройство отображения информации: на экран дисплея, на бумагу (в этом случае она действительно печатается). Другие слова превратились в специальные термины. Например, file: (читается "файл") буквально - папка, картотека, с точки зрения пользователя ЭВМ - именованная область памяти на диске, где хранится какая-то информация. Еще одни пример, уже знакомый нам,- слово directory. Здесь вообще лучше воздержаться от попыток перевода, как это делают некоторые (библиотека, каталог, справочник). Лучше ввести его в наш язык в английском звучании (директория) и понимать как систему указателей в группе файлов. Такое понимание термина мы вскоре уточним, поскольку он вот-вот появится в пашем разговоре.
Итак, вернемся к нашей теме - вглядимся в картинку на экране. Она разбита на две половинки (на две панели, как говорят программисты), в каждой из которых содержится информация о директориях и корневых файлах двух дисковых устройств, помеченных как С (правая часть) и D (левая часть); не будем пока обращать внимании на маленькую рамку в левой части - о ней речь впереди).
Раз промелькнуло слово "корневых", значит, подошло время рассказать о принципах хранения информации в архивной памяти персональных компьютеров, совместимых с IBM PC.
Современный персональный компьютер может хранить в своей памяти сотни мегабайт. Если информация такого объема записана подряд, линейно, ориентироваться в ней невозможно. Поэтому ее организуют в структуре дерева с "листьями" (файлами), "ветвями" (директориями разных уровней, так что одна входит в другую, более высокого уровня, подобно тому, как маленькая ветка дерева присоединяется к более крупной) и "корнем" (под ним можно понимать директорию, в которой зарегистрированы как директории менее высокого уровня, так и отдельные файлы). Такая структура не дает утонуть в море информации огромных масштабов, которые свойственны современным персональным компьютерам. Надо только знать, что имена директорий выводятся на экран прописными буквами, а строчными буквами даются имена файлов.
Взгляните на рисунок еще раз. Вы уже заметили, вероятно: одно из имен написано не черным по белому, а белым по черному. Если учесть негативный характер нашей картинки, то что значит, что на экране одно из слов выступает темными буквами на светлом фоне. Это светлое поле (его называют курсорной рамкой) можно передвигать по экрану клавишами "вверх", "вниз", "влево", "вправо" и перебрасывать из одной панели в другую с помощью клавиши Tab. Так можно перенести курсорную рамку на любое интересующее нас имя файла или директории. Что стоит за ним, мы узнаем, нажав клавишу Enter. Такое действие имеет одно из двух последствий.
1. Если курсорная рамка находилась на имени директории, то происходит вход в нее: на той половине экрана, где стояло выбранное имя, появится список поддиректорий и файлов, содержащихся в данной директории. Если перевести курсорную рамку на имя какой-то поддиректории и нажать клавишу Enter, можно ознакомиться с ее содержанием и так переходить к поддиректориям все более низкого уровня. Вернуться в "корень" можно, набрав на клавишах cd .. и затем нажав клавишу Enter.
2. Если курсорная рамка находилась на имени файла, то тут возможны два варианта. Если файл представляет собой какую-то программу и после его имени через точку стоит приписка exe, com или bat, то программа начнет выполниться. Если файл содержит какой-то текст, он будет выведен на экран. (Такие файлы можно опознать по припискам - как говорят программисты, расширениям - dос, txt, me и некоторым другим).
Вот и получается, что с помощью системы Norton Commander пользователь ЭВМ изъясняется с машиной как бы на языке жестов. "Ткнул" в имя директории, и машина поняла это как просьбу: "Покажи, что содержится в этой директории". "Ткнул" в имя программного файла, и машина восприняла такой жест как приказ: "Выполни эту программу".
(Впрочем, машина не откажет и любителю поговорить с ней на языке команд дисковой операционной системы. Приглядитесь: в нижней части картинки по-прежнему стоит сочетание символов С:>. Но оно так незаметно, что это настраивает на более наглядный и попятный способ общения, о котором у нас идет речь).
Сказанное до сих нор относилось к структуре картинки, возникающей на экране. Что же касается ее содержания, то оно зависит от интересов и вкусов того, кто наполнял архивную память компьютера. Попробуем определить их, читая имена директорий. Можем заверить читателя, что набор их весьма типичен, и в том или ином виде их можно обнаружить, заглянув в архивную память практически любого персонального компьютера, принадлежащего опытному пользователю.
Начнем с правой панели, озаглавленной буквой С.
ANTIVIR - это аптечка персонального компьютера. За этим словом скрыты названия "лекарств" - программных средств поиска и уничтожения компьютерных вирусов.
BETA - программные средства, позволяющие компьютеру работать с буквами кириллицы.
CHESS - группа файлов, превращающих компьютер в шахматного партнера. Хозяин машины, видимо, знает: хорошо работает тот, кто умеет хорошо отдыхать.
DRHALO - многочисленная группа файлов, позволяющая рисовать и чертить на экране дисплея с помощью "мыши" (см. фото).
Сравните этот снимок с тем, который иллюстрировал первое занятие "Школы". Деталь, которая была заретуширована тогда (о ней еще не было речи), и появилась сейчас, называется "мышью". Это небольшая коробочка, соединенная проводом с центральным блоком или монитором. Сверху на ней две (у некоторых моделей три) клавиши, снизу (на снимке этого не видно) - шарик: он вращается, если "мышь" двигать, прижав к столу, и по проводу сообщает центральному процессору о своих перемещениях. В центральном процессоре эта информация превращается в команды, которые управляют перемещением цветной метки на экране. Так можно рисовать на экране: если нажать левую клавишу на корпусе "мыши", цветная метка будет оставлять след, если отпустить, не будет. Цвет такого рисунка выбирается также с помощью "мыши". Дело в том, что, когда компьютер переводится в режим работы с нею, на экране возникает поле в рамке из условных знаков. В эту рамку вплетен столбик из цветных клеток. Где-то на поле есть и изображение стрелки. С помощью "мыши" стрелку подводят н клетке нужного цвета, нажимают левую клавишу, и компьютер запоминает, каким цветом рисовать. Ряд других знаков обозначает способы, которыми можно пользоваться при создании рисунка: вести широкую полосу или узкую линию, заливать площадь, ограниченную замкнутым контуром, и т.д. Нужный способ также указывается с помощью "мыши".
Режимов работы с "мышью" много. Например, с ее помощью удобно выбирать нужные для работы директории и файлы. Вместо того, чтобы перемещать по экрану засветку, нажимая клавиши "вверх", "вниз", "впрaвo", "влево", можно уназывать стрелкой на то или иное имя, а потом нажимать левую клавишу на корпусе "мыши".
Если нужно отменить номанду, поданную через левую клавишу "мыши", нажимают на правую.
LEX и LEXICON - два популярных русифицированных текстовых процессора, разработанных Е.И.Веселовым из Вычислительного центра АН СССР. Текстовый процессор - это программа, превращающая компьютер в интеллектуальную пишущую машинку. С его помощью в тексте, хранящемся в архивной памяти, можно заменить слово, строку или абзац другим, удалить или вставить некоторый фрагмент текста, задать шрифт и формат при печати текста на бумаге и т.д.
Перейдем на левую половинку экрана, к диску D.
PAINT - группа файлов, с помощью которых можно делать цветные рисунки на экране дисплея.
SK - пакет программ делового человека, помогающий вести дневники, содержать в порядке записные книжки, списки телефонов, планировать свою работу.
Итак, мы бегло просмотрели содержимое жестких дисков С и D. А что записано на других? Как ознакомиться с их содержимым?
Для этого надо нажать клавишу Alt (alternative, выбор) и одновременно - F1. В середине левой панели появится маленькая рамка с вопросом: какой диск пас интересует? И далее буквы: А, В, С, D, Е и т.д. (Если вы хотите, чтобы рамка появилась на правой панели, нажмите не F1, а F2.) Есть в рамке и светлое пятно-курсор. Вы передвигаете его на нужную букву, допустим, А и нажимаете клавишу Enter. На левой панели появится список директорий и файлов, имеющихся на гибком диске, который в этот момент вставлен в дисковод А.
Если вы забыли поставить гибкий диск в дисковод, машина укажет на вашу оплошность.
Так можно просмотреть всю архивную память. Столбцы строчек будут сменять друг друга, но в самом низу экрана будет присутствовать все та же строка из десяти слов под номерами - вы, вероятно, уже обратили на нее внимание, разглядывая первый рисунок.
Эта строчка способна рассказать вам о компьютере не меньше, чем вы о нем узнали до сих пор. Помещенные в ней десять загадочных слов намекают на те услуги машины (подобные перечни услуг программисты называют меню), которые скрываются за функциональными клавишами F1, F2 и так далее до F10. Опишем вкратце те возможности, которые предоставляются ими:
F1. Получить подсказку о работе с системой: как двигать курсор (CURSOR MOVEMENT) по буквам (Char) и словам (Word) при редактировании текстов, стирать информацию (DELETE), работать с панелями (PANELS) и о многом другом (OTHER).
Клавиша F1 почти для всех программных продуктов - это палочка-выручалочка, хвататься за которую нужно и сложных ситуациях, когда не знаешь, как дальше поступить. На некоторых клавиатурах ее так и обозначают: "Help", а не F1.
F2. Включить в работу свое индивидуальное меню. Разумеется, его надо прежде составить: обозначить "блюда" и указать машине, что она должна сделать для выполнения указанных работ. Такое меню мы видим в маленькой рамке на первом рисунке. Как видно, составитель этого небольшого списка работает не только с Norton Commander, но и с PCTOOLS, пользуется принтером фирмы Epson и время от времени проверяет его работоспособность (Diagnostic), программирует на Бейсике, работает с пакетом Framework и текстовым процессором Лексикон. Перемещая курсорную рамку на нужную строку индивидуальною меню, пользователь приглашает компьютер к желаемой работе.
F3. Посмотреть выбранный файл, вызвав его содержимое на экран дисплея. Для этого курсорная рамка перемещается на имя нужного файла и нажимается клавиша F3. Содержимое файла выводится на дисплей постранично. Менять страницы позволяют клавиши PgUp (Page Up, страницы листаются по нарастающей) н PgDn (Page Down, но убывающей).
При этом NC дает пользователю возможность найти нужную информацию в файле по ключевому слову. Дело в том, что сразу после нажатия клавиши F3 нижняя строчка на экране заменяется на новую: 1.Help 7.Search (искать) 10.Quit (покидать). Если теперь нажить клавишу F7, в середине экрана появится приглашение набрать ключевое слово. Вот оно набрано, нажата клавиша Enter, и в тексте файла это слово уже выделено курсорной рамкой. Так же указывается нужный участок текста.
F4. Отредактировать выбранный файл. При этом информация, хранящаяся в файле, как и при нажатии клавиши F3, выводится на экран дисплея. Но здесь пользователь имеет возможность внести в записи изменения: подвести курсор к какой-то букве и заменить ее или убрать вовсе...
Но работать буковка по буковке - дело нудное. Допустим, выбранный файл представляет собой документ, где многократно упоминаются фамилии сотрудниц какого-то учреждения, а одна из них вышла замуж и сменила фамилию. Нельзя ли в тексте файла сменить эту фамилию в один прием и притом во всех местах, где она встречается?
Можно. Не зря ведь при нажатии на клавишу F4 нижняя строка заменяется на такую: 1.Help 2.Save (записать) 7.Search 8.Replace (заменить) 10.Quit. Нажимаем клавишу F8, и машина в маленькой рамке, возникающей в середине экрана, спрашивает, какое слово заменить. Набираем его и нажимаем клавишу Enter. Новый вопрос машины: на какое слово заменить? Набрали, еще раз нажали Enter. В тексте файл и курсорная рамка перепрыгнула на слово, которое следует заменить. Опять вопрос машины: заменять? Если вы считаете, что слово найдено не в том месте, нажмите клавишу со стрелкой вверх или вниз - машина будет искать заданное слово в предыдущей или последующей части файла. Если курсорная рамка стоит на верном месте, нажимайте клавишу Enter. Машина заменит это слово, потом найдет его в следующих строках и опять спросит: а тут менять? Так будет просмотрен весь файл.
F5. Скопировать выбранный файл на новое место на том же или на другом диске. Предварительно с помощью клавиш Alt и F1 (или F2) надо вывести на экран опись содержимого этого диска, где находится копируемый файл, и убедиться, что он там есть. Имя этого файла выделяют курсорной рамкой, нажимают клавишу F5, и в середине экрана машина сообщает: я копирую файл на диск такой-то допустим, С. Если этот диск вас не устраивает, а желателен, скажем, Е,- вы с помощью курсора заменяете С на Е. Нажимаете клавишу Enter - и файл копируется на место, которое указывает его имя в алфавитном порядке имен других файлов-соседей. Пользователь может задавать желаемое место и по другим правилам.
Владелец компьютера прибегает к услугам клавиши F5 по самым разнообразным поводам: когда расширяет программное обеспечение своей машины, перенося программы со сменных гибких дисков (A, В) на жесткие (С, D, Е...), когда распечатывает файлы на принтере (в этом случае вместо названия диска, на который должен быть скопирован файл, указывается слово PRN), когда передает информацию на другие машины, объединенные с его машиной в сеть,- все это не что иное, как различные виды копирования, и мы еще поговорим об этом далее.
F6. Перенести файл на новое место. Все происходит так же, как при работе с клавишей F5, с тем лишь отличием, что на старом месте перемещаемый файл уничтожается.
Клавиша F6 позволяет еще и переименовывать файлы. Недаром вслед за цифрой 6 в нижней строке на экране стоит не одно, а два сокращения - Ren (rename, переименовать) и Mov (move, двигать).
Чтобы машина поняла, что предстоит не перемещение, а переименование, одну из панелей надо погасить: нажать клавишу Ctrl и одновременно F1 (тогда погаснет левая панель) или F2 (тогда погаснет правая; укажем сразу, что повторение такой операции "зажигает" погашенную панель). Заметив это, машина отвечает вопросом в маленькой рамке: какое имя надо присвоить файлу? Вы набираете это имя, нажимаете клавишу Enter - и файл "переносится" на то же место, которое занимал прежде, но уже с новым именем.
Следует сказать, что и копировать, и переносить можно сразу несколько файлов. Для этого надо нажать клавишу Ins (insert - вставлять, вносить). Имя файла, которое было указано курсорной рамкой, при этом изменит свой цвет (обычно на желтый), и если курсорную рамку убрать с этого имени, новая окраска сохранится - машина запоминает отбираемые файлы.
Если их надо скопировать,- нажмите F5, переместить - F6, уничтожить - F8. Машинa переспросит, надо ли выполнять эти действия, и с нажатием клавиши Enter выполнит их.
F7. Создать новую директорию, то есть вырастить новую голую "ветку" дерева, на котором затем с помощью копирования и переноса можно будет наращивать "листочки"-файлы. Искусство такого выращивания советуем приобретать при поддержке опытного программиста или пользователя ЭВМ. Очень советуем завести знакомство с таким человеком и в трудных случаях обращаться к нему.
F8. Уничтожить выбранный файл или группу файлов. Эта операция очень деликатная, приводящая к необратимым последствиям. Поэтому дружественная машина перед исполнением этой команды может несколько раз переспросить человека: "Are you sure - Вы уверены?". Свободный перевод этой фразы, более точно отражающий ее смысл, такой: "Вы я здравом уме и к твердой памяти?". Обидеться на это может только человек, никогда не хватавшийся в досаде за голову, уничтожив нужные данные.
F9. Вызвать на верхней части экрана дисплея дополнительное меню и при необходимости - все новые его разделы, которые "вываливаются" при нажатии клавиши Enter, причем не все сразу, а последовательно, в соответствии с просьбами пользователя.
Такие картинки можно увидеть на экране дисплея, работая в режиме, обращения к которому происходят при нажатии клавиши F9
Как только нажата клавиша F9, в верхней части экрана появляемся строка Left File Commands Oplions Right (верхний рисунок). Допустим, нас интересует подробная информации о директориях и файлах, перечисленных на левой панели. Подводим курсорную рамку к слову Left и нажимаем клавишу Enter. Появляется перечень возможностей (левое верхнее окошко на рисунке): можно получить короткую информацию (Bief - тогда появятся только имена файлов и директорий), полную информацию (Full - к именам добавится дополнительная информация: размер файла, время и дата его создания и т.д.; это показано на нижнем левом рисунке), информацию о занятом объеме памяти на диске, который отряжен на соседней панели (Info), о структуре, по которой объединяются директории и поддиректории (Tree - см. правый нижний рисунок); можно отсортировать файлы по имени (Name), по расширению (eXtension), то есть по коротким припискам к имени файлов - ехе, bat и т.д., по времени записи (tiMe) и по размеру (Size). Надо лишь переместить курсорную рамку на нужное слово и нажать клавишу Enter.
Режим Commands позволяет проектировать дерево информации (NCD tree), искать потерянный и ветвях дерева файл но его имени (Find file), создавать меню пользователя и проводить другие операции, перечисленные в окошке, которое возникает, когда рамка "наведена" па слово Commands и нажата клавиша Enter.
Режим Options предоставляет дополнительные возможности: регулировать цвет (Color - дальтоники могут его совсем отключить), автоматически запускать меню пользователя (Auto menus)... Мы могли бы закончить этот абзац так же, как и предыдущие: "... и проводить другие операции", но читатель, вероятно, и сам догадывается, что за один paз невозможно уяснить все возможности богатой системы. Тем более что полного ее описания, пожалуй, не знает никто: разработчик Питер Нортон его уже, по-видимому, забыл, a пользователи еще до конца не изучили.
F10. У каждого, даже самого приятного дела всегда должен быть конец. Клавиша F10 позволяет завершить работу с системой.
Завершим этот первый разговор о ней и мы. Остаток занятия посвятим системе PCTOOLS. Это вторая по популярности инструментальная система. Одна ил ее "картинок" показана на рисунке внизу. Им представлено содержимое директории CHESS жесткого диска С, хранящей 235783 байт в 9 файлах, обеспечивающих игру с компьютером в шахматы.
Типичная структура изображений, появляющихся на экране дисплея при работе с системой PCTOOLS.
PCTOOLS по сравнению с NC имеет свои плюсы и минусы, но по возможностям они близки. Что выбрать для работы - NC, PCTOOLS или какую-нибудь другую систему,- определяется не какими-то принципиальными соображениями, а вкусами и привычками пользователя. В этих системах реализованы несколько разные технологии диалога человека с машиной.
Если в NС человек отдает машине команды в основном через нажатие функциональных клавиш или через "мышь", то в PCTOOLS теми же функциями нагружены клавиши клавиатуры с буквами, выделенными в ключевых словах меню (см. нижнюю часть рисунка).
Если клавиша Enter (Ввод) в NC служит для открытия директории (выбора направления поиска) или для запуска программного файла, то в PCTOOI.S она используется для выбора файлов, предназначенных для дальнейших действий: копирования, стирания и т.д.
Можно отмстить, например, такие плюсы PCTOOLS но сравнению с NC, как возможность восстановить файл после его ошибочного уничтожении или что-то еще, но мы воздержимся от этого. Перечислять все плюсы и минусы NC и PCTOOLS - дело опасное. Фирмы-разработчики ведь не стоят на месте и выбрасывают на рынок все новые версии пакетов с учетом достижений конкурента.
3/90
КОНКУРС ПРОГРАММИСТОВ
Пять лет назад в советских школах стали появляться первые компьютеры "Ямаха". Сегодня их число достигло 30 тысяч. На этих машинах выросло целое поколение молодых программистов, сумевших до тонкостей освоить все возможности "Ямаха-MSX". Сегодня они работают на более мощных машинах, главным образом типа IBM.
Японская фирма "Синдзидайся" заинтересована в поиске талантливых молодых программистов и в общем подъеме культуры программирования. Один из путей к этому - конкурс. Получив поддержку со стороны фирмы "АСКИ Корпорейшн" и Госкомитета по народному образованию СССР, удалось реализовать идею такого конкурса в Советском Союзе.
Его официальными учредителями стали Главные учебно-методические управления высшего и общего среднего образования, Главное управление научно-исследовательских работ Гособразования СССР совместно с фирмами "АСКИ" и "Снндзидайся Ко. Лтд." (Япония), Коммерческим центром Гособразования СССР, Научно-практическим центром "Образование" при Московском государственном педагогическом институте им.В.И.Ленина.
Итак, проводится открытый всесоюзный конкурс на лучшую программу для персональных компьютеров типа MSX, IBM PC и совместимых с ними.
Краткая справка. Фирма "Синдзидайся Ко. Лтд." сотрудничает с СССР с 1964 года, именно эта фирма поставляет в СССР компьютеры MSX-I, MSX-II (КУВТ "Ямаха"). Фирма "АСКИ Корпорейшн" - крупнейшая японская фирма по производству программного обеспечения (softwarehouse), которая совместно с фирмой Microsoft (USA) разработала стандарт MSX.
Срок подачи заявлений и программ для участия в конкурсе - с 1 февраля по 1 мая 1990 года. Подведение итогов в конце июня 1990 года.
В конкурсе могут попробовать силы все желающие - отдельные лица или организации. Всем участникам конкурса гарантируется сохранность авторских прав.
Решившим испытать свои силы необходимо получить бланк заявки на участие в конкурсе. Обращайтесь за ним в Учебно-производственный центр вычислительной техники Октябрьского района г.Москвы (адрес: 117296, г.Москва, пр.Ломоносова, д.16, тел.133-20-50), представляющий интересы японского учредителя, а также в Центр "Информатика и дети" (630098, г.Новосибирск-90, Приморская 22, тел.45-09-57).
Сведения, касающиеся советской стороны, а также технические подробности, в зависимости от выбранного направления, можно узнать в одной из трех организаций:
- программы для персональных компьютеров "MSX-I-II" - в Московском государственном педагогическом институте им.В.И.Ленина (119435, Москва, М.Пироговская 1. тел.264-25-56, 264-45-74);
- программные продукты учебного назначения для персональных компьютеров IBM PC и совместимых с ними - в научно-исследовательском институте проблем высшей школы (103062, Москва, Подсосенский пер. 20, тел.297-65-15, 297-55-26);
- программные продукты, предназначенные для выполнения научных работ на персональных компьютерах IBM PC и совместимых с ними - в коммерческом центре Гособразовання СССР (129843, Москва, Щепкина 22, тел.284-34-14, 288-46-70).
Обращайтесь по этим адресам за любой необходимой информацией, касающейся конкурса. Программы представляют записанными на флоппи-диске с наклейкой, на которой указано название программы, имя и адрес автора, тип компьютера и требования к нему. Требуется также сопроводительная документация - руководство с указаниями функций программы и особенностей управления ею, а также другой полезной информацией, техническая документация на программный продукт, заявка на участие в конкурсе.
Победителей ждет недельная поездка в Японию. Кроме того, занявшие первые места (4 победителя) награждаются призом в 3000 долларов или профессиональным компьютером, "серебряные" призеры (3 победителя) получат призы в 1000 долларов или, на выбор, цветной телевизор, либо видеомагнитофон. Обладатели "бронзы" (3 победителя) - компьютер "MSX-II". Победители конкурса подписывают лицензионный контракт с учредителем с советской или японской стороны для реализации этих программ в СССР или на мировом рынке соответственно.
Желаем успеха!
Глава фирмы "Синдзидайся" (г.Москва)
ХАДЖИМЕ КАТО
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ВТОРОЕ, где рассказано о двух популярных инструментальных системах: Norton Commander (фирмы Norton) и PCTOOLS (фирмы Central Point Software). Они дают возможность аккуратно и компактно размещать на гибких и жестких дисках (как еще говорят, в архивной памяти) нужные для работы программы и записи, систематически чистить диски от устаревших записей, быстро находить требуемую информацию, исправлять и дополнять ее.
Читателю может показаться, что машина, с которой мы работаем на нынешнем занятии, не та, что была на прежнем. Тогда мы только-только извлекли ее из упаковочных коробок, а сейчас ее диски уже заполнены информацией.
Что можно сказать на это? Во-первых, компьютер может поставляться с уже заполненными дисками, на которых часто есть и инструментальные системы. Во-вторых, многие читатели "Школы" проходят ее занятия, пользуясь не новеньким компьютером, а давно работающим, имеющим богатую архивную память. В-третьих, даже если компьютер совершенно гол, полезно знать, что должно быть или обычно бывает ни его гибких и жестких дисках.
Ведут занятие кандидат технических наук В.Ф.ОЧКОВ и кандидат физико-математических наук Ю.В.ПОБ0ЖИЙ.
Первое занятие в "Школе: пользователя ЭВМ" мы закончили на том, что познакомились с четырьмя командами дисковой операционной системы, при помощи которых отмстили на первый запрос включенной машины и даже сумели совершить некоторое простое действие - перенести с гибкого диска на жесткий нужную нам программу.
Интересно, какое чувство вызвал у читателей этот первый маленький успех? Радость? Желание заучить все подобные команды?
Утверждать это да всех читателей мы бы не рискнули. Вполне возможно, что кое у кого реакция била прямо противоположной: "Ну вот, начинается! Мне бы дай бог запомнить то, что относится к моей работе. А здесь еще предлагают учить какую-то китайскую грамоту, какие-то там команды дисковой операционной системы... Нет уж, благодарю. Обходился я раньше без машины и сейчас как-нибудь обойдусь".
Такова жизнь! Есть люди, которые ценой сколь угодно напряженных усилий не преодолеют свою неспособность к изучению языков. И тем не менее опыт показывает: когда общение становится жизненной необходимостью, то чужой язык усваивается за несколько недель.
Почему же такое возможно? С чего начинается выработка общего языка?
Вспомним классический пример: Робинзон и Пятница, их первый, если так можно выразиться, разговор. Вот как об этом рассказывает сам Робинзон: "Я стал кричать ему и делать знаки, чтобы он подошел ближе. Он понял: ступил два шага и стал как вкопанный. Я опять сделал ему знак, чтобы он приблизился ко мне, и вообще старался всячески ободрить его. Он подходил ко мне все ближе и ближе".
Мы не знаем, увлекался ли чтением популярной книги Даниеля Дефо американский программист Питер Нортон, создатель не менее популярной (но крайней мере в компьютерном мире) системы Norton Commander, или сокращенно NC. Но беремся утверждать, что глубинный смысл его системы сродни старым истинам: лучше один раз увидеть, чем сто раз услышать: лучше один раз показать наглядно, чем сто раз описать на словах.
На языке жестов можно высказывать простейшие просьбы и отдавать несложные приказания. Если нужно, чтобы кто-то перенес какую-то вещь с одного места на другое, то можно просто ткнуть пальцем к эту вещь и указать, куда ее перенести. Такой не совсем вежливый, но однозначный (а это главное!) жест понятен и без пространных разглагольствований.
Пользователь ЭВМ то и дело просит машину выполнить примерно такие же действия: "Возьми этот файл и перенеси вот сюда. Переименуй эту программу. Сотри эту запись. Дай-ка я погляжу, что у тебя хранится здесь".
Система NC хорошо справляется с такими заданиями. Но хороша она не только этим.
Представьте себе корабль в открытом океане. Машины и механизмы, приводящие его в движение, спрятаны в трюме. Если капитан будет находиться там, он сможет непосредственно наблюдать их работу и управлять ею до мельчайших деталей. Но именно в этом случае кораблю в наибольшей степени грозит крушение. Место капитана - в надстройке над палубой, на капитанском мостике. Отсюда открывается широкий вид на необозримые просторы океана. Сюда же стекается обобщенная информация о работе машин и механизмов - она отображается на шкалах приборов и индикаторов. Владея ситуацией и целом, капитан приходит к правильным решениям наиболее верным путем - от главного к частностям. Если он хочет поподробнее рассмотреть какой-то объект на горизонте, он подносит к глазам бинокль. Если ему требуется получить более подробную информацию из машинного отделения или пояснить свой приказ, отданный поворотом штурвала или нажатием кнопки, on подносит к уху телефонную трубку.
Системы, подобные NC, называются надстройками над дисковой операционной системой. Они позволяют отдавать компьютеру инструкции, не детализируя их в командах операционной системы, формулируя их в общих чертах,- все остальное умная машина домысливает сама. Таких систем уже довольно много. Рассказ о них мы решили начать с NC, потому что сегодня она наиболее распространена. Следующая за ней но степени распространенности - PCTOOLS, затрагиваемая в самом конце этого занятия. В основе ее названия - английское слово tools - инструменты, PC - это personal computer, персональный компьютер, в целом же это название следует понимать как "инструменты персонального компьютера". Заметим, что вспомогательная роль таких систем подчеркивается их собирательным обозначением: "инструментальные системы".
Какой же вид открывается перед пользователем ЭВМ на экране дисплея, когда он включает машину?
Если машина новая, с совершенно пустой памятью, то вид этот довольно беспросветный: на черном экране одиноко горит путеводной звездочкой знакомый нам символ С:>. По если архивная намять машины уже заполнена (а наше нынешнее занятие как раз и продиктовано проблемой, как не утонуть в этом кладезе информации) и хозяин компьютера вставил в запускающую программу обращение к системе NC, то машина сразу после ее включения выведет на экран своеобразный путеводитель но своей архивной памяти. Как он выглядит, показано на рисунке.
Такая картинка появляется на экране дисплея после вызова системы "Нортон Коммандер".
(Надо заметить, что на экране эта картина вырисовывается белыми линиями по черному фону. Нам же удобнее показывать ее в негативном исполнении, чтобы не утомлять глаза читателей чернотой).
Еще не разобравшись в структуре всей картинки, вы замечаете, что она составлена из слов английского языка. В компьютерном мире он стал международным. Правда, есть полулегальные (то есть сделанные без ведома фирм-разработчиков) версии NC и PCTOOLS с русскими (болгарскими, чешскими, польскими и т.д.) словами. Благо это или зло? С точки зрения одного человека, благо: так понятнее. С точки зрения общего развития, это тупиковый путь, ведущий вспять, к вавилонскому столпотворению. Лучше поступить так, как принято в балете: там стала общепринятой французская терминология, и слова "па-де-де", "антраша" понятны всякому культурному человеку в любой стране. Компьютеры становятся частью современной культуры, так что пользователю ЭВМ следует запомнить пару сотен терминов, которые пришли к нам из английского языка: file, print и т.п. (Кстати, не исключено, что с течением времени кое-какие из этих слов превратятся из специальных в бытовые, как это произошло, например, со словом "зациклиться").
Некоторые из этих слов, перейдя в компьютерный мир, сохранили свой прямой смысл или слегка изменили его. Например, print: в буквальном смысле - печатать, в "компьютерном" - выводить на любое устройство отображения информации: на экран дисплея, на бумагу (в этом случае она действительно печатается). Другие слова превратились в специальные термины. Например, file: (читается "файл") буквально - папка, картотека, с точки зрения пользователя ЭВМ - именованная область памяти на диске, где хранится какая-то информация. Еще одни пример, уже знакомый нам,- слово directory. Здесь вообще лучше воздержаться от попыток перевода, как это делают некоторые (библиотека, каталог, справочник). Лучше ввести его в наш язык в английском звучании (директория) и понимать как систему указателей в группе файлов. Такое понимание термина мы вскоре уточним, поскольку он вот-вот появится в пашем разговоре.
Итак, вернемся к нашей теме - вглядимся в картинку на экране. Она разбита на две половинки (на две панели, как говорят программисты), в каждой из которых содержится информация о директориях и корневых файлах двух дисковых устройств, помеченных как С (правая часть) и D (левая часть); не будем пока обращать внимании на маленькую рамку в левой части - о ней речь впереди).
Раз промелькнуло слово "корневых", значит, подошло время рассказать о принципах хранения информации в архивной памяти персональных компьютеров, совместимых с IBM PC.
Современный персональный компьютер может хранить в своей памяти сотни мегабайт. Если информация такого объема записана подряд, линейно, ориентироваться в ней невозможно. Поэтому ее организуют в структуре дерева с "листьями" (файлами), "ветвями" (директориями разных уровней, так что одна входит в другую, более высокого уровня, подобно тому, как маленькая ветка дерева присоединяется к более крупной) и "корнем" (под ним можно понимать директорию, в которой зарегистрированы как директории менее высокого уровня, так и отдельные файлы). Такая структура не дает утонуть в море информации огромных масштабов, которые свойственны современным персональным компьютерам. Надо только знать, что имена директорий выводятся на экран прописными буквами, а строчными буквами даются имена файлов.
Взгляните на рисунок еще раз. Вы уже заметили, вероятно: одно из имен написано не черным по белому, а белым по черному. Если учесть негативный характер нашей картинки, то что значит, что на экране одно из слов выступает темными буквами на светлом фоне. Это светлое поле (его называют курсорной рамкой) можно передвигать по экрану клавишами "вверх", "вниз", "влево", "вправо" и перебрасывать из одной панели в другую с помощью клавиши Tab. Так можно перенести курсорную рамку на любое интересующее нас имя файла или директории. Что стоит за ним, мы узнаем, нажав клавишу Enter. Такое действие имеет одно из двух последствий.
1. Если курсорная рамка находилась на имени директории, то происходит вход в нее: на той половине экрана, где стояло выбранное имя, появится список поддиректорий и файлов, содержащихся в данной директории. Если перевести курсорную рамку на имя какой-то поддиректории и нажать клавишу Enter, можно ознакомиться с ее содержанием и так переходить к поддиректориям все более низкого уровня. Вернуться в "корень" можно, набрав на клавишах cd .. и затем нажав клавишу Enter.
2. Если курсорная рамка находилась на имени файла, то тут возможны два варианта. Если файл представляет собой какую-то программу и после его имени через точку стоит приписка exe, com или bat, то программа начнет выполниться. Если файл содержит какой-то текст, он будет выведен на экран. (Такие файлы можно опознать по припискам - как говорят программисты, расширениям - dос, txt, me и некоторым другим).
Вот и получается, что с помощью системы Norton Commander пользователь ЭВМ изъясняется с машиной как бы на языке жестов. "Ткнул" в имя директории, и машина поняла это как просьбу: "Покажи, что содержится в этой директории". "Ткнул" в имя программного файла, и машина восприняла такой жест как приказ: "Выполни эту программу".
(Впрочем, машина не откажет и любителю поговорить с ней на языке команд дисковой операционной системы. Приглядитесь: в нижней части картинки по-прежнему стоит сочетание символов С:>. Но оно так незаметно, что это настраивает на более наглядный и попятный способ общения, о котором у нас идет речь).
Сказанное до сих нор относилось к структуре картинки, возникающей на экране. Что же касается ее содержания, то оно зависит от интересов и вкусов того, кто наполнял архивную память компьютера. Попробуем определить их, читая имена директорий. Можем заверить читателя, что набор их весьма типичен, и в том или ином виде их можно обнаружить, заглянув в архивную память практически любого персонального компьютера, принадлежащего опытному пользователю.
Начнем с правой панели, озаглавленной буквой С.
ANTIVIR - это аптечка персонального компьютера. За этим словом скрыты названия "лекарств" - программных средств поиска и уничтожения компьютерных вирусов.
BETA - программные средства, позволяющие компьютеру работать с буквами кириллицы.
CHESS - группа файлов, превращающих компьютер в шахматного партнера. Хозяин машины, видимо, знает: хорошо работает тот, кто умеет хорошо отдыхать.
DRHALO - многочисленная группа файлов, позволяющая рисовать и чертить на экране дисплея с помощью "мыши" (см. фото).
Сравните этот снимок с тем, который иллюстрировал первое занятие "Школы". Деталь, которая была заретуширована тогда (о ней еще не было речи), и появилась сейчас, называется "мышью". Это небольшая коробочка, соединенная проводом с центральным блоком или монитором. Сверху на ней две (у некоторых моделей три) клавиши, снизу (на снимке этого не видно) - шарик: он вращается, если "мышь" двигать, прижав к столу, и по проводу сообщает центральному процессору о своих перемещениях. В центральном процессоре эта информация превращается в команды, которые управляют перемещением цветной метки на экране. Так можно рисовать на экране: если нажать левую клавишу на корпусе "мыши", цветная метка будет оставлять след, если отпустить, не будет. Цвет такого рисунка выбирается также с помощью "мыши". Дело в том, что, когда компьютер переводится в режим работы с нею, на экране возникает поле в рамке из условных знаков. В эту рамку вплетен столбик из цветных клеток. Где-то на поле есть и изображение стрелки. С помощью "мыши" стрелку подводят н клетке нужного цвета, нажимают левую клавишу, и компьютер запоминает, каким цветом рисовать. Ряд других знаков обозначает способы, которыми можно пользоваться при создании рисунка: вести широкую полосу или узкую линию, заливать площадь, ограниченную замкнутым контуром, и т.д. Нужный способ также указывается с помощью "мыши".
Режимов работы с "мышью" много. Например, с ее помощью удобно выбирать нужные для работы директории и файлы. Вместо того, чтобы перемещать по экрану засветку, нажимая клавиши "вверх", "вниз", "впрaвo", "влево", можно уназывать стрелкой на то или иное имя, а потом нажимать левую клавишу на корпусе "мыши".
Если нужно отменить номанду, поданную через левую клавишу "мыши", нажимают на правую.
LEX и LEXICON - два популярных русифицированных текстовых процессора, разработанных Е.И.Веселовым из Вычислительного центра АН СССР. Текстовый процессор - это программа, превращающая компьютер в интеллектуальную пишущую машинку. С его помощью в тексте, хранящемся в архивной памяти, можно заменить слово, строку или абзац другим, удалить или вставить некоторый фрагмент текста, задать шрифт и формат при печати текста на бумаге и т.д.
Перейдем на левую половинку экрана, к диску D.
PAINT - группа файлов, с помощью которых можно делать цветные рисунки на экране дисплея.
SK - пакет программ делового человека, помогающий вести дневники, содержать в порядке записные книжки, списки телефонов, планировать свою работу.
Итак, мы бегло просмотрели содержимое жестких дисков С и D. А что записано на других? Как ознакомиться с их содержимым?
Для этого надо нажать клавишу Alt (alternative, выбор) и одновременно - F1. В середине левой панели появится маленькая рамка с вопросом: какой диск пас интересует? И далее буквы: А, В, С, D, Е и т.д. (Если вы хотите, чтобы рамка появилась на правой панели, нажмите не F1, а F2.) Есть в рамке и светлое пятно-курсор. Вы передвигаете его на нужную букву, допустим, А и нажимаете клавишу Enter. На левой панели появится список директорий и файлов, имеющихся на гибком диске, который в этот момент вставлен в дисковод А.
Если вы забыли поставить гибкий диск в дисковод, машина укажет на вашу оплошность.
Так можно просмотреть всю архивную память. Столбцы строчек будут сменять друг друга, но в самом низу экрана будет присутствовать все та же строка из десяти слов под номерами - вы, вероятно, уже обратили на нее внимание, разглядывая первый рисунок.
Эта строчка способна рассказать вам о компьютере не меньше, чем вы о нем узнали до сих пор. Помещенные в ней десять загадочных слов намекают на те услуги машины (подобные перечни услуг программисты называют меню), которые скрываются за функциональными клавишами F1, F2 и так далее до F10. Опишем вкратце те возможности, которые предоставляются ими:
F1. Получить подсказку о работе с системой: как двигать курсор (CURSOR MOVEMENT) по буквам (Char) и словам (Word) при редактировании текстов, стирать информацию (DELETE), работать с панелями (PANELS) и о многом другом (OTHER).
Клавиша F1 почти для всех программных продуктов - это палочка-выручалочка, хвататься за которую нужно и сложных ситуациях, когда не знаешь, как дальше поступить. На некоторых клавиатурах ее так и обозначают: "Help", а не F1.
F2. Включить в работу свое индивидуальное меню. Разумеется, его надо прежде составить: обозначить "блюда" и указать машине, что она должна сделать для выполнения указанных работ. Такое меню мы видим в маленькой рамке на первом рисунке. Как видно, составитель этого небольшого списка работает не только с Norton Commander, но и с PCTOOLS, пользуется принтером фирмы Epson и время от времени проверяет его работоспособность (Diagnostic), программирует на Бейсике, работает с пакетом Framework и текстовым процессором Лексикон. Перемещая курсорную рамку на нужную строку индивидуальною меню, пользователь приглашает компьютер к желаемой работе.
F3. Посмотреть выбранный файл, вызвав его содержимое на экран дисплея. Для этого курсорная рамка перемещается на имя нужного файла и нажимается клавиша F3. Содержимое файла выводится на дисплей постранично. Менять страницы позволяют клавиши PgUp (Page Up, страницы листаются по нарастающей) н PgDn (Page Down, но убывающей).
При этом NC дает пользователю возможность найти нужную информацию в файле по ключевому слову. Дело в том, что сразу после нажатия клавиши F3 нижняя строчка на экране заменяется на новую: 1.Help 7.Search (искать) 10.Quit (покидать). Если теперь нажить клавишу F7, в середине экрана появится приглашение набрать ключевое слово. Вот оно набрано, нажата клавиша Enter, и в тексте файла это слово уже выделено курсорной рамкой. Так же указывается нужный участок текста.
F4. Отредактировать выбранный файл. При этом информация, хранящаяся в файле, как и при нажатии клавиши F3, выводится на экран дисплея. Но здесь пользователь имеет возможность внести в записи изменения: подвести курсор к какой-то букве и заменить ее или убрать вовсе...
Но работать буковка по буковке - дело нудное. Допустим, выбранный файл представляет собой документ, где многократно упоминаются фамилии сотрудниц какого-то учреждения, а одна из них вышла замуж и сменила фамилию. Нельзя ли в тексте файла сменить эту фамилию в один прием и притом во всех местах, где она встречается?
Можно. Не зря ведь при нажатии на клавишу F4 нижняя строка заменяется на такую: 1.Help 2.Save (записать) 7.Search 8.Replace (заменить) 10.Quit. Нажимаем клавишу F8, и машина в маленькой рамке, возникающей в середине экрана, спрашивает, какое слово заменить. Набираем его и нажимаем клавишу Enter. Новый вопрос машины: на какое слово заменить? Набрали, еще раз нажали Enter. В тексте файл и курсорная рамка перепрыгнула на слово, которое следует заменить. Опять вопрос машины: заменять? Если вы считаете, что слово найдено не в том месте, нажмите клавишу со стрелкой вверх или вниз - машина будет искать заданное слово в предыдущей или последующей части файла. Если курсорная рамка стоит на верном месте, нажимайте клавишу Enter. Машина заменит это слово, потом найдет его в следующих строках и опять спросит: а тут менять? Так будет просмотрен весь файл.
F5. Скопировать выбранный файл на новое место на том же или на другом диске. Предварительно с помощью клавиш Alt и F1 (или F2) надо вывести на экран опись содержимого этого диска, где находится копируемый файл, и убедиться, что он там есть. Имя этого файла выделяют курсорной рамкой, нажимают клавишу F5, и в середине экрана машина сообщает: я копирую файл на диск такой-то допустим, С. Если этот диск вас не устраивает, а желателен, скажем, Е,- вы с помощью курсора заменяете С на Е. Нажимаете клавишу Enter - и файл копируется на место, которое указывает его имя в алфавитном порядке имен других файлов-соседей. Пользователь может задавать желаемое место и по другим правилам.
Владелец компьютера прибегает к услугам клавиши F5 по самым разнообразным поводам: когда расширяет программное обеспечение своей машины, перенося программы со сменных гибких дисков (A, В) на жесткие (С, D, Е...), когда распечатывает файлы на принтере (в этом случае вместо названия диска, на который должен быть скопирован файл, указывается слово PRN), когда передает информацию на другие машины, объединенные с его машиной в сеть,- все это не что иное, как различные виды копирования, и мы еще поговорим об этом далее.
F6. Перенести файл на новое место. Все происходит так же, как при работе с клавишей F5, с тем лишь отличием, что на старом месте перемещаемый файл уничтожается.
Клавиша F6 позволяет еще и переименовывать файлы. Недаром вслед за цифрой 6 в нижней строке на экране стоит не одно, а два сокращения - Ren (rename, переименовать) и Mov (move, двигать).
Чтобы машина поняла, что предстоит не перемещение, а переименование, одну из панелей надо погасить: нажать клавишу Ctrl и одновременно F1 (тогда погаснет левая панель) или F2 (тогда погаснет правая; укажем сразу, что повторение такой операции "зажигает" погашенную панель). Заметив это, машина отвечает вопросом в маленькой рамке: какое имя надо присвоить файлу? Вы набираете это имя, нажимаете клавишу Enter - и файл "переносится" на то же место, которое занимал прежде, но уже с новым именем.
Следует сказать, что и копировать, и переносить можно сразу несколько файлов. Для этого надо нажать клавишу Ins (insert - вставлять, вносить). Имя файла, которое было указано курсорной рамкой, при этом изменит свой цвет (обычно на желтый), и если курсорную рамку убрать с этого имени, новая окраска сохранится - машина запоминает отбираемые файлы.
Если их надо скопировать,- нажмите F5, переместить - F6, уничтожить - F8. Машинa переспросит, надо ли выполнять эти действия, и с нажатием клавиши Enter выполнит их.
F7. Создать новую директорию, то есть вырастить новую голую "ветку" дерева, на котором затем с помощью копирования и переноса можно будет наращивать "листочки"-файлы. Искусство такого выращивания советуем приобретать при поддержке опытного программиста или пользователя ЭВМ. Очень советуем завести знакомство с таким человеком и в трудных случаях обращаться к нему.
F8. Уничтожить выбранный файл или группу файлов. Эта операция очень деликатная, приводящая к необратимым последствиям. Поэтому дружественная машина перед исполнением этой команды может несколько раз переспросить человека: "Are you sure - Вы уверены?". Свободный перевод этой фразы, более точно отражающий ее смысл, такой: "Вы я здравом уме и к твердой памяти?". Обидеться на это может только человек, никогда не хватавшийся в досаде за голову, уничтожив нужные данные.
F9. Вызвать на верхней части экрана дисплея дополнительное меню и при необходимости - все новые его разделы, которые "вываливаются" при нажатии клавиши Enter, причем не все сразу, а последовательно, в соответствии с просьбами пользователя.
Такие картинки можно увидеть на экране дисплея, работая в режиме, обращения к которому происходят при нажатии клавиши F9
Как только нажата клавиша F9, в верхней части экрана появляемся строка Left File Commands Oplions Right (верхний рисунок). Допустим, нас интересует подробная информации о директориях и файлах, перечисленных на левой панели. Подводим курсорную рамку к слову Left и нажимаем клавишу Enter. Появляется перечень возможностей (левое верхнее окошко на рисунке): можно получить короткую информацию (Bief - тогда появятся только имена файлов и директорий), полную информацию (Full - к именам добавится дополнительная информация: размер файла, время и дата его создания и т.д.; это показано на нижнем левом рисунке), информацию о занятом объеме памяти на диске, который отряжен на соседней панели (Info), о структуре, по которой объединяются директории и поддиректории (Tree - см. правый нижний рисунок); можно отсортировать файлы по имени (Name), по расширению (eXtension), то есть по коротким припискам к имени файлов - ехе, bat и т.д., по времени записи (tiMe) и по размеру (Size). Надо лишь переместить курсорную рамку на нужное слово и нажать клавишу Enter.
Режим Commands позволяет проектировать дерево информации (NCD tree), искать потерянный и ветвях дерева файл но его имени (Find file), создавать меню пользователя и проводить другие операции, перечисленные в окошке, которое возникает, когда рамка "наведена" па слово Commands и нажата клавиша Enter.
Режим Options предоставляет дополнительные возможности: регулировать цвет (Color - дальтоники могут его совсем отключить), автоматически запускать меню пользователя (Auto menus)... Мы могли бы закончить этот абзац так же, как и предыдущие: "... и проводить другие операции", но читатель, вероятно, и сам догадывается, что за один paз невозможно уяснить все возможности богатой системы. Тем более что полного ее описания, пожалуй, не знает никто: разработчик Питер Нортон его уже, по-видимому, забыл, a пользователи еще до конца не изучили.
F10. У каждого, даже самого приятного дела всегда должен быть конец. Клавиша F10 позволяет завершить работу с системой.
Завершим этот первый разговор о ней и мы. Остаток занятия посвятим системе PCTOOLS. Это вторая по популярности инструментальная система. Одна ил ее "картинок" показана на рисунке внизу. Им представлено содержимое директории CHESS жесткого диска С, хранящей 235783 байт в 9 файлах, обеспечивающих игру с компьютером в шахматы.
Типичная структура изображений, появляющихся на экране дисплея при работе с системой PCTOOLS.
PCTOOLS по сравнению с NC имеет свои плюсы и минусы, но по возможностям они близки. Что выбрать для работы - NC, PCTOOLS или какую-нибудь другую систему,- определяется не какими-то принципиальными соображениями, а вкусами и привычками пользователя. В этих системах реализованы несколько разные технологии диалога человека с машиной.
Если в NС человек отдает машине команды в основном через нажатие функциональных клавиш или через "мышь", то в PCTOOLS теми же функциями нагружены клавиши клавиатуры с буквами, выделенными в ключевых словах меню (см. нижнюю часть рисунка).
Если клавиша Enter (Ввод) в NC служит для открытия директории (выбора направления поиска) или для запуска программного файла, то в PCTOOI.S она используется для выбора файлов, предназначенных для дальнейших действий: копирования, стирания и т.д.
Можно отмстить, например, такие плюсы PCTOOLS но сравнению с NC, как возможность восстановить файл после его ошибочного уничтожении или что-то еще, но мы воздержимся от этого. Перечислять все плюсы и минусы NC и PCTOOLS - дело опасное. Фирмы-разработчики ведь не стоят на месте и выбрасывают на рынок все новые версии пакетов с учетом достижений конкурента.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
4/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ
Предыдущий выпуск нашего раздела был целиком посвящен химии. В ответ на призыв редакции программы для будущих тематических выпусков присылаются представителями других дисциплин (называем их в порядке убывания числа поступивших программ): медицины; астрономии и геодезии; экономики; строительства и архитектуры. Кто первым сумеет укомплектовать полноценный выпуск, сказать трудно... Ждем новых программ! А пока предоставляем слово владельцам программируемых микрокалькуляторов, создающим программы математического характера.
Следовало бы заметить, к слову, что многие из присылаемых в редакцию программ не могут увидеть света из-за небрежного оформления. Мы вновь повторяем свою просьбу всем, кто предлагает нам свои программы. Пишите их с одной стороны листа с полями, в тех обозначениях и так, как это принято в нашем разделе. Программа должна быть снабжена инструкцией, тестом, алгоритмом или описанием предназначения отдельных ее частей. Если вы искали аналогичную программу в литературе и не нашли, то укажите просмотренные источники. Если программа является модернизацией опубликованной или использует идею опубликованной, об этом нужно сообщить. Перед отправкой письма в редакцию наберите программу по тексту письма и решите приведенный в письме тест. Это позволит выявить описки и опечатки в программе и, безусловно, ускорит ее рассмотрение.
НА ВСЕ СЛУЧАИ ЖИЗНИ
За почти четыре года эксплуатации МК-54 я обнаружил, что чаще всего приходится пользоваться двумя программами - программой поиска корней уравнения и программой поиска экстремума функции одной переменной. И если для поиска корня можно выбирать между методами "делением отрезка пополам", "хорд-секущих" и экзотической "обратной интерполяцией/экстраполяцией", для поиска экстремума предлагается единственный алгоритм: вычислив значение функции для некоторого начального аргумента ("эталон"), дают аргументу фиксированное приращение ("шаг"), вычисляют значение функции от нового аргумента и сравнивают его с эталоном. Если ищут максимум и новое значение больше эталона, оно становится эталоном, а его аргумент - начальной точкой, и процедура повторяется с тем же шагом. В противном случае меняют знак шага на противоположный и уменьшают, в зависимости от пристрастий автора программы, в 2 или в 10 раз его величину. Аргумент, как затухающий маятник, качается вокруг искомой точки, и когда амплитуда колебаний станет меньше заданной погрешности, вычисления прекращают.
Выполненная на базе этого алгоритма программа очень проста и компактна, но работает удручающе медленно. "Проскочив" максимум на один большой шаг. она неторопливо возвращается обратно мелкими шажками, бесполезно вычисляя ненужные промежуточные значения. В результате для получения решения с точностью до машинного нуля нужно не менее 75 раз обратиться к подпрограмме вычисления функции, как правило, тоже достаточно сложной. В поисках выхода я перепробовал несколько делителей и обнаружил, что наилучший компромисс между числом колебаний маятника и количеством обращений на каждом из них дает четверка. Если делить шаг на 4, число, обращений не превышает 62, а при "удобном" аргументе экстремума (мало одинаковых цифр, особенно нулей) падает до 52.
Убедившись, что больше ничего из алгоритма не "выжать", я попробовал применить в нем принцип деления шага ПЕРЕД КАЖДЫМ вычислением (по аналогии с методом поиска корня "делением пополам") и не менять начальную точку, если новое значение функции не больше эталона, но, конечно, изменять знак шага, организуя "маятниковое" движение.
Как уменьшать шаг? Представим себе, что исследуемая функция имеет очень крутой подъем перед максимумом и пологий спуск после него. Задав начальную точку перед самым максимумом и сделав единичный шаг, мы можем получить значение функции, превышающее эталон, и, следовательно, примем новую точку за начальную и сделаем шаг длиной q в прежнем направлении. В следующей точке значение функции будет меньше эталона, и мы начнем попятное движение из начальной точки шагами длиной q**2; q**3; q**4 и так далее. Сумма длин шагов, представляющих собой геометрическую прогрессию со знаменателем q, должна в пределе обеспечить возвращение к исходной точке, т.е. на весь единичный шаг. Иными словами, должно выполняться соотношение q**2/(1-q)=1.
Единственным положительным корнем этого уравнения является q=(sqr(5)-1)/2=0.618034=1/1.618034. Оказывается, предлагаемый алгоритм просто обязан использовать "золотое сечение" отрезка, поскольку больший делитель не позволит получить необходимую длину "обратного" хода, а меньший потребует увеличения числа итераций. От алгоритма поиска корня "делением отрезка пополам" он отличается добавлением одной из двух операций: при "удачной" итерации эталону присваивается вычисленное значение функции, а при "неудачной" изменяется знак шага. Сходство алгоритмов позволило разработать программу "Анализатор", в которой выбор рода работы (поиск максимума, минимума или корня) определяется числом, записываемым в регистр косвенной адресации. Начав с единичного отрезка, программа достигает машинного нуля за 25 итераций при поиске корня и за 36 - при поиске экстремума. Благодаря "осторожному" поведению вблизи точки экстремума "Анализатор" справляется с функциями, на которых обычный искатель экстремума зацикливается.
АНАЛИЗАТОР: 00. ХПА 01. ПП 02. 38 03. ХПС 04. С/П Начальная точка. Можно: В/0 и С/П с новым аргументом. 05. ПХ4 06. / 07. ХПВ 08. ПXA 09. FL1 10. 12 11. С/П Вывод решения. Можно: С/П, продолжая уточнение. 12. + 13. ПП 14. 38 15. B^ Хранение вычисленного значения. 16. ПХС 17. КБП7 Вызов эталона и отсылка к процедуре сравнения 18. x-y 19. - 20. Fx<0 21. 34 22. x-y 23. ХПС 24. БП 25. 29 Присвоение значения и отсылка на присвоение аргумента. 26. * 27. Fx>=0 28. 31 29. ПХ0 30. ХПА 31. ПХВ 32. БП 33. 05 Возврат в цикл. 34. ПХВ 35. /-/ 36. БП 37. 05 38. ХП0 Хранение текущего аргумента, доступное подпрограмме вычисления исследуемой функции, записываемой с шага 39 и оканчивающейся В/0.
Инструкция: 1. Набрать значение аргумента, В/0, С/П. 2. Прочесть значение функции, вернуться к п.1 или 3. Записать в Р7 адрес: 18 - максимум, 19 - минимум, 26 - корень. 4. Записать в Р4 делитель: 1.618 - экстремум, 2 - корень. 5. Записать в Р1 число итераций: отрезок поиска уменьшается в 1000 раз за 10 (корень) или 15 (экстремум) итераций. 6. Набрать величину отрезка поиска. Если аргумент, использованный в п.1, больше ожидаемого решения, то набрать его со знаком "минус". С/П. 7. Прочесть решение.
Решение находится в регистрах РХ и РA, шаг для следующей итерации - в PY и РВ, значение экстремума - в PC. Продолжительность одной итерации на 4.5 секунды больше времени вычисления значения функции подпрограммой, для которой свободны 58 команд МК-54 и 7 регистров (2, 3, 5, 6, 8, 9 и Д).
М.ВУЛИС (Москва).
ОТ РЕДАКЦИИ. Сходные идеи поиска экстремума высказывались в отделе н ранее - см. 10/88.
ДВАДЦАТЬ СЕМЬ ЦИФР ЗНАМЕНИТОГО ЧИСЛА
В разделе "Человек и компьютер" уже печатались программы вычислений с количеством верных знаков большим, чем 8. Один из методов таких вычислений я проиллюстрировал программой для МК-61, дающей число с с двадцатью семью верными знаками. Известно, что e=-2+Сумма(1/k!). Приведенная ниже программа вычисляет сумму и заносит результат вычислений в регистры 5, 6, 7 н 8.
00. Сх 01. ХПE 02. ПХА 03. ПХ1 04. 1 05. + 06. ХП1 07. / 08. ХП3 09. ПХА 10. ПП 11. 63 12. ХПА 13. ПХВ 14. ПХ1 15. / 16. ХП3 17. ПХВ 18. ПП 19. 63 20. ХПВ 21. ПХС 22. ПХ1 23. / 24. XП3 25. ПХС 26. ПП 27. 63 28. ХПС 29. ПХД 30. ПХ1 31. / 32. ХП3 33. ПХ3 34. ПП 35. 63 36. ХПД 37. 0 38. ХП3 39. ПХД 40. ПХ8 41. ПП 42. 90 43. XП8 44. ПХС 45. ПХ7 46. ПП 47. 90 48. ХП7 49. ПХВ 50. ПX6 51. ПП 52. 90 53. XП6 54. ПХA 55. ПX5 56. ПХ3 57. + 58. + 59. ХП5 60. FL0 61. 00 62. С/П 63. ПХ9 64. + 65. ПХЕ 66. ПХ9 67. * 68. ПХ1 69. / 70. ПХ3 71. + 72. К[х] 73. ХП3 74. ПХ4 75. / 76. К{х} 77. ПХ4 78. * 79. ПХ1 80. * 81. - 82. ПХ2 83. / 84. К{х} 85. ПХ2 86. * 87. ХПE 88. ПХ3 89. В/0 90. + 91. ПХ3 92. + 93. В^ 94. ПХ9 95. / 96. К[х] 97. ХП3 98. x-y 99. ПХ9 -0. / -1. К{х} -2. ПХ9 -3. * -4. В/0. Перед началом работы необходимо обнулить регистры 6, 7, 8, В, С и Д и записать постоянные: 24 в Р0, 2 в Р1, 100 в Р2, 1 ВП 5 в Р4, 5 ВП 6 в Р5 и РА 1 ВП 7 в Р9. После этого можно нажимать клавиши В/0 С/П и... наберитесь терпения - программа работает около 30 минут. После останова в регистре 5 - 7182818, в регистре 6 - 2845904, в Р7 - 5235360, в Р8 - 2874700. Последние два нуля получились за счет округления и их нужно отбросить. Теперь, вспомнив, что перед вычисленной суммой стояла цифра 2, можем записать двадцать семь верных знаков числа е=2.7182818284590452356028747. Правда, красиво?
С.КЛОЧКОВ (Калинин)
ЧИСЛА ФИБОНАЧЧИ
Вот они: 1, 1, 2, 3, 5, 8... Каждое последующее вычисляется как сумма двух предыдущих, а начинается их ряд с двух единиц.
По сей день эти числа дают пищу изобретателям математических головоломок, задач для математических олимпиад и школьных математических кружков. Но не только в занимательной математике используются числа Фибоначчи. Сейчас без них трудно представить себе, например, математическую теорию поиска.
Последовательное вычисление членов ряда Фибоначчи ведет программа:
00. 1 01. x-y 02. FBx 03. x-y 04. + 05. С/П 06.БП 07. 02.
Запускается она командами В/0 С/П "1". Теперь, после каждого нажатия па клавишу С/П через две секунды на индикаторе будет появляться очередной член ряда Фибоначчи. А вот программа для определения n-ного члена ряда:
00. ХП0 01. Сх 02. В^ 03. x-y 04. ПХ0 05. 1 06. FBx 07. x-y 08. + 09. FL0 10. 06 11. С/П 12. БП 13. 00. В регистр X вводят число n-1, после чего нажимают клавишу С/П (в самый первый раз В/0 С/П). Тест для первой программы: В/0 С/П "1" С/П "1" С/П "2" С/П "3" С/П "5". Для второй (n=21): 20 В/0 С/П "10946". Для контроля x-y "20" =n-1. Время вычислений - 25с. Для n=39: 38 СП "63245986" x-y "38" =n-1. На счет ушло 48с.
Л.РАХМАНОВ (Киев)
С КОМПЛЕКСНЫМИ КОЭФФИЦИЕНТАМИ
На первый взгляд кажется невозможным создать для калькулятора программу, которая решала бы уравнения третьей степени с комплексными коэффициентам, так как для традиционных методов (например, для метода Кардано) явно не хватает программной памяти. Но воспользовавшись теоремой, восходящей еще к Даламберу, которая утверждает, что модуль многочлена с комплексными коэффициентами может иметь своим минимумом только ноль, и применив метод минимизации модуля спиральным спуском, я доказал, что и невозможное возможно, если подыскать соответствующий алгоритм.
Программу спирального спуска я взял из книги Я.К.Трохименко "Программирование микрокалькуляторов "Электроника МК-52" и "Электроника МК-61"", Киев, "Технiка", 1987. В результате получилась программа, способная решать уравнения типа z3+(a3+a4i)z2+(a5+a6i)z+(a7+a8i)=0, где z=x+iy. (Индексы коэффициентов соответствуют номерам регистров, в которые эти коэффициенты помещаются).
Вот сама программа для Б3-34: 00. 9 01. 9 02. F10X 03. П0 04. 1 05. ПС 06. КИПС 07. ИПД 08. + 09. КПС 10. ИП3 11. ИП1 12. + 13. ПA 14. ИП4 15. ИП2 16. + 17. ПВ 18. ПП 19. 68 20. ИП6 21. + 22. ПВ 23. x-y 24. ИП5 25. + 26. ПА 27. ПП 28. 68 29. ИП8 30. - 31. Fx2 32. x-y 33. ИП7 34. + 35. Fx2 36. + 37. ИП0 38. x-y 39. П0 40. x-y 41. - 42. Fx>=0 43. 06 44. 2 45. ИПС 46. 1 47. + 48. ПС 49. - 50. Fx<0 51. 06 52. ИП9 53. 5 54. / 55. Fx2 56. ИПД 57. /-/ 58.5 59. / 60. ПД 61. Fx2 62. - 63. Fx>=0 64. 04 65. ИП2 66. ИП1 67. С/П 68. ИПA 69. ИП1 70. * 71. ИПВ 72. ИП2 73. * 74. - 75. ИПА 76. ИП2 77. * 78. ИПВ 79. ИП1 80. * 81. + 82. В/0.
Числа a3..a8 помещаем в регистры Р3-Р8, допустимую абсолютную погрешность e - в регистр Р9, начальный шаг Д - в регистр РД, а начальные значения неизвестных X и Y - в регистры Р1 и Р2 соответственно, затем нажимаем В/0 и С/П.
Через некоторое время компоненты корня X и Y появляются в регистрах "X" и "Y" (а также в регистрах Р1 и Р2). Квадрат модуля невязки хранится в регистре Р0. (Все величины, введенные в регистры Р3-Р9, сохраняются).
Структура программы: команды 10-30 и 32-34 - вычисление значения многочлена по схеме Горнера; команды 31-32 и 35-36 - вычисление квадрата модуля многочлена; команды 00-09 и 37-64 - стандартная программа нахождения минимума функции спиральным спуском; команды 65-67 - "сервис" и останов; команды 68-82 - подпрограмма, вычисляющая произведение двух комплексных чисел.
Примечание. При нулевом начальном значении z0 знак начального шага Д не играет роли. Если же начальное значение берется вдали от начала координат, то рекомендуется брать X и Y с одинаковыми знаками, а начальный шаг с противоположным знаком. Это ускоряет процесс минимизации. Радиус круга на комплексной плоскости, содержащего корни, на единицу больше максимума модулей комплексных коэффициентов многочлена.
Взяв сначала нулевое начальное значение неизвестного и вычислив первый корень, желательно следующее начальное значение взять подальше от первого корня, чтобы получить второй корень (если все же получится тот же корень, необходимо повторить попытку, изменив начальные условия). Третий корень легко получить по формуле Виетта - сумма всех корней многочлена должна быть равна коэффициенту при квадрате неизвестной с противоположным знаком.
Контрольный пример: z3+(1+2i)z2+(1-i)z+(4-4i)=0; e=0.001; x0=y0=0; Д=0.5; z1=1.0008+1.0008i~1+i (t~16 минут); x0=z0=-5; Д=0.5; z2=-0.5808-2.6928i~-0.581-2.693i (t~19 минут); z3=-(1+2i)-(1-i)- -(-0.581-2.693i)=-1.419-0.307i.
А.МЕРЖЕЕВСКИЙ (Житомир)
В известных справочниках В.П.Дьяконова, В.А.Епанечникова и А.Н.Цветкова, Я.К.Трохименко и Ф.Д.Любича я не нашел программы для решения квадратного уравнения с комплексными коэффициентами, и поэтому составил ее сам. Решается уравнение (a+bi)х2+(с+di)x+(е+fi)=0. Программа пригодна для Б3-34 и МК-61.
00. ХП3 01. x-y 02. XП2 03. ПП 04. 69 05. 2 06. / 07. XП6 08. x-y 09. 2 10. / 11. ХП5 12. ПП 13. 69 14. ХП1 15. x-y 16. ХП0 17. ПХ5 18. Fx2 19. ПX6 20. Fx2 21. - 22. ПХ0 23. - 24. ХП7 25. Fx2 26. ПХ5 27. ПХ6 28. * 29. 2 30. * 31. ПX1 32. - 33. XП8 34. Fх2 35. + 36. Fsqr 37. ХП4 38. ПX7 39. + 40. 2 41. / 42. Fsqr 43. ПX5 44. - 45. XП2 46. ПX4 47. ПX7 48. - 49. 2 50. / 51. Fsqr 52. ПX8 53. ВП 54. B^ 55. Fx2 56. Fsqr 57. / 58. * 59. ПХ6 60. - 61. ХП3 62. ПП 63. 74 64. ХП1 65. x-y 66. ХП0 67. C/П 68. БП 69. 00 70. С/П 71. ХП1 72. x-y 73. ХП0 74. ПХ0 75. ПХ2 76. * 77. ПX1 78. ПX3 79. * 80. + 81. ПХ2 82. Fx2 83. ПX3 84. Fx2 85. - 86. XП4 87. / 88. ПX1 89. ПX2 90. * 91. ПХ0 92. ПХ3 93. * 94. - 95. ПХ4 96. / 97. В/0.
Ввод исходных данных и считывание результатов производится следующим образом (в скобках - потраченное время); a В^ b В/0 С/П "0" (3с) с В^ d С/П "0" (12с) е B^ f С/П "ReX1" (35 с) x-y "ImX1" ПX2 "ReX2" ПX3 "ImX2". Тест-пример: (3-4i)x2+(17.5+10i)x+(25.5+66i)=0. Решение: 3 B^ 4 /-/ В/0 С/П "0" 17.5 B^ 10 С/П "0" 25.5 B^ 66 С/П "-3" (ReX1) x-y "0" (ImX1) ПХ2 "2.5" (ReX2) ПХ3 "-4" (ImX2). Ответ: X1=-3+0i; X2=2.5-4i.
Э.ГАУЗЕР (Баку)
ЦЕПОЧКА ИЗ ПРОСТЫХ ДРОБЕЙ
С помощью несложной программы можно производить на программируемых микрокалькуляторах действия с простыми дробями. Правила четырех арифметических действии элементарно просты и легко программируются. Основная трудность заключается в том, чтобы найти наибольший делитель числителя и знаменателя и сократить дробь на него. Для этой цели я использовал программу нахождения наибольшего делителя по алгоритму Эвклида, опубликованную в книге Я.К.Трохименко "Программирование микрокалькуляторов "Электроника МК-61" и "Электроника МК-52"". В моей программе она занимает шаги с 17 но 33. Программа составлена для микрокалькулятора МК-61.
00. ПХА 01. ПХД 02. * О3. ПХС 04. ПХВ 05. * 06. + 07. БП 08. 12 09. ПХА 10. ПХС 11. * 12. ХПА 13. ПХВ 14. ПХД 13. * 16. ХПС 17. ХПД 18. x-y 19. ХПВ 20. / 21. К[x] 22. ПХД 23. x-y 24. ПХВ 25. ХПД 26. * 27. - 28. ХПВ 29. ПХД 30. x-y 31. Fx=0 32. 20 33. + 34. ПХС 35. x-y 36. / 37. ХПВ 38. ПХА 39. FBx 40. / 41. ХПА 42. С/П.
Программу можно использовать и для Б3-34, заменив команду 21. К[х] фрагментом выделения целой части числа 1 + ХП0 КПХ0 ПХ0. При операциях сложения, вычитания и умножения числитель первой дроби записывается в регистр A, а знаменатель - в регистр B. Числитель второй дроби - в регистр С, знаменатель - в регистр Д. Причем для вычитания числитель второй дроби заносится в регистр со знаком "минус". Для сложения или вычитания программа запускается командами В/0 С/П, а для умножения - БП 09 С/П, При делении числитель и знаменатель второй дроби меняют местами и производят умножение. Так как числитель результирующей дроби находится не только в регистре X, а и в регистре А, а знаменатель - в регистрах Y и В, то легко осуществляются цепочечные действия. В этом случае каждая следующая дробь вводится только в регистры С и Д.
Поделим 1/2+3/4 на 3/2-7/8.
Решение: 1 ХПА 2 ХПВ 3 ХПС 4 ХПД В/0 С/П "5" 3 ХПД 2 ХПС БП 09 С/П "5" 7 /-/ ХПС 8 ХПД В/О С/П "1" - это числитель результата. x-y "-24" - это знаменатель результата. Ответ - 1/24.
С.СОКОЛОВ (г.Севастополь)
[ УЗЕЛКИ НА ПАМЯТЬ
Если программы в ППЗУ МК-52 нужно хранить долго, то их периодически нужно перезаписывать. При этом вовсе не нужно стирать программу в ППЗУ, как написано в руководстве по эксплуатации, а достаточно считать ее в ОЗУ микрокалькулятора и снова записать обязательно по тому же адресу, по которому производилось и считывание. При этом в ячейках памяти ППЗУ произойдет логическое сложение символов старой и новой программы. Но так как AvA=А, то старая программа будет восстановлена без предварительной операции стирания. Конечно, для записи новой программы операция стирания нужна и ее исключать нельзя.
А.РУБЦОВ, ученик 10-го класса (Мытищи) ]
ИЩЕМ ИЗДАТЕЛЬСТВО
Разделы "Человек с микрокалькулятором", "Человек и компьютер" и "Школа начинающего программиста" имеют продолжение вне рамок своей Alma mater - журнала "Наука и жизнь". Почти все материалы этих рубрик, дополненные откликами читателей, издавались отдельными книгами. Вот восемь из них:
- Данилов И.Д. Секреты программируемого микрокалькулятора.- М: Наука, 1986.
- Кибернетика. Микрокалькуляторы в играх и задачах.- М.: Наука, 1986.
- Пухначев Ю.В., Данилов И.Д. Микрокалькуляторы для всех.- М.: Знание, 1986.
- Бойко А.Б. Игры с микрокалькулятором.- М.: Знание, 1987.
- Данилов П.Д., Славин Г.В. Пять вечеров с микрокалькулятором.- М.: Финансы и статистика, 1988.
- Очков В.Ф., Пухначев Ю.В. 24 этюда на Бейсике.- М.: Финансы и статистика, 1988.
- Очков В.Ф., Пухначев Ю.В. 128 советов начинающему программисту.- М.: Энергоатом издат, 1990.
- Очков В.Ф., Хмелюк В.А. От микрокалькулятора к персональному компьютеру.- М.: Издательство Московского энергетического института. 1990.
И сейчас у авторов занятий "Школы пользователя ЭВМ" есть предложения издательств выпустить эти материалы отдельной книгой. Но мы не спешим принять какое-то одно из них и объявляем конкурс среди издательств на право выпуска книги с условным названием "Краткая популярная энциклопедия о персональных компьютерах". Ее план-проспект помещен в 12/89.
Критерии, по которым будет определен победитель конкурса:
- оригинальность оформления (хорошая бумага, мпогоцветность, вложенная дискета и т.д.);
- возможность общения с редактором и корректором издательства через персональный компьютер с текстами на дискетах.
Перечень можно продолжить. Размер гонорара в нем будет не на последнем месте.
ГОД РАБОТЫ С БРП-3
Основная характеристика любого численною решения - погрешность вычислений. В большинстве справочников и пособий по программированию на калькуляторах для каждой вычислительной операции указана либо относительная погрешность, либо количество верных знаков в результате. К сожалению, "Руководство по эксплуатации БРП-3" таких сведений не содержит. Вместо них для программ, использующих приближенные методы, приведены результаты решения тест-примера и точное значение вычисляемой функции. Сведений, откуда взяты математические формулы и построенные на их основе программы, в руководстве нет. Поэтому для определения погрешности во всем диапазоне существования аргументов пользователю приходится самостоятельно разыскивать источники, а не найдя их,- производить исследования, порою достаточно сложные. А так как приближенные методы используются в двадцать одной программе, то работы хватает.
В программах 2, 54, 55, 57 и 58 пользователь должен задать величину е, названную в руководстве "точностью вычислений". Она же используется в программах 13 и 52, но там пользователь на ее выбор не влияет. На самом деле е - это критерий прекращения вычислительного процесса: в программах 2 и 13 он кончается, когда разность между двумя соседними корнями становится меньше е, в программах 52, 54 и 55 - когда очередной вычисленный член ряда будет меньше e, а в программах 57 и 58 - когда отношение последнего вычисленною члена ряда к сумме всех вычисленных членов окажется меньше e. Диапазон возможных значений не оговорен. Не указано, можно ли, приняв e=0, получить решение с точностью до машинного нуля. При использовании программы 2 для решения кубического уравнения х3-6x2+11х-6=0, имеющего действительные корни x1=1, х2=2 и x3=3 при e=1E-7, микрокалькулятор зациклился. Проведя немало вычислений, я убедился, что прямой связи между относительной погрешностью и "точностью вычислений e" нет.
В руководстве не оговорено, в каких программах и как устанавливаются границы допустимых значений аргумента, в результате чего функция вычисляется в более узкой области, чем область существования. Иногда границы даны без учета вычислительных возможностей калькулятора, указаны с ошибками или просто не указаны. Для некоторых программ исправленные значения границ приведены в таблице. По программе 57 вычисляется не гипергеометрическая функция, являющаяся аналитическим продолжением гипергеометрического ряда, а сам гипергеометрический ряд. Очевидно, составителей набора программ для блока БРП-3 ввело в заблуждение то, что обе эти функции в математической литературе обозначаются одинаково - F(a, b, c, x).
В программах 28, 29, 30, 32, 33, 35, 49, 51 и 53 используются многозначные константы, которые необходимо вводить вручную. Всего таких констант 53, и для их записи в БРП-3 потребовался бы немалый объем памяти - 371 шаг. Между тем в БРП-3 осталась неиспользованной часть памяти, в которую можно записать 330 шагов. Никаких принципиальных трудностей с записью данных в БРП-3 нет, и совершенно непонятно, почему пункт 5.4 руководства предусматривает для имеющеюся в МК-52 переключателя "данные/программа" только одно положение - "программа", хотя в неиспользованную часть памяти можно было бы записать константы по меньшей мере, для семи задач, а если бы исключить тестовые подпрограммы - то и для всех. Хорошо, что в МК-52 есть ППЗУ, с помощью которого можно освободить себя от такой рутинной операции, чреватой ошибками, как ввод констант. К сожалению, данные в ППЗУ записываются, начиная с нулевого регистра. В него же начинается запись и при считывании. В БРП-3 нулевой регистр используется для записи констант только в программе 49, а во всех остальных запись начинается с регистров 1-4. Если при записи в ППЗУ располагать константы в тех же регистрах, в которых они находятся при работе программы, то что потребует, сверх указанных 371, еще 119 шагов. что "съест" всю память ППЗУ. Выход в том, чтобы записывать константы вплотную друг к другу. Для этого следует расположить их в регистрах так, как показано в таблице. Адреса, указанные в этой таблице, подобраны так, что константы записываются в ППЗУ без промежутков, а считываются в те регистры, где они должны быть при работе программы. В таблице эти регистры обведены рамкой.
Подчеркнем еще раз, что ничего не мешало сделать так же и в БРП-3, а польза была бы большая. Конечно, вовсе не обязательно записывать в ППЗУ все 53 константы. Важно уяснить принцип создания адресов записи и считывания, а записывать нужно только те константы, которыми постоянно пользуются.
Сервис, предоставляемый пользователю блоком БРП-3, и оптимальность содержащихся в нем программ - это предмет для особого разговора. Но о генераторе псевдослучайных чисел, используемом в программах 34 и 38, промолчать невозможно. Стремление к оригинальности заставило составителей набора программ для БРП-3 отказаться от широко известных генераторов, используемых владельцами калькуляторов и дающих 6-8 тысяч неповторяющихся чисел, и создать генератор, алгоритм работы которого описывается формулой U[n+1]={(Un+пи)**5}. При указанном в руководстве стартовом числе U0=0.3333 этот генератор дает 104 неповторяющихся числа, а затем зацикливается, причем цикл состоит всего из четырех чисел. При изменении стартового числа изменяется длина неповторяющейся части, а зацикливание сохраняется. Было перепробовано более ста стартовых чисел, но получить больше, чем 249 неповторяющихся чисел, не удалось. Такой рекорд был установлен при стартовом числе U0=0.12345678. Цикл при этом состоял из четырех чисел. Таким же он был и при стартовых числах U0=e/10, sqr2, sqr0.05, 0.11 и других. При стартовых числах U0=пи/10, sqr3, sqr0.07, 0.1, 0.3 и других длина непериодической части была меньше указанной выше, а период состоял из 39 чисел. Иных вариантов обнаружить не удалось. Неудивительно, что ни в одном из известных справочников и пособий для программируемых микрокалькуляторов этот генератор даже не упоминается.
В.МЕДВЕДЯУСКАС (Шяуляй)
[ КОМПЬЮТЕРНАЯ СПРАВКА
В этой рубрике мы продолжаем (см. 10/89) публиковать программы двойного содержания - со сведениями общего характера и с интересной программистской особенностью.
Программа "Телеэкстрасенсы" ("музыка" алгоритма - народная, слова программы - москвича В.Жаворонкова), написанная на Квикверсии Барсика, реализует один из расхожих тестов на восприимчивость к сеансам лечебного гипноза по телевидению. Выяснить алгоритм теста несложно - читатель сделает это самостоятельно ]
В ЛЮБОМ КВАДРАНТЕ
При работе с комплексными числами, векторами, при решении астрономо-геодезических и некоторых других прикладных задач часто приходится вычислять угол А=arctg(y/x). Калькулятор МК-61 вычисляет угол А1=tg-1(y/х). Для определения угла А к величине А1, вычисленной с помощью калькулятора, необходимо добавить nK, где n=0, 2 или 4, а К - прямой угол. Легко заметить, что если одна из величин А1 или y - отрицательна, то A=A1+2K, а если отрицательные они обе, то А=A1+4К. Это обстоятельство использовано в программе для вычисления A на калькуляторе МК-61.
00. / 01.Ftg-1 02. В^ 03. Кзн 04. Fcos-1 05. + 06. x-y 07. Кзн 08. Fcos-1 09. + 10. C/П.
Программа использует только регистры стека, ввод информации в который производится так: y B^ B^ x. Запуск программы осуществляется командами В/0 С/П. К достоинствам программы следует отнести использование команды Fcos-1 для определения угла nК, что позволяет без дополнительных операций получать результат в единицах, определяемых положением переключателя Р/ГРД/Г. Недостатком программы является аварийный останов при х=0 и выдача результата А=К при у=0, хотя в первом случае, в зависимости от знака y, A=К или 3К, а во втором, в зависимости от знака х, A=0 или 2К. Приведенная ниже программа для МК-61 свободна от этого недостатка и правильно вычисляет А без аварийного останова во всем диапазоне значений х и y
00. Fx=0 01. 07 02. Fcos-1 03. x-y 04. Fx=0 05. 18 06. С/П 07. x-y 08. Fx=0 09. 17 10. x-y 11. / 12. Ftg-1 13. В^ 14. Кзн 15. Fcos-1 16. + 17. x-y 18. Кзн 19. Fcos-1 20. + 21. С/П.
Ввод исходных данных и пуск производится так же, как и в предыдущей программе. При использовании этих программ в качестве фрагментов более крупных, команда С/П заменяется командой передачи управления, осуществляемого после вычисления A. При этом не забудьте привести в соответствие адреса переходов и правильно расположите x и y в стеке.
Угол A можно вычислить также на Б3-34 и его аналогах. Для этого в приведенных выше программах заменяют сочетание команд Кзн и Fcos-1. Вместо них в первой программе по адресам 03, 04 и 07, 08 записывают команды ПП 11, а во второй - по адресам 14, 15 и 18, 19 - ПП 22. Кроме того, программы дополняются подпрограммой, записываемой с адреса 11 в первом случае и с адреса 22 по втором. Fx<0 АП F() 1 /-/ Fcos-1 В/0 Сх В/0. Здесь АП - адрес перехода, равный 18 для первой программы и - 29 для второй. Порядок ввода исходных данных и пуск остаются без изменений.
Контрольные примеры. 1. Переключатель Р/ГРД/Г - в положении "Р". x=-1, y=0. 0 B^ В^ 1 /-/ В/0 С/П "3,1415926". 2." Переключатель Р/ГРД/Г - в положении "Г". x=0, y=-1. 1 /-/ B^ B^ 0 В/0 С/П "270". 3. х=1, у=-1. 1 /-/ В^ В^ 1 В/0 С/П "315".
А.БЕЛЯКОВ (Москва)
ИЗ ДЕСЯТИЧНОЙ В ПРОСТУЮ
Программы, преобразующие правильную или неправильную десятичную дробь в цепную, приведены во многих справочниках (см., например, А.Н.Цветков и В.А.Епанечников "Прикладные программы для микроЭВМ" М., 1984, стр.10). Иногда необходимо представить десятичную дробь в виде простой. Это можно сделать, используя известные соотношения между цепной и простой дробями.
Здесь рk и qk вычисляются по рекурентным формулам: рk=р[k-1]**ak+р[k-2]; qk=q[k-1]**ak+q[k-2]. Используя эти формулы, десятичную дробь можно превратить в простую, отличающуюся от исходного числа не более чем на заданное число Д, по программе:
00. ХПА 01. К[x] 02. ХП1 03. 1 04. XП2 05. ХП1 06. Cx 07. ХП5 08. FBx 09. К{х} 10. F1/x 11. К{х} 12. ХПE 13. ПХД 14. FBx 13. К[х] 16. ХП0 17. ПХ1 18. * 19. ПХ2 20. + 21. ХП3 22. ПХ0 23. ПХ4 24. * 25. ПX5 26. + 27. ХП6 28. / 29. ПХA 30. - 31. К|х| 32. - 33. Fx>=0 34. 38 35. ПХ6 36. ПХ3 37. С/П 38.ПХ1 39. ХП2 40. ПХ3 41. ХП1 42. ПХ4 43. ХП5 44. ПХ6 45. ХП4 46. ПХE 47. БП 48. 10.
Перед началом работы в РД вводят Д, а в регистр X - десятичную дробь и запускают программу командами В/0 С/П. Числитель простой дроби после останова будет в регистрах X и 3, я знаменатель - в регистрах Y и 6.
Тест. Д=0.1 - в РД. Fпи "3.1415926" В/0 С/П "7". Время счета 10с. Д=1E-7. 1 Fexp "2.7182818" В/0 С/П "25946" x-y "9545", время счета 1м.50с.
Е.ФЕНЮШИН, ученик 10-го класса (Кольчугин)
[ В "Инструкции" к МК-61 н МК-52 для извлечения квадратного корня указана относительная погрешность 1E-4. а для возведения в квадрат - 1E-7. Я провел исследование, возводя в квадрат числа А*10**n и извлекая из них квадратный корень (1<=A<9.9999999; n=0, 1... 99). И вот что получилось.
При извлечении квадратного корня результат всегда занижен, но относительная погрешность не превышает -1E-7. При возведении в квадрат погрешность зависит от порядка полученного числа. Если он четный, то относительная погрешность не превышает -9,991525E-8, а если нечетный, то она меньше чем 0.5E-7.
С.ЗАЗОВСКИЙ (Москва) ]
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ
Предыдущий выпуск нашего раздела был целиком посвящен химии. В ответ на призыв редакции программы для будущих тематических выпусков присылаются представителями других дисциплин (называем их в порядке убывания числа поступивших программ): медицины; астрономии и геодезии; экономики; строительства и архитектуры. Кто первым сумеет укомплектовать полноценный выпуск, сказать трудно... Ждем новых программ! А пока предоставляем слово владельцам программируемых микрокалькуляторов, создающим программы математического характера.
Следовало бы заметить, к слову, что многие из присылаемых в редакцию программ не могут увидеть света из-за небрежного оформления. Мы вновь повторяем свою просьбу всем, кто предлагает нам свои программы. Пишите их с одной стороны листа с полями, в тех обозначениях и так, как это принято в нашем разделе. Программа должна быть снабжена инструкцией, тестом, алгоритмом или описанием предназначения отдельных ее частей. Если вы искали аналогичную программу в литературе и не нашли, то укажите просмотренные источники. Если программа является модернизацией опубликованной или использует идею опубликованной, об этом нужно сообщить. Перед отправкой письма в редакцию наберите программу по тексту письма и решите приведенный в письме тест. Это позволит выявить описки и опечатки в программе и, безусловно, ускорит ее рассмотрение.
НА ВСЕ СЛУЧАИ ЖИЗНИ
За почти четыре года эксплуатации МК-54 я обнаружил, что чаще всего приходится пользоваться двумя программами - программой поиска корней уравнения и программой поиска экстремума функции одной переменной. И если для поиска корня можно выбирать между методами "делением отрезка пополам", "хорд-секущих" и экзотической "обратной интерполяцией/экстраполяцией", для поиска экстремума предлагается единственный алгоритм: вычислив значение функции для некоторого начального аргумента ("эталон"), дают аргументу фиксированное приращение ("шаг"), вычисляют значение функции от нового аргумента и сравнивают его с эталоном. Если ищут максимум и новое значение больше эталона, оно становится эталоном, а его аргумент - начальной точкой, и процедура повторяется с тем же шагом. В противном случае меняют знак шага на противоположный и уменьшают, в зависимости от пристрастий автора программы, в 2 или в 10 раз его величину. Аргумент, как затухающий маятник, качается вокруг искомой точки, и когда амплитуда колебаний станет меньше заданной погрешности, вычисления прекращают.
Выполненная на базе этого алгоритма программа очень проста и компактна, но работает удручающе медленно. "Проскочив" максимум на один большой шаг. она неторопливо возвращается обратно мелкими шажками, бесполезно вычисляя ненужные промежуточные значения. В результате для получения решения с точностью до машинного нуля нужно не менее 75 раз обратиться к подпрограмме вычисления функции, как правило, тоже достаточно сложной. В поисках выхода я перепробовал несколько делителей и обнаружил, что наилучший компромисс между числом колебаний маятника и количеством обращений на каждом из них дает четверка. Если делить шаг на 4, число, обращений не превышает 62, а при "удобном" аргументе экстремума (мало одинаковых цифр, особенно нулей) падает до 52.
Убедившись, что больше ничего из алгоритма не "выжать", я попробовал применить в нем принцип деления шага ПЕРЕД КАЖДЫМ вычислением (по аналогии с методом поиска корня "делением пополам") и не менять начальную точку, если новое значение функции не больше эталона, но, конечно, изменять знак шага, организуя "маятниковое" движение.
Как уменьшать шаг? Представим себе, что исследуемая функция имеет очень крутой подъем перед максимумом и пологий спуск после него. Задав начальную точку перед самым максимумом и сделав единичный шаг, мы можем получить значение функции, превышающее эталон, и, следовательно, примем новую точку за начальную и сделаем шаг длиной q в прежнем направлении. В следующей точке значение функции будет меньше эталона, и мы начнем попятное движение из начальной точки шагами длиной q**2; q**3; q**4 и так далее. Сумма длин шагов, представляющих собой геометрическую прогрессию со знаменателем q, должна в пределе обеспечить возвращение к исходной точке, т.е. на весь единичный шаг. Иными словами, должно выполняться соотношение q**2/(1-q)=1.
Единственным положительным корнем этого уравнения является q=(sqr(5)-1)/2=0.618034=1/1.618034. Оказывается, предлагаемый алгоритм просто обязан использовать "золотое сечение" отрезка, поскольку больший делитель не позволит получить необходимую длину "обратного" хода, а меньший потребует увеличения числа итераций. От алгоритма поиска корня "делением отрезка пополам" он отличается добавлением одной из двух операций: при "удачной" итерации эталону присваивается вычисленное значение функции, а при "неудачной" изменяется знак шага. Сходство алгоритмов позволило разработать программу "Анализатор", в которой выбор рода работы (поиск максимума, минимума или корня) определяется числом, записываемым в регистр косвенной адресации. Начав с единичного отрезка, программа достигает машинного нуля за 25 итераций при поиске корня и за 36 - при поиске экстремума. Благодаря "осторожному" поведению вблизи точки экстремума "Анализатор" справляется с функциями, на которых обычный искатель экстремума зацикливается.
АНАЛИЗАТОР: 00. ХПА 01. ПП 02. 38 03. ХПС 04. С/П Начальная точка. Можно: В/0 и С/П с новым аргументом. 05. ПХ4 06. / 07. ХПВ 08. ПXA 09. FL1 10. 12 11. С/П Вывод решения. Можно: С/П, продолжая уточнение. 12. + 13. ПП 14. 38 15. B^ Хранение вычисленного значения. 16. ПХС 17. КБП7 Вызов эталона и отсылка к процедуре сравнения 18. x-y 19. - 20. Fx<0 21. 34 22. x-y 23. ХПС 24. БП 25. 29 Присвоение значения и отсылка на присвоение аргумента. 26. * 27. Fx>=0 28. 31 29. ПХ0 30. ХПА 31. ПХВ 32. БП 33. 05 Возврат в цикл. 34. ПХВ 35. /-/ 36. БП 37. 05 38. ХП0 Хранение текущего аргумента, доступное подпрограмме вычисления исследуемой функции, записываемой с шага 39 и оканчивающейся В/0.
Инструкция: 1. Набрать значение аргумента, В/0, С/П. 2. Прочесть значение функции, вернуться к п.1 или 3. Записать в Р7 адрес: 18 - максимум, 19 - минимум, 26 - корень. 4. Записать в Р4 делитель: 1.618 - экстремум, 2 - корень. 5. Записать в Р1 число итераций: отрезок поиска уменьшается в 1000 раз за 10 (корень) или 15 (экстремум) итераций. 6. Набрать величину отрезка поиска. Если аргумент, использованный в п.1, больше ожидаемого решения, то набрать его со знаком "минус". С/П. 7. Прочесть решение.
Решение находится в регистрах РХ и РA, шаг для следующей итерации - в PY и РВ, значение экстремума - в PC. Продолжительность одной итерации на 4.5 секунды больше времени вычисления значения функции подпрограммой, для которой свободны 58 команд МК-54 и 7 регистров (2, 3, 5, 6, 8, 9 и Д).
М.ВУЛИС (Москва).
ОТ РЕДАКЦИИ. Сходные идеи поиска экстремума высказывались в отделе н ранее - см. 10/88.
ДВАДЦАТЬ СЕМЬ ЦИФР ЗНАМЕНИТОГО ЧИСЛА
В разделе "Человек и компьютер" уже печатались программы вычислений с количеством верных знаков большим, чем 8. Один из методов таких вычислений я проиллюстрировал программой для МК-61, дающей число с с двадцатью семью верными знаками. Известно, что e=-2+Сумма(1/k!). Приведенная ниже программа вычисляет сумму и заносит результат вычислений в регистры 5, 6, 7 н 8.
00. Сх 01. ХПE 02. ПХА 03. ПХ1 04. 1 05. + 06. ХП1 07. / 08. ХП3 09. ПХА 10. ПП 11. 63 12. ХПА 13. ПХВ 14. ПХ1 15. / 16. ХП3 17. ПХВ 18. ПП 19. 63 20. ХПВ 21. ПХС 22. ПХ1 23. / 24. XП3 25. ПХС 26. ПП 27. 63 28. ХПС 29. ПХД 30. ПХ1 31. / 32. ХП3 33. ПХ3 34. ПП 35. 63 36. ХПД 37. 0 38. ХП3 39. ПХД 40. ПХ8 41. ПП 42. 90 43. XП8 44. ПХС 45. ПХ7 46. ПП 47. 90 48. ХП7 49. ПХВ 50. ПX6 51. ПП 52. 90 53. XП6 54. ПХA 55. ПX5 56. ПХ3 57. + 58. + 59. ХП5 60. FL0 61. 00 62. С/П 63. ПХ9 64. + 65. ПХЕ 66. ПХ9 67. * 68. ПХ1 69. / 70. ПХ3 71. + 72. К[х] 73. ХП3 74. ПХ4 75. / 76. К{х} 77. ПХ4 78. * 79. ПХ1 80. * 81. - 82. ПХ2 83. / 84. К{х} 85. ПХ2 86. * 87. ХПE 88. ПХ3 89. В/0 90. + 91. ПХ3 92. + 93. В^ 94. ПХ9 95. / 96. К[х] 97. ХП3 98. x-y 99. ПХ9 -0. / -1. К{х} -2. ПХ9 -3. * -4. В/0. Перед началом работы необходимо обнулить регистры 6, 7, 8, В, С и Д и записать постоянные: 24 в Р0, 2 в Р1, 100 в Р2, 1 ВП 5 в Р4, 5 ВП 6 в Р5 и РА 1 ВП 7 в Р9. После этого можно нажимать клавиши В/0 С/П и... наберитесь терпения - программа работает около 30 минут. После останова в регистре 5 - 7182818, в регистре 6 - 2845904, в Р7 - 5235360, в Р8 - 2874700. Последние два нуля получились за счет округления и их нужно отбросить. Теперь, вспомнив, что перед вычисленной суммой стояла цифра 2, можем записать двадцать семь верных знаков числа е=2.7182818284590452356028747. Правда, красиво?
С.КЛОЧКОВ (Калинин)
ЧИСЛА ФИБОНАЧЧИ
Вот они: 1, 1, 2, 3, 5, 8... Каждое последующее вычисляется как сумма двух предыдущих, а начинается их ряд с двух единиц.
По сей день эти числа дают пищу изобретателям математических головоломок, задач для математических олимпиад и школьных математических кружков. Но не только в занимательной математике используются числа Фибоначчи. Сейчас без них трудно представить себе, например, математическую теорию поиска.
Последовательное вычисление членов ряда Фибоначчи ведет программа:
00. 1 01. x-y 02. FBx 03. x-y 04. + 05. С/П 06.БП 07. 02.
Запускается она командами В/0 С/П "1". Теперь, после каждого нажатия па клавишу С/П через две секунды на индикаторе будет появляться очередной член ряда Фибоначчи. А вот программа для определения n-ного члена ряда:
00. ХП0 01. Сх 02. В^ 03. x-y 04. ПХ0 05. 1 06. FBx 07. x-y 08. + 09. FL0 10. 06 11. С/П 12. БП 13. 00. В регистр X вводят число n-1, после чего нажимают клавишу С/П (в самый первый раз В/0 С/П). Тест для первой программы: В/0 С/П "1" С/П "1" С/П "2" С/П "3" С/П "5". Для второй (n=21): 20 В/0 С/П "10946". Для контроля x-y "20" =n-1. Время вычислений - 25с. Для n=39: 38 СП "63245986" x-y "38" =n-1. На счет ушло 48с.
Л.РАХМАНОВ (Киев)
С КОМПЛЕКСНЫМИ КОЭФФИЦИЕНТАМИ
На первый взгляд кажется невозможным создать для калькулятора программу, которая решала бы уравнения третьей степени с комплексными коэффициентам, так как для традиционных методов (например, для метода Кардано) явно не хватает программной памяти. Но воспользовавшись теоремой, восходящей еще к Даламберу, которая утверждает, что модуль многочлена с комплексными коэффициентами может иметь своим минимумом только ноль, и применив метод минимизации модуля спиральным спуском, я доказал, что и невозможное возможно, если подыскать соответствующий алгоритм.
Программу спирального спуска я взял из книги Я.К.Трохименко "Программирование микрокалькуляторов "Электроника МК-52" и "Электроника МК-61"", Киев, "Технiка", 1987. В результате получилась программа, способная решать уравнения типа z3+(a3+a4i)z2+(a5+a6i)z+(a7+a8i)=0, где z=x+iy. (Индексы коэффициентов соответствуют номерам регистров, в которые эти коэффициенты помещаются).
Вот сама программа для Б3-34: 00. 9 01. 9 02. F10X 03. П0 04. 1 05. ПС 06. КИПС 07. ИПД 08. + 09. КПС 10. ИП3 11. ИП1 12. + 13. ПA 14. ИП4 15. ИП2 16. + 17. ПВ 18. ПП 19. 68 20. ИП6 21. + 22. ПВ 23. x-y 24. ИП5 25. + 26. ПА 27. ПП 28. 68 29. ИП8 30. - 31. Fx2 32. x-y 33. ИП7 34. + 35. Fx2 36. + 37. ИП0 38. x-y 39. П0 40. x-y 41. - 42. Fx>=0 43. 06 44. 2 45. ИПС 46. 1 47. + 48. ПС 49. - 50. Fx<0 51. 06 52. ИП9 53. 5 54. / 55. Fx2 56. ИПД 57. /-/ 58.5 59. / 60. ПД 61. Fx2 62. - 63. Fx>=0 64. 04 65. ИП2 66. ИП1 67. С/П 68. ИПA 69. ИП1 70. * 71. ИПВ 72. ИП2 73. * 74. - 75. ИПА 76. ИП2 77. * 78. ИПВ 79. ИП1 80. * 81. + 82. В/0.
Числа a3..a8 помещаем в регистры Р3-Р8, допустимую абсолютную погрешность e - в регистр Р9, начальный шаг Д - в регистр РД, а начальные значения неизвестных X и Y - в регистры Р1 и Р2 соответственно, затем нажимаем В/0 и С/П.
Через некоторое время компоненты корня X и Y появляются в регистрах "X" и "Y" (а также в регистрах Р1 и Р2). Квадрат модуля невязки хранится в регистре Р0. (Все величины, введенные в регистры Р3-Р9, сохраняются).
Структура программы: команды 10-30 и 32-34 - вычисление значения многочлена по схеме Горнера; команды 31-32 и 35-36 - вычисление квадрата модуля многочлена; команды 00-09 и 37-64 - стандартная программа нахождения минимума функции спиральным спуском; команды 65-67 - "сервис" и останов; команды 68-82 - подпрограмма, вычисляющая произведение двух комплексных чисел.
Примечание. При нулевом начальном значении z0 знак начального шага Д не играет роли. Если же начальное значение берется вдали от начала координат, то рекомендуется брать X и Y с одинаковыми знаками, а начальный шаг с противоположным знаком. Это ускоряет процесс минимизации. Радиус круга на комплексной плоскости, содержащего корни, на единицу больше максимума модулей комплексных коэффициентов многочлена.
Взяв сначала нулевое начальное значение неизвестного и вычислив первый корень, желательно следующее начальное значение взять подальше от первого корня, чтобы получить второй корень (если все же получится тот же корень, необходимо повторить попытку, изменив начальные условия). Третий корень легко получить по формуле Виетта - сумма всех корней многочлена должна быть равна коэффициенту при квадрате неизвестной с противоположным знаком.
Контрольный пример: z3+(1+2i)z2+(1-i)z+(4-4i)=0; e=0.001; x0=y0=0; Д=0.5; z1=1.0008+1.0008i~1+i (t~16 минут); x0=z0=-5; Д=0.5; z2=-0.5808-2.6928i~-0.581-2.693i (t~19 минут); z3=-(1+2i)-(1-i)- -(-0.581-2.693i)=-1.419-0.307i.
А.МЕРЖЕЕВСКИЙ (Житомир)
В известных справочниках В.П.Дьяконова, В.А.Епанечникова и А.Н.Цветкова, Я.К.Трохименко и Ф.Д.Любича я не нашел программы для решения квадратного уравнения с комплексными коэффициентами, и поэтому составил ее сам. Решается уравнение (a+bi)х2+(с+di)x+(е+fi)=0. Программа пригодна для Б3-34 и МК-61.
00. ХП3 01. x-y 02. XП2 03. ПП 04. 69 05. 2 06. / 07. XП6 08. x-y 09. 2 10. / 11. ХП5 12. ПП 13. 69 14. ХП1 15. x-y 16. ХП0 17. ПХ5 18. Fx2 19. ПX6 20. Fx2 21. - 22. ПХ0 23. - 24. ХП7 25. Fx2 26. ПХ5 27. ПХ6 28. * 29. 2 30. * 31. ПX1 32. - 33. XП8 34. Fх2 35. + 36. Fsqr 37. ХП4 38. ПX7 39. + 40. 2 41. / 42. Fsqr 43. ПX5 44. - 45. XП2 46. ПX4 47. ПX7 48. - 49. 2 50. / 51. Fsqr 52. ПX8 53. ВП 54. B^ 55. Fx2 56. Fsqr 57. / 58. * 59. ПХ6 60. - 61. ХП3 62. ПП 63. 74 64. ХП1 65. x-y 66. ХП0 67. C/П 68. БП 69. 00 70. С/П 71. ХП1 72. x-y 73. ХП0 74. ПХ0 75. ПХ2 76. * 77. ПX1 78. ПX3 79. * 80. + 81. ПХ2 82. Fx2 83. ПX3 84. Fx2 85. - 86. XП4 87. / 88. ПX1 89. ПX2 90. * 91. ПХ0 92. ПХ3 93. * 94. - 95. ПХ4 96. / 97. В/0.
Ввод исходных данных и считывание результатов производится следующим образом (в скобках - потраченное время); a В^ b В/0 С/П "0" (3с) с В^ d С/П "0" (12с) е B^ f С/П "ReX1" (35 с) x-y "ImX1" ПX2 "ReX2" ПX3 "ImX2". Тест-пример: (3-4i)x2+(17.5+10i)x+(25.5+66i)=0. Решение: 3 B^ 4 /-/ В/0 С/П "0" 17.5 B^ 10 С/П "0" 25.5 B^ 66 С/П "-3" (ReX1) x-y "0" (ImX1) ПХ2 "2.5" (ReX2) ПХ3 "-4" (ImX2). Ответ: X1=-3+0i; X2=2.5-4i.
Э.ГАУЗЕР (Баку)
ЦЕПОЧКА ИЗ ПРОСТЫХ ДРОБЕЙ
С помощью несложной программы можно производить на программируемых микрокалькуляторах действия с простыми дробями. Правила четырех арифметических действии элементарно просты и легко программируются. Основная трудность заключается в том, чтобы найти наибольший делитель числителя и знаменателя и сократить дробь на него. Для этой цели я использовал программу нахождения наибольшего делителя по алгоритму Эвклида, опубликованную в книге Я.К.Трохименко "Программирование микрокалькуляторов "Электроника МК-61" и "Электроника МК-52"". В моей программе она занимает шаги с 17 но 33. Программа составлена для микрокалькулятора МК-61.
00. ПХА 01. ПХД 02. * О3. ПХС 04. ПХВ 05. * 06. + 07. БП 08. 12 09. ПХА 10. ПХС 11. * 12. ХПА 13. ПХВ 14. ПХД 13. * 16. ХПС 17. ХПД 18. x-y 19. ХПВ 20. / 21. К[x] 22. ПХД 23. x-y 24. ПХВ 25. ХПД 26. * 27. - 28. ХПВ 29. ПХД 30. x-y 31. Fx=0 32. 20 33. + 34. ПХС 35. x-y 36. / 37. ХПВ 38. ПХА 39. FBx 40. / 41. ХПА 42. С/П.
Программу можно использовать и для Б3-34, заменив команду 21. К[х] фрагментом выделения целой части числа 1 + ХП0 КПХ0 ПХ0. При операциях сложения, вычитания и умножения числитель первой дроби записывается в регистр A, а знаменатель - в регистр B. Числитель второй дроби - в регистр С, знаменатель - в регистр Д. Причем для вычитания числитель второй дроби заносится в регистр со знаком "минус". Для сложения или вычитания программа запускается командами В/0 С/П, а для умножения - БП 09 С/П, При делении числитель и знаменатель второй дроби меняют местами и производят умножение. Так как числитель результирующей дроби находится не только в регистре X, а и в регистре А, а знаменатель - в регистрах Y и В, то легко осуществляются цепочечные действия. В этом случае каждая следующая дробь вводится только в регистры С и Д.
Поделим 1/2+3/4 на 3/2-7/8.
Решение: 1 ХПА 2 ХПВ 3 ХПС 4 ХПД В/0 С/П "5" 3 ХПД 2 ХПС БП 09 С/П "5" 7 /-/ ХПС 8 ХПД В/О С/П "1" - это числитель результата. x-y "-24" - это знаменатель результата. Ответ - 1/24.
С.СОКОЛОВ (г.Севастополь)
[ УЗЕЛКИ НА ПАМЯТЬ
Если программы в ППЗУ МК-52 нужно хранить долго, то их периодически нужно перезаписывать. При этом вовсе не нужно стирать программу в ППЗУ, как написано в руководстве по эксплуатации, а достаточно считать ее в ОЗУ микрокалькулятора и снова записать обязательно по тому же адресу, по которому производилось и считывание. При этом в ячейках памяти ППЗУ произойдет логическое сложение символов старой и новой программы. Но так как AvA=А, то старая программа будет восстановлена без предварительной операции стирания. Конечно, для записи новой программы операция стирания нужна и ее исключать нельзя.
А.РУБЦОВ, ученик 10-го класса (Мытищи) ]
ИЩЕМ ИЗДАТЕЛЬСТВО
Разделы "Человек с микрокалькулятором", "Человек и компьютер" и "Школа начинающего программиста" имеют продолжение вне рамок своей Alma mater - журнала "Наука и жизнь". Почти все материалы этих рубрик, дополненные откликами читателей, издавались отдельными книгами. Вот восемь из них:
- Данилов И.Д. Секреты программируемого микрокалькулятора.- М: Наука, 1986.
- Кибернетика. Микрокалькуляторы в играх и задачах.- М.: Наука, 1986.
- Пухначев Ю.В., Данилов И.Д. Микрокалькуляторы для всех.- М.: Знание, 1986.
- Бойко А.Б. Игры с микрокалькулятором.- М.: Знание, 1987.
- Данилов П.Д., Славин Г.В. Пять вечеров с микрокалькулятором.- М.: Финансы и статистика, 1988.
- Очков В.Ф., Пухначев Ю.В. 24 этюда на Бейсике.- М.: Финансы и статистика, 1988.
- Очков В.Ф., Пухначев Ю.В. 128 советов начинающему программисту.- М.: Энергоатом издат, 1990.
- Очков В.Ф., Хмелюк В.А. От микрокалькулятора к персональному компьютеру.- М.: Издательство Московского энергетического института. 1990.
И сейчас у авторов занятий "Школы пользователя ЭВМ" есть предложения издательств выпустить эти материалы отдельной книгой. Но мы не спешим принять какое-то одно из них и объявляем конкурс среди издательств на право выпуска книги с условным названием "Краткая популярная энциклопедия о персональных компьютерах". Ее план-проспект помещен в 12/89.
Критерии, по которым будет определен победитель конкурса:
- оригинальность оформления (хорошая бумага, мпогоцветность, вложенная дискета и т.д.);
- возможность общения с редактором и корректором издательства через персональный компьютер с текстами на дискетах.
Перечень можно продолжить. Размер гонорара в нем будет не на последнем месте.
ГОД РАБОТЫ С БРП-3
Основная характеристика любого численною решения - погрешность вычислений. В большинстве справочников и пособий по программированию на калькуляторах для каждой вычислительной операции указана либо относительная погрешность, либо количество верных знаков в результате. К сожалению, "Руководство по эксплуатации БРП-3" таких сведений не содержит. Вместо них для программ, использующих приближенные методы, приведены результаты решения тест-примера и точное значение вычисляемой функции. Сведений, откуда взяты математические формулы и построенные на их основе программы, в руководстве нет. Поэтому для определения погрешности во всем диапазоне существования аргументов пользователю приходится самостоятельно разыскивать источники, а не найдя их,- производить исследования, порою достаточно сложные. А так как приближенные методы используются в двадцать одной программе, то работы хватает.
В программах 2, 54, 55, 57 и 58 пользователь должен задать величину е, названную в руководстве "точностью вычислений". Она же используется в программах 13 и 52, но там пользователь на ее выбор не влияет. На самом деле е - это критерий прекращения вычислительного процесса: в программах 2 и 13 он кончается, когда разность между двумя соседними корнями становится меньше е, в программах 52, 54 и 55 - когда очередной вычисленный член ряда будет меньше e, а в программах 57 и 58 - когда отношение последнего вычисленною члена ряда к сумме всех вычисленных членов окажется меньше e. Диапазон возможных значений не оговорен. Не указано, можно ли, приняв e=0, получить решение с точностью до машинного нуля. При использовании программы 2 для решения кубического уравнения х3-6x2+11х-6=0, имеющего действительные корни x1=1, х2=2 и x3=3 при e=1E-7, микрокалькулятор зациклился. Проведя немало вычислений, я убедился, что прямой связи между относительной погрешностью и "точностью вычислений e" нет.
В руководстве не оговорено, в каких программах и как устанавливаются границы допустимых значений аргумента, в результате чего функция вычисляется в более узкой области, чем область существования. Иногда границы даны без учета вычислительных возможностей калькулятора, указаны с ошибками или просто не указаны. Для некоторых программ исправленные значения границ приведены в таблице. По программе 57 вычисляется не гипергеометрическая функция, являющаяся аналитическим продолжением гипергеометрического ряда, а сам гипергеометрический ряд. Очевидно, составителей набора программ для блока БРП-3 ввело в заблуждение то, что обе эти функции в математической литературе обозначаются одинаково - F(a, b, c, x).
В программах 28, 29, 30, 32, 33, 35, 49, 51 и 53 используются многозначные константы, которые необходимо вводить вручную. Всего таких констант 53, и для их записи в БРП-3 потребовался бы немалый объем памяти - 371 шаг. Между тем в БРП-3 осталась неиспользованной часть памяти, в которую можно записать 330 шагов. Никаких принципиальных трудностей с записью данных в БРП-3 нет, и совершенно непонятно, почему пункт 5.4 руководства предусматривает для имеющеюся в МК-52 переключателя "данные/программа" только одно положение - "программа", хотя в неиспользованную часть памяти можно было бы записать константы по меньшей мере, для семи задач, а если бы исключить тестовые подпрограммы - то и для всех. Хорошо, что в МК-52 есть ППЗУ, с помощью которого можно освободить себя от такой рутинной операции, чреватой ошибками, как ввод констант. К сожалению, данные в ППЗУ записываются, начиная с нулевого регистра. В него же начинается запись и при считывании. В БРП-3 нулевой регистр используется для записи констант только в программе 49, а во всех остальных запись начинается с регистров 1-4. Если при записи в ППЗУ располагать константы в тех же регистрах, в которых они находятся при работе программы, то что потребует, сверх указанных 371, еще 119 шагов. что "съест" всю память ППЗУ. Выход в том, чтобы записывать константы вплотную друг к другу. Для этого следует расположить их в регистрах так, как показано в таблице. Адреса, указанные в этой таблице, подобраны так, что константы записываются в ППЗУ без промежутков, а считываются в те регистры, где они должны быть при работе программы. В таблице эти регистры обведены рамкой.
Подчеркнем еще раз, что ничего не мешало сделать так же и в БРП-3, а польза была бы большая. Конечно, вовсе не обязательно записывать в ППЗУ все 53 константы. Важно уяснить принцип создания адресов записи и считывания, а записывать нужно только те константы, которыми постоянно пользуются.
Сервис, предоставляемый пользователю блоком БРП-3, и оптимальность содержащихся в нем программ - это предмет для особого разговора. Но о генераторе псевдослучайных чисел, используемом в программах 34 и 38, промолчать невозможно. Стремление к оригинальности заставило составителей набора программ для БРП-3 отказаться от широко известных генераторов, используемых владельцами калькуляторов и дающих 6-8 тысяч неповторяющихся чисел, и создать генератор, алгоритм работы которого описывается формулой U[n+1]={(Un+пи)**5}. При указанном в руководстве стартовом числе U0=0.3333 этот генератор дает 104 неповторяющихся числа, а затем зацикливается, причем цикл состоит всего из четырех чисел. При изменении стартового числа изменяется длина неповторяющейся части, а зацикливание сохраняется. Было перепробовано более ста стартовых чисел, но получить больше, чем 249 неповторяющихся чисел, не удалось. Такой рекорд был установлен при стартовом числе U0=0.12345678. Цикл при этом состоял из четырех чисел. Таким же он был и при стартовых числах U0=e/10, sqr2, sqr0.05, 0.11 и других. При стартовых числах U0=пи/10, sqr3, sqr0.07, 0.1, 0.3 и других длина непериодической части была меньше указанной выше, а период состоял из 39 чисел. Иных вариантов обнаружить не удалось. Неудивительно, что ни в одном из известных справочников и пособий для программируемых микрокалькуляторов этот генератор даже не упоминается.
В.МЕДВЕДЯУСКАС (Шяуляй)
[ КОМПЬЮТЕРНАЯ СПРАВКА
В этой рубрике мы продолжаем (см. 10/89) публиковать программы двойного содержания - со сведениями общего характера и с интересной программистской особенностью.
Программа "Телеэкстрасенсы" ("музыка" алгоритма - народная, слова программы - москвича В.Жаворонкова), написанная на Квикверсии Барсика, реализует один из расхожих тестов на восприимчивость к сеансам лечебного гипноза по телевидению. Выяснить алгоритм теста несложно - читатель сделает это самостоятельно ]
В ЛЮБОМ КВАДРАНТЕ
При работе с комплексными числами, векторами, при решении астрономо-геодезических и некоторых других прикладных задач часто приходится вычислять угол А=arctg(y/x). Калькулятор МК-61 вычисляет угол А1=tg-1(y/х). Для определения угла А к величине А1, вычисленной с помощью калькулятора, необходимо добавить nK, где n=0, 2 или 4, а К - прямой угол. Легко заметить, что если одна из величин А1 или y - отрицательна, то A=A1+2K, а если отрицательные они обе, то А=A1+4К. Это обстоятельство использовано в программе для вычисления A на калькуляторе МК-61.
00. / 01.Ftg-1 02. В^ 03. Кзн 04. Fcos-1 05. + 06. x-y 07. Кзн 08. Fcos-1 09. + 10. C/П.
Программа использует только регистры стека, ввод информации в который производится так: y B^ B^ x. Запуск программы осуществляется командами В/0 С/П. К достоинствам программы следует отнести использование команды Fcos-1 для определения угла nК, что позволяет без дополнительных операций получать результат в единицах, определяемых положением переключателя Р/ГРД/Г. Недостатком программы является аварийный останов при х=0 и выдача результата А=К при у=0, хотя в первом случае, в зависимости от знака y, A=К или 3К, а во втором, в зависимости от знака х, A=0 или 2К. Приведенная ниже программа для МК-61 свободна от этого недостатка и правильно вычисляет А без аварийного останова во всем диапазоне значений х и y
00. Fx=0 01. 07 02. Fcos-1 03. x-y 04. Fx=0 05. 18 06. С/П 07. x-y 08. Fx=0 09. 17 10. x-y 11. / 12. Ftg-1 13. В^ 14. Кзн 15. Fcos-1 16. + 17. x-y 18. Кзн 19. Fcos-1 20. + 21. С/П.
Ввод исходных данных и пуск производится так же, как и в предыдущей программе. При использовании этих программ в качестве фрагментов более крупных, команда С/П заменяется командой передачи управления, осуществляемого после вычисления A. При этом не забудьте привести в соответствие адреса переходов и правильно расположите x и y в стеке.
Угол A можно вычислить также на Б3-34 и его аналогах. Для этого в приведенных выше программах заменяют сочетание команд Кзн и Fcos-1. Вместо них в первой программе по адресам 03, 04 и 07, 08 записывают команды ПП 11, а во второй - по адресам 14, 15 и 18, 19 - ПП 22. Кроме того, программы дополняются подпрограммой, записываемой с адреса 11 в первом случае и с адреса 22 по втором. Fx<0 АП F() 1 /-/ Fcos-1 В/0 Сх В/0. Здесь АП - адрес перехода, равный 18 для первой программы и - 29 для второй. Порядок ввода исходных данных и пуск остаются без изменений.
Контрольные примеры. 1. Переключатель Р/ГРД/Г - в положении "Р". x=-1, y=0. 0 B^ В^ 1 /-/ В/0 С/П "3,1415926". 2." Переключатель Р/ГРД/Г - в положении "Г". x=0, y=-1. 1 /-/ B^ B^ 0 В/0 С/П "270". 3. х=1, у=-1. 1 /-/ В^ В^ 1 В/0 С/П "315".
А.БЕЛЯКОВ (Москва)
ИЗ ДЕСЯТИЧНОЙ В ПРОСТУЮ
Программы, преобразующие правильную или неправильную десятичную дробь в цепную, приведены во многих справочниках (см., например, А.Н.Цветков и В.А.Епанечников "Прикладные программы для микроЭВМ" М., 1984, стр.10). Иногда необходимо представить десятичную дробь в виде простой. Это можно сделать, используя известные соотношения между цепной и простой дробями.
Здесь рk и qk вычисляются по рекурентным формулам: рk=р[k-1]**ak+р[k-2]; qk=q[k-1]**ak+q[k-2]. Используя эти формулы, десятичную дробь можно превратить в простую, отличающуюся от исходного числа не более чем на заданное число Д, по программе:
00. ХПА 01. К[x] 02. ХП1 03. 1 04. XП2 05. ХП1 06. Cx 07. ХП5 08. FBx 09. К{х} 10. F1/x 11. К{х} 12. ХПE 13. ПХД 14. FBx 13. К[х] 16. ХП0 17. ПХ1 18. * 19. ПХ2 20. + 21. ХП3 22. ПХ0 23. ПХ4 24. * 25. ПX5 26. + 27. ХП6 28. / 29. ПХA 30. - 31. К|х| 32. - 33. Fx>=0 34. 38 35. ПХ6 36. ПХ3 37. С/П 38.ПХ1 39. ХП2 40. ПХ3 41. ХП1 42. ПХ4 43. ХП5 44. ПХ6 45. ХП4 46. ПХE 47. БП 48. 10.
Перед началом работы в РД вводят Д, а в регистр X - десятичную дробь и запускают программу командами В/0 С/П. Числитель простой дроби после останова будет в регистрах X и 3, я знаменатель - в регистрах Y и 6.
Тест. Д=0.1 - в РД. Fпи "3.1415926" В/0 С/П "7". Время счета 10с. Д=1E-7. 1 Fexp "2.7182818" В/0 С/П "25946" x-y "9545", время счета 1м.50с.
Е.ФЕНЮШИН, ученик 10-го класса (Кольчугин)
[ В "Инструкции" к МК-61 н МК-52 для извлечения квадратного корня указана относительная погрешность 1E-4. а для возведения в квадрат - 1E-7. Я провел исследование, возводя в квадрат числа А*10**n и извлекая из них квадратный корень (1<=A<9.9999999; n=0, 1... 99). И вот что получилось.
При извлечении квадратного корня результат всегда занижен, но относительная погрешность не превышает -1E-7. При возведении в квадрат погрешность зависит от порядка полученного числа. Если он четный, то относительная погрешность не превышает -9,991525E-8, а если нечетный, то она меньше чем 0.5E-7.
С.ЗАЗОВСКИЙ (Москва) ]
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
5/90
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ТРЕТЬЕ, на котором читатель учится использовать персональный компьютер в качестве "интеллектуальной" пишущей машинки. Ведет занятие кандидат технических наук В.Ф.ОЧКОВ (Московский энергетический институт). В проведении занятия участвуют инженеры Д.А.СЕРБИН и И.И.ФЕФЕЛОВ (ВНИИ электромеханики), доктор технических наук В.Т.БЛАГИХ (Челябинский институт механизации и электрификации сельского хозяйства).
Тема нынешнего занятия наметилась давно, пожалуй, еще на первом занятии, когда читателю было предложено набрать на клавиатуре несколько команд: dir, mkdir, copy...
Что если при наборе произошла ошибка? Например, если вместо сору получилось copi? Курсор уже перешел на одну позицию вправо, обозначая место, где после нажатия очередной клавиши появится новая буква... Что делать? Можно вернуть курсор на одну позицию назад, нажав клавишу "стрелка влево" (и тогда он наложится на букву, набранную раньше), а потом нажать клавишу Delete (убрать): буква, с которой совмещен курсор, при этом исчезнет. Можно добиться того же результата нажатием одной лишь клавиши Back Space: она стирает только что введенный ошибочный символ и возвращает курсор иа одну позицию влево, как бы приглашая исправить оплошность. Потом нажмем клавишу с нужной буквой - и все в порядке.
Представьте себе теперь, что вы набираете большую программу или обширный текст, и неверная буква обнаружилась, когда набор уже завершен. Поправима и такая беда: клавишами "стрелка вверх", "вниз", "влево", "вправо" перемещаем курсор на ошибку, нажатием клавиши Delete ее стираем (остальные буквы при этом сомкнутся) и вставляем нужную букву, нажимая соответствующую клавишу. Строка раздвинется, как бы впуская исправившегося "блудного сына".
Многократным нажатием клавиши Delete можно убрать целое слово, а затем букву за буквой набрать замену для него: новое слово войдет в строку, раздвигая соседние слова.
Но ведь может случиться и так, что замену одного слова другим нужно произвести сразу в нескольких местах текста. Просматривать строку за строкой в поисках заменяемого слова, забивать его буква по букве, а потом опять-таки буква по букве набирать новое слово, и так много раз... Однообразная, нудная работа! И занимаетесь вы ею, сидя за машиной, которая для того и создана, чтобы освобождать человека от однообразной и нудной работы! Так неужели нельзя придумать программу, которая выполняла бы подобные замены сама? Вы сообщаете машине заменяемое и заменяющее слова, нажимаете клавишу - и весь текст в мгновение ока становится таким, как хотелось.
А разве не столь же просто для машины выделить абзац? Переставить фразу в другое место текста? Вынести какую-то фразу в подстрочное примечание, а какие-то слова - в заголовок, изменив шрифт со строчного на прописной? Одним словом, выполнить все те действия, которые мы совершаем с помощью авторучки, ножниц, клея и белил, когда черкаем и кромсаем тексты, чтобы отдать их машинистке для перепечатки набело. Какое огромное облегчение принесла бы программа, умеющая делать все это!
Как догадывается читатель, острая потребность в подобных программах не могла оставаться неудовлетворенной. Уже давно появились текстовые процессоры - программные средства, сводящие на нет мудрость пословицы "что написано пером - не вырубишь топором". (Их еще называют редакторами, эдиторами). Появились и быстро стали самыми распространенными среди "серьезных" программ. Завоевать абсолютное первенство по распространенности им не позволяют программы "несерьезные" - игровые. Но второе место им обеспечено прочно, потому что (как это ни обидно жрецам "машинного разума") современные персональные компьютеры в подавляющем большинстве случаев используются либо как игровые автоматы, либо как пишущие машинки.
Полюбопытствуйте, беседуя со знакомыми, что происходило, когда в их отделе (лаборатории, цехе, конторе) только-только появился персональный компьютер. Несмотря на грозные предупреждения и приказы, первое время на нем "крутятся" только игры, а в каникулы машину оккупируют дети сотрудников. Потом эта волна спадает, и обладатели чудесной машины начинают задумываться, чем еще полезным можно ее загрузить. Вспоминается, что у нее есть принтер, а собственная машинистка завалена работой, с которой еле-еле справляется. Вот тут-то к компьютеру и подсаживается парочка: человек, знающий машину (обозначим его буквой З), и машинистка (М). Ниже приводится их типичный диалог.
З. Послушай, начальство меня попросило, чтобы я научил тебя печатать на компьютере. Нужно срочно размножить и разослать что-то около полусотни приглашений на совещание.
М. А разве это нельзя сделать на обычной машинке? Десять закладок по пять экземпляров - вот всего и будет пятьдесят.
З. Но копии не совсем удобно посылать в качестве приглашений. Тем более что последние экземпляры будут совсем "слепые".
М. Тогда я сделаю только один экземпляр в виде бланка, отксерокопирую его, впишу или впечатаю в копии имена приглашенных и разошлю письма куда следует.
З. Здесь уже целых два "но". Во-первых, если наше бюро так называемой оперативной полиграфии эту работу и возьмет, то лишь после долгих оформлений. Во-вторых, не очень-то приятно получать бланк с вписанным или впечатанным именем: казенщина! А вот посмотри, как быстро и респектабельно это получается на компьютере. Я включаю центральный блок машины, дисплей и принтер. На экране дисплея появляется меню пользователя, в котором мы видим нужное нам "блюдо" под названием LEXICON. Клавишей "стрелка вниз" перемещаем курсорную рамку на это слово и нажимаем клавишу Enter. На экране мелькнула рекламная заставка, где сказано, что лексикон создал Е.Н.Веселов, и вот мы вошли в среду текстового процессора. Это означает, что наш компьютер превратился в пишущую машинку, и ты можешь набирать на экране дисплея текст приглашения на совещание. Он будет храниться на экране в виде электронного бланка, где можно будет менять имена адресатов: Уважаемый Иван Иванович! Глубокоуважаемый Петр Петрович! Милая Зиночка!
М. А как печатать заглавные буквы?
З. Точно так же, как на обычной машинке - только роль клавиши верхнего регистра тут выполняет клавиша Shift. Хочешь печатать одними заглавными - нажми клавишу Caps Lock. Если нужно вставить между ними строчную букву - нажми клавишу Shift. Хочешь вернуться к строчным - еще раз нажми клавишу Caps Lock. Вообще если работа с клавиатурой компьютера чем-то и отличается от работы с пишущей машинкой, то только в лучшую сторону. Посмотри, например, как удобно исправлять ошибки с помощью клавиш Delete и Back Space. Смотри дальше: вот я печатаю слово за словом, дошел до конца строки и - видишь? Машина сама сделала перенос, разорвала слово в нужном месте. Умница, правда? В каждой строке она оставляет не более 60 знаков, причем эту цифру можно изменить, если текст готовится для распечатки на нестандартном (узком или, наоборот, широком) листе бумаги. Смотри дальше: вот подходит к концу вторая строка, машина опять по-умному сделала перенос, но самое главное - ты заметила, какой получилась вторая строка по длине?
М. Точно такой же, как и первая. Увеличились пробелы между словами.
З. Да, машина выровняла строки сразу после того, как сделала перенос. И следующие строки будут точно такими же, так что все вместе они будут выглядеть словно на книжной странице. Готовый и выверенный текст можно будет "сбрасывать" на принтер. Работать с ним опять же намного проще, чем с пишущей машинкой: сюда ты вставляешь чистый лист бумаги, нажимаешь вот эту кнопку, принтер заглатывает чистую бумагу. Чтобы на ней был отпечатан текст, ты нажимаешь на клавиатуре компьютера клавишу F10, и в верхней части экрана появляется меню, где есть "блюдо" под названием ПЕЧАТЬ. Клавишами "стрелка вправо" и "стрелка влево" подводишь к нему курсорную рамку и нажимаешь клавишу Enter. Да что я тебе все это объясняю? Ты ведь уже до чертиков в глазах наигралась в компьютерные игры, а в них тоже есть такие же меню, и ты прекрасно умеешь отдавать машине всяческие приказания. Принтер у меня сильно трещит, но ты не обращай на это внимания, и пока первое приглашение будет распечатываться, не теряй времени - стирай с помощью клавиши Delete имя-отчество первого адресата и печатай имя-отчество второго: был Иван Иванович - стал Петр Петрович. А теперь смотри, как я превращу "Уважаемого" в "Глубокоуважаемого": подвожу курсор к прописной букве У, стираю ее, начинаю печатать новое начало слова, а машина отодвигает прежнее продолжение: Гважаемый, Глважаемый, Глуважаемый... и так далее до конечного результата. Ну а теперь обратим свои взоры к принтеру. Он уже отпечатал первое приглашение.
Нажата клавиша F10 - и в верхней части экрана появилось меню. Курсорная рамка наведена на нужное слово - появилось новое меню. И каждый раз под строчкой "блюд" видна другая: она сообщает о режимах работы (ТЕКСТ или ДОК, ВСТАВКА или ЗАМЕНА), местоположении курсора, имени файла, находящегося в окне, типе шрифта (русский или латинский), текущей дате.
М. Шрифт - почти как на моей "Оптиме".
З. Если он тебе не понравится, я помогу тебе сменить его. Это работа несложная, и ты потом будешь с ней легко справляться. Так за каких-то полчаса ты сделаешь работу, с которой на своей "Оптиме" возилась бы два дня. Все приглашения будут в первом экземпляре и без помарок. Если что будет неясно, зови меня, а лучше жми на клавишу F1. Она вызовет на экран подсказку. Ее ты прочтешь и нажмешь клавишу Esc (escape, убегать) - подсказка пропадет и можно дальше работать с текстовым процессором. Кстати, текст приглашения, которое ты должна размножить, можно записать на магнитный диск, и тебе не придется набирать его снова, если понадобится сделать приглашения на следующее совещание. Вот гляди: я снова нажимаю клавишу F10. вызываю меню, навожу курсорную рамку на слово Текст, нажимаю клавишу Enter, появляется новое меню... В нем меня интересует слово СОХРАНИТЬ. Если навести на него курсорную рамку и нажать клавишу Enter, набранный текст будет перенесен на магнитный диск. Но прежде надо присвоить этому тексту какое-то имя. Не дождавшись его, машина работать не будет. И в самом деле, видишь: после того, как я нажал клавишу Enter, машина спрашивает, какое имя дать сохраняемому тексту. Назовем его ПРИГЛАШЕНИЕ. Набрали это слово, опять нажали клавишу Enter - вот команда Сохранить и выполнена, теперь текст будет храниться в памяти компьютера.
М. А как я вызову его на экран, если понадобится?
З. Сейчас покажу. Впрочем - сделай это сама. С чего начнешь? Верно, нажимаем клавишу F10, в появившемся меню выделяем курсорной рамкой слово Текст, нажимаем Enter, в новом меню ищем нужное слово. Это слово ЗАГРУЗИТЬ. Нажали Enter, и машина запрашивает имя файла, который тебе нужен. Набирай: ПРИГЛАШЕНИЕ. Нажимаем Enter - и текст на экране. Обрати внимание: мы с тобой не указывали, в какой участок архивной памяти надо было помещать текст приглашения. В таких случаях машина по умолчанию помещает его в директорию по имени LEX. А тебе, наверное, хотелось бы занести его куда-то отдельно, чтобы хранить у себя? Это можно. Давай занесем его на гибкий диск. Вот смотри, я вставляю такой диск в карман А, вызываю меню, которое начинается на слово СОХРАНИТЬ, на это слово опять навожу курсорную рамку и набираю команду... Нет, постой! Ты не возражаешь, если я наберу эту команду латинским шрифтом?
М. Делай, как тебе удобнее. Я ведь знаю, что во всех машинных языках команды составлены из английских слов.
З. Команда, которую я наберу, будет состоять из названий директории и поддиректории, куда попадет файл с сохраняемым текстом, и имени этого файла. Для этого можно употребить и английские, и русские слова. Но клавиатура у компьютера только одна. Она может работать в одном из двух режимов, печатая либо русские, либо латинские буквы. Переключать режимы можно клавишей F9. Каждый нажим на нее перенастраивает клавиатуру с одного алфавита на другой. Но изъясняться по-русски нашему компьютеру IBM PC приходится ценой довольно непростых действий, а нередко с риском ошибиться. Это для нас с тобой Г, Ш - буквы. Для "заморской" же машины это специальные символы, многие из которых просто недопустимы в именах директорий и файлов. Чтобы не морочить тебе голову техническими подробностями, скажу кратко: родной язык нашей машины - английский. Так почему бы не уважить ее, тем более что для нас это совсем не трудно? Итак, набираю:
А:\ARCHIVE\LETTER\INV.
М. Что это значит?
З. То, что я заношу текст приглашения в виде файла под именем INV (от слова invite, приглашать) в поддиректорию LETTER (письма) директории ARCHIVE (архив) на диске А. Нажимаю клавишу Enter - и текст ушел по указанному маршруту в нужное место. Если хочешь вызвать текст приглашения, вызови сначала то же меню, наведи курсорную рамку на слово ЗАГРУЗИТЬ, набери описание того же маршрута A:\ARCHIVE\LETTER\INV и нажми клавишу Enter. Конечно, чтобы текст попал в указанную директорию, ее надо прежде создать. Хочешь, покажу, как это делается? Или, может быть, я расскажу тебе, как с помощью Лексикона рисовать рамки, строить таблицы и схемы? Тебе ведь тоже приходится частенько это делать на твоей "Оптиме"...
М. Нет-нет! Я боюсь, что у меня все перепутается в голове, если заучивать сразу. Да и срочную работу нужно делать. Расскажешь как-нибудь потом, при случае...
В отказе машинистки слушать новые объяснения есть глубокий смысл. Команды управления текстовым процессором (если простое тыканье в названия "блюд" можно назвать командами) вряд ли стоит учить. словно формулы перед экзаменом. Главное знать, что может процессор и нужно ли это для конкретной работы. А как это сделать, машина подскажет сама. Нужно только проявлять здоровое любопытство, не бояться нажимать клавиши и... не пропускать занятия нашей "Школы". Если же в работе встретится непреодолимое затруднение, лучше призвать на помощь Знатока. Совет, данный им в такой ситуации, запомнится накрепко - по крайней мере гораздо прочнее, чем при заучивании впрок.
Но на одной подробности мы все же остановимся. Поясним, как Знаток, обучая Машинистку, запустил текстовый процессор Лексикон.
Запуск выполняется обычно по одному из трех вариантов.
"Вариант для дам", то есть для машинисток, многие из которых всегда будут воспринимать команды дисковой операционной системы как некую китайскую грамоту. В этом случае лучше ничего не объяснять, а просто записать в стартовый файл AUTOEXEC.BAT команды вызова текстового процессора Лексикон: cd lex (переход на директорию lex) lex (запуск программы lex). После этого компьютер будет превращаться в пишущую машинку сразу после включения в сеть без каких-либо дополнительных усилий.
"Вариант для многостаночников". Если круг пользователей персонального компьютера (в нашей стране, где подобных компьютеров маловато, это выражение не кажется парадоксальным, хотя само название ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР предполагает, что им обладает лишь одна персона) общается с машиной не только посредством Лексикона, но и забавляется играми, программирует, роется в базах данных и т.п., то в этом случае лучше с помощью инструментальной системы Norton Commander (см. 3/90) составить меню услуг машины, которое будет появляться после ее включения на экране дисплея, и предусмотреть в этом меню вызов текстового процессора Лексикон. Нетрудно понять, что в вышеприведенном рассказе текстовый процессор вызывался именно по второму варианту.
"Вариант для профессионалов". После включения машины на ее запрос С:> нужно "покрутить заводную ручку" - набрать на клавиатуре и выполнить команды cd lex и lex (см. первый из описанных вариантов). Разумеется, на жестком диске С, обращение к которому и предполагает запрос машины, должен иметься файл, содержащий текстовый процессор Лексикон под именем lex.
Текстовый процессор Лексикон оказывает много услуг, в которых немудрено и запутаться. Чтобы этого не произошло и пользователь смог быстро найти нужное, меню Лексикона (как, впрочем, и любого другого программного продукта) организовано в виде дерева. Его ствол - это строка, появляющаяся на экране после нажатия клавиши F10.
...
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ТРЕТЬЕ, на котором читатель учится использовать персональный компьютер в качестве "интеллектуальной" пишущей машинки. Ведет занятие кандидат технических наук В.Ф.ОЧКОВ (Московский энергетический институт). В проведении занятия участвуют инженеры Д.А.СЕРБИН и И.И.ФЕФЕЛОВ (ВНИИ электромеханики), доктор технических наук В.Т.БЛАГИХ (Челябинский институт механизации и электрификации сельского хозяйства).
Тема нынешнего занятия наметилась давно, пожалуй, еще на первом занятии, когда читателю было предложено набрать на клавиатуре несколько команд: dir, mkdir, copy...
Что если при наборе произошла ошибка? Например, если вместо сору получилось copi? Курсор уже перешел на одну позицию вправо, обозначая место, где после нажатия очередной клавиши появится новая буква... Что делать? Можно вернуть курсор на одну позицию назад, нажав клавишу "стрелка влево" (и тогда он наложится на букву, набранную раньше), а потом нажать клавишу Delete (убрать): буква, с которой совмещен курсор, при этом исчезнет. Можно добиться того же результата нажатием одной лишь клавиши Back Space: она стирает только что введенный ошибочный символ и возвращает курсор иа одну позицию влево, как бы приглашая исправить оплошность. Потом нажмем клавишу с нужной буквой - и все в порядке.
Представьте себе теперь, что вы набираете большую программу или обширный текст, и неверная буква обнаружилась, когда набор уже завершен. Поправима и такая беда: клавишами "стрелка вверх", "вниз", "влево", "вправо" перемещаем курсор на ошибку, нажатием клавиши Delete ее стираем (остальные буквы при этом сомкнутся) и вставляем нужную букву, нажимая соответствующую клавишу. Строка раздвинется, как бы впуская исправившегося "блудного сына".
Многократным нажатием клавиши Delete можно убрать целое слово, а затем букву за буквой набрать замену для него: новое слово войдет в строку, раздвигая соседние слова.
Но ведь может случиться и так, что замену одного слова другим нужно произвести сразу в нескольких местах текста. Просматривать строку за строкой в поисках заменяемого слова, забивать его буква по букве, а потом опять-таки буква по букве набирать новое слово, и так много раз... Однообразная, нудная работа! И занимаетесь вы ею, сидя за машиной, которая для того и создана, чтобы освобождать человека от однообразной и нудной работы! Так неужели нельзя придумать программу, которая выполняла бы подобные замены сама? Вы сообщаете машине заменяемое и заменяющее слова, нажимаете клавишу - и весь текст в мгновение ока становится таким, как хотелось.
А разве не столь же просто для машины выделить абзац? Переставить фразу в другое место текста? Вынести какую-то фразу в подстрочное примечание, а какие-то слова - в заголовок, изменив шрифт со строчного на прописной? Одним словом, выполнить все те действия, которые мы совершаем с помощью авторучки, ножниц, клея и белил, когда черкаем и кромсаем тексты, чтобы отдать их машинистке для перепечатки набело. Какое огромное облегчение принесла бы программа, умеющая делать все это!
Как догадывается читатель, острая потребность в подобных программах не могла оставаться неудовлетворенной. Уже давно появились текстовые процессоры - программные средства, сводящие на нет мудрость пословицы "что написано пером - не вырубишь топором". (Их еще называют редакторами, эдиторами). Появились и быстро стали самыми распространенными среди "серьезных" программ. Завоевать абсолютное первенство по распространенности им не позволяют программы "несерьезные" - игровые. Но второе место им обеспечено прочно, потому что (как это ни обидно жрецам "машинного разума") современные персональные компьютеры в подавляющем большинстве случаев используются либо как игровые автоматы, либо как пишущие машинки.
Полюбопытствуйте, беседуя со знакомыми, что происходило, когда в их отделе (лаборатории, цехе, конторе) только-только появился персональный компьютер. Несмотря на грозные предупреждения и приказы, первое время на нем "крутятся" только игры, а в каникулы машину оккупируют дети сотрудников. Потом эта волна спадает, и обладатели чудесной машины начинают задумываться, чем еще полезным можно ее загрузить. Вспоминается, что у нее есть принтер, а собственная машинистка завалена работой, с которой еле-еле справляется. Вот тут-то к компьютеру и подсаживается парочка: человек, знающий машину (обозначим его буквой З), и машинистка (М). Ниже приводится их типичный диалог.
З. Послушай, начальство меня попросило, чтобы я научил тебя печатать на компьютере. Нужно срочно размножить и разослать что-то около полусотни приглашений на совещание.
М. А разве это нельзя сделать на обычной машинке? Десять закладок по пять экземпляров - вот всего и будет пятьдесят.
З. Но копии не совсем удобно посылать в качестве приглашений. Тем более что последние экземпляры будут совсем "слепые".
М. Тогда я сделаю только один экземпляр в виде бланка, отксерокопирую его, впишу или впечатаю в копии имена приглашенных и разошлю письма куда следует.
З. Здесь уже целых два "но". Во-первых, если наше бюро так называемой оперативной полиграфии эту работу и возьмет, то лишь после долгих оформлений. Во-вторых, не очень-то приятно получать бланк с вписанным или впечатанным именем: казенщина! А вот посмотри, как быстро и респектабельно это получается на компьютере. Я включаю центральный блок машины, дисплей и принтер. На экране дисплея появляется меню пользователя, в котором мы видим нужное нам "блюдо" под названием LEXICON. Клавишей "стрелка вниз" перемещаем курсорную рамку на это слово и нажимаем клавишу Enter. На экране мелькнула рекламная заставка, где сказано, что лексикон создал Е.Н.Веселов, и вот мы вошли в среду текстового процессора. Это означает, что наш компьютер превратился в пишущую машинку, и ты можешь набирать на экране дисплея текст приглашения на совещание. Он будет храниться на экране в виде электронного бланка, где можно будет менять имена адресатов: Уважаемый Иван Иванович! Глубокоуважаемый Петр Петрович! Милая Зиночка!
М. А как печатать заглавные буквы?
З. Точно так же, как на обычной машинке - только роль клавиши верхнего регистра тут выполняет клавиша Shift. Хочешь печатать одними заглавными - нажми клавишу Caps Lock. Если нужно вставить между ними строчную букву - нажми клавишу Shift. Хочешь вернуться к строчным - еще раз нажми клавишу Caps Lock. Вообще если работа с клавиатурой компьютера чем-то и отличается от работы с пишущей машинкой, то только в лучшую сторону. Посмотри, например, как удобно исправлять ошибки с помощью клавиш Delete и Back Space. Смотри дальше: вот я печатаю слово за словом, дошел до конца строки и - видишь? Машина сама сделала перенос, разорвала слово в нужном месте. Умница, правда? В каждой строке она оставляет не более 60 знаков, причем эту цифру можно изменить, если текст готовится для распечатки на нестандартном (узком или, наоборот, широком) листе бумаги. Смотри дальше: вот подходит к концу вторая строка, машина опять по-умному сделала перенос, но самое главное - ты заметила, какой получилась вторая строка по длине?
М. Точно такой же, как и первая. Увеличились пробелы между словами.
З. Да, машина выровняла строки сразу после того, как сделала перенос. И следующие строки будут точно такими же, так что все вместе они будут выглядеть словно на книжной странице. Готовый и выверенный текст можно будет "сбрасывать" на принтер. Работать с ним опять же намного проще, чем с пишущей машинкой: сюда ты вставляешь чистый лист бумаги, нажимаешь вот эту кнопку, принтер заглатывает чистую бумагу. Чтобы на ней был отпечатан текст, ты нажимаешь на клавиатуре компьютера клавишу F10, и в верхней части экрана появляется меню, где есть "блюдо" под названием ПЕЧАТЬ. Клавишами "стрелка вправо" и "стрелка влево" подводишь к нему курсорную рамку и нажимаешь клавишу Enter. Да что я тебе все это объясняю? Ты ведь уже до чертиков в глазах наигралась в компьютерные игры, а в них тоже есть такие же меню, и ты прекрасно умеешь отдавать машине всяческие приказания. Принтер у меня сильно трещит, но ты не обращай на это внимания, и пока первое приглашение будет распечатываться, не теряй времени - стирай с помощью клавиши Delete имя-отчество первого адресата и печатай имя-отчество второго: был Иван Иванович - стал Петр Петрович. А теперь смотри, как я превращу "Уважаемого" в "Глубокоуважаемого": подвожу курсор к прописной букве У, стираю ее, начинаю печатать новое начало слова, а машина отодвигает прежнее продолжение: Гважаемый, Глважаемый, Глуважаемый... и так далее до конечного результата. Ну а теперь обратим свои взоры к принтеру. Он уже отпечатал первое приглашение.
Нажата клавиша F10 - и в верхней части экрана появилось меню. Курсорная рамка наведена на нужное слово - появилось новое меню. И каждый раз под строчкой "блюд" видна другая: она сообщает о режимах работы (ТЕКСТ или ДОК, ВСТАВКА или ЗАМЕНА), местоположении курсора, имени файла, находящегося в окне, типе шрифта (русский или латинский), текущей дате.
М. Шрифт - почти как на моей "Оптиме".
З. Если он тебе не понравится, я помогу тебе сменить его. Это работа несложная, и ты потом будешь с ней легко справляться. Так за каких-то полчаса ты сделаешь работу, с которой на своей "Оптиме" возилась бы два дня. Все приглашения будут в первом экземпляре и без помарок. Если что будет неясно, зови меня, а лучше жми на клавишу F1. Она вызовет на экран подсказку. Ее ты прочтешь и нажмешь клавишу Esc (escape, убегать) - подсказка пропадет и можно дальше работать с текстовым процессором. Кстати, текст приглашения, которое ты должна размножить, можно записать на магнитный диск, и тебе не придется набирать его снова, если понадобится сделать приглашения на следующее совещание. Вот гляди: я снова нажимаю клавишу F10. вызываю меню, навожу курсорную рамку на слово Текст, нажимаю клавишу Enter, появляется новое меню... В нем меня интересует слово СОХРАНИТЬ. Если навести на него курсорную рамку и нажать клавишу Enter, набранный текст будет перенесен на магнитный диск. Но прежде надо присвоить этому тексту какое-то имя. Не дождавшись его, машина работать не будет. И в самом деле, видишь: после того, как я нажал клавишу Enter, машина спрашивает, какое имя дать сохраняемому тексту. Назовем его ПРИГЛАШЕНИЕ. Набрали это слово, опять нажали клавишу Enter - вот команда Сохранить и выполнена, теперь текст будет храниться в памяти компьютера.
М. А как я вызову его на экран, если понадобится?
З. Сейчас покажу. Впрочем - сделай это сама. С чего начнешь? Верно, нажимаем клавишу F10, в появившемся меню выделяем курсорной рамкой слово Текст, нажимаем Enter, в новом меню ищем нужное слово. Это слово ЗАГРУЗИТЬ. Нажали Enter, и машина запрашивает имя файла, который тебе нужен. Набирай: ПРИГЛАШЕНИЕ. Нажимаем Enter - и текст на экране. Обрати внимание: мы с тобой не указывали, в какой участок архивной памяти надо было помещать текст приглашения. В таких случаях машина по умолчанию помещает его в директорию по имени LEX. А тебе, наверное, хотелось бы занести его куда-то отдельно, чтобы хранить у себя? Это можно. Давай занесем его на гибкий диск. Вот смотри, я вставляю такой диск в карман А, вызываю меню, которое начинается на слово СОХРАНИТЬ, на это слово опять навожу курсорную рамку и набираю команду... Нет, постой! Ты не возражаешь, если я наберу эту команду латинским шрифтом?
М. Делай, как тебе удобнее. Я ведь знаю, что во всех машинных языках команды составлены из английских слов.
З. Команда, которую я наберу, будет состоять из названий директории и поддиректории, куда попадет файл с сохраняемым текстом, и имени этого файла. Для этого можно употребить и английские, и русские слова. Но клавиатура у компьютера только одна. Она может работать в одном из двух режимов, печатая либо русские, либо латинские буквы. Переключать режимы можно клавишей F9. Каждый нажим на нее перенастраивает клавиатуру с одного алфавита на другой. Но изъясняться по-русски нашему компьютеру IBM PC приходится ценой довольно непростых действий, а нередко с риском ошибиться. Это для нас с тобой Г, Ш - буквы. Для "заморской" же машины это специальные символы, многие из которых просто недопустимы в именах директорий и файлов. Чтобы не морочить тебе голову техническими подробностями, скажу кратко: родной язык нашей машины - английский. Так почему бы не уважить ее, тем более что для нас это совсем не трудно? Итак, набираю:
А:\ARCHIVE\LETTER\INV.
М. Что это значит?
З. То, что я заношу текст приглашения в виде файла под именем INV (от слова invite, приглашать) в поддиректорию LETTER (письма) директории ARCHIVE (архив) на диске А. Нажимаю клавишу Enter - и текст ушел по указанному маршруту в нужное место. Если хочешь вызвать текст приглашения, вызови сначала то же меню, наведи курсорную рамку на слово ЗАГРУЗИТЬ, набери описание того же маршрута A:\ARCHIVE\LETTER\INV и нажми клавишу Enter. Конечно, чтобы текст попал в указанную директорию, ее надо прежде создать. Хочешь, покажу, как это делается? Или, может быть, я расскажу тебе, как с помощью Лексикона рисовать рамки, строить таблицы и схемы? Тебе ведь тоже приходится частенько это делать на твоей "Оптиме"...
М. Нет-нет! Я боюсь, что у меня все перепутается в голове, если заучивать сразу. Да и срочную работу нужно делать. Расскажешь как-нибудь потом, при случае...
В отказе машинистки слушать новые объяснения есть глубокий смысл. Команды управления текстовым процессором (если простое тыканье в названия "блюд" можно назвать командами) вряд ли стоит учить. словно формулы перед экзаменом. Главное знать, что может процессор и нужно ли это для конкретной работы. А как это сделать, машина подскажет сама. Нужно только проявлять здоровое любопытство, не бояться нажимать клавиши и... не пропускать занятия нашей "Школы". Если же в работе встретится непреодолимое затруднение, лучше призвать на помощь Знатока. Совет, данный им в такой ситуации, запомнится накрепко - по крайней мере гораздо прочнее, чем при заучивании впрок.
Но на одной подробности мы все же остановимся. Поясним, как Знаток, обучая Машинистку, запустил текстовый процессор Лексикон.
Запуск выполняется обычно по одному из трех вариантов.
"Вариант для дам", то есть для машинисток, многие из которых всегда будут воспринимать команды дисковой операционной системы как некую китайскую грамоту. В этом случае лучше ничего не объяснять, а просто записать в стартовый файл AUTOEXEC.BAT команды вызова текстового процессора Лексикон: cd lex (переход на директорию lex) lex (запуск программы lex). После этого компьютер будет превращаться в пишущую машинку сразу после включения в сеть без каких-либо дополнительных усилий.
"Вариант для многостаночников". Если круг пользователей персонального компьютера (в нашей стране, где подобных компьютеров маловато, это выражение не кажется парадоксальным, хотя само название ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР предполагает, что им обладает лишь одна персона) общается с машиной не только посредством Лексикона, но и забавляется играми, программирует, роется в базах данных и т.п., то в этом случае лучше с помощью инструментальной системы Norton Commander (см. 3/90) составить меню услуг машины, которое будет появляться после ее включения на экране дисплея, и предусмотреть в этом меню вызов текстового процессора Лексикон. Нетрудно понять, что в вышеприведенном рассказе текстовый процессор вызывался именно по второму варианту.
"Вариант для профессионалов". После включения машины на ее запрос С:> нужно "покрутить заводную ручку" - набрать на клавиатуре и выполнить команды cd lex и lex (см. первый из описанных вариантов). Разумеется, на жестком диске С, обращение к которому и предполагает запрос машины, должен иметься файл, содержащий текстовый процессор Лексикон под именем lex.
Текстовый процессор Лексикон оказывает много услуг, в которых немудрено и запутаться. Чтобы этого не произошло и пользователь смог быстро найти нужное, меню Лексикона (как, впрочем, и любого другого программного продукта) организовано в виде дерева. Его ствол - это строка, появляющаяся на экране после нажатия клавиши F10.
...
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
...
Не все слова, записанные в этой строке, являются названиями "блюд". За многими из них скрыты новые слова, уточняющие или детализирующие команды, какие человек намеревается отдать машине. А за этими новыми словами могут стоять другие и т.д. Так, карабкаясь по дереву меню, пользователь может найти то, что ему в данный момент нужно от текстового процессора. Попытаемся и мы немного попутешествовать по кроне столь плодоносного дерева.
Итак, нажав клавишу F10, пользователь откроет меню первого уровня с одиннадцатью словами: ТЕКСТ АБЗАЦ ФРАГМЕНТ СТРАНИЦЫ НАЙТИ ЗАМЕНИТЬ ОТМЕТИТЬ ПЕРЕЙТИ ШРИФТ ДОС ВЫХОД, из которых одна часть - это команды, а другая - названия групп команд.
Если перевести курсорную рамку на слово ТЕКСТ и нажать клавишу Enter, то появится строка СОХРАНИТЬ ЗАГРУЗИТЬ ОЧИСТИТЬ КОНФИГУРАЦИЯ МАКРО ПЕЧАТЬ. Первые два слова мы уже расшифровали. ОЧИСТИТЬ - это стереть ненужный текст перед вводом нового через клавиатуру или с магнитного диска. За словом КОНФИГУРАЦИЯ скрыты команды, какие пользователь может отдать машине, чтобы оптимальным образом приспособить текстовый процессор к своим потребностям и вкусам. Можно, например, изменить размер окон, в которых появляются тексты (об этом чуть ниже), чтобы на экране были видны два, три и более текстов в разных окнах; можно изменить цвет окна и цвет букв, какие появляются в нем при наборе текста,- это будет настраивать на определенный лад при работе с разными текстами. Установка конфигурации текстового процессора может включать в себя и разметку экрана дисплея - разбивку на столбцы, куда будет перескакивать курсор после нажатия клавиши Tab.
Режим МАКРО - это готовность компьютера общаться с пользователем короткими условными сигналами, когда определенная последовательность символов (ее называют макросом) появляется на экране мгновенно, стоит лишь нажать всего-навсего одну буквенную клавишу или какой-то другой символ. Создать макрос проще простого. Курсорная рамка наводится на слово МАКРО в меню, нажимается Enter, машина запрашивает символ, который будет заменять некую последовательность символов, а затем и саму эту последовательность. Назначенный на такую роль символ набирается, когда это нужно, при утопленной клавише Alt. Скажем, так можно договориться с машиной, что пара Alt+Т станет заменять словосочетание ТЕКСТОВЫЙ ПРОЦЕССОР.
Вывод готового текста на принтер (режим ПЕЧАТЬ) тоже поддерживается особым меню, дающим пользователю возможность выбрать шрифт, разбить текст по отдельным страницам и т.д.
За словом АБЗАЦ опять-таки скрыто много интересного. Переход к этому режиму вызывает не названия "блюд", а скорее названия приправ, позволяющих "сдобрить" готовые тексты, сделать их более удобоваримыми - правильно оформить переносы слов, выровнять правый край текста, изменить, если надо, число знаков на строках и т.д. Нажали F10, "ткнули" в слово Абзац и на дисплее - цепочка: ФОРМАТ РЕЖИМ ГЛОБФОРМАТ ПЕРЕНОС(ДА-НЕТ) ВЫКЛЮЧКА(ДА-НЕТ) ПРАВАЯ:60 ЛЕВАЯ:1 ОТСТУП:5 ОБРАЗЕЦ. Не ясно? Попытаемся объяснить.
ФОРМАТировать - это выровнять правый край отмеченного курсором абзаца, оставив в нем заданное число знаков на строке (60). Такую работу можно сразу поручить компьютеру, если выбран активный РЕЖИМ. Весь текст в текущем окне, а не только один абзац, может быть ГЛОБально отФОРМАТирован. Если желательно, чтобы слова не рвались при ПЕРЕНОСах, то нужно запретить машине их делать. Как это устроить? Из двух слов ДА и НЕТ, приведенных выше при описании режима АБЗАЦ, на экране возникает лишь одно. Например: ПЕРЕНОС(ДА). И если вы хотите, чтобы машина делала переносы, вы оставляете строчку меню неизменной. Если не хотите - наведите курсорную рамку на слово ПЕРЕНОС, нажмите клавишу Enter и увидите: ПЕРЕНОС(НЕТ). Отныне машина переносов делать не будет. Если вас не устраивает ширина строки, перенесите курсорную рамку на слово ПРАВАЯ:60, нажмите клавишу Enter, и машина высветит на экране просьбу: "Введите правую границу", ниже которой пока что будет стоять прежняя величина 60. Уничтожьте это число с помощью клавиши Back Space и наберите новое, желательное число, указывающее положение последнего символа в строке - допустим, 55. Точно так же устанавливается положение начального символа в обычной и красной строке - курсорная рамка для этого наводится на слова ЛЕВАЯ:1 и ОТСТУП:5. Кстати, тем, кто любит разделять абзацы пробелами, понравится прием, с помощью которого в текст вставляется пустая строка: курсор ставится за последним символом строки, после которой желателен пробел, и нажимается клавиша Enter. Остается объяснить, что скрывается за словом ВЫКЛЮЧКА, но... не хотите ли вы выяснить это сами?
У каждого человека есть любимые блюда. Так вот у редакторов, прибегающих к услугам текстовых процессоров, наверно, самое любимое "блюдо" - это режим ФРАГМЕНТ. Там спрятаны редакторские ножницы и клей. "Ткнув" в слово ФРАГМЕНТ, получим отклик: ВЫДЕЛИТЬ ЗАБРАТЬ ВСТАВИТЬ СНЯТЬВЫДЕЛЕНИЕ. Теперь представьте, что вам предстоит дать ответ на полученное письмо, хранящееся в первом, например, окне. Ответы на письма очень часто строятся по принципу "каков вопрос - таков ответ". Это, в частности, означает, что в тексте ответа можно встретить целые ФРАГМЕНТЫ письма-вопроса. Пользователь ВЫДЕЛяет в письме-вопросе нужный фрагмент, ЗАБирает его в так называемый карман, переходит во второе, к примеру, окно, там начинает набирать ответ, в нужный момент ВСТАВляет в него фрагмент вопроса, таким путем заканчивает ответ, немного редактирует и... ответ готов. Выделяется нужный текст (строковый, то есть состоящий из целых строк, или прямоугольный, как, например, в таблицах) курсорными клавишами. В выделенном тексте при этом меняется цвет фона и букв. Команда СНЯТЬВЫДЕЛЕНИЕ восстанавливает статус-кво - делает текст однородным и готовым к новому выделению. В кармане забранный ранее текст хранится, пока его не заменит новый выделенный фрагмент.
За словом СТРАНИЦЫ - новая вывеска: РАССТАВЬСТРАНИЦЫ РАССТОЯНИЕ:1.5 ВЫСОТА:45 КОЛОНТИТУЛ УБРАТЬСТРАНИЦЫ КАТАЛОГ. Когда что-то пишешь (например, статью в журнал с оговоренным объемом), то всегда хочется знать, много ли написал, не пора ли уже закругляться. Текстовый процессор и тут будет очень кстати. Дал команду РАССТАВЬСТРАНИЦЫ - и нет проблем: текст разбит на страницы, каждая из которых содержит 45 строк с интервалом 1.5 (полтора). Цифры 45 и 1.5 при желании можно изменить - точно так же, как мы недавно изменяли ширину строки. Но чаще всего к расстановке страниц прибегают не для выяснения размера текста (это можно узнать и по объему файла, хранящего его), а при подготовке его к печати. При этом под номером страницы можно сделать какую-либо подпись (название главы или раздела), как это делается в хорошо оформленных книгах. Такая подпись у полиграфистов называется КОЛОНТИТУЛ. Чтобы на разных страницах были различные колонтитулы, нужно предварительно заполнить КАТАЛОГ: указать машине, что на какой странице подписывать.
НАЙТИ и ЗАМЕНИТЬ. Это инструменты информационного поиска. Найти какое-то слово или просто цепочку символов в тексте ниже текущего положения курсора довольно просто. Нужно "ткнуть" в слово НАЙТИ, машина запросит это слово или цепочку (ключ поиска) и отметит курсором то место в тексте, где есть ключ. Повтор операции НАЙТИ находит ключ в дальнейшем тексте и т.д. К режиму ЗАМЕНИТЬ при подготовке русских текстов прибегать нужно с осторожностью: здесь по сравнению с английским языком очень мешают падежи, склонения, спряжения, до неузнаваемости изменяющие слово: "сон-сны-снами", например. Но такая тяжелая операция, как замена цепочки "Рис.5" на "Рис.6", "Рис.6" на "Рис.7" при необходимости вставить в текст ссылку на новый, пятый рисунок - дело пустяковое.
Режим ОТМЕТИТЬ позволяет расставить в тексте определенные метки, не видимые пользователю, но к которым можно перебросить курсор по команде ПЕРЕЙТИ.
Читатель может заметить, что некоторые слова на журнальной странице могут быть набраны несколько иначе, чем остальные: одни курсивом, другие же - прописными буквами. Лексикон и такую работу умеет делать - обратите внимание на слово ШРИФТ в верхнем меню на самом первом рисунке. "Ткнув" в это слово, мы получим меню КУРСИВ ВЫДЕЛЕННЫЙ ПОДЧЕРКИВАНИЕ, приглашающее в готовом тексте перед его распечаткой на принтере договориться с машиной о шрифте некоторых слов. На дисплее эти слова выделяются цветом.
ДОС - это аббревиатура названия души компьютера - его дисковой операционной системы. Этот режим позволяет временно выйти из среды текстового процессора в среду ДОС, не теряя информации в окнах. Вам, например, нужно записать текст на гибкий диск, а он не размечен. Разметку же нового диска (разбивку его поверхности на сектора и дорожки) можно провести лишь командой ДОС format а:, которая из текстового процессора не выполнима. Возврат же из ДОС обратно в Лексикон осуществляется по команде Exit.
ВЫХОД. Как бы ни разнились между собой различные программные продукты, всех их объединяет одно - наличие команды завершения работы и окончательный возврат в ДОС либо в надстройку над ДОС, из которой продукт был вызван.
Следует отметить, что система меню хорошего программного продукта должна обладать памятью. При новом обращении к меню курсорная рамка сама оказывается там, куда ее переместили при предыдущем сеансе. Это ускоряет диалог пользователя с компьютером.
Многие из действий, выполнимых с помощью Лексикона, можно совершить разными способами, а пользователь выбирает самый удобный для него. Об этом сейчас и пойдет разговор.
Первая (вверху) и четвертая (внизу) из подсказок, появляющихся на экране дисплея при последовательном нажатии клавиши F1.
Мы уже упоминали о спасительной клавише F1. Нажав на нее, мы получим подсказку. Вчитаемся в нее. Вот раздел ДВИЖЕНИЕ КУРСОРА. Из него можно узнать, что нажатие на клавишу "стрелка влево", "вправо", "вниз" или "вверх" вызывает перемещение курсора на одну позицию в соответствующем направлении. Но если эту же команду отдать, "взяв аккорд", то есть притопив клавишу Ctrl или Shift, то "дальнобойность" курсора увеличится: он будет перемещаться, перескакивая целые слова (Ctrl) или даже целые строки (Shift).
Из раздела РЕЖИМЫ явствует, что однократное нажатие клавиши F9 меняет "национальность" текстового процессора (переводит клавиатуру с русского шрифта на латинский и наоборот), а клавиши Ins - режим вставки или замены букв. В режиме вставки вводимый символ встает на место, указанное курсором, отодвигая окончание строки вправо, а в режиме замены - заменяя символ, на котором находится курсор. Если вы не хотите, чтобы слова в конце строк рвались переносами, то дать соответствующее указание машине поможет клавиша F6, нажатая вместе с клавишей Shift. Если вместе с ней нажать F4, то при переносе курсора на новую строку будет выравниваться правый край текста за счет вставки лишних пробелов. (Это и есть форматирование абзацев). А вот "аккорд" Shift+F9 позволяет выключить цвет на экране дисплея, если он почему-то не нужен.
В окне ФРАГМЕНТЫ ТЕКСТА даны инструкции, как пользоваться "ножницами" и "клеем" текстового процессора Лексикон. Переведем курсор на первую букву какого-нибудь слова. Нажмем клавишу F3. Буква изменила свой цвет. Несколько нажимов на клавишу "стрелка вправо" - и новым цветом выделено все слово. Теперь нажимаем одновременно клавиши Ctrl и F3. Выделенное слово исчезло, строка сомкнулась. Но исчезнувшее слово не пропало - машина убрала его в карман. Нажимаем клавиши Ctrl и F4 - забранное в карман слово вернулось, раздвинув строку, на прежнее место. Переместим курсор в другое место, на пробел между словами, нажмем клавиши Ctrl и F4. То же слово внедрилось сюда, раздвинув соседние слова. Испытайте теперь, что будет, если попытаться произвести подобную вставку, наведя курсор на какую-нибудь букву текста.
Тем же приемом можно забрать в карман и вставить в текст целую строку. Если же требуется совершить такие перемещения с фрагментом из нескольких строк, надо сначала перенести курсор на любую позицию первой (или последней) строки фрагмента и одновременно нажать клавиши Shift и F3. Вся строка выделена цветом. Клавишей "стрелка вниз" (или "стрелка вверх") окрашивает все строки фрагмента. Ctrl+F3: весь выделенный фрагмент исчез, направился в карман. Ctrl+F4: фрагмент появился на прежнем месте. Наведем курсор в другое место, проделаем те же действия - и фрагмент из кармана будет вставлен сюда. Выделенный фрагмент можно целиком сдвигать вправо {Ctrl+F6) и влево (Ctrl+F5). Каждое нажатие клавиши F6 или F5 при утопленной клавише Ctrl сдвигает выделенный фрагмент на одну позицию относительно основного текста вправо или влево соответственно. Если выделенный фрагмент состоял из нескольких абзацев, то нажатие клавиш Ctrl+F8 собирает его в единый абзац. В выделенном фрагменте можно заменить все вхождения контекста поиска (выражение ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР, например) на контекст замены (на ПЕРСОНАЛЬНАЯ ЭВМ, например). Для этого нажимается пара клавиш Ctrl+F2, а предварительно в режиме ЗАМЕНИТЬ (см. верхнее меню на первом рисунке) машине на ее запросы сообщают заменяемую и заменяющую цепочки символов. Фрагменту можно возвратить однородную окраску, нажав F4, после чего можно выделять новый фрагмент.
Нажимая вновь на клавишу F1, мы будем вызывать на экран дисплея все новые подсказки. Всего их четыре. Последняя - это подсказка для быстрого выполнения наиболее часто используемых команд. Например, начать выделение фрагмента можно, нажав клавишу F10, выполнив далее команду ФРАГМЕНТ, а затем - команду ВЫДЕЛИТЬ. Но эти же самые действия (отыщите в таблице в левой колонке вторую сверху клетку) можно выполнить одним нажатием клавиши F3. Другой пример: отформатировать абзац можно цепочкой команд F10 АБЗАЦ ФОРМАТ, а можно одновременным нажатием клавиш Ctrl и F8.
Нечто подобное можно наблюдать и в ресторане, откуда в компьютерный мир пришло слово "меню". Случайный посетитель, чтобы что-то заказать, долго перелистывает меню и карточку вин. Завсегдатай же просто подмигнет официанту - и тот моментально побежит выполнять заказ, прекрасно зная, что от него требуется.
О командах, не столь часто используемых, рядовой пользователь обычно знает лишь то, что они существуют. И если возникает необходимость их выполнить, пользователь должен порыться в меню (компьютерном) или почитать подсказку, кто ищет - тот всегда найдет! Если же найти желаемое не удается, то это говорит либо о том, что пользователь слишком привередлив, либо о том, что он работает не с программным продуктом, а с полуфабрикатом или субпродуктом.
Лексикон, судя по его популярности,- это программный продукт весьма высокого качества. Его успеху способствует то, что он ориентирован на естественные навыки человека, привыкшего работать с бумагами.
Представьте себя на вашем привычном рабочем месте, например, за письменным столом, на котором разложены листки бумаги с различными текстами. Вы берете один листок и работаете с текстом, который на нем записан, причем в поле зрения у вас постоянно находятся другие листы с другими записями. В любой момент вы можете взять один из них, что-то посмотреть, поправить, записать... Типичная рабочая обстановка. Лексикон позволяет создать ее на экране дисплея. Роль листков при этом играют дисплейные окна - отмеченные номерами прямоугольные рамки, в каждой из которых, как бы на отдельном дисплее, появляется отдельная порция информации. На экране может находиться сразу девять таких окон. Первое появляется сразу после запуска Лексикона. Нажмите иа клавишу Alt и, не отпуская ее,- какую-либо цифровую клавишу, например, 3. На экране возникнет окно с цифрой 3 на рамке. Теперь, если вы вызовете из архивной памяти какой-то текст, он появится в окне 3 - именно том, которое было открыто последним. Можно открывать новые окна и вызывать в них нужные тексты. Чем не рабочий стол с листками? Основная разница в том, что на листок, который лежит у вас на столе, вы можете записать 30-40 строк, на экранный же "листок" - информацию, ограниченную лишь памятью вашего компьютера. Конечно, на экране вы можете увидеть сразу лишь 26 строк, но, манипулируя клавишами, как это было описано выше, можно "протащить" через дисплейное окно весь текст.
О других текстовых процессорах, получивших распространение в нашей стране, речь пойдет на следующем занятии.
Не все слова, записанные в этой строке, являются названиями "блюд". За многими из них скрыты новые слова, уточняющие или детализирующие команды, какие человек намеревается отдать машине. А за этими новыми словами могут стоять другие и т.д. Так, карабкаясь по дереву меню, пользователь может найти то, что ему в данный момент нужно от текстового процессора. Попытаемся и мы немного попутешествовать по кроне столь плодоносного дерева.
Итак, нажав клавишу F10, пользователь откроет меню первого уровня с одиннадцатью словами: ТЕКСТ АБЗАЦ ФРАГМЕНТ СТРАНИЦЫ НАЙТИ ЗАМЕНИТЬ ОТМЕТИТЬ ПЕРЕЙТИ ШРИФТ ДОС ВЫХОД, из которых одна часть - это команды, а другая - названия групп команд.
Если перевести курсорную рамку на слово ТЕКСТ и нажать клавишу Enter, то появится строка СОХРАНИТЬ ЗАГРУЗИТЬ ОЧИСТИТЬ КОНФИГУРАЦИЯ МАКРО ПЕЧАТЬ. Первые два слова мы уже расшифровали. ОЧИСТИТЬ - это стереть ненужный текст перед вводом нового через клавиатуру или с магнитного диска. За словом КОНФИГУРАЦИЯ скрыты команды, какие пользователь может отдать машине, чтобы оптимальным образом приспособить текстовый процессор к своим потребностям и вкусам. Можно, например, изменить размер окон, в которых появляются тексты (об этом чуть ниже), чтобы на экране были видны два, три и более текстов в разных окнах; можно изменить цвет окна и цвет букв, какие появляются в нем при наборе текста,- это будет настраивать на определенный лад при работе с разными текстами. Установка конфигурации текстового процессора может включать в себя и разметку экрана дисплея - разбивку на столбцы, куда будет перескакивать курсор после нажатия клавиши Tab.
Режим МАКРО - это готовность компьютера общаться с пользователем короткими условными сигналами, когда определенная последовательность символов (ее называют макросом) появляется на экране мгновенно, стоит лишь нажать всего-навсего одну буквенную клавишу или какой-то другой символ. Создать макрос проще простого. Курсорная рамка наводится на слово МАКРО в меню, нажимается Enter, машина запрашивает символ, который будет заменять некую последовательность символов, а затем и саму эту последовательность. Назначенный на такую роль символ набирается, когда это нужно, при утопленной клавише Alt. Скажем, так можно договориться с машиной, что пара Alt+Т станет заменять словосочетание ТЕКСТОВЫЙ ПРОЦЕССОР.
Вывод готового текста на принтер (режим ПЕЧАТЬ) тоже поддерживается особым меню, дающим пользователю возможность выбрать шрифт, разбить текст по отдельным страницам и т.д.
За словом АБЗАЦ опять-таки скрыто много интересного. Переход к этому режиму вызывает не названия "блюд", а скорее названия приправ, позволяющих "сдобрить" готовые тексты, сделать их более удобоваримыми - правильно оформить переносы слов, выровнять правый край текста, изменить, если надо, число знаков на строках и т.д. Нажали F10, "ткнули" в слово Абзац и на дисплее - цепочка: ФОРМАТ РЕЖИМ ГЛОБФОРМАТ ПЕРЕНОС(ДА-НЕТ) ВЫКЛЮЧКА(ДА-НЕТ) ПРАВАЯ:60 ЛЕВАЯ:1 ОТСТУП:5 ОБРАЗЕЦ. Не ясно? Попытаемся объяснить.
ФОРМАТировать - это выровнять правый край отмеченного курсором абзаца, оставив в нем заданное число знаков на строке (60). Такую работу можно сразу поручить компьютеру, если выбран активный РЕЖИМ. Весь текст в текущем окне, а не только один абзац, может быть ГЛОБально отФОРМАТирован. Если желательно, чтобы слова не рвались при ПЕРЕНОСах, то нужно запретить машине их делать. Как это устроить? Из двух слов ДА и НЕТ, приведенных выше при описании режима АБЗАЦ, на экране возникает лишь одно. Например: ПЕРЕНОС(ДА). И если вы хотите, чтобы машина делала переносы, вы оставляете строчку меню неизменной. Если не хотите - наведите курсорную рамку на слово ПЕРЕНОС, нажмите клавишу Enter и увидите: ПЕРЕНОС(НЕТ). Отныне машина переносов делать не будет. Если вас не устраивает ширина строки, перенесите курсорную рамку на слово ПРАВАЯ:60, нажмите клавишу Enter, и машина высветит на экране просьбу: "Введите правую границу", ниже которой пока что будет стоять прежняя величина 60. Уничтожьте это число с помощью клавиши Back Space и наберите новое, желательное число, указывающее положение последнего символа в строке - допустим, 55. Точно так же устанавливается положение начального символа в обычной и красной строке - курсорная рамка для этого наводится на слова ЛЕВАЯ:1 и ОТСТУП:5. Кстати, тем, кто любит разделять абзацы пробелами, понравится прием, с помощью которого в текст вставляется пустая строка: курсор ставится за последним символом строки, после которой желателен пробел, и нажимается клавиша Enter. Остается объяснить, что скрывается за словом ВЫКЛЮЧКА, но... не хотите ли вы выяснить это сами?
У каждого человека есть любимые блюда. Так вот у редакторов, прибегающих к услугам текстовых процессоров, наверно, самое любимое "блюдо" - это режим ФРАГМЕНТ. Там спрятаны редакторские ножницы и клей. "Ткнув" в слово ФРАГМЕНТ, получим отклик: ВЫДЕЛИТЬ ЗАБРАТЬ ВСТАВИТЬ СНЯТЬВЫДЕЛЕНИЕ. Теперь представьте, что вам предстоит дать ответ на полученное письмо, хранящееся в первом, например, окне. Ответы на письма очень часто строятся по принципу "каков вопрос - таков ответ". Это, в частности, означает, что в тексте ответа можно встретить целые ФРАГМЕНТЫ письма-вопроса. Пользователь ВЫДЕЛяет в письме-вопросе нужный фрагмент, ЗАБирает его в так называемый карман, переходит во второе, к примеру, окно, там начинает набирать ответ, в нужный момент ВСТАВляет в него фрагмент вопроса, таким путем заканчивает ответ, немного редактирует и... ответ готов. Выделяется нужный текст (строковый, то есть состоящий из целых строк, или прямоугольный, как, например, в таблицах) курсорными клавишами. В выделенном тексте при этом меняется цвет фона и букв. Команда СНЯТЬВЫДЕЛЕНИЕ восстанавливает статус-кво - делает текст однородным и готовым к новому выделению. В кармане забранный ранее текст хранится, пока его не заменит новый выделенный фрагмент.
За словом СТРАНИЦЫ - новая вывеска: РАССТАВЬСТРАНИЦЫ РАССТОЯНИЕ:1.5 ВЫСОТА:45 КОЛОНТИТУЛ УБРАТЬСТРАНИЦЫ КАТАЛОГ. Когда что-то пишешь (например, статью в журнал с оговоренным объемом), то всегда хочется знать, много ли написал, не пора ли уже закругляться. Текстовый процессор и тут будет очень кстати. Дал команду РАССТАВЬСТРАНИЦЫ - и нет проблем: текст разбит на страницы, каждая из которых содержит 45 строк с интервалом 1.5 (полтора). Цифры 45 и 1.5 при желании можно изменить - точно так же, как мы недавно изменяли ширину строки. Но чаще всего к расстановке страниц прибегают не для выяснения размера текста (это можно узнать и по объему файла, хранящего его), а при подготовке его к печати. При этом под номером страницы можно сделать какую-либо подпись (название главы или раздела), как это делается в хорошо оформленных книгах. Такая подпись у полиграфистов называется КОЛОНТИТУЛ. Чтобы на разных страницах были различные колонтитулы, нужно предварительно заполнить КАТАЛОГ: указать машине, что на какой странице подписывать.
НАЙТИ и ЗАМЕНИТЬ. Это инструменты информационного поиска. Найти какое-то слово или просто цепочку символов в тексте ниже текущего положения курсора довольно просто. Нужно "ткнуть" в слово НАЙТИ, машина запросит это слово или цепочку (ключ поиска) и отметит курсором то место в тексте, где есть ключ. Повтор операции НАЙТИ находит ключ в дальнейшем тексте и т.д. К режиму ЗАМЕНИТЬ при подготовке русских текстов прибегать нужно с осторожностью: здесь по сравнению с английским языком очень мешают падежи, склонения, спряжения, до неузнаваемости изменяющие слово: "сон-сны-снами", например. Но такая тяжелая операция, как замена цепочки "Рис.5" на "Рис.6", "Рис.6" на "Рис.7" при необходимости вставить в текст ссылку на новый, пятый рисунок - дело пустяковое.
Режим ОТМЕТИТЬ позволяет расставить в тексте определенные метки, не видимые пользователю, но к которым можно перебросить курсор по команде ПЕРЕЙТИ.
Читатель может заметить, что некоторые слова на журнальной странице могут быть набраны несколько иначе, чем остальные: одни курсивом, другие же - прописными буквами. Лексикон и такую работу умеет делать - обратите внимание на слово ШРИФТ в верхнем меню на самом первом рисунке. "Ткнув" в это слово, мы получим меню КУРСИВ ВЫДЕЛЕННЫЙ ПОДЧЕРКИВАНИЕ, приглашающее в готовом тексте перед его распечаткой на принтере договориться с машиной о шрифте некоторых слов. На дисплее эти слова выделяются цветом.
ДОС - это аббревиатура названия души компьютера - его дисковой операционной системы. Этот режим позволяет временно выйти из среды текстового процессора в среду ДОС, не теряя информации в окнах. Вам, например, нужно записать текст на гибкий диск, а он не размечен. Разметку же нового диска (разбивку его поверхности на сектора и дорожки) можно провести лишь командой ДОС format а:, которая из текстового процессора не выполнима. Возврат же из ДОС обратно в Лексикон осуществляется по команде Exit.
ВЫХОД. Как бы ни разнились между собой различные программные продукты, всех их объединяет одно - наличие команды завершения работы и окончательный возврат в ДОС либо в надстройку над ДОС, из которой продукт был вызван.
Следует отметить, что система меню хорошего программного продукта должна обладать памятью. При новом обращении к меню курсорная рамка сама оказывается там, куда ее переместили при предыдущем сеансе. Это ускоряет диалог пользователя с компьютером.
Многие из действий, выполнимых с помощью Лексикона, можно совершить разными способами, а пользователь выбирает самый удобный для него. Об этом сейчас и пойдет разговор.
Первая (вверху) и четвертая (внизу) из подсказок, появляющихся на экране дисплея при последовательном нажатии клавиши F1.
Мы уже упоминали о спасительной клавише F1. Нажав на нее, мы получим подсказку. Вчитаемся в нее. Вот раздел ДВИЖЕНИЕ КУРСОРА. Из него можно узнать, что нажатие на клавишу "стрелка влево", "вправо", "вниз" или "вверх" вызывает перемещение курсора на одну позицию в соответствующем направлении. Но если эту же команду отдать, "взяв аккорд", то есть притопив клавишу Ctrl или Shift, то "дальнобойность" курсора увеличится: он будет перемещаться, перескакивая целые слова (Ctrl) или даже целые строки (Shift).
Из раздела РЕЖИМЫ явствует, что однократное нажатие клавиши F9 меняет "национальность" текстового процессора (переводит клавиатуру с русского шрифта на латинский и наоборот), а клавиши Ins - режим вставки или замены букв. В режиме вставки вводимый символ встает на место, указанное курсором, отодвигая окончание строки вправо, а в режиме замены - заменяя символ, на котором находится курсор. Если вы не хотите, чтобы слова в конце строк рвались переносами, то дать соответствующее указание машине поможет клавиша F6, нажатая вместе с клавишей Shift. Если вместе с ней нажать F4, то при переносе курсора на новую строку будет выравниваться правый край текста за счет вставки лишних пробелов. (Это и есть форматирование абзацев). А вот "аккорд" Shift+F9 позволяет выключить цвет на экране дисплея, если он почему-то не нужен.
В окне ФРАГМЕНТЫ ТЕКСТА даны инструкции, как пользоваться "ножницами" и "клеем" текстового процессора Лексикон. Переведем курсор на первую букву какого-нибудь слова. Нажмем клавишу F3. Буква изменила свой цвет. Несколько нажимов на клавишу "стрелка вправо" - и новым цветом выделено все слово. Теперь нажимаем одновременно клавиши Ctrl и F3. Выделенное слово исчезло, строка сомкнулась. Но исчезнувшее слово не пропало - машина убрала его в карман. Нажимаем клавиши Ctrl и F4 - забранное в карман слово вернулось, раздвинув строку, на прежнее место. Переместим курсор в другое место, на пробел между словами, нажмем клавиши Ctrl и F4. То же слово внедрилось сюда, раздвинув соседние слова. Испытайте теперь, что будет, если попытаться произвести подобную вставку, наведя курсор на какую-нибудь букву текста.
Тем же приемом можно забрать в карман и вставить в текст целую строку. Если же требуется совершить такие перемещения с фрагментом из нескольких строк, надо сначала перенести курсор на любую позицию первой (или последней) строки фрагмента и одновременно нажать клавиши Shift и F3. Вся строка выделена цветом. Клавишей "стрелка вниз" (или "стрелка вверх") окрашивает все строки фрагмента. Ctrl+F3: весь выделенный фрагмент исчез, направился в карман. Ctrl+F4: фрагмент появился на прежнем месте. Наведем курсор в другое место, проделаем те же действия - и фрагмент из кармана будет вставлен сюда. Выделенный фрагмент можно целиком сдвигать вправо {Ctrl+F6) и влево (Ctrl+F5). Каждое нажатие клавиши F6 или F5 при утопленной клавише Ctrl сдвигает выделенный фрагмент на одну позицию относительно основного текста вправо или влево соответственно. Если выделенный фрагмент состоял из нескольких абзацев, то нажатие клавиш Ctrl+F8 собирает его в единый абзац. В выделенном фрагменте можно заменить все вхождения контекста поиска (выражение ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР, например) на контекст замены (на ПЕРСОНАЛЬНАЯ ЭВМ, например). Для этого нажимается пара клавиш Ctrl+F2, а предварительно в режиме ЗАМЕНИТЬ (см. верхнее меню на первом рисунке) машине на ее запросы сообщают заменяемую и заменяющую цепочки символов. Фрагменту можно возвратить однородную окраску, нажав F4, после чего можно выделять новый фрагмент.
Нажимая вновь на клавишу F1, мы будем вызывать на экран дисплея все новые подсказки. Всего их четыре. Последняя - это подсказка для быстрого выполнения наиболее часто используемых команд. Например, начать выделение фрагмента можно, нажав клавишу F10, выполнив далее команду ФРАГМЕНТ, а затем - команду ВЫДЕЛИТЬ. Но эти же самые действия (отыщите в таблице в левой колонке вторую сверху клетку) можно выполнить одним нажатием клавиши F3. Другой пример: отформатировать абзац можно цепочкой команд F10 АБЗАЦ ФОРМАТ, а можно одновременным нажатием клавиш Ctrl и F8.
Нечто подобное можно наблюдать и в ресторане, откуда в компьютерный мир пришло слово "меню". Случайный посетитель, чтобы что-то заказать, долго перелистывает меню и карточку вин. Завсегдатай же просто подмигнет официанту - и тот моментально побежит выполнять заказ, прекрасно зная, что от него требуется.
О командах, не столь часто используемых, рядовой пользователь обычно знает лишь то, что они существуют. И если возникает необходимость их выполнить, пользователь должен порыться в меню (компьютерном) или почитать подсказку, кто ищет - тот всегда найдет! Если же найти желаемое не удается, то это говорит либо о том, что пользователь слишком привередлив, либо о том, что он работает не с программным продуктом, а с полуфабрикатом или субпродуктом.
Лексикон, судя по его популярности,- это программный продукт весьма высокого качества. Его успеху способствует то, что он ориентирован на естественные навыки человека, привыкшего работать с бумагами.
Представьте себя на вашем привычном рабочем месте, например, за письменным столом, на котором разложены листки бумаги с различными текстами. Вы берете один листок и работаете с текстом, который на нем записан, причем в поле зрения у вас постоянно находятся другие листы с другими записями. В любой момент вы можете взять один из них, что-то посмотреть, поправить, записать... Типичная рабочая обстановка. Лексикон позволяет создать ее на экране дисплея. Роль листков при этом играют дисплейные окна - отмеченные номерами прямоугольные рамки, в каждой из которых, как бы на отдельном дисплее, появляется отдельная порция информации. На экране может находиться сразу девять таких окон. Первое появляется сразу после запуска Лексикона. Нажмите иа клавишу Alt и, не отпуская ее,- какую-либо цифровую клавишу, например, 3. На экране возникнет окно с цифрой 3 на рамке. Теперь, если вы вызовете из архивной памяти какой-то текст, он появится в окне 3 - именно том, которое было открыто последним. Можно открывать новые окна и вызывать в них нужные тексты. Чем не рабочий стол с листками? Основная разница в том, что на листок, который лежит у вас на столе, вы можете записать 30-40 строк, на экранный же "листок" - информацию, ограниченную лишь памятью вашего компьютера. Конечно, на экране вы можете увидеть сразу лишь 26 строк, но, манипулируя клавишами, как это было описано выше, можно "протащить" через дисплейное окно весь текст.
О других текстовых процессорах, получивших распространение в нашей стране, речь пойдет на следующем занятии.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
6/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ
Первое слово в нынешнем выпуске предоставляется тем, кто посвятил свои программы астрономии, геодезии и смежным дисциплинам. Некоторые из этих программ представляют собой доработку или развитие опубликованных ранее. Они наводят на мысль: не составить ли из подобных работ своеобразный ретровыпуск! Ждем писем от тех, кто готов откликнуться на это предложение.
КОГДА ЭТО БЫЛО?
"Переяславский епископ Селивестр помре в 6631 лето месяца априля в 12 день, в велыкий четверг". Лаврентьевская летопись. "А дана грамота, когда князь великий княжну отдал во Царь на ту зиму на вербицу". Грамота князя Андрея Радонежского, 6919г. от сотворения мира. Календарная дата этих событий связана с Пасхой. Датировка по Пасхе очень часто встречается в документах и литературе не только средневековья, но и более позднего времени. Встречается она и в наши дни. Например, Троица - это 50-й день после Пасхи. С него церковь начинает счет недель. Неделя, открывающая новый пасхальный цикл, называется "неделей мытаря и фарисея". Великий пост начинается за семь недель до Пасхи. Ему предшествует масленица. Последняя неделя этого поста называется святой, страстной или великой, а предпоследняя - вербной (дьяк князя Андрея назвал ее вербицей).
Если для любознательных отыскание связи между датированием по Пасхе и нашим календарем может иметь познавательно-развлекательное значение, то для историка оно просто необходимо.
Известно, что в древней Руси счет времени начинался от сотворения мира, которое, согласно тогдашним представлениям, произошло либо 1 сентября 5509г., либо 1 марта 5508г. до н.э. (в исторических документах в этом вопросе нет единства). Какой из двух дат пользовался лаврентьевский летописец? Какого числа по современному календарю была выдана грамота князя Андрея? Чтобы ответить на эти вопросы, нужно знать дату Пасхи. Однако она год от года меняется и, как правило, не совпадает в юлианском и григорианском календарях.
По Евангелию от Иоанна, Христос воскрес в воскресенье, наступившее после 16 дня луны. Это означает, что Пасха должна праздноваться в первое же воскресенье после весеннего полнолуния. Так называется полнолуние, наступающее вслед за весенним равноденствием. Долгое время расчет пасхалий (дат, на которые приходится Пасха) был сложнейшим делом. И только Гауссу удалось вывести простые формулы для определения времени наступления весеннего полнолуния как в любой год нашей эры, так и до нее. На основании этих формул им же предложен простой алгоритм определения пасхалий по юлианскому, григорианскому и иудейскому календарям. Часть этого алгоритма, касающаяся определения юлианской и григорианской пасхалий, показана на рисунке. Универсальность алгоритма состоит в том, что для перехода от одного календаря к другому достаточно заменить всего два коэффициента (приведены на рисунке). Алгоритм реализован в программе для МК-61.
00. ХП2 01. F() 02. ХП1 03. F() 04. ХП0 05. ПХ3 06. 4 07. КПП8 08. 2 09. * 10. ПХ3 11. 7 12. КПП8 13. 4 14. * 15. + 16. ПХ3 17. 1 18. 9 19. КПП8 20. 1 21. 9 22. * 23. ПХ1 24. + 25. ХП3 26. 3 27. 0 28. КПП8 29. ХП4 30. 6 31. * 32. + 33. ПХ2 34. + 35. ХП3 36. 7 37. КПП8 38. ПХ4 39. + 40. 3 41. 5 42. x-y 43. - 44. Fx=0 45. 51 46. 1 47. 9 48. , 49. 4 50. КБП7 51.3 52. 4 53. FBx 54. - 55. Fx=0 56. 62 57. 1 58. 8 59. , 60. 4 61. КБП7 62. 1 63. 0 64. FBx 65. - 66. Fx>=0 67. 75 68. 2 69. 2 70. , 71. 3 72. FBx 73. + 74. КБП7 75. FBx 76. 8 77. , 78. 6 79. - 80. ПХ0 81. ВП 82. 6 83. /-/ 84. + 85. С/П 86. БП 87. 04 88. / 89. FBx 90. x-y 91. K[x] 92. * 93. /-/ 94. ПХ3 95. + 96. В/0.
Перед началом работы вводят постоянные: 80 - Р7 и 88 - Р8. Ввод исходных данных проводится через стек: год В^ m В^ n В/0 С/П. Через 30 секунд получаем результат. Первые одна или две цифры - день; от следующей за ним цифры 3 (март) или 4 (апрель) они отделены точкой. Далее для контроля выведен год, для которого определена пасхалия. Если это четырехзначное число, то между цифрой месяца и цифрой года стоит нуль. Если год кончается нулем, то нуль не индицируется.
А теперь вернемся к нашим вопросам. Сначала предположим, что летописец вел счет от сотворения мира, происшедшего 1 марта 5508 до н.э. Вычислим год смерти епископа по юлианскому календарю. 6631 В^ 5508 - "1123". Вводим коэффициенты юлианского календаря 15 В^ 6 В/0 С/П "15.401123". Пасха была 15 апреля, значит, великий четверг был 12 апреля и наше предположение о дате сотворения мира, которой пользовался летописец, правильное.
Будем считать, что и дьяк князя Андрея тоже вел счет от 1 марта 5508г. до н.э. Тогда год выдачи грамоты 6919 В^ 5508 - "1411". Так как расчет ведется по юлианскому календарю, то коэффициенты менять не надо. С/П "12.401411". Пасха была 12 апреля, а "вербица" началась 30 марта и закончилась 5 апреля. Именно в этот период и была выдана грамота.
Православная церковь до сих пор пользуется юлианским календарем. Когда же будет Пасха у православных в 1991 году? 1991 С/П "25.301991" Это по старому стилю. А по новому - 7 апреля. Когда же этот праздник отметят католики? Тут нужно сменить коэффициенты: 1991 В^ 24 В^ 5 В/0 С/П "31.301991". Это означает 31 марта по новому стилю.
В.РЕМНЕВ (Ялта)
РЕШАЯ УРАВНЕНИЕ КЕПЛЕРА
Уравнение Кеплера Е=М+е*sinE, связывающее эксцентриситет орбиты е, эксцентрическую Е и среднюю М аномалии, чаще всего приходится решать относительно Е, но в этом случае оно трансцендентно и не имеет аналитического решения. Эксцентрическая аномалия Е входит в уравнение дважды, причем второй раз как аргумент тригонометрической функции, а поскольку Е и М обычно задаются в градусах, их приходится переводить в радианы и затем производить обратный перевод. Всего этого можно избежать, если прибегнуть к модификации параметра е и использовать итерационную формулу Ньютона:
Е[n+1]=En+(En-e0*sinEn-М)/(e*cosEn-1)
Тонкость в том, что в числителе модифицированное значение е0=180е/пи, а в знаменателе - не модифицированное. Теперь е и М можно задавать в градусах.
Значение корня уравнения Кеплера вычисляют по программе, с точностью д>=|E[n+1]-En|, задаваемой пользователем.
00. ХПД 01. F() 02. ХПЕ 03. Fпи 04. / 05. 1 06. 8 07. 0 08. * 09. ХПС 10. F() 11. ХПА 12. F() 13. ХПВ 14. ПХВ 15. ПХА 16. ПХВ 17. Fsin 18. ПХС 19. * 20. + 21. - 22. x-y 23. Fcos 24. ПХЕ 25. * 26. 1 27. - 28. / 29. + 30. ХПВ 31. - 32. К|х| 33. ПХД 34. - 35. Fx<0 36. 14 37. x-y 38. С/П 39. БП 40. 11.
Е и М выражают в градусах и десятичных долях. Это сделано потому, что программа является частью более обширной. Ввод исходных данных через стек Е0 В^ М В^ e В^ д В/0 С/П. Если при расчете меняется только М, то для последующих точек Е0 В^ M С/П. Время решения зависит от числа итераций. Е - на индикаторе и в РВ. Ео - первое приближение, выбираемое пользователем. Обычно при расчете первого значения принимают Е0=М, а для последующих - значение Е, хранящееся в регистре В. Тогда ввод проводят так: ПХВ М С/П.
Тест: М=90o, Е0=135o, е=0.7 и д=1.1E-3. Ввод и пуск: 135 В^ 90 В ^ 0.7 В^ 1.1 ВП 5 /-/ В/0 С/П "123.46011". Время решения - 40с.
А.СПИВАК (Киев)
МЫ ПРИЗЕМЛИМСЯ ЗА СТОЛОМ
Предлагаемая программа предназначена для суммирования налета летного состава за месяц и год с помощью микрокалькуляторов МК-52 или МК-61. В качестве исходной информации используется летная книжка (см. рисунок). Колонки, по которым подводится статистика, обозначены сверху цифрами 1... 8. Информация между 7-й и 8-й колонками пропущена, так как количество полетов обычно равно количеству посадок.
00. ПХ3 01. ХП1 02. 8 03. ХП0 04. Сх 05. КХП1 06. FL0 07. 04 08. 8 09. ХП0 10. ПХ3 11. ХП1 12. ХП2 13. 0 14. ХП6 15. КПХ6 16. ПХ6 17. С/П 18. Ko' 19. КПХ1 20. + 21. ПХ4 22. + 23. КХП2 24. FL0 25. 15 26. БП 27. 08 28. 8 29. ХП0 30. ПХ3 31. ХП1 32. КПХ1 33. К'o 34. ПХ5 35. * 36. K[х] 37. ПХ5 38. / 39. С/П 40. FL0 41. 32 42. БП 43. 00.
После ввода программы необходимо занести в память константы: 15 ХП3 0.001 ХП4 100 ХП5. После этого нажать В/0 С/П. После останова на индикаторе появится цифра "1". Это приглашение ввести значение числа из первой (согласно рисунку) клетки в строке. Ввести информацию, нажать С/П, после останова появится "2" и т.д. После ввода числа из восьмой клетки вновь появится "1" - начинается ввод следующей строки. Если информация в какой-либо колонке отсутствует, необходимо ввести 0. Когда числа из всех строк введены, то для вывода информации следует нажать БП 28 С/П. На индикаторе появится сумма чисел из первого столбца, С/П - из второго и т.д. После вывода последней, восьмой, суммы можно нажать С/П - в этом случае будет обнулено содержимое регистров, или БП 08 С/П - чтобы продолжать суммирование.
Первый блок программы (00-16) предназначен для обнуления соответствующих регистров и подготовки к вычислениям. Блок (17-27) предназначен для суммирования данных по столбцам, количество которых можно уменьшить, заменив восьмерку по адресам 02, 08, 28 на соответствующее число. Последний блок 28-41 выводит суммы по порядку, с первого по восьмой столбец. Безусловный переход 42-43 обеспечивает автоматическое обнуление регистров 7..E. после вывода суммы последнего столбца. Число обрабатываемых столбцов можно увеличить, если убрать блок 13 -16 - индикацию номера столбца, по это повысит вероятность ошибки при вводе информации.
В.НИКИТИН (Чита)
[ МАЛЕНЬКИЕ ХИТРОСТИ
Я отлаживаю программы с помощью наборного поля и кассы операторов. Наборное поле представляет собою лист ватмана, состоящего из 100 клеток (10*10). Каждая клетка имеет размеры 1*4. Касса состоит из карточек 1*2, на которых написаны все команды калькулятора, карточек 1*1, на которых написаны цифры 0, 1, 2 ... 9, и карточек 1*1 с буквами К или F. Программа выкладывается с помощью карточек на наборном поле и легко корректируется. После того как она отработана, ее переписывают в тетрадь. Для удобства я применяю карточки разных цветов: один - для команд переходов, другой - для всех остальных операций.
Н.ШАРОВ (г.Ульяновск)
КАКОЙ ЯЗЫК ЛУЧШЕ
"Паскаль получил широкое распространение... его успех свидетельствует..." (из учебника по Паскалю). "Кобол получил широкое распространение... на нем естественно описываются..." (из учебника по Коболу). "Бейсик завоевал..." (из учебника по Бейсику) и т.д.
Так какой же язык лучше? "Наука и жизнь" рассказала, что микрокалькулятор - это хорошо, и все согласились. Затем поведала, что Бейсик - это хорошо и что Паскаль - это отлично. А про Рапиру было сказано, что Рапира - не только хорошо, но лучше Бейсика. Как и ожидалось, эти заявление встретило возмущенную реакцию: как можно сравнивать великий и могучий Бейсик с какой-то "доморощенной" Рапирой??? Авторы этих откликов, правда, с Рапирой не работали - но вопрос задан, и он нуждается в серьезном ответе.
"Все языки эквивалентны друг другу, но некоторые более эквивалентны, чем другие" (почти Оруэлл). Никто не сравнивает истребитель с пассажирским лайнером - это самолеты РАЗНОГО НАЗНАЧЕНИЯ. И языки можно сравнивать только в том случае, если они одного назначения. Бейсик, Рапира, Паскаль предназначены для работы, называемой "программирование для себя", в отличие от "программирования на заказ", чем занимаются программисты-профессионалы (впрочем, Рапиру и Паскаль могут использовать и профессионалы). Каковы же критерии сравнения?
К ним не относятся ни место разработки ("доморощенный" или "made in..."), ни время, за которое она сделана, ни хороший ли человек автор, ни легкость изучения: лень учить - не учи вообще, но тогда и работать не сможешь, а хочешь эффективно работать - потрудись овладеть хорошим инструментом. На популярном уровне критериев ДВА: 1. производительность труда программиста, 2. производительность работы ЭВМ при работе на данном языке (для персональной ЭВМ это, как правило, не актуально).
Известно, что за определенный период человек может отладить в среднем одинаковое число конструкций языка, НЕЗАВИСИМО ОТ ЯЗЫКА, НА КОТОРОМ ОН ПИШЕТ. Ясно, что 100 команд микрокалькулятора выражают куда меньше, чем 100 операторов Бейсика. Значит, смена калькулятора на ЭВМ с Бейсиком резко повышает производительность труда. Теперь сформулируем два сильных утверждения:
- все, что на Бейсике и Паскале можно написать одним оператором, на Рапире тоже можно написать одним оператором;
- то, что на Рапире можно сделать одним оператором, на Бейсике или Паскале часто делается либо крайне сложно, либо не делается вообще.
Примеры:
1. Вставка элемента С после К-го элемента массива А со сдвигом "хвоста". Рапира: A[1:К]+<С>+A[К+1:#A]->А. На Бейсике и Паскале придется писать цикл.
2. Ввод массива (кортежа в Рапире) Рапира: ВВОД данных: А; Бейсик и Паскаль: нужен цикл. А если массив двухмерный? трехмерный?
3.Сравнение двух строк на равенство. Паскалисты, а ну-ка напишите! На Рапире это так: ЕСЛИ СТРОКА1=СТРОКА2 ТО...
4.Запись начальных значений в массив - например, числа дней в месяцах. Рапира: <31, 28, 32..... 30, 31 > -> МЕС. Паскалист, а ну-ка обойдись без 12 присваиваний! А что Бейсик предложит?
Итак, у Рапиры более емкие операторы - и там, где работа на Бейсике или Паскале напоминает строительство стены из кирпичей, на Рапире мы просто ставим готовую панель. Ясно, что соревнование трех равно-квалифицированных программистов, пишущих на Рапире, Бейсике и Паскале, выиграет Рапирист: ему не надо задумываться над мелочами, да и на клавиатуре работать меньше придется.
Второй резерв повышения производительности-удобство отладки. И здесь помогают емкие конструкции Рапиры: ясно, что легче в среднем отладить программу с меньшим числом элементов. Пусть А, Б, Г, Д - некоторые операторы. Тогда запись на Рапире ЕСЛИ... ТО А; Б ИНАЧЕ Г; Д ВСЕ содержит 6 элементов: условие, 4 оператора и одна конструкция ЕСЛИ. На любую ошибку, кроме пропуска ИНАЧЕ (что никогда не встречается), получим диагностику ЭВМ. То же на Бейсике при длинных операторах придется записать так:
10 IF ... GOTO 40
20 Г: Д
30 GOTO 50
40 А: Б
50 ...
Здесь, кроме условия и четырех операторов, уже шесть конструкций (IF, GOTO, две метки после GOTO и две метки в началах строк). С точки зрения ЭВМ все они между собой не связаны: можно пропустить строку 30 ("любимая" ошибка начинающих), написать не те метки - ЭВМ ничего не заметит: все надо "вылавливать" при отладке.
То же на Паскале пишется в 3 конструкции: if... then begin А; Б end else begin Г; Д end; здесь один if н два раза операторные скобки begin-end. И если "зевнуть" begin-end после else, то Паскаль наносит коварный удар из-за угла: диагностик нет, программа выполняется, только Д - это отдельный оператор, выполняющийся при любом условии. Ищи, программист, ошибку!
В вольной формулировке сформулировать те удобства, которые дает при отладке Рапира, можно так: РАПИРА НЕ БЬЕТ ИЗ-ЗА УГЛА - незаменимое качество для начинающих и непрофессионалов.
Роль производительности труда резко возрастает при переходе от учебных задачек к крупным реальным программам. Пусть инженеру в расчете надо решить две системы линейных уравнений - одну 5*5 (5 уравнений с 5 неизвестными) н другую 10*10, и перемножить матрицы. Тут очень кстати была бы библиотека подпрограмм.
У Рапириста никаких хлопот: ура, на диске подпрограммы есть. Читаем ТОЛЬКО ЗАГОЛОВОК И КОММЕНТАРИЙ К НЕМУ: ПРОЦ ЛИНУРАВ (=>А, <=>В), где А - матрица системы, В - свободные коэффициенты, решение получается на месте В.
И не вникая в подробности устройства процедуры, пишем обращения: ЛИНУРАВ (МАТ1, КОЭФ1); ... ЛИНУРАВ (МАТ2, КОЭФ2);
Даже размеры передавать не надо: процедура сама "спросит" у кортежа, сколько в нем элементов. С процедурой умножения матриц все аналогично. Рапирист работу окончил, а как поживают его соперники?
Нашлись подпрограммы и на Бейсике. Изучаем ИХ ЦЕЛИКОМ: там используется матрица А, массив В, переменные К, М и т.д. Значит, эти имена в основной программе использовать нельзя: подпрограмма может испортить значения. Теперь копируем массив коэффициентов в В и А (вложенный цикл), пишем GOSUB, копируем из В результаты (еще цикл), со второй системой аналогично - какая уж тут производительность! Переходим к умножению матриц. Подпрограмма есть, но... подпрограмма для линейных систем имеет номера строк с 1000 до 1200, эта - с 1050 до 1110. Придется менять номера. Хорошо, если есть команда RENUM, как на "Ямахе", а если вручную, да нигде не ошибиться? Рапирист час назад результаты получил, а тут еще работы и работы!
Ну а что у Паскалиста? Процедуры есть и заголовок симпатичный
type matr = array [l..n, l..n] of real;
procedure linurav (a: matr, var b: ...)
Только вот беда: толку от них нуль, ибо n должно быть КОНСТАНТОЙ, и использовать одну процедуру для работы с массивами разных размеров - увы, нельзя. И как ни крутись - производительность падает.
Еще один элемент производительности - снижение вероятности ошибок, что зависит от такого понятия, как ЕСТЕСТВЕННОСТЬ ЯЗЫКА.
Во-первых, это национальная лексика. Пусть "их" транслятор говорит на английском, а "наш" - на русском. Мы же программируем для себя. Конечно, несложно ввести в интерпретатор Бейсика синонимы, чтобы он одинаково понимал "ЕСЛИ" и "IF". А при обмене программами, как при разговоре с иностранцем: кто-то учит язык другого либо приглашает переводчика (в нашем случае - программиста-профессионала).
Во-вторых, ошибок меньше при мнемоничных (удобных для запоминания) именах переменных. Чем здесь поможет Бейсик с именами из одной буквы, одной цифры, да еще "%" или "$"? Что обозначает А1%?
Для тех, кто считает естественными конструкции Паскаля, пара вопросов:
1. type Т=array[1..10] of real; var A: Т;
В: array |1..10] of real;
С, Е: array [1..10] of real;
Идентичны ли типы у этих переменных, можно ли написать А:=В; В:=С; С:=Е? Почему допустимо только одно присваивание и какое именно?
2. Чем отличаются описания (внимание: здесь есть ошибка) type glas=(а, и, о, е, i, у) и type glas = (*a*, *и*, *о*, *е*, *i*, *y*) и можно ли проверить, является ли символ s гласной буквой так: if s in glas then при одном из описаний? А как это сделать?
Конечно, все языки развиваются. И в Бейсике появились и циклы ПОКА и IF-THEN-ELSE (хотя толку от такого оператора мало, ибо весь он должен уместиться в одну строку длиной не более 256 символов). Конечно, если из Бейсика выбросить все, что там есть, и ввести все современные конструкции, то выйдет неплохой язык, но это... уже не Бейсик, ибо где его хваленая простота, основанная на бедности конструкций? Лучший тому пример - введение экранного редактора (прекрасная иллюстрация поговорки "пятое колесо к телеге"): перестановка строк без смены номеров не влияет на порядок выполнения - так какое же это экранное редактирование, если текст на экране не соответствует тексту в программе?
Дискуссию интересно продолжить. Но помните, пожалуйста, несколько аксиом дискуссии:
а) чтобы сказать, что какой-то язык хорош, надо знать хотя бы еще один язык, который вы считаете худшим (все защитники Бейсика в письмах писали, что знают только его - и больше ничего не хотят),
б) чтобы сказать, что какой-то язык плох, надо как минимум знать этот язык, а еще лучше - иметь опыт работы иа нем (критики Рапиры знают только, что она - доморощенная),
в)подумайте, что представляет собой свойство языка, что - особенность реализации, а что - особенность ЭВМ. Например, низкая надежность "Агата" - это не дефект реализованной на нем Рапиры; музыка, графика в Бейсик-Ямаха - это богатство аппаратуры ЭВМ: на "Ямахе" в любом языке будут такие средства.
Итак, в классе языков, ориентированных на начальное обучение и "программирование для себя" на персональной ЭВМ, языков, сравнимых с Рапирой, пока не видно. А опыт объявления лучшим того, что у нас есть, и ненужным (плохим) того, чего у нас нет, накоплен богатый - результаты его всем известны. Поэтому даже школьникам, обучаемым на Бейсике из-за того, что другого языка нет, стоит, можно и нужно объяснять, что Бейсик морально устарел.
Познакомиться с Рапирой можно в статьях ее автора Г.А.Звенигородского в журнале "Квант" 1-4/80 (версия для "Агата") и статьях Н.А.Юнерман и Н.В.Глаголевой в журнале "Информатика и образование" 2-6/89 (версия для "Ямахи").
Л.ШТЕРНБЕРГ (Куйбышев)
СОЛНЦЕ ВСХОДИТ И ЗАХОДИТ
Приведенной ниже программой я пользуюсь уже более двух лет. Она точнее программы В.Гуляева, опубликованной в 4/86, и позволяет определить, кроме времени восхода и захода Солнца, также время восхода и захода Луны и других светил, фазу Луны, прямое восхождение и склонение светила, угол места в верхней кульминации. Полученные результаты могут быть использованы для вычисления звездного времени. Погрешность в определении времени восхода и захода Солнца +/-3м, Луны +/-10м.
Широта наблюдения ф считается положительной к северу от экватора, а долгота л - к востоку от нулевого меридиана. Для расчетов необходимо знать координаты эталонного места ф0 и л0, в котором известно время восхода Т0в н захода Т0з светила, параметры которого вычисляются. Координаты задаются в градусах и десятичных долях градуса, а все времена в часах и минутах. При вводе в калькулятор минуты отделяются от часов десятичной точкой. Фазы Луны определяются по уравнению времени э. При э=0 - новолуние, прн э=6 - последняя четверть и т.п. Разница во времени между местом наблюдения и эталонным измеряется в часах и обозначается ДТ, угол места в верхней кульминации обозначается h и вычисляется в градусах. В градусах рассчитывается и склонение светила д, а вот прямое восхождение а и звездное время S0 вычисляется в часах.
00. Кo' 01. x-y 02. Кo' 03. + 04. FBx 05. x-y 06. 2 07. / 08. ХП4 09. - 10. ХП1 11. 1 12. 2 13. ХПС 14. x-y 15. Fx>=0 16. 19 17. Сx 18. ХПС 19. ПХС 20. ПХ1 21. + 22. 1 23. 5 24. ХПД 25. * 26. Fcos 27. ПХ5 28. Ftg 29. / 30. XП2 3l. Ftg-1 32. ХПА 33. ПХ8 34. - 35. K[x] 36. 9 37. 0 38. x-y 39. - 40. ХПВ 41. ПХ6 42. ПХД 43. / 44. ПХ4 45. + 46. ПХС 47. - 48. ПХ3 49. ПХ8 50. Ftg 51. ПХ2 52. * 53. Fcos-1 54. ХП0 55. /-/ 56. ПП 57. 90 58. ПХ0 59. ПП 60. 90 61. С/П 62. ХП1 63. К{х} 64. 0 65. , 66. 3 67. 1 68. / 69. КПХ1 70. F() 71. ПХ1 72. + 73. 2 74. * 75. ПХ3 76. + 77. 5 78. , 79. 5 80. - 81. Fx<0 82. 86 83. 2 84. 4 85. + 86. ХПЕ 87. С/П 88. БП 89. 00 90. ПХ9 91. - 92. ПХД 93. / 94. ПХ3 95. + 96. ПХ7 97. + 98. Fx<0 99. 3 -0. 2 -1. 4 -2. + -3. Кo' -4. B/0
2 -1.4 В/О.
Инструкция
1. Переключатель Р/ГРД/Г поставить в положение Г.
2. Ввести константы ф0 - Р5, л0 - Р6, ф - Р8, л - Р9, ДT - Р7.
3. Ввод данных и пуск: Т0в B^ Т0з В/0 С/П.
4. При остановке на индикаторе Тв. Для получения Тз - нажать клавишу x-y.
5. Для получения д нажать ПХА. h - ПХВ и э - ПХ3.
6. Для вычисления прямого восхождения светила ввести в регистр X порядковый номер месяца и дня, разделив их десятичной точкой, и нажать клавишу С/П.
7. Звездное время вычисляется по формуле S0=а-э-12 и получается в часах.
Определим время восхода и захода Солнца и Луны в Москве (ф=55.77o, л= 37.56o) 20 августа 1990г. В качестве эталонного места выберем точку ф0=56o и л0=0o (ДТ=4ч), для которой Астрономический календарь для 20 августа дает: Солнце - Т0в=4ч29м и Т0з=19ч29м, а для Луны - Т0в=4ч29м и Т0з=19ч08м. В соответствии с п.2 инструкции вводим константы: 56 - Р5, 0 - Р6, 4 - Р7, 55.77 - Р8 и 37.56 - Р9. Сначала произведем расчеты для Солнца согласно п.3 инструкции. 4.29 В^ 19.29 В/0 С/П. Через 30с на индикаторе Тв=6ч09м (здесь и далее, кроме расчета S0, результат округлен) x-y Тз=20ч56м. ПХА д=13.51o, ПХВ h=47.74o, ПХ3 э=0.042ч. Переходим к п.6 инструкции: 8.20 С/П. Через 5с получаем прямое восхождение Солнца а=9.831989ч. Для определения звездного времени S0 проведем операции ПХ3 - 12 - "-2.209677". Знак "минус" означает, что предыдущие звездные сутки еще не кончились. Для избавления от "минуса" 24 + Кo' S0=21ч47м.
Переходим к Луне. Так как первый расчет был доведен до конца и константы не менялись, то ввод можно провести, минуя команду В/0. 4.29 В^ 19. 08 С/П Тв=5.59, Тз=20.37, д=12.92, h=47.15 и э=-0.19. Малая величина э означает, что Луна находится вблизи точки новолуния, а знак "минус", что до него она еще не дошла. Определяем прямое восхождение - 8.20 С/П а=9.59ч.
А.ЖУКОВ (Нелидово Калининской обл.)
[ МАЛЕНЬКИЕ ХИТРОСТИ
Аргумент тригонометрических функций, как правило, бывает задан в градусах, минутах и секундах, а калькулятор оперирует с аргументом, выраженным в градусах и десятичных долях градуса. Предлагаемые для микрокалькуляторов Б3-34 и МК-54 методы перевода полностью автоматизированы, но требуют 14 шагов памяти при переводе минут н более 30 при переводе минут и секунд. При ограниченном объеме памяти микрокалькулятора основная программа часто не оставляет такого резерва. Выход в том чтобы все преобразование или часть его проводить вручную. В принятых обозначениях ГГГ - градусы, ММ - минуты и СС - секунды. Преобразование выглядит так: если аргумент задан в формате ГГГММ.М, то - ГГГ B^ MM.M B^ 60 / +, а если в формате ГГГММСС.С то ГГГ B^ MM B^ CC.C B^ 60 / + 60 / +. В тех случаях, когда в ОЗУ программы есть свободное место, эти операции можно проводить по программе.
Ю.НАДУБОВИЧ (г.Норильск) ]
КРОСС-ТРАНСЛЯТОР ДЛЯ МИКРОКАЛЬКУЛЯТОРА
Решая ту или иную задачу с помощью микрокалькулятора Б3-34, обычно сперва разрабатывают блок-схему алгоритма, а затем уже по этой блок-схеме составляют программу. Это не так уж просто, если учесть, что программировать здесь приходится в машинных командах. Можно автоматизировать этот переход, прибегнув к кросс-трансляции: использовать более мощную машину для получения программы для нашей простейшей ЭВМ. В этой заметке в качестве кросс-машины выступает 8-разрядный "Роботрон 1715". Входом для транслятора является описание блок-схемы, выходом - программа в командах микрокалькулятора.
Назначение этого транслятора чисто учебное. С его помощью очень легко объяснить сущность трансляции любому школьнику, имеющему хотя бы небольшой опыт работы с программируемым калькулятором. Ведь ученик здесь воочию убеждается, что компьютер проделывает ту (отнюдь не тривиальную!) работу по составлению программ, которую раньше выполнял человек.
К слову сказать, это лишний раз подтверждает целесообразность "мнкрокалькуляторного этапа" в процессе овладения компьютерной грамотой. С ребятами, которые свое знакомство с компьютером начинают с Бейсика нли Рапиры, говорить о машинных командах (а стало быть, и о трансляторах) порой бывает очень тяжело. Какие там команды?! IF X>0 THEN 150, FOR K=I TO 100, и вперед! Совсем другое дело, если ученики успели потрудиться над составлением микрокалькуляторных программ.
Попробую теперь кратко рассказать о самом трансляторе.
На первом рисунке представлена блок-схема одного из вариантов алгоритма для нахождения вещественных корней квадратного уравнения. В зависимости от знака дискриминанта в результате может последовать вывод либо двух корней, либо "сигнального числа", говорящего, что вещественных корней нет. В качестве такого сигнала во многих случаях удобны числа типа 7777777.
На втором рисунке дано описание этой блок-схемы на одном из вариантов языка операторных схем (ЯОС). Первая строка описывает структуру всей блок-схемы, а последующие раскрывают содержание каждого из операторов. "В" и "Е" означает соответственно блоки начала и конца, "А" - блок присваивания, "Р" - блок условного перехода, "I" и "О" - блоки ввода и вывода. Все операторы нумеруются. При необходимости в первой строке в скобках указываются номера операторов, на которые следует передать управление. Результаты работы транслятора (распределение регистровой памяти и сама программа) приведены на третьем рисунке.
Заметная "невооруженным глазом" избыточность созданной программы объясняется отсутствием в его составе каких бы то ни было блоков оптимизации.
Принципиальных трудностей включение таких блоков вызывать не будет, однако существенно увеличит объем памяти, потребный для работы транслятора (сейчас он составляет 16 Кбайт, вспомогательная программа записи и редактирования исходных текстов занимает 6 Кбайт).
О.МАТЮШКИНА-ГЕРКЕ (г. Ленинград).
Желающим использовать этот транслятор на практике автор заметки сообщает свой адрес: 197343, Ленинград, П-343, а/я 4.
ПИСЬМА ИЗДАЛЕКА
Не обладая советским микрокалькулятором или персональным компьютером, являюсь пассивным созерцателем рубрики, а потому не вхожу в иее глубоко.
У меня сложилось впечатление, что в СССР, начав выпуск микрокалькуляторов, сразу взялись за производство программируемых (дальше - ПМК).
ПМК уже не является игрушкой. Это верно как для меня, так и для моих сотрудников и знакомых. Не думаю, что в этом отношении мы отличаемся от технического, бухгалтерского и т.п. персонала в СССР. Считаю, что ПМК и персональный компьютер (дальше - ПК) всегда будут сосуществовать.
Теперь о рубрике. За границей такого рода рубрика из-за множества различных марок, мягко сказать, непрактична. Например: я предпочитаю марку Hewlett-Packard, а мой начальник - Texas Instruments. У других сотрудников - различные другие марки. В общем, извините за выражение, "сам черт ногу сломит".
В соответствующей периодике иногда появляются обзоры стоящих внимания ПМК. Обыкновенно такие статьи пишутся штатом предприятия-производителя по приглашению редакции.
Впечатление такое, что советский пользователь ПМК располагает только двумя типами - МК61 и МК52 (или это только стоящие внимания?). Небольшой набор ПМК способствует широкому, оживленному обмену информацией. Чем рубрика "Человек и компьютер" и занимается.
Кроме всего прочего, работа с ПМК подготавливает такого пользователя к работе с компьютером, независимо от того - подозревает сам пользователь ПМК об этом или иет. (Из собственного опыта и наблюдения).
О подготовительной пользе рубрики относительно публикации программ для ПК я с Вами целиком согласен. Конечно, ие каждый читатель будет корпеть над ними, хотя и ознакомится по крайней мере с написанием программы, что впоследствии обязательно пригодится.
Если говорить об "одержимых" (а такие везде и всегда были, есть и будут), то они впитывают каждую кроху информации о ПК. как губка воду. Такие при первом же случае окажутся "хорошими знакомыми" с ПК и быстро превратятся в искушенных "компьютеристов".
Об обладателях ПК или лицах, имеющих доступ к ним. нечего и говорить. В рубрике они красноречиво заявляют о себе.
Отсюда рубрика оказывает читателю "Науки и жизни" добрую услугу. Вот только промышленность живее раскачивалась бы с массовым выпуском ПК.
Каждому известно, какой вклад сделали радиолюбители в радиосвязь. Не вижу, почему "компьютеролюбители" не смогут внести свою лепту.
Наконец, замечу, что за границей я не замечал предложений вмешиваться в схему ПМК. Зато такие предложения встречаются относительно ПК. А также программ.
В заключение: "Человек и компьютер" - очень полезная рубрика.
С приветом, В.СКРИПКА (Сидней)
[ ИЩЕМ СПОНСОРА
Первый в Коми АССР (г.Воркута) семейный детский дом (11 детей, из которых пятеро школьники, увлеченно занимающиеся информатикой, отец - военнослужащий, мать - педагог) хотел бы иметь персональный компьютер IBM PC.
Кооперативы! Совместные предприятия! Вот вам прекрасный повод проявить свое милосердие и благотворительность. С предложениями обращаться в журнал "Наука и жизнь" ("Школа пользователя ЭВМ") ]
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ
Первое слово в нынешнем выпуске предоставляется тем, кто посвятил свои программы астрономии, геодезии и смежным дисциплинам. Некоторые из этих программ представляют собой доработку или развитие опубликованных ранее. Они наводят на мысль: не составить ли из подобных работ своеобразный ретровыпуск! Ждем писем от тех, кто готов откликнуться на это предложение.
КОГДА ЭТО БЫЛО?
"Переяславский епископ Селивестр помре в 6631 лето месяца априля в 12 день, в велыкий четверг". Лаврентьевская летопись. "А дана грамота, когда князь великий княжну отдал во Царь на ту зиму на вербицу". Грамота князя Андрея Радонежского, 6919г. от сотворения мира. Календарная дата этих событий связана с Пасхой. Датировка по Пасхе очень часто встречается в документах и литературе не только средневековья, но и более позднего времени. Встречается она и в наши дни. Например, Троица - это 50-й день после Пасхи. С него церковь начинает счет недель. Неделя, открывающая новый пасхальный цикл, называется "неделей мытаря и фарисея". Великий пост начинается за семь недель до Пасхи. Ему предшествует масленица. Последняя неделя этого поста называется святой, страстной или великой, а предпоследняя - вербной (дьяк князя Андрея назвал ее вербицей).
Если для любознательных отыскание связи между датированием по Пасхе и нашим календарем может иметь познавательно-развлекательное значение, то для историка оно просто необходимо.
Известно, что в древней Руси счет времени начинался от сотворения мира, которое, согласно тогдашним представлениям, произошло либо 1 сентября 5509г., либо 1 марта 5508г. до н.э. (в исторических документах в этом вопросе нет единства). Какой из двух дат пользовался лаврентьевский летописец? Какого числа по современному календарю была выдана грамота князя Андрея? Чтобы ответить на эти вопросы, нужно знать дату Пасхи. Однако она год от года меняется и, как правило, не совпадает в юлианском и григорианском календарях.
По Евангелию от Иоанна, Христос воскрес в воскресенье, наступившее после 16 дня луны. Это означает, что Пасха должна праздноваться в первое же воскресенье после весеннего полнолуния. Так называется полнолуние, наступающее вслед за весенним равноденствием. Долгое время расчет пасхалий (дат, на которые приходится Пасха) был сложнейшим делом. И только Гауссу удалось вывести простые формулы для определения времени наступления весеннего полнолуния как в любой год нашей эры, так и до нее. На основании этих формул им же предложен простой алгоритм определения пасхалий по юлианскому, григорианскому и иудейскому календарям. Часть этого алгоритма, касающаяся определения юлианской и григорианской пасхалий, показана на рисунке. Универсальность алгоритма состоит в том, что для перехода от одного календаря к другому достаточно заменить всего два коэффициента (приведены на рисунке). Алгоритм реализован в программе для МК-61.
00. ХП2 01. F() 02. ХП1 03. F() 04. ХП0 05. ПХ3 06. 4 07. КПП8 08. 2 09. * 10. ПХ3 11. 7 12. КПП8 13. 4 14. * 15. + 16. ПХ3 17. 1 18. 9 19. КПП8 20. 1 21. 9 22. * 23. ПХ1 24. + 25. ХП3 26. 3 27. 0 28. КПП8 29. ХП4 30. 6 31. * 32. + 33. ПХ2 34. + 35. ХП3 36. 7 37. КПП8 38. ПХ4 39. + 40. 3 41. 5 42. x-y 43. - 44. Fx=0 45. 51 46. 1 47. 9 48. , 49. 4 50. КБП7 51.3 52. 4 53. FBx 54. - 55. Fx=0 56. 62 57. 1 58. 8 59. , 60. 4 61. КБП7 62. 1 63. 0 64. FBx 65. - 66. Fx>=0 67. 75 68. 2 69. 2 70. , 71. 3 72. FBx 73. + 74. КБП7 75. FBx 76. 8 77. , 78. 6 79. - 80. ПХ0 81. ВП 82. 6 83. /-/ 84. + 85. С/П 86. БП 87. 04 88. / 89. FBx 90. x-y 91. K[x] 92. * 93. /-/ 94. ПХ3 95. + 96. В/0.
Перед началом работы вводят постоянные: 80 - Р7 и 88 - Р8. Ввод исходных данных проводится через стек: год В^ m В^ n В/0 С/П. Через 30 секунд получаем результат. Первые одна или две цифры - день; от следующей за ним цифры 3 (март) или 4 (апрель) они отделены точкой. Далее для контроля выведен год, для которого определена пасхалия. Если это четырехзначное число, то между цифрой месяца и цифрой года стоит нуль. Если год кончается нулем, то нуль не индицируется.
А теперь вернемся к нашим вопросам. Сначала предположим, что летописец вел счет от сотворения мира, происшедшего 1 марта 5508 до н.э. Вычислим год смерти епископа по юлианскому календарю. 6631 В^ 5508 - "1123". Вводим коэффициенты юлианского календаря 15 В^ 6 В/0 С/П "15.401123". Пасха была 15 апреля, значит, великий четверг был 12 апреля и наше предположение о дате сотворения мира, которой пользовался летописец, правильное.
Будем считать, что и дьяк князя Андрея тоже вел счет от 1 марта 5508г. до н.э. Тогда год выдачи грамоты 6919 В^ 5508 - "1411". Так как расчет ведется по юлианскому календарю, то коэффициенты менять не надо. С/П "12.401411". Пасха была 12 апреля, а "вербица" началась 30 марта и закончилась 5 апреля. Именно в этот период и была выдана грамота.
Православная церковь до сих пор пользуется юлианским календарем. Когда же будет Пасха у православных в 1991 году? 1991 С/П "25.301991" Это по старому стилю. А по новому - 7 апреля. Когда же этот праздник отметят католики? Тут нужно сменить коэффициенты: 1991 В^ 24 В^ 5 В/0 С/П "31.301991". Это означает 31 марта по новому стилю.
В.РЕМНЕВ (Ялта)
РЕШАЯ УРАВНЕНИЕ КЕПЛЕРА
Уравнение Кеплера Е=М+е*sinE, связывающее эксцентриситет орбиты е, эксцентрическую Е и среднюю М аномалии, чаще всего приходится решать относительно Е, но в этом случае оно трансцендентно и не имеет аналитического решения. Эксцентрическая аномалия Е входит в уравнение дважды, причем второй раз как аргумент тригонометрической функции, а поскольку Е и М обычно задаются в градусах, их приходится переводить в радианы и затем производить обратный перевод. Всего этого можно избежать, если прибегнуть к модификации параметра е и использовать итерационную формулу Ньютона:
Е[n+1]=En+(En-e0*sinEn-М)/(e*cosEn-1)
Тонкость в том, что в числителе модифицированное значение е0=180е/пи, а в знаменателе - не модифицированное. Теперь е и М можно задавать в градусах.
Значение корня уравнения Кеплера вычисляют по программе, с точностью д>=|E[n+1]-En|, задаваемой пользователем.
00. ХПД 01. F() 02. ХПЕ 03. Fпи 04. / 05. 1 06. 8 07. 0 08. * 09. ХПС 10. F() 11. ХПА 12. F() 13. ХПВ 14. ПХВ 15. ПХА 16. ПХВ 17. Fsin 18. ПХС 19. * 20. + 21. - 22. x-y 23. Fcos 24. ПХЕ 25. * 26. 1 27. - 28. / 29. + 30. ХПВ 31. - 32. К|х| 33. ПХД 34. - 35. Fx<0 36. 14 37. x-y 38. С/П 39. БП 40. 11.
Е и М выражают в градусах и десятичных долях. Это сделано потому, что программа является частью более обширной. Ввод исходных данных через стек Е0 В^ М В^ e В^ д В/0 С/П. Если при расчете меняется только М, то для последующих точек Е0 В^ M С/П. Время решения зависит от числа итераций. Е - на индикаторе и в РВ. Ео - первое приближение, выбираемое пользователем. Обычно при расчете первого значения принимают Е0=М, а для последующих - значение Е, хранящееся в регистре В. Тогда ввод проводят так: ПХВ М С/П.
Тест: М=90o, Е0=135o, е=0.7 и д=1.1E-3. Ввод и пуск: 135 В^ 90 В ^ 0.7 В^ 1.1 ВП 5 /-/ В/0 С/П "123.46011". Время решения - 40с.
А.СПИВАК (Киев)
МЫ ПРИЗЕМЛИМСЯ ЗА СТОЛОМ
Предлагаемая программа предназначена для суммирования налета летного состава за месяц и год с помощью микрокалькуляторов МК-52 или МК-61. В качестве исходной информации используется летная книжка (см. рисунок). Колонки, по которым подводится статистика, обозначены сверху цифрами 1... 8. Информация между 7-й и 8-й колонками пропущена, так как количество полетов обычно равно количеству посадок.
00. ПХ3 01. ХП1 02. 8 03. ХП0 04. Сх 05. КХП1 06. FL0 07. 04 08. 8 09. ХП0 10. ПХ3 11. ХП1 12. ХП2 13. 0 14. ХП6 15. КПХ6 16. ПХ6 17. С/П 18. Ko' 19. КПХ1 20. + 21. ПХ4 22. + 23. КХП2 24. FL0 25. 15 26. БП 27. 08 28. 8 29. ХП0 30. ПХ3 31. ХП1 32. КПХ1 33. К'o 34. ПХ5 35. * 36. K[х] 37. ПХ5 38. / 39. С/П 40. FL0 41. 32 42. БП 43. 00.
После ввода программы необходимо занести в память константы: 15 ХП3 0.001 ХП4 100 ХП5. После этого нажать В/0 С/П. После останова на индикаторе появится цифра "1". Это приглашение ввести значение числа из первой (согласно рисунку) клетки в строке. Ввести информацию, нажать С/П, после останова появится "2" и т.д. После ввода числа из восьмой клетки вновь появится "1" - начинается ввод следующей строки. Если информация в какой-либо колонке отсутствует, необходимо ввести 0. Когда числа из всех строк введены, то для вывода информации следует нажать БП 28 С/П. На индикаторе появится сумма чисел из первого столбца, С/П - из второго и т.д. После вывода последней, восьмой, суммы можно нажать С/П - в этом случае будет обнулено содержимое регистров, или БП 08 С/П - чтобы продолжать суммирование.
Первый блок программы (00-16) предназначен для обнуления соответствующих регистров и подготовки к вычислениям. Блок (17-27) предназначен для суммирования данных по столбцам, количество которых можно уменьшить, заменив восьмерку по адресам 02, 08, 28 на соответствующее число. Последний блок 28-41 выводит суммы по порядку, с первого по восьмой столбец. Безусловный переход 42-43 обеспечивает автоматическое обнуление регистров 7..E. после вывода суммы последнего столбца. Число обрабатываемых столбцов можно увеличить, если убрать блок 13 -16 - индикацию номера столбца, по это повысит вероятность ошибки при вводе информации.
В.НИКИТИН (Чита)
[ МАЛЕНЬКИЕ ХИТРОСТИ
Я отлаживаю программы с помощью наборного поля и кассы операторов. Наборное поле представляет собою лист ватмана, состоящего из 100 клеток (10*10). Каждая клетка имеет размеры 1*4. Касса состоит из карточек 1*2, на которых написаны все команды калькулятора, карточек 1*1, на которых написаны цифры 0, 1, 2 ... 9, и карточек 1*1 с буквами К или F. Программа выкладывается с помощью карточек на наборном поле и легко корректируется. После того как она отработана, ее переписывают в тетрадь. Для удобства я применяю карточки разных цветов: один - для команд переходов, другой - для всех остальных операций.
Н.ШАРОВ (г.Ульяновск)
КАКОЙ ЯЗЫК ЛУЧШЕ
"Паскаль получил широкое распространение... его успех свидетельствует..." (из учебника по Паскалю). "Кобол получил широкое распространение... на нем естественно описываются..." (из учебника по Коболу). "Бейсик завоевал..." (из учебника по Бейсику) и т.д.
Так какой же язык лучше? "Наука и жизнь" рассказала, что микрокалькулятор - это хорошо, и все согласились. Затем поведала, что Бейсик - это хорошо и что Паскаль - это отлично. А про Рапиру было сказано, что Рапира - не только хорошо, но лучше Бейсика. Как и ожидалось, эти заявление встретило возмущенную реакцию: как можно сравнивать великий и могучий Бейсик с какой-то "доморощенной" Рапирой??? Авторы этих откликов, правда, с Рапирой не работали - но вопрос задан, и он нуждается в серьезном ответе.
"Все языки эквивалентны друг другу, но некоторые более эквивалентны, чем другие" (почти Оруэлл). Никто не сравнивает истребитель с пассажирским лайнером - это самолеты РАЗНОГО НАЗНАЧЕНИЯ. И языки можно сравнивать только в том случае, если они одного назначения. Бейсик, Рапира, Паскаль предназначены для работы, называемой "программирование для себя", в отличие от "программирования на заказ", чем занимаются программисты-профессионалы (впрочем, Рапиру и Паскаль могут использовать и профессионалы). Каковы же критерии сравнения?
К ним не относятся ни место разработки ("доморощенный" или "made in..."), ни время, за которое она сделана, ни хороший ли человек автор, ни легкость изучения: лень учить - не учи вообще, но тогда и работать не сможешь, а хочешь эффективно работать - потрудись овладеть хорошим инструментом. На популярном уровне критериев ДВА: 1. производительность труда программиста, 2. производительность работы ЭВМ при работе на данном языке (для персональной ЭВМ это, как правило, не актуально).
Известно, что за определенный период человек может отладить в среднем одинаковое число конструкций языка, НЕЗАВИСИМО ОТ ЯЗЫКА, НА КОТОРОМ ОН ПИШЕТ. Ясно, что 100 команд микрокалькулятора выражают куда меньше, чем 100 операторов Бейсика. Значит, смена калькулятора на ЭВМ с Бейсиком резко повышает производительность труда. Теперь сформулируем два сильных утверждения:
- все, что на Бейсике и Паскале можно написать одним оператором, на Рапире тоже можно написать одним оператором;
- то, что на Рапире можно сделать одним оператором, на Бейсике или Паскале часто делается либо крайне сложно, либо не делается вообще.
Примеры:
1. Вставка элемента С после К-го элемента массива А со сдвигом "хвоста". Рапира: A[1:К]+<С>+A[К+1:#A]->А. На Бейсике и Паскале придется писать цикл.
2. Ввод массива (кортежа в Рапире) Рапира: ВВОД данных: А; Бейсик и Паскаль: нужен цикл. А если массив двухмерный? трехмерный?
3.Сравнение двух строк на равенство. Паскалисты, а ну-ка напишите! На Рапире это так: ЕСЛИ СТРОКА1=СТРОКА2 ТО...
4.Запись начальных значений в массив - например, числа дней в месяцах. Рапира: <31, 28, 32..... 30, 31 > -> МЕС. Паскалист, а ну-ка обойдись без 12 присваиваний! А что Бейсик предложит?
Итак, у Рапиры более емкие операторы - и там, где работа на Бейсике или Паскале напоминает строительство стены из кирпичей, на Рапире мы просто ставим готовую панель. Ясно, что соревнование трех равно-квалифицированных программистов, пишущих на Рапире, Бейсике и Паскале, выиграет Рапирист: ему не надо задумываться над мелочами, да и на клавиатуре работать меньше придется.
Второй резерв повышения производительности-удобство отладки. И здесь помогают емкие конструкции Рапиры: ясно, что легче в среднем отладить программу с меньшим числом элементов. Пусть А, Б, Г, Д - некоторые операторы. Тогда запись на Рапире ЕСЛИ... ТО А; Б ИНАЧЕ Г; Д ВСЕ содержит 6 элементов: условие, 4 оператора и одна конструкция ЕСЛИ. На любую ошибку, кроме пропуска ИНАЧЕ (что никогда не встречается), получим диагностику ЭВМ. То же на Бейсике при длинных операторах придется записать так:
10 IF ... GOTO 40
20 Г: Д
30 GOTO 50
40 А: Б
50 ...
Здесь, кроме условия и четырех операторов, уже шесть конструкций (IF, GOTO, две метки после GOTO и две метки в началах строк). С точки зрения ЭВМ все они между собой не связаны: можно пропустить строку 30 ("любимая" ошибка начинающих), написать не те метки - ЭВМ ничего не заметит: все надо "вылавливать" при отладке.
То же на Паскале пишется в 3 конструкции: if... then begin А; Б end else begin Г; Д end; здесь один if н два раза операторные скобки begin-end. И если "зевнуть" begin-end после else, то Паскаль наносит коварный удар из-за угла: диагностик нет, программа выполняется, только Д - это отдельный оператор, выполняющийся при любом условии. Ищи, программист, ошибку!
В вольной формулировке сформулировать те удобства, которые дает при отладке Рапира, можно так: РАПИРА НЕ БЬЕТ ИЗ-ЗА УГЛА - незаменимое качество для начинающих и непрофессионалов.
Роль производительности труда резко возрастает при переходе от учебных задачек к крупным реальным программам. Пусть инженеру в расчете надо решить две системы линейных уравнений - одну 5*5 (5 уравнений с 5 неизвестными) н другую 10*10, и перемножить матрицы. Тут очень кстати была бы библиотека подпрограмм.
У Рапириста никаких хлопот: ура, на диске подпрограммы есть. Читаем ТОЛЬКО ЗАГОЛОВОК И КОММЕНТАРИЙ К НЕМУ: ПРОЦ ЛИНУРАВ (=>А, <=>В), где А - матрица системы, В - свободные коэффициенты, решение получается на месте В.
И не вникая в подробности устройства процедуры, пишем обращения: ЛИНУРАВ (МАТ1, КОЭФ1); ... ЛИНУРАВ (МАТ2, КОЭФ2);
Даже размеры передавать не надо: процедура сама "спросит" у кортежа, сколько в нем элементов. С процедурой умножения матриц все аналогично. Рапирист работу окончил, а как поживают его соперники?
Нашлись подпрограммы и на Бейсике. Изучаем ИХ ЦЕЛИКОМ: там используется матрица А, массив В, переменные К, М и т.д. Значит, эти имена в основной программе использовать нельзя: подпрограмма может испортить значения. Теперь копируем массив коэффициентов в В и А (вложенный цикл), пишем GOSUB, копируем из В результаты (еще цикл), со второй системой аналогично - какая уж тут производительность! Переходим к умножению матриц. Подпрограмма есть, но... подпрограмма для линейных систем имеет номера строк с 1000 до 1200, эта - с 1050 до 1110. Придется менять номера. Хорошо, если есть команда RENUM, как на "Ямахе", а если вручную, да нигде не ошибиться? Рапирист час назад результаты получил, а тут еще работы и работы!
Ну а что у Паскалиста? Процедуры есть и заголовок симпатичный
type matr = array [l..n, l..n] of real;
procedure linurav (a: matr, var b: ...)
Только вот беда: толку от них нуль, ибо n должно быть КОНСТАНТОЙ, и использовать одну процедуру для работы с массивами разных размеров - увы, нельзя. И как ни крутись - производительность падает.
Еще один элемент производительности - снижение вероятности ошибок, что зависит от такого понятия, как ЕСТЕСТВЕННОСТЬ ЯЗЫКА.
Во-первых, это национальная лексика. Пусть "их" транслятор говорит на английском, а "наш" - на русском. Мы же программируем для себя. Конечно, несложно ввести в интерпретатор Бейсика синонимы, чтобы он одинаково понимал "ЕСЛИ" и "IF". А при обмене программами, как при разговоре с иностранцем: кто-то учит язык другого либо приглашает переводчика (в нашем случае - программиста-профессионала).
Во-вторых, ошибок меньше при мнемоничных (удобных для запоминания) именах переменных. Чем здесь поможет Бейсик с именами из одной буквы, одной цифры, да еще "%" или "$"? Что обозначает А1%?
Для тех, кто считает естественными конструкции Паскаля, пара вопросов:
1. type Т=array[1..10] of real; var A: Т;
В: array |1..10] of real;
С, Е: array [1..10] of real;
Идентичны ли типы у этих переменных, можно ли написать А:=В; В:=С; С:=Е? Почему допустимо только одно присваивание и какое именно?
2. Чем отличаются описания (внимание: здесь есть ошибка) type glas=(а, и, о, е, i, у) и type glas = (*a*, *и*, *о*, *е*, *i*, *y*) и можно ли проверить, является ли символ s гласной буквой так: if s in glas then при одном из описаний? А как это сделать?
Конечно, все языки развиваются. И в Бейсике появились и циклы ПОКА и IF-THEN-ELSE (хотя толку от такого оператора мало, ибо весь он должен уместиться в одну строку длиной не более 256 символов). Конечно, если из Бейсика выбросить все, что там есть, и ввести все современные конструкции, то выйдет неплохой язык, но это... уже не Бейсик, ибо где его хваленая простота, основанная на бедности конструкций? Лучший тому пример - введение экранного редактора (прекрасная иллюстрация поговорки "пятое колесо к телеге"): перестановка строк без смены номеров не влияет на порядок выполнения - так какое же это экранное редактирование, если текст на экране не соответствует тексту в программе?
Дискуссию интересно продолжить. Но помните, пожалуйста, несколько аксиом дискуссии:
а) чтобы сказать, что какой-то язык хорош, надо знать хотя бы еще один язык, который вы считаете худшим (все защитники Бейсика в письмах писали, что знают только его - и больше ничего не хотят),
б) чтобы сказать, что какой-то язык плох, надо как минимум знать этот язык, а еще лучше - иметь опыт работы иа нем (критики Рапиры знают только, что она - доморощенная),
в)подумайте, что представляет собой свойство языка, что - особенность реализации, а что - особенность ЭВМ. Например, низкая надежность "Агата" - это не дефект реализованной на нем Рапиры; музыка, графика в Бейсик-Ямаха - это богатство аппаратуры ЭВМ: на "Ямахе" в любом языке будут такие средства.
Итак, в классе языков, ориентированных на начальное обучение и "программирование для себя" на персональной ЭВМ, языков, сравнимых с Рапирой, пока не видно. А опыт объявления лучшим того, что у нас есть, и ненужным (плохим) того, чего у нас нет, накоплен богатый - результаты его всем известны. Поэтому даже школьникам, обучаемым на Бейсике из-за того, что другого языка нет, стоит, можно и нужно объяснять, что Бейсик морально устарел.
Познакомиться с Рапирой можно в статьях ее автора Г.А.Звенигородского в журнале "Квант" 1-4/80 (версия для "Агата") и статьях Н.А.Юнерман и Н.В.Глаголевой в журнале "Информатика и образование" 2-6/89 (версия для "Ямахи").
Л.ШТЕРНБЕРГ (Куйбышев)
СОЛНЦЕ ВСХОДИТ И ЗАХОДИТ
Приведенной ниже программой я пользуюсь уже более двух лет. Она точнее программы В.Гуляева, опубликованной в 4/86, и позволяет определить, кроме времени восхода и захода Солнца, также время восхода и захода Луны и других светил, фазу Луны, прямое восхождение и склонение светила, угол места в верхней кульминации. Полученные результаты могут быть использованы для вычисления звездного времени. Погрешность в определении времени восхода и захода Солнца +/-3м, Луны +/-10м.
Широта наблюдения ф считается положительной к северу от экватора, а долгота л - к востоку от нулевого меридиана. Для расчетов необходимо знать координаты эталонного места ф0 и л0, в котором известно время восхода Т0в н захода Т0з светила, параметры которого вычисляются. Координаты задаются в градусах и десятичных долях градуса, а все времена в часах и минутах. При вводе в калькулятор минуты отделяются от часов десятичной точкой. Фазы Луны определяются по уравнению времени э. При э=0 - новолуние, прн э=6 - последняя четверть и т.п. Разница во времени между местом наблюдения и эталонным измеряется в часах и обозначается ДТ, угол места в верхней кульминации обозначается h и вычисляется в градусах. В градусах рассчитывается и склонение светила д, а вот прямое восхождение а и звездное время S0 вычисляется в часах.
00. Кo' 01. x-y 02. Кo' 03. + 04. FBx 05. x-y 06. 2 07. / 08. ХП4 09. - 10. ХП1 11. 1 12. 2 13. ХПС 14. x-y 15. Fx>=0 16. 19 17. Сx 18. ХПС 19. ПХС 20. ПХ1 21. + 22. 1 23. 5 24. ХПД 25. * 26. Fcos 27. ПХ5 28. Ftg 29. / 30. XП2 3l. Ftg-1 32. ХПА 33. ПХ8 34. - 35. K[x] 36. 9 37. 0 38. x-y 39. - 40. ХПВ 41. ПХ6 42. ПХД 43. / 44. ПХ4 45. + 46. ПХС 47. - 48. ПХ3 49. ПХ8 50. Ftg 51. ПХ2 52. * 53. Fcos-1 54. ХП0 55. /-/ 56. ПП 57. 90 58. ПХ0 59. ПП 60. 90 61. С/П 62. ХП1 63. К{х} 64. 0 65. , 66. 3 67. 1 68. / 69. КПХ1 70. F() 71. ПХ1 72. + 73. 2 74. * 75. ПХ3 76. + 77. 5 78. , 79. 5 80. - 81. Fx<0 82. 86 83. 2 84. 4 85. + 86. ХПЕ 87. С/П 88. БП 89. 00 90. ПХ9 91. - 92. ПХД 93. / 94. ПХ3 95. + 96. ПХ7 97. + 98. Fx<0 99. 3 -0. 2 -1. 4 -2. + -3. Кo' -4. B/0
2 -1.4 В/О.
Инструкция
1. Переключатель Р/ГРД/Г поставить в положение Г.
2. Ввести константы ф0 - Р5, л0 - Р6, ф - Р8, л - Р9, ДT - Р7.
3. Ввод данных и пуск: Т0в B^ Т0з В/0 С/П.
4. При остановке на индикаторе Тв. Для получения Тз - нажать клавишу x-y.
5. Для получения д нажать ПХА. h - ПХВ и э - ПХ3.
6. Для вычисления прямого восхождения светила ввести в регистр X порядковый номер месяца и дня, разделив их десятичной точкой, и нажать клавишу С/П.
7. Звездное время вычисляется по формуле S0=а-э-12 и получается в часах.
Определим время восхода и захода Солнца и Луны в Москве (ф=55.77o, л= 37.56o) 20 августа 1990г. В качестве эталонного места выберем точку ф0=56o и л0=0o (ДТ=4ч), для которой Астрономический календарь для 20 августа дает: Солнце - Т0в=4ч29м и Т0з=19ч29м, а для Луны - Т0в=4ч29м и Т0з=19ч08м. В соответствии с п.2 инструкции вводим константы: 56 - Р5, 0 - Р6, 4 - Р7, 55.77 - Р8 и 37.56 - Р9. Сначала произведем расчеты для Солнца согласно п.3 инструкции. 4.29 В^ 19.29 В/0 С/П. Через 30с на индикаторе Тв=6ч09м (здесь и далее, кроме расчета S0, результат округлен) x-y Тз=20ч56м. ПХА д=13.51o, ПХВ h=47.74o, ПХ3 э=0.042ч. Переходим к п.6 инструкции: 8.20 С/П. Через 5с получаем прямое восхождение Солнца а=9.831989ч. Для определения звездного времени S0 проведем операции ПХ3 - 12 - "-2.209677". Знак "минус" означает, что предыдущие звездные сутки еще не кончились. Для избавления от "минуса" 24 + Кo' S0=21ч47м.
Переходим к Луне. Так как первый расчет был доведен до конца и константы не менялись, то ввод можно провести, минуя команду В/0. 4.29 В^ 19. 08 С/П Тв=5.59, Тз=20.37, д=12.92, h=47.15 и э=-0.19. Малая величина э означает, что Луна находится вблизи точки новолуния, а знак "минус", что до него она еще не дошла. Определяем прямое восхождение - 8.20 С/П а=9.59ч.
А.ЖУКОВ (Нелидово Калининской обл.)
[ МАЛЕНЬКИЕ ХИТРОСТИ
Аргумент тригонометрических функций, как правило, бывает задан в градусах, минутах и секундах, а калькулятор оперирует с аргументом, выраженным в градусах и десятичных долях градуса. Предлагаемые для микрокалькуляторов Б3-34 и МК-54 методы перевода полностью автоматизированы, но требуют 14 шагов памяти при переводе минут н более 30 при переводе минут и секунд. При ограниченном объеме памяти микрокалькулятора основная программа часто не оставляет такого резерва. Выход в том чтобы все преобразование или часть его проводить вручную. В принятых обозначениях ГГГ - градусы, ММ - минуты и СС - секунды. Преобразование выглядит так: если аргумент задан в формате ГГГММ.М, то - ГГГ B^ MM.M B^ 60 / +, а если в формате ГГГММСС.С то ГГГ B^ MM B^ CC.C B^ 60 / + 60 / +. В тех случаях, когда в ОЗУ программы есть свободное место, эти операции можно проводить по программе.
Ю.НАДУБОВИЧ (г.Норильск) ]
КРОСС-ТРАНСЛЯТОР ДЛЯ МИКРОКАЛЬКУЛЯТОРА
Решая ту или иную задачу с помощью микрокалькулятора Б3-34, обычно сперва разрабатывают блок-схему алгоритма, а затем уже по этой блок-схеме составляют программу. Это не так уж просто, если учесть, что программировать здесь приходится в машинных командах. Можно автоматизировать этот переход, прибегнув к кросс-трансляции: использовать более мощную машину для получения программы для нашей простейшей ЭВМ. В этой заметке в качестве кросс-машины выступает 8-разрядный "Роботрон 1715". Входом для транслятора является описание блок-схемы, выходом - программа в командах микрокалькулятора.
Назначение этого транслятора чисто учебное. С его помощью очень легко объяснить сущность трансляции любому школьнику, имеющему хотя бы небольшой опыт работы с программируемым калькулятором. Ведь ученик здесь воочию убеждается, что компьютер проделывает ту (отнюдь не тривиальную!) работу по составлению программ, которую раньше выполнял человек.
К слову сказать, это лишний раз подтверждает целесообразность "мнкрокалькуляторного этапа" в процессе овладения компьютерной грамотой. С ребятами, которые свое знакомство с компьютером начинают с Бейсика нли Рапиры, говорить о машинных командах (а стало быть, и о трансляторах) порой бывает очень тяжело. Какие там команды?! IF X>0 THEN 150, FOR K=I TO 100, и вперед! Совсем другое дело, если ученики успели потрудиться над составлением микрокалькуляторных программ.
Попробую теперь кратко рассказать о самом трансляторе.
На первом рисунке представлена блок-схема одного из вариантов алгоритма для нахождения вещественных корней квадратного уравнения. В зависимости от знака дискриминанта в результате может последовать вывод либо двух корней, либо "сигнального числа", говорящего, что вещественных корней нет. В качестве такого сигнала во многих случаях удобны числа типа 7777777.
На втором рисунке дано описание этой блок-схемы на одном из вариантов языка операторных схем (ЯОС). Первая строка описывает структуру всей блок-схемы, а последующие раскрывают содержание каждого из операторов. "В" и "Е" означает соответственно блоки начала и конца, "А" - блок присваивания, "Р" - блок условного перехода, "I" и "О" - блоки ввода и вывода. Все операторы нумеруются. При необходимости в первой строке в скобках указываются номера операторов, на которые следует передать управление. Результаты работы транслятора (распределение регистровой памяти и сама программа) приведены на третьем рисунке.
Заметная "невооруженным глазом" избыточность созданной программы объясняется отсутствием в его составе каких бы то ни было блоков оптимизации.
Принципиальных трудностей включение таких блоков вызывать не будет, однако существенно увеличит объем памяти, потребный для работы транслятора (сейчас он составляет 16 Кбайт, вспомогательная программа записи и редактирования исходных текстов занимает 6 Кбайт).
О.МАТЮШКИНА-ГЕРКЕ (г. Ленинград).
Желающим использовать этот транслятор на практике автор заметки сообщает свой адрес: 197343, Ленинград, П-343, а/я 4.
ПИСЬМА ИЗДАЛЕКА
Не обладая советским микрокалькулятором или персональным компьютером, являюсь пассивным созерцателем рубрики, а потому не вхожу в иее глубоко.
У меня сложилось впечатление, что в СССР, начав выпуск микрокалькуляторов, сразу взялись за производство программируемых (дальше - ПМК).
ПМК уже не является игрушкой. Это верно как для меня, так и для моих сотрудников и знакомых. Не думаю, что в этом отношении мы отличаемся от технического, бухгалтерского и т.п. персонала в СССР. Считаю, что ПМК и персональный компьютер (дальше - ПК) всегда будут сосуществовать.
Теперь о рубрике. За границей такого рода рубрика из-за множества различных марок, мягко сказать, непрактична. Например: я предпочитаю марку Hewlett-Packard, а мой начальник - Texas Instruments. У других сотрудников - различные другие марки. В общем, извините за выражение, "сам черт ногу сломит".
В соответствующей периодике иногда появляются обзоры стоящих внимания ПМК. Обыкновенно такие статьи пишутся штатом предприятия-производителя по приглашению редакции.
Впечатление такое, что советский пользователь ПМК располагает только двумя типами - МК61 и МК52 (или это только стоящие внимания?). Небольшой набор ПМК способствует широкому, оживленному обмену информацией. Чем рубрика "Человек и компьютер" и занимается.
Кроме всего прочего, работа с ПМК подготавливает такого пользователя к работе с компьютером, независимо от того - подозревает сам пользователь ПМК об этом или иет. (Из собственного опыта и наблюдения).
О подготовительной пользе рубрики относительно публикации программ для ПК я с Вами целиком согласен. Конечно, ие каждый читатель будет корпеть над ними, хотя и ознакомится по крайней мере с написанием программы, что впоследствии обязательно пригодится.
Если говорить об "одержимых" (а такие везде и всегда были, есть и будут), то они впитывают каждую кроху информации о ПК. как губка воду. Такие при первом же случае окажутся "хорошими знакомыми" с ПК и быстро превратятся в искушенных "компьютеристов".
Об обладателях ПК или лицах, имеющих доступ к ним. нечего и говорить. В рубрике они красноречиво заявляют о себе.
Отсюда рубрика оказывает читателю "Науки и жизни" добрую услугу. Вот только промышленность живее раскачивалась бы с массовым выпуском ПК.
Каждому известно, какой вклад сделали радиолюбители в радиосвязь. Не вижу, почему "компьютеролюбители" не смогут внести свою лепту.
Наконец, замечу, что за границей я не замечал предложений вмешиваться в схему ПМК. Зато такие предложения встречаются относительно ПК. А также программ.
В заключение: "Человек и компьютер" - очень полезная рубрика.
С приветом, В.СКРИПКА (Сидней)
[ ИЩЕМ СПОНСОРА
Первый в Коми АССР (г.Воркута) семейный детский дом (11 детей, из которых пятеро школьники, увлеченно занимающиеся информатикой, отец - военнослужащий, мать - педагог) хотел бы иметь персональный компьютер IBM PC.
Кооперативы! Совместные предприятия! Вот вам прекрасный повод проявить свое милосердие и благотворительность. С предложениями обращаться в журнал "Наука и жизнь" ("Школа пользователя ЭВМ") ]
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
7/90
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ЧЕТВЕРТОЕ, на котором завершается беседа о текстовых процессорах.
Наряду с Лексиконом в нашей стране более или менее широкое распространение получили все текстовые процессоры, используемые в мире. У каждого из них - свои особенности, свои достоинства. Многие (в качестве примера можно привести текстовый процессор из пакета Framework III) умеют вылавливать орфографические ошибки в текстах, сверяясь со словарем, где содержится несколько десятков или даже сотен тысяч слов. Получив команду на проверку текста, процессор сравнивает каждое слово со словами, хранящимися в словаре. Если очередного слова в словаре не оказывается, то процессор выделяет его цветом, прерывает работу и выводит фразу такого содержания: "Я извиняюсь. Здесь что-то не так. Выделенного слова в моем словаре нет. Вам предоставляется на выбор четыре варианта нашей дальнейшей работы: 1. отредактировать это слово, исправив ошибку; 2. посчитать, что моя эрудиция не так богата и я не знаю этого слова; 3. записать это слово в мой словарь, расширив его так, чтобы я на нем в следующий раз "не спотыкался"; 4. попросить меня вытащить из дебрей моей памяти слова, похожие по написанию с тем, какое выделено в тексте и содержит, на мой взгляд, ошибку".
Что происходит, если пользователь выбирает четвертый вариант, показано на рисунке.
В тексте редактируемой программы есть переменная Day (день). Но в одном месте (компьютер выделит это курсорной рамкой, в английском языке такого слова нет) программист написал это слово в русской транскрипции - Dey. Машина не нашла в своем словаре такого слова и выдала по просьбе пользователя восемь похожих по написанию, давая человеку возможность выбора: пользователь перемещает курсорную рамку на слово Day и нажимает клавишу Enter. После этого ошибка в тексте будет исправлена.
В только что приведенном примере речь шла о редактировании программ. Надо сказать, что программистам текстовые процессоры оказывают не меньше услуг, чем машинисткам. Ведь каждую программу приходится записывать в виде текста, а потом многократно редактировать, чтобы она заработала. Вот почему разработчики современных языков программирования заботятся о средствах редактирования программ на этих языках. Здесь уместно привести в качестве примера Quick Basic.
Если во введенной строке программы на этом языке содержится ошибка, то после нажатия клавиши Enter она выделяется курсорной рамкой, которая как бы призывает программиста исправить оплошность. А если вслед за этим нажать клавишу F1 (help, помощь), на экране появится полное описание оператора или несколько конструкций с типичными примерами его использования, один из которых программист может перенести в текст своей программы и отредактировать, приспособив к конкретному программному сюжету.
Короткий рассказ о следующем текстовом процессоре, Multy Edit, начнем со сценки, которую приходится наблюдать не так уж редко.
Человек сидит за компьютером, а рядом с клавиатурой лежат либо калькулятор, либо листок с черновиками арифметических выкладок. Что ж делать, если при работе с текстовым процессором нужно сложить, например, несколько чисел, а ответ внести в текст? "От жажды умираю над ручьем?!"
Удобный выход из положения предоставляет в таких случаях текстовый процессор Multy Edit, созданный фирмой American Cybernetics. При работе с ним можно вызвать на экран дисплея изображение действующего калькулятора, нажав одновременно клавиши Alt и F2, провести на нем нужные расчеты, а ответ перенести в текст. На рисунке виден отрывок из рассказа М.Твена "Мак-Вильямсы и автоматическая сигнализация от воров" (перевод А.Старцева). В рассказе речь идет о том, как в одном американском доме была установлена охранная сигнализация и что из этого вышло, а в приведенном отрывке недостает общей суммы счета.
Пользователь текстового процессора "МультиЭдит" при необходимости может "создать" на экране дисплея небольшой микрокалькулятор.
Изображение калькулятора клавишами "Вверх", "Вниз", "Влево" и "Вправо" можно передвинуть так, чтобы не загораживать нужный текст. При этом "подвал" экрана дисплея (предпоследняя строка) отмечает новые текущие нагрузки функциональных клавиш: F1 - подробное описание правил работы с калькулятором; F2 - очистка всех регистров калькулятора; F3 - очистка регистра X калькулятора; F4-F6 - логические операции над числами (и, или, исключающее или); F7 - выбор системы счисления (по умолчанию она десятеричная, но может быть заменена на двоичную, восьмеричную или шестнадцатеричную); F8 - смена знака у числа на экране калькулятора; F9 - работа с регистрами памяти (у калькулятора их 16 - от 0 до F). Работу на калькуляторе подробно нашим читателям описывать не нужно - о них много писалось и пишется в разделе "Человек и компьютер", так что ясно, как в результате расчетов получилось число 19.77. Им нужно будет заменить знаки вопроса в тексте рассказа на экране дисплея. После нажатия клавиши Esc (см. надпись на корпусе калькулятора) его изображение пропадет (но, что очень важно, состояние регистров калькулятора будет сохраняться и при новом к нему обращении, так что прерванные расчеты можно будет продолжить), "калькуляторное" меню заменяется на обычное, главное (последняя строка): F1 - получение подсказки; F2 - вызов дополнительного меню на "чердаке" (так программисты называют верхнюю часть экрана дисплея) с новыми "блюдами": обращение к магнитным дискам, распечатка готовых текстов, временный или окончательный выход в дисковую операционную систему и др.; F3 - запись текста на магнитный диск ("стреляный" пользователь на эту клавишу нажимает после ввода очередной порции текста - ведь так бывает обидно, когда пропадают результаты целого для работы из-за дурной компьютерной привычки "зависать" в самый неподходящий момент или из-за случайного обесточивания машины); F4 - смещение строки текста (например, первой строки абзаца) вправо; F5 - разметка положений курсора; F6 - поиск в тексте заданной цепочки символов (ключевого слова); F7 - выделение блока текста; F8 - запуск команд-макросов, которые, заметим походя, необязательно вводить каждый раз перед очередной работой с текстовым процессором, их можно записать на диск и при необходимости считывать и запускать; F9 - копирование выделенного с помощью клавиши F7 блока; F10 - перемещение фрагментов и блоков.
Можно почерпнуть много интересного, вглядываясь в "чердак" картинки на экране дисплея. Там записано, что использовалась версия Multy Edit под номером 2.01 (первое исправление второй версии), в данный момент задействован в работе калькулятор (Calc), клавиатура настроена на вставку (Insert) символов, а не на их замену, из 640 Кбайт ОЗУ машины свободно 311, работа велась 3 января 1990 года в 5 часов 1 минуту после обеда, сам текст был только что записан в корневой каталог диска D с именем "signal.mag", текущее положение курсора - 22-я позиция на 14-й строке.
В рекламной заставке текстового процессора Multy Edit сказано, что он относится к программным продуктам третьего поколения (поколения есть не только у вычислительных машин, но и у программных средств). В частности, это означает, что у него есть возможность работать с "мышью", отчего редактирование текстов очень облегчается.
Каждое новое поколение - это лучшая, чем раньше, помощь пользователю. Когда работаешь с Multy Edit, то нажатие клавиши "F1 - Help" не просто вызовет на дисплей описание текстового процессора, а будет, как говорится, бить в самую точку: давать именно ту подсказку, которая в данный момент требуется пользователю: правила обмена информацией с дисками, работа с принтером, смена шрифтов и многое другое. Заметим, что хороший пакет прикладных программ на 90 и более процентов состоит из текстовых файлов помощи пользователю с развитой системой перекрестных ссылок. Есть в пакете Multy Edit демонстрационная программа, которая со своей стороны, по принципу "лучше один раз увидеть, чем сто раз услышать", существенно облегчает работу с текстовым процессором, резко сокращает время обучения пользователя. Вспомним: даже самый опытный летчик после возвращения в часть из отпуска первые часы летает в спарке под руководством инструктора. Так и тут: если пользователь долго не работал с тем или иным программным продуктом, то ему достаточно "полетать с инструктором" - запустить демонстрационную программу, показывающую, на что способен данный текстовый процессор. Наконец, у Multy Edit есть возможность не только записать готовый текст на диск, распечатать его на принтере, но и передать по проводам другим машинам. Перефразируя поговорку, можно сказать, что "плох тот персональный компьютер, который не мечтает стать терминалом компьютерной сети". Вернемся в самое начало нашего занятия. Машинистке, подсевшей первый раз к компьютеру, нужно было полсотню раз отпечатать практически один и тот же текст и отправить его по почте в адрес приглашенных на совещание. Но если компьютер подсоединен к сети, то готовые тексты можно "сбрасывать" не на принтер, а в компьютеры адресатов.
Фирма Microsoft предлагает для обработки текстов систему Microsoft Word. Здесь большинство команд выполняется нажатием только одной клавиши. Ошибочную команду можно быстро исправить, используя также одну клавишу. Имеется "мышь", словарь для орфографической проверки текста; кроме того, для специальных выражений можно создавать свой личный словарь, который используется для проверки по требованию. Имеется возможность проводить маленькие "калькуляторные" вычисления, не прерывая работу над текстом. Короче говоря, система Microsoft Word no своим достоинствам не уступает системе Mtdti Edit.
Разговор о текстовом процессоре MSWord закончим в форме интервью, которое один из ведущих занятие (В) взял у пользователя (П), чья профессия непосредственно связана с применением этого программного продукта.
В. Почему выбирая текстовый процессор, вы остановились на MSWord?
П. Здесь нет ничего удивительного. Наверное, 90 процентов отечественных профессиональных пользователей компьютеров типа IBM PC общаются со своими машинами посредством именно этого процессора. Я имею в виду работников компьютеризованных редакций газет, журналов и издательств, к коим принадлежу и я сам.
В. А почему так получилось?
П. Главное, пожалуй, в том, что MSWord из всех популярных западных текстовых процессоров наиболее приспособлен к кириллице. К нему очень просто подключить различные русские шрифты для лазерных принтеров, орфографические словари для поиска опечаток и тому подобное. MSWord легко освоить и в то же время он по своим возможностям приближается к настольным издательским системам - таким, как Ventura или Pagemaker. В процессор MSWord, в частности, в его версию 5,0, встроена система WYSIWYG (визивиг - what you see is what you get - что вы видите, то вы и получите), без которой я как без рук. Она позволяет просмотреть на экране дисплея готовую страницу с рисунками, с различными шрифтами, с полями... При нашем дефиците бумаги и малом ресурсе принтеров система WYSIWYG просто незаменима! Популярности процессора MSWord способствует и то, что фирма-разработчик Microsoft имеет в Москве филиал - совместное предприятие "Диалог".
В. Чего вам не хватает в этом процессоре?
П. Многого, конечно. Но я верю, что со временем положение будет все более исправляться. Microsoft совместно с "Диалогом" сейчас разрабатывают новые версии MSWord. Только бы суметь их приобрести!
Быть может, эти высказывания во славу MSWord вызовут зависть у представителей других профессий - скажем, у математиков, имеющих дело с весьма специфичными текстами. Но разве на продуктах фирмы Microsoft свет клином сошелся?
Американская фирма Horstmann Software Design разработала научный текстовый процессор Chiwriter (по-русски читается Чирайтер). Он имеет двадцать шрифтов, позволяющих выводить на экран дисплея или на принтер, работающий в графическом режиме, почти 2000 символов. Кроме того, есть возможность изменять любой из имеющихся шрифтов или создать новый. С помощью Чирайтера можно вводить в память компьютера и обрабатывать очень сложные изображения. Особенно удобно использовать Чирайтер в работе с физическими и математическими формулами.
Завершаем наш урок в "Школе" о текстовых процессорах показом таблицы из второго выпуска обозрения "Компьютер Пресс". В нее сведены параметры восьми самых популярных на Западе (по мнению журнала "PC World") текстовых процессоров.
Сравнительные характеристики некоторых текстовых процессоров.
Команда UNDO (см. верхнюю часть "боковика" таблицы) позволяет отменить действие предыдущей команды. Пользователь ЭВМ, например, заменил во всем тексте слова "текстовый процессор" на аббревиатуру "ТП", а потом спохватился, поняв, что этого делать не стоило бы. Не беда! Команда UNDO позволит восстановить исходный текст без сокращений. Столь нужная команда - еще одно проявление дружественности компьютера к человеку.
Словари, которые перечисленные текстовые процессоры используют при поиске опечаток, конечно, состоят не из русских слов. Но сейчас у нас в стране действует множество государственных и кооперативных фирм, создающих русские орфографические компьютерные словари (по тематикам: информатика, химия, медицина н т.д.), совместимые с западными текстовыми процессорами. Объявления о продаже таких словарей часто можно увидеть в рекламных отделах многих газет, не говоря уже о специальных компьютерных изданиях.
Хороший текстовый процессор должен обладать качествами литературного рецензента: по просьбе пользователя компьютер может проанализировать набранный текст и свести в таблицу стиля какие-то характеристики - частоту использования тех или иных слов, например. Если пользователь каким-то словом злоупотребляет, то компьютер подберет ему замену, "выудив" из своего словаря синонимы.
На магнитном диске тексты могут храниться в разных форматах, в зависимости от того, с помощью каких программных средств они были созданы (интегрированный пакет LOTUS 1-2-3, система управления базой данных DBASE и т.д.). Текстовый процессор, претендующий на любовь пользователя, должен разбираться в чужих файлах. Об остальных параметрах текстовых процессоров мы умолчим. Пусть слушатели "Школы" будут заинтригованы,- мы об этих качествах текстовых процессоров поговорим позже.
РЕДАКЦИЯ получила много откликов на первое занятие "Школы", и это дает возможность вернуться к нему за круглым столом. Ведут импровизированное заседание москвичи В.Ф.ОЧКОВ и В.С.КИРДОДА, под руководством которых проходило первое занятие.
Итак, друзья, давайте рассядемся поудобнее. Мы слышим, как сквозь неизбежный в начале каждого дела шум все настойчивее раздаются голоса недоумения: почему мы избрали для рассмотрения компьютер IBM PC? Почему оставляем "за кадром" множество других популярных машин?
Слово взял сотрудник Института терапии из Новосибирска Е.П.Тарасенко и попросил поговорить про БК-0010; затем А.Ю.Кузнецов из Павлодара предложил немедленно опубликовать для самостоятельного изготовленяя схему компьютера SPECTRUM; M.К.Садыкова из Усть-Илимска заявила, что интересуется машинами СМ 1600.05 и СМ 1420.09...
Но тут из забытого кем-то синтезатора речи раздался голос Козьмы Пруткова: "Никто не обнимет необъятного". Что верно, то верно, тем более что рубрика занимает в журнале всего семь страниц. Протягивая ножки по этой одежке, мы решили остановиться на какой-то одной модели. И поскольку семейство IBM во всем мире считается своеобразным эталоном персонального компьютера, то ему и было отдано предпочтение. Однако, учитывая несомненную правоту владельцев и пользователей других типов, мы решили в дальнейшем по мере возможности помещать публикации о самых разных компьютерах.
В ответ на это обещание И.В.Козниов из Москвы тотчас вопросил: где можно купить приличный компьютер и сколько он стоит? В это время подошла пора перерыва, и мы, не мудрствуя лукаво, спустились вниз, пересекли улицу Кирова и вошли в комиссионный магазин. Там в роскошном полумраке сверкали матовой пластмассой клавиатур и дисководов гордые "Экстишки" и "Эйтищки", "Макинтоши" и "Коммодоры". Неприступные продавцы отрешенно гоняли по цветным дисплеям кошек и кладоискателей. Скромные ценники лишали каких бы то ни было иллюзий. Читателей, не бывавших в подобных магазинах и стоя читающих наш журнал, просим сесть. На простеньком "Атари" висела табличка с цифрой 27000. Конечно, не в копейках. На другой - 32000. И так от 11000 до 145000. "Мышь" - пластмассовая коробочка с полудюжиной контактов - стоила 1200. С тем и вернулись обратно за свой стол.
Наш журнал, кстати, в 4/90 дал своеобразную шкалу стоимости средств вычислительной техники в комиссионных магазинах; была также приведена ставка таможенных пошлин на ввозимую импортную технику-компьютеры, дисководы, чипы, дискеты, дисплеи и др.
Между тем за столом опять возник шум. Сразу в несколько голосов - Г.А.Меренков из Семипалатинска, П.В.Толкачев из Барнаула, В.А.Трушин из Ростова-на-Дону и многие другие потребовали ответить на вопрос: как быть с трехполюсными вилками компьютера, о которых говорилось в первом номере журнала? Что ж, давайте подробнее остановимся на этом, как нам казалось, простом вопросе. Вилки эти бывают разной конструкции, но обязательно с заземляющим контактом. Можно встретить трехполюсные вилки либо с плоскими, либо с круглыми штырьками; но чаще всего встречаются трехконтактные вилки с двумя круглыми, чуть более толстыми, чем обычно, третий же, заземляющий контакт у таких вилок выполнен в виде двух плоских контактных пружин, расположенных на цилиндрической части корпуса вилки. Эта ее часть входит в цилиндрическое же углубление специальной розетки, где, кроме гнезд, для токовых штырей имеются заземляющие контакты, взаимодействующие с упомянутыми контактными пружинами. В обыкновенную розетку такую вилку включить нельзя, так как из-за увеличенного диаметра токовые штыри войти в ее гнезда не могут. Для таких вилок годятся двухполюсные розетки с заземляющим контактом РШ-Ц-20-0-01-10/220 или розетки, продающиеся в магазинах электротоваров цо цене 80 копеек за штуку, производства завода (а может, фабрики или даже артели) под названием REMLR. Для вилок с тремя плоскими штырьками можно использовать розетки РШ-П-20-0-01-10/220, а для вилок с тремя круглыми штырьками - розетки РШ-Ц-20-0-54-10/220. (Где они продаются, не знаем. Но если вы смогли раздобыть компьютер, то это для вас, уверены, проблемой не будет). Из трех закрепленных на изоляционной плате розеток, электрического шнура и обычной вилки делают удлинитель. Далее от имеющегося у каждого дома очага заземления в помещение, где находится компьютер, протягивают толстый провод и приваривают (или припаивают) его к специально заделанному в стене болту. К нему при помощи обыкновенной клеммы подсоединяют гибкий медный провод, который подключают к заземляющим контактам розеток нашего самодельного удлинителя. Вилки всех агрегатов компьютера включают в розетки этого удлинителя, а его вилку - в обычную сетевую розетку. Компьютер готов к работе. Очень важно, чтобы вся ваша компьютерная система (центральный блок, принтер, графопостроитель и пр.). "сидела" на одной фазе электросети. Иначе при определенных условиях возможны сбои зависания и даже возникновения серьезных повреждений.
Некоторое время спустя за столом разгорелось бурное обсуждение проблемы компьютерных вирусов. От имени группы работающих в области информатики с просьбой рассказать о вирусах и методах борьбы с ними выступил В.Ф.Любашев из Алма-Аты. Не успел начаться этот разговор, как В.И.Чернышев и Д.В.Кудрявцев из Люберец принялись опровергать предупреждение журнала об опасности вирусного разрушения микросхем и участков дисплея.
- До сих пор,- добавил москвич А.А.Макаров,- я ни разу не слышал о вирусах, прожигающих микросхемы или участки экрана дисплея, хотя, справедливости ради, отмечу, что в принципе такой вирус возможен.
Это признание делает нам честь, как впервые открывающим нашему оппоненту глаза на проблему, возможность которой констатирует и он сам. И как бы в подтверждение этого с другой стороны стола раздался голос Э.М.Пройдакова из Москвы. В предложенной им совместно с Д.Е.Орловым классификации вирусов он назвал "вандалами" вирусы, разрушающие аппаратную часть ЭВМ. "Особенно подвержены выводу из строя,- сказал Пройдаков,- винчестеры. К сожалению, такие случаи в Москве - в этом году участились".
В целом мысли, высказанные Э.М.Пройдаковым, заслуживают того, чтобы вернуться к ним в одном из выпусков нашей "Школы". Вообще-то заявление типа "компьютерный вирус никогда не способен сделать то-то и то-то" несет несколько провокационный характер. Не исключено, что найдется программист-фанат, который может бросить все и засесть за создание вируса с ранее невиданными свойствами.
Авторами компьютерных вирусов, как известно, являются программисты двух типов. Для первых созданный ими вирус - средство самоутверждения: "Вот, мол, какой я ас, если смог создать такую хитроумную программу!" Для вторых компьютерный вирус - одно из средств защиты программных продуктов от несанкционированной перезаписи. Фирмы-разработчики математического обеспечения ЭВМ часто предупреждают своих клиентов, чтобы они не копировали купленные программы, а обращались бы за копиями опять же к ним. Иначе может проснуться "защитный" вирус, последствия жизнедеятельности которого непредсказуемы. Слухи о вирусах-"вандалах" очень часто поддерживаются этими же фирмами.
- Для борьбы с "программами-вирусами" чаще всего используют специально разработанные "программы-антивирусы", а не занимаются каждый раз переформатированием винчестера, как рекомендует "Наука и жизнь". "Программы-антивирусы" разрабатываются всеми ведущими фирмами мира в области программного обеспечения,- вновь взяли слово Чернышев и Кудрявцев.
Здесь есть одна неточность. Никто и не призывал "каждый раз" переформатировать винчестер. Напомним: этот совет рассматривался как крайний случай. В целом же вирусная проблема полностью соответствует хорошо известному единоборству брони и снаряда. Увеличение калибра снаряда всегда вызывало увеличение толщины брони, что, в свою очередь, приводим к увеличению калибра... И кто с уверенностью может сегодня сказать, что существует броня, способная противостоять любому снаряду, и что, в свою очередь, приводило к увеличению броню? Что-то аналогичное происходит и в "компьютерной вирусологии". Кто поручится, что та или иная антивирусная программа гарантирует защиту от всех многочисленных вирусов? С другой стороны, то, что "разрабатывается всеми ведущими фирмами", далеко не всегда бывает доступным нашим пользователям. Ведь даже большинство хорошо известных в нашем копьютерном мире пакетов не имеет правовой основы для использования (это тема для отдельного серьезного разговора), так как добыто "пиратским" путем (являющимся, как было уже отмечено выше, одним из путей проникновения к нам вирусов). Именно по этим причинам мы не сочли возможным рекомендовать такие программы нашим читателям. К тому же предложенные в 1/90 рекомендации имеют целью снизить вероятность заражения вирусами, а не обеспечить стопроцентную защиту.
У некоторых участников круглого стола недопонимание вызвала и наша фраза о том, что вирусы поражают помехозащищенность компьютера.
- О каких "помехах" речь? Все, что происходит после заражения,- не действие неведомых "помех", а результат вполне целенаправленной работы "программы-вируса",- воскликнул все тот же Макаров.
По-видимому, наш оппонент под словом "помеха" понимает какие-то шумы, трески, атмосферные разряды и т.п. Не затуманивая головы читателей премудростями теории помех, скажем, что такие помехи относятся к классу стохастических. Однако наряду с ними существует другая группа помех, называемых детерминированными. Это сигналы соседних мешающих станций, различного рода паразитные колебания и, наконец, специально предназначенные для этой цели сигналы (вспомним недавние "глушилки" радиоголосов). Так вот, упрощенно помехозащищенностью любого устройства (будь то радиоприемник, телевизор, магнитофон, компьютер или даже, как это ни покажется странным, фотоаппарат или обычная пишущая машинка) можно назвать его способность отсеивать из всей совокупности поступающих к нему сигналов (воздействий) только те, которые необходимы для его нормальной работы. Заметьте, не "для него", а "для его нормальной работы". Потому что преднамеренная помеха (которой в данном случае является вирус) тоже предназначена для компьютера, но чтобы нарушить его нормальную работу. Именно это имелось в виду, когда речь шла о помехозащищенности компьютера. О важности этой проблемы говорится, например, в третьем выпуске журнала "Компьютер Пресс" за этот год. В числе десяти вещей, "которые нам хотелось бы видеть в следующей версии DOS", названа проверка на наличие вирусов.
Наступило непродолжительное раздумье. И тут, собравшись с мыслями, выступил военнослужащий М.А.Цукерман. В своей пылкой речи он сказал много дельного, поэтому приводим ее почти полностью.
- По Москве,- начал он,- сейчас гуляют две очень хорошие программы: ANTI4US.COM и комплект INSTALL.COM, MAPMEM.COM, REMOVE.COM. Первая из них (ANTI4US.COM) при загрузке становится резидентной, то есть не изгоняющейся из ОЗУ при загрузке новых программ. Она держит под контролем память (реагирует на попытки других программ стать резидентными) и регистрирует все подозрительное: попытки форматирования, образование и дописывание файлов с расширением .ВАТ, .СОМ, .ЕХЕ и просто на первую попытку программы писать на диск. В таких случаях она прерывает работу программы и выводит на дисплей запрос: "Разрешать ли такой-то программе производить запись в такую-то программу?" Программа ANTI4US.COM сильно мешает работать, подобно резиновым перчаткам и марлевой повязке. Зато с ее помощью можно не только обнаружить присутствие вируса (например, когда программа вдруг начинает что-то писать в посторонний файл или по окончании работы пытается стать резидентной, хотя она для этого не предназначена), но и пользоваться заведомо зараженной программой, блокируя действия вируса. К тому же программа позволяет регулировать свою активность и ведет в памяти протокол работы машины с файлами и резидентными программами.
Комплект INSTALL.COM MAPMEM.COM. REMOVE.COM позволяет осуществлять контроль за "резидентной" памятью и при необходимости "вырезать" из нее резидентные программы. Утилита MAPMEM.COM ведет учет находящихся в памяти программ. Если по окончании работы программы в памяти останется файл с ее именем (или непоименованный), то данная программа скорее всего заражена. Утилита INSTALL.COM создает в памяти своеобразные "вехи", на которые ориентируется уничтожающая вирус программа REMOVE.COM.
В заключение своего выступления М.А.Цукерман дал несколько "антивирусных" советов:
- Некоторые меры антивирусной защиты можно осуществить при помощи распространенной надстройки над DOS PCTOOLS (3/90). Если какая-либо программа по сравнению с эталонной "выросла", можно поступить следующим образом:
1) Осуществить в PCTOOLS сравнение эталонного и зараженного файлов и обнаружить границу зараженного вирусом участка.
2) В редакторе PCTOOLS войти в первый зараженный сектор и найти какую-либо цепочку символов, характерную для вируса (в частности, в вирусе длиной около 1800 байт была выявлена буквенная цепочка SVMSDOS).
3) Запустить поиск этой цепочки по всему диску (лучше по всем дискам) и файлы с обнаруженным вирусом законсервировать до появления "программы-антивируса" или уничтожить.
Если вирус поражает файлы при их записи, можно попробовать поймать его на приманку - файл с расширением .СОМ, содержащий в качестве элемента текста одни пробел (его можно создать методом COPY CON. Если после запуска этого файла его длина увеличилась, вирус "пойман". Отныне содержимое файла - материал для поиска или составления "программы-антивируса".
- Но совет #6, данный на первом занятии "Школы", все же звучит странновато: ни один вирус не может заражать при копировании,- парировал Макаров.
Ему возразил наш коллега из Болгарии Веселин Бончен ("Компютър за вас", 1-2/90). Он сообщил о появлении в Болгарии (а значит, вскорости и у нас - вирусы, как известно, не знают таможенных барьеров) новых разновидностей этих зловредных микробов. Один из них, названный V651, способен заражать файлы с расширением .СОМ и .ЕХЕ даже при выполнении безобидной команды DIR. Рекомендуемый М.А.Цукерманом метод выявления вируса при помощи программы MAPMEM.COM, увы, не помогает. Другой, окрещенный как V1704, очень похож на своего мутанта с названием V1701. Но отличающие его три жалких байта делают бесполезными все многочисленные и хорошо известные лечебные программы, успешно сражающиеся с вирусом VI701. Третий, полубайтовый вирус, получивший название V512, способен вопреки мнению Макарова, при простом копировании заражать и копию, и оригинал. Причем он настолько любит расширение .СОМ, что цепляется не только за такие файлы, но и за все другие, расширение которых начинается с символов СО. Против него бессильны программа ANTI4US.EXE и мощные средства PCTOOLS, так что соперничество брони и снаряда, как видим, продолжается прямо на наших глазах. И мы подтверждаем свое мнение по поводу совета #6, ибо, не давая гарантий, он все же вселяет надежду на снижение вероятности заражения.
На проблеме компьютерных вирусов мы прерываем наш первый читательский круглый стол. Между тем эта проблема очень серьезна. Многие полагают, что если что-то и сможет сбросить с пьедестала популярности персональные компьютеры типа IBM, то это будет не что иное, как компьютерные вирусы.
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ЧЕТВЕРТОЕ, на котором завершается беседа о текстовых процессорах.
Наряду с Лексиконом в нашей стране более или менее широкое распространение получили все текстовые процессоры, используемые в мире. У каждого из них - свои особенности, свои достоинства. Многие (в качестве примера можно привести текстовый процессор из пакета Framework III) умеют вылавливать орфографические ошибки в текстах, сверяясь со словарем, где содержится несколько десятков или даже сотен тысяч слов. Получив команду на проверку текста, процессор сравнивает каждое слово со словами, хранящимися в словаре. Если очередного слова в словаре не оказывается, то процессор выделяет его цветом, прерывает работу и выводит фразу такого содержания: "Я извиняюсь. Здесь что-то не так. Выделенного слова в моем словаре нет. Вам предоставляется на выбор четыре варианта нашей дальнейшей работы: 1. отредактировать это слово, исправив ошибку; 2. посчитать, что моя эрудиция не так богата и я не знаю этого слова; 3. записать это слово в мой словарь, расширив его так, чтобы я на нем в следующий раз "не спотыкался"; 4. попросить меня вытащить из дебрей моей памяти слова, похожие по написанию с тем, какое выделено в тексте и содержит, на мой взгляд, ошибку".
Что происходит, если пользователь выбирает четвертый вариант, показано на рисунке.
В тексте редактируемой программы есть переменная Day (день). Но в одном месте (компьютер выделит это курсорной рамкой, в английском языке такого слова нет) программист написал это слово в русской транскрипции - Dey. Машина не нашла в своем словаре такого слова и выдала по просьбе пользователя восемь похожих по написанию, давая человеку возможность выбора: пользователь перемещает курсорную рамку на слово Day и нажимает клавишу Enter. После этого ошибка в тексте будет исправлена.
В только что приведенном примере речь шла о редактировании программ. Надо сказать, что программистам текстовые процессоры оказывают не меньше услуг, чем машинисткам. Ведь каждую программу приходится записывать в виде текста, а потом многократно редактировать, чтобы она заработала. Вот почему разработчики современных языков программирования заботятся о средствах редактирования программ на этих языках. Здесь уместно привести в качестве примера Quick Basic.
Если во введенной строке программы на этом языке содержится ошибка, то после нажатия клавиши Enter она выделяется курсорной рамкой, которая как бы призывает программиста исправить оплошность. А если вслед за этим нажать клавишу F1 (help, помощь), на экране появится полное описание оператора или несколько конструкций с типичными примерами его использования, один из которых программист может перенести в текст своей программы и отредактировать, приспособив к конкретному программному сюжету.
Короткий рассказ о следующем текстовом процессоре, Multy Edit, начнем со сценки, которую приходится наблюдать не так уж редко.
Человек сидит за компьютером, а рядом с клавиатурой лежат либо калькулятор, либо листок с черновиками арифметических выкладок. Что ж делать, если при работе с текстовым процессором нужно сложить, например, несколько чисел, а ответ внести в текст? "От жажды умираю над ручьем?!"
Удобный выход из положения предоставляет в таких случаях текстовый процессор Multy Edit, созданный фирмой American Cybernetics. При работе с ним можно вызвать на экран дисплея изображение действующего калькулятора, нажав одновременно клавиши Alt и F2, провести на нем нужные расчеты, а ответ перенести в текст. На рисунке виден отрывок из рассказа М.Твена "Мак-Вильямсы и автоматическая сигнализация от воров" (перевод А.Старцева). В рассказе речь идет о том, как в одном американском доме была установлена охранная сигнализация и что из этого вышло, а в приведенном отрывке недостает общей суммы счета.
Пользователь текстового процессора "МультиЭдит" при необходимости может "создать" на экране дисплея небольшой микрокалькулятор.
Изображение калькулятора клавишами "Вверх", "Вниз", "Влево" и "Вправо" можно передвинуть так, чтобы не загораживать нужный текст. При этом "подвал" экрана дисплея (предпоследняя строка) отмечает новые текущие нагрузки функциональных клавиш: F1 - подробное описание правил работы с калькулятором; F2 - очистка всех регистров калькулятора; F3 - очистка регистра X калькулятора; F4-F6 - логические операции над числами (и, или, исключающее или); F7 - выбор системы счисления (по умолчанию она десятеричная, но может быть заменена на двоичную, восьмеричную или шестнадцатеричную); F8 - смена знака у числа на экране калькулятора; F9 - работа с регистрами памяти (у калькулятора их 16 - от 0 до F). Работу на калькуляторе подробно нашим читателям описывать не нужно - о них много писалось и пишется в разделе "Человек и компьютер", так что ясно, как в результате расчетов получилось число 19.77. Им нужно будет заменить знаки вопроса в тексте рассказа на экране дисплея. После нажатия клавиши Esc (см. надпись на корпусе калькулятора) его изображение пропадет (но, что очень важно, состояние регистров калькулятора будет сохраняться и при новом к нему обращении, так что прерванные расчеты можно будет продолжить), "калькуляторное" меню заменяется на обычное, главное (последняя строка): F1 - получение подсказки; F2 - вызов дополнительного меню на "чердаке" (так программисты называют верхнюю часть экрана дисплея) с новыми "блюдами": обращение к магнитным дискам, распечатка готовых текстов, временный или окончательный выход в дисковую операционную систему и др.; F3 - запись текста на магнитный диск ("стреляный" пользователь на эту клавишу нажимает после ввода очередной порции текста - ведь так бывает обидно, когда пропадают результаты целого для работы из-за дурной компьютерной привычки "зависать" в самый неподходящий момент или из-за случайного обесточивания машины); F4 - смещение строки текста (например, первой строки абзаца) вправо; F5 - разметка положений курсора; F6 - поиск в тексте заданной цепочки символов (ключевого слова); F7 - выделение блока текста; F8 - запуск команд-макросов, которые, заметим походя, необязательно вводить каждый раз перед очередной работой с текстовым процессором, их можно записать на диск и при необходимости считывать и запускать; F9 - копирование выделенного с помощью клавиши F7 блока; F10 - перемещение фрагментов и блоков.
Можно почерпнуть много интересного, вглядываясь в "чердак" картинки на экране дисплея. Там записано, что использовалась версия Multy Edit под номером 2.01 (первое исправление второй версии), в данный момент задействован в работе калькулятор (Calc), клавиатура настроена на вставку (Insert) символов, а не на их замену, из 640 Кбайт ОЗУ машины свободно 311, работа велась 3 января 1990 года в 5 часов 1 минуту после обеда, сам текст был только что записан в корневой каталог диска D с именем "signal.mag", текущее положение курсора - 22-я позиция на 14-й строке.
В рекламной заставке текстового процессора Multy Edit сказано, что он относится к программным продуктам третьего поколения (поколения есть не только у вычислительных машин, но и у программных средств). В частности, это означает, что у него есть возможность работать с "мышью", отчего редактирование текстов очень облегчается.
Каждое новое поколение - это лучшая, чем раньше, помощь пользователю. Когда работаешь с Multy Edit, то нажатие клавиши "F1 - Help" не просто вызовет на дисплей описание текстового процессора, а будет, как говорится, бить в самую точку: давать именно ту подсказку, которая в данный момент требуется пользователю: правила обмена информацией с дисками, работа с принтером, смена шрифтов и многое другое. Заметим, что хороший пакет прикладных программ на 90 и более процентов состоит из текстовых файлов помощи пользователю с развитой системой перекрестных ссылок. Есть в пакете Multy Edit демонстрационная программа, которая со своей стороны, по принципу "лучше один раз увидеть, чем сто раз услышать", существенно облегчает работу с текстовым процессором, резко сокращает время обучения пользователя. Вспомним: даже самый опытный летчик после возвращения в часть из отпуска первые часы летает в спарке под руководством инструктора. Так и тут: если пользователь долго не работал с тем или иным программным продуктом, то ему достаточно "полетать с инструктором" - запустить демонстрационную программу, показывающую, на что способен данный текстовый процессор. Наконец, у Multy Edit есть возможность не только записать готовый текст на диск, распечатать его на принтере, но и передать по проводам другим машинам. Перефразируя поговорку, можно сказать, что "плох тот персональный компьютер, который не мечтает стать терминалом компьютерной сети". Вернемся в самое начало нашего занятия. Машинистке, подсевшей первый раз к компьютеру, нужно было полсотню раз отпечатать практически один и тот же текст и отправить его по почте в адрес приглашенных на совещание. Но если компьютер подсоединен к сети, то готовые тексты можно "сбрасывать" не на принтер, а в компьютеры адресатов.
Фирма Microsoft предлагает для обработки текстов систему Microsoft Word. Здесь большинство команд выполняется нажатием только одной клавиши. Ошибочную команду можно быстро исправить, используя также одну клавишу. Имеется "мышь", словарь для орфографической проверки текста; кроме того, для специальных выражений можно создавать свой личный словарь, который используется для проверки по требованию. Имеется возможность проводить маленькие "калькуляторные" вычисления, не прерывая работу над текстом. Короче говоря, система Microsoft Word no своим достоинствам не уступает системе Mtdti Edit.
Разговор о текстовом процессоре MSWord закончим в форме интервью, которое один из ведущих занятие (В) взял у пользователя (П), чья профессия непосредственно связана с применением этого программного продукта.
В. Почему выбирая текстовый процессор, вы остановились на MSWord?
П. Здесь нет ничего удивительного. Наверное, 90 процентов отечественных профессиональных пользователей компьютеров типа IBM PC общаются со своими машинами посредством именно этого процессора. Я имею в виду работников компьютеризованных редакций газет, журналов и издательств, к коим принадлежу и я сам.
В. А почему так получилось?
П. Главное, пожалуй, в том, что MSWord из всех популярных западных текстовых процессоров наиболее приспособлен к кириллице. К нему очень просто подключить различные русские шрифты для лазерных принтеров, орфографические словари для поиска опечаток и тому подобное. MSWord легко освоить и в то же время он по своим возможностям приближается к настольным издательским системам - таким, как Ventura или Pagemaker. В процессор MSWord, в частности, в его версию 5,0, встроена система WYSIWYG (визивиг - what you see is what you get - что вы видите, то вы и получите), без которой я как без рук. Она позволяет просмотреть на экране дисплея готовую страницу с рисунками, с различными шрифтами, с полями... При нашем дефиците бумаги и малом ресурсе принтеров система WYSIWYG просто незаменима! Популярности процессора MSWord способствует и то, что фирма-разработчик Microsoft имеет в Москве филиал - совместное предприятие "Диалог".
В. Чего вам не хватает в этом процессоре?
П. Многого, конечно. Но я верю, что со временем положение будет все более исправляться. Microsoft совместно с "Диалогом" сейчас разрабатывают новые версии MSWord. Только бы суметь их приобрести!
Быть может, эти высказывания во славу MSWord вызовут зависть у представителей других профессий - скажем, у математиков, имеющих дело с весьма специфичными текстами. Но разве на продуктах фирмы Microsoft свет клином сошелся?
Американская фирма Horstmann Software Design разработала научный текстовый процессор Chiwriter (по-русски читается Чирайтер). Он имеет двадцать шрифтов, позволяющих выводить на экран дисплея или на принтер, работающий в графическом режиме, почти 2000 символов. Кроме того, есть возможность изменять любой из имеющихся шрифтов или создать новый. С помощью Чирайтера можно вводить в память компьютера и обрабатывать очень сложные изображения. Особенно удобно использовать Чирайтер в работе с физическими и математическими формулами.
Завершаем наш урок в "Школе" о текстовых процессорах показом таблицы из второго выпуска обозрения "Компьютер Пресс". В нее сведены параметры восьми самых популярных на Западе (по мнению журнала "PC World") текстовых процессоров.
Сравнительные характеристики некоторых текстовых процессоров.
Команда UNDO (см. верхнюю часть "боковика" таблицы) позволяет отменить действие предыдущей команды. Пользователь ЭВМ, например, заменил во всем тексте слова "текстовый процессор" на аббревиатуру "ТП", а потом спохватился, поняв, что этого делать не стоило бы. Не беда! Команда UNDO позволит восстановить исходный текст без сокращений. Столь нужная команда - еще одно проявление дружественности компьютера к человеку.
Словари, которые перечисленные текстовые процессоры используют при поиске опечаток, конечно, состоят не из русских слов. Но сейчас у нас в стране действует множество государственных и кооперативных фирм, создающих русские орфографические компьютерные словари (по тематикам: информатика, химия, медицина н т.д.), совместимые с западными текстовыми процессорами. Объявления о продаже таких словарей часто можно увидеть в рекламных отделах многих газет, не говоря уже о специальных компьютерных изданиях.
Хороший текстовый процессор должен обладать качествами литературного рецензента: по просьбе пользователя компьютер может проанализировать набранный текст и свести в таблицу стиля какие-то характеристики - частоту использования тех или иных слов, например. Если пользователь каким-то словом злоупотребляет, то компьютер подберет ему замену, "выудив" из своего словаря синонимы.
На магнитном диске тексты могут храниться в разных форматах, в зависимости от того, с помощью каких программных средств они были созданы (интегрированный пакет LOTUS 1-2-3, система управления базой данных DBASE и т.д.). Текстовый процессор, претендующий на любовь пользователя, должен разбираться в чужих файлах. Об остальных параметрах текстовых процессоров мы умолчим. Пусть слушатели "Школы" будут заинтригованы,- мы об этих качествах текстовых процессоров поговорим позже.
РЕДАКЦИЯ получила много откликов на первое занятие "Школы", и это дает возможность вернуться к нему за круглым столом. Ведут импровизированное заседание москвичи В.Ф.ОЧКОВ и В.С.КИРДОДА, под руководством которых проходило первое занятие.
Итак, друзья, давайте рассядемся поудобнее. Мы слышим, как сквозь неизбежный в начале каждого дела шум все настойчивее раздаются голоса недоумения: почему мы избрали для рассмотрения компьютер IBM PC? Почему оставляем "за кадром" множество других популярных машин?
Слово взял сотрудник Института терапии из Новосибирска Е.П.Тарасенко и попросил поговорить про БК-0010; затем А.Ю.Кузнецов из Павлодара предложил немедленно опубликовать для самостоятельного изготовленяя схему компьютера SPECTRUM; M.К.Садыкова из Усть-Илимска заявила, что интересуется машинами СМ 1600.05 и СМ 1420.09...
Но тут из забытого кем-то синтезатора речи раздался голос Козьмы Пруткова: "Никто не обнимет необъятного". Что верно, то верно, тем более что рубрика занимает в журнале всего семь страниц. Протягивая ножки по этой одежке, мы решили остановиться на какой-то одной модели. И поскольку семейство IBM во всем мире считается своеобразным эталоном персонального компьютера, то ему и было отдано предпочтение. Однако, учитывая несомненную правоту владельцев и пользователей других типов, мы решили в дальнейшем по мере возможности помещать публикации о самых разных компьютерах.
В ответ на это обещание И.В.Козниов из Москвы тотчас вопросил: где можно купить приличный компьютер и сколько он стоит? В это время подошла пора перерыва, и мы, не мудрствуя лукаво, спустились вниз, пересекли улицу Кирова и вошли в комиссионный магазин. Там в роскошном полумраке сверкали матовой пластмассой клавиатур и дисководов гордые "Экстишки" и "Эйтищки", "Макинтоши" и "Коммодоры". Неприступные продавцы отрешенно гоняли по цветным дисплеям кошек и кладоискателей. Скромные ценники лишали каких бы то ни было иллюзий. Читателей, не бывавших в подобных магазинах и стоя читающих наш журнал, просим сесть. На простеньком "Атари" висела табличка с цифрой 27000. Конечно, не в копейках. На другой - 32000. И так от 11000 до 145000. "Мышь" - пластмассовая коробочка с полудюжиной контактов - стоила 1200. С тем и вернулись обратно за свой стол.
Наш журнал, кстати, в 4/90 дал своеобразную шкалу стоимости средств вычислительной техники в комиссионных магазинах; была также приведена ставка таможенных пошлин на ввозимую импортную технику-компьютеры, дисководы, чипы, дискеты, дисплеи и др.
Между тем за столом опять возник шум. Сразу в несколько голосов - Г.А.Меренков из Семипалатинска, П.В.Толкачев из Барнаула, В.А.Трушин из Ростова-на-Дону и многие другие потребовали ответить на вопрос: как быть с трехполюсными вилками компьютера, о которых говорилось в первом номере журнала? Что ж, давайте подробнее остановимся на этом, как нам казалось, простом вопросе. Вилки эти бывают разной конструкции, но обязательно с заземляющим контактом. Можно встретить трехполюсные вилки либо с плоскими, либо с круглыми штырьками; но чаще всего встречаются трехконтактные вилки с двумя круглыми, чуть более толстыми, чем обычно, третий же, заземляющий контакт у таких вилок выполнен в виде двух плоских контактных пружин, расположенных на цилиндрической части корпуса вилки. Эта ее часть входит в цилиндрическое же углубление специальной розетки, где, кроме гнезд, для токовых штырей имеются заземляющие контакты, взаимодействующие с упомянутыми контактными пружинами. В обыкновенную розетку такую вилку включить нельзя, так как из-за увеличенного диаметра токовые штыри войти в ее гнезда не могут. Для таких вилок годятся двухполюсные розетки с заземляющим контактом РШ-Ц-20-0-01-10/220 или розетки, продающиеся в магазинах электротоваров цо цене 80 копеек за штуку, производства завода (а может, фабрики или даже артели) под названием REMLR. Для вилок с тремя плоскими штырьками можно использовать розетки РШ-П-20-0-01-10/220, а для вилок с тремя круглыми штырьками - розетки РШ-Ц-20-0-54-10/220. (Где они продаются, не знаем. Но если вы смогли раздобыть компьютер, то это для вас, уверены, проблемой не будет). Из трех закрепленных на изоляционной плате розеток, электрического шнура и обычной вилки делают удлинитель. Далее от имеющегося у каждого дома очага заземления в помещение, где находится компьютер, протягивают толстый провод и приваривают (или припаивают) его к специально заделанному в стене болту. К нему при помощи обыкновенной клеммы подсоединяют гибкий медный провод, который подключают к заземляющим контактам розеток нашего самодельного удлинителя. Вилки всех агрегатов компьютера включают в розетки этого удлинителя, а его вилку - в обычную сетевую розетку. Компьютер готов к работе. Очень важно, чтобы вся ваша компьютерная система (центральный блок, принтер, графопостроитель и пр.). "сидела" на одной фазе электросети. Иначе при определенных условиях возможны сбои зависания и даже возникновения серьезных повреждений.
Некоторое время спустя за столом разгорелось бурное обсуждение проблемы компьютерных вирусов. От имени группы работающих в области информатики с просьбой рассказать о вирусах и методах борьбы с ними выступил В.Ф.Любашев из Алма-Аты. Не успел начаться этот разговор, как В.И.Чернышев и Д.В.Кудрявцев из Люберец принялись опровергать предупреждение журнала об опасности вирусного разрушения микросхем и участков дисплея.
- До сих пор,- добавил москвич А.А.Макаров,- я ни разу не слышал о вирусах, прожигающих микросхемы или участки экрана дисплея, хотя, справедливости ради, отмечу, что в принципе такой вирус возможен.
Это признание делает нам честь, как впервые открывающим нашему оппоненту глаза на проблему, возможность которой констатирует и он сам. И как бы в подтверждение этого с другой стороны стола раздался голос Э.М.Пройдакова из Москвы. В предложенной им совместно с Д.Е.Орловым классификации вирусов он назвал "вандалами" вирусы, разрушающие аппаратную часть ЭВМ. "Особенно подвержены выводу из строя,- сказал Пройдаков,- винчестеры. К сожалению, такие случаи в Москве - в этом году участились".
В целом мысли, высказанные Э.М.Пройдаковым, заслуживают того, чтобы вернуться к ним в одном из выпусков нашей "Школы". Вообще-то заявление типа "компьютерный вирус никогда не способен сделать то-то и то-то" несет несколько провокационный характер. Не исключено, что найдется программист-фанат, который может бросить все и засесть за создание вируса с ранее невиданными свойствами.
Авторами компьютерных вирусов, как известно, являются программисты двух типов. Для первых созданный ими вирус - средство самоутверждения: "Вот, мол, какой я ас, если смог создать такую хитроумную программу!" Для вторых компьютерный вирус - одно из средств защиты программных продуктов от несанкционированной перезаписи. Фирмы-разработчики математического обеспечения ЭВМ часто предупреждают своих клиентов, чтобы они не копировали купленные программы, а обращались бы за копиями опять же к ним. Иначе может проснуться "защитный" вирус, последствия жизнедеятельности которого непредсказуемы. Слухи о вирусах-"вандалах" очень часто поддерживаются этими же фирмами.
- Для борьбы с "программами-вирусами" чаще всего используют специально разработанные "программы-антивирусы", а не занимаются каждый раз переформатированием винчестера, как рекомендует "Наука и жизнь". "Программы-антивирусы" разрабатываются всеми ведущими фирмами мира в области программного обеспечения,- вновь взяли слово Чернышев и Кудрявцев.
Здесь есть одна неточность. Никто и не призывал "каждый раз" переформатировать винчестер. Напомним: этот совет рассматривался как крайний случай. В целом же вирусная проблема полностью соответствует хорошо известному единоборству брони и снаряда. Увеличение калибра снаряда всегда вызывало увеличение толщины брони, что, в свою очередь, приводим к увеличению калибра... И кто с уверенностью может сегодня сказать, что существует броня, способная противостоять любому снаряду, и что, в свою очередь, приводило к увеличению броню? Что-то аналогичное происходит и в "компьютерной вирусологии". Кто поручится, что та или иная антивирусная программа гарантирует защиту от всех многочисленных вирусов? С другой стороны, то, что "разрабатывается всеми ведущими фирмами", далеко не всегда бывает доступным нашим пользователям. Ведь даже большинство хорошо известных в нашем копьютерном мире пакетов не имеет правовой основы для использования (это тема для отдельного серьезного разговора), так как добыто "пиратским" путем (являющимся, как было уже отмечено выше, одним из путей проникновения к нам вирусов). Именно по этим причинам мы не сочли возможным рекомендовать такие программы нашим читателям. К тому же предложенные в 1/90 рекомендации имеют целью снизить вероятность заражения вирусами, а не обеспечить стопроцентную защиту.
У некоторых участников круглого стола недопонимание вызвала и наша фраза о том, что вирусы поражают помехозащищенность компьютера.
- О каких "помехах" речь? Все, что происходит после заражения,- не действие неведомых "помех", а результат вполне целенаправленной работы "программы-вируса",- воскликнул все тот же Макаров.
По-видимому, наш оппонент под словом "помеха" понимает какие-то шумы, трески, атмосферные разряды и т.п. Не затуманивая головы читателей премудростями теории помех, скажем, что такие помехи относятся к классу стохастических. Однако наряду с ними существует другая группа помех, называемых детерминированными. Это сигналы соседних мешающих станций, различного рода паразитные колебания и, наконец, специально предназначенные для этой цели сигналы (вспомним недавние "глушилки" радиоголосов). Так вот, упрощенно помехозащищенностью любого устройства (будь то радиоприемник, телевизор, магнитофон, компьютер или даже, как это ни покажется странным, фотоаппарат или обычная пишущая машинка) можно назвать его способность отсеивать из всей совокупности поступающих к нему сигналов (воздействий) только те, которые необходимы для его нормальной работы. Заметьте, не "для него", а "для его нормальной работы". Потому что преднамеренная помеха (которой в данном случае является вирус) тоже предназначена для компьютера, но чтобы нарушить его нормальную работу. Именно это имелось в виду, когда речь шла о помехозащищенности компьютера. О важности этой проблемы говорится, например, в третьем выпуске журнала "Компьютер Пресс" за этот год. В числе десяти вещей, "которые нам хотелось бы видеть в следующей версии DOS", названа проверка на наличие вирусов.
Наступило непродолжительное раздумье. И тут, собравшись с мыслями, выступил военнослужащий М.А.Цукерман. В своей пылкой речи он сказал много дельного, поэтому приводим ее почти полностью.
- По Москве,- начал он,- сейчас гуляют две очень хорошие программы: ANTI4US.COM и комплект INSTALL.COM, MAPMEM.COM, REMOVE.COM. Первая из них (ANTI4US.COM) при загрузке становится резидентной, то есть не изгоняющейся из ОЗУ при загрузке новых программ. Она держит под контролем память (реагирует на попытки других программ стать резидентными) и регистрирует все подозрительное: попытки форматирования, образование и дописывание файлов с расширением .ВАТ, .СОМ, .ЕХЕ и просто на первую попытку программы писать на диск. В таких случаях она прерывает работу программы и выводит на дисплей запрос: "Разрешать ли такой-то программе производить запись в такую-то программу?" Программа ANTI4US.COM сильно мешает работать, подобно резиновым перчаткам и марлевой повязке. Зато с ее помощью можно не только обнаружить присутствие вируса (например, когда программа вдруг начинает что-то писать в посторонний файл или по окончании работы пытается стать резидентной, хотя она для этого не предназначена), но и пользоваться заведомо зараженной программой, блокируя действия вируса. К тому же программа позволяет регулировать свою активность и ведет в памяти протокол работы машины с файлами и резидентными программами.
Комплект INSTALL.COM MAPMEM.COM. REMOVE.COM позволяет осуществлять контроль за "резидентной" памятью и при необходимости "вырезать" из нее резидентные программы. Утилита MAPMEM.COM ведет учет находящихся в памяти программ. Если по окончании работы программы в памяти останется файл с ее именем (или непоименованный), то данная программа скорее всего заражена. Утилита INSTALL.COM создает в памяти своеобразные "вехи", на которые ориентируется уничтожающая вирус программа REMOVE.COM.
В заключение своего выступления М.А.Цукерман дал несколько "антивирусных" советов:
- Некоторые меры антивирусной защиты можно осуществить при помощи распространенной надстройки над DOS PCTOOLS (3/90). Если какая-либо программа по сравнению с эталонной "выросла", можно поступить следующим образом:
1) Осуществить в PCTOOLS сравнение эталонного и зараженного файлов и обнаружить границу зараженного вирусом участка.
2) В редакторе PCTOOLS войти в первый зараженный сектор и найти какую-либо цепочку символов, характерную для вируса (в частности, в вирусе длиной около 1800 байт была выявлена буквенная цепочка SVMSDOS).
3) Запустить поиск этой цепочки по всему диску (лучше по всем дискам) и файлы с обнаруженным вирусом законсервировать до появления "программы-антивируса" или уничтожить.
Если вирус поражает файлы при их записи, можно попробовать поймать его на приманку - файл с расширением .СОМ, содержащий в качестве элемента текста одни пробел (его можно создать методом COPY CON. Если после запуска этого файла его длина увеличилась, вирус "пойман". Отныне содержимое файла - материал для поиска или составления "программы-антивируса".
- Но совет #6, данный на первом занятии "Школы", все же звучит странновато: ни один вирус не может заражать при копировании,- парировал Макаров.
Ему возразил наш коллега из Болгарии Веселин Бончен ("Компютър за вас", 1-2/90). Он сообщил о появлении в Болгарии (а значит, вскорости и у нас - вирусы, как известно, не знают таможенных барьеров) новых разновидностей этих зловредных микробов. Один из них, названный V651, способен заражать файлы с расширением .СОМ и .ЕХЕ даже при выполнении безобидной команды DIR. Рекомендуемый М.А.Цукерманом метод выявления вируса при помощи программы MAPMEM.COM, увы, не помогает. Другой, окрещенный как V1704, очень похож на своего мутанта с названием V1701. Но отличающие его три жалких байта делают бесполезными все многочисленные и хорошо известные лечебные программы, успешно сражающиеся с вирусом VI701. Третий, полубайтовый вирус, получивший название V512, способен вопреки мнению Макарова, при простом копировании заражать и копию, и оригинал. Причем он настолько любит расширение .СОМ, что цепляется не только за такие файлы, но и за все другие, расширение которых начинается с символов СО. Против него бессильны программа ANTI4US.EXE и мощные средства PCTOOLS, так что соперничество брони и снаряда, как видим, продолжается прямо на наших глазах. И мы подтверждаем свое мнение по поводу совета #6, ибо, не давая гарантий, он все же вселяет надежду на снижение вероятности заражения.
На проблеме компьютерных вирусов мы прерываем наш первый читательский круглый стол. Между тем эта проблема очень серьезна. Многие полагают, что если что-то и сможет сбросить с пьедестала популярности персональные компьютеры типа IBM, то это будет не что иное, как компьютерные вирусы.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
Какие-то огрызки
8/90
КОМПЬЮТЕРНАЯ ГРАМОТНОСТЬ ПЛЮС ГРАМОТНЫЙ КОМПЬЮТЕР
Одно время шла дискуссия - разрешать ли в начальной школе пользоваться микрокалькуляторами, или сосредоточить усилия на том, чтобы научить будущего программиста вести расчеты "в столбик" на бумажке. Педагогическая проблема еще не решена, а через несколько лет, похоже, возникнет новая - разрешать ли пользоваться, например, для сочинений "грамотным компьютером"!
Кандидат экономических наук А.ПРИГОЖИЙ.
В любом обществе одни из критериев, по которому оценивают уровень культуры человека,- это его грамотность, то есть умение правильно, без ошибок писать на родном языке.
Если грамматическая ошибка встретилась в письме к другу, это может его огорчить или рассмешить, но вряд ли она приведет к сколь бы то ни было серьезным последствиям. Неприятно, когда опечатка встречается в книге, которую читают многие тысячи людей, но особенно важно, чтобы ошибки не было в документе, здесь она иной раз может вызвать неверное толкование всего текста.
С появлением на Западе персональных компьютеров их практически сразу стали использовать как электронные пишущие машинки. Набранный с клавиатуры текст можно сколько угодно читать на экране, исправлять случайные ошибки, опечатки, а лишь затем печатать исправленный вариант на принтере, получая чистовик без единой помарки.
Компьютер взял на себя и другие обязанности. Архив документов или рукопись книги может храниться в его памяти на жестком магнитном диске - "винчестере", тогда нетрудно за несколько секунд отыскать нужный документ по названию, дате его создания или даже по нескольким ключевым словам.
Постепенно появились специальные программы, облегчающие подготовку текстов с помощью компьютера,- так называемые "текстовые процессоры". В отличие от обычной пишущей машинки компьютер с программой текстового процессора превращается, по сути, в небольшое издательство на столе. Можно не только набирать текст, но и размещать его на странице в несколько колонок, выбирать необходимые шрифты, включать в текст таблицы.
Работать с текстами новым, электронным способом оказалось настолько удобно, что сегодня едва ли не 70% всех компьютеров в мире используются именно для обработки текстов.
Заинтересовались компьютерами н руководители разных рангов, начиная от хозяев небольших фирм, где работают всего 2-3 человека, до управляющих и директоров крупных компаний. Как сообщали в свое время западные журналы, здесь и возникла на какое-то время неожиданная трудность - руководитель, прекрасно разбирающийся с самыми сложными коммерческими проблемами, нередко не мог справиться с непослушными запятыми или грамотно написать конфиденциальное деловое письмо.
На помощь вновь пришла вычислительная техника. Составить программу, которая взяла бы на себя корректорские функции, было значительно проще, чем повысить уровень грамотности руководителей всех рангов. Так появились программы, проверяющие правильность переносов и расстановку знаков препинания, автоматически следящие за тем, чтобы в тексте не появлялись слова с ошибками. Компьютер стал грамотным.
Сегодня персональные компьютеры постепенно заменяют пишущие машинки и в наших учреждениях. Многие западные программы, в том числе и текстовые процессоры, можно модифицировать для работы на русском языке. Этого, однако, нельзя сказать о программах, проверяющих грамотность.
Воспользоваться чужим опытом и механически заменить английские слова на русские невозможно. Англоязычные программы основаны на сопоставлении слов, набранных с клавиатуры, со словами из словаря, хранящегося в памяти компьютера. В наиболее популярных системах такие словари содержат около 100000 слов. Для русского языка понадобился бы словарь в десять раз большего объема, поскольку в него пришлось бы записать все возможные формы каждого слова: в частности, в отличие от английского в русском языке одни и те же слова могут иметь разнообразные окончания.
Такой гигантский словарь займет в памяти компьютера слишком много места, а работа электронного корректора замедлится настолько, что вряд ли он нашел бы широкое использование.
Выберем в качестве примера слово "вести". Кроме этой, глагол имеет еще 18 различных форм: в настоящем времени - веду, ведешь, ведет, ведем, ведете, ведут; в прошедшем времени - вел, вела, вело, вели; в форме причастия - ведущий, ведомый, ведший, веденный; в форме деепричастия - ведя, ведши; в повелительном наклонении - веди, ведите. Вдобавок, слово с таким, же написанием, но иначе поставленным ударением - вести,- это одна из форм существительного "весть", которое, в свою очередь, имеет дюжину форм. Ясно, что кроме многообразия форм машине придется иметь дело и с многозначностью слов.
Убедившись, что воспользоваться, зарубежным опытом в данном случае не удастся, разработчики ОРФО (так названа программная система-корректор) занялись созданием полностью оригинальной программы. Если попытаться численно оценить труд группы квалифицированных программистов, лингвистов, математиков и дизайнеров московского научно-технического кооператива "Информатик", то получится несколько десятков человеко-лет. Сегодня, когда система готова к использованию, интересно хотя бы перечислить основные возможности, которые предоставляет ОРФО.
"Грамотным" можно сделать любой персональный компьютер, совместимый с IBM РС ХТ/АТ. Система резидентна, то есть небольшая часть программы постоянно находится в оперативной памяти компьютера, а значит, в любой необходимый момент, нажав пару клавиш, можно обратиться к помощи электронного корректора, какая бы программа в этот момент ни выполнялась. Это используется прежде всего тогда, когда идет редактирование текста.
Как работает ОРФО? Предположим, составляется текст договора. Часть текста не содержит отличий от предыдущего варианта, другая часть набирается заново. Сомнения вызывает лишь одна строка, или, например, абзац. Пометив его на экране, остается обратиться к программе-корректору, и она укажет ошибку в написании слова, в согласовании слов в предложении или на опечатку в пунктуации. Любая неточность будет выделена на экране иным цветом, появятся и пояснения - в чем именно заключается ошибка. Программа способна проверить и весь текст на экране.
Хотя словарь системы содержит более 120 тысяч основ русских слов, нельзя исключить возможность того, что в тексте встретится слово, незнакомое системе. Так бывает, например, с текстами, изобилующими специальной терминологией. В этом случае в работу включается блок самообучения. Компьютер задает человеку три-четыре вопроса, выясняя различные формы незнакомого слова. Вопросы, появляющиеся на экране, предельно конкретны, а вводить нужно не все слово целиком, а лишь его изменяемую часть, добавляя окончание к светящейся на экране основе. При неточных ответах электронный корректор заметит подвох (в этом проявляются интеллектуальные черты системы). После того, как на все вопросы дан правильный ответ, на экране как бы "в награду" появляются все возможные формы данного слова (их может быть до двадцати).
Проверяются и все сложные случаи, такие, например, как написание слов через дефис ("пол-лимона"), оценивается согласование слов, причем не только попарное - по роду, числу и падежу, но и согласованность слов предложения в целом.
Программа способна работать еще в двух режимах: автопроверки и подсказки. Автопроверка включается при вводе текста с клавиатуры. Работает она все время, пока идет набор, и служит для оперативной проверки правописания слов. Стоит системе заметить ошибку, звучит сигнал. Чаще всего это опечатка, ошибочное нажатие не той или лишней клавиши, которое можно сразу же и исправить. Но иногда встречается ситуация, когда ошибка найдена, слово выделено на экране, а человек не знает, как исправить ошибку. В подобных случаях выручает режим подсказки. Включив его, можно получить на экране варианты слов, близких по написанию к тому, в котором допущена ошибка, и выбрать нужное слово.
Словарь системы нетрудно расширить, например, добавить в него специальные термины по каким-либо узким областям знаний.
Создание грамотных текстов - это не единственная область, для которой предназначена ОРФО. Особую помощь программа способна оказать всем, изучающим русский язык как иностранный. Система позволяет разобраться в многозначности и согласованиях слов, а также помочь в анализе форм спряжения и склонения ранее неизвестного слова. Работая с "грамотным" компьютером, обучаемый не стесняется делать и исправлять ошибки, в любой момент задавать электронному преподавателю вопросы.
Впрочем, система способна облегчить работу не только ученика, но и учителя. Если использовать программу для контроля знаний, преподаватель освобождается от утомительной и едва ли не чисто механической работы по проверке заданий и упражнений. На базе ОРФО можно создавать обучающие и тестовые компьютерные программы, разнообразные грамматические упражнения. Элементы игры, которые использование компьютера вносит в процесс обучения, делают занятия эффективными.
Заметим, что научные разработки, положенные в основу системы, универсальны. Небольшая модификация позволит использовать программу и для других языков, для которых характерны изменяемые окончания слов (так называемые флективные языки), например, для языков угро-финской группы: финского, венгерского и т.п.
В отличие от дефицитных промышленных товаров, программного товара хватит на всех: систему ОРФО можно приобрести в Москве (справки по телефонам 299-99-04, 290-35-24 или по адресу: 103104, Москва, Остужева 7, корп.2, кооператив "Информатик"). Для специалистов добавим, что при размещении на винчестере программа занимает 1.9 Мбайт, а в оперативной памяти - 145 Кбайт. Немаловажно и то, что программа совместима с любым текстовым редактором.
НЕ ТОЛЬКО ПРОГРАММЫ
Многие владельцы компьютеров "Электроника БК" знают НПК "СБИС" как организацию, тиражирующую различные программы для этого компьютера. Специально для школ, где работает комплекс учебно-вычислительной техники КУВТ-86 (Бейсик), подготовлен пакет СБИС-КУВТ. Программы пакета запускаются ма ученических компьютерах БК-0010.01 после загрузки с учительской машины ДВК. Выбрать нужную программу помогает "меню".
В состав пакета на 15 дискетах включено свыше 200 системных, обучающих, тестовых, прикладных, демонстрационных и игровых программ для БК-0010.01 на Бейсике, в кодах и на Т-языке.
В "СБИС" можно заказать три выпуска информационного бюллетеня "БИС" для пользователей БК, а также Приложение 1 - брошюру Радченко Л. "Электроника БК" + магнитофон", 62с. Стоимость бюллетеня в типографском исполнении - 1р., в электронном виде (на дискетте) - 12р., приложения - 3р.
Также тиражируется комплект системных программ, позволяющих существенно повысить эффективность использования комплекса КУВТ-86 за счет разнообразных функций и удобства работы с файлами.
Желающие могут обращаться за подробным бесплатным каталогом тиражируемых программ по адресу: 167024, г.Сыктывкар, а/я 430, НПК СБИС.
ПОЛИГОН НАПРОКАТ
Научные организации, конструкторские бюро и кооперативы могут провести испытания в условиях измененного газового состава при давлении от 760 до 1е-6мм рт.ст.; температуре от -50 до 130oС, относительной влажности 10-90%, а также в среде, содержащей радиоактивные аэрозоли, различных материалов, покрытий, конструкторских узлов и деталей, блоков и модулей, систем и установок, электронных приборов и приборов точной механики, строительных материалов, продукции химической, легкой, пищевой, фармацевтической и других отраслей промышленности. Для этого свои услуги на коммерческой основе предлагает комплекс "Защита" Института биофизики Минздрава СССР.
Адрес: 123182, Москва, ул. Живописная 46, Институт биофизики Минздрава СССР, комплекс "Защита". Тел.: 190-56-67, 190-48-58, р/с #360917, ОПЕРУ при Правлении ЖСБ г.Москвы, код МФО #29909, код банка 299093.
ОБЛАДАТЕЛЯМ
МИКРОЭВМ "СПЕЦИАЛИСТ"
Значительно сократить затраты времени при проектировании радиоэлектронных устройств позволяет программа автоматизированного проектирования печатных плат.
Программа самостоятельно разводит до тысячи связей на плате размером до 280кв.см, при этом количество элементов, выбранных из 65 различных типов, может достигать 250. "Специалист" автоматически разводит до 80% связей. Шаг координатной сетки выбирает оператор, а результаты трассировки при необходимости выводятся на принтер.
За справками обращаться по адресу: 656099, г.Барнаул, а/я 108.
9/90
ПРОГРАММНАЯ ОРБИТА
Программа VR предназначена для профилактики и защиты IBM-совместимой техники от компьютерных вирусов. Программа непрерывно обновляется по мере поступления обнаруженных в СССР, Европе и США новых вирусов, так, VR V3.50 обнаруживает 35 различных вирусов и устраняет 22 из них. Новая версия 3.51 обнаруживает 37 вирусов и позволяет избавиться от 25. Цена программы - 950руб.
Система ProtEK способна защитить винчестер, каталог и файл от вирусов или несанкционированного доступа. Цена последней версии системы V1.72 - 950руб.
Быстро вводить в ЭВМ типографский или машинописный текст с помощью сканера или телекамеры позволяет программная система Reader V1.00 ценой 20тыс.руб.
Универсальная среда программирования XSimp предназначена для создания экспертных систем, управляющих языков, систем автоматизированного проектирования и обработки текстов. Система XSimp - это диалект языка Лисп, снабженный надстройками для объектно-ориентированного и логического программирования, позволяющий подключать модули, разработанные на других языках программирования. Версии программы для IBM, VAX и Macintosh можно приобрести по цене от 6 до 10тыс.руб.
Программа InSurf в диалоге с пользователем способна построить проекции поверхностей, заданных функциями двух переменных, карты изолиний и вертикальные сечения. Диалог возможен на английском и русском языках, изображение можно редактировать. Цена последней версии (V1.41) - 2450руб.
Для получения подробной информации можно обращаться по адресу: 103498, Москва, Зеленоград 443, Эпсилон.
8/90
КОМПЬЮТЕРНАЯ ГРАМОТНОСТЬ ПЛЮС ГРАМОТНЫЙ КОМПЬЮТЕР
Одно время шла дискуссия - разрешать ли в начальной школе пользоваться микрокалькуляторами, или сосредоточить усилия на том, чтобы научить будущего программиста вести расчеты "в столбик" на бумажке. Педагогическая проблема еще не решена, а через несколько лет, похоже, возникнет новая - разрешать ли пользоваться, например, для сочинений "грамотным компьютером"!
Кандидат экономических наук А.ПРИГОЖИЙ.
В любом обществе одни из критериев, по которому оценивают уровень культуры человека,- это его грамотность, то есть умение правильно, без ошибок писать на родном языке.
Если грамматическая ошибка встретилась в письме к другу, это может его огорчить или рассмешить, но вряд ли она приведет к сколь бы то ни было серьезным последствиям. Неприятно, когда опечатка встречается в книге, которую читают многие тысячи людей, но особенно важно, чтобы ошибки не было в документе, здесь она иной раз может вызвать неверное толкование всего текста.
С появлением на Западе персональных компьютеров их практически сразу стали использовать как электронные пишущие машинки. Набранный с клавиатуры текст можно сколько угодно читать на экране, исправлять случайные ошибки, опечатки, а лишь затем печатать исправленный вариант на принтере, получая чистовик без единой помарки.
Компьютер взял на себя и другие обязанности. Архив документов или рукопись книги может храниться в его памяти на жестком магнитном диске - "винчестере", тогда нетрудно за несколько секунд отыскать нужный документ по названию, дате его создания или даже по нескольким ключевым словам.
Постепенно появились специальные программы, облегчающие подготовку текстов с помощью компьютера,- так называемые "текстовые процессоры". В отличие от обычной пишущей машинки компьютер с программой текстового процессора превращается, по сути, в небольшое издательство на столе. Можно не только набирать текст, но и размещать его на странице в несколько колонок, выбирать необходимые шрифты, включать в текст таблицы.
Работать с текстами новым, электронным способом оказалось настолько удобно, что сегодня едва ли не 70% всех компьютеров в мире используются именно для обработки текстов.
Заинтересовались компьютерами н руководители разных рангов, начиная от хозяев небольших фирм, где работают всего 2-3 человека, до управляющих и директоров крупных компаний. Как сообщали в свое время западные журналы, здесь и возникла на какое-то время неожиданная трудность - руководитель, прекрасно разбирающийся с самыми сложными коммерческими проблемами, нередко не мог справиться с непослушными запятыми или грамотно написать конфиденциальное деловое письмо.
На помощь вновь пришла вычислительная техника. Составить программу, которая взяла бы на себя корректорские функции, было значительно проще, чем повысить уровень грамотности руководителей всех рангов. Так появились программы, проверяющие правильность переносов и расстановку знаков препинания, автоматически следящие за тем, чтобы в тексте не появлялись слова с ошибками. Компьютер стал грамотным.
Сегодня персональные компьютеры постепенно заменяют пишущие машинки и в наших учреждениях. Многие западные программы, в том числе и текстовые процессоры, можно модифицировать для работы на русском языке. Этого, однако, нельзя сказать о программах, проверяющих грамотность.
Воспользоваться чужим опытом и механически заменить английские слова на русские невозможно. Англоязычные программы основаны на сопоставлении слов, набранных с клавиатуры, со словами из словаря, хранящегося в памяти компьютера. В наиболее популярных системах такие словари содержат около 100000 слов. Для русского языка понадобился бы словарь в десять раз большего объема, поскольку в него пришлось бы записать все возможные формы каждого слова: в частности, в отличие от английского в русском языке одни и те же слова могут иметь разнообразные окончания.
Такой гигантский словарь займет в памяти компьютера слишком много места, а работа электронного корректора замедлится настолько, что вряд ли он нашел бы широкое использование.
Выберем в качестве примера слово "вести". Кроме этой, глагол имеет еще 18 различных форм: в настоящем времени - веду, ведешь, ведет, ведем, ведете, ведут; в прошедшем времени - вел, вела, вело, вели; в форме причастия - ведущий, ведомый, ведший, веденный; в форме деепричастия - ведя, ведши; в повелительном наклонении - веди, ведите. Вдобавок, слово с таким, же написанием, но иначе поставленным ударением - вести,- это одна из форм существительного "весть", которое, в свою очередь, имеет дюжину форм. Ясно, что кроме многообразия форм машине придется иметь дело и с многозначностью слов.
Убедившись, что воспользоваться, зарубежным опытом в данном случае не удастся, разработчики ОРФО (так названа программная система-корректор) занялись созданием полностью оригинальной программы. Если попытаться численно оценить труд группы квалифицированных программистов, лингвистов, математиков и дизайнеров московского научно-технического кооператива "Информатик", то получится несколько десятков человеко-лет. Сегодня, когда система готова к использованию, интересно хотя бы перечислить основные возможности, которые предоставляет ОРФО.
"Грамотным" можно сделать любой персональный компьютер, совместимый с IBM РС ХТ/АТ. Система резидентна, то есть небольшая часть программы постоянно находится в оперативной памяти компьютера, а значит, в любой необходимый момент, нажав пару клавиш, можно обратиться к помощи электронного корректора, какая бы программа в этот момент ни выполнялась. Это используется прежде всего тогда, когда идет редактирование текста.
Как работает ОРФО? Предположим, составляется текст договора. Часть текста не содержит отличий от предыдущего варианта, другая часть набирается заново. Сомнения вызывает лишь одна строка, или, например, абзац. Пометив его на экране, остается обратиться к программе-корректору, и она укажет ошибку в написании слова, в согласовании слов в предложении или на опечатку в пунктуации. Любая неточность будет выделена на экране иным цветом, появятся и пояснения - в чем именно заключается ошибка. Программа способна проверить и весь текст на экране.
Хотя словарь системы содержит более 120 тысяч основ русских слов, нельзя исключить возможность того, что в тексте встретится слово, незнакомое системе. Так бывает, например, с текстами, изобилующими специальной терминологией. В этом случае в работу включается блок самообучения. Компьютер задает человеку три-четыре вопроса, выясняя различные формы незнакомого слова. Вопросы, появляющиеся на экране, предельно конкретны, а вводить нужно не все слово целиком, а лишь его изменяемую часть, добавляя окончание к светящейся на экране основе. При неточных ответах электронный корректор заметит подвох (в этом проявляются интеллектуальные черты системы). После того, как на все вопросы дан правильный ответ, на экране как бы "в награду" появляются все возможные формы данного слова (их может быть до двадцати).
Проверяются и все сложные случаи, такие, например, как написание слов через дефис ("пол-лимона"), оценивается согласование слов, причем не только попарное - по роду, числу и падежу, но и согласованность слов предложения в целом.
Программа способна работать еще в двух режимах: автопроверки и подсказки. Автопроверка включается при вводе текста с клавиатуры. Работает она все время, пока идет набор, и служит для оперативной проверки правописания слов. Стоит системе заметить ошибку, звучит сигнал. Чаще всего это опечатка, ошибочное нажатие не той или лишней клавиши, которое можно сразу же и исправить. Но иногда встречается ситуация, когда ошибка найдена, слово выделено на экране, а человек не знает, как исправить ошибку. В подобных случаях выручает режим подсказки. Включив его, можно получить на экране варианты слов, близких по написанию к тому, в котором допущена ошибка, и выбрать нужное слово.
Словарь системы нетрудно расширить, например, добавить в него специальные термины по каким-либо узким областям знаний.
Создание грамотных текстов - это не единственная область, для которой предназначена ОРФО. Особую помощь программа способна оказать всем, изучающим русский язык как иностранный. Система позволяет разобраться в многозначности и согласованиях слов, а также помочь в анализе форм спряжения и склонения ранее неизвестного слова. Работая с "грамотным" компьютером, обучаемый не стесняется делать и исправлять ошибки, в любой момент задавать электронному преподавателю вопросы.
Впрочем, система способна облегчить работу не только ученика, но и учителя. Если использовать программу для контроля знаний, преподаватель освобождается от утомительной и едва ли не чисто механической работы по проверке заданий и упражнений. На базе ОРФО можно создавать обучающие и тестовые компьютерные программы, разнообразные грамматические упражнения. Элементы игры, которые использование компьютера вносит в процесс обучения, делают занятия эффективными.
Заметим, что научные разработки, положенные в основу системы, универсальны. Небольшая модификация позволит использовать программу и для других языков, для которых характерны изменяемые окончания слов (так называемые флективные языки), например, для языков угро-финской группы: финского, венгерского и т.п.
В отличие от дефицитных промышленных товаров, программного товара хватит на всех: систему ОРФО можно приобрести в Москве (справки по телефонам 299-99-04, 290-35-24 или по адресу: 103104, Москва, Остужева 7, корп.2, кооператив "Информатик"). Для специалистов добавим, что при размещении на винчестере программа занимает 1.9 Мбайт, а в оперативной памяти - 145 Кбайт. Немаловажно и то, что программа совместима с любым текстовым редактором.
НЕ ТОЛЬКО ПРОГРАММЫ
Многие владельцы компьютеров "Электроника БК" знают НПК "СБИС" как организацию, тиражирующую различные программы для этого компьютера. Специально для школ, где работает комплекс учебно-вычислительной техники КУВТ-86 (Бейсик), подготовлен пакет СБИС-КУВТ. Программы пакета запускаются ма ученических компьютерах БК-0010.01 после загрузки с учительской машины ДВК. Выбрать нужную программу помогает "меню".
В состав пакета на 15 дискетах включено свыше 200 системных, обучающих, тестовых, прикладных, демонстрационных и игровых программ для БК-0010.01 на Бейсике, в кодах и на Т-языке.
В "СБИС" можно заказать три выпуска информационного бюллетеня "БИС" для пользователей БК, а также Приложение 1 - брошюру Радченко Л. "Электроника БК" + магнитофон", 62с. Стоимость бюллетеня в типографском исполнении - 1р., в электронном виде (на дискетте) - 12р., приложения - 3р.
Также тиражируется комплект системных программ, позволяющих существенно повысить эффективность использования комплекса КУВТ-86 за счет разнообразных функций и удобства работы с файлами.
Желающие могут обращаться за подробным бесплатным каталогом тиражируемых программ по адресу: 167024, г.Сыктывкар, а/я 430, НПК СБИС.
ПОЛИГОН НАПРОКАТ
Научные организации, конструкторские бюро и кооперативы могут провести испытания в условиях измененного газового состава при давлении от 760 до 1е-6мм рт.ст.; температуре от -50 до 130oС, относительной влажности 10-90%, а также в среде, содержащей радиоактивные аэрозоли, различных материалов, покрытий, конструкторских узлов и деталей, блоков и модулей, систем и установок, электронных приборов и приборов точной механики, строительных материалов, продукции химической, легкой, пищевой, фармацевтической и других отраслей промышленности. Для этого свои услуги на коммерческой основе предлагает комплекс "Защита" Института биофизики Минздрава СССР.
Адрес: 123182, Москва, ул. Живописная 46, Институт биофизики Минздрава СССР, комплекс "Защита". Тел.: 190-56-67, 190-48-58, р/с #360917, ОПЕРУ при Правлении ЖСБ г.Москвы, код МФО #29909, код банка 299093.
ОБЛАДАТЕЛЯМ
МИКРОЭВМ "СПЕЦИАЛИСТ"
Значительно сократить затраты времени при проектировании радиоэлектронных устройств позволяет программа автоматизированного проектирования печатных плат.
Программа самостоятельно разводит до тысячи связей на плате размером до 280кв.см, при этом количество элементов, выбранных из 65 различных типов, может достигать 250. "Специалист" автоматически разводит до 80% связей. Шаг координатной сетки выбирает оператор, а результаты трассировки при необходимости выводятся на принтер.
За справками обращаться по адресу: 656099, г.Барнаул, а/я 108.
9/90
ПРОГРАММНАЯ ОРБИТА
Программа VR предназначена для профилактики и защиты IBM-совместимой техники от компьютерных вирусов. Программа непрерывно обновляется по мере поступления обнаруженных в СССР, Европе и США новых вирусов, так, VR V3.50 обнаруживает 35 различных вирусов и устраняет 22 из них. Новая версия 3.51 обнаруживает 37 вирусов и позволяет избавиться от 25. Цена программы - 950руб.
Система ProtEK способна защитить винчестер, каталог и файл от вирусов или несанкционированного доступа. Цена последней версии системы V1.72 - 950руб.
Быстро вводить в ЭВМ типографский или машинописный текст с помощью сканера или телекамеры позволяет программная система Reader V1.00 ценой 20тыс.руб.
Универсальная среда программирования XSimp предназначена для создания экспертных систем, управляющих языков, систем автоматизированного проектирования и обработки текстов. Система XSimp - это диалект языка Лисп, снабженный надстройками для объектно-ориентированного и логического программирования, позволяющий подключать модули, разработанные на других языках программирования. Версии программы для IBM, VAX и Macintosh можно приобрести по цене от 6 до 10тыс.руб.
Программа InSurf в диалоге с пользователем способна построить проекции поверхностей, заданных функциями двух переменных, карты изолиний и вертикальные сечения. Диалог возможен на английском и русском языках, изображение можно редактировать. Цена последней версии (V1.41) - 2450руб.
Для получения подробной информации можно обращаться по адресу: 103498, Москва, Зеленоград 443, Эпсилон.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
9/90
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ПЯТОЕ, тема которого - программирование без... программирования. Говоря точнее, речь пойдет о том, как на персональном компьютере решать задачи уровня средней школы (а таких задач хватает в деятельности многих дипломированных специалистов), не прибегая к их кодированию на каком бы то ни было алгоритмическом языке. Сегодня это уже не кажется парадоксом, поскольку в последнее время появилось немало программных продуктов, созданных именно с такой целью. Вот названия некоторых из них: Mathematica, Maple, Theorist, Mito, PowerMath, Math-CAD, MathLab, TK Solver, MathView Professional...
Наше занятие посвящено выдающейся представительнице этого ряда - программной среде Eureka (разработчик - фирма Borland). Ведут его ученики московской школы #1027 (лицей Московского энергетического института) В.Л.ВИНОГРАДОВ, С.И.ВОЛКОВ, А.Г.КАРЛСЕН, Е.В.НИКОЛАЕВ, А.А.ОБРАЗЦОВ, А.В.ПОЛЯНСКИЙ, Д.В.ФЕДОРОВ и М.А.ХАКСЕЛЬБЕРГ.
То, что в работу "Школы" включились старшеклассники, доказывает, сколь широк круг потенциальных авторов этой рубрики. Если вы хотите провести какое-либо из занятий "Школы", прочтите ее программу, опубликованную в 12/89. Посоветуйте обратить на нее внимание знакомым опытным пользователям ЭВМ. Присланный вами текст отдельного занятия не должен превышать 24 машинописных страниц.
Если вы сформулировали математическое описание задачи, то не спешите кодировать ее решение, общаясь с компьютером на одном из традиционных языков программирования (Бейсик, Паскаль, Фортран и т.д.). Есть программные средства, позволяющие сообщать машине условия задачи на естественном языке, не прибегая к программистским премудростям.
"Эврика!" - воскликнет специалист - непрограммист, услышав о существовании подобных программных продуктов. Вот, наверное, поэтому один из самых популярных пакетов для решения задач на естественном для человека языке, созданный фирмой Borland (той самой, чьи разработки начинаются со слова Turbo: TurboBASIC, TurboPascal, TurboC, TurboProlog), назван Eureka - Эврика.
Рассказ о том, как можно общаться с компьютером посредством пакета Eureka, начнем не совсем обычно - с беседы чеховских персонажей: купца Удодова, его сына Пети и Петиного репетитора семиклассника Зиберова.
- Теперь по арифметике... Берите доску. Какая следующая задача?
Петя плюет на доску и стирает рукавом. Учитель берет задачник и диктует:
- "Купец купил 138 аршин черного и синего сукна за 540руб. Спрашивается, сколько аршин купил он того и другого, если сннее стоило 5руб. за аршин, а черное 3руб.?" Повторите задачу.
Петя повторяет задачу и тотчас же, ни слова не говоря, начинает делить 540 на 138.
- Для чего же вы это делите? Постойте! Впрочем, так... продолжайте. Остаток получается? Здесь не может быть остатка. Дайте-ка я разделю!
Зиберов делит, получает 3 с остатком и быстро стирает.
"Странно...- думает он, ероша волосы и краснея.- Как же она решается? Гм!.. Это задача на неопределенные уравнения, а вовсе не арифметическая"...
Учитель глядит в ответы и видит 75 и 63.
"Гм!.. странно... Сложить 5 и 3, а потом делить 540 на 8? Так, что ли? Нет, не то".
- Решайте же!- говорит он Пете.
- Ну, чего думаешь? Задача-то ведь пустяковая!- говорит Удодов Пете.- Экий уж ты дурак, братец! Решите уж вы ему, Егор Алексеевич.
Егор Алексеевич берет в руки грифель и начинает решать. Он заикается, краснеет, бледнеет.
- Это задача, собственно говоря, алгебраическая,- говорит он.- Ее с иксом и игреком решать можно. Впрочем, можно и так решить. Я, вот, разделил... понимаете? Теперь вот надо вычесть... понимаете? Или вот что... Решите мне эту задачу сами к завтраму... Подумайте...
Петя ехидно улыбается. Удодов тоже улыбается. Оба они понимают замешательство учителя. Ученик VII класса еще пуще конфузится, встает и начинает ходить из угла в угол.
- И без алгебры решить можно,- говорит Удодов, протягивая руку к счетам и вздыхая.- Вот извольте видеть.
Он щелкает на счетах, н у него получается 75 и 63, что и нужно было.
- Вот-с... по-нашему, по-неученому.
Фрагмент из миниатюры А.П.Чехова "Репетитор" предварил наш рассказ о среде Eureka по трем причинам:
1. Описанная ситуация очень часто повторяется и сейчас. Только люди стали протягивать руку не к счетам, а к персональному компьютеру. (Правда, наши люди по-прежнему, как правило, щелкают на счетах или в лучшем случае прибегают к помощи калькулятора. Удодов-отец, вздыхая, как бы предчувствовал темпы компьютеризации в нашей стране). Среда общения с персональным компьютером Eureka и подобные ей программные продукты позволяют протягивать руку к ЭВМ (ежели они имеются) все более широким массам трудящихся, незнакомым с азами программирования.
2. Процесс компьютерного решения задачи в среде Eureka во многом похож на подход Удодова-отца. Машине достаточно сообщить только условия задачи, а как там ЭВМ "прощелкает ее на счетах" - это ее личное дело. Главное, чтобы ответ сходился.
3. И современная, и прошлого века - обратитесь еще раз к рассказу А.П.Чехова - методика преподавания школьной (и не только школьной) математики, физики, химии и других предметов ориентирована, как правило, не на постановку задачи, а на решение уже кем-то сформулированных проблем. Компьютеризация школы, базирующаяся на преподавании языков программирования (Бейсик или Паскаль, Фортран или Рапира), в качестве основ информатики ничего фактически не меняет в этом не совсем нормальном положении вещей. Среды общения с ЭВМ на почти естественном для человека языке, к которым относится Eureka, позволяют больше внимания уделять постановке проблемы, математическому моделированию реальных ситуаций, а не методикам решения надуманных задач.
Помня о том, что лучше один раз увидеть, чем сто раз услышать, мы помещаем здесь изображение (hardcopy) экрана дисплея с решением в среде Eureka вышеописанной задачи о купце и сукне. Заранее просим простить за то, что дальнейший текст будет густо пересыпай английскими терминами. Но делать нечего. Хотите быть на ты с вычислительной техникой - учите английский язык.
При работе в среде "Эврика" экран дисплея разбивается на окна и превращается в своеобразную оконную раму, вернее, в витраж. Сходство с витражом усиливается тем, что пользователь может раскрасить эту картинку, используя палитру цветного дисплея и изменяя окраску букв, фона, рамок.
При работе в среде Eureka экран разбивается на 5 окон (см. рисунок):
- окно главного меню (Eureka: The Solver) с названиями восьми "блюд": работа с файлами (File), ввод через клавиатуру и редактирование задачи (Edit), решение задачи (Solve), специальные команды (Commands), создание отчетов о решении задачи (Report), построение графиков (Graph), дополнительные возможности (Options) н работа с окнами дисплея (Window);
- окно ввода через клавиатуру и редактирования (Edit; сейчас там записаны условия задачи Удодова). Точка с запятой (; ) означают начало комментария (вспомним слово REM или апостроф на Бейсике); в среде Eureka, как и на Бейсике, комментарий кончается вместе со строкой. Комментарий может содержать и буквы кириллицы, в тексте же задачи допустимы только латинские или греческие буквы. Сама задача проста - это система двух лннейных алгебраических уравнений (Зиберов был прав, считая
эту задачу алгебраической) с двумя неизвестными: black (метраж, вернее, аршинаж черного сукна) и blue (синего);
- окно решения задачи (Solution), куда машина в ходе решения по командам пользователя записывает переменные (Values), удовлетворяющие условиям поставленной задачи;
- окно проверки (Verify) результатов решения задачи. Если человек отдаст соответствующую команду, то машина подставит в формулы нз окна Edit значения переменных нз окна Solution н отметит разницу (difference) между левыми и правыми частями уравнений;
- окно отчета (Report) о решении задачи, куда машина записывает дату н время "прогонки" задачи, если она решалась на IBM PC/AT ("эйтишка" по сравнению с "икстишкой" оборудована часами с календарем и батарейкой - см. дальнейшие рисунки), имя и место хранения на диске (гибком или жестком) файла с ее условием, само условие, решение задачи и его проверку; отчет, кроме того, можно отпечатать на принтере или записать на магнитном диске.
В нижней части экрана дисплея отмечены "нагрузки" функциональных клавиш клавиатуры. Так, нажав клавишу F1 (Help), пользователь в новом окне, появившемся на экране дисплея, получит дополнительную информацию о работе в среде Eureka. После ее прочтения нужно нажать клавишу Esc (escape - убегать, исчезать), и рабочие окна, показанные на рисунке, будут восстановлены. Клавиша F5 позволяет увеличить (Zoom) любое окно на весь размер дисплея, клавиша F6 - перейти к работе в следующем (Next) окне (были в окне Edit, оказались в окне Solution и т.д.), клавиша F7 дает возможность перейти к любому из окон. Их размеры (Size) и местонахождение (Move) на дисплее, кстати, можно изменять. Для этого нужно нажать клавишу Scrool. После этого строка в нижней части дисплея изменится: там пользователь увидит инструкцию о том, какие клавиши следует нажимать, чтобы изменить размеры и местонахождение окон дисплея.
В окнах Report и Verify на рисунке уместилась только часть информации. Но предусмотрена возможность полного ее просмотра: для этого следует через главное меню раскрыть (F5-Zoom) нужное окно - сначала нажать клавишу Esc, чтобы выйти в основное меню (см. верхнюю часть рисунка), а затем, "ткнув" в название одного из "блюд" Edit, Solve, Report и т.д., войти в нужное окно. Постоянные читатели нашей "Школы" помнят, что на Лексиконе (см. 5/90) активизация основного меню достигается нажатием не клавиши Esc, a клавиши F10. Клавиша же Esc на Лексиконе выполняет обратную операцию - перебрасывает курсор (точнее, курсорную рамку-указатель) из главного меню в рабочее окно с редактируемым текстом. Эти отличия вызваны тем, что Eureka и Лексикон создавались в то время, когда системные программисты еще полностью не договорились о стандарте условных знаков общения человека с машиной. В программной среде QuickBASIC (программы, написанные на этом языке, мы часто помещаем в разделе "Человек и компьютер", а само описание языка мы планируем дать в одном из последующих уроков "Школы") эта же операция (переход к главному меню) выполняется нажатием клавиши Alt. В среде интегрированного пакета Framework III (текстовый процессор - электронные таблицы - базы данных - деловая графика - телекоммуникации; о Framework III речь также впереди) этой же функцией нагружена клавиша Ins. Но такому разнобою удивляться нечего! Попросите немца показать цифру 2, и он поднимет вверх большой и указательный пальцы. Русский же для этой операции использует указательный и средний. Вот так-то. А мы еще ждем какого-то однообразия от машин. Но "стреляного" пользователя персональных компьютеров такой разнобой в тупик не поставит: несколько минут общения с незнакомым программным продуктом - и он освоен. Тем более что на компьютерах последних марок все нюансы общения человека с машиной сглаживает устройство "мышь", ликвидирующее границы для курсора на экране дисплея.
В данный момент (см. все тот же рисунок) активизировано, а именно подготовлено к раскрытию окно Report, о чем свидетельствует его двойная рамка. Текст появившегося там отчета можно отредактировать, сделать, например, более компактным или записать какие-то комментарии, а уже потом отпечатать на бумаге. Так же будет сделано с отчетами о решении дальнейших задач, которыми будут далее проиллюстрированы некоторые особенности работы в среде Eureka. Каждый из этих отчетов разбит рядами звездочек на три зоны: заголовок, условие и решение.
Общая технология решения задач в среде Eureka обычно такова. Включается компьютер, далее запускается программа с именем eureka.exe в директории ЕКА. Эту директорию и позицию в меню пользователя, кстати, можно увидеть на первом рисунке второго урока нашей "Школы" (см. 3/90), посвященного надстройкам над дисковыми операционными системами. Вскоре после этого на экране дисплея появляются окна среды Eureka (рисунок внизу). Нижние четыре окна при этом будут пустые, а первое "блюдо" меню (File) выделено фоном. Этот фон, выполняющий роль указателя для "тыканья" в компьютерные "блюда", с помощью курсорных клавиш можно передвигать вдоль меню. Выбор нужного режима осуществляется нажатием клавиши Enter (ввод). При этом может появиться новое меню, как показано на том же рисунке: так выглядит экран после выбора режима File (работа с файлами на дисках). После "тыканья" в "блюдо" Load (загрузка) машина покажет, какие старые задачи есть у нее в архивной памяти. В центре рисунка показано, как реагирует на такую просьбу машина: в появившейся рамке вверху перечислены имена пяти файлов с расширением *.ЕКА, хранящих некоторые задачи нашего урока. Той же курсорной рамкой-указателем можно выбрать нужную (например, ANIMALS.EKA). Нажали клавишу Enter - и она в окне Edit. Займемся ею.
"Не красна ЭВМ своим быстродействием и объемом памяти, а красна своим математическим обеспечением" - так можно переиначить известную пословицу, глядя на библиотеку "Эврики". И если там есть программа решения вставшей перед вами задачи, на нее достаточно навести курсорную рамку и нажать клавишу "Ввод".
Итак. ПРИМЕР 1. На скотном дворе бегают куры и кролики Всего у них 12 голов и 28 ног Спрашивается: сколько на дворе кур и сколько кроликов?
Условие этой простенькой задачи, записанное в среде Eureka (см. рисунок), почти полностью совпадает с ее словесным описанием. Для записи условия нужно цепочкой команд Esc-Edit-Enter перебросить курсор в окно Edit, активизировать это окно, как говорят программисты. При этом включится в работу небольшой текстовый процессор среды Eureka, позволяющий писать и редактировать тексты - условия задач. (Текстовым процессорам были посвящены 3 и 4-е занятия нашей "Школы" - см. 5,7/90). В условие человек должен вложить все свои знания об объекте моделирования и комментарии, чтобы потом не запутаться,- то, что у курицы и у кролика по одной голове, но по паре и по паре пар ног соответственно. Эти свойства объекта составляют, как и в задаче Удодова, систему двух линейных алгебраических уравнений. Работая в среде Eureka, полностью решить поставленную задачу проще, простого. Для этого нужно цепочкой команд Esc-File-New полностью очистить все окна среды Eureka от "остатков" предыдущей задачи. Парой команд Esc-Edit войти курсором в очищенное окно Edit. где через клавиатуру ввести условие задачи с комментариями. Наконец, командами Esc-Solve заставить машину решить ее.
"Это же смесь французского с нижегородским!" - воскликнет иной читатель, взглянув на решение задачи в среде •Эврика". Но так приходится поступать отечественным пользователям персональных компьютеров: вставлять буквы кириллицы в имена переменных нельзя, а совсем уж отказываться от русского языка не хочется.
Ответ будет автоматически записан в окно Solve, но не сразу, а по истечении некоторого времени, отпущенного на решение задачи. Чтобы пользователь в это время не нервничал, думая, что машина зависла, ЭВМ в центре экрана помещает маленькую рамочку с информацией о том, сколько секунд прошло от начала решения задачи и каково на данный момент значение максимальной ошибки в расчетах.
Обычно на решение задачи отводится не более 2-3 минут. Но пользователь может досрочно прервать расчет аккордом Ctrl-Break. После этого в окне Solve появятся приближенные значения переменных на тот момент, в котором была прервана работа машины. Цепочкой команд Esc-Commands-Find other (найти другое) прерванный процесс можно продолжить. Так пользователь, не дожидаясь завершения расчета, может выяснить, в верном ли направлении он идет, и в случае необходимости направить компьютер на путь истинный, например, введя новые требования к искомому результату - допустим, понизить точность, с которой он должен быть определен.
Чтобы решение было скопировано на принтере, нужно выполнить такую цепочку: Esc-Report. По умолчанию машина выводит текст решения на экран дисплея (Screen), но можно цепочкой команд Esc-Report-Print (или File) заставить машину вывести ответ на бумагу (или на магнитный слой винчестера или дискеты).
Но вернемся на некоторое время к тому моменту, когда в главном меню мы выбрали "блюдо" File. Судя по списку, появившемуся в левом верхнем углу экрана после нажатия клавиши Enter (обведен рамкой на рисунке), среда Eureka предоставляет пользователю следующие услуги:
- загрузка (Load) с диска в окно Edit старой задачи (еще раз вглядитесь в предыдущий рисунок, где представлены имена пяти задач, решаемых в среде Eureka, хранящихся на диске С).
- очистка окон перед решением новой (New) задачи;
- сохранение (Save) задачи на диске - к этому режиму прибегают при записи на диск новой задачи, когда считают, что к ней когда-то придется вернуться;
- запись (Write to...) задачи на диск, но с новым именем - этот режим незаменим при записи на диск модернизированной старой задачи;
- просмотр содержимого директорий (Directory) дисков;
- смена (Change dir) текущей директории рабочего диска;
- переименование (Rename) файлов на диске;
- временный выход из среды Eureka в операционную систему (OS shell);
- покидание (Quit) среды Eureka.
Подобные перечни есть у всех режимов главного меню, кроме Edit и Solve. He боясь быть назойливыми, вкратце повторим сказанное о них. Выбор режима Edit (перемещение пользователем фона-указателя на это слово в главном меню и нажатие клавиши Enter) сразу приводит к активизации окна Edit, где после этого можно записать или подправить условие задачи (см. самый первый рисунок). После того как задача будет сформулирована, нажимается клавиша Esc для входа в главное меню, где дается команда Solve, заполняющая решением задачи окно Solution. Подобным образом можно заполнить окно Verify и Report и получить картинку, показанную на первом рисунке. Выбор нужного режима из меню можно осуществить и другим способом, нажимая одновременно управляющую клавишу (Ctrl) и клавишу с заглавной буквой названия режима. Если у компьютера есть "мышь", то это совсем упрощает работу: для выбора нужного режима следует поелозить "мышью" по столу (установить курсор "мышь" на название режима) и нажать левую кнопку "мыши".
ПРИМЕР 2. Найти координаты центра и радиус окружности, проходящей через три точки на плоскости с координатами (x-y): 26-4, 9-21 и 17-17.
На рисунке представлен отчет о решении этой задачи в среде Eureka. Она сводится к поиску корня системы трех нелинейных алгебраических уравнений, полученных приложением теоремы Пифагора (сумма квадратов катетов прямоугольного треугольника равна квадрату гипотенузы) к координатам трех исходных точек и искомого центра окружности.
"Доверяй, но проверяй!" В среде "Эврика" этот лозунг реализуется при подробной проверке (верификации) решения задачи. Машина подставит найденные значения переменных в использованные формулы и вычислит, насколько велика разница между левой и правой частью, предупредит ошибочные действия пользователя и т.д.
Эта система имеет два решения, где значения радиусов равны по модулю, но отличаются по знаку. Поэтому не будет лишним в условии задачи записать первое приближение к решению, опираясь на которое машина и быстрее, и точнее найдет ответ. В противном случае ЭВМ подобно Буриданову ослу может "метаться" между возможными решениями, не склоняясь ни к одному из них. Правые и левые части уравнений в условии задачи разделяются либо знаком = (равно), либо знаком := (соответствует). Этим как бы расставляются приоритеты: решая поставленную задачу, машина в первую очередь старается удовлетворить выражения со знаком =, а потом уже по возможности (принцип остаточности) и те, какие разделены знаком :=.
Прогонку задач с двумя и более решениями, из которых только одно удовлетворяет оговоренным условиям, всегда следует завершать проверкой (нажали клавишу Esc, ткнули в блюдо Commands, а в появившемся новом меню - в блюдо Verify). Это и было сделано при решении задачи об окружности на плоскости: отчет заканчивается подсчетом отклонений левых и правых частей уравнений, которые среда Eureka постаралась превратить в тождества.
Разобранный пример можно расширить, заставив машину работать не с, тремя, а с четырьмя и более точками на плоскости. ЭВМ при этом найдет (или по крайней мере постарается найти) координаты окружности, наилучшим образом вписывающейся в заданные точки. Такая особенность среды Eureka - это ее и достоинство, и недостаток. С одной стороны, она позволяет решать не совсем корректно поставленные задачи, по которым нужно найти какое-нибудь более-менее удовлетворяющее человека решение, а с другой - эта особенность может обернуться тем, что машина выдаст человеку совсем не то, что он от нее ожидал.
Можно отметить, что систему трех нелинейных уравнений, описывающих задачу об окружности, можно свести к системе линейных уравнений за счет несложных преобразований, отняв, например, первое нелинейное уравнение от второго и т.д. Но среда Eureka тем н хороша, что она позволяет решать задачи в их, так сказать, первозданном математическом описании без упрощений, которые очень часто затрудняют понимание сути задачи. Общение с компьютером вырабатывает у человека так называемый KISS-принцип: keep it simple, stupid! - делай это проще, дурачок!
ПРИМЕР 3. Требуется из круглой жестянки изготовить пожарное ведро максимального объема. Технология изготовления ведра такая: из заготовки вырезается и выкидывается сектор, затем полученная таким образом выкройка сворачивается в конус, а шов проваривается (клеится, паяется).
Поставленную задачу на оптимум можно, конечно, решить аналитически. Для этого необходимо вывести зависимость, связывающую объем ведра-конуса (функция) и угол сектора-вырезки (аргумент). Затем нужно взять первую производную от этого выражения и найти ее корень. Не обойтись тут и без второй производной, если иужио удостовериться, что найденная точка (угол выреза) отмечает максимум, а не минимум или перегиб. Жестянщик, которому поручат сделать пожарное ведро, скорее всего не знаком с дифференциальным исчислением. Но в среде Eureka поставленная задача ему окажется по плечу - см. рисунок.
"Описывай, не мудрствуя лукаво..."- так пушкинский монах Пимен обучал инока Григория искусству летописания. Этот совет уместен и при работе с "Эврикой": сообщайте машине простыми фразами все, что вы знаете о предмете задачи,- и машина сама приведет введенную в нее информацию и нужному для нее виду.
Пусть диаметр заготовки равен одному метру. Этого в условии задачи можно было бы и не оговаривать, так как, во-первых, значение оптимального угла выреза не зависит от диаметра заготовки, а во-вторых, переменной D по умолчанию машина сама бы присвоила единичное значение. Это одна из особенностей среды Eureka, отличающая ее, скажем, от Бейсика, где переменные по умолчанию обнуляются.
Далее (см. рисунок), исходя из здравого смысла, устанавливается допустимый диапазон изменения угла вырезки, чтобы машина не "залезла" в отрицательную область или в область больших углов (вспомним синусоиду с бесчисленным множеством корней, максимумов и минимумов). Два последующих выражения вытекают из несложной геометрии круга и конуса: длина дуги выкройки становится длиной окружности основания конуса, а высота конуса, радиус его основания и радиус заготовки связаны теоремой Пифагора. Число PI (3.14) в первом выражении можно, конечно, сократить. Но тогда геометрический смысл этого выражения стал бы пониматься с большим трудом. Вообще-то, работая со средой Eureka, нужно стараться сообщать машине как можно больше данных об объекте моделирования. Пусть машина берет из них то, что ей нужно для расчета, а что не нужно она сама пропустит.
Если определены параметры конуса (диаметр основания из первого выражения, а высота из второго), то можно выразить через эти параметры его объем V=V(a) и поручить машине максимизировать (max) эту величину, варьируя значение угла выреза. Служебное слово max, записанное в условии задачи о пожарном ведре,- "гвоздь программы". Видя его в тексте задачи, машина понимает, что нужно не просто решать систему уравнений, а искать такие значения переменных, при которых указанная функция примет максимальное значение.
Из последнего выражения в условиях задачи (оценка угла через тангенс) видно, что Eureka оперирует углами в радианах.
ПРИМЕР 4. Транспортная задача, связанная с оптимизацией перевозки грузов. В городе NN имеются два продовольственных склада и две пекарни. Необходимо ежедневно с первого склада вывозить 50 тонн муки, а со второго 70. Первая пекарня при этом получает 40, а вторая - 80 тонн. Спрашивается, как нужно спланировать работу транспорта исходя из затрат на перевозку муки со складов на пекарни, чтобы общая сумма затрат была минимальной.
На рисунке представлен отчет о решении этой задачи в среде Eureka: минимум затрат на перевозку муки составляет 134 рубля в сутки. Как ни странно, но на первую пекарню со второго склада мука не завозится (М3=0), хотя такие перевозки самые дешевые - 80 копеек за тонну. Для спасения горящего месячного, квартального или годового плана этим парадоксом может воспользоваться плановик автокомбината, осуществляющего перевозку муки. Для этого необходимо слово MIN в условиях транспортной задачи (см. рисунок) заменить на слово МАХ. В этом случае затраты на перевозку увеличатся до 142 рублей в сутки, хотя внешне все будет выглядеть вполне прилично: M1=0, М2=50, М3=40, М4=40 - на первую пекарню мука завозится только со второго склада. В условиях нашей самоедской экономики с ее девизом "План любой ценой!" плановик автокомбината, оправдывая и свое название, и существование, может "похимичить" еще более серьезно, снимая табу типа М1>0 и благословляя тем самым встречные перевозки. Среда Eureka этого не запрещает: деньги не пахнут, а вычислительные машины не краснеют.
За условиями, требующими от переменных задачи, чтобы они были больше нуля, следуют четыре строки комментариев. Собственно, это не комментарии, а рассуждения пользователя, изложенные в удобной для него табличной форме. А почему бы и нет? "Эврика" располагает к вдумчивой работе - а это залог успеха.
После всего сказанного мы можем со знанием дела разобрать вопрос: что же умеет Eureka?
Кроме элементарных операций, выполнимых в этой программной среде (вычисление синуса, косинуса, логарифма и др.), здесь можно увидеть и экзотические операции: взятие производной (deriv) и интеграла (integ), подсчет нормального распределения (ncum), расчет сложных процентов (fval, paymt, pval) и суммы ряда (sum). Как вставлять в математические выражения синусы и косинусы, знают, наверно, все. А вот как пользоваться экзотикой среды Eureka, нужно пояснить. Например, чтобы взять производную косинуса, нужно написать deriv(cos(X),X). Если требуется вычислить нормальное распределение, то тут поможет функция пользователя.
F(X) = 1/SQRT(2*РI)*INTEG(EXP(-T 2/2), Т, 0, X), опирающаяся на определенный интеграл по Т, нижняя граница которого равна нулю, а верхняя - текущему значению X.
Богатый набор встроенных функций позволяет решать в среде Eureka разнообразные задачи - тут и аппроксимация методом наименьших квадратов, и построение графиков, и решение алгебраических, дифференциальных, интегральных уравнений, а также систем из них, поиск максимального или минимального значения функции при заданных условиях. Проблема, выливающаяся в десяток-другой алгебраических, дифференциальных или интегральных уравнений, среде Eureka часто оказывается не по зубам. В таких случаях она может прервать решение, словно чувствуя, что дело затягивается и пользователю это уже начинает не нравиться. Как бы извиняясь, она выдает какое-то приближенное решение - пользователь после его проверки (Verify) должен сам решить, что делать дальше с этим результатом.
Работа со средой Eureka требует знания некоторых "волшебных" слов. Например, сказав машине "$ complex = yes>, мы тем самым попросим ее поискать комплексные корни уравнений и систем, состоящие из действительных (re) н мнимых (im) частей. При аппроксимации опытных данных методом наименьших квадратов достаточно сообщить машине вид сглаживающего уравнения с неопределенными коэффициентами, параметры опытных точек и сказать "$ substlevel = 0". С эвриканского на русский оно переводится примерно так: "Найти значения коэффициентов уравнения, при которых экспериментальные точки минимально отклоняются от искомой кривой".
Успех решения задачи очень сильно зависит от начально заданных условий (опорная точка - взглянем еще раз на пример 2), которые может знать только специалист по решаемой проблеме. Подобными подсказками он будет как бы подталкивать машину к правильному решению. Если традиционные языки программирования (кроме, наверное, Бейсика) создавались программистами для собственного, так сказать, употребления, то среда Eureka - это в первую очередь инструмент прикладника-непрограммиста.
Еще одна "экологическая ниша" для среды Eureka и других ей подобных - это сфера обучения - вспомним о чеховском начале нашего рассказа. Здесь очень пригодятся графические возможности среды Eureka. Здесь показано еще одно окно (Plot), в котором пользователь может рисовать различные графические объекты.
Широк набор встроенных функций, велики графические возможности "Эврики". Ее иногда упрекают в том, что она не способна строить объемные графики функций двух переменных, как это делают другие подобные ей среды. Однако "Эврика" умеет строить разрезы многомерных функций, облегчая их анализ.
Построить график в среде Eureka проще простого. Нужно "ткнуть> (см. рисунок) в слово Graph главного меню, а в появившемся новом меню - в слово Function. После этого машина запросит внд функции (Enter function), на что человек должен ответить Y = sin(X)/X или чем-то другим, что ему нужно в данный момент.
Далее человек "тыкает" в слово Plot, на что машина реагирует запросом начального и конечного значений аргумента. Результатом этого диалога в стиле "тычков" и будет то, что показано на рисунке. Встроенные функции INTEG и DERIV при необходимости помогут просмотреть вид первообразной и производной введенной функции.
На только что рассмотренном рисунке осталось нерасшифрованным слово List. Этот режим позволяет протабулировать введенную функцию. При этом начальное значение аргумента, шаг его изменения и число точек табуляции задаются пользователем по запросу машины. Таблица заносится в седьмое рабочее окно среды Eureka под названием List.
ЛИТЕРАТУРА
Очков В.Ф. Рассказ о трех Э ("Эврика", экономика, этика). "Информатика и образование", 2/90.
Очков В.Ф., Хмелюк В.А. От микрокалькулятора к персональному компьютеру (глава "Программирование без программирования"). М., изд-во МЭИ, 1990.
Сейтер Ч. Математика без слез. "Мир ПК", 2/90.
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ПЯТОЕ, тема которого - программирование без... программирования. Говоря точнее, речь пойдет о том, как на персональном компьютере решать задачи уровня средней школы (а таких задач хватает в деятельности многих дипломированных специалистов), не прибегая к их кодированию на каком бы то ни было алгоритмическом языке. Сегодня это уже не кажется парадоксом, поскольку в последнее время появилось немало программных продуктов, созданных именно с такой целью. Вот названия некоторых из них: Mathematica, Maple, Theorist, Mito, PowerMath, Math-CAD, MathLab, TK Solver, MathView Professional...
Наше занятие посвящено выдающейся представительнице этого ряда - программной среде Eureka (разработчик - фирма Borland). Ведут его ученики московской школы #1027 (лицей Московского энергетического института) В.Л.ВИНОГРАДОВ, С.И.ВОЛКОВ, А.Г.КАРЛСЕН, Е.В.НИКОЛАЕВ, А.А.ОБРАЗЦОВ, А.В.ПОЛЯНСКИЙ, Д.В.ФЕДОРОВ и М.А.ХАКСЕЛЬБЕРГ.
То, что в работу "Школы" включились старшеклассники, доказывает, сколь широк круг потенциальных авторов этой рубрики. Если вы хотите провести какое-либо из занятий "Школы", прочтите ее программу, опубликованную в 12/89. Посоветуйте обратить на нее внимание знакомым опытным пользователям ЭВМ. Присланный вами текст отдельного занятия не должен превышать 24 машинописных страниц.
Если вы сформулировали математическое описание задачи, то не спешите кодировать ее решение, общаясь с компьютером на одном из традиционных языков программирования (Бейсик, Паскаль, Фортран и т.д.). Есть программные средства, позволяющие сообщать машине условия задачи на естественном языке, не прибегая к программистским премудростям.
"Эврика!" - воскликнет специалист - непрограммист, услышав о существовании подобных программных продуктов. Вот, наверное, поэтому один из самых популярных пакетов для решения задач на естественном для человека языке, созданный фирмой Borland (той самой, чьи разработки начинаются со слова Turbo: TurboBASIC, TurboPascal, TurboC, TurboProlog), назван Eureka - Эврика.
Рассказ о том, как можно общаться с компьютером посредством пакета Eureka, начнем не совсем обычно - с беседы чеховских персонажей: купца Удодова, его сына Пети и Петиного репетитора семиклассника Зиберова.
- Теперь по арифметике... Берите доску. Какая следующая задача?
Петя плюет на доску и стирает рукавом. Учитель берет задачник и диктует:
- "Купец купил 138 аршин черного и синего сукна за 540руб. Спрашивается, сколько аршин купил он того и другого, если сннее стоило 5руб. за аршин, а черное 3руб.?" Повторите задачу.
Петя повторяет задачу и тотчас же, ни слова не говоря, начинает делить 540 на 138.
- Для чего же вы это делите? Постойте! Впрочем, так... продолжайте. Остаток получается? Здесь не может быть остатка. Дайте-ка я разделю!
Зиберов делит, получает 3 с остатком и быстро стирает.
"Странно...- думает он, ероша волосы и краснея.- Как же она решается? Гм!.. Это задача на неопределенные уравнения, а вовсе не арифметическая"...
Учитель глядит в ответы и видит 75 и 63.
"Гм!.. странно... Сложить 5 и 3, а потом делить 540 на 8? Так, что ли? Нет, не то".
- Решайте же!- говорит он Пете.
- Ну, чего думаешь? Задача-то ведь пустяковая!- говорит Удодов Пете.- Экий уж ты дурак, братец! Решите уж вы ему, Егор Алексеевич.
Егор Алексеевич берет в руки грифель и начинает решать. Он заикается, краснеет, бледнеет.
- Это задача, собственно говоря, алгебраическая,- говорит он.- Ее с иксом и игреком решать можно. Впрочем, можно и так решить. Я, вот, разделил... понимаете? Теперь вот надо вычесть... понимаете? Или вот что... Решите мне эту задачу сами к завтраму... Подумайте...
Петя ехидно улыбается. Удодов тоже улыбается. Оба они понимают замешательство учителя. Ученик VII класса еще пуще конфузится, встает и начинает ходить из угла в угол.
- И без алгебры решить можно,- говорит Удодов, протягивая руку к счетам и вздыхая.- Вот извольте видеть.
Он щелкает на счетах, н у него получается 75 и 63, что и нужно было.
- Вот-с... по-нашему, по-неученому.
Фрагмент из миниатюры А.П.Чехова "Репетитор" предварил наш рассказ о среде Eureka по трем причинам:
1. Описанная ситуация очень часто повторяется и сейчас. Только люди стали протягивать руку не к счетам, а к персональному компьютеру. (Правда, наши люди по-прежнему, как правило, щелкают на счетах или в лучшем случае прибегают к помощи калькулятора. Удодов-отец, вздыхая, как бы предчувствовал темпы компьютеризации в нашей стране). Среда общения с персональным компьютером Eureka и подобные ей программные продукты позволяют протягивать руку к ЭВМ (ежели они имеются) все более широким массам трудящихся, незнакомым с азами программирования.
2. Процесс компьютерного решения задачи в среде Eureka во многом похож на подход Удодова-отца. Машине достаточно сообщить только условия задачи, а как там ЭВМ "прощелкает ее на счетах" - это ее личное дело. Главное, чтобы ответ сходился.
3. И современная, и прошлого века - обратитесь еще раз к рассказу А.П.Чехова - методика преподавания школьной (и не только школьной) математики, физики, химии и других предметов ориентирована, как правило, не на постановку задачи, а на решение уже кем-то сформулированных проблем. Компьютеризация школы, базирующаяся на преподавании языков программирования (Бейсик или Паскаль, Фортран или Рапира), в качестве основ информатики ничего фактически не меняет в этом не совсем нормальном положении вещей. Среды общения с ЭВМ на почти естественном для человека языке, к которым относится Eureka, позволяют больше внимания уделять постановке проблемы, математическому моделированию реальных ситуаций, а не методикам решения надуманных задач.
Помня о том, что лучше один раз увидеть, чем сто раз услышать, мы помещаем здесь изображение (hardcopy) экрана дисплея с решением в среде Eureka вышеописанной задачи о купце и сукне. Заранее просим простить за то, что дальнейший текст будет густо пересыпай английскими терминами. Но делать нечего. Хотите быть на ты с вычислительной техникой - учите английский язык.
При работе в среде "Эврика" экран дисплея разбивается на окна и превращается в своеобразную оконную раму, вернее, в витраж. Сходство с витражом усиливается тем, что пользователь может раскрасить эту картинку, используя палитру цветного дисплея и изменяя окраску букв, фона, рамок.
При работе в среде Eureka экран разбивается на 5 окон (см. рисунок):
- окно главного меню (Eureka: The Solver) с названиями восьми "блюд": работа с файлами (File), ввод через клавиатуру и редактирование задачи (Edit), решение задачи (Solve), специальные команды (Commands), создание отчетов о решении задачи (Report), построение графиков (Graph), дополнительные возможности (Options) н работа с окнами дисплея (Window);
- окно ввода через клавиатуру и редактирования (Edit; сейчас там записаны условия задачи Удодова). Точка с запятой (; ) означают начало комментария (вспомним слово REM или апостроф на Бейсике); в среде Eureka, как и на Бейсике, комментарий кончается вместе со строкой. Комментарий может содержать и буквы кириллицы, в тексте же задачи допустимы только латинские или греческие буквы. Сама задача проста - это система двух лннейных алгебраических уравнений (Зиберов был прав, считая
эту задачу алгебраической) с двумя неизвестными: black (метраж, вернее, аршинаж черного сукна) и blue (синего);
- окно решения задачи (Solution), куда машина в ходе решения по командам пользователя записывает переменные (Values), удовлетворяющие условиям поставленной задачи;
- окно проверки (Verify) результатов решения задачи. Если человек отдаст соответствующую команду, то машина подставит в формулы нз окна Edit значения переменных нз окна Solution н отметит разницу (difference) между левыми и правыми частями уравнений;
- окно отчета (Report) о решении задачи, куда машина записывает дату н время "прогонки" задачи, если она решалась на IBM PC/AT ("эйтишка" по сравнению с "икстишкой" оборудована часами с календарем и батарейкой - см. дальнейшие рисунки), имя и место хранения на диске (гибком или жестком) файла с ее условием, само условие, решение задачи и его проверку; отчет, кроме того, можно отпечатать на принтере или записать на магнитном диске.
В нижней части экрана дисплея отмечены "нагрузки" функциональных клавиш клавиатуры. Так, нажав клавишу F1 (Help), пользователь в новом окне, появившемся на экране дисплея, получит дополнительную информацию о работе в среде Eureka. После ее прочтения нужно нажать клавишу Esc (escape - убегать, исчезать), и рабочие окна, показанные на рисунке, будут восстановлены. Клавиша F5 позволяет увеличить (Zoom) любое окно на весь размер дисплея, клавиша F6 - перейти к работе в следующем (Next) окне (были в окне Edit, оказались в окне Solution и т.д.), клавиша F7 дает возможность перейти к любому из окон. Их размеры (Size) и местонахождение (Move) на дисплее, кстати, можно изменять. Для этого нужно нажать клавишу Scrool. После этого строка в нижней части дисплея изменится: там пользователь увидит инструкцию о том, какие клавиши следует нажимать, чтобы изменить размеры и местонахождение окон дисплея.
В окнах Report и Verify на рисунке уместилась только часть информации. Но предусмотрена возможность полного ее просмотра: для этого следует через главное меню раскрыть (F5-Zoom) нужное окно - сначала нажать клавишу Esc, чтобы выйти в основное меню (см. верхнюю часть рисунка), а затем, "ткнув" в название одного из "блюд" Edit, Solve, Report и т.д., войти в нужное окно. Постоянные читатели нашей "Школы" помнят, что на Лексиконе (см. 5/90) активизация основного меню достигается нажатием не клавиши Esc, a клавиши F10. Клавиша же Esc на Лексиконе выполняет обратную операцию - перебрасывает курсор (точнее, курсорную рамку-указатель) из главного меню в рабочее окно с редактируемым текстом. Эти отличия вызваны тем, что Eureka и Лексикон создавались в то время, когда системные программисты еще полностью не договорились о стандарте условных знаков общения человека с машиной. В программной среде QuickBASIC (программы, написанные на этом языке, мы часто помещаем в разделе "Человек и компьютер", а само описание языка мы планируем дать в одном из последующих уроков "Школы") эта же операция (переход к главному меню) выполняется нажатием клавиши Alt. В среде интегрированного пакета Framework III (текстовый процессор - электронные таблицы - базы данных - деловая графика - телекоммуникации; о Framework III речь также впереди) этой же функцией нагружена клавиша Ins. Но такому разнобою удивляться нечего! Попросите немца показать цифру 2, и он поднимет вверх большой и указательный пальцы. Русский же для этой операции использует указательный и средний. Вот так-то. А мы еще ждем какого-то однообразия от машин. Но "стреляного" пользователя персональных компьютеров такой разнобой в тупик не поставит: несколько минут общения с незнакомым программным продуктом - и он освоен. Тем более что на компьютерах последних марок все нюансы общения человека с машиной сглаживает устройство "мышь", ликвидирующее границы для курсора на экране дисплея.
В данный момент (см. все тот же рисунок) активизировано, а именно подготовлено к раскрытию окно Report, о чем свидетельствует его двойная рамка. Текст появившегося там отчета можно отредактировать, сделать, например, более компактным или записать какие-то комментарии, а уже потом отпечатать на бумаге. Так же будет сделано с отчетами о решении дальнейших задач, которыми будут далее проиллюстрированы некоторые особенности работы в среде Eureka. Каждый из этих отчетов разбит рядами звездочек на три зоны: заголовок, условие и решение.
Общая технология решения задач в среде Eureka обычно такова. Включается компьютер, далее запускается программа с именем eureka.exe в директории ЕКА. Эту директорию и позицию в меню пользователя, кстати, можно увидеть на первом рисунке второго урока нашей "Школы" (см. 3/90), посвященного надстройкам над дисковыми операционными системами. Вскоре после этого на экране дисплея появляются окна среды Eureka (рисунок внизу). Нижние четыре окна при этом будут пустые, а первое "блюдо" меню (File) выделено фоном. Этот фон, выполняющий роль указателя для "тыканья" в компьютерные "блюда", с помощью курсорных клавиш можно передвигать вдоль меню. Выбор нужного режима осуществляется нажатием клавиши Enter (ввод). При этом может появиться новое меню, как показано на том же рисунке: так выглядит экран после выбора режима File (работа с файлами на дисках). После "тыканья" в "блюдо" Load (загрузка) машина покажет, какие старые задачи есть у нее в архивной памяти. В центре рисунка показано, как реагирует на такую просьбу машина: в появившейся рамке вверху перечислены имена пяти файлов с расширением *.ЕКА, хранящих некоторые задачи нашего урока. Той же курсорной рамкой-указателем можно выбрать нужную (например, ANIMALS.EKA). Нажали клавишу Enter - и она в окне Edit. Займемся ею.
"Не красна ЭВМ своим быстродействием и объемом памяти, а красна своим математическим обеспечением" - так можно переиначить известную пословицу, глядя на библиотеку "Эврики". И если там есть программа решения вставшей перед вами задачи, на нее достаточно навести курсорную рамку и нажать клавишу "Ввод".
Итак. ПРИМЕР 1. На скотном дворе бегают куры и кролики Всего у них 12 голов и 28 ног Спрашивается: сколько на дворе кур и сколько кроликов?
Условие этой простенькой задачи, записанное в среде Eureka (см. рисунок), почти полностью совпадает с ее словесным описанием. Для записи условия нужно цепочкой команд Esc-Edit-Enter перебросить курсор в окно Edit, активизировать это окно, как говорят программисты. При этом включится в работу небольшой текстовый процессор среды Eureka, позволяющий писать и редактировать тексты - условия задач. (Текстовым процессорам были посвящены 3 и 4-е занятия нашей "Школы" - см. 5,7/90). В условие человек должен вложить все свои знания об объекте моделирования и комментарии, чтобы потом не запутаться,- то, что у курицы и у кролика по одной голове, но по паре и по паре пар ног соответственно. Эти свойства объекта составляют, как и в задаче Удодова, систему двух линейных алгебраических уравнений. Работая в среде Eureka, полностью решить поставленную задачу проще, простого. Для этого нужно цепочкой команд Esc-File-New полностью очистить все окна среды Eureka от "остатков" предыдущей задачи. Парой команд Esc-Edit войти курсором в очищенное окно Edit. где через клавиатуру ввести условие задачи с комментариями. Наконец, командами Esc-Solve заставить машину решить ее.
"Это же смесь французского с нижегородским!" - воскликнет иной читатель, взглянув на решение задачи в среде •Эврика". Но так приходится поступать отечественным пользователям персональных компьютеров: вставлять буквы кириллицы в имена переменных нельзя, а совсем уж отказываться от русского языка не хочется.
Ответ будет автоматически записан в окно Solve, но не сразу, а по истечении некоторого времени, отпущенного на решение задачи. Чтобы пользователь в это время не нервничал, думая, что машина зависла, ЭВМ в центре экрана помещает маленькую рамочку с информацией о том, сколько секунд прошло от начала решения задачи и каково на данный момент значение максимальной ошибки в расчетах.
Обычно на решение задачи отводится не более 2-3 минут. Но пользователь может досрочно прервать расчет аккордом Ctrl-Break. После этого в окне Solve появятся приближенные значения переменных на тот момент, в котором была прервана работа машины. Цепочкой команд Esc-Commands-Find other (найти другое) прерванный процесс можно продолжить. Так пользователь, не дожидаясь завершения расчета, может выяснить, в верном ли направлении он идет, и в случае необходимости направить компьютер на путь истинный, например, введя новые требования к искомому результату - допустим, понизить точность, с которой он должен быть определен.
Чтобы решение было скопировано на принтере, нужно выполнить такую цепочку: Esc-Report. По умолчанию машина выводит текст решения на экран дисплея (Screen), но можно цепочкой команд Esc-Report-Print (или File) заставить машину вывести ответ на бумагу (или на магнитный слой винчестера или дискеты).
Но вернемся на некоторое время к тому моменту, когда в главном меню мы выбрали "блюдо" File. Судя по списку, появившемуся в левом верхнем углу экрана после нажатия клавиши Enter (обведен рамкой на рисунке), среда Eureka предоставляет пользователю следующие услуги:
- загрузка (Load) с диска в окно Edit старой задачи (еще раз вглядитесь в предыдущий рисунок, где представлены имена пяти задач, решаемых в среде Eureka, хранящихся на диске С).
- очистка окон перед решением новой (New) задачи;
- сохранение (Save) задачи на диске - к этому режиму прибегают при записи на диск новой задачи, когда считают, что к ней когда-то придется вернуться;
- запись (Write to...) задачи на диск, но с новым именем - этот режим незаменим при записи на диск модернизированной старой задачи;
- просмотр содержимого директорий (Directory) дисков;
- смена (Change dir) текущей директории рабочего диска;
- переименование (Rename) файлов на диске;
- временный выход из среды Eureka в операционную систему (OS shell);
- покидание (Quit) среды Eureka.
Подобные перечни есть у всех режимов главного меню, кроме Edit и Solve. He боясь быть назойливыми, вкратце повторим сказанное о них. Выбор режима Edit (перемещение пользователем фона-указателя на это слово в главном меню и нажатие клавиши Enter) сразу приводит к активизации окна Edit, где после этого можно записать или подправить условие задачи (см. самый первый рисунок). После того как задача будет сформулирована, нажимается клавиша Esc для входа в главное меню, где дается команда Solve, заполняющая решением задачи окно Solution. Подобным образом можно заполнить окно Verify и Report и получить картинку, показанную на первом рисунке. Выбор нужного режима из меню можно осуществить и другим способом, нажимая одновременно управляющую клавишу (Ctrl) и клавишу с заглавной буквой названия режима. Если у компьютера есть "мышь", то это совсем упрощает работу: для выбора нужного режима следует поелозить "мышью" по столу (установить курсор "мышь" на название режима) и нажать левую кнопку "мыши".
ПРИМЕР 2. Найти координаты центра и радиус окружности, проходящей через три точки на плоскости с координатами (x-y): 26-4, 9-21 и 17-17.
На рисунке представлен отчет о решении этой задачи в среде Eureka. Она сводится к поиску корня системы трех нелинейных алгебраических уравнений, полученных приложением теоремы Пифагора (сумма квадратов катетов прямоугольного треугольника равна квадрату гипотенузы) к координатам трех исходных точек и искомого центра окружности.
"Доверяй, но проверяй!" В среде "Эврика" этот лозунг реализуется при подробной проверке (верификации) решения задачи. Машина подставит найденные значения переменных в использованные формулы и вычислит, насколько велика разница между левой и правой частью, предупредит ошибочные действия пользователя и т.д.
Эта система имеет два решения, где значения радиусов равны по модулю, но отличаются по знаку. Поэтому не будет лишним в условии задачи записать первое приближение к решению, опираясь на которое машина и быстрее, и точнее найдет ответ. В противном случае ЭВМ подобно Буриданову ослу может "метаться" между возможными решениями, не склоняясь ни к одному из них. Правые и левые части уравнений в условии задачи разделяются либо знаком = (равно), либо знаком := (соответствует). Этим как бы расставляются приоритеты: решая поставленную задачу, машина в первую очередь старается удовлетворить выражения со знаком =, а потом уже по возможности (принцип остаточности) и те, какие разделены знаком :=.
Прогонку задач с двумя и более решениями, из которых только одно удовлетворяет оговоренным условиям, всегда следует завершать проверкой (нажали клавишу Esc, ткнули в блюдо Commands, а в появившемся новом меню - в блюдо Verify). Это и было сделано при решении задачи об окружности на плоскости: отчет заканчивается подсчетом отклонений левых и правых частей уравнений, которые среда Eureka постаралась превратить в тождества.
Разобранный пример можно расширить, заставив машину работать не с, тремя, а с четырьмя и более точками на плоскости. ЭВМ при этом найдет (или по крайней мере постарается найти) координаты окружности, наилучшим образом вписывающейся в заданные точки. Такая особенность среды Eureka - это ее и достоинство, и недостаток. С одной стороны, она позволяет решать не совсем корректно поставленные задачи, по которым нужно найти какое-нибудь более-менее удовлетворяющее человека решение, а с другой - эта особенность может обернуться тем, что машина выдаст человеку совсем не то, что он от нее ожидал.
Можно отметить, что систему трех нелинейных уравнений, описывающих задачу об окружности, можно свести к системе линейных уравнений за счет несложных преобразований, отняв, например, первое нелинейное уравнение от второго и т.д. Но среда Eureka тем н хороша, что она позволяет решать задачи в их, так сказать, первозданном математическом описании без упрощений, которые очень часто затрудняют понимание сути задачи. Общение с компьютером вырабатывает у человека так называемый KISS-принцип: keep it simple, stupid! - делай это проще, дурачок!
ПРИМЕР 3. Требуется из круглой жестянки изготовить пожарное ведро максимального объема. Технология изготовления ведра такая: из заготовки вырезается и выкидывается сектор, затем полученная таким образом выкройка сворачивается в конус, а шов проваривается (клеится, паяется).
Поставленную задачу на оптимум можно, конечно, решить аналитически. Для этого необходимо вывести зависимость, связывающую объем ведра-конуса (функция) и угол сектора-вырезки (аргумент). Затем нужно взять первую производную от этого выражения и найти ее корень. Не обойтись тут и без второй производной, если иужио удостовериться, что найденная точка (угол выреза) отмечает максимум, а не минимум или перегиб. Жестянщик, которому поручат сделать пожарное ведро, скорее всего не знаком с дифференциальным исчислением. Но в среде Eureka поставленная задача ему окажется по плечу - см. рисунок.
"Описывай, не мудрствуя лукаво..."- так пушкинский монах Пимен обучал инока Григория искусству летописания. Этот совет уместен и при работе с "Эврикой": сообщайте машине простыми фразами все, что вы знаете о предмете задачи,- и машина сама приведет введенную в нее информацию и нужному для нее виду.
Пусть диаметр заготовки равен одному метру. Этого в условии задачи можно было бы и не оговаривать, так как, во-первых, значение оптимального угла выреза не зависит от диаметра заготовки, а во-вторых, переменной D по умолчанию машина сама бы присвоила единичное значение. Это одна из особенностей среды Eureka, отличающая ее, скажем, от Бейсика, где переменные по умолчанию обнуляются.
Далее (см. рисунок), исходя из здравого смысла, устанавливается допустимый диапазон изменения угла вырезки, чтобы машина не "залезла" в отрицательную область или в область больших углов (вспомним синусоиду с бесчисленным множеством корней, максимумов и минимумов). Два последующих выражения вытекают из несложной геометрии круга и конуса: длина дуги выкройки становится длиной окружности основания конуса, а высота конуса, радиус его основания и радиус заготовки связаны теоремой Пифагора. Число PI (3.14) в первом выражении можно, конечно, сократить. Но тогда геометрический смысл этого выражения стал бы пониматься с большим трудом. Вообще-то, работая со средой Eureka, нужно стараться сообщать машине как можно больше данных об объекте моделирования. Пусть машина берет из них то, что ей нужно для расчета, а что не нужно она сама пропустит.
Если определены параметры конуса (диаметр основания из первого выражения, а высота из второго), то можно выразить через эти параметры его объем V=V(a) и поручить машине максимизировать (max) эту величину, варьируя значение угла выреза. Служебное слово max, записанное в условии задачи о пожарном ведре,- "гвоздь программы". Видя его в тексте задачи, машина понимает, что нужно не просто решать систему уравнений, а искать такие значения переменных, при которых указанная функция примет максимальное значение.
Из последнего выражения в условиях задачи (оценка угла через тангенс) видно, что Eureka оперирует углами в радианах.
ПРИМЕР 4. Транспортная задача, связанная с оптимизацией перевозки грузов. В городе NN имеются два продовольственных склада и две пекарни. Необходимо ежедневно с первого склада вывозить 50 тонн муки, а со второго 70. Первая пекарня при этом получает 40, а вторая - 80 тонн. Спрашивается, как нужно спланировать работу транспорта исходя из затрат на перевозку муки со складов на пекарни, чтобы общая сумма затрат была минимальной.
На рисунке представлен отчет о решении этой задачи в среде Eureka: минимум затрат на перевозку муки составляет 134 рубля в сутки. Как ни странно, но на первую пекарню со второго склада мука не завозится (М3=0), хотя такие перевозки самые дешевые - 80 копеек за тонну. Для спасения горящего месячного, квартального или годового плана этим парадоксом может воспользоваться плановик автокомбината, осуществляющего перевозку муки. Для этого необходимо слово MIN в условиях транспортной задачи (см. рисунок) заменить на слово МАХ. В этом случае затраты на перевозку увеличатся до 142 рублей в сутки, хотя внешне все будет выглядеть вполне прилично: M1=0, М2=50, М3=40, М4=40 - на первую пекарню мука завозится только со второго склада. В условиях нашей самоедской экономики с ее девизом "План любой ценой!" плановик автокомбината, оправдывая и свое название, и существование, может "похимичить" еще более серьезно, снимая табу типа М1>0 и благословляя тем самым встречные перевозки. Среда Eureka этого не запрещает: деньги не пахнут, а вычислительные машины не краснеют.
За условиями, требующими от переменных задачи, чтобы они были больше нуля, следуют четыре строки комментариев. Собственно, это не комментарии, а рассуждения пользователя, изложенные в удобной для него табличной форме. А почему бы и нет? "Эврика" располагает к вдумчивой работе - а это залог успеха.
После всего сказанного мы можем со знанием дела разобрать вопрос: что же умеет Eureka?
Кроме элементарных операций, выполнимых в этой программной среде (вычисление синуса, косинуса, логарифма и др.), здесь можно увидеть и экзотические операции: взятие производной (deriv) и интеграла (integ), подсчет нормального распределения (ncum), расчет сложных процентов (fval, paymt, pval) и суммы ряда (sum). Как вставлять в математические выражения синусы и косинусы, знают, наверно, все. А вот как пользоваться экзотикой среды Eureka, нужно пояснить. Например, чтобы взять производную косинуса, нужно написать deriv(cos(X),X). Если требуется вычислить нормальное распределение, то тут поможет функция пользователя.
F(X) = 1/SQRT(2*РI)*INTEG(EXP(-T 2/2), Т, 0, X), опирающаяся на определенный интеграл по Т, нижняя граница которого равна нулю, а верхняя - текущему значению X.
Богатый набор встроенных функций позволяет решать в среде Eureka разнообразные задачи - тут и аппроксимация методом наименьших квадратов, и построение графиков, и решение алгебраических, дифференциальных, интегральных уравнений, а также систем из них, поиск максимального или минимального значения функции при заданных условиях. Проблема, выливающаяся в десяток-другой алгебраических, дифференциальных или интегральных уравнений, среде Eureka часто оказывается не по зубам. В таких случаях она может прервать решение, словно чувствуя, что дело затягивается и пользователю это уже начинает не нравиться. Как бы извиняясь, она выдает какое-то приближенное решение - пользователь после его проверки (Verify) должен сам решить, что делать дальше с этим результатом.
Работа со средой Eureka требует знания некоторых "волшебных" слов. Например, сказав машине "$ complex = yes>, мы тем самым попросим ее поискать комплексные корни уравнений и систем, состоящие из действительных (re) н мнимых (im) частей. При аппроксимации опытных данных методом наименьших квадратов достаточно сообщить машине вид сглаживающего уравнения с неопределенными коэффициентами, параметры опытных точек и сказать "$ substlevel = 0". С эвриканского на русский оно переводится примерно так: "Найти значения коэффициентов уравнения, при которых экспериментальные точки минимально отклоняются от искомой кривой".
Успех решения задачи очень сильно зависит от начально заданных условий (опорная точка - взглянем еще раз на пример 2), которые может знать только специалист по решаемой проблеме. Подобными подсказками он будет как бы подталкивать машину к правильному решению. Если традиционные языки программирования (кроме, наверное, Бейсика) создавались программистами для собственного, так сказать, употребления, то среда Eureka - это в первую очередь инструмент прикладника-непрограммиста.
Еще одна "экологическая ниша" для среды Eureka и других ей подобных - это сфера обучения - вспомним о чеховском начале нашего рассказа. Здесь очень пригодятся графические возможности среды Eureka. Здесь показано еще одно окно (Plot), в котором пользователь может рисовать различные графические объекты.
Широк набор встроенных функций, велики графические возможности "Эврики". Ее иногда упрекают в том, что она не способна строить объемные графики функций двух переменных, как это делают другие подобные ей среды. Однако "Эврика" умеет строить разрезы многомерных функций, облегчая их анализ.
Построить график в среде Eureka проще простого. Нужно "ткнуть> (см. рисунок) в слово Graph главного меню, а в появившемся новом меню - в слово Function. После этого машина запросит внд функции (Enter function), на что человек должен ответить Y = sin(X)/X или чем-то другим, что ему нужно в данный момент.
Далее человек "тыкает" в слово Plot, на что машина реагирует запросом начального и конечного значений аргумента. Результатом этого диалога в стиле "тычков" и будет то, что показано на рисунке. Встроенные функции INTEG и DERIV при необходимости помогут просмотреть вид первообразной и производной введенной функции.
На только что рассмотренном рисунке осталось нерасшифрованным слово List. Этот режим позволяет протабулировать введенную функцию. При этом начальное значение аргумента, шаг его изменения и число точек табуляции задаются пользователем по запросу машины. Таблица заносится в седьмое рабочее окно среды Eureka под названием List.
ЛИТЕРАТУРА
Очков В.Ф. Рассказ о трех Э ("Эврика", экономика, этика). "Информатика и образование", 2/90.
Очков В.Ф., Хмелюк В.А. От микрокалькулятора к персональному компьютеру (глава "Программирование без программирования"). М., изд-во МЭИ, 1990.
Сейтер Ч. Математика без слез. "Мир ПК", 2/90.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
Сначала - мелочи. Конечно, в НиЖ такое было почти в каждом номере, но тут попалось на глаза.
10/90
"АПОГЕЙ" - СТАРШИЙ БРАТ "МИКРОШИ"
Семейство микроЭВМ, предназначенных для тех, кто собирается сделать первые шаги в мир информатики, продолжает пополняться. Всего несколько лет назад выбор был ограничен двумя или тремя машинами, вспомним "Микрошу", "Электронику БК-0010" и "Агат". Сегодня, несмотря на дефицит, распространившийся едва ли не на все виды товаров, будущий владелец микроЭВМ может выбирать из нескольких моделей с различными возможностями.
Вот, например, микроэвм "Апогей-БК01", она как бы воплощает многочисленные пожелания владельцев "Микроши" (см. 10/89) в части ее доработки.
У "Апогея" вдвое расширена память - до 64 Кбайт, но отрадно, что при этом компьютер продается за 560 рублей, всего на 60 рублей дороже "Микроши" - сравнительно небольшая дань за существенное расширение возможностей.
Еше одна черта, отличающая "Апогей",- улучшенная программа-монитор, хранящаяся непосредственно в постоянной памяти микроЭВМ. Этот монитор позволяет считывать и записывать на кассетный магнитофон не только программы, предназначенные для "Микроши" ("Кристы"), но и те, что записаны в формате популярного радиолюбительского компьютера РК-86, а также в распространенном формате MSX (микроЭВМ "Сура" и другие).
Следует упомянуть о двух кассетах, которые входят в комплект поставки компьютера. Здесь редактор, ассемблер и дизассемблер, необходимые тем, кто собирается программировать на ассемблере, три различные версии Бейсика, графический редактор, 36 программ для инженерных расчетов (и отдельное описание к ним), а также 24 игровые программы на ассемблере и Бейсике.
Разработчики обещают в скором времени выпустить новую модель "Апогея", способную работать в цвете.
В наше время продаж по паспортам и визитным карточкам трудно советовать, где и как приобрести ту или иную вещь. Когда готовилась эта заметка, москвичи могли купить "Апогей-БК01" через московский фирменный магазин-салон "Радиотехника" (Новокузнецкая ул. 17/19).
А.БОРИСОВ
КОМПАС XX ВЕКА
Этот карманный прибор, продающийся а Швейцарии, устанавливает связь с навигационными искусственными спутниками и сообщает своему владельцу точные координаты его местонахождения (некоторые навигационные спутники дают точность до 30 сантиметров), курс и скорость движения, направление на пункт назначения, расстояние до него и время прибытия туда. Навигационным прибором "Магеллан" могут пользоваться авиаторы, яхтсмены, водители и просто пешеходы.
Polyscope 12/90
ЦИФРОВАЯ ЛИНЕЙКА
Намного облегчает работу инженера или чертежника электронная линейка, предложенная французской фирмой "Жифак". Благодаря заключенному в ней микрокалькулятору она позволяет производить расчеты и измерения длины, результаты которых появляются на дисплее. Мало того, откидной рычажок позволяет измерять углы с точностью до одной, десятой градуса, величина угла также высвечивается на индикаторе.
Usine nouvelle technologies 1/90.
ВЯЗАНИЕ ПО ТЕЛЕВИЗОРУ
Новая вязальная машина известной фирмы "Зингер" подключается через видеовход к телевизору и позволяет конструировать узор и форму изделия на экране. Затем в ходе работы на экране отображается ее продвижение.
По сообщению фирмы.
10/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ
Когда-то в нашем разделе публиковались программы исключительно для микрокалькуляторов. Среди них были настолько хорошие разработки, что приверженцы карманных ЭВМ до сих пор пользуются ими. Причем многие не только пользуются, но совершенствуют и развивают, а усовершенствованные варианты присылают в редакцию. Вот из таких программ и сформирован нынешний "выпуск в стиле "ретро"".
Что в нем? Рижанину М.Газарову удалось создать новый тип универсальной программы, сама идея которой была провозглашена в 2/88. Перевод на язык МК-61 программ Г.Славина "Поиск экспериментальной зависимости" и А.Несчетного "Охота на лис", опубликованных в нашем разделе на языке БЗ-34, не только позволил избавиться от команд со стрелками, но и открыл новые возможности. Разумным компромиссом между автоматической работой калькулятора и ручным трудом оператора явилась программа хабаровчанииа Ю.Александрова, определяющая адрес записи в ППЗУ МК-52,- она получилась вдвое короче, чем программа В.Смирнова (1/89).
Так как все материалы нынешнего выпуска основаны на прежних публикациях раздела, в ссылках указывается только номер журнала и год. Ну и, конечно, все программы, собранные здесь, предназначены исключительно для микрокалькуляторов - как когда-то.
УНИВЕРСАЛЬНАЯ ПРОГРАММА
x**n+A[n-1]x**(n-1)+...+A1x+A0=0
Программа предназначена для решения уравнений вышеприведенного типа на микрокалькуляторах МК-52 и МК-61. Коэффициенты уравнения должны быть действительными, степень - от двух до восьми. Корни уравнения находятся путем последовательного выделения из исходного многочлена квадратичных множителей x**2+px+q и определения корней каждого из них. Вероятность зацикливания весьма невысока из-за того, что приняты меры, ослабляющие влияние ошибок округления. Если исходное уравнение не содержит кратных или близко расположенных корней, то ошибка их определения не превышает единицы шестого знака результата.
00. ПХ0 01. 1 02. ХПД 03. F10X 04. ХП0 05. x-y 06. - 07. ХП1 08. Сх 09. ХПС 10. B^ 11. ХПЕ 12. x-y 13. ПХС 14. + 15. КПХ0 16. ПХС 17. ПХВ 18. * 19. - 20. ПХД 21. ХПС 22. ПХА 23. * 24. + 25. ХПД 26. F() 27. ПХ2 28. Fx=0 29. 47 30. ПХО 31. ХПЕ 32. ПХД 33. KXПE 34. FL1 35. 15 36. Ксч 37. ХПА 38. ХПВ 39. ПХ0 40. 2 41. + 42. ХП2 43. В/0 44. /-/ 45. Fsqr 46. К- 47. F() 48. ПХА 49. * 50. ПХВ 51. ПХЕ 52. * 53. - 54. x-y 55. FL1 56. 11 57. ХП1 58. FBx 59. ПXC 60. * 61. x-y 62. ПХД 63. * 64. - 65. x-y 66. ПХЕ 67. * 68. ПХ1 69. Fx2 70. - 71. / 72. ПХВ 73. x-y 74. + 75. ХПВ 76. ПХА 77. ПХС 78. FBx 79. ПХЕ 80. * 81. - 82. ПХ1 83. / 84. - 85. ХПА 86. FBx 87. Fsin 88. F10X 89. Flg 90. Fx=0 91. 00 92. ХП2 93. + 94. 2 95. / 96. B^ 97. Fx2 98. ПХВ 99. - -0. Fx>=0 -1. 44 -2. Fsqr -3. + -4.С/П.
При разработке программы были использованы метод приближенного вычисления корней, описанный в книге Р.С.Гутера и Б.В.Овчинского "Элементы численного анализа и математической обработки результатов эксперимента" (Москва, "Наука", 1970), а также программа 125. Выделение квадратичного множителя из многочлена шестой степени из книги Я.К.Трохименко и Ф.Д.Любича "Радиотехнические расчеты на программируемых микрокалькуляторах" (Москва, "Радио и связь", 1988).
Перед пуском программы переключатель Р/ГРД/Г устанавливают в положение Г. Коэффициенты решаемого уравнения вводятся в порядке старшинства, начиная с А[n-1], в регистры 9, 8, 7 и т.д. В нулевой регистр заносится число 10-n; если решается уравнение, степень которого ниже восьми, то это же число заносится и в регистр 2. В регистры А и В заносятся выбранные пользователем первые приближения коэффициентов р и q первого квадратичного множителя. Это могут быть нули или другие числа, которые, по мнению пользователя, обеспечивают более быстрое вычисление коэффициентов такого множителя.
Процесс вычислений начинается после нажатия клавиш В/О С/П и может быть достаточно длительным. Если после останова на индикаторе высвечивается ЕГГОГ, то корни у выделенного квадратичного множителя комплексно-сопряженные. Для получения вещественной части нажимают клавишу x-y. При повторном ее нажатии на индикаторе появляется мнимая часть корня. Если же на индикаторе высвечивается число, то корни у выделяемого квадратичного множителя - действительные числа и на индикаторе - первый корень. Для получения второго нажимают клавишу "минус". Если после окончания вычисления всех корней предполагается провести проверку, то из регистра А извлекают коэффициент р (он хранится там с обратным знаком), а из регистра В вызывают q. Последующие квадратичные множители и их корни определяются после пуска программы командами В/0 С/П. В уравнениях нечетной степени при вычислении корня последнего квадратичного множителя, который всегда является действительным числом, на индикаторе сначала появляется ЕГГОГ, сам же корень с обратным знаком хранится в регистре 9.
Корни найдены правильно, если выполняются условия:
для уравнений четной степени - сумма всех р равна A[n-i], а произведение всех q равно А0;
для уравнений нечетной степени - сумма всех р равна A[n-i]+Xn, а произведение всех q равно А0/(-Хn), где Хn последний вычисленный корень.
Тест: х5-4х-2=0. Отсутствие членов с х4, х3 и х2 означает, что коэффициенты А4, А3 и А2 равны нулю.
Ввод исходных данных: 0 - в Р9, Р8, Р7: 4 /-/ - в Р6; 2 /-/ - в Р5; 10-5=5-в Р0 и Р2. Задаемся начальным приближением р и q: 1 - в РА и РВ.
Решение: В/0 С/П "-5.0849947-01". Это корень Х1 Расчет его занимает 7.5мин. Для получения Х2 нажимаем клавишу "минус". "-1.2435964" ПХА "-1.7520959". Это p1 с обратным знаком. ПХВ "6.3263812-01". Это q1. В/О С/П ЕГГОГ. Корни комплексно-сопряженные. Время решения 4.5 мин. Действительная часть x-y "1.1679185-01". Мнимая часть x-y "1.4384477" ПХА "2.335837-01" =-р2, ПХВ "2.0827722" =q2 В/0 С/П ЕГГОГ. Вычисление последнего корня занимает около минуты. ПХ9 "-1.5185122". Х5=1.5185122.
Проверка: р1+р2=1.7520959-0.2335837=1.5185122
А4+Х5=1.5185122
q1q2=0.63236812*2.0827722=1.3170787
А0/(-Х5)=(-2)/(-1.5185122)=1.3178786.
Корни определены правильно.
М.Газаров (Рига)
ВЫБОР ЭМПИРИЧЕСКОЙ ЗАВИСИМОСТИ
В отличной программе Г.Славина (2/8 ), позволяющей сравнивать эмпирическую кривую с шестнадцатью эталонными, использованы команды 34. КИП^ и 71. КП^, делающие невозможным ее прямое использование в МК-61. Кроме того, нет индикации номера эталонной кривой, с которой произведено сравнение, поэтому приходится его считать самому. А так как эталонных кривых 16, то вероятность ошибки не так уж мала.
Напомним вкратце, в чем суть метода. Выбирается такая система координат, в которой эталонная кривая изображается прямой. Искомая прямая проводится через начальную (Xi, Yi) и конечную (Х2, Y2) точки эмпирической кривой, а затем вычисляется отклонение (Е) средней точки эмпирической кривой (Хс, Yc) от эталонной прямой. Естественно, что Исследуемая зависимость должна быть монотонна, а координаты точек не должны принимать нулевых или отрицательных значений. Предлагаемая программа пригодна как для МК-61, так и Б3-34.
00. B^ 01. 9 02. ХП5 03. ПП 04. 34 05. Сх 06. С/П 07. B^ 08. Сх 09. ХП5 10. ПП 11. 34 12. Сх 13. ХП7 14. 9 15. ХП6 16. КПХ6 17. ХП9 18. 4 19. ХП0 20. ПХ0 21. ХП8 22. ПХ7 23. 1 24. + 25. ХП7 26. КПХ8 27. ПХ9 28. - 29. С/П 30. FL0 31. 20 32. БП 33. 16 34. F() 35. ХП8 36. F() 37. ХП7 38. x-y 39. ХП6 40. 4 41. ХП0 42. 7 43. 0 44. ХП9 45. ПХ7 46. ПХ8 47. ПХ6 48. КПП9 49. F() 50. КПП9 51. F() 52. КПП9 53. F() 54. F() 55. - 56. FBx 57. x-y 58. F() 59. - 60. x-y 61. F() 62. / 63. КХП5 64. ПХ9 65. 2 66. + 67. FL0 68. 44 69. В/0 70. Flg 71. В/0 72. F1/x 73. В/0 74. Fx2 75. B/0 76.В/0.
Правила ввода исходных данных не изменились. Y1 B^ Yc B^ Y2 В/0 С/П. Примерно через минуту на индикаторе появляется ноль. После этого можно продолжать ввод: X1 B^ Xc B^ X2 С/П. Через несколько секунд на индикаторе появится отклонение центральной точки исследуемой кривой от эталонной прямой. В регистре Y хранится номер эталонной кривой. Для его вызова на индикатор нажимают клавишу x-y. Так просматривают отклонения от всех шестнадцати кривых, нажимая каждый раз клавишу С/П.
В связи с тем, что была произведена перекомпоновка программы (получено новое качество, а программа стала даже на шаг короче), изменились и номера эталонных кривых по сравнению с исходной программой Г.Славина. Новая нумерация показана на рисунке.
Тест: Х1=10, Y1=2.228, Хс=30, Yc=2.042, Х2=120, Y2=1.98. Решение (значении Е даны округленно): 2.228 B^ 2.042 B^ 1.98 В/0 С/П "0" 10 B^ 30 B^ 120 С/П "E1=4.1" С/П "Е2=16.5" С/П "Е3=0.02" x-y "3" (эталонная кривая #3) С/П "Е4=0.9" С/П "Е5=1" С/П "Е6=16.4" С/П "Е7=-8.42-05" x-y "7" (это наилучшее приближение) С/П "Е8=0.8" ... С/П "Е16=0.9" x-y "16".
Ю.ГЛУХОВ (Макеевка, Донецкой
обл.),
В.КОЗЛЕНКО (Хмельницкий).
От редакции. Авторы этой статьи познакомились, да и то заочно, только на этой странице. В.Козленко ввел в программу для Б3-34 индикацию номера эталонной кривой, а Ю.Глухов сделал программу универсальной. Объединение двух программ произведено редакцией.
КАЛЬКУЛЯТОР - МАШИНА ДЛЯ ГОЛОСОВАНИЯ
В разделе "Человек и компьютер" помещались программы, полезные металлургам, топографам... Между тем жизнь заставляет обратить внимание на людей все новых профессий и занятий. Например, на тех, что ведут голосование на собраниях.
Для проведения голосования в небольших коллективах на современном техническом уровне достаточно иметь один или несколько программируемых калькуляторов. Чтобы не заставлять голосующих вставать со своих мест, желательно, чтобы калькулятор имел автономное питание. В этом случае его можно пустить по рядам. Предварительно в него вводится программа:
00. Сх 01. ХП1 02. ХП4 03. ХП5 04. ХП6 05. 1 06. B^ 07. С/П 08. 1 09. - 10. Fx=0 11. 15 12. КПХ6 13. БП 14. 21 15. Fx>=0 16. 20 17. КПХ4 18. БП 19. 21 20. КПХ5 21. ПХ1 22. 1 23. + 24. ХП1 25. БП 26. 00.
Волеизъявление происходит так: председательствующий нажимает клавиши В/0 С/П и после появления на индикаторе единицы отдает микрокалькулятор голосующим. Голосующие "за" нажимают клавиши + С/П, голосующие
"против" нажимают - С/П, а воздержавшиеся / С/П. После каждого нажатия С/П через 2-3 секунды на индикаторе появляется число проголосовавших к данному моменту. Когда голосование окончено, калькулятор передают счетной комиссии. На индикаторе и в регистре 1 - число принявших участие в голосовании. В регистре 4 - число голосов "за", в регистре 5 - "против", а в регистре 6 - число воздержавшихся. Для нового голосования нажимают клавиши В/0 С/П, после чего калькулятор готов к следующему туру голосования.
А.БЕЛОГОРЦЕВ (Севастополь)
ПОИСК ПРОСТЫХ ЧИСЕЛ
В 12/83 был объявлен конкурс на лучшую программу поиска простых чисел в их естественной последовательности. Откликаюсь на конкурсное задание, хотя и с "небольшим" опозданием.
00. ХП4 01. КПХ4 02. ПХ4 03. Fsqr 04. 1 05. + 06. ХП0 07. ХП7
08. КПХ7 09. x-y 10. ПХ7 11. - 12. FL0 13. 18 14. ПХ4 15. С/П 16. БП 17. 00 18. Fx=0 19. 22 20. БП 21. 01 22. ПХ4 23. ПХ0 24. / 25. БП 26. 07.
В регистр X вводят любое число и нажимают В/0 С/П. На индикаторе - ближайшее большее простое число. Для получения следующего простого числа нажать С/П. Пример: 21 В/0 С/П "23" (33с) С/П "29" (78с) С/П "31" (30с).
Е.ПЛЫШЕВСКИЙ (Волгоград).
От редакции. Остается лишь выразить сожаление, что эта программа не участвовала в конкурсе, итоги которого были подведены в 8/84. Она вполне бы могла стать его призером.
...
10/90
"АПОГЕЙ" - СТАРШИЙ БРАТ "МИКРОШИ"
Семейство микроЭВМ, предназначенных для тех, кто собирается сделать первые шаги в мир информатики, продолжает пополняться. Всего несколько лет назад выбор был ограничен двумя или тремя машинами, вспомним "Микрошу", "Электронику БК-0010" и "Агат". Сегодня, несмотря на дефицит, распространившийся едва ли не на все виды товаров, будущий владелец микроЭВМ может выбирать из нескольких моделей с различными возможностями.
Вот, например, микроэвм "Апогей-БК01", она как бы воплощает многочисленные пожелания владельцев "Микроши" (см. 10/89) в части ее доработки.
У "Апогея" вдвое расширена память - до 64 Кбайт, но отрадно, что при этом компьютер продается за 560 рублей, всего на 60 рублей дороже "Микроши" - сравнительно небольшая дань за существенное расширение возможностей.
Еше одна черта, отличающая "Апогей",- улучшенная программа-монитор, хранящаяся непосредственно в постоянной памяти микроЭВМ. Этот монитор позволяет считывать и записывать на кассетный магнитофон не только программы, предназначенные для "Микроши" ("Кристы"), но и те, что записаны в формате популярного радиолюбительского компьютера РК-86, а также в распространенном формате MSX (микроЭВМ "Сура" и другие).
Следует упомянуть о двух кассетах, которые входят в комплект поставки компьютера. Здесь редактор, ассемблер и дизассемблер, необходимые тем, кто собирается программировать на ассемблере, три различные версии Бейсика, графический редактор, 36 программ для инженерных расчетов (и отдельное описание к ним), а также 24 игровые программы на ассемблере и Бейсике.
Разработчики обещают в скором времени выпустить новую модель "Апогея", способную работать в цвете.
В наше время продаж по паспортам и визитным карточкам трудно советовать, где и как приобрести ту или иную вещь. Когда готовилась эта заметка, москвичи могли купить "Апогей-БК01" через московский фирменный магазин-салон "Радиотехника" (Новокузнецкая ул. 17/19).
А.БОРИСОВ
КОМПАС XX ВЕКА
Этот карманный прибор, продающийся а Швейцарии, устанавливает связь с навигационными искусственными спутниками и сообщает своему владельцу точные координаты его местонахождения (некоторые навигационные спутники дают точность до 30 сантиметров), курс и скорость движения, направление на пункт назначения, расстояние до него и время прибытия туда. Навигационным прибором "Магеллан" могут пользоваться авиаторы, яхтсмены, водители и просто пешеходы.
Polyscope 12/90
ЦИФРОВАЯ ЛИНЕЙКА
Намного облегчает работу инженера или чертежника электронная линейка, предложенная французской фирмой "Жифак". Благодаря заключенному в ней микрокалькулятору она позволяет производить расчеты и измерения длины, результаты которых появляются на дисплее. Мало того, откидной рычажок позволяет измерять углы с точностью до одной, десятой градуса, величина угла также высвечивается на индикаторе.
Usine nouvelle technologies 1/90.
ВЯЗАНИЕ ПО ТЕЛЕВИЗОРУ
Новая вязальная машина известной фирмы "Зингер" подключается через видеовход к телевизору и позволяет конструировать узор и форму изделия на экране. Затем в ходе работы на экране отображается ее продвижение.
По сообщению фирмы.
10/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ
Когда-то в нашем разделе публиковались программы исключительно для микрокалькуляторов. Среди них были настолько хорошие разработки, что приверженцы карманных ЭВМ до сих пор пользуются ими. Причем многие не только пользуются, но совершенствуют и развивают, а усовершенствованные варианты присылают в редакцию. Вот из таких программ и сформирован нынешний "выпуск в стиле "ретро"".
Что в нем? Рижанину М.Газарову удалось создать новый тип универсальной программы, сама идея которой была провозглашена в 2/88. Перевод на язык МК-61 программ Г.Славина "Поиск экспериментальной зависимости" и А.Несчетного "Охота на лис", опубликованных в нашем разделе на языке БЗ-34, не только позволил избавиться от команд со стрелками, но и открыл новые возможности. Разумным компромиссом между автоматической работой калькулятора и ручным трудом оператора явилась программа хабаровчанииа Ю.Александрова, определяющая адрес записи в ППЗУ МК-52,- она получилась вдвое короче, чем программа В.Смирнова (1/89).
Так как все материалы нынешнего выпуска основаны на прежних публикациях раздела, в ссылках указывается только номер журнала и год. Ну и, конечно, все программы, собранные здесь, предназначены исключительно для микрокалькуляторов - как когда-то.
УНИВЕРСАЛЬНАЯ ПРОГРАММА
x**n+A[n-1]x**(n-1)+...+A1x+A0=0
Программа предназначена для решения уравнений вышеприведенного типа на микрокалькуляторах МК-52 и МК-61. Коэффициенты уравнения должны быть действительными, степень - от двух до восьми. Корни уравнения находятся путем последовательного выделения из исходного многочлена квадратичных множителей x**2+px+q и определения корней каждого из них. Вероятность зацикливания весьма невысока из-за того, что приняты меры, ослабляющие влияние ошибок округления. Если исходное уравнение не содержит кратных или близко расположенных корней, то ошибка их определения не превышает единицы шестого знака результата.
00. ПХ0 01. 1 02. ХПД 03. F10X 04. ХП0 05. x-y 06. - 07. ХП1 08. Сх 09. ХПС 10. B^ 11. ХПЕ 12. x-y 13. ПХС 14. + 15. КПХ0 16. ПХС 17. ПХВ 18. * 19. - 20. ПХД 21. ХПС 22. ПХА 23. * 24. + 25. ХПД 26. F() 27. ПХ2 28. Fx=0 29. 47 30. ПХО 31. ХПЕ 32. ПХД 33. KXПE 34. FL1 35. 15 36. Ксч 37. ХПА 38. ХПВ 39. ПХ0 40. 2 41. + 42. ХП2 43. В/0 44. /-/ 45. Fsqr 46. К- 47. F() 48. ПХА 49. * 50. ПХВ 51. ПХЕ 52. * 53. - 54. x-y 55. FL1 56. 11 57. ХП1 58. FBx 59. ПXC 60. * 61. x-y 62. ПХД 63. * 64. - 65. x-y 66. ПХЕ 67. * 68. ПХ1 69. Fx2 70. - 71. / 72. ПХВ 73. x-y 74. + 75. ХПВ 76. ПХА 77. ПХС 78. FBx 79. ПХЕ 80. * 81. - 82. ПХ1 83. / 84. - 85. ХПА 86. FBx 87. Fsin 88. F10X 89. Flg 90. Fx=0 91. 00 92. ХП2 93. + 94. 2 95. / 96. B^ 97. Fx2 98. ПХВ 99. - -0. Fx>=0 -1. 44 -2. Fsqr -3. + -4.С/П.
При разработке программы были использованы метод приближенного вычисления корней, описанный в книге Р.С.Гутера и Б.В.Овчинского "Элементы численного анализа и математической обработки результатов эксперимента" (Москва, "Наука", 1970), а также программа 125. Выделение квадратичного множителя из многочлена шестой степени из книги Я.К.Трохименко и Ф.Д.Любича "Радиотехнические расчеты на программируемых микрокалькуляторах" (Москва, "Радио и связь", 1988).
Перед пуском программы переключатель Р/ГРД/Г устанавливают в положение Г. Коэффициенты решаемого уравнения вводятся в порядке старшинства, начиная с А[n-1], в регистры 9, 8, 7 и т.д. В нулевой регистр заносится число 10-n; если решается уравнение, степень которого ниже восьми, то это же число заносится и в регистр 2. В регистры А и В заносятся выбранные пользователем первые приближения коэффициентов р и q первого квадратичного множителя. Это могут быть нули или другие числа, которые, по мнению пользователя, обеспечивают более быстрое вычисление коэффициентов такого множителя.
Процесс вычислений начинается после нажатия клавиш В/О С/П и может быть достаточно длительным. Если после останова на индикаторе высвечивается ЕГГОГ, то корни у выделенного квадратичного множителя комплексно-сопряженные. Для получения вещественной части нажимают клавишу x-y. При повторном ее нажатии на индикаторе появляется мнимая часть корня. Если же на индикаторе высвечивается число, то корни у выделяемого квадратичного множителя - действительные числа и на индикаторе - первый корень. Для получения второго нажимают клавишу "минус". Если после окончания вычисления всех корней предполагается провести проверку, то из регистра А извлекают коэффициент р (он хранится там с обратным знаком), а из регистра В вызывают q. Последующие квадратичные множители и их корни определяются после пуска программы командами В/0 С/П. В уравнениях нечетной степени при вычислении корня последнего квадратичного множителя, который всегда является действительным числом, на индикаторе сначала появляется ЕГГОГ, сам же корень с обратным знаком хранится в регистре 9.
Корни найдены правильно, если выполняются условия:
для уравнений четной степени - сумма всех р равна A[n-i], а произведение всех q равно А0;
для уравнений нечетной степени - сумма всех р равна A[n-i]+Xn, а произведение всех q равно А0/(-Хn), где Хn последний вычисленный корень.
Тест: х5-4х-2=0. Отсутствие членов с х4, х3 и х2 означает, что коэффициенты А4, А3 и А2 равны нулю.
Ввод исходных данных: 0 - в Р9, Р8, Р7: 4 /-/ - в Р6; 2 /-/ - в Р5; 10-5=5-в Р0 и Р2. Задаемся начальным приближением р и q: 1 - в РА и РВ.
Решение: В/0 С/П "-5.0849947-01". Это корень Х1 Расчет его занимает 7.5мин. Для получения Х2 нажимаем клавишу "минус". "-1.2435964" ПХА "-1.7520959". Это p1 с обратным знаком. ПХВ "6.3263812-01". Это q1. В/О С/П ЕГГОГ. Корни комплексно-сопряженные. Время решения 4.5 мин. Действительная часть x-y "1.1679185-01". Мнимая часть x-y "1.4384477" ПХА "2.335837-01" =-р2, ПХВ "2.0827722" =q2 В/0 С/П ЕГГОГ. Вычисление последнего корня занимает около минуты. ПХ9 "-1.5185122". Х5=1.5185122.
Проверка: р1+р2=1.7520959-0.2335837=1.5185122
А4+Х5=1.5185122
q1q2=0.63236812*2.0827722=1.3170787
А0/(-Х5)=(-2)/(-1.5185122)=1.3178786.
Корни определены правильно.
М.Газаров (Рига)
ВЫБОР ЭМПИРИЧЕСКОЙ ЗАВИСИМОСТИ
В отличной программе Г.Славина (2/8 ), позволяющей сравнивать эмпирическую кривую с шестнадцатью эталонными, использованы команды 34. КИП^ и 71. КП^, делающие невозможным ее прямое использование в МК-61. Кроме того, нет индикации номера эталонной кривой, с которой произведено сравнение, поэтому приходится его считать самому. А так как эталонных кривых 16, то вероятность ошибки не так уж мала.
Напомним вкратце, в чем суть метода. Выбирается такая система координат, в которой эталонная кривая изображается прямой. Искомая прямая проводится через начальную (Xi, Yi) и конечную (Х2, Y2) точки эмпирической кривой, а затем вычисляется отклонение (Е) средней точки эмпирической кривой (Хс, Yc) от эталонной прямой. Естественно, что Исследуемая зависимость должна быть монотонна, а координаты точек не должны принимать нулевых или отрицательных значений. Предлагаемая программа пригодна как для МК-61, так и Б3-34.
00. B^ 01. 9 02. ХП5 03. ПП 04. 34 05. Сх 06. С/П 07. B^ 08. Сх 09. ХП5 10. ПП 11. 34 12. Сх 13. ХП7 14. 9 15. ХП6 16. КПХ6 17. ХП9 18. 4 19. ХП0 20. ПХ0 21. ХП8 22. ПХ7 23. 1 24. + 25. ХП7 26. КПХ8 27. ПХ9 28. - 29. С/П 30. FL0 31. 20 32. БП 33. 16 34. F() 35. ХП8 36. F() 37. ХП7 38. x-y 39. ХП6 40. 4 41. ХП0 42. 7 43. 0 44. ХП9 45. ПХ7 46. ПХ8 47. ПХ6 48. КПП9 49. F() 50. КПП9 51. F() 52. КПП9 53. F() 54. F() 55. - 56. FBx 57. x-y 58. F() 59. - 60. x-y 61. F() 62. / 63. КХП5 64. ПХ9 65. 2 66. + 67. FL0 68. 44 69. В/0 70. Flg 71. В/0 72. F1/x 73. В/0 74. Fx2 75. B/0 76.В/0.
Правила ввода исходных данных не изменились. Y1 B^ Yc B^ Y2 В/0 С/П. Примерно через минуту на индикаторе появляется ноль. После этого можно продолжать ввод: X1 B^ Xc B^ X2 С/П. Через несколько секунд на индикаторе появится отклонение центральной точки исследуемой кривой от эталонной прямой. В регистре Y хранится номер эталонной кривой. Для его вызова на индикатор нажимают клавишу x-y. Так просматривают отклонения от всех шестнадцати кривых, нажимая каждый раз клавишу С/П.
В связи с тем, что была произведена перекомпоновка программы (получено новое качество, а программа стала даже на шаг короче), изменились и номера эталонных кривых по сравнению с исходной программой Г.Славина. Новая нумерация показана на рисунке.
Тест: Х1=10, Y1=2.228, Хс=30, Yc=2.042, Х2=120, Y2=1.98. Решение (значении Е даны округленно): 2.228 B^ 2.042 B^ 1.98 В/0 С/П "0" 10 B^ 30 B^ 120 С/П "E1=4.1" С/П "Е2=16.5" С/П "Е3=0.02" x-y "3" (эталонная кривая #3) С/П "Е4=0.9" С/П "Е5=1" С/П "Е6=16.4" С/П "Е7=-8.42-05" x-y "7" (это наилучшее приближение) С/П "Е8=0.8" ... С/П "Е16=0.9" x-y "16".
Ю.ГЛУХОВ (Макеевка, Донецкой
обл.),
В.КОЗЛЕНКО (Хмельницкий).
От редакции. Авторы этой статьи познакомились, да и то заочно, только на этой странице. В.Козленко ввел в программу для Б3-34 индикацию номера эталонной кривой, а Ю.Глухов сделал программу универсальной. Объединение двух программ произведено редакцией.
КАЛЬКУЛЯТОР - МАШИНА ДЛЯ ГОЛОСОВАНИЯ
В разделе "Человек и компьютер" помещались программы, полезные металлургам, топографам... Между тем жизнь заставляет обратить внимание на людей все новых профессий и занятий. Например, на тех, что ведут голосование на собраниях.
Для проведения голосования в небольших коллективах на современном техническом уровне достаточно иметь один или несколько программируемых калькуляторов. Чтобы не заставлять голосующих вставать со своих мест, желательно, чтобы калькулятор имел автономное питание. В этом случае его можно пустить по рядам. Предварительно в него вводится программа:
00. Сх 01. ХП1 02. ХП4 03. ХП5 04. ХП6 05. 1 06. B^ 07. С/П 08. 1 09. - 10. Fx=0 11. 15 12. КПХ6 13. БП 14. 21 15. Fx>=0 16. 20 17. КПХ4 18. БП 19. 21 20. КПХ5 21. ПХ1 22. 1 23. + 24. ХП1 25. БП 26. 00.
Волеизъявление происходит так: председательствующий нажимает клавиши В/0 С/П и после появления на индикаторе единицы отдает микрокалькулятор голосующим. Голосующие "за" нажимают клавиши + С/П, голосующие
"против" нажимают - С/П, а воздержавшиеся / С/П. После каждого нажатия С/П через 2-3 секунды на индикаторе появляется число проголосовавших к данному моменту. Когда голосование окончено, калькулятор передают счетной комиссии. На индикаторе и в регистре 1 - число принявших участие в голосовании. В регистре 4 - число голосов "за", в регистре 5 - "против", а в регистре 6 - число воздержавшихся. Для нового голосования нажимают клавиши В/0 С/П, после чего калькулятор готов к следующему туру голосования.
А.БЕЛОГОРЦЕВ (Севастополь)
ПОИСК ПРОСТЫХ ЧИСЕЛ
В 12/83 был объявлен конкурс на лучшую программу поиска простых чисел в их естественной последовательности. Откликаюсь на конкурсное задание, хотя и с "небольшим" опозданием.
00. ХП4 01. КПХ4 02. ПХ4 03. Fsqr 04. 1 05. + 06. ХП0 07. ХП7
08. КПХ7 09. x-y 10. ПХ7 11. - 12. FL0 13. 18 14. ПХ4 15. С/П 16. БП 17. 00 18. Fx=0 19. 22 20. БП 21. 01 22. ПХ4 23. ПХ0 24. / 25. БП 26. 07.
В регистр X вводят любое число и нажимают В/0 С/П. На индикаторе - ближайшее большее простое число. Для получения следующего простого числа нажать С/П. Пример: 21 В/0 С/П "23" (33с) С/П "29" (78с) С/П "31" (30с).
Е.ПЛЫШЕВСКИЙ (Волгоград).
От редакции. Остается лишь выразить сожаление, что эта программа не участвовала в конкурсе, итоги которого были подведены в 8/84. Она вполне бы могла стать его призером.
...
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
...
МК-52 И КОМПЛЕКСНЫЕ ЧИСЛА
В универсальной программе вычислений с комплексными числами (2/88 ) расширение возможностей происходит за счет применения сменных блоков, вводимых вручную. Необходимость тестирования, убеждающего в правильности ручного ввода, делает этот способ не особенно популярным.
ППЗУ калькулятора МК-52 позволяет производить быструю замену частей программы, не теряя времени на ручной ввод и тестирование (1/89). Пакет, вводимый в ППЗУ, состоит из блоков А и Б. Из него можно создать четыре программы вычислений с комплексными числами.
Блок А: 00. С/П 01. 0 02. С/П 03. ХП1 04. ПП 05. 14 06. С/П 07. ХПВ 08. F() 09. КППВ 10. КБП1 11. ХПС 12. x-y 13. ХПД 14. С/П 15. B^ 16. С/П 17. FL1 18. 11 19. В/0 20. ХПВ 21. Fx2 22. x-y 23. Fx2 24. + 25. / 26. ПХВ 27. FBx 28. / 29. /-/ 30. ХПВ 31. ПХС 32. x-y 33. ПХС 34. * 35. /-/ 36. F() 37. * 38. ХПС 39. F() 40. ПХД 41. * 42. ПХВ 43. ПХД 44. * 45. x-y 46. ХПД 47. F() 48. ПХС 49. + 50. ХПС 51. x-y 52. ПХД 53. + 54. ХПД 55. В/0 56. ПП 57. 70 58. /-/ 59. ХПА 60. x-y 61. /-/ 62. ХП9 63. ПП 64. 70 65. ПХА 66. ПХ9 67. ПП 68. 48 69. В/0 70. 2 71. ХП1 72. ПП 73. 14 74. ПП 75. 30 76. В/0 77. КППЕ 78. 1 79. ПП 80. 71 81. ПП 82. 86 83. ПП 84. 86 85. КБП1 86. ХП8 87. x-y 88. ХП7 89. КППЕ 90. 1 91. ПП 92. 71 93. ПХ8 94. ПХ7 95. ПП 96. 48 97. В/0.
Блок А записывается в ППЗУ по адресу 1000098. Если заполнение ППЗУ начинается не с нулевого адреса, то к этому и ко всем остальным адресам записи н считывания нужно прибавить номер первой ячейки из тех, в которые записывается блок А.
Блок Б: 00. ХПВ 01. Fx2 02. x-y 03. Fx2 04. + 05. Fsqr 06. / 07. FBx 08. x-y 09. Fcos-1 10. ПХВ 11. Кзн 12. * 13. x-y 14. В/0 15. ХПВ 16. Fsin 17. * 18. ХП9 19. x-y 20. ПХВ 21. Fcos 22. * 23. ХПА 24. В/0 25. ПХС 26. ПХ8 27. + 28. ХП8 29. ПХД 30. ПХ7 31. + 32. ХП7 33. БП 34. 00 35. ПП 36. 56 37. ХП8 38. x-y 39. ХП7 40. ПП 41. 88 42. ПП 43. 88 44. БП 45. 77 46. ПП 47. 56 48. ПХ8 49. B^ 50. ПХ7 51. ПП 52. 20 53. С/П 54. В/0.
Блок Б записывается в ППЗУ по адресу 1019656.
ПРОГРАММА 1. Арифметические операции и цепочечные вычисления. Считывается по адресу 1000056, после чего в регистры памяти заносятся постоянные: 48 - в Р0, 30 - в Р2 и 20 - в Р3. Первоначальный запуск производится командами БП 01 С/П. После того, как на индикаторе появился нуль, в регистр X вводится число 2 (если в вычислениях участвуют два комплексных числа) или 1 (если производятся цепочечные вычисления).
Во всех программах команда С/П подается как после ввода действительной части, так и после ввода мнимой. Можно ввести таким путем и два числа; так, это делается при вычислении определителя (см. ниже). Команда С/П подается и после ввода числа 1 или 2, определяющего, сколько чисел вводится с клавиатуры.
Адреса переходов к различным арифметическим операциям записаны в регистры, доступ к которым возможен при нажатии на клавиши арифметических действий (12/84), что позволяет пользоваться простым мнемоническим правилом. Например, для производства сложения нажимают клавиши ПХ и + ("ПоеХали на сложение").
При умножении и делении вместо клавиши + соответственно нажимают * или /. Вычитание заменяют сложением, изменив знак у вычитаемого числа. Действительная часть результата хранится в регистрах X и А, а мнимая - в Y и 9.
Программа 1 является составной частью всех остальных программ, поэтому в любой из них можно производить арифметические и цепочечные операции. При пользовании программами 2, 3 и 4 не забывайте вводить константы программы 1, основной особенностью которой является использование различных частей одной и той же подпрограммы для производства арифметических действий (деление: шаги 20-55, умножение: 30-55, сложение: 48-55).
Тест: ((-9+i38)/(-4-i3))(3-i4)-(6-i50)=-8+ill.
БП 01 С/П "0". Так как в делении участвуют два числа, то 2 С/П "2" 9 /-/ С/П "-9" 38 С/П "-9" 4 /-/ С/П "-4" 3 С/П "3" ПХ / "20" С/П. Результат деления "6" (действительная часть) x-y "-5" (мнимая часть) С/П "0". Переходим к цепочечным вычислениям 1 С/П "1" 3 С/П "3" 4 /-/ С/П "-4" ПХ * "30" С/П. Результат умножения "-2" (действительная часть) x-y "-39" (мнимая часть) С/П "0". Продолжаем цепочечные вычисления 1 С/П "1". Произведем вычитание. Изменяем знак числа и выполняем сложение 6 /-/ С/П "-6" 50 С/П "50" ПХ + "48" С/П. Окончательный результат "-8" (действительная часть) x-y "11" (мнимая часть). С/П "0" - можно начинать новые вычисления.
ПРОГРАММА 2 - это программа 1, дополненная операциями перехода от алгебраической формы комплексного числа к показательной (команды ПХ B^ С/П) и обратным переходом (команды ПХ x-y С/П). Для вызова программы в ОЗУ используется два адреса. Сначала вызывается вторая часть программы - 1008491, а затем первая - 1000056. В регистры памяти вводятся: 71 - в Р4 и 56 - в РЕ. Переключатель Р/ГРД/Г ставится в положение, соответствующее размерности аргумента комплексного числа. Тест 5е-1120=-2.5000001-14.3301272.
От показательной к алгебраической: БП 01 С/П "0" 1 (в операции участвует одно число) С/П "1" 5 С/П "5" 120 /-/ С/П "-120" ПХ x-y "71" С/П. Ответ "-2.5000001" (действительная часть) "-4.3301272" (мнимая часть). Обратный переход выполним, пользуясь тем, что действительная и мнимая часть хранятся в регистрах А и 9. С/П "0" 1 С/П "1" ПХА С/П ПХ9 С/П ПХ B^ С/П. Ответ "5" (модуль) x-y "-120" (аргумент).
ПРОГРАММА 3. Решение системы из двух линейных уравнений по методу Крамера. Как и в предыдущем случае, для вызова программы в ОЗУ используют два адреса. Сначала - 1011298, а затем - 1000077. Первоначальный запуск программы осуществляется командами БП 77 С/П. В надежде, что читатель на предыдущих примерах освоил правила ввода комплексных чисел, ниже указан только порядок ввода коэффициентов при решении системы линейных уравнений ах+by=с и dx+ey=f, где а, b, с, d, e и f - комплексные числа. Метод Крамера требует следующей последовательности ввода: БП 77 С/П "2" b и d С/П "2" а и е С/П "2" b и f С/П "2" с и е С/П "действительная часть" x-y "мнимая часть" С/П "2" с и d С/П "2" а и f С/П "действительная часть" x-y "мнимая часть". Для решения следующей системы - С/П "2" и можно вводить коэффициенты. При а=-2-i11, b=-4+i3, c=-119+i183, d=25-i5, e=1-i3 и f=6-i68, х=-1+i3, a y=46-i10.
ПРОГРАММА 4. Вычисление определителя третьего порядка.
|((a11 a12 a13)(a21 a22 a23)(a31 a32 a33))|=A1+iA2
Для вычисления определитель разлагается по третьей строке на определители второго порядка. Адрес вызова программы в ОЗУ - 1000098. После чего в регистр Е заносят 56. Программа запускается командами БП 77 С/П "2", после чего вводятся комплексные коэффициенты в такой последовательности: а12 и a21 С/П "2" а11 и а22 С/П "1" а33 С/П "2" а11 и а23 С/П "2" а12 и a21 С/П "1" а32 С/П "2" a12 н а22 С/П "2" a12 и а23 С/П "1" а31 С/П. Ответ "Ai" x-y A2. При a11=6+i5, a12=6-i5, a13=-5+i6, a21=-5+i3, a22=5-i3, a23=5+i3, a31=3+i4, а32=3-i4 и а33=-3+i4, А1=-48, а А2=168.
Программы можно использовать и в МК-61. При этом программа 1 содержит шаги 00-55 блока А, программа 2 - шаги 00-55 блока А и 00-34 блока Б, программа 3 - шаги 00-76 блока А и 35-54 блока Б, а программа 4 - это полностью блок А.
В.КЛОПОВ (Москва)
ЧИСЛА ФИБОНАЧЧИ
Многочисленные отклики читателей вызвали программы Л.Рахманова, предназначенные для последовательного вычисления членов ряда Фибоначчи и определения n-го члена ряда (4/90). Читатели указывают на то, что перед пуском первой программы необходимо обнулить регистр X. "Если этого не сделать,- пишет Б.Тарасенко из подмосковного Калининграда,- то содержимое регистра X просуммируется с вычисленным членом, и если оно не равно нулю, то результат будет неверным. Об этом сказано в моей статье "Алгоритмический букварь и карманная ЭВМ" ("Вычислительная техника и ее применение" 4/88, М; "Знание"), где помещена программа #005".
П.Бабиков из Красноярского края, А.Кайкмаа из Эстонии, В.Чирков из Конотопа и другие совместили функции, выполняемые первой и второй программами Л.Рахманова, в одной программе. Здесь n-й член вычисляется при введении n, а не n-1, как у Л.Рахманова, что, безусловно, удобнее. Самой короткой и самой быстродействующей является программа П.Габрида из Фрунзе:
00. ХП0 01. 1 02. Flg 03. FBx 04. x-y 05. + 06. FL0 07. 03 08. С/П 09. БП 10. 03.
n-й член ряда вычисляется по командам: n В/0 С/П. При последующих нажатиях С/П получаем члены n+1, n+2 и т.д. С тестом 39 В/0 С/П "63245986" программа справляется за 40с. Правила пользования приведенной ниже программой В.Котина из Одессы такие же, как и для программы П.Габрида; 39-й член она вычисляет за 50с, однако в отличие от других программ позволяет после останова проводить вычисления, если при этом не занимаются регистры 0, 1, 2 и 4, а также освобождает пользователя от подсчета номеров членов при их последовательном вычислении. Номер вычисленного члена хранится в регистрах Y и 4, и при останове вызывается на индикатор командой x-y.
00. ХП0 01. 1 02. - 03. ХП4 04. 1 05. x-y 06. Сх 07. FBx 08. КПХ4 09. F() 10. x-y 11. FBx 12. x-y 13. + 14. FL0 15. 11 16. ХП1 17. FBx 18. ХП2 19. ПХ4 20. ПХ1 21. С/П 22. ПХ1 23. ПХ2 24. x-y 25. БП 26. 07.
[ МАЛЕНЬКИЕ ХИТРОСТИ
Быструю очистку ППЗУ МК-52 можно произвести с помощью следующей программы:
00. ПХЕ 01. + 02. С/П 03. КБПД.
Переключатель З-С-Сч устанавливают в положение С, а П-Д в Д. В регистры памяти 0-Д записываются нули, а в регистр Е-20800. Программу используют так: 1000098 В/0 A^ ^v и после окончания мерцания С/П. При появлении на индикаторе числа вновь повторяют A^ ^v и С/П. Появление числа - 1104098 будет означать, что очистка ППЗУ закончена.
А.ДУБИНА (Москва)
АДРЕС ИЗВЕСТЕН
Программа формирования адреса записи в ППЗУ МК-52 должна быть как можно короче, потому что она сама записывается в ППЗУ. Опубликованные в 4/87 и 1/89. программы имеют длину 55 и 40 шагов. Но если отказаться от автоматического вычисления длины записи, кратной 7 (при длине программы, не превышающей 98 шагов, такая операция легко производится в уме), и записывать число шагов программы на месте десятых и сотых, разделив их десятичной точкой, то получается простая программа, длиною всего в 28 шагов.
00. B^ 01. K{x} 02. 2 03. F10х 04. * 05. x-y 06. К[х] 07. 2 08. / 09. + 10. B^ 11. / 12. B^ 13. K[x] 14. x-y 15. К{х} 16. Fx!=0 17. 21 18. F() 19. 1 20. + 21. B^ 22. F() 23. 1 24. 6 25. * 26. + 27. С/П.
Пусть адрес предыдущей программы 1000063, а вслед за этой программой нужно записать программу длиной 84 шага. 084 B^ 10000.63 В/0 С/П "10128.84". Результат получим через 8с.
Сейчас часто используют пакеты программ, в которых "окна", обеспечивающие стирание программы без повреждения соседних, не нужны. В этом случае для формирования адреса записи можно воспользоваться простой программой:
00. К[х] 01. FBx 02. К{х) 03.2 04. F10X 05. * 06. 2 07. * 08. + 09. + 10. С/П.
Ю.АЛЕКСАНДРОВ (Хабаровск)
АККУМУЛЯТОР ВЫГОДНЕЕ
В журнале (12/89) уже рассказывалось о доработке блока питания МК-61 для работы с аккумуляторами. Еще проще такая доработка делается для МК-52, так как блок питания БП2-3 уже имеет специальную цепь для заряда аккумуляторов. Для того чтобы выполнить переделку, нужно вскрыть корпус калькулятора и установить перемычку между выводами 3 и 4 входного разъема питания ХР1. Монтаж следует производить при вставленной в разъем вилке, идущей от блока БП2-3. Это нужно, чтобы не создать перекоса штырей при запаивании перемычки. Блок питания при этом ие должен включаться в сеть. Далее нужно установить стабилитрон. Подойдет КС147А, КС156А, КС447А, КС456А или другой с напряжением стабилизации в диапазоне 4.7-5.6 вольта. Стабилитрон устанавливается в цепи заряда блока питания. Анод припаивают к выходу "3", а катод к шине "+". При повышении напряжения на аккумуляторах или элементах выше требуемого стабилитрон открывается, защищая их от перегрузки. Установка стабилитрона делает ненужным пользование переключателем "заряд - работа" и увеличивает срок службы элементов 316 в 8-10 раз.
А.ФИЛИППОВ (Ленинград).
ВАМ ПРИВЕТ ОТ БРП
Отклики на статьи "Первый том... комом" и "Год работы с БРП-3" (2,4/90):
Сначала мой БРП-3 работал нормально, но затем при наборе адресов программ 1 и 60 я стал вместо них получать от БРП шифрованные указания. Программа 60 должна начинаться командами 65 1С 65 66, а вместо них в ОЗУ появляются Е7 37 14 25 и другие команды, не имеющие отношения к делу. Программа заканчивается десятикратным повторением команд 00 50. Может быть, ПО "Кристалл" объяснит, что означает сей привет от БРП?
В.ВАСИЛЬЕВ (Чебоксары).
Похоже, что если вместо перемычек П1 и П2 установить переключатель, то емкость БРП-3 возрастет вдвое. Так ли это?
А.ЩУКИН (Ленинград).
Я впаял вместо перемычек П1 и П2 переключатель. В одном положении БРП-3 выдавал указанные в "Руководстве" программы, а во втором - программы, не описанные в "Руководстве". Может быть, это программы БРП-2 или БРП-4?
Р.ШУБОЧКИН (Мурманск).
Я убрал перемычку П1 и поставил П2. После этого установил переключатель 1/2 в положение 2. а Д-П - в положение Д. При считывании из БРП-3 по адресу 2000098 в регистре 0 появилась цифра 7, в 1 - 30.6, в 2 - 365.25. Всем известно, что это константы программы "Календарь", которой нет в "Руководстве по эксплуатации БРП-3". Пусть ПО "Кристалл" скажет, какие там еще есть программы и как ими пользоваться.
М.КОРОЛЕВ (Москва).
В инструкции к задаче 60 нужно указать, что переключатель Р/ГРД/Г ставится в положение, соответствующее выбранной единице измерения углов.
B.АЛЕКСЕЕВ (Москва).
В инструкции к задаче 16 указано, что x**z = exp(z)*ln(x). Это неверно. В любом справочнике по высшей математике находим: х**z =еxp(z*ln(x)). К сожалению, по ошибочной формуле составлена и программа вычислений (шаги 45-62), что приводит к неверному результату, о котором пользователь дажсе не подозревает, а это может привести к непредсказуемым последствиям. Возникают вопросы: обменивает ли дефектные блоки ПО "Кристалл" на исправные? Что контролирует Госприемка?
Для вычисления х**z необходимо после считывания программы 16 заменить дефектный участок. Делается это так: БП 45 F ПРГ, после чего вписывают программу вычисления х**z 45. ПХ8 46. ПХ7 47. Fln 48. * 49. FBx 50. ПХ9 51. * 52. ХП5 53. Fsin 54. x-y 55. Fexp(x) 56. * 57. ХП6 58. FBx 59. ПХ5 60. Fcos 61. * 62. ХП5. Теперь можно переходить в режим вычислений по программе и действовать по инструкции. Тест: 2**(3+i4)=-7.4614963+i2.8854923.
C.ИВАШКОВ (Москва)
В задаче 16 величина arctg(b/a) вычисляется не только без учета знаков а и b, но и того, что действительная часть может быть нулем. Из-за этого для чисел с отрицательной действительной частью происходит ошибка в определении аргумента на 180o, а при действительной части, равной нулю,- останов деления на ноль. В задачах, где требуется составление подпрограмм (##22-27 и 29-31), инструкция предписывает "составить подпрограмму и включить ее в текст основной программы", а затем загружать основную программу. В результате нужная подпрограмма уничтожается контрольной подпрограммой. На самом деле поступать нужно не по инструкции, а наоборот. Сначала считать программу с контрольной подпрограммой и только после этого загрузить свою подпрограмму. Вообще инструкции к программам составлены крайне небрежно, и если бы их авторы сами попробовали бы ими практически пользоваться, то вскоре разозлились бы сами на себя, убедившись, что понять, что же нужно делать во многих случаях, очень трудно.
Э.ЭЙДЕЛЬМАН (Минск).
Вопрос к ПО "Кристалл": планируется ли индивидуальное изготовление блоков БРП с программами, разработанными заказчиком? Если нет, то почему? Что этому мешает? Если да, то кто угим будет заниматься и сколько это будет стоить?
В.Петров (Ленинград)
[ МАЛЕНЬКИЕ ХИТРОСТИ
Программа 33, записанная в БРП-3 позволяет определить функцию распределения с когрчштхгыо +/-7.5e-8. Такая высокая точность нужна крайне редко. Если удовлетворяет погрешность, не превышающая +/-1e-5, то время счета пo этой программе можно сократить на 20 процентов. Для этого после считывания программы из БРП-3 изменяют одну команду, записывая 00. 3 (в программе, считанной кз БРП-3, по этому адресу записано 5). Коэффициентам приписываются следующие значения, взятые из "Справочника по специальным функциям" под ред. М.Абрамовича и И.Стиган (М.; Наука, 1979): р=0.3267, b1=0.4361836, b2=-0.1201676 и b3=0.937298. Ввод коэффициентов в память и расчет ведутся в соответствии с "Руководством по эксплуатации БРП-3", но указанные в нем коэффициенты b4 и b5 в память не вводятся и в расчете не участвуют.
В.ВОЛКОВ (Хабаровск) ]
ОХОТА НА ЛИС
Соревнования радиоспортсменов под этим названием послужили ленинградцу А.Несчетному прототипом для создания игровой программы, опубликованной в 12/85 и сразу ставшей популярной. Из-за команды КИП^, записанной по адресу 41, программу нельзя применять в выпускаемых ныне калькуляторах МК-52 и МК-61. Один из вариантов модификации программы был напечатан в 2/87. Еще более простой перевод получается, если воспользоваться рекомендациями "Школы начинающего программиста" (11/88 ). В этом случае в программе делают одно-единственное изменение 41. КППЕ и дополняют ее подпрограммой 85. ПХ0 86. 1 87. + 88.ХП0 89. КПХ0 90. В/0. Перед началом первой партии в регистр Е записывают число 85. Все остальное остается без изменений.
Ниже приводится программа игры, отличающаяся от программы А.Несчетного тем, что она ведется на поле 10*10; при совпадении координат охотника с координатами лисы (лиса найдена) подается сигнал "LIS-N", а не ЕГГОГ, где N=8, 7,... 1, 0 - число еще не обнаруженных лис. Этот сигнал формируется так, как рассказано в 6,12/88, а изменение его производится так, как предложил В.Нестеров (10/85).
Принципиальным новшеством является то, что координаты найденной лисы стираются и она исключается из числа пеленгуемых лис, а раньше сам охотник должен был определять, не пеленгуются ли из занятого им квадрата ранее найденные лисы. Появился счетчик ходов охотника, что сняло недоразумения, возникавшие раньше между игроками при определении числа ходов, которые потребовались для нахождения всех лис. Кстати, лис стало больше - восемь. Для борьбы с любителями "подсматривать" координаты лис в регистрах памяти введено кодирование. И теперь такому любителю, подсмотревшему координаты 65.61, не сразу удастся вычислить, что лиса в квадрате 8.1. Изменены генератор случайных чисел и порядок определения координат лисы. Сейчас вертикальная и горизонтальная координаты определяются одновременно, а не порознь, что позволило сократить время расстановки лис с двух минут до сорока секунд.
00. B^ 01. 8 02. 8 03. 0 04. 0 05. 8 06. 8 07. B^ 08. 3 09. 3 10. 1 11.5 12. 2 13. Kили 14. K{x} 15. B^ 16. ВП 17. 5 18. ХП2 - формирование сигнала "LIS-8" 19. 1 20. 4 21. ХП0 22. 8 23. ХП1 24. ПХЕ 25. 1 26. 1 27. * 28. Fпи 29. + 30. К{х} 31. ХПЕ 32. 2 33. F10X 34. * 35. К[х] 36. 1 37. 0 38. / 39. FX2 40. КХП0 41. FL1 42. 24 43. Сх 44. ХП5 - расстановка лис и обнуление счетчика ходов охотника. 45. С/П - останов для показа числа пеленгуемых лис и ввода координат охотника. 46. ХП3 47. Сх 48. ХП4 49. КПХ5 50. 1 51. 4 52. ХП0 53. 8 54. ХП1 55. ПХ3 56. КПХ0 57. Fx!=0 58. 94 59. Fsqr 60. - 61. Fx=0 62. 73 63. ПХ0 64. 1 65. + 66. ХП0 67. x-y 68. КХП0 69. КПХ2 70. ПХ2 71. БП 72. 45 73. FBx 74. К[х] 75. ПХ3 76. К[х] 77. - 78. Fx!=0 79. 93 80. + 81. Fx!=0 82. 93 83. B^ 84. ВП 85. 1 86. FBx 87. / 88. К|х| 89. 1 90. - 91. Fx=0 92. 94 93. КПХ4 94. FL1 95. 55 96. ПХ4 97. БП 98. 45 - определение числа лис, пеленгуемых из квадрата, в котором стоит охотник, или выдача сигнала "LIS-N", если лиса найдена.
Перед началом первой партии в регистр Е вводят e0 - стартовое число для генератора случайных чисел (0<e0<1). Если выбрать e0=0.12, то, введя его в регистр Е и нажав клавиши В/0 С/П, получим расстановку лис, показанную на рисунке.
Координаты охотника вводят в регистр X в виде пары целых чисел, разделенных десятичной точкой, из которых первое - вертикальная координата, а второе - горизонтальная.
На рисунке показана ситуация при координатах охотника 4.3. Теперь, если нажать клавишу С/П, то примерно через минуту на индикаторе появится цифра 6. Внимательный читатель уже, наверное, заметил, что на рисунке не 8 лис, а 6, и охотник вроде бы должен из своей клетки запеленговать не 6 лис, а только 4. Однако ошибок тут нет, дело в том, что в квадратах 2.1 и 4.6 спряталось по две лисы. В этом легко убедиться, сыграв 4.6 С/П. Через 10с на индикаторе высветится "LIS-7". Снова играем 4.6 С/П. Теперь сигнал "LIS-6" появится через 35с. Если продолжать 4.6 С/П, то теперь через 50с на индикаторе возникнет "2". Это значит, что в квадрате 4.3 лис больше нет и из него пеленгуются 2 лисы.
Все, что мы сейчас проделали,- это тест. Следует лишь указать, что число ходов хранится в регистре 5, а координаты хода охотника - в регистре 3.
Освоив тест, можно начинать игру. Введите в регистр Е новое стартовое число, хотя это вовсе не обязательно, от игры к игре оно меняется автоматически, и нажимайте клавиши В/0 С/П. Появление нуля на индикаторе означает, что расстановка лис окончена. Теперь остается только вводить координаты охотника и нажимать клавишу С/П. Авторский личный рекорд - обнаружение всех лис за 19 ходов. Желаем вам его побить.
Ю.ИВАНОВ, П.ИРТЮГА (Ленинград)
6/91
[ Редакция раздела "Человек и компьютер" благодарит читателей В. Кононова (Курск), Ю.Криворучко (Коростышев Житомирской обл.), П. Слизевича (Самара) и других,
приславших поправку к программе игры "Охота на лис" (10/90) 57. Fx>=0 67. /-/, устраняющую неопределенность при попадании лисы в квадрат 00 ]
МК-52 И КОМПЛЕКСНЫЕ ЧИСЛА
В универсальной программе вычислений с комплексными числами (2/88 ) расширение возможностей происходит за счет применения сменных блоков, вводимых вручную. Необходимость тестирования, убеждающего в правильности ручного ввода, делает этот способ не особенно популярным.
ППЗУ калькулятора МК-52 позволяет производить быструю замену частей программы, не теряя времени на ручной ввод и тестирование (1/89). Пакет, вводимый в ППЗУ, состоит из блоков А и Б. Из него можно создать четыре программы вычислений с комплексными числами.
Блок А: 00. С/П 01. 0 02. С/П 03. ХП1 04. ПП 05. 14 06. С/П 07. ХПВ 08. F() 09. КППВ 10. КБП1 11. ХПС 12. x-y 13. ХПД 14. С/П 15. B^ 16. С/П 17. FL1 18. 11 19. В/0 20. ХПВ 21. Fx2 22. x-y 23. Fx2 24. + 25. / 26. ПХВ 27. FBx 28. / 29. /-/ 30. ХПВ 31. ПХС 32. x-y 33. ПХС 34. * 35. /-/ 36. F() 37. * 38. ХПС 39. F() 40. ПХД 41. * 42. ПХВ 43. ПХД 44. * 45. x-y 46. ХПД 47. F() 48. ПХС 49. + 50. ХПС 51. x-y 52. ПХД 53. + 54. ХПД 55. В/0 56. ПП 57. 70 58. /-/ 59. ХПА 60. x-y 61. /-/ 62. ХП9 63. ПП 64. 70 65. ПХА 66. ПХ9 67. ПП 68. 48 69. В/0 70. 2 71. ХП1 72. ПП 73. 14 74. ПП 75. 30 76. В/0 77. КППЕ 78. 1 79. ПП 80. 71 81. ПП 82. 86 83. ПП 84. 86 85. КБП1 86. ХП8 87. x-y 88. ХП7 89. КППЕ 90. 1 91. ПП 92. 71 93. ПХ8 94. ПХ7 95. ПП 96. 48 97. В/0.
Блок А записывается в ППЗУ по адресу 1000098. Если заполнение ППЗУ начинается не с нулевого адреса, то к этому и ко всем остальным адресам записи н считывания нужно прибавить номер первой ячейки из тех, в которые записывается блок А.
Блок Б: 00. ХПВ 01. Fx2 02. x-y 03. Fx2 04. + 05. Fsqr 06. / 07. FBx 08. x-y 09. Fcos-1 10. ПХВ 11. Кзн 12. * 13. x-y 14. В/0 15. ХПВ 16. Fsin 17. * 18. ХП9 19. x-y 20. ПХВ 21. Fcos 22. * 23. ХПА 24. В/0 25. ПХС 26. ПХ8 27. + 28. ХП8 29. ПХД 30. ПХ7 31. + 32. ХП7 33. БП 34. 00 35. ПП 36. 56 37. ХП8 38. x-y 39. ХП7 40. ПП 41. 88 42. ПП 43. 88 44. БП 45. 77 46. ПП 47. 56 48. ПХ8 49. B^ 50. ПХ7 51. ПП 52. 20 53. С/П 54. В/0.
Блок Б записывается в ППЗУ по адресу 1019656.
ПРОГРАММА 1. Арифметические операции и цепочечные вычисления. Считывается по адресу 1000056, после чего в регистры памяти заносятся постоянные: 48 - в Р0, 30 - в Р2 и 20 - в Р3. Первоначальный запуск производится командами БП 01 С/П. После того, как на индикаторе появился нуль, в регистр X вводится число 2 (если в вычислениях участвуют два комплексных числа) или 1 (если производятся цепочечные вычисления).
Во всех программах команда С/П подается как после ввода действительной части, так и после ввода мнимой. Можно ввести таким путем и два числа; так, это делается при вычислении определителя (см. ниже). Команда С/П подается и после ввода числа 1 или 2, определяющего, сколько чисел вводится с клавиатуры.
Адреса переходов к различным арифметическим операциям записаны в регистры, доступ к которым возможен при нажатии на клавиши арифметических действий (12/84), что позволяет пользоваться простым мнемоническим правилом. Например, для производства сложения нажимают клавиши ПХ и + ("ПоеХали на сложение").
При умножении и делении вместо клавиши + соответственно нажимают * или /. Вычитание заменяют сложением, изменив знак у вычитаемого числа. Действительная часть результата хранится в регистрах X и А, а мнимая - в Y и 9.
Программа 1 является составной частью всех остальных программ, поэтому в любой из них можно производить арифметические и цепочечные операции. При пользовании программами 2, 3 и 4 не забывайте вводить константы программы 1, основной особенностью которой является использование различных частей одной и той же подпрограммы для производства арифметических действий (деление: шаги 20-55, умножение: 30-55, сложение: 48-55).
Тест: ((-9+i38)/(-4-i3))(3-i4)-(6-i50)=-8+ill.
БП 01 С/П "0". Так как в делении участвуют два числа, то 2 С/П "2" 9 /-/ С/П "-9" 38 С/П "-9" 4 /-/ С/П "-4" 3 С/П "3" ПХ / "20" С/П. Результат деления "6" (действительная часть) x-y "-5" (мнимая часть) С/П "0". Переходим к цепочечным вычислениям 1 С/П "1" 3 С/П "3" 4 /-/ С/П "-4" ПХ * "30" С/П. Результат умножения "-2" (действительная часть) x-y "-39" (мнимая часть) С/П "0". Продолжаем цепочечные вычисления 1 С/П "1". Произведем вычитание. Изменяем знак числа и выполняем сложение 6 /-/ С/П "-6" 50 С/П "50" ПХ + "48" С/П. Окончательный результат "-8" (действительная часть) x-y "11" (мнимая часть). С/П "0" - можно начинать новые вычисления.
ПРОГРАММА 2 - это программа 1, дополненная операциями перехода от алгебраической формы комплексного числа к показательной (команды ПХ B^ С/П) и обратным переходом (команды ПХ x-y С/П). Для вызова программы в ОЗУ используется два адреса. Сначала вызывается вторая часть программы - 1008491, а затем первая - 1000056. В регистры памяти вводятся: 71 - в Р4 и 56 - в РЕ. Переключатель Р/ГРД/Г ставится в положение, соответствующее размерности аргумента комплексного числа. Тест 5е-1120=-2.5000001-14.3301272.
От показательной к алгебраической: БП 01 С/П "0" 1 (в операции участвует одно число) С/П "1" 5 С/П "5" 120 /-/ С/П "-120" ПХ x-y "71" С/П. Ответ "-2.5000001" (действительная часть) "-4.3301272" (мнимая часть). Обратный переход выполним, пользуясь тем, что действительная и мнимая часть хранятся в регистрах А и 9. С/П "0" 1 С/П "1" ПХА С/П ПХ9 С/П ПХ B^ С/П. Ответ "5" (модуль) x-y "-120" (аргумент).
ПРОГРАММА 3. Решение системы из двух линейных уравнений по методу Крамера. Как и в предыдущем случае, для вызова программы в ОЗУ используют два адреса. Сначала - 1011298, а затем - 1000077. Первоначальный запуск программы осуществляется командами БП 77 С/П. В надежде, что читатель на предыдущих примерах освоил правила ввода комплексных чисел, ниже указан только порядок ввода коэффициентов при решении системы линейных уравнений ах+by=с и dx+ey=f, где а, b, с, d, e и f - комплексные числа. Метод Крамера требует следующей последовательности ввода: БП 77 С/П "2" b и d С/П "2" а и е С/П "2" b и f С/П "2" с и е С/П "действительная часть" x-y "мнимая часть" С/П "2" с и d С/П "2" а и f С/П "действительная часть" x-y "мнимая часть". Для решения следующей системы - С/П "2" и можно вводить коэффициенты. При а=-2-i11, b=-4+i3, c=-119+i183, d=25-i5, e=1-i3 и f=6-i68, х=-1+i3, a y=46-i10.
ПРОГРАММА 4. Вычисление определителя третьего порядка.
|((a11 a12 a13)(a21 a22 a23)(a31 a32 a33))|=A1+iA2
Для вычисления определитель разлагается по третьей строке на определители второго порядка. Адрес вызова программы в ОЗУ - 1000098. После чего в регистр Е заносят 56. Программа запускается командами БП 77 С/П "2", после чего вводятся комплексные коэффициенты в такой последовательности: а12 и a21 С/П "2" а11 и а22 С/П "1" а33 С/П "2" а11 и а23 С/П "2" а12 и a21 С/П "1" а32 С/П "2" a12 н а22 С/П "2" a12 и а23 С/П "1" а31 С/П. Ответ "Ai" x-y A2. При a11=6+i5, a12=6-i5, a13=-5+i6, a21=-5+i3, a22=5-i3, a23=5+i3, a31=3+i4, а32=3-i4 и а33=-3+i4, А1=-48, а А2=168.
Программы можно использовать и в МК-61. При этом программа 1 содержит шаги 00-55 блока А, программа 2 - шаги 00-55 блока А и 00-34 блока Б, программа 3 - шаги 00-76 блока А и 35-54 блока Б, а программа 4 - это полностью блок А.
В.КЛОПОВ (Москва)
ЧИСЛА ФИБОНАЧЧИ
Многочисленные отклики читателей вызвали программы Л.Рахманова, предназначенные для последовательного вычисления членов ряда Фибоначчи и определения n-го члена ряда (4/90). Читатели указывают на то, что перед пуском первой программы необходимо обнулить регистр X. "Если этого не сделать,- пишет Б.Тарасенко из подмосковного Калининграда,- то содержимое регистра X просуммируется с вычисленным членом, и если оно не равно нулю, то результат будет неверным. Об этом сказано в моей статье "Алгоритмический букварь и карманная ЭВМ" ("Вычислительная техника и ее применение" 4/88, М; "Знание"), где помещена программа #005".
П.Бабиков из Красноярского края, А.Кайкмаа из Эстонии, В.Чирков из Конотопа и другие совместили функции, выполняемые первой и второй программами Л.Рахманова, в одной программе. Здесь n-й член вычисляется при введении n, а не n-1, как у Л.Рахманова, что, безусловно, удобнее. Самой короткой и самой быстродействующей является программа П.Габрида из Фрунзе:
00. ХП0 01. 1 02. Flg 03. FBx 04. x-y 05. + 06. FL0 07. 03 08. С/П 09. БП 10. 03.
n-й член ряда вычисляется по командам: n В/0 С/П. При последующих нажатиях С/П получаем члены n+1, n+2 и т.д. С тестом 39 В/0 С/П "63245986" программа справляется за 40с. Правила пользования приведенной ниже программой В.Котина из Одессы такие же, как и для программы П.Габрида; 39-й член она вычисляет за 50с, однако в отличие от других программ позволяет после останова проводить вычисления, если при этом не занимаются регистры 0, 1, 2 и 4, а также освобождает пользователя от подсчета номеров членов при их последовательном вычислении. Номер вычисленного члена хранится в регистрах Y и 4, и при останове вызывается на индикатор командой x-y.
00. ХП0 01. 1 02. - 03. ХП4 04. 1 05. x-y 06. Сх 07. FBx 08. КПХ4 09. F() 10. x-y 11. FBx 12. x-y 13. + 14. FL0 15. 11 16. ХП1 17. FBx 18. ХП2 19. ПХ4 20. ПХ1 21. С/П 22. ПХ1 23. ПХ2 24. x-y 25. БП 26. 07.
[ МАЛЕНЬКИЕ ХИТРОСТИ
Быструю очистку ППЗУ МК-52 можно произвести с помощью следующей программы:
00. ПХЕ 01. + 02. С/П 03. КБПД.
Переключатель З-С-Сч устанавливают в положение С, а П-Д в Д. В регистры памяти 0-Д записываются нули, а в регистр Е-20800. Программу используют так: 1000098 В/0 A^ ^v и после окончания мерцания С/П. При появлении на индикаторе числа вновь повторяют A^ ^v и С/П. Появление числа - 1104098 будет означать, что очистка ППЗУ закончена.
А.ДУБИНА (Москва)
АДРЕС ИЗВЕСТЕН
Программа формирования адреса записи в ППЗУ МК-52 должна быть как можно короче, потому что она сама записывается в ППЗУ. Опубликованные в 4/87 и 1/89. программы имеют длину 55 и 40 шагов. Но если отказаться от автоматического вычисления длины записи, кратной 7 (при длине программы, не превышающей 98 шагов, такая операция легко производится в уме), и записывать число шагов программы на месте десятых и сотых, разделив их десятичной точкой, то получается простая программа, длиною всего в 28 шагов.
00. B^ 01. K{x} 02. 2 03. F10х 04. * 05. x-y 06. К[х] 07. 2 08. / 09. + 10. B^ 11. / 12. B^ 13. K[x] 14. x-y 15. К{х} 16. Fx!=0 17. 21 18. F() 19. 1 20. + 21. B^ 22. F() 23. 1 24. 6 25. * 26. + 27. С/П.
Пусть адрес предыдущей программы 1000063, а вслед за этой программой нужно записать программу длиной 84 шага. 084 B^ 10000.63 В/0 С/П "10128.84". Результат получим через 8с.
Сейчас часто используют пакеты программ, в которых "окна", обеспечивающие стирание программы без повреждения соседних, не нужны. В этом случае для формирования адреса записи можно воспользоваться простой программой:
00. К[х] 01. FBx 02. К{х) 03.2 04. F10X 05. * 06. 2 07. * 08. + 09. + 10. С/П.
Ю.АЛЕКСАНДРОВ (Хабаровск)
АККУМУЛЯТОР ВЫГОДНЕЕ
В журнале (12/89) уже рассказывалось о доработке блока питания МК-61 для работы с аккумуляторами. Еще проще такая доработка делается для МК-52, так как блок питания БП2-3 уже имеет специальную цепь для заряда аккумуляторов. Для того чтобы выполнить переделку, нужно вскрыть корпус калькулятора и установить перемычку между выводами 3 и 4 входного разъема питания ХР1. Монтаж следует производить при вставленной в разъем вилке, идущей от блока БП2-3. Это нужно, чтобы не создать перекоса штырей при запаивании перемычки. Блок питания при этом ие должен включаться в сеть. Далее нужно установить стабилитрон. Подойдет КС147А, КС156А, КС447А, КС456А или другой с напряжением стабилизации в диапазоне 4.7-5.6 вольта. Стабилитрон устанавливается в цепи заряда блока питания. Анод припаивают к выходу "3", а катод к шине "+". При повышении напряжения на аккумуляторах или элементах выше требуемого стабилитрон открывается, защищая их от перегрузки. Установка стабилитрона делает ненужным пользование переключателем "заряд - работа" и увеличивает срок службы элементов 316 в 8-10 раз.
А.ФИЛИППОВ (Ленинград).
ВАМ ПРИВЕТ ОТ БРП
Отклики на статьи "Первый том... комом" и "Год работы с БРП-3" (2,4/90):
Сначала мой БРП-3 работал нормально, но затем при наборе адресов программ 1 и 60 я стал вместо них получать от БРП шифрованные указания. Программа 60 должна начинаться командами 65 1С 65 66, а вместо них в ОЗУ появляются Е7 37 14 25 и другие команды, не имеющие отношения к делу. Программа заканчивается десятикратным повторением команд 00 50. Может быть, ПО "Кристалл" объяснит, что означает сей привет от БРП?
В.ВАСИЛЬЕВ (Чебоксары).
Похоже, что если вместо перемычек П1 и П2 установить переключатель, то емкость БРП-3 возрастет вдвое. Так ли это?
А.ЩУКИН (Ленинград).
Я впаял вместо перемычек П1 и П2 переключатель. В одном положении БРП-3 выдавал указанные в "Руководстве" программы, а во втором - программы, не описанные в "Руководстве". Может быть, это программы БРП-2 или БРП-4?
Р.ШУБОЧКИН (Мурманск).
Я убрал перемычку П1 и поставил П2. После этого установил переключатель 1/2 в положение 2. а Д-П - в положение Д. При считывании из БРП-3 по адресу 2000098 в регистре 0 появилась цифра 7, в 1 - 30.6, в 2 - 365.25. Всем известно, что это константы программы "Календарь", которой нет в "Руководстве по эксплуатации БРП-3". Пусть ПО "Кристалл" скажет, какие там еще есть программы и как ими пользоваться.
М.КОРОЛЕВ (Москва).
В инструкции к задаче 60 нужно указать, что переключатель Р/ГРД/Г ставится в положение, соответствующее выбранной единице измерения углов.
B.АЛЕКСЕЕВ (Москва).
В инструкции к задаче 16 указано, что x**z = exp(z)*ln(x). Это неверно. В любом справочнике по высшей математике находим: х**z =еxp(z*ln(x)). К сожалению, по ошибочной формуле составлена и программа вычислений (шаги 45-62), что приводит к неверному результату, о котором пользователь дажсе не подозревает, а это может привести к непредсказуемым последствиям. Возникают вопросы: обменивает ли дефектные блоки ПО "Кристалл" на исправные? Что контролирует Госприемка?
Для вычисления х**z необходимо после считывания программы 16 заменить дефектный участок. Делается это так: БП 45 F ПРГ, после чего вписывают программу вычисления х**z 45. ПХ8 46. ПХ7 47. Fln 48. * 49. FBx 50. ПХ9 51. * 52. ХП5 53. Fsin 54. x-y 55. Fexp(x) 56. * 57. ХП6 58. FBx 59. ПХ5 60. Fcos 61. * 62. ХП5. Теперь можно переходить в режим вычислений по программе и действовать по инструкции. Тест: 2**(3+i4)=-7.4614963+i2.8854923.
C.ИВАШКОВ (Москва)
В задаче 16 величина arctg(b/a) вычисляется не только без учета знаков а и b, но и того, что действительная часть может быть нулем. Из-за этого для чисел с отрицательной действительной частью происходит ошибка в определении аргумента на 180o, а при действительной части, равной нулю,- останов деления на ноль. В задачах, где требуется составление подпрограмм (##22-27 и 29-31), инструкция предписывает "составить подпрограмму и включить ее в текст основной программы", а затем загружать основную программу. В результате нужная подпрограмма уничтожается контрольной подпрограммой. На самом деле поступать нужно не по инструкции, а наоборот. Сначала считать программу с контрольной подпрограммой и только после этого загрузить свою подпрограмму. Вообще инструкции к программам составлены крайне небрежно, и если бы их авторы сами попробовали бы ими практически пользоваться, то вскоре разозлились бы сами на себя, убедившись, что понять, что же нужно делать во многих случаях, очень трудно.
Э.ЭЙДЕЛЬМАН (Минск).
Вопрос к ПО "Кристалл": планируется ли индивидуальное изготовление блоков БРП с программами, разработанными заказчиком? Если нет, то почему? Что этому мешает? Если да, то кто угим будет заниматься и сколько это будет стоить?
В.Петров (Ленинград)
[ МАЛЕНЬКИЕ ХИТРОСТИ
Программа 33, записанная в БРП-3 позволяет определить функцию распределения с когрчштхгыо +/-7.5e-8. Такая высокая точность нужна крайне редко. Если удовлетворяет погрешность, не превышающая +/-1e-5, то время счета пo этой программе можно сократить на 20 процентов. Для этого после считывания программы из БРП-3 изменяют одну команду, записывая 00. 3 (в программе, считанной кз БРП-3, по этому адресу записано 5). Коэффициентам приписываются следующие значения, взятые из "Справочника по специальным функциям" под ред. М.Абрамовича и И.Стиган (М.; Наука, 1979): р=0.3267, b1=0.4361836, b2=-0.1201676 и b3=0.937298. Ввод коэффициентов в память и расчет ведутся в соответствии с "Руководством по эксплуатации БРП-3", но указанные в нем коэффициенты b4 и b5 в память не вводятся и в расчете не участвуют.
В.ВОЛКОВ (Хабаровск) ]
ОХОТА НА ЛИС
Соревнования радиоспортсменов под этим названием послужили ленинградцу А.Несчетному прототипом для создания игровой программы, опубликованной в 12/85 и сразу ставшей популярной. Из-за команды КИП^, записанной по адресу 41, программу нельзя применять в выпускаемых ныне калькуляторах МК-52 и МК-61. Один из вариантов модификации программы был напечатан в 2/87. Еще более простой перевод получается, если воспользоваться рекомендациями "Школы начинающего программиста" (11/88 ). В этом случае в программе делают одно-единственное изменение 41. КППЕ и дополняют ее подпрограммой 85. ПХ0 86. 1 87. + 88.ХП0 89. КПХ0 90. В/0. Перед началом первой партии в регистр Е записывают число 85. Все остальное остается без изменений.
Ниже приводится программа игры, отличающаяся от программы А.Несчетного тем, что она ведется на поле 10*10; при совпадении координат охотника с координатами лисы (лиса найдена) подается сигнал "LIS-N", а не ЕГГОГ, где N=8, 7,... 1, 0 - число еще не обнаруженных лис. Этот сигнал формируется так, как рассказано в 6,12/88, а изменение его производится так, как предложил В.Нестеров (10/85).
Принципиальным новшеством является то, что координаты найденной лисы стираются и она исключается из числа пеленгуемых лис, а раньше сам охотник должен был определять, не пеленгуются ли из занятого им квадрата ранее найденные лисы. Появился счетчик ходов охотника, что сняло недоразумения, возникавшие раньше между игроками при определении числа ходов, которые потребовались для нахождения всех лис. Кстати, лис стало больше - восемь. Для борьбы с любителями "подсматривать" координаты лис в регистрах памяти введено кодирование. И теперь такому любителю, подсмотревшему координаты 65.61, не сразу удастся вычислить, что лиса в квадрате 8.1. Изменены генератор случайных чисел и порядок определения координат лисы. Сейчас вертикальная и горизонтальная координаты определяются одновременно, а не порознь, что позволило сократить время расстановки лис с двух минут до сорока секунд.
00. B^ 01. 8 02. 8 03. 0 04. 0 05. 8 06. 8 07. B^ 08. 3 09. 3 10. 1 11.5 12. 2 13. Kили 14. K{x} 15. B^ 16. ВП 17. 5 18. ХП2 - формирование сигнала "LIS-8" 19. 1 20. 4 21. ХП0 22. 8 23. ХП1 24. ПХЕ 25. 1 26. 1 27. * 28. Fпи 29. + 30. К{х} 31. ХПЕ 32. 2 33. F10X 34. * 35. К[х] 36. 1 37. 0 38. / 39. FX2 40. КХП0 41. FL1 42. 24 43. Сх 44. ХП5 - расстановка лис и обнуление счетчика ходов охотника. 45. С/П - останов для показа числа пеленгуемых лис и ввода координат охотника. 46. ХП3 47. Сх 48. ХП4 49. КПХ5 50. 1 51. 4 52. ХП0 53. 8 54. ХП1 55. ПХ3 56. КПХ0 57. Fx!=0 58. 94 59. Fsqr 60. - 61. Fx=0 62. 73 63. ПХ0 64. 1 65. + 66. ХП0 67. x-y 68. КХП0 69. КПХ2 70. ПХ2 71. БП 72. 45 73. FBx 74. К[х] 75. ПХ3 76. К[х] 77. - 78. Fx!=0 79. 93 80. + 81. Fx!=0 82. 93 83. B^ 84. ВП 85. 1 86. FBx 87. / 88. К|х| 89. 1 90. - 91. Fx=0 92. 94 93. КПХ4 94. FL1 95. 55 96. ПХ4 97. БП 98. 45 - определение числа лис, пеленгуемых из квадрата, в котором стоит охотник, или выдача сигнала "LIS-N", если лиса найдена.
Перед началом первой партии в регистр Е вводят e0 - стартовое число для генератора случайных чисел (0<e0<1). Если выбрать e0=0.12, то, введя его в регистр Е и нажав клавиши В/0 С/П, получим расстановку лис, показанную на рисунке.
Координаты охотника вводят в регистр X в виде пары целых чисел, разделенных десятичной точкой, из которых первое - вертикальная координата, а второе - горизонтальная.
На рисунке показана ситуация при координатах охотника 4.3. Теперь, если нажать клавишу С/П, то примерно через минуту на индикаторе появится цифра 6. Внимательный читатель уже, наверное, заметил, что на рисунке не 8 лис, а 6, и охотник вроде бы должен из своей клетки запеленговать не 6 лис, а только 4. Однако ошибок тут нет, дело в том, что в квадратах 2.1 и 4.6 спряталось по две лисы. В этом легко убедиться, сыграв 4.6 С/П. Через 10с на индикаторе высветится "LIS-7". Снова играем 4.6 С/П. Теперь сигнал "LIS-6" появится через 35с. Если продолжать 4.6 С/П, то теперь через 50с на индикаторе возникнет "2". Это значит, что в квадрате 4.3 лис больше нет и из него пеленгуются 2 лисы.
Все, что мы сейчас проделали,- это тест. Следует лишь указать, что число ходов хранится в регистре 5, а координаты хода охотника - в регистре 3.
Освоив тест, можно начинать игру. Введите в регистр Е новое стартовое число, хотя это вовсе не обязательно, от игры к игре оно меняется автоматически, и нажимайте клавиши В/0 С/П. Появление нуля на индикаторе означает, что расстановка лис окончена. Теперь остается только вводить координаты охотника и нажимать клавишу С/П. Авторский личный рекорд - обнаружение всех лис за 19 ходов. Желаем вам его побить.
Ю.ИВАНОВ, П.ИРТЮГА (Ленинград)
6/91
[ Редакция раздела "Человек и компьютер" благодарит читателей В. Кононова (Курск), Ю.Криворучко (Коростышев Житомирской обл.), П. Слизевича (Самара) и других,
приславших поправку к программе игры "Охота на лис" (10/90) 57. Fx>=0 67. /-/, устраняющую неопределенность при попадании лисы в квадрат 00 ]
Последний раз редактировалось: Gudleifr (Вт Мар 21, 2023 12:18 am), всего редактировалось 1 раз(а)
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
11/90
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ШЕСТОЕ, где разрешат свои сомнения некоторые из недовольных темой предыдущего занятия, где речь шла о программной среде Эврика. В ней пользователь лишь формулирует очередную задачу и тотчас получает готовое решение, которое доставляется скрытыми в памяти компьютера программами, составленными, кажется, на все случаи жизни. Но ведь это только кажется! Жизнь то и дело ставит проблемы, для решения которых приходится составлять свои собственные, оригинальные программы (очень многие из начинающих пользователей составляют их на самом простом языке, на Бейсике). Как же ввести новые программы в круг имеющихся? Об этом и многом другом говорит ведущий занятие кандидат технических наук В.ПТИЦЫН (Москва).
Речь пойдет о среде программирования QuickBASIK (сокращенно QB), разработанной фирмой Microsoft.
Есть у меня шестерка слуг
Проворных, удалых.
И все, что вижу я вокруг,
Все узнаю от них.
Они по зову моему
Являются в беде.
Зовут их Как и Почему,
Кто, Что, Когда и Где.
(Перевод С.Маршака).
Эпиграф нашего занятия - перевод стихотворения из сказки Р. Киплинга о слоненке, которое автор когда-то учил на школьных уроках английского языка, запоминая слова what, why, when, how, where, who.
Это восьмистишие подходит нам в качестве эпиграфа и по форме, и по содержанию. Сначала о форме.
Тексты наших уроков информатики, как и эпиграф, также порою напоминают перевод: служебные слова в программах английские, а комментарии к программам, естественно, даются на русском языке. Мы были бы рады, идя навстречу просьбам некоторых читателей, не знающих английского, совсем отказаться от иностранных слов,
"Но панталоны, фрак, жилет -
Всех этих слов на русском нет!" -
говорил Пушкин славянофилу Шишкову еще в начале девятнадцатого века.
Кибернетика в пору своего младенчества, когда у нас в стране шла яростная борьба с космополитизмом, слыхивала немало ругательных речей в свой адрес на не очень-то изысканном русском языке. Она, конечно, обиделась и теперь с нами по-русски еще долго не заговорит.
Теперь, о содержании эпиграфа. Из нашей прежней рубрики "Школа начинающего программиста" постоянный наш читатель немало узнал о ЯЗЫКАХ программирования (Бейсик, Паскаль, Рапира, коды ПМК и др.). Сейчас же речь пойдет не о языке, а о СРЕДЕ программирования. Это означает, что программист, сидя за дисплеем, не остается наедине с бесчисленными операторами, командами и служебными словами компьютерного языка. Не утонуть в море сведений о языке программирования ему теперь помогает "шестерка слуг проворных, удалых". Вот их имена в среде QB: File, Edit, View, Search, Run, Debug, Options и Help (см. рисунок). Даже не шестерка, а восьмерка, но это дела не меняет.
Меню среды КвикБейсик. В самом низу экрана - строка, рекламирующая текущее "блюдо". Более подробную информацию о нем пользователь получит, нажав клавишу F1.
Читатель уже знает, что, включив персональный компьютер и запустив определенный файл (применительно к нашему теперешнему разговору - qb.exe) в определенной директории (QB45 - версия 4.5 - см. 3/90), можно, как выражаются пользователи ЭВМ, войти в нужную программную среду, отличительным признаком которой будет некая цепочка слов, появляющаяся в верхней (чердак) или нижней (подвал) части дисплея. На нашем рисунке показано "окружение", обрамляющее тексты Бейсик-программ, когда они находятся в среде QB.
С подобными словами-слугами читатель "Школы" уже встречался, знакомясь, например, с надстройкой на DOS Norton Commander (там прислуживают слова Help, User, View, Edit, Copy, RenMov, Mkdir, Delete, Menu, Quit - см. 3/90), с текстовым процессором Лексикон (Текст, Абзац, Фрагмент, Страницы, Найти, Заменить, Отметить, Перейти, Шрифт, ДОС, Выход - слуги отечественных программных продуктов, как правило, но далеко не всегда разговаривают по-русски - см. 5/90), с пакетом Eureka (File, Edit, Solve, Commands, Report, Graph, Options, Windows - 9/90). Расшифровка значений этих слов- "блюд" главного меню соответствующих программных сред - по сути и составляет содержание наших занятий. Теперешнее не будет исключением.
Читатель знает: чтобы заставить какое-то слово-слугу "проворно и удало" работать, нужно сначала активизировать меню, то есть вывести на экран дисплея весь обслуживающий персонал, нажав клавишу F10 (Лексикон), а в среде QB клавишу АН или Esc (Eureka), затем, поработав клавишами "стрелочка влево" и "стрелочка вправо", навести курсорную рамку на желательное слово и нажать клавишу Enter. После этого на экране появится вспомогательное меню, соответствующее выбранному слову - колонка с именами новых слуг. Слова этого вспомогательного меню, в свою очередь, могут быть заголовками новых меню и т.д. Как уже знает наш читатель, подобные меню строятся в виде дерева, карабкаясь по веткам которого пользователь может быстро найти то, что ему нужно.
Когда к щиту управления какой-нибудь промышленной установкой подходит очередной сменный оператор, то он, как правило, первым делом проверяет исправность всех лампочек, табло, звонков, сирен, на сигналы которых он должен будет потом реагировать. Проделаем нечто подобное и мы.
Мысленно нажмем некую гипотетическую клавишу, чтобы из названий главного меню среды QB "вывалились" вспомогательные меню (см. рис. вверху) и стали видны все слуги и прислужники. Рассказ о них. как и было обещано, будет нашим уроком.
Два замечания по рисунку. Во-первых, для экономии места вспомогательные меню располагаются не только вниз от основного, но и вверх. Во-вторых, наш вооруженный компьютером художник (студент первого курса МЭИ С.И.Волков), создавая эту картинку с помощью "мыши" в графическом редакторе Story Board (рассказ об этом программном продукте мы анонсируем для одного из будущих занятий "Школы"), постарался изобразить тени, отбрасываемые табличками вспомогательных меню. Так подчеркивается их временный характер: таблички загораживают при работе текст программы, но моментально исчезают сразу, как сослужат свою службу или после нажатия клавиши Esc, ежели человек передумал выполнять задуманное.
Теперь ближе к делу. Этого, вероятно, давно ждут
читатели, не очень-то жалующие "популистский" стиль наших рассказов о программных продуктах для IBM PC, но не имеющие другого источника информации.
File. Для среды QB группа команд, собранная здесь,- это окно в окружающий мир. Они осуществляют связь машины с ее периферией - с дисководами для жестких и гибких дисков, на которых записываются программы, с принтером для распечатки текстов программ. Команда New Program очищает ОЗУ машины от старой программы. Новая программа после этого может быть введена в компьютер двумя путями: набором ее текста на клавиатуре или вызовом ее из архивной (дисковой) памяти. Чтобы считать одну из программ и диска, следует открыть их все (Open Program) и убедиться, что в появившемся списке есть имя нужной. Если его нет, следует сменить диск или директорию на нем.
Но вот имя найдено. На него наводится курсорная рамка-указатель, нажимается клавиша Enter, и программа - на экране дисплея. Режим Save as... (записать как...) необходим в случае, если новую или модернизированную старую программу требуется записать на диск. (Важное примечание: если имя программы и место ее хранения не меняются, то она записывается с одновременным стиранием старой).
Машина, зная о забывчивости человека, зорко следит за тем, чтобы в архивной памяти оставалась копия программы, хранившейся в ОЗУ. И если человек захочет удалить ее из оперативной памяти командами New Program или Load, то услужливая машина напомнит ему о необратимости такой операции для старой программы и предложит записать ее на диск. Впрочем, человек от этого может отказаться, посчитав, что старая программа ему больше не понадобится, или экономя место на дисках.
Режим Print... позволяет распечатать на принтере текст программы (всю программу, подпрограммы или только то, что выделено на экране дисплея) или информацию из окна Immediate (о нем позже).
Слово Exit во всех местах, куда у нас заходят иностранцы, отмечает выход. Среда QB в этом смысле не исключение. Наведя курсорную рамку на Exit и нажав Enter, мы покинем гостеприимную среду QB и вернемся в среду DOS или в надстройку над DOS (PCTOOLS, Norton Commander или что-то другое - см. 3/90), откуда среда QB была вызвана.
Edit - редактирование текстов. Посмотрите на стол "бескомпьютерного" редактора, и вы там, конечно, увидите ножницы и клей. В арсенале среды QB ножницы (Cut) и клей (Paste) дополнены мечтой многих редакторов - копировальной машинкой (Сору). Чтобы из текста программы вырезать для копирования, или переноса какой-то участок, его нужно сначала выделить цветом, притопив клавишу Shift и нажимая клавиши перемещения курсора. Курсор при этом будет ползти в заданном направлении, меняя цвет фона отдельных букв (если используется стрелочка влево или вправо) или целых строк (стрелочка вниз или вверх). Выделенный таким образом текст можно из программы вырезать и выбросить в корзину (Cut), a можно занести (Сору) в специальный карман (buffer), а потом вклеить (Paste) в любое место программы - навести на это место курсор и нажать клавишу Paste. По выделенному фрагменту текста как бы делается штемпель, который теперь можно оттискивать в любом месте, куда передвинут курсор. Смежные части текста, между которыми вставляется новый фрагмент, при этом раздвинутся.
Редактор среды QB, конечно, не такой мощный, как Лексикон, MultiEdit или Microsoft Word (см. 5,7/90), но вполне достаточный для литературной работы. Ведущий этого урока "Школы" писал его текст в среде редактора QB, предварительно отключив контроль над синтаксисом строк. Если его не отключать, то машина будет оказывать "медвежьи услуги" - сообщать об ошибке (о несоответствии правилам Бейсика) после каждого перевода строки.
View - просмотр. Язык QB, что существенно отличает его от предшественников (BASICA, GW-BASIC и другие), вооружен таким мощным средством построения программ, как разбивка на процедуры (subroutine) с именами и локальными переменными. Об этой ценной особенности среды QB речь еще впереди. Сейчас же отметим, что выполнение позиции меню SUBs... выводит на экран дисплея названия всех задействованных в программе процедур и самой программы. Если требуется отредактировать или просто просмотреть какую-то процедуру, то достаточно навести на ее имя курсорную рамку-указатель и нажать на клавишу Enter - нужный участок программы тотчас появится перед глазами программиста. Как догадывается читатель, такое поручение машине программист отдает очень часто. Поэтому-то такой важной функцией нагружена клавиша F2 - вторая функциональная клавиша клавиатуры.
Команда Output Screen позволяет выйти из окна редактирования программ в окно с результатами ее работы. Повторное выполнение этой команды возвращает пользователя в окно редактирования.
Строка Included Line - это предохранитель. Если слева от этих слов стоит точка (она появится после однократного "тыканья" в них), редактирование программы невозможно - ее разрешается только просматривать. Убирается точка повторным нажатием клавиши Enter (курсорная рамка должна при этом оставаться на тех же словах).
Search - за этим словом кроются два очень нужных инструмента: Find... (найти) и Change... (заменить), позволяющие вести поиск в программах и при необходимости заменять ту или иную цепочку символов иа новую. Командой Change..., кстати, можно "вылечивать" Бейсик-программы, написанные на ранних версиях этого языка, от "детской болезни" - от коротких (в два байта) и поэтому невразумительных имен переменных: А, А0, Т и т.д. Дал команду Замени цепочку Т на Temperatura - машина за доли секунды сделает программу более понятной. Делая замену, машина переспрашивает человека: "В этом месте менять или пропустить?" Иначе машина заменит, например, букву Т в служебных словах INPUT, PRINT на цепочку Temperatura так, что программа превратится в нечто, не имеющее смысла.
Run - запуск программы) Дело вроде бы простое, но и тут возможны нюансы, отмеченные во вспомогательном к данному режиму меню. Программу можно запустить с самого начала, "ткнув" в позицию Start (или взяв аккорд Shift-F5), можно очистить зону памяти, отведенную под переменные (Restart), продолжить выполнение программы (Continue или F5) после прерывания аккордом Ctrl-Break. Все это имеется и в более ранних версиях Бейсика. Но вот новый, ранее невиданный режим Make EXE File позволяет превращать тексты программ, выполняемых в среде QB, в независимые файлы с расширением ЕХЕ, выполняемые в среде дисковой операционной системы. Такая трансформация программ преобразует их в готовый продукт, работающий в режиме компиляции без поддержки своей alma mater - среды QB.
Debug (отладка) - один из самых ответственных моментов при создании новых программ и модернизации старых. Сам английский термин debug заслуживает того, чтобы о нем рассказать подробнее. Bug по-английски - жучок, а приставка de означает удаление. Буквально слово debug можно было бы перевести как "обезжучивание". Эта калька с английского не такая уж бессмысленная. Один из первых компьютеров стал барахлить из-за того, что в его электронных внутренностях запутался таракан, закоротил контакты, обуглился и замкнул нх, нарушив тем самым электронную схему машины.
Отлаживаемые программы можно не только "обезжучивать", но и "нажучивать". В стародавние времена, когда программы в ЭВМ вводили не нх авторы, а девочки-перфораторщицы, и готовые тексты из-за этого содержали много "глупых" ошибок типа 5 вместо S, 1 вместо I и т.п., практиковался довольно оригинальный способ отладки по принципу "клин клином вышибают". Если нужно было узнать, сколько в программе "жучков", то в нее... вводилась еще сотня ошибок. Затем другой человек эти ошибки вылавливал. И если оказывалось, что он, к примеру, нашел 50 ошибок, введенных специально, и 10 первоначальных, то с определенной долей вероятности можно было считать, что в программе осталось еще с десяток первородных "жучков". Кстати, подбор искусственных ошибок - это и наука, и искусство высокого класса, а сам процесс отладки очень трудоемкий. Недаром по-английски словосочетание to go bugs означает "сойти с ума".
Какие же инструменты отладки есть у среды QB? Режим Add Watch... позволяет контролировать значения каких-то переменных. С целью такого контроля далее следует отдать команду Instant Watch... Как только вы выбрали такой вариант режима, машина запросит имена интересующих вас переменных. Вы наводите на них курсорную рамку и нажимаете клавишу Enter. После этого по ходу выполнения программы машина будет непрерывно показывать на экране дисплея текущие значения этих переменных в виде равенств типа А=...
Другой вариант того же режима озаглавлен словами Toggle Breakpoint. Выберите его - и тогда курсорной рамкой в программе можно указать операторы, на которых машина будет прерывать выполнение программы.
Все эти "путы", естественно, нужно будет убрать после отладки программы - см. режимы Delete Watch (снять наблюдение) и Clear All Breakpoint (стереть все точки прерывания).
Options (опции, дополнительные возможности). Тут хранятся инструменты настройки. Display...- по этой команде QB начинает проявлять исключительную дружественность к человеку, позволяя ему оптимальным образом раскрасить экран дисплея,- выбрать приятный фон, неутомительный цвет букв и т.д. Режим Set-Paths (установка дорожек) отсутствовал в версии 4.0 среды QB. В версии же 4.5 он есть, и связано это с тем, что в пакете стало намного больше файлов, поддерживающих жизнедеятельность среды программирования. Чтобы в них не запутаться при переносе пакета с одной машины на другую, они группируются в директориях BAS (демонстрационные программы), ЕХЕ (выполнимые файлы), LIB (библиотека) и HLP (помощь). Эти директории, в свою очередь (вспомним о древовидной структуре хранения информации на дисках), могут объединяться в директории более высокого уровня - QB45, например, директория QB45 может тоже не оставаться корневой, а стать веткой. Из-за этого нужный для работы среды QB файл может оказаться глубоко запрятанным в кроне дерева информации на винчестере. Но, чтобы пользователь не запутался в этой кроне, ему дается в руки своеобразная нить Ариадны - указываются цепочки директорий, в которых каждая последующая есть ветвь, отходящая от предыдущей, например, QB/QB45/HLP. Пробегая по этой цепочке, нетрудно найти то, что нужно.
...
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ШЕСТОЕ, где разрешат свои сомнения некоторые из недовольных темой предыдущего занятия, где речь шла о программной среде Эврика. В ней пользователь лишь формулирует очередную задачу и тотчас получает готовое решение, которое доставляется скрытыми в памяти компьютера программами, составленными, кажется, на все случаи жизни. Но ведь это только кажется! Жизнь то и дело ставит проблемы, для решения которых приходится составлять свои собственные, оригинальные программы (очень многие из начинающих пользователей составляют их на самом простом языке, на Бейсике). Как же ввести новые программы в круг имеющихся? Об этом и многом другом говорит ведущий занятие кандидат технических наук В.ПТИЦЫН (Москва).
Речь пойдет о среде программирования QuickBASIK (сокращенно QB), разработанной фирмой Microsoft.
Есть у меня шестерка слуг
Проворных, удалых.
И все, что вижу я вокруг,
Все узнаю от них.
Они по зову моему
Являются в беде.
Зовут их Как и Почему,
Кто, Что, Когда и Где.
(Перевод С.Маршака).
Эпиграф нашего занятия - перевод стихотворения из сказки Р. Киплинга о слоненке, которое автор когда-то учил на школьных уроках английского языка, запоминая слова what, why, when, how, where, who.
Это восьмистишие подходит нам в качестве эпиграфа и по форме, и по содержанию. Сначала о форме.
Тексты наших уроков информатики, как и эпиграф, также порою напоминают перевод: служебные слова в программах английские, а комментарии к программам, естественно, даются на русском языке. Мы были бы рады, идя навстречу просьбам некоторых читателей, не знающих английского, совсем отказаться от иностранных слов,
"Но панталоны, фрак, жилет -
Всех этих слов на русском нет!" -
говорил Пушкин славянофилу Шишкову еще в начале девятнадцатого века.
Кибернетика в пору своего младенчества, когда у нас в стране шла яростная борьба с космополитизмом, слыхивала немало ругательных речей в свой адрес на не очень-то изысканном русском языке. Она, конечно, обиделась и теперь с нами по-русски еще долго не заговорит.
Теперь, о содержании эпиграфа. Из нашей прежней рубрики "Школа начинающего программиста" постоянный наш читатель немало узнал о ЯЗЫКАХ программирования (Бейсик, Паскаль, Рапира, коды ПМК и др.). Сейчас же речь пойдет не о языке, а о СРЕДЕ программирования. Это означает, что программист, сидя за дисплеем, не остается наедине с бесчисленными операторами, командами и служебными словами компьютерного языка. Не утонуть в море сведений о языке программирования ему теперь помогает "шестерка слуг проворных, удалых". Вот их имена в среде QB: File, Edit, View, Search, Run, Debug, Options и Help (см. рисунок). Даже не шестерка, а восьмерка, но это дела не меняет.
Меню среды КвикБейсик. В самом низу экрана - строка, рекламирующая текущее "блюдо". Более подробную информацию о нем пользователь получит, нажав клавишу F1.
Читатель уже знает, что, включив персональный компьютер и запустив определенный файл (применительно к нашему теперешнему разговору - qb.exe) в определенной директории (QB45 - версия 4.5 - см. 3/90), можно, как выражаются пользователи ЭВМ, войти в нужную программную среду, отличительным признаком которой будет некая цепочка слов, появляющаяся в верхней (чердак) или нижней (подвал) части дисплея. На нашем рисунке показано "окружение", обрамляющее тексты Бейсик-программ, когда они находятся в среде QB.
С подобными словами-слугами читатель "Школы" уже встречался, знакомясь, например, с надстройкой на DOS Norton Commander (там прислуживают слова Help, User, View, Edit, Copy, RenMov, Mkdir, Delete, Menu, Quit - см. 3/90), с текстовым процессором Лексикон (Текст, Абзац, Фрагмент, Страницы, Найти, Заменить, Отметить, Перейти, Шрифт, ДОС, Выход - слуги отечественных программных продуктов, как правило, но далеко не всегда разговаривают по-русски - см. 5/90), с пакетом Eureka (File, Edit, Solve, Commands, Report, Graph, Options, Windows - 9/90). Расшифровка значений этих слов- "блюд" главного меню соответствующих программных сред - по сути и составляет содержание наших занятий. Теперешнее не будет исключением.
Читатель знает: чтобы заставить какое-то слово-слугу "проворно и удало" работать, нужно сначала активизировать меню, то есть вывести на экран дисплея весь обслуживающий персонал, нажав клавишу F10 (Лексикон), а в среде QB клавишу АН или Esc (Eureka), затем, поработав клавишами "стрелочка влево" и "стрелочка вправо", навести курсорную рамку на желательное слово и нажать клавишу Enter. После этого на экране появится вспомогательное меню, соответствующее выбранному слову - колонка с именами новых слуг. Слова этого вспомогательного меню, в свою очередь, могут быть заголовками новых меню и т.д. Как уже знает наш читатель, подобные меню строятся в виде дерева, карабкаясь по веткам которого пользователь может быстро найти то, что ему нужно.
Когда к щиту управления какой-нибудь промышленной установкой подходит очередной сменный оператор, то он, как правило, первым делом проверяет исправность всех лампочек, табло, звонков, сирен, на сигналы которых он должен будет потом реагировать. Проделаем нечто подобное и мы.
Мысленно нажмем некую гипотетическую клавишу, чтобы из названий главного меню среды QB "вывалились" вспомогательные меню (см. рис. вверху) и стали видны все слуги и прислужники. Рассказ о них. как и было обещано, будет нашим уроком.
Два замечания по рисунку. Во-первых, для экономии места вспомогательные меню располагаются не только вниз от основного, но и вверх. Во-вторых, наш вооруженный компьютером художник (студент первого курса МЭИ С.И.Волков), создавая эту картинку с помощью "мыши" в графическом редакторе Story Board (рассказ об этом программном продукте мы анонсируем для одного из будущих занятий "Школы"), постарался изобразить тени, отбрасываемые табличками вспомогательных меню. Так подчеркивается их временный характер: таблички загораживают при работе текст программы, но моментально исчезают сразу, как сослужат свою службу или после нажатия клавиши Esc, ежели человек передумал выполнять задуманное.
Теперь ближе к делу. Этого, вероятно, давно ждут
читатели, не очень-то жалующие "популистский" стиль наших рассказов о программных продуктах для IBM PC, но не имеющие другого источника информации.
File. Для среды QB группа команд, собранная здесь,- это окно в окружающий мир. Они осуществляют связь машины с ее периферией - с дисководами для жестких и гибких дисков, на которых записываются программы, с принтером для распечатки текстов программ. Команда New Program очищает ОЗУ машины от старой программы. Новая программа после этого может быть введена в компьютер двумя путями: набором ее текста на клавиатуре или вызовом ее из архивной (дисковой) памяти. Чтобы считать одну из программ и диска, следует открыть их все (Open Program) и убедиться, что в появившемся списке есть имя нужной. Если его нет, следует сменить диск или директорию на нем.
Но вот имя найдено. На него наводится курсорная рамка-указатель, нажимается клавиша Enter, и программа - на экране дисплея. Режим Save as... (записать как...) необходим в случае, если новую или модернизированную старую программу требуется записать на диск. (Важное примечание: если имя программы и место ее хранения не меняются, то она записывается с одновременным стиранием старой).
Машина, зная о забывчивости человека, зорко следит за тем, чтобы в архивной памяти оставалась копия программы, хранившейся в ОЗУ. И если человек захочет удалить ее из оперативной памяти командами New Program или Load, то услужливая машина напомнит ему о необратимости такой операции для старой программы и предложит записать ее на диск. Впрочем, человек от этого может отказаться, посчитав, что старая программа ему больше не понадобится, или экономя место на дисках.
Режим Print... позволяет распечатать на принтере текст программы (всю программу, подпрограммы или только то, что выделено на экране дисплея) или информацию из окна Immediate (о нем позже).
Слово Exit во всех местах, куда у нас заходят иностранцы, отмечает выход. Среда QB в этом смысле не исключение. Наведя курсорную рамку на Exit и нажав Enter, мы покинем гостеприимную среду QB и вернемся в среду DOS или в надстройку над DOS (PCTOOLS, Norton Commander или что-то другое - см. 3/90), откуда среда QB была вызвана.
Edit - редактирование текстов. Посмотрите на стол "бескомпьютерного" редактора, и вы там, конечно, увидите ножницы и клей. В арсенале среды QB ножницы (Cut) и клей (Paste) дополнены мечтой многих редакторов - копировальной машинкой (Сору). Чтобы из текста программы вырезать для копирования, или переноса какой-то участок, его нужно сначала выделить цветом, притопив клавишу Shift и нажимая клавиши перемещения курсора. Курсор при этом будет ползти в заданном направлении, меняя цвет фона отдельных букв (если используется стрелочка влево или вправо) или целых строк (стрелочка вниз или вверх). Выделенный таким образом текст можно из программы вырезать и выбросить в корзину (Cut), a можно занести (Сору) в специальный карман (buffer), а потом вклеить (Paste) в любое место программы - навести на это место курсор и нажать клавишу Paste. По выделенному фрагменту текста как бы делается штемпель, который теперь можно оттискивать в любом месте, куда передвинут курсор. Смежные части текста, между которыми вставляется новый фрагмент, при этом раздвинутся.
Редактор среды QB, конечно, не такой мощный, как Лексикон, MultiEdit или Microsoft Word (см. 5,7/90), но вполне достаточный для литературной работы. Ведущий этого урока "Школы" писал его текст в среде редактора QB, предварительно отключив контроль над синтаксисом строк. Если его не отключать, то машина будет оказывать "медвежьи услуги" - сообщать об ошибке (о несоответствии правилам Бейсика) после каждого перевода строки.
View - просмотр. Язык QB, что существенно отличает его от предшественников (BASICA, GW-BASIC и другие), вооружен таким мощным средством построения программ, как разбивка на процедуры (subroutine) с именами и локальными переменными. Об этой ценной особенности среды QB речь еще впереди. Сейчас же отметим, что выполнение позиции меню SUBs... выводит на экран дисплея названия всех задействованных в программе процедур и самой программы. Если требуется отредактировать или просто просмотреть какую-то процедуру, то достаточно навести на ее имя курсорную рамку-указатель и нажать на клавишу Enter - нужный участок программы тотчас появится перед глазами программиста. Как догадывается читатель, такое поручение машине программист отдает очень часто. Поэтому-то такой важной функцией нагружена клавиша F2 - вторая функциональная клавиша клавиатуры.
Команда Output Screen позволяет выйти из окна редактирования программ в окно с результатами ее работы. Повторное выполнение этой команды возвращает пользователя в окно редактирования.
Строка Included Line - это предохранитель. Если слева от этих слов стоит точка (она появится после однократного "тыканья" в них), редактирование программы невозможно - ее разрешается только просматривать. Убирается точка повторным нажатием клавиши Enter (курсорная рамка должна при этом оставаться на тех же словах).
Search - за этим словом кроются два очень нужных инструмента: Find... (найти) и Change... (заменить), позволяющие вести поиск в программах и при необходимости заменять ту или иную цепочку символов иа новую. Командой Change..., кстати, можно "вылечивать" Бейсик-программы, написанные на ранних версиях этого языка, от "детской болезни" - от коротких (в два байта) и поэтому невразумительных имен переменных: А, А0, Т и т.д. Дал команду Замени цепочку Т на Temperatura - машина за доли секунды сделает программу более понятной. Делая замену, машина переспрашивает человека: "В этом месте менять или пропустить?" Иначе машина заменит, например, букву Т в служебных словах INPUT, PRINT на цепочку Temperatura так, что программа превратится в нечто, не имеющее смысла.
Run - запуск программы) Дело вроде бы простое, но и тут возможны нюансы, отмеченные во вспомогательном к данному режиму меню. Программу можно запустить с самого начала, "ткнув" в позицию Start (или взяв аккорд Shift-F5), можно очистить зону памяти, отведенную под переменные (Restart), продолжить выполнение программы (Continue или F5) после прерывания аккордом Ctrl-Break. Все это имеется и в более ранних версиях Бейсика. Но вот новый, ранее невиданный режим Make EXE File позволяет превращать тексты программ, выполняемых в среде QB, в независимые файлы с расширением ЕХЕ, выполняемые в среде дисковой операционной системы. Такая трансформация программ преобразует их в готовый продукт, работающий в режиме компиляции без поддержки своей alma mater - среды QB.
Debug (отладка) - один из самых ответственных моментов при создании новых программ и модернизации старых. Сам английский термин debug заслуживает того, чтобы о нем рассказать подробнее. Bug по-английски - жучок, а приставка de означает удаление. Буквально слово debug можно было бы перевести как "обезжучивание". Эта калька с английского не такая уж бессмысленная. Один из первых компьютеров стал барахлить из-за того, что в его электронных внутренностях запутался таракан, закоротил контакты, обуглился и замкнул нх, нарушив тем самым электронную схему машины.
Отлаживаемые программы можно не только "обезжучивать", но и "нажучивать". В стародавние времена, когда программы в ЭВМ вводили не нх авторы, а девочки-перфораторщицы, и готовые тексты из-за этого содержали много "глупых" ошибок типа 5 вместо S, 1 вместо I и т.п., практиковался довольно оригинальный способ отладки по принципу "клин клином вышибают". Если нужно было узнать, сколько в программе "жучков", то в нее... вводилась еще сотня ошибок. Затем другой человек эти ошибки вылавливал. И если оказывалось, что он, к примеру, нашел 50 ошибок, введенных специально, и 10 первоначальных, то с определенной долей вероятности можно было считать, что в программе осталось еще с десяток первородных "жучков". Кстати, подбор искусственных ошибок - это и наука, и искусство высокого класса, а сам процесс отладки очень трудоемкий. Недаром по-английски словосочетание to go bugs означает "сойти с ума".
Какие же инструменты отладки есть у среды QB? Режим Add Watch... позволяет контролировать значения каких-то переменных. С целью такого контроля далее следует отдать команду Instant Watch... Как только вы выбрали такой вариант режима, машина запросит имена интересующих вас переменных. Вы наводите на них курсорную рамку и нажимаете клавишу Enter. После этого по ходу выполнения программы машина будет непрерывно показывать на экране дисплея текущие значения этих переменных в виде равенств типа А=...
Другой вариант того же режима озаглавлен словами Toggle Breakpoint. Выберите его - и тогда курсорной рамкой в программе можно указать операторы, на которых машина будет прерывать выполнение программы.
Все эти "путы", естественно, нужно будет убрать после отладки программы - см. режимы Delete Watch (снять наблюдение) и Clear All Breakpoint (стереть все точки прерывания).
Options (опции, дополнительные возможности). Тут хранятся инструменты настройки. Display...- по этой команде QB начинает проявлять исключительную дружественность к человеку, позволяя ему оптимальным образом раскрасить экран дисплея,- выбрать приятный фон, неутомительный цвет букв и т.д. Режим Set-Paths (установка дорожек) отсутствовал в версии 4.0 среды QB. В версии же 4.5 он есть, и связано это с тем, что в пакете стало намного больше файлов, поддерживающих жизнедеятельность среды программирования. Чтобы в них не запутаться при переносе пакета с одной машины на другую, они группируются в директориях BAS (демонстрационные программы), ЕХЕ (выполнимые файлы), LIB (библиотека) и HLP (помощь). Эти директории, в свою очередь (вспомним о древовидной структуре хранения информации на дисках), могут объединяться в директории более высокого уровня - QB45, например, директория QB45 может тоже не оставаться корневой, а стать веткой. Из-за этого нужный для работы среды QB файл может оказаться глубоко запрятанным в кроне дерева информации на винчестере. Но, чтобы пользователь не запутался в этой кроне, ему дается в руки своеобразная нить Ариадны - указываются цепочки директорий, в которых каждая последующая есть ветвь, отходящая от предыдущей, например, QB/QB45/HLP. Пробегая по этой цепочке, нетрудно найти то, что нужно.
...
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
...
Full Menus - это холодный душ на головы тех, кто прочел наше описание режимов работы в среде QuickBASIC и решил, что он уже знает почти все об этой среде. Дело в том, что QB имеет не одно, а два меню: короткое (его-то мы и видим на рисунке) и полное (full), которое будет появляться на дисплее, если об этом попросить машину, ткнув в слова Full Menus.
Допустим, еще не прибегнув к услугам этого режима, мы хотим отведать "блюдо" File. На это слово наведена курсорная рамка, нажата клавиша Enter, на экране появляется вспомогательное меню... И тут знаток Бейсика сразу отметит: в появившейся колонке слов отсутствует такая важная и незаменимая команда, как Merge, позволяющая собирать большую программу из маленьких, хранящихся на диске. Работавший на старых версиях Бейсика знает, что для этого нужно, чтобы у собираемых в одно целое программ не совпадали номера строк. По команде Renum перенумерация строк в старых версиях Бейсика делалась автоматически. (Забегая вперед, скажем, что язык QB может обходиться без номеров строк).
Что же делать? Вспомнить, что мы работали до сих пор с коротким меню и отдать команду Full Menus. При полном меню колонка File в три раза длиннее и в нем есть режим Merge. Теперь подгрузка новых частей программы с диска осуществляется просто. Курсор ставится иа первую строку отодвигаемого участка программы, и дается команда Merge. Вслед за этим машина запросит имя программы, встраиваемой в старую; нажатие клавиши - и старая программа раздвинута, а в свободное место вписан новый фрагмент.
Какие еще "блюда" есть в полном меню среды QB, мы рассказывать не станем: у нас ведь школа для НАЧИНАЮЩИХ пользователей ЭВМ. Пользуясь уже привычной для нас ресторанной терминологией, скажем лишь, что короткое меню - это список дежурных блюд, которые пользователь чаще всего заказывает, а полное - это праздничный ассортимент предприятия общественного питания.
Help. Режим помощи пользователю - это сердцевина среды программирования QB. Как почти во всех программных продуктах, обращение к нему идет через нажатие клавиши-выручалочки F1. Но характер экранной подсказки будет зависеть от конкретного момента работы со средой QB.
Если, например, пользователь набрал какое-то служебное слово Бейсика (READ, COLOR, PLAY и т.д.), но забыл, какие параметры нужно за ним проставить или что-то другое, то после нажатия клавиши F1 на экране появится полное описание требуемого оператора и несколько типичных примеров его использования, один из которых можно будет перенести в текст программы, а затем отредактировать, приспособив к конкретному программному сюжету. Если же человек обратился к меню среды QB, пожелав, например, записать готовую программу на дискету и выбрав режимы File и Save as..., но при этом засомневался в правильности своих действий, то нажатие клавиши F1 выдаст на экран подробную инструкцию по обмену информацией с дисками.
Начинающим осваивать среду QB адресованы позиции Index (название) и Contents (содержание) во вспомогательном меню режима Help. С помощью первого режима можно вывести на экран перечень разделов среды QB, а наведя курсорную рамку на какую-либо строку и обратившись затем ко второму режиму (каждый шаг, естественно, завершается нажатием клавиши Enter), просмотреть описание выбранного раздела. Так поясняется структура программ, создание независимых модулей, расширение библиотеки и многое другое.
Раз уж мы упомянули начинающих, то следует сказать, что в пакете среды QB, как и в любом уважающем себя программном продукте, есть демонстрационная программа. Набравшись терпения и запустив ее (это обычно файл с названием learn.exe в директории ЕХЕ), можно узнать, на что способен QB и как с ним следует обращаться.
Помощь у среды QB, как убедился читатель, довольно сложная, и для работы с ней пользователь сам нуждается в помощи. Отсюда и появился в режиме Help подрежим Help on Help - помощь при работе с помощью, так сказать, суперпомощь, обратиться за которой нужно также суперспособом, аккордом - притопив Shift и нажав F1.
Заканчивая разговор о меню среды QB и переходя к описанию собственно программирования на этом языке, отметим, что способ, которым компьютер подает на дисплей названия режимов, сам содержит в себе важную подсказку. На нашем рисунке все названия вышли однотонными. На дисплее же разные слова прорисовываются либо в сочном, либо в затененном изображении. Сочность букв означает, что в данной ситуации этот режим выполним. Слабая прорисовка букв подсказывает пользователю, что сейчас этим режимом пользоваться нельзя либо он просто бессмыслен (режим Save as... или Print... при чистом экране, например). Если же человек не послушается машины и попытается-таки задействовать недееспособный режим нажатием клавиши Enter, то компьютер в ответ запищит, как бы моля о пощаде и отказываясь выполнять невыполнимое или неразумное.
Теперь переходим к описанию самого программирования в таких комфортных условиях.
Среда QB не смотрит свысока на своих предшественников, имена которых уже промелькнули на нашем занятии: BASICA, GW-BASIC. Если вы создали целую библиотеку программ на этих языках, то при переходе к работе со средой QB она не пропадет.
Это как при переходе к работе с более совершенной моделью калькулятора (от Б3-34 к МК-52), которая выполняет все команды своей предшественницы, но еще может делать что-то новенькое. Главное, чтобы тексты программ, написанные на языке BASICA или GW-BASIC, хранились на магнитном диске в виде текстовых файлов, а не в виде абракадабры, в которую BASICA и GW-BASIC имеют обыкновение превращать программы при записи в целях быстрого считывания и прогонки. Программы в виде текстового файла среда QB подхватывает и выполняет.
Возможны только небольшие заминки, связанные, например, с тем, что переменная IS на языке BASICA в среде QB не проходит, так как совпадает по имени со служебным словом IS (есть). BASICA по команде SAVE записывает программу в виде файла, текст которого человеку прочесть трудно, но который быстро загружается с диска по команде LOAD и быстро выполняется по команде RUN.
Текстовым файл получится, если его записать по команде, в тексте которой вслед за служебным словом SAVE указывается имя программы и далее через запятую - строчная буква а.
Вернемся к нашему первому рисунку. Но прежде напомним, как в начале 1986 года в нашем журнале был объявлен, в середине года имел успех, а в конце того же года был завершен конкурс рубрики "Человек и компьютер" на самую короткую Бейсик-программу для перевода арабских чисел в римские и наоборот. На рисунке можно увидеть программы-победительницы того конкурса, написанные на языке BASICA (римское в арабское) и в среде QB (арабское в римское). Транслятор BASICA выполняет только первую программу (хотя во вторую заложен точно такой же алгоритм), а транслятор QB - обе. Сравнивая их, можно сразу отметить две особенности языка QB.
Во-первых, строки в программах на нем можно не нумеровать. Если перед введенной командой на старых версиях Бейсика не было номера строки, то такая команда сразу выполнялась. На QB для непосредственного выполнения команд предусмотрено специальное окно (см. нижнюю часть рисунка) с именем Immediate. Верхнее же окно предназначено только для ввода программных строк. Перекидывается курсор из одного окна в другое и обратно нажатием клавиши F6. У среды QB есть и третье окно, куда по командам Print и по другим подобным заносятся результаты прогонки программы. Просмотреть это окно можно, выполнив в режиме Edit команду Output Screen (или F4).
Во-вторых, в среде QB можно обойтись без меток и операторов условного и безусловного перехода: для разветвленных алгоритмов в среде QB предусмотрены специальные управляющие конструкции. О них мы сейчас и поговорим.
В программах-победительницах конкурса на лучшую программу для перевода чисел реализована основная структурная управляющая конструкция ЦИКЛ в двух разновидностях: цикл "до" (итерация с последующей проверкой) и цикл "пока" (итерация с предварительной проверкой). Сравнивая их, нелишне вспомнить про сакраментальный вопрос Пруткова: "Что полезнее, солнце или месяц?" Мнение вопрошавшего было однозначным: "Месяц. Ибо солнце светит днем, когда н без того светло, а месяц - ночью!" Подобным образом можно ответить и на вопрос: "Что важнее - цикл "пока" или цикл "до"?" Цикл "пока", конечно. Операторы тела цикла "до" выполняются как минимум один раз (даже если в этом нет необходимости), в то время как у цикла "пока" могут не работать ни разу.
Синтаксис цикла в среде QB запомнить проще простого: делай (DO) до тех пор, пока (UNTIL или WHILE) не LOOPнет чье-то терпение - пока не изменит свое значение булевая переменная, управляющая циклом.
"Вассал моего вассала - не мой вассал",- на КвикБейсике этот феодальный принцип реализуется так: "Переменные моей процедуры - не мои переменные".
Программа для поиска корня уравнения методом половинного деления (рисунок вверху) внесена в столь любимую редакцией журнала "Наука и жизнь" структурную диаграмму и содержит вторую алгоритмическую конструкцию - альтернативу (IF... THEN... ELSE...). То, что QB может обходиться без номеров строк (см. выше), пользователи языков BASICA и GW-BASIC принимают не сразу, но в конце концов все-таки принимают. Особенность же среды QB, реализованная в программе "Половинное деление", часто их ставит в тупик и бывает причиной многих непонятных на первый взгляд ошибок. Дело в том, что переменные А и В в самой программе и в процедуре (SUB) расчета знания анализируемой функции с именем F - разные и независимые. Это новшество в среде QB, приближающее ее к таким почтенным языкам, как Паскаль, Си, Фортран, PL/1, позволяет программисту поручать написание отдельных процедур (подпрограмм) своим подмастерьям, субподрядчикам, не заботясь при этом о разделении переменных. Разделение переменных, неизбежное при работе с языками BASICA или GW-BASIC, в среде QB машина берет на себя. "Начальнику программы", работая по такой технологии "сверху вниз", достаточно сообщить помощникам только имена входных (у нас это переменная X) и выходных (переменная Y) параметров. А какие там подмастерья задействуют локальные переменные,- это зависит от их вкуса и привычек. С глобальными переменными и переменными других подпрограмм они не смешаются и алгоритм решения задачи тем самым не сломают.
Примеры программ, реализующих структурные конструкции и среды QB, мы уже ранее публиковали: альтернатива в программе - первоапрельской шутке "Телеэкстрасенсы" (там была сверхальтернатива с третьим ответом на альтернативный вопрос - см. 4/90), множественное ветвление в программе "Свадьбы" (10/89), переключаемый переход к метке в программе "Концентрации раствора" (2/90), вложенные циклы в программе "Буферность раствора" (2/90).
Программа для поиска корня алгебраического уравнения методом Ньютона и программы для поиска минимума функции, написанные на двух версиях Бейсика.
Обратите внимание на то, как в этих трех программах объявляются функции пользователя и организуются процедуры: Квик-Бейсик "всеяден" и позволяет один и тот же программистский прием реализовать разными способами.
Две последующие программы (билингва ВАSICA - QB), предназначенные для поиска минимума функции методом золотого сечения (10/88 ), отвечают на вопрос о том, какие структурные управляющие конструкции следует считать основными, а какие вспомогательными, без которых можно обойтись. Основная структурная теорема на этот вопрос отвечает так: "Алгоритм любой сложности можно реализовать, используя триаду "следование - повторение (циклы) - выбор (альтернатива)". Но наша билингва доказывает, что и без альтернативы можно обойтись: в BASICA-программе она есть, а в ее аналоге на QB нет - обошлись циклами "пока" и булевой переменной FLAG, заставляющей тело цикла работать либо раз, либо совсем ни разу.
QB-программа "Золотое сечение" показывает, что на этом языке осталось понятие метки, которая может быть не только номером строки, но и иметь собственное имя (RIGHT, LEFT); остались и подпрограммы. Так что приверженцы старых вариантов Бейсика, работая с QB, могут использовать милые их сердцу приемы.
В QB-программе для поиска корня алгебраического уравнения методом Ньютона использован цикл с выходом из середины. Тот, кто знает достоинства этой конструкции, по-видимому, полагает, что ее-то и следует полагать основной и единственной, без которой не реализуешь задуманный алгоритм. Правда, выходов из цикла может быть несколько. Этого не избежать, когда значения булевых переменных, управляющих циклом, меняются пне цикла. Такое случается, когда в программе задействованы элементы параллельного программирования или когда, например, значение какой-то булевой переменной определяется показаниями встроенных часов компьютера илн состоянием того или иного периферийного устройства. Отметим, что цикл с выходом из середины на "сверхструктурированном" языке Паскаль реализуется, как правило, с опорой на метку, а это признак низкой культуры программирования.
Заканчивая наш довольно спорный разговор о необходимом и достаточном наборе управляющих конструкций языка, отметим, что многие программисты считают основной и незаменимой конструкцией также и рекурсивный вызов процедуры (см. 2/88 ). На старых версиях Бейсика рекурсия использовалась по принципу "если нельзя, но очень хочется, то можно" - см. 12/88 с описанием рекурсивного решения задачи о ханойских башни на компьютере "Искра 226". В среде QB рекурсия разрешена - см. Бейсик-программу "Ханойские башни" на рисунке.
"Ханойские башни". Программа этой игры ночует из одного учебника по программированию в другой и вот попала в наш журнал для иллюстрации рекурсии на КвикБейсиие.
Заканчиваем наш последний в этом году урок "Школы пользователя ЭВМ" небольшим подарком.
Почти все журналы в своих предновогодних выпусках помещают на вкладках табели-календари грядущего года. Наш журнал не будет исключением. Но наш табель-календарь составлен в духе рубрики. Это Квик-Бейсик-программа для распечатки табеля-календаря (автор - студент МЭИ из Вьетнама Фам Ван Чиен). Годится ли она для любого года и любого тысячелетия? Нет ли в ней ошибок (для 1991 года точно нет)? А если есть, то как их исправить? Вот домашнее задание для наших читателей. Подобные программы называются программами вечного календаря, наверно, также и потому, что сама эта тема вечная: поток писем с подобными программами, поступающими в редакции компьютерных журналов, не иссякает.
Тем, у кого есть цветные принтеры, рекомендуем вставить в программу операторы, раскрашивающие в красный цвет праздничные дни, семейные юбилеи, дни рождений и т.д. Такой индивидуальный табель-календарь - прекрасный новогодний подарок.
И последнее. До сих пор мы стыдливо обходили вопрос о том, как программные продукты, описываемые в нашей "Школе", попадают в компьютер и учителя, и учеников. "Скажи мне, что у тебя на винчестере, и я скажу тебе, кто ты!" История почти всех программных продуктов на отечественных персональных компьютерах примерно такова. Товарищ пользователя (звучит как старорежимное "товарищ прокурора", а прокурором здесь пахнет - см. далее) говорит собеседнику: "Что ты мучаешься, пытаясь создать в кодах ассемблера электронную таблицу, базу данных или какой-то графический редактор? Дай мне пару дискет, и я перепишу тебе все, что нужно - западный или советский программный продукт для этих целей".
Но слово "продукт" означает предмет, созданный кем-то для продажи. В описанной ситуации создатель продукта теряет в доходе из-за "товарищеского", а по сути пиратского копирования, становится жертвой вот такого "товарищеского" грабежа.
Тем, кто желает приобрести описанные в нашей "Школе" программные продукты (MSWord, MSWorks QuickBASIC и др.) на законном основании, рекомендуем обратиться в советско-американское совместное предприятие "Диалог" по адресу: 115598, Москва, ул. Ягодная 17. Телефон: 329-45-33.
ТЕМЫ ЗАНЯТИЯ НАШЕЙ ШКОЛЫ В 1991 ГОДУ. ХОТИТЕ ПРОВЕСТИ ОДНО ИЗ НИХ?
1. Интегрированный пакет Framework III.
2. Интегрированный пакет Microsoft Works (версия вторая, русифицированная).
3. Какой язык лучше? Аналитический обзор сред программирования для IBM PC.
4. Как и зачем персональные компьютеры соединяют в сеть?
5. Как с помощью ПК создаются рисунки и мультфильмы?
6. Круглый стол читателей журнала по основным проблемам работы с ПК.
Full Menus - это холодный душ на головы тех, кто прочел наше описание режимов работы в среде QuickBASIC и решил, что он уже знает почти все об этой среде. Дело в том, что QB имеет не одно, а два меню: короткое (его-то мы и видим на рисунке) и полное (full), которое будет появляться на дисплее, если об этом попросить машину, ткнув в слова Full Menus.
Допустим, еще не прибегнув к услугам этого режима, мы хотим отведать "блюдо" File. На это слово наведена курсорная рамка, нажата клавиша Enter, на экране появляется вспомогательное меню... И тут знаток Бейсика сразу отметит: в появившейся колонке слов отсутствует такая важная и незаменимая команда, как Merge, позволяющая собирать большую программу из маленьких, хранящихся на диске. Работавший на старых версиях Бейсика знает, что для этого нужно, чтобы у собираемых в одно целое программ не совпадали номера строк. По команде Renum перенумерация строк в старых версиях Бейсика делалась автоматически. (Забегая вперед, скажем, что язык QB может обходиться без номеров строк).
Что же делать? Вспомнить, что мы работали до сих пор с коротким меню и отдать команду Full Menus. При полном меню колонка File в три раза длиннее и в нем есть режим Merge. Теперь подгрузка новых частей программы с диска осуществляется просто. Курсор ставится иа первую строку отодвигаемого участка программы, и дается команда Merge. Вслед за этим машина запросит имя программы, встраиваемой в старую; нажатие клавиши - и старая программа раздвинута, а в свободное место вписан новый фрагмент.
Какие еще "блюда" есть в полном меню среды QB, мы рассказывать не станем: у нас ведь школа для НАЧИНАЮЩИХ пользователей ЭВМ. Пользуясь уже привычной для нас ресторанной терминологией, скажем лишь, что короткое меню - это список дежурных блюд, которые пользователь чаще всего заказывает, а полное - это праздничный ассортимент предприятия общественного питания.
Help. Режим помощи пользователю - это сердцевина среды программирования QB. Как почти во всех программных продуктах, обращение к нему идет через нажатие клавиши-выручалочки F1. Но характер экранной подсказки будет зависеть от конкретного момента работы со средой QB.
Если, например, пользователь набрал какое-то служебное слово Бейсика (READ, COLOR, PLAY и т.д.), но забыл, какие параметры нужно за ним проставить или что-то другое, то после нажатия клавиши F1 на экране появится полное описание требуемого оператора и несколько типичных примеров его использования, один из которых можно будет перенести в текст программы, а затем отредактировать, приспособив к конкретному программному сюжету. Если же человек обратился к меню среды QB, пожелав, например, записать готовую программу на дискету и выбрав режимы File и Save as..., но при этом засомневался в правильности своих действий, то нажатие клавиши F1 выдаст на экран подробную инструкцию по обмену информацией с дисками.
Начинающим осваивать среду QB адресованы позиции Index (название) и Contents (содержание) во вспомогательном меню режима Help. С помощью первого режима можно вывести на экран перечень разделов среды QB, а наведя курсорную рамку на какую-либо строку и обратившись затем ко второму режиму (каждый шаг, естественно, завершается нажатием клавиши Enter), просмотреть описание выбранного раздела. Так поясняется структура программ, создание независимых модулей, расширение библиотеки и многое другое.
Раз уж мы упомянули начинающих, то следует сказать, что в пакете среды QB, как и в любом уважающем себя программном продукте, есть демонстрационная программа. Набравшись терпения и запустив ее (это обычно файл с названием learn.exe в директории ЕХЕ), можно узнать, на что способен QB и как с ним следует обращаться.
Помощь у среды QB, как убедился читатель, довольно сложная, и для работы с ней пользователь сам нуждается в помощи. Отсюда и появился в режиме Help подрежим Help on Help - помощь при работе с помощью, так сказать, суперпомощь, обратиться за которой нужно также суперспособом, аккордом - притопив Shift и нажав F1.
Заканчивая разговор о меню среды QB и переходя к описанию собственно программирования на этом языке, отметим, что способ, которым компьютер подает на дисплей названия режимов, сам содержит в себе важную подсказку. На нашем рисунке все названия вышли однотонными. На дисплее же разные слова прорисовываются либо в сочном, либо в затененном изображении. Сочность букв означает, что в данной ситуации этот режим выполним. Слабая прорисовка букв подсказывает пользователю, что сейчас этим режимом пользоваться нельзя либо он просто бессмыслен (режим Save as... или Print... при чистом экране, например). Если же человек не послушается машины и попытается-таки задействовать недееспособный режим нажатием клавиши Enter, то компьютер в ответ запищит, как бы моля о пощаде и отказываясь выполнять невыполнимое или неразумное.
Теперь переходим к описанию самого программирования в таких комфортных условиях.
Среда QB не смотрит свысока на своих предшественников, имена которых уже промелькнули на нашем занятии: BASICA, GW-BASIC. Если вы создали целую библиотеку программ на этих языках, то при переходе к работе со средой QB она не пропадет.
Это как при переходе к работе с более совершенной моделью калькулятора (от Б3-34 к МК-52), которая выполняет все команды своей предшественницы, но еще может делать что-то новенькое. Главное, чтобы тексты программ, написанные на языке BASICA или GW-BASIC, хранились на магнитном диске в виде текстовых файлов, а не в виде абракадабры, в которую BASICA и GW-BASIC имеют обыкновение превращать программы при записи в целях быстрого считывания и прогонки. Программы в виде текстового файла среда QB подхватывает и выполняет.
Возможны только небольшие заминки, связанные, например, с тем, что переменная IS на языке BASICA в среде QB не проходит, так как совпадает по имени со служебным словом IS (есть). BASICA по команде SAVE записывает программу в виде файла, текст которого человеку прочесть трудно, но который быстро загружается с диска по команде LOAD и быстро выполняется по команде RUN.
Текстовым файл получится, если его записать по команде, в тексте которой вслед за служебным словом SAVE указывается имя программы и далее через запятую - строчная буква а.
Вернемся к нашему первому рисунку. Но прежде напомним, как в начале 1986 года в нашем журнале был объявлен, в середине года имел успех, а в конце того же года был завершен конкурс рубрики "Человек и компьютер" на самую короткую Бейсик-программу для перевода арабских чисел в римские и наоборот. На рисунке можно увидеть программы-победительницы того конкурса, написанные на языке BASICA (римское в арабское) и в среде QB (арабское в римское). Транслятор BASICA выполняет только первую программу (хотя во вторую заложен точно такой же алгоритм), а транслятор QB - обе. Сравнивая их, можно сразу отметить две особенности языка QB.
Во-первых, строки в программах на нем можно не нумеровать. Если перед введенной командой на старых версиях Бейсика не было номера строки, то такая команда сразу выполнялась. На QB для непосредственного выполнения команд предусмотрено специальное окно (см. нижнюю часть рисунка) с именем Immediate. Верхнее же окно предназначено только для ввода программных строк. Перекидывается курсор из одного окна в другое и обратно нажатием клавиши F6. У среды QB есть и третье окно, куда по командам Print и по другим подобным заносятся результаты прогонки программы. Просмотреть это окно можно, выполнив в режиме Edit команду Output Screen (или F4).
Во-вторых, в среде QB можно обойтись без меток и операторов условного и безусловного перехода: для разветвленных алгоритмов в среде QB предусмотрены специальные управляющие конструкции. О них мы сейчас и поговорим.
В программах-победительницах конкурса на лучшую программу для перевода чисел реализована основная структурная управляющая конструкция ЦИКЛ в двух разновидностях: цикл "до" (итерация с последующей проверкой) и цикл "пока" (итерация с предварительной проверкой). Сравнивая их, нелишне вспомнить про сакраментальный вопрос Пруткова: "Что полезнее, солнце или месяц?" Мнение вопрошавшего было однозначным: "Месяц. Ибо солнце светит днем, когда н без того светло, а месяц - ночью!" Подобным образом можно ответить и на вопрос: "Что важнее - цикл "пока" или цикл "до"?" Цикл "пока", конечно. Операторы тела цикла "до" выполняются как минимум один раз (даже если в этом нет необходимости), в то время как у цикла "пока" могут не работать ни разу.
Синтаксис цикла в среде QB запомнить проще простого: делай (DO) до тех пор, пока (UNTIL или WHILE) не LOOPнет чье-то терпение - пока не изменит свое значение булевая переменная, управляющая циклом.
"Вассал моего вассала - не мой вассал",- на КвикБейсике этот феодальный принцип реализуется так: "Переменные моей процедуры - не мои переменные".
Программа для поиска корня уравнения методом половинного деления (рисунок вверху) внесена в столь любимую редакцией журнала "Наука и жизнь" структурную диаграмму и содержит вторую алгоритмическую конструкцию - альтернативу (IF... THEN... ELSE...). То, что QB может обходиться без номеров строк (см. выше), пользователи языков BASICA и GW-BASIC принимают не сразу, но в конце концов все-таки принимают. Особенность же среды QB, реализованная в программе "Половинное деление", часто их ставит в тупик и бывает причиной многих непонятных на первый взгляд ошибок. Дело в том, что переменные А и В в самой программе и в процедуре (SUB) расчета знания анализируемой функции с именем F - разные и независимые. Это новшество в среде QB, приближающее ее к таким почтенным языкам, как Паскаль, Си, Фортран, PL/1, позволяет программисту поручать написание отдельных процедур (подпрограмм) своим подмастерьям, субподрядчикам, не заботясь при этом о разделении переменных. Разделение переменных, неизбежное при работе с языками BASICA или GW-BASIC, в среде QB машина берет на себя. "Начальнику программы", работая по такой технологии "сверху вниз", достаточно сообщить помощникам только имена входных (у нас это переменная X) и выходных (переменная Y) параметров. А какие там подмастерья задействуют локальные переменные,- это зависит от их вкуса и привычек. С глобальными переменными и переменными других подпрограмм они не смешаются и алгоритм решения задачи тем самым не сломают.
Примеры программ, реализующих структурные конструкции и среды QB, мы уже ранее публиковали: альтернатива в программе - первоапрельской шутке "Телеэкстрасенсы" (там была сверхальтернатива с третьим ответом на альтернативный вопрос - см. 4/90), множественное ветвление в программе "Свадьбы" (10/89), переключаемый переход к метке в программе "Концентрации раствора" (2/90), вложенные циклы в программе "Буферность раствора" (2/90).
Программа для поиска корня алгебраического уравнения методом Ньютона и программы для поиска минимума функции, написанные на двух версиях Бейсика.
Обратите внимание на то, как в этих трех программах объявляются функции пользователя и организуются процедуры: Квик-Бейсик "всеяден" и позволяет один и тот же программистский прием реализовать разными способами.
Две последующие программы (билингва ВАSICA - QB), предназначенные для поиска минимума функции методом золотого сечения (10/88 ), отвечают на вопрос о том, какие структурные управляющие конструкции следует считать основными, а какие вспомогательными, без которых можно обойтись. Основная структурная теорема на этот вопрос отвечает так: "Алгоритм любой сложности можно реализовать, используя триаду "следование - повторение (циклы) - выбор (альтернатива)". Но наша билингва доказывает, что и без альтернативы можно обойтись: в BASICA-программе она есть, а в ее аналоге на QB нет - обошлись циклами "пока" и булевой переменной FLAG, заставляющей тело цикла работать либо раз, либо совсем ни разу.
QB-программа "Золотое сечение" показывает, что на этом языке осталось понятие метки, которая может быть не только номером строки, но и иметь собственное имя (RIGHT, LEFT); остались и подпрограммы. Так что приверженцы старых вариантов Бейсика, работая с QB, могут использовать милые их сердцу приемы.
В QB-программе для поиска корня алгебраического уравнения методом Ньютона использован цикл с выходом из середины. Тот, кто знает достоинства этой конструкции, по-видимому, полагает, что ее-то и следует полагать основной и единственной, без которой не реализуешь задуманный алгоритм. Правда, выходов из цикла может быть несколько. Этого не избежать, когда значения булевых переменных, управляющих циклом, меняются пне цикла. Такое случается, когда в программе задействованы элементы параллельного программирования или когда, например, значение какой-то булевой переменной определяется показаниями встроенных часов компьютера илн состоянием того или иного периферийного устройства. Отметим, что цикл с выходом из середины на "сверхструктурированном" языке Паскаль реализуется, как правило, с опорой на метку, а это признак низкой культуры программирования.
Заканчивая наш довольно спорный разговор о необходимом и достаточном наборе управляющих конструкций языка, отметим, что многие программисты считают основной и незаменимой конструкцией также и рекурсивный вызов процедуры (см. 2/88 ). На старых версиях Бейсика рекурсия использовалась по принципу "если нельзя, но очень хочется, то можно" - см. 12/88 с описанием рекурсивного решения задачи о ханойских башни на компьютере "Искра 226". В среде QB рекурсия разрешена - см. Бейсик-программу "Ханойские башни" на рисунке.
"Ханойские башни". Программа этой игры ночует из одного учебника по программированию в другой и вот попала в наш журнал для иллюстрации рекурсии на КвикБейсиие.
Заканчиваем наш последний в этом году урок "Школы пользователя ЭВМ" небольшим подарком.
Почти все журналы в своих предновогодних выпусках помещают на вкладках табели-календари грядущего года. Наш журнал не будет исключением. Но наш табель-календарь составлен в духе рубрики. Это Квик-Бейсик-программа для распечатки табеля-календаря (автор - студент МЭИ из Вьетнама Фам Ван Чиен). Годится ли она для любого года и любого тысячелетия? Нет ли в ней ошибок (для 1991 года точно нет)? А если есть, то как их исправить? Вот домашнее задание для наших читателей. Подобные программы называются программами вечного календаря, наверно, также и потому, что сама эта тема вечная: поток писем с подобными программами, поступающими в редакции компьютерных журналов, не иссякает.
Тем, у кого есть цветные принтеры, рекомендуем вставить в программу операторы, раскрашивающие в красный цвет праздничные дни, семейные юбилеи, дни рождений и т.д. Такой индивидуальный табель-календарь - прекрасный новогодний подарок.
И последнее. До сих пор мы стыдливо обходили вопрос о том, как программные продукты, описываемые в нашей "Школе", попадают в компьютер и учителя, и учеников. "Скажи мне, что у тебя на винчестере, и я скажу тебе, кто ты!" История почти всех программных продуктов на отечественных персональных компьютерах примерно такова. Товарищ пользователя (звучит как старорежимное "товарищ прокурора", а прокурором здесь пахнет - см. далее) говорит собеседнику: "Что ты мучаешься, пытаясь создать в кодах ассемблера электронную таблицу, базу данных или какой-то графический редактор? Дай мне пару дискет, и я перепишу тебе все, что нужно - западный или советский программный продукт для этих целей".
Но слово "продукт" означает предмет, созданный кем-то для продажи. В описанной ситуации создатель продукта теряет в доходе из-за "товарищеского", а по сути пиратского копирования, становится жертвой вот такого "товарищеского" грабежа.
Тем, кто желает приобрести описанные в нашей "Школе" программные продукты (MSWord, MSWorks QuickBASIC и др.) на законном основании, рекомендуем обратиться в советско-американское совместное предприятие "Диалог" по адресу: 115598, Москва, ул. Ягодная 17. Телефон: 329-45-33.
ТЕМЫ ЗАНЯТИЯ НАШЕЙ ШКОЛЫ В 1991 ГОДУ. ХОТИТЕ ПРОВЕСТИ ОДНО ИЗ НИХ?
1. Интегрированный пакет Framework III.
2. Интегрированный пакет Microsoft Works (версия вторая, русифицированная).
3. Какой язык лучше? Аналитический обзор сред программирования для IBM PC.
4. Как и зачем персональные компьютеры соединяют в сеть?
5. Как с помощью ПК создаются рисунки и мультфильмы?
6. Круглый стол читателей журнала по основным проблемам работы с ПК.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
12/90
СУПЕРКАРТОТЕКА ИЗ ЗЕЛЕНОГРАДА
Каждый, кто работает с базой данных и информационно-поисковыми системами, хранящимися в памяти компьютера, может упростить задачу и сэкономить немало времени, если воспользуется электронной картотекой BShell - v1.0, разработанной совместной фирмой "Эпсилон".
Электронная картотека - это программа, позволяющая хранить базу данных на различных носителях, и способная вести поиск сразу по группе баз данных (по нескольким DBF-файлам). Программа использует стандартный DBF-формат, но пользователь в процессе работы может менять формат и цветовую раскраску карточек, выбирая наиболее удобный вариант. При этом одна и та же информация может храниться на карточках различного формата. Картотека BShell допускает хранение и использование, кроме базы данных стандартных изображений (PCX, РСС - форматы) и специфической информации. Например, изображения в формате AUTOCAD и даже музыку, которую можно услышать,- стоит лишь определенным образом настроить программу. Если у программиста возникают какие-либо затруднения, то, не прерывая работы, можно обратиться за подсказкой к перестраиваемому многоуровневому HELP-модулю.
Электронная картотека позволяет создавать структуру базы данных, быстро вводить, искать и изменять в ней информацию, поддерживает многооконный интерфейс. Программа содержит встроенный редактор форм, позволяющий редактировать таблицы, можно также импортировать подготовленные формы из других текстовых редакторов.
Заказать пакет BShell можно, выслав гарантийное письмо по адресу: 103498, Москва, Зеленоград, 443, "Эпсилон".
12/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ.
В продаже появилась первая партия микрокомпьютеров МК-85. Небольшая, всего несколько тысяч штук. Нечего и говорить, что расхватали новинку мгновенно. Еще бы! Эта машинка, по размерам чуть превосходящая программируемый микрокалькулятор, программируется на "настоящем" Бейсике.
И вот в редакцию журнала поступили первые письма от владельцев МК-85. Им - первое слово в нынешнем выпуске раздела.
ЗЕМЛЕМЕРКА
Прежде всего хотелось бы высказать благодарность конструкторам и создателям микрокомпьютера МК-85. Он вышел легкий, компактный и, что немаловажно, практически на уровне мировых стандартов. Особо хочется отметить хорошую "защиту от дурака" ("fool proof").
Но, конечно же, есть у него и недостатки. Главным, пожалуй, является медленный темп выпуска: к декабрю 1989г. вышел пятитысячный образец. Кроме того, недостает возможности обращения к периферийным устройствам - накопителям информации.
Надо отметить, что образец 1989г. выпуска отличается от своего предшественника, описанного в "Науке и жизни". Процессор объединен с контролером клавиатуры, а две микросхемы ПЗУ - в одну, поэтому количество микросхем сократилось до четырех. Число шагов памяти увеличено с 1000 до 1221, появилась текстовая переменная длиной в 30 символов, введена псевдографика, обслуживающая дисплей 7*60 точек.
Как всегда, слабым местом является инструкция. Например, такая существенная деталь, как описание режима повышенного быстродействия, находится в пункте "5.2. Работа от блока питания" на 10-й странице и занимает всего 4 строчки.
В инструкции не указана возможность организации ремарок с помощью "!". Не указано также, что в режиме представления угловых единиц в градах, вводимом набором клавиш MODE 6, после каждого оператора псевдографики DRAW или DRAWC выполнение программы останавливается с включением сигнализации STOP, что не очень приятно, хотя и не страшно, поскольку дальнейший пуск осуществляется клавишей ЕХЕ. Кстати, это явление можно использовать при отладке программ.
Несмотря на малый размер дисплея, аргумент оператора DRAW X, Y может быть в пределах от - 2**15 до 2**16 по обеим осям. Если аргумент превышает рамки дисплея, то есть по оси ОХ абсцисса X меньше 0 или больше 59, а по оси ОY ордината Y меньше 0 или больше 6, то при наличии дробной части в координате на дисплее могут появиться "мусорные точки".
Из таблицы 6.9 ("Коды и символы") видно, что символы #1-10 отсутствуют на клавиатуре. Прояснить возможные недоразумения нетрудно с помощью несложной программы, где в 10-й строке переменной А присваивается код нажатой клавиши, а по команде, записанной в 20-й строке, на дисплей выводится символ, соответствующий клавише.
Оператор YAC, оказывается, очищает не все переменные, а только те, на которые расширена память. Это позволяет хранить в памяти числа, которые не стираются оператором YAC. Выполните приведенную ниже программу, и вы получите на дисплее 2167635.
В заключение привожу составленную мной для МК-85 игру "Землемерка" - упрощенный вариант игры "Удав" ("Питон") хорошо знакомой пользователям ПЭВМ на 580-м процессоре.
Управляющие клавиши 2 4 6 8 - вниз, влево, вправо, вверх соответственно. Экран представляет собой развертку цилиндра. После запуска программы оператором RUN вводится количество игровых циклов (или кроликов, по терминологии игры "Удав"). Затем необходимо, нажимая управляющие клавиши, совместить "землемерку" (изображается управляемой точкой на дисплее) с точкой-"кроликом". Об их совпадении просигнализирует переход компьютера в режим "радиан" (в следующий раз - в режим "градусы" и т.д.). После этого игра продолжается. По окончании игры отображается количество очков, и программа запускается вновь. Для окончания игры нужно ввести нулевое или отрицательное число в ответ на запрос компьютера.
Удаву из известной игры, послужившей прототипом для "Землеройки", запрещалось переползать через себя, менять направление движения на обратное и выходить за пределы экрана. Здесь эти ограничения сняты. Программа имеет защиту от случайного нажатия несанкционированных клавиш.
А.ТАНКОВ (Москва)
СКАЧКИ
Игра начинается с мелодичного вступления, и, хотя музыка не слышна, она угадывается по происходящему на экране. Импровизированное табло торжественно большими буквами сообщает: СКАЧКИ. Последний аккорд, и конь срывается с места. Впереди-беговая дорожка с барьерами, которые расставлены на произвольном расстоянии друг от друга.
Цель игры: привести скакуна к финишу с минимальным числом падений. Управление скакуном осуществляется чрезвычайно просто - клавишей ЕХЕ.
Внимание! Нажатие управляющей клавиши невовремя, а также ненажатие ее вовремя приведет к падению лошади. Нажимайте ЕХЕ лишь тогда, когда жеребец находится непосредственно перед барьером. И тогда он взметнется ввысь, оставляя далеко под собой препятствие, и, удачно приземлившись, продолжит бег. Если вы упустите момент, конь прыгнет без команды управляющей клавиши, но из-за позднего толчка прыжок получится низким, скакун зацепит за барьер и упадет. А нажатие клавиши ЕХЕ, когда препятствия вблизи нет, собьет с толку вашу лошадь и повлечет ее падение.
По мере приближения к концу беговой дорожки темп игры нарастает. Одновременное движение скакуна и барьеров в сочетании с таким ускорением создает иллюзию присутствия аж дух захватывает!
И вот, наконец, финиш. На экране появляется сообщение о точном количестве падений - в первый раз их наверняка окажется много. Затем компьютер выдаст свою оценку прошедшей игре, вероятно, замигает: "Плохо, плохо!". Не отчаивайтесь, начните сначала, совершенствуйтесь - впереди вас ждет успех, фанфары и призовой забег.
Программа игры вводится
в режиме записи строго по приведенному тексту. Объем занимаемой памяти составляет 853 шага (байта). Правильно введенная программа отладки не требует. Запуск игры осуществляется в режиме повышенного быстродействия командой RUN. Время одного забега составляет около 1.5 мин. Полторы минуты - и СКАЧКИ завоюют ваше предпочтение!
И.ГАЛАХОВ (Москва)
1024 СОВЕТА
(БАЙТ ОДИННАДЦАТЫЙ)
Очередной байт адресован владельцам БК-0010, работающим с Фокалом. Советы прислал М.Нурмагомедов из Махачкалы.
81. Если снять с клавиатуры БК оба листа полиэтилена, разрезать лист с обозначением функций клавиш и наклеить их, то работать с компьютером будет намного легче.
82. Если ты забыл адрес загрузки программы с магнитной ленты, то укажи на запрос машины нулевой адрес. После этого в ячейках 264 и 266 можно будет прочесть адрес загрузки и длину программы соответственно.
83. Если адрес начала программы записать в ячейку 4 (зависание по клавише "СТОП"), то остановить прогонку программы можно только после отключения электропитания БК. Так можно обезопасить себя от непреднамеренного останова программы.
84. При работе с портом ввода-вывода обрати внимание на инверсию логики: здесь логический ноль - 5 вольт, а логическая единица - отсутствие напряжения.
85. Чтобы можно было в кодах проводить умножение, деление, вычислять тригонометрические функции и т.д., необходимо в ячейку 10 записать число 125036 (адрес обработки команд 70SD).
86. Команды X FCHR (12, 7, 7, 7) и Т - "СБР CY/G CY/G CY/G" выполняют одну и ту же работу, однако второй вариант занимает меньше места и на экране (Т "-"), и в памяти машины.
87. Использование оператора X FCLK() в качестве таймера предусматривает подключение внешнего генератора. При этом, однако, следует помнить, что машина может "зависать", отказываться переходить в режим тестов.
88. "Ахиллесова пята" БК-0010 - выключатель блока питания. Уделив 10 минут на его замену, можно избавить себя от многих неприятностей.
Первый и последний совет этого байта позволяет редакции сформулировать непронумерованный совет: если заменить БК на какой-то другой компьютер, то работать с машиной будет еще приятнее.
БК-0010 ОБМЕНИВАЕТ КВАРТИРЫ
Один мой знакомый решил обменять квартиру. На его удивление возникло несколько вполне приемлемых вариантов. Вот тут и встал вопрос выбора - все варианты нравились ему, но у каждого были и свои недостатки.
Однако оказалось, что метод выбора можно легко алгоритмизировать, слегка упростив задачу. Пусть N - число критериев, по которым будем выбирать наилучший вариант; Y1..YN - весовые коэффициенты, определяющие важность соответствующего критерия; описание каждого варианта дается набором характеристик:
a11; a12; ... a1N (1-й вариант)
...
ak1; аk2; ... аkN (k-й вариант)
и так далее.
Теперь можно записать оценочную функцию, численно выражающую предпочтительность каждого i-ro варианта:
fi=sum[j=1..N](aij*Yj)
Очевидно, что чем больше значение оценочной функции, тем лучше данный вариант при установленных весовых коэффициентах. Характеристики могут быть как непрерывными (например, размер полезной жилой площади), так и дискретными (есть телефон или нет и т.д.). Но лучше все свести к дискретным величинам, так как в этом случае легче подобрать весовые коэффициенты, а их правильный и продуманный выбор определит качество решения.
Для упрощения работы я написал программу на языке Бейсик-Вильнюс, которая подсчитывает оценочную функцию и сортирует полученный массив. После этого возможные варианты выдаются в порядке убывания приоритета. С помощью этой программы мы просчитали все варианты, предложенные моему знакомому, и теперь он живет в новой квартире.
При работе с программой мы использовали только дискретные критерии и оценивали характеристики по пятибалльной системе. Для работы были подобраны следующие весовые коэффициенты.
Краткие пояснения к программе. 1070: ввод критериев и весовых коэффициентов. 80-180: ввод конкретных данных для выбора варианта. 190-270: включение очередного варианта в таблицу. 280-320: выдача результатов.
Данную программу можно применять довольно широко в пределе задач дискретной оптимизации: отбор деталей или приборов, выбор алгоритма из нескольких имеющихся и т.д.
И.ЩЕКАЛЕВ (Москва)
ПОЙМАТЬ СПУТНИК
В системах приема спутникового телевидения, подобных описанным в 11/89, как правило, применяются остронаправленные параболические антенны. Присущий им большой коэффициент усиления достигается за счет концентрации электромагнитной энергии в очень узком луче. Однако сужение луча значительно затрудняет наведение такой антенны на спутник связи. Чтобы "поймать" спутник, нужно по возможности более точно определить его местоположение относительно точки приема. Применяемые для расчета угловых координат геостационарного спутника формулы (см. например, Л.Я.Кантор, В.П.Минашин. Спутниковое вещание. М., 1981г.) обычно требуют довольно громоздких вычислений. Предлагаемая программа, написанная на версии Бейсика, которая используется в операционной системе MS-DOS компьютеров IBM PC/AT, позволяет значительно упростить эти вычисления.
Исходными данными для работы программы являются название и координаты места приема, название спутника и значение его долготы на орбите. В настоящее время на геостационарной орбите между 45 градусами западной долготы и 100 градусами восточной долготы находятся 36 спутников связи.
В строках 20-80 производится ввод исходных данных. Южную широту места приема и восточную долготу спутника нужно брать со знаком минус. Строки 40 и 90 - проверка условий приема. Если широта пункта приема или сдвиг между долготой точки приема и долготой спутника превышают 73 градуса, то на дисплей выводится сообщение: "Спутник вне зоны видимости", и следует переход на строку 220. Программа выводит запрос о продолжении или прекращении дальнейшей работы. Если условия приема соблюдены, то строками 150-210 вычисленные значения угловых координат спутника выводятся на дисплей. После этого программа запрашивает о необходимости производить расчеты для других спутников или пунктов приема. При положительном ответе происходит переход в начало программы и все действия повторяются.
Программу легко дополнить операторами распечатки результатов на принтере.
С.ПАВЛОВ (Москва).
ОТ РЕДАКЦИИ. Думается, что в качестве критерия устойчивого приема более корректно было бы использовать минимально допустимый угол приема в вертикальной плоскости. Он зависит как от наличия размеров и формы местных предметов в пункте приема (возвышенности рельефа, растительность, постройки и т.п.), так и от энергетических параметров (мощность передатчика, чувствительность приемника, коэффициент усиления антенны, условия распространения радиоволн).
СТЕРЕОИЗОБРАЖЕНИЕ НА ЭКРАНЕ КОМПЬЮТЕРА
Создать стереоизображение очень просто при помощи компьютера с графическим дисплеем - достаточно нарисовать картинку, которую должен видеть левый глаз, в левой половине экрана, а соответствующую проекцию будущего изображения для правого глаза в правой. Однако невооруженным глазом такое стереоизображение не воспринимается - слишком далеко расположены составляющие картинки. Выручает простейший зеркальный стереоскоп, придуманный еще в 1833 году. его легко изготовить самостоятельно - для этого понадобятся четыре карманных зеркальца и пластинка, которая послужит основанием. На рисунке видно, как установить зеркала - средние закрепляют под углом 90o друг к другу, а боковые ставят так, чтобы их можно было поворачивать. В экспериментальной установке проще всего закрепить зеркала пластилином.
Рассматривая стереопару (так называют две составляющие стереоизображения, подготовленные на экране компьютера), боковые зеркала поворачивают до тех пор, пока левая и правая картинки не совместятся в одно объемное изображение. Около него будут просматриваться лишние, так называемые паразитные изображения. Избавиться от них довольно легко - достаточно поставить перегородку от середины стереоскопа до середины экрана.
Из оргстекла можно изготовить компактный призматический стереоскоп. Его одинаково удобно использовать для рассматривания изображений на экране и в книгах или журналах (см., например, 10/89). Стереоскоп выпиливают из целого бруска. Поверхности должны быть ровными; их шлифуют, а затем и полируют.
Для подготовки стереопар необходимо подготовить чертеж. Начинают с линии Э, обозначающей экран. Отступив от нее на 50-80см (с этого расстояния рассматривают изображение), проводят параллельную линию и отмечают две узловые точки Л и П, обозначающие глаза наблюдателя,- дистанция между ними равна 65 мм. Соединяя узловые точки Л и П с вершинами будущего стереоизображения некоторого модельного отрезка АВ, мы получаем две проекции: АлВл Для левого глаза и АпрВпр для правого. (Чертеж, разумеется, можно выполнить и в уменьшенном масштабе). Чем дальше находится узловая точка от плоскости экрана, тем больше расстояние, или так называемый параллакс, между соответствующими проекциями. Если исходная точка А будущего стереоизображения расположена перед экраном, то параллакс считают отрицательным.
На чертеже мы получили совмещенную стереопару (проекции отрезка АВ для левого и правого глаза перекрываются). Для того чтобы получить стереокартинку на экране компьютера, стереопару нужно разделить. Изображение для левого глаза строим, отсчитывая координаты от 0 до 127 (или до 255, в зависимости от выбранного графического режима), для правого глаза координаты выбирают от 128 до 255 (256-512). Это означает, что если на левом изображении координаты точки задаются парой чисел (X, Y), то на правом - парой (Х+128+Р, Y), где Р - параллакc. Например, если изображение для левого глаза - это точка, полученная командой X Т (1, 50, 75), то аналогичные команды, где вместо 50 будет стоять 178, 168, 188, сформируют изображение точки соответственно в плоскости экрана, перед экраном и за ним.
Точно так же можно построить любую геометрическую фигуру - важно следить, чтобы параллакс не был слишком большим, иначе изображение трудно будет воспринимать как единое целое. Поэтому не стоит чересчур удалять друг от друга самые близкие и самые дальние точки изображения. Кроме того, необходимо позаботиться о перспективе. Картинки можно рисовать по точкам, но владельцам "Электроники БК-0010" рекомендую удобную для рисования несложных картинок известную программу "Компьютерный мир". Получить на экране БК объемный кубик поможет программа на фокале.
С. ВЕЛИЧКИН (Москва).
ВЕЧНЫЙ КАЛЕНДАРЬ
Прилагательное в названии заметки означает не только и не столько то, что в ней речь пойдет об алгоритмах и программах обработки календарных дат, а скорее то, что фантазия наших читателей неисчерпаема и эта тема вряд ли когда будет закрыта.
В.АБРОСЬКИН из Гомеля считает, что в формуле А.ПУШКАРЕВА (см. 6/88 ) для определения числа дней в произвольном месяце не хватает маленького "хвостика", учитывающего то, что не все вековые года (1900, 2000 и т.д.) являются високосными - см. формулу 1.
В.ГАВРИЛЕНКО из Харькова за счет смешивания переменных разного типа (Бейсик и не такое позволяет вытворять) упростил формулу А.Пушкарева - см. формулу 2. Дело в том, что на последних версиях Бейсика числовые (вещественные и целочисленные) переменные выполняют по совместительству и функции булевых, принимая значение минус единица (как правило, но не всегда!), если логическое выражение верно, и нуль, если неверно. Такое комбинирование выражений разного типа (да простят нам это прегрешение приверженцы Алгола и Паскаля) позволил В. Гавриленко упростить формулы для определения номера дня (3) и номера дня недели (4) по календарной дате (см. 8/87).
Судя по приходящей почте, наши читатели, перейдя к работе на персональных компьютерах, не освободились от "синдрома микрокалькулятора", когда 10 процентов времени тратится на разработку алгоритма и программы, а 90 процентов - на втискивание программы в прокрустово ложе ячеек калькулятора, на экономию этих ячеек.
Под формулами 1-4 читатель найдет две Бейсик-подпрограммы В.ПТИЦЫНА из Москвы, которые пригодятся всем тем, кто разрабатывает различные базы данных, опирающиеся на календарные даты (см., например, 4/86, заметка "Пятиминутки с "Искрой").
ПРОГРАММИСТ ПРИШЕЛ С РАБОТЫ
В апрельском номере журнала за 1989 год опубликована статья "Компьютер экономит электроэнергию", в которой приведена программа, приуроченная к 1 апреля.
После этой публикации не было статей на затронутую тему. В связи с этим, а также в связи со снижением популярности программируемых микрокалькуляторов предлагается программа, реализующая на микрокалькуляторе МК-61 (или совместимых с ним) операционную систему диалогового режима, совместимую с ОС ЕС-1840.
Достоинством данной ОС является то, что, поработав в ВЦ на мощном компьютере и придя домой, можно сесть за МК-61 и почувствовать себя работающим на настоящей ЭВМ.
Программа занимает в памяти микрокалькулятора 84 шага и использует все регистры. Команды выбираются последовательным нажатием клавиш 1... 9, 0 и С/П.
При запуске программы выдается сообщение "ЕС-1840". Теперь при нажатии клавиши "нуль" произойдет выход в транслятор "Си" с расширенными сообщениями об ошибках (выход из транслятора выполняется нажатием той же клавиши), а при нажатии клавиши "единица" - выход в -09. -61-.
Полный список команд операционной системы: 0 - выход из OS, 1 - выбор, 2 - звук, 3 - цвет, 4 - рисование окружности, 5 - очистка экрана.
В режим приема команд после выполнения команды можно выйти, нажав клавишу С/П.
Вот программа, реализующая описанную операционную систему:
00. ПХ0 01. С/П 02. Fx!=0 03. 16 04. ПХ2 05. С/П 06. Fx=0 07. 12 08. ПХ3 09. С/П 10. БП 11. 00 12. ПХ4 13. С/П 14. БП 15. 04 16. ПХ1 17. С/П 18. Fx=0 19. 24 20. ПХД 21. С/П 22. БП 23. 00 24. B^ 25. 1 26. - 27. Fx!=0 28. 49 29. 1 30. - 31. Fx!=0 32. 60 33. 1 34. - 35. Fx!=0 36. 66 37. 1 38. - 39.Fx!=0 40. 73 41. 1 42. - 43. Fx!=0 44. 79 45. ПX4 46. C/П 47. БП 48. 16 49. ПХ5 50. С/П 51. 5 52. B^ 53. С/П 54. 1 55. - 56. Fx>=0 57. 16 58. БП 59. 53 60. ПХ8 61. С/П 62. ПХA 63. С/П 64. БП 65. 16 66. ПХ9 67. С/П 68. ПХ6 69. С/П 70. Cx 71. БП 72. 16 73. ПХВ 74. С/П 75. ПХС 76. С/П 77. БП 78. 16 79. ПХ7 80. С/П 81. ПХЕ 82. С/П 83. БП 84. 16.
Кроме того, необходимо ввести и регистры различные сообщения, на получении которых не будем останавливаться.
Желаем успешной работы в нашей операционной системе!
Е.КУЛЕШОВ (Череповец), В.ДМИТРИЕВ (Петрозаводск)
КОМПЬЮТЕРНАЯ СПРАВКА
Продолжаем (см. 10/89) публикацию программ с "двойным дном" - с интересными сведениями общего характера и с любопытной программной особенностью.
С 1 июля 1990 года "без многочисленных просьб трудящихся" вступил в действие новый закон о налогообложении граждан. Вступил "с подпоркой" - инструкцией Минфина СССР (#83 от 25.05.1990г.) о порядке его применения. Дежурный программист редакции перевел инструкцию на КвикБейсик, составив четыре программы:
- NALOGI18 - налог по основной зарплате (статья инструкции 18);
- NALOGI40 - налог по побочной зарплате (40);
- NALOGI44 - налог на гонорары и прочее (годовые) (44);
- NALOGI45 - налоги с вознаграждений наследникам (45).
При проверке правильности программы наш программист не удержался от комментариев, внеся их в текст процедуры NALOGI18. Остальные процедуры остались без ремарок,- мы не хотим лишить наших читателей удовольствия написать их самим.
Процедуры с именами и локальными переменными есть только у последних версий Бейсика (Турбо- и Квикверсии фирм Borland и Microsoft соответственно). На старых версиях Бейсика пользователи довольствовались лишь подпрограммами, вызываемыми по команде GOSUB, которая, по сути, была командой перехода к метке GOTO с запоминанием места, к которому следует вернуться после команды RETURN. Процедура на КвикБейсике может иметь входные (у нас это переменная G - сумма заработка) и выходные (N-сумма налога) параметры.
СУПЕРКАРТОТЕКА ИЗ ЗЕЛЕНОГРАДА
Каждый, кто работает с базой данных и информационно-поисковыми системами, хранящимися в памяти компьютера, может упростить задачу и сэкономить немало времени, если воспользуется электронной картотекой BShell - v1.0, разработанной совместной фирмой "Эпсилон".
Электронная картотека - это программа, позволяющая хранить базу данных на различных носителях, и способная вести поиск сразу по группе баз данных (по нескольким DBF-файлам). Программа использует стандартный DBF-формат, но пользователь в процессе работы может менять формат и цветовую раскраску карточек, выбирая наиболее удобный вариант. При этом одна и та же информация может храниться на карточках различного формата. Картотека BShell допускает хранение и использование, кроме базы данных стандартных изображений (PCX, РСС - форматы) и специфической информации. Например, изображения в формате AUTOCAD и даже музыку, которую можно услышать,- стоит лишь определенным образом настроить программу. Если у программиста возникают какие-либо затруднения, то, не прерывая работы, можно обратиться за подсказкой к перестраиваемому многоуровневому HELP-модулю.
Электронная картотека позволяет создавать структуру базы данных, быстро вводить, искать и изменять в ней информацию, поддерживает многооконный интерфейс. Программа содержит встроенный редактор форм, позволяющий редактировать таблицы, можно также импортировать подготовленные формы из других текстовых редакторов.
Заказать пакет BShell можно, выслав гарантийное письмо по адресу: 103498, Москва, Зеленоград, 443, "Эпсилон".
12/90
Раздел ведет кандидат физико-математических наук Ю.ПУХНАЧЕВ.
В продаже появилась первая партия микрокомпьютеров МК-85. Небольшая, всего несколько тысяч штук. Нечего и говорить, что расхватали новинку мгновенно. Еще бы! Эта машинка, по размерам чуть превосходящая программируемый микрокалькулятор, программируется на "настоящем" Бейсике.
И вот в редакцию журнала поступили первые письма от владельцев МК-85. Им - первое слово в нынешнем выпуске раздела.
ЗЕМЛЕМЕРКА
Прежде всего хотелось бы высказать благодарность конструкторам и создателям микрокомпьютера МК-85. Он вышел легкий, компактный и, что немаловажно, практически на уровне мировых стандартов. Особо хочется отметить хорошую "защиту от дурака" ("fool proof").
Но, конечно же, есть у него и недостатки. Главным, пожалуй, является медленный темп выпуска: к декабрю 1989г. вышел пятитысячный образец. Кроме того, недостает возможности обращения к периферийным устройствам - накопителям информации.
Надо отметить, что образец 1989г. выпуска отличается от своего предшественника, описанного в "Науке и жизни". Процессор объединен с контролером клавиатуры, а две микросхемы ПЗУ - в одну, поэтому количество микросхем сократилось до четырех. Число шагов памяти увеличено с 1000 до 1221, появилась текстовая переменная длиной в 30 символов, введена псевдографика, обслуживающая дисплей 7*60 точек.
Как всегда, слабым местом является инструкция. Например, такая существенная деталь, как описание режима повышенного быстродействия, находится в пункте "5.2. Работа от блока питания" на 10-й странице и занимает всего 4 строчки.
В инструкции не указана возможность организации ремарок с помощью "!". Не указано также, что в режиме представления угловых единиц в градах, вводимом набором клавиш MODE 6, после каждого оператора псевдографики DRAW или DRAWC выполнение программы останавливается с включением сигнализации STOP, что не очень приятно, хотя и не страшно, поскольку дальнейший пуск осуществляется клавишей ЕХЕ. Кстати, это явление можно использовать при отладке программ.
Несмотря на малый размер дисплея, аргумент оператора DRAW X, Y может быть в пределах от - 2**15 до 2**16 по обеим осям. Если аргумент превышает рамки дисплея, то есть по оси ОХ абсцисса X меньше 0 или больше 59, а по оси ОY ордината Y меньше 0 или больше 6, то при наличии дробной части в координате на дисплее могут появиться "мусорные точки".
Из таблицы 6.9 ("Коды и символы") видно, что символы #1-10 отсутствуют на клавиатуре. Прояснить возможные недоразумения нетрудно с помощью несложной программы, где в 10-й строке переменной А присваивается код нажатой клавиши, а по команде, записанной в 20-й строке, на дисплей выводится символ, соответствующий клавише.
Оператор YAC, оказывается, очищает не все переменные, а только те, на которые расширена память. Это позволяет хранить в памяти числа, которые не стираются оператором YAC. Выполните приведенную ниже программу, и вы получите на дисплее 2167635.
В заключение привожу составленную мной для МК-85 игру "Землемерка" - упрощенный вариант игры "Удав" ("Питон") хорошо знакомой пользователям ПЭВМ на 580-м процессоре.
Управляющие клавиши 2 4 6 8 - вниз, влево, вправо, вверх соответственно. Экран представляет собой развертку цилиндра. После запуска программы оператором RUN вводится количество игровых циклов (или кроликов, по терминологии игры "Удав"). Затем необходимо, нажимая управляющие клавиши, совместить "землемерку" (изображается управляемой точкой на дисплее) с точкой-"кроликом". Об их совпадении просигнализирует переход компьютера в режим "радиан" (в следующий раз - в режим "градусы" и т.д.). После этого игра продолжается. По окончании игры отображается количество очков, и программа запускается вновь. Для окончания игры нужно ввести нулевое или отрицательное число в ответ на запрос компьютера.
Удаву из известной игры, послужившей прототипом для "Землеройки", запрещалось переползать через себя, менять направление движения на обратное и выходить за пределы экрана. Здесь эти ограничения сняты. Программа имеет защиту от случайного нажатия несанкционированных клавиш.
А.ТАНКОВ (Москва)
СКАЧКИ
Игра начинается с мелодичного вступления, и, хотя музыка не слышна, она угадывается по происходящему на экране. Импровизированное табло торжественно большими буквами сообщает: СКАЧКИ. Последний аккорд, и конь срывается с места. Впереди-беговая дорожка с барьерами, которые расставлены на произвольном расстоянии друг от друга.
Цель игры: привести скакуна к финишу с минимальным числом падений. Управление скакуном осуществляется чрезвычайно просто - клавишей ЕХЕ.
Внимание! Нажатие управляющей клавиши невовремя, а также ненажатие ее вовремя приведет к падению лошади. Нажимайте ЕХЕ лишь тогда, когда жеребец находится непосредственно перед барьером. И тогда он взметнется ввысь, оставляя далеко под собой препятствие, и, удачно приземлившись, продолжит бег. Если вы упустите момент, конь прыгнет без команды управляющей клавиши, но из-за позднего толчка прыжок получится низким, скакун зацепит за барьер и упадет. А нажатие клавиши ЕХЕ, когда препятствия вблизи нет, собьет с толку вашу лошадь и повлечет ее падение.
По мере приближения к концу беговой дорожки темп игры нарастает. Одновременное движение скакуна и барьеров в сочетании с таким ускорением создает иллюзию присутствия аж дух захватывает!
И вот, наконец, финиш. На экране появляется сообщение о точном количестве падений - в первый раз их наверняка окажется много. Затем компьютер выдаст свою оценку прошедшей игре, вероятно, замигает: "Плохо, плохо!". Не отчаивайтесь, начните сначала, совершенствуйтесь - впереди вас ждет успех, фанфары и призовой забег.
Программа игры вводится
в режиме записи строго по приведенному тексту. Объем занимаемой памяти составляет 853 шага (байта). Правильно введенная программа отладки не требует. Запуск игры осуществляется в режиме повышенного быстродействия командой RUN. Время одного забега составляет около 1.5 мин. Полторы минуты - и СКАЧКИ завоюют ваше предпочтение!
И.ГАЛАХОВ (Москва)
1024 СОВЕТА
(БАЙТ ОДИННАДЦАТЫЙ)
Очередной байт адресован владельцам БК-0010, работающим с Фокалом. Советы прислал М.Нурмагомедов из Махачкалы.
81. Если снять с клавиатуры БК оба листа полиэтилена, разрезать лист с обозначением функций клавиш и наклеить их, то работать с компьютером будет намного легче.
82. Если ты забыл адрес загрузки программы с магнитной ленты, то укажи на запрос машины нулевой адрес. После этого в ячейках 264 и 266 можно будет прочесть адрес загрузки и длину программы соответственно.
83. Если адрес начала программы записать в ячейку 4 (зависание по клавише "СТОП"), то остановить прогонку программы можно только после отключения электропитания БК. Так можно обезопасить себя от непреднамеренного останова программы.
84. При работе с портом ввода-вывода обрати внимание на инверсию логики: здесь логический ноль - 5 вольт, а логическая единица - отсутствие напряжения.
85. Чтобы можно было в кодах проводить умножение, деление, вычислять тригонометрические функции и т.д., необходимо в ячейку 10 записать число 125036 (адрес обработки команд 70SD).
86. Команды X FCHR (12, 7, 7, 7) и Т - "СБР CY/G CY/G CY/G" выполняют одну и ту же работу, однако второй вариант занимает меньше места и на экране (Т "-"), и в памяти машины.
87. Использование оператора X FCLK() в качестве таймера предусматривает подключение внешнего генератора. При этом, однако, следует помнить, что машина может "зависать", отказываться переходить в режим тестов.
88. "Ахиллесова пята" БК-0010 - выключатель блока питания. Уделив 10 минут на его замену, можно избавить себя от многих неприятностей.
Первый и последний совет этого байта позволяет редакции сформулировать непронумерованный совет: если заменить БК на какой-то другой компьютер, то работать с машиной будет еще приятнее.
БК-0010 ОБМЕНИВАЕТ КВАРТИРЫ
Один мой знакомый решил обменять квартиру. На его удивление возникло несколько вполне приемлемых вариантов. Вот тут и встал вопрос выбора - все варианты нравились ему, но у каждого были и свои недостатки.
Однако оказалось, что метод выбора можно легко алгоритмизировать, слегка упростив задачу. Пусть N - число критериев, по которым будем выбирать наилучший вариант; Y1..YN - весовые коэффициенты, определяющие важность соответствующего критерия; описание каждого варианта дается набором характеристик:
a11; a12; ... a1N (1-й вариант)
...
ak1; аk2; ... аkN (k-й вариант)
и так далее.
Теперь можно записать оценочную функцию, численно выражающую предпочтительность каждого i-ro варианта:
fi=sum[j=1..N](aij*Yj)
Очевидно, что чем больше значение оценочной функции, тем лучше данный вариант при установленных весовых коэффициентах. Характеристики могут быть как непрерывными (например, размер полезной жилой площади), так и дискретными (есть телефон или нет и т.д.). Но лучше все свести к дискретным величинам, так как в этом случае легче подобрать весовые коэффициенты, а их правильный и продуманный выбор определит качество решения.
Для упрощения работы я написал программу на языке Бейсик-Вильнюс, которая подсчитывает оценочную функцию и сортирует полученный массив. После этого возможные варианты выдаются в порядке убывания приоритета. С помощью этой программы мы просчитали все варианты, предложенные моему знакомому, и теперь он живет в новой квартире.
При работе с программой мы использовали только дискретные критерии и оценивали характеристики по пятибалльной системе. Для работы были подобраны следующие весовые коэффициенты.
Краткие пояснения к программе. 1070: ввод критериев и весовых коэффициентов. 80-180: ввод конкретных данных для выбора варианта. 190-270: включение очередного варианта в таблицу. 280-320: выдача результатов.
Данную программу можно применять довольно широко в пределе задач дискретной оптимизации: отбор деталей или приборов, выбор алгоритма из нескольких имеющихся и т.д.
И.ЩЕКАЛЕВ (Москва)
ПОЙМАТЬ СПУТНИК
В системах приема спутникового телевидения, подобных описанным в 11/89, как правило, применяются остронаправленные параболические антенны. Присущий им большой коэффициент усиления достигается за счет концентрации электромагнитной энергии в очень узком луче. Однако сужение луча значительно затрудняет наведение такой антенны на спутник связи. Чтобы "поймать" спутник, нужно по возможности более точно определить его местоположение относительно точки приема. Применяемые для расчета угловых координат геостационарного спутника формулы (см. например, Л.Я.Кантор, В.П.Минашин. Спутниковое вещание. М., 1981г.) обычно требуют довольно громоздких вычислений. Предлагаемая программа, написанная на версии Бейсика, которая используется в операционной системе MS-DOS компьютеров IBM PC/AT, позволяет значительно упростить эти вычисления.
Исходными данными для работы программы являются название и координаты места приема, название спутника и значение его долготы на орбите. В настоящее время на геостационарной орбите между 45 градусами западной долготы и 100 градусами восточной долготы находятся 36 спутников связи.
В строках 20-80 производится ввод исходных данных. Южную широту места приема и восточную долготу спутника нужно брать со знаком минус. Строки 40 и 90 - проверка условий приема. Если широта пункта приема или сдвиг между долготой точки приема и долготой спутника превышают 73 градуса, то на дисплей выводится сообщение: "Спутник вне зоны видимости", и следует переход на строку 220. Программа выводит запрос о продолжении или прекращении дальнейшей работы. Если условия приема соблюдены, то строками 150-210 вычисленные значения угловых координат спутника выводятся на дисплей. После этого программа запрашивает о необходимости производить расчеты для других спутников или пунктов приема. При положительном ответе происходит переход в начало программы и все действия повторяются.
Программу легко дополнить операторами распечатки результатов на принтере.
С.ПАВЛОВ (Москва).
ОТ РЕДАКЦИИ. Думается, что в качестве критерия устойчивого приема более корректно было бы использовать минимально допустимый угол приема в вертикальной плоскости. Он зависит как от наличия размеров и формы местных предметов в пункте приема (возвышенности рельефа, растительность, постройки и т.п.), так и от энергетических параметров (мощность передатчика, чувствительность приемника, коэффициент усиления антенны, условия распространения радиоволн).
СТЕРЕОИЗОБРАЖЕНИЕ НА ЭКРАНЕ КОМПЬЮТЕРА
Создать стереоизображение очень просто при помощи компьютера с графическим дисплеем - достаточно нарисовать картинку, которую должен видеть левый глаз, в левой половине экрана, а соответствующую проекцию будущего изображения для правого глаза в правой. Однако невооруженным глазом такое стереоизображение не воспринимается - слишком далеко расположены составляющие картинки. Выручает простейший зеркальный стереоскоп, придуманный еще в 1833 году. его легко изготовить самостоятельно - для этого понадобятся четыре карманных зеркальца и пластинка, которая послужит основанием. На рисунке видно, как установить зеркала - средние закрепляют под углом 90o друг к другу, а боковые ставят так, чтобы их можно было поворачивать. В экспериментальной установке проще всего закрепить зеркала пластилином.
Рассматривая стереопару (так называют две составляющие стереоизображения, подготовленные на экране компьютера), боковые зеркала поворачивают до тех пор, пока левая и правая картинки не совместятся в одно объемное изображение. Около него будут просматриваться лишние, так называемые паразитные изображения. Избавиться от них довольно легко - достаточно поставить перегородку от середины стереоскопа до середины экрана.
Из оргстекла можно изготовить компактный призматический стереоскоп. Его одинаково удобно использовать для рассматривания изображений на экране и в книгах или журналах (см., например, 10/89). Стереоскоп выпиливают из целого бруска. Поверхности должны быть ровными; их шлифуют, а затем и полируют.
Для подготовки стереопар необходимо подготовить чертеж. Начинают с линии Э, обозначающей экран. Отступив от нее на 50-80см (с этого расстояния рассматривают изображение), проводят параллельную линию и отмечают две узловые точки Л и П, обозначающие глаза наблюдателя,- дистанция между ними равна 65 мм. Соединяя узловые точки Л и П с вершинами будущего стереоизображения некоторого модельного отрезка АВ, мы получаем две проекции: АлВл Для левого глаза и АпрВпр для правого. (Чертеж, разумеется, можно выполнить и в уменьшенном масштабе). Чем дальше находится узловая точка от плоскости экрана, тем больше расстояние, или так называемый параллакс, между соответствующими проекциями. Если исходная точка А будущего стереоизображения расположена перед экраном, то параллакс считают отрицательным.
На чертеже мы получили совмещенную стереопару (проекции отрезка АВ для левого и правого глаза перекрываются). Для того чтобы получить стереокартинку на экране компьютера, стереопару нужно разделить. Изображение для левого глаза строим, отсчитывая координаты от 0 до 127 (или до 255, в зависимости от выбранного графического режима), для правого глаза координаты выбирают от 128 до 255 (256-512). Это означает, что если на левом изображении координаты точки задаются парой чисел (X, Y), то на правом - парой (Х+128+Р, Y), где Р - параллакc. Например, если изображение для левого глаза - это точка, полученная командой X Т (1, 50, 75), то аналогичные команды, где вместо 50 будет стоять 178, 168, 188, сформируют изображение точки соответственно в плоскости экрана, перед экраном и за ним.
Точно так же можно построить любую геометрическую фигуру - важно следить, чтобы параллакс не был слишком большим, иначе изображение трудно будет воспринимать как единое целое. Поэтому не стоит чересчур удалять друг от друга самые близкие и самые дальние точки изображения. Кроме того, необходимо позаботиться о перспективе. Картинки можно рисовать по точкам, но владельцам "Электроники БК-0010" рекомендую удобную для рисования несложных картинок известную программу "Компьютерный мир". Получить на экране БК объемный кубик поможет программа на фокале.
С. ВЕЛИЧКИН (Москва).
ВЕЧНЫЙ КАЛЕНДАРЬ
Прилагательное в названии заметки означает не только и не столько то, что в ней речь пойдет об алгоритмах и программах обработки календарных дат, а скорее то, что фантазия наших читателей неисчерпаема и эта тема вряд ли когда будет закрыта.
В.АБРОСЬКИН из Гомеля считает, что в формуле А.ПУШКАРЕВА (см. 6/88 ) для определения числа дней в произвольном месяце не хватает маленького "хвостика", учитывающего то, что не все вековые года (1900, 2000 и т.д.) являются високосными - см. формулу 1.
В.ГАВРИЛЕНКО из Харькова за счет смешивания переменных разного типа (Бейсик и не такое позволяет вытворять) упростил формулу А.Пушкарева - см. формулу 2. Дело в том, что на последних версиях Бейсика числовые (вещественные и целочисленные) переменные выполняют по совместительству и функции булевых, принимая значение минус единица (как правило, но не всегда!), если логическое выражение верно, и нуль, если неверно. Такое комбинирование выражений разного типа (да простят нам это прегрешение приверженцы Алгола и Паскаля) позволил В. Гавриленко упростить формулы для определения номера дня (3) и номера дня недели (4) по календарной дате (см. 8/87).
Судя по приходящей почте, наши читатели, перейдя к работе на персональных компьютерах, не освободились от "синдрома микрокалькулятора", когда 10 процентов времени тратится на разработку алгоритма и программы, а 90 процентов - на втискивание программы в прокрустово ложе ячеек калькулятора, на экономию этих ячеек.
Под формулами 1-4 читатель найдет две Бейсик-подпрограммы В.ПТИЦЫНА из Москвы, которые пригодятся всем тем, кто разрабатывает различные базы данных, опирающиеся на календарные даты (см., например, 4/86, заметка "Пятиминутки с "Искрой").
ПРОГРАММИСТ ПРИШЕЛ С РАБОТЫ
В апрельском номере журнала за 1989 год опубликована статья "Компьютер экономит электроэнергию", в которой приведена программа, приуроченная к 1 апреля.
После этой публикации не было статей на затронутую тему. В связи с этим, а также в связи со снижением популярности программируемых микрокалькуляторов предлагается программа, реализующая на микрокалькуляторе МК-61 (или совместимых с ним) операционную систему диалогового режима, совместимую с ОС ЕС-1840.
Достоинством данной ОС является то, что, поработав в ВЦ на мощном компьютере и придя домой, можно сесть за МК-61 и почувствовать себя работающим на настоящей ЭВМ.
Программа занимает в памяти микрокалькулятора 84 шага и использует все регистры. Команды выбираются последовательным нажатием клавиш 1... 9, 0 и С/П.
При запуске программы выдается сообщение "ЕС-1840". Теперь при нажатии клавиши "нуль" произойдет выход в транслятор "Си" с расширенными сообщениями об ошибках (выход из транслятора выполняется нажатием той же клавиши), а при нажатии клавиши "единица" - выход в -09. -61-.
Полный список команд операционной системы: 0 - выход из OS, 1 - выбор, 2 - звук, 3 - цвет, 4 - рисование окружности, 5 - очистка экрана.
В режим приема команд после выполнения команды можно выйти, нажав клавишу С/П.
Вот программа, реализующая описанную операционную систему:
00. ПХ0 01. С/П 02. Fx!=0 03. 16 04. ПХ2 05. С/П 06. Fx=0 07. 12 08. ПХ3 09. С/П 10. БП 11. 00 12. ПХ4 13. С/П 14. БП 15. 04 16. ПХ1 17. С/П 18. Fx=0 19. 24 20. ПХД 21. С/П 22. БП 23. 00 24. B^ 25. 1 26. - 27. Fx!=0 28. 49 29. 1 30. - 31. Fx!=0 32. 60 33. 1 34. - 35. Fx!=0 36. 66 37. 1 38. - 39.Fx!=0 40. 73 41. 1 42. - 43. Fx!=0 44. 79 45. ПX4 46. C/П 47. БП 48. 16 49. ПХ5 50. С/П 51. 5 52. B^ 53. С/П 54. 1 55. - 56. Fx>=0 57. 16 58. БП 59. 53 60. ПХ8 61. С/П 62. ПХA 63. С/П 64. БП 65. 16 66. ПХ9 67. С/П 68. ПХ6 69. С/П 70. Cx 71. БП 72. 16 73. ПХВ 74. С/П 75. ПХС 76. С/П 77. БП 78. 16 79. ПХ7 80. С/П 81. ПХЕ 82. С/П 83. БП 84. 16.
Кроме того, необходимо ввести и регистры различные сообщения, на получении которых не будем останавливаться.
Желаем успешной работы в нашей операционной системе!
Е.КУЛЕШОВ (Череповец), В.ДМИТРИЕВ (Петрозаводск)
КОМПЬЮТЕРНАЯ СПРАВКА
Продолжаем (см. 10/89) публикацию программ с "двойным дном" - с интересными сведениями общего характера и с любопытной программной особенностью.
С 1 июля 1990 года "без многочисленных просьб трудящихся" вступил в действие новый закон о налогообложении граждан. Вступил "с подпоркой" - инструкцией Минфина СССР (#83 от 25.05.1990г.) о порядке его применения. Дежурный программист редакции перевел инструкцию на КвикБейсик, составив четыре программы:
- NALOGI18 - налог по основной зарплате (статья инструкции 18);
- NALOGI40 - налог по побочной зарплате (40);
- NALOGI44 - налог на гонорары и прочее (годовые) (44);
- NALOGI45 - налоги с вознаграждений наследникам (45).
При проверке правильности программы наш программист не удержался от комментариев, внеся их в текст процедуры NALOGI18. Остальные процедуры остались без ремарок,- мы не хотим лишить наших читателей удовольствия написать их самим.
Процедуры с именами и локальными переменными есть только у последних версий Бейсика (Турбо- и Квикверсии фирм Borland и Microsoft соответственно). На старых версиях Бейсика пользователи довольствовались лишь подпрограммами, вызываемыми по команде GOSUB, которая, по сути, была командой перехода к метке GOTO с запоминанием места, к которому следует вернуться после команды RETURN. Процедура на КвикБейсике может иметь входные (у нас это переменная G - сумма заработка) и выходные (N-сумма налога) параметры.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
1/91
Рассказывая о развитии западной информатики, чаще всего упоминают только о достижениях в этой области. В то же время и в странах, которые на много лет обогнали нас в развитии информатики, есть свои проблемы. По нашей просьбе французская журналистка Вероника Рейнье, известная своими публикациями по информатике, подготовила небольшой обзор развития информатики во Франции.
ФРАНЦУЗСКИЙ РЫНОК ИНФОРМАТИКИ ЖДЕТ ПРОДАВЦОВ ИЗ СССР
В.РЕЙНЬЕ (Франция).
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Во Франции, как и в США, программное обеспечение охраняют законы об авторском праве, запрещающие незаконное копирование или перепродажу программ. Хотя за нарушение закона грозит тюрьма, с компьютерным пиратством можно столкнуться даже на крупных предприятиях.
Иногда незаконное копирование связано с организационными проблемами. Чтобы упростить жизнь покупателю, фирмы, торгующие программным обеспечением, нередко продают лицензии, дающие право на изготовление нескольких законных копий, чтобы за срочно понадобившимся дополнительным экземпляром уже приобретенной программы не приходилось вновь обращаться к продавцу.
По-прежнему актуальна проблема - как убедить покупателей в необходимости приобретать программы вместе с компьютером. Чаще всего вызывает удивление, что к цене компьютера необходимо добавлять цену программного обеспечения. Причем программы, в большинстве своем американские, во Франции продаются почти вдвое дороже, нежели в США, и программное обеспечение нередко обходится дороже компьютера. Так, покупатель персоналки, изготовленной на Тайване, уплатив 6 тысяч франков за компьютер (меньше средней месячной зарплаты), должен заплатить еще 7 тысяч франков, чтобы использовать специальную программу для работы с базами данных - dBase.
Наиболее распространено программное обеспечение для создания и работы с различными информационными базами данных, так же, как и разнообразные редакторы, позволяющие редактировать тексты, создавать графические изображения или корректировать картинки, введенные в компьютер с помощью различных вспомогательных устройств.
ОБОРУДОВАНИЕ
Ведущее место среди поставщиков компьютерного оборудования во Франции занимает фирма IBM, однако все больше предприятий обзаводятся так называемыми IBM-совместимыми компьютерами, то есть машинами, разработанными другими фирмами, но способными выполнять все программы, предназначенные для IBM. Такие машины, как правило, ни в чем не уступают, а часто и превосходят "настоящие" IBM, причем обычно и стоят дешевле. Так, среди больших ЭВМ популярна марка Hitachi, знакомая в нашей стране по бытовой радиоаппаратуре, а в мире персональных компьютеров признанным лидером является Compaq.
Рынок мини-ЭВМ принадлежит фирме DEC, однако предприятия, использующие подобную технику, и здесь ориентируются на совместимые машины Sun, Hewlett-Packard и Sony. Впрочем, рынок мини-ЭВМ не так развит, как рынок персональных компьютеров.
Один из самых популярных в 1990 году во Франции IBM-совместимых персональных компьютеров Compaq. Все более популярной становится французская марка Goupil-Golf, кстати, не так давно она появилась и на советском компьютерном рынке.
Крупнейший французский производитель вычислительной техники - это фирма Bull, перекупившая известную американскую фирму Zenith. Несмотря на высокий технический уровень изделий, Bull не пользуется высокой репутацией, может быть, потому, что французы в области техники предпочитают все иностранное. Впрочем, нельзя не вспомнить о сравнительно небольшом предприятии Goupil, которое вместе с фирмой Normerel всегда выпускает модели, отличающиеся смелым конструкторским замыслом.
РАЗРАБОТКИ
В области разработок французские фирмы пользуются высокой репутацией, особенно если речь идет о специальных разработках, выполняемых по заказу клиента. Успехом пользуются, например, разработки так называемых проблемно-ориентированных языков для производственных целей.
Идут интенсивные разработки в области искусственного интеллекта, но спрос на них пока что не столь велик.
Что касается программного обеспечения, предназначенного для массового использования, то примерно девять из каждых десяти программ ввозятся из США (главные импортеры - фирмы Microsoft и Ashton Tate). Кроме прикладных программ для бухгалтерских расчетов, которые должны соответствовать правилам, принятым во Франции, существует не так уж много программ французского производства. Еще меньше программ, которые бы экспортировались из Франции. Единственное заметное исключение - система управления базами данных 4е DIMENSION для компьютеров Macintosh, популярная во всем мире.
Стандартный язык программирования, на котором ведутся разработки - это Си, и его новые версии, такие как Си++. (4/89). Менее популярен Паскаль. Для задач управления используется Кобол, расширяется применение языка Ада. Языки Лисп и Пролог так и не получили распространения, что же касается ассемблера, число его сторонников постепенно увеличивается.
КРАХ СЕМЕЙНОЙ МИКРОИНФОРМАТИКИ
Хотя на распространение домашних компьютеров возлагались большие надежды, сегодня этот рынок оказался на грани катастрофы. Даже несмотря на то, что в продаже есть совсем недорогие модели компьютеров, ими интересуются только дети, причем лишь как совершенными игровыми автоматами. Родители нередко не поддерживают увлечение компьютерными играми, в результате фирмы, занимающиеся бытовой информатикой, сталкиваются с серьезными трудностями. Так, например, Tomson, единственная французская фирма, выпускающая как военную электронику, так и электронику для быта, недавно закрыла отделение микроинформатики, которое занималось электронными игрушками. Две наиболее популярных во Франции фирмы Amstrad и Atari, ранее выпускавшие весьма доступные по цене домашние ЭВМ, также переключаются на выпуск профессиональных компьютеров.
Трудности связаны и с немногочисленностью заказчиков электронных игр. Нередко проблемы возникают не из-за высокой цены на программу (обычно около 200 франков), а из-за сложностей сбыта - некомпетентных продавцов и плохой организации складов. Подчас легче найти незаконную копию, нежели честно приобрести оригинал.
ОБРАЗОВАНИЕ
Несколько лет назад была принята правительственная программа "Вычислительная техника - для всех". Сегодня оснащенность учебных заведений соответствует разработанным нормам, компьютеры встречаются даже в начальных классах, однако нередко это устаревшие модели.
Информатика во Франции - это признанный предмет, и она входит в список экзаменов, которые необходимо выдержать, чтобы получить степень бакалавра. Несмотря на это, в стране не удается должным образом готовить преподавателей информатики. Малые средства, выделяемые на образование из государственного бюджета, а также небольшая зарплата преподавателей по сравнению с заработками инженера, работающего в частном секторе, приводят к тому, что инженеры не стремятся к карьере педагога.
СВЯЗЬ
Это область использования компьютеров, в которой за последние годы Франции удалось добиться наибольшего успеха. Высшее достижение - появление системы Minitel. В ее основе небольшой пульт (по сути, микроЭВМ) с экраном, клавиатурой и модемом (устройством для передачи данных по телефонному проводу), причем этот пульт бесплатно выдают всем желающим вместо телефонного справочника. Сегодня на 55 миллионов жителей насчитывается около 5 миллионов устройств Minitel.
На фото - пульт системы Minitel. С помощью этой микроЭВМ можно вызвать на экран небольшого телевизора различную информацию или отправить "электронное письмо" знакомым. Ниже - снимок с экрана работающей системы Minitel. Нажатием одной клавиши можно выбрать интересующую область информационных услуг: 1 - сельское хозяйство; 2 - банковские операции и кредитование; 3 - связь; 4 - сервис для покупателя; 5 - экономика, бизнес и промышленность; 6 - образование; 7 - игры; 8 - правительственные и общественные службы; 9 - здоровье и так далее.
Пульт Minitel позволяет, не выходя из квартиры, вызывать на экран всевозможные справочные данные, получая их по телефонному проводу из многочисленных электронных банков данных, например, справки по различным наукам и областям техники. Пульты, кроме того, используют для игр или для обмена посланиями. Последнее, кстати, на первых порах весьма способствовало распространению новой системы.
Различные учреждения и службы города имеют свои собственные банки данных. Обращаясь к ним, можно узнавать расписания поездов и самолетов, репертуар кинотеатров, последние новости, опубликованные в газетах и журналах. Налоговое управление ежегодно советует использовать Minitel для расчета суммы налога. Телевидение нередко обращается к этой системе, чтобы изучать общественное мнение. Политические партии с помощью Minitel организуют свои мероприятия. Правительство уже подумывает о том, чтобы использовать систему для проведения референдумов.
Следующим этапом станет внедрение цифровых сетей передачи информации, которые позволят во много раз повысить скорость обмена информацией (изображениями, текстами), по сравнению с "медленными" и ненадежными телефонными каналами. Такие сети уже начали создавать в крупных городах.
ТЕНДЕНЦИИ
Сегодня промышленность и учреждения до предела насыщены электроникой, поэтому рынок ориентирован в основном на обновление оборудования.
Поскольку французам более свойственна мечтательность, нежели трезвый расчет, большинство компьютеров в учреждениях несовместимы друг с другом. В то же время во Франции, как и везде в мире, растет спрос на машины, соединенные между собой (способные обмениваться информацией), сколь бы несовместимыми они ни были. Требуется все больше различных устройств для компьютерной связи (локальные сети, межсетевые соединения).
По мере создания сетей появляются новые концепции. Раньше традиционной была структура, когда несколько небольших компьютеров соединялись с мощной центральной машиной, которая поочередно решала различные задачи, используя данные, предоставленные пользователями. Сегодня ситуация изменилась едва ли не на противоположную, - специальные машины-серверы лишь управляют данными, а непосредственной обработкой этих данных занимаются микроЭВМ пользователя. Такая система позволяет каждому пользователю иметь доступ ко всей информации, имеющейся в сети, например, через одну и ту же машину-сервер пользователь А может получить данные с компьютера, обслуживающего бухгалтерию, а пользователь Б - с компьютера, установленного на складе.
Заметна тенденция уменьшать габариты системы. Так, налоговое ведомство объединило в сеть около пятидесяти персональных компьютеров "Compaq 386", подключив их к системе Minitel вместо того, чтобы, как это делалось ранее, использовать центральную мини-ЭВМ.
ЧЕМ ТОРГОВАТЬ С ФРАНЦУЗАМИ?
Французы - большие любители новинок, особенно иностранных. С начала перестройки - СССР в моде. Похоже, однако, что эта мода постепенно проходит.
Было бы бесполезно предлагать французам "электронные таблицы" или редакторы текстов. В компьютерном мире число таких программ уже перевалило за несколько сотен. В то же время есть интерес к новым технологиям, таким, как нейронные сети, искусственный интеллект, разработка технологий создания программного обеспечения, предметно-ориентированные базы данных. Из-за "разнокалиберного" парка компьютеров, объединенного в сети, пользуются спросом программные системы, работающие в разнородных вычислительных средах.
Растет интерес к системам, где центральной машиной служит компьютер IBM, к которому в качестве интеллектуальных терминалов подключены персональные компьютеры Macintosh. Ждет своих разработчиков и мир операционной системы Unix. Хорошим спросом пользуются игры, в последнее время особенно интерактивные игры для детей. Французов могут привлечь программные средства из области воспитания. Наконец, есть потребность в системах для автоматического ввода в компьютер машинописных текстов и для автоматизированного перевода.
Говоря о спросе на оборудование, можно предсказать хорошие перспективы для сетевого оборудования и экранов с высокой разрешающей способностью. В то же время бесполезно было бы предлагать IBM-совместимые персональные компьютеры и печатающие устройства, если только речь не идет о принтерах для цветной печати или лазерных принтерах, работающих в стандарте Postscript.
В целом французы сегодня избалованы отечественной информатикой и стали весьма разборчивыми. Это уже не столь открытый рынок, каким он был в первые годы развития микровычислительной техники.
Рассказывая о развитии западной информатики, чаще всего упоминают только о достижениях в этой области. В то же время и в странах, которые на много лет обогнали нас в развитии информатики, есть свои проблемы. По нашей просьбе французская журналистка Вероника Рейнье, известная своими публикациями по информатике, подготовила небольшой обзор развития информатики во Франции.
ФРАНЦУЗСКИЙ РЫНОК ИНФОРМАТИКИ ЖДЕТ ПРОДАВЦОВ ИЗ СССР
В.РЕЙНЬЕ (Франция).
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Во Франции, как и в США, программное обеспечение охраняют законы об авторском праве, запрещающие незаконное копирование или перепродажу программ. Хотя за нарушение закона грозит тюрьма, с компьютерным пиратством можно столкнуться даже на крупных предприятиях.
Иногда незаконное копирование связано с организационными проблемами. Чтобы упростить жизнь покупателю, фирмы, торгующие программным обеспечением, нередко продают лицензии, дающие право на изготовление нескольких законных копий, чтобы за срочно понадобившимся дополнительным экземпляром уже приобретенной программы не приходилось вновь обращаться к продавцу.
По-прежнему актуальна проблема - как убедить покупателей в необходимости приобретать программы вместе с компьютером. Чаще всего вызывает удивление, что к цене компьютера необходимо добавлять цену программного обеспечения. Причем программы, в большинстве своем американские, во Франции продаются почти вдвое дороже, нежели в США, и программное обеспечение нередко обходится дороже компьютера. Так, покупатель персоналки, изготовленной на Тайване, уплатив 6 тысяч франков за компьютер (меньше средней месячной зарплаты), должен заплатить еще 7 тысяч франков, чтобы использовать специальную программу для работы с базами данных - dBase.
Наиболее распространено программное обеспечение для создания и работы с различными информационными базами данных, так же, как и разнообразные редакторы, позволяющие редактировать тексты, создавать графические изображения или корректировать картинки, введенные в компьютер с помощью различных вспомогательных устройств.
ОБОРУДОВАНИЕ
Ведущее место среди поставщиков компьютерного оборудования во Франции занимает фирма IBM, однако все больше предприятий обзаводятся так называемыми IBM-совместимыми компьютерами, то есть машинами, разработанными другими фирмами, но способными выполнять все программы, предназначенные для IBM. Такие машины, как правило, ни в чем не уступают, а часто и превосходят "настоящие" IBM, причем обычно и стоят дешевле. Так, среди больших ЭВМ популярна марка Hitachi, знакомая в нашей стране по бытовой радиоаппаратуре, а в мире персональных компьютеров признанным лидером является Compaq.
Рынок мини-ЭВМ принадлежит фирме DEC, однако предприятия, использующие подобную технику, и здесь ориентируются на совместимые машины Sun, Hewlett-Packard и Sony. Впрочем, рынок мини-ЭВМ не так развит, как рынок персональных компьютеров.
Один из самых популярных в 1990 году во Франции IBM-совместимых персональных компьютеров Compaq. Все более популярной становится французская марка Goupil-Golf, кстати, не так давно она появилась и на советском компьютерном рынке.
Крупнейший французский производитель вычислительной техники - это фирма Bull, перекупившая известную американскую фирму Zenith. Несмотря на высокий технический уровень изделий, Bull не пользуется высокой репутацией, может быть, потому, что французы в области техники предпочитают все иностранное. Впрочем, нельзя не вспомнить о сравнительно небольшом предприятии Goupil, которое вместе с фирмой Normerel всегда выпускает модели, отличающиеся смелым конструкторским замыслом.
РАЗРАБОТКИ
В области разработок французские фирмы пользуются высокой репутацией, особенно если речь идет о специальных разработках, выполняемых по заказу клиента. Успехом пользуются, например, разработки так называемых проблемно-ориентированных языков для производственных целей.
Идут интенсивные разработки в области искусственного интеллекта, но спрос на них пока что не столь велик.
Что касается программного обеспечения, предназначенного для массового использования, то примерно девять из каждых десяти программ ввозятся из США (главные импортеры - фирмы Microsoft и Ashton Tate). Кроме прикладных программ для бухгалтерских расчетов, которые должны соответствовать правилам, принятым во Франции, существует не так уж много программ французского производства. Еще меньше программ, которые бы экспортировались из Франции. Единственное заметное исключение - система управления базами данных 4е DIMENSION для компьютеров Macintosh, популярная во всем мире.
Стандартный язык программирования, на котором ведутся разработки - это Си, и его новые версии, такие как Си++. (4/89). Менее популярен Паскаль. Для задач управления используется Кобол, расширяется применение языка Ада. Языки Лисп и Пролог так и не получили распространения, что же касается ассемблера, число его сторонников постепенно увеличивается.
КРАХ СЕМЕЙНОЙ МИКРОИНФОРМАТИКИ
Хотя на распространение домашних компьютеров возлагались большие надежды, сегодня этот рынок оказался на грани катастрофы. Даже несмотря на то, что в продаже есть совсем недорогие модели компьютеров, ими интересуются только дети, причем лишь как совершенными игровыми автоматами. Родители нередко не поддерживают увлечение компьютерными играми, в результате фирмы, занимающиеся бытовой информатикой, сталкиваются с серьезными трудностями. Так, например, Tomson, единственная французская фирма, выпускающая как военную электронику, так и электронику для быта, недавно закрыла отделение микроинформатики, которое занималось электронными игрушками. Две наиболее популярных во Франции фирмы Amstrad и Atari, ранее выпускавшие весьма доступные по цене домашние ЭВМ, также переключаются на выпуск профессиональных компьютеров.
Трудности связаны и с немногочисленностью заказчиков электронных игр. Нередко проблемы возникают не из-за высокой цены на программу (обычно около 200 франков), а из-за сложностей сбыта - некомпетентных продавцов и плохой организации складов. Подчас легче найти незаконную копию, нежели честно приобрести оригинал.
ОБРАЗОВАНИЕ
Несколько лет назад была принята правительственная программа "Вычислительная техника - для всех". Сегодня оснащенность учебных заведений соответствует разработанным нормам, компьютеры встречаются даже в начальных классах, однако нередко это устаревшие модели.
Информатика во Франции - это признанный предмет, и она входит в список экзаменов, которые необходимо выдержать, чтобы получить степень бакалавра. Несмотря на это, в стране не удается должным образом готовить преподавателей информатики. Малые средства, выделяемые на образование из государственного бюджета, а также небольшая зарплата преподавателей по сравнению с заработками инженера, работающего в частном секторе, приводят к тому, что инженеры не стремятся к карьере педагога.
СВЯЗЬ
Это область использования компьютеров, в которой за последние годы Франции удалось добиться наибольшего успеха. Высшее достижение - появление системы Minitel. В ее основе небольшой пульт (по сути, микроЭВМ) с экраном, клавиатурой и модемом (устройством для передачи данных по телефонному проводу), причем этот пульт бесплатно выдают всем желающим вместо телефонного справочника. Сегодня на 55 миллионов жителей насчитывается около 5 миллионов устройств Minitel.
На фото - пульт системы Minitel. С помощью этой микроЭВМ можно вызвать на экран небольшого телевизора различную информацию или отправить "электронное письмо" знакомым. Ниже - снимок с экрана работающей системы Minitel. Нажатием одной клавиши можно выбрать интересующую область информационных услуг: 1 - сельское хозяйство; 2 - банковские операции и кредитование; 3 - связь; 4 - сервис для покупателя; 5 - экономика, бизнес и промышленность; 6 - образование; 7 - игры; 8 - правительственные и общественные службы; 9 - здоровье и так далее.
Пульт Minitel позволяет, не выходя из квартиры, вызывать на экран всевозможные справочные данные, получая их по телефонному проводу из многочисленных электронных банков данных, например, справки по различным наукам и областям техники. Пульты, кроме того, используют для игр или для обмена посланиями. Последнее, кстати, на первых порах весьма способствовало распространению новой системы.
Различные учреждения и службы города имеют свои собственные банки данных. Обращаясь к ним, можно узнавать расписания поездов и самолетов, репертуар кинотеатров, последние новости, опубликованные в газетах и журналах. Налоговое управление ежегодно советует использовать Minitel для расчета суммы налога. Телевидение нередко обращается к этой системе, чтобы изучать общественное мнение. Политические партии с помощью Minitel организуют свои мероприятия. Правительство уже подумывает о том, чтобы использовать систему для проведения референдумов.
Следующим этапом станет внедрение цифровых сетей передачи информации, которые позволят во много раз повысить скорость обмена информацией (изображениями, текстами), по сравнению с "медленными" и ненадежными телефонными каналами. Такие сети уже начали создавать в крупных городах.
ТЕНДЕНЦИИ
Сегодня промышленность и учреждения до предела насыщены электроникой, поэтому рынок ориентирован в основном на обновление оборудования.
Поскольку французам более свойственна мечтательность, нежели трезвый расчет, большинство компьютеров в учреждениях несовместимы друг с другом. В то же время во Франции, как и везде в мире, растет спрос на машины, соединенные между собой (способные обмениваться информацией), сколь бы несовместимыми они ни были. Требуется все больше различных устройств для компьютерной связи (локальные сети, межсетевые соединения).
По мере создания сетей появляются новые концепции. Раньше традиционной была структура, когда несколько небольших компьютеров соединялись с мощной центральной машиной, которая поочередно решала различные задачи, используя данные, предоставленные пользователями. Сегодня ситуация изменилась едва ли не на противоположную, - специальные машины-серверы лишь управляют данными, а непосредственной обработкой этих данных занимаются микроЭВМ пользователя. Такая система позволяет каждому пользователю иметь доступ ко всей информации, имеющейся в сети, например, через одну и ту же машину-сервер пользователь А может получить данные с компьютера, обслуживающего бухгалтерию, а пользователь Б - с компьютера, установленного на складе.
Заметна тенденция уменьшать габариты системы. Так, налоговое ведомство объединило в сеть около пятидесяти персональных компьютеров "Compaq 386", подключив их к системе Minitel вместо того, чтобы, как это делалось ранее, использовать центральную мини-ЭВМ.
ЧЕМ ТОРГОВАТЬ С ФРАНЦУЗАМИ?
Французы - большие любители новинок, особенно иностранных. С начала перестройки - СССР в моде. Похоже, однако, что эта мода постепенно проходит.
Было бы бесполезно предлагать французам "электронные таблицы" или редакторы текстов. В компьютерном мире число таких программ уже перевалило за несколько сотен. В то же время есть интерес к новым технологиям, таким, как нейронные сети, искусственный интеллект, разработка технологий создания программного обеспечения, предметно-ориентированные базы данных. Из-за "разнокалиберного" парка компьютеров, объединенного в сети, пользуются спросом программные системы, работающие в разнородных вычислительных средах.
Растет интерес к системам, где центральной машиной служит компьютер IBM, к которому в качестве интеллектуальных терминалов подключены персональные компьютеры Macintosh. Ждет своих разработчиков и мир операционной системы Unix. Хорошим спросом пользуются игры, в последнее время особенно интерактивные игры для детей. Французов могут привлечь программные средства из области воспитания. Наконец, есть потребность в системах для автоматического ввода в компьютер машинописных текстов и для автоматизированного перевода.
Говоря о спросе на оборудование, можно предсказать хорошие перспективы для сетевого оборудования и экранов с высокой разрешающей способностью. В то же время бесполезно было бы предлагать IBM-совместимые персональные компьютеры и печатающие устройства, если только речь не идет о принтерах для цветной печати или лазерных принтерах, работающих в стандарте Postscript.
В целом французы сегодня избалованы отечественной информатикой и стали весьма разборчивыми. Это уже не столь открытый рынок, каким он был в первые годы развития микровычислительной техники.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
1/91
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ СЕДЬМОЕ, где начинается рассказ об интегрированных пакетах для персональных компьютеров. Они интегрируют (а по-русски говоря, включают в себя) такие мощные программные средства, как текстовые процессоры, электронные таблицы, базы данных и надстройки над дисковыми операционными системами. О первом и последнем из этих средств уже рассказывалось в нашей "Школе" (см. 3,5,7/90), об остальных речь пойдет в конце нынешнего занятия. В мире ПК среди интегрированных пакетов лидируют такие: Lotus 1-2-3(r), Symphony(r) , Framework(r), Knowledgeman(r), MS Works(r), Мастер. Начнем разговор с одного из самых популярных пакетов - с пакета Microsoft Works(r) 2.0 (вторая версия, русифицированная), разработанного американской формой Microsoft. Ведут занятие кандидат технических наук В.Ф.ОЧКОВ (Московский энергетический институт), инженеры А.И.Берест и А.В.Леонтьев (Московское представительство фирмы Microsoft), Д.А.СЕРБИН и И.И.ФЕФЕЛОВ (ВНИИ Электромеханики).
Соседний дом в сиренях ночи тонет
и сумраком становится он сам.
Кой-где забыли кресло на балконе,
не затворили рам.
Внезапно, как раскрывшееся око,
свет зажигается в одном из окон.
К буфету женщина идет.
А тот уж знает, что хозяйке надо,
и жители хрустальные ей рады,
и одного она берет.
Бесшумная, сияя желтым платьем,
протягивает руку, и невнятен
звук выключателя: трик-трак.
Сквозь темноту наклонного паркета
уходит силуэт тропинкой света,
дверь закрывается, и - мрак.
Но чем я так пронзительно взволнован,
откуда эта радость бытия?
И опытом каким волшебно-новым обогатился я?
В.Набоков
Владимир Набоков - сам, конечно, того не сознавая - в стихотворении "Окно" передал не только поэзию, но и в какой-то мере технологию работы с пакетом MS Works. Не верите? Постараемся вас в этом убедить.
Но сначала спустимся с поэтических высот на землю и скажем несколько слов о том, что же такое интегрированные пакеты и какие задачи решаются с их помощью.
В конце четвертого урока нашей "Школы" (см. 7/90), когда разговор зашел о дисплейных окнах текстового процессора Лексикон, мы попросили читателей представить себя на рабочем месте специалиста (будь то инженер, бизнесмен, управляющий, журналист, писатель, ученый и т.д.), которому приходится перелопачивать массу информации и выдавать "на гора" новую. Что можно увидеть на столе такого человека? Там разбросан (см. рис.) "джентльменский набор" работника умственного труда: книга со справочным материалом, лис ты бумаги с текстом, ящик с картотекой, календарь и будильник (он, конечно, будит не спящего человека, а заработавшегося, напоминая ему, например, о совещании у начальника), набор штемпелей на вертящейся подставке с наиболее часто употребляемыми текстами и резолюциями ("Разрешить", "Отказать" и т.п.- вспомним "резинового" Полыхаева из романа Ильфа и Петрова "Золотой теленок"), конверт, бланк для составления таблицы, ручка, резинка, ножницы, клей, пишущая машинка, калькулятор, чертежные инструменты для построения графиков и диаграмм. Связь с внешним миром ведется либо но почте (на стене висят два ящика для входящей и исходящей корреспонденции), либо по телефону. На стене висит полка для документов, с которыми человек сейчас не работает, но которые могут понадобиться в любой момент. На той же стене под потолком висят свернутые экранчики с нужной информацией, разворачивающиеся по просьбе человека.
В кабинете работника умственного труда, изображенного на этом рисунке, висят почтовые ящики. О них ничего не сказано в статье. Несмотря на этот пробел, рисунок вполне соответствует действительности: интегрированные пакеты включают в себя и такой мощный инструмент, как телекоммуникации, позволяющие компьютерам, работать в сети. Компьютерные сети - тема одного из будущих занятий нашей "Школы".
Вот такое рабочее место и моделируется на экране дисплея в среде интегрированного пакета MS Works. Особенности диалога пользователя с машиной мы проиллюстрируем примерами действий человека, сидящего за столом. А чтобы текст не получился совсем уж сухим, мы постараемся украсить его строками Б.Набокова и других поэтов. Читатели вправе заметить: если существуют такие хорошие системы, объединяющие в себе все, что требуется деловому человеку, - зачем же тогда нужны изолированные прикладные пакеты - текстовые процессоры (Лексикон, MultiEdit, MicrosoftWord, WordPerfect др.), базы данных (dBASE, RFOX, Clipper, РЕБУС и др.), электронные таблицы (VisiCalc, SuperCalc, MultiPlan и др.)?
Все дело в том, что интегрированные системы наряду с плюсами имеют и минусы, главный из которых - повышенные требования к оперативной памяти. Так, например, Framework требует для работы около 320 Кбайт оперативной памяти, Symphony - 390 Кбайт, Lotus 1-2-3 - 192 Кбайт. Если учесть, что оперативная память стандартного персонального компьютера насчитывает 640 Кбайт, из которых около 80 Кбайт "съедает" дисковая операционная система, 1-5 Кбайт - программа-русификатор клавиатуры, 10-20 Кбайт - программа-руссификатор принтера, 10-20 Кбайт - драйвер (водитель) "мыши", то нетрудно подсчитать, что для документов пользователя (тексты, базы данных, электронные таблицы) свободной памяти машины остается не так уж много.
Правда, некоторые интегрированные пакеты (Framework, например, которому мы посвятим отдельное занятие в нашей "Школе") умеют разбивать объемистые документы пользователя на две части. По ходу работы только малая часть документа загружается в ОЗУ машины, а его остаток помещается временно на диске - прямо как у Сергея Михалкова:
Спать ложился дядя Степа -
ноги клал на табурет.
На экране дисплея появляется то один фрагмент огромной электронной таблицы или базы данных, то другой, а машина ведет непрерывный обмен информацией между ОЗУ (диван) и диском (табурет), подгружая в оперативную память нужные чисти рабочего документа.
Но как бы то ни было, интегрированные системы пользуются огромной популярностью благодаря большим удобствам, предоставляемым пользователю. Расскажем о них.
После вхождения в среду MS Workb (после запуска файла с именем works.exe в директории WORKS) на экране дисплея появляется картинка, показанная на рис. На "чердаке" экрана перечисляются имена "слуг" пользователя: ФАЙЛ, СЕРВИС и СПРАВКА. Из каждой позиции этого коротенького меню, если навести на нее курсорную рамку и нажать клавишу Enter, выпадает меню вспомогательное с командами, приглашающими к началу работы.
Опытный пользователь ЭВМ сразу увидит в этом изображении почерк фирмы Microsoft. Кого-то, правда, удивят слова Файл, Сервис, Справка вместо более привычных File, Service, Help. Но большинству отечественных пользователей это понравится: нет необходимости вместе с информатикой учить и английский язык.
СОЗДАТЬ ФАЙЛ...- это значит взять из стопки чистый бланк для будущего документа и положить ею на стол. В среде MS Works имеются бланки трех сортов: для написания и дальнейшей правки простых текстов (в формате Текстового процессора), для составления таблиц (в формате Электронных таблиц) и для изготовления картотек (в формате Базы данных).
Требуемый формат создаваемого документа запрашивается в новом окне (см. текст в нижней рамке], которое появляется на экране дисплея, если навести курсор-указатель на слова СОЗДАТЬ ФАЙЛ... и нажать клавишу Enter. О том, как и чем заполняются пустые бланки "компьютерных" документов, мы скажем чуть позже.
Среда MS Works, как и все другие программные продукты, дает человеку возможность выбирать "блюда" меню разными способами. Первый способ (для начинающих) мы уже описали: для активизации меню и высвечивания курсорной рамкой-указателем слова ФАЙЛ нужно нажать клавишу Alt, затем эта рамка клавишей "стрелочка вправо" перемещается на нужное слово (СЕРВИС или СПРАВКА) или же оставляется на слове ФАЙЛ, а затем нажимается клавиша Enter. Дальнейший выбор нужного режима или команды ведется аналогичным образом с единственным отличием: курсорная рамка перемещается по строкам вспомогательного меню клавишей "стрелочка вниз".
Второй способ (быстрый, для опытных "безмышиных" пользователей) опирается на то, что в каждом слове меню одна буква выделяется цветом. И если нужно, чтобы машина создала, к примеру, новую электронную таблицу, то достаточно нажать всего четыре клавиши: Alt (активизация меню), "Ф" {выбор режима работы с Файлами), еще раз "ф" (команда Создать файл...) и "э" (Новый в формате Электронных таблиц). Третий способ обращения с меню среды MS Works "показан" на первом рисунке: все желания человека, сидящего за письменным столом, выполняет "мышь" - пользователю достаточно поелозить ею по столу и навести тем самым курсор "мыши" (бегающая по экрану дисплея стрелочка) на нужное слово в меню, а затем нажать левую кнопку "мыши".
Но продолжим просмотр вспомогательного меню, которое вываливается из слова ФАЙЛ.
ОТКРЫТЬ ФАЙЛ... - это значит встать из-за стола, подойти к полке, открыть ее, взять нужный документ (листы с текстом, таблицу, картотеку) и вернуться с ним за стол. Следует отметить важное отличие обычной полки от компьютеризованной: с полки ЭВМ (с магнитного диска) переносится на рабочий стол не сам документ (файл), а его копия, моментально появляющаяся на свет, как только к оригиналу потянется рука человека. Эта рабочая копия может быть в процессе работы испорчена или потеряна. Не беда - оригинал всегда под рукой на полке. После выполнения команды ОТКРЫТЬ ФАЙЛ... ЭВМ в новом появившемся окне покажет, какие у нее есть "полки" (дисководы А, В, С, D, Е и т.д.), какие на этих полках есть отделения (поддиректории дисководов) и какие там хранятся документы в форматах текстового процессора (файлы с расширением *.WPS), электронной таблицы (расширение *.WKS) и базы данных (расширение *.WDB). На название нужного для работы документа наводится курсорная рамка, нажимается клавиша Enter, и документ (еще раз подчеркиваем, не он сам, а его копия) возникает на экране дисплея.
К буфету женщина идет.
А тот уж знает, что хозяйке надо,
и жители хрустальные ей рады,
и одного она берет.
Как правило, рабочий документ при работе не портят и не теряют - его обычно исправляют и дополняют. Внести изменения в оригинал, хранящийся на полке, - то бишь в архивной памяти ЭВМ на магнитных дисках - поможет команда СОХРАНИТЬ, стирающая старый файл и записывающая на его месте новый под тем же именем. Но ежели человек захочет вернуть измененный документ на полку, не уничтожая оригинала, или поставить на какую-то другую полку (перенести на другой диск) или на другое отделение полки (на другую директорию диска), то он должен отдать команду СОХРАНИТЬ КАК... В ответ машина попросит человека изменить имя документа-файла и его место хранения в архивной памяти. Просьбы машины выполнены, нажата клавиша Enter - и под нужным именем документ направляется на нужное место.
Команда ЗАКРЫТЬ удаляет документ с рабочего стола пользователя, освобождая стол (оперативную память машины) для новых документов. ЭВМ при этом проверяет, остался ли на полке (в архивной памяти) машины идентичный дубликат удаляемого документа. Если дубликата нет, то машина спросит человека, нужно ли внести изменения на диске. Таким же образом машина страхует человека, если он собирается закончить работу в среде MS Works (no команде ВЫХОД ИЗ MS Works), не записав измененные старые или созданные новые документы на диске.
Кой-где забыли кресло на балконе,
не затворили рам...
Человеку приходится подходить к полке не только для того, чтобы что-то взять или что-то на нее положить, но и для того, чтобы навести на ней порядок: выкинуть устаревшие документы, другие переложить на новое место, что-то переименовать, приладить к полке новые отделения и т.д. Все это позволяет делать режим УПРАВЛЕНИЕ ФАЙЛАМИ..., превращающий среду MS Works в надстройку над дисковой операционной системой (см. 3/90). Говоря конкретнее, этот режим дает возможность, не выходя из среди MS Works, копировать, удалять, переименовывать файлы на дисках, создавать новые директории на дисках или удалять ненужные, форматировать гибкие диски, выставлять часы и календарь компьютера, если они показывают неточное время или дату. Как это делается, говорилось в вышеупомянутом рассказе про надстройки над дисковой операционной системой.
Режим ВЫПОЛНИТЬ ДРУГИЕ ПРОГРАММЫ... предназначен для временного выхода из среды MS Works в среду дисковой операционной системы (DOS), ежели необходимо "прогнать" какую-то программу, а потом вернуться к пакету MS Works по команде Exit. Например, с помощью текстового процессора вы оформляете расчетную записку и вам понадобилось что-то подсчитать по какой-то Бейсик-программе. Это делается просто: временно выходим в DOS, запускаем Бейсик-интерпретатор (файл с именем basica.exe), подгружаем нужную Бейсик-программу (команда Load), запускаем ее (команда Run), считываем результат, возвращаемся в среду DOS (команда System) и возвращаемся к прерванной работе над текстом в среде MSWorks (команда Exit).
Для окончательного же прощания с расцвеченным дисплеем пакета MS Works и возвращения к черному экрану среды DOS с единственной путеводной звездой "C:\WORKS>" служит команда Выход из Works:
Сквозь темноту наклонного паркета
уходит силуэт тропинкой света,
дверь закрывается, и - мрак.
Вернемся теперь к тому моменту, когда тотчас после вхождения в среду MS Works в верхней части экрана дисплея появились слова ФАЙЛ, СЕРВИС и СПРАВКА. Займемся вторым из них - СЕРВИС. Это полуиностранное, заманчивое, но плохо приживающееся на нашей почве понятие открывает путь к подстройке пакета под вкусы и привычки пользователя - например, к изменению ПАРАМЕТРОВ Works: единиц измерения размеров на дисплее или на бумаге принтера (сантиметры, дюймы, точки), числа строк на дисплее (25 или 43) и многого другого. Когда нужно, пользователь может включить КАЛЬКУЛЯТОР...(не будешь же в самом деле каждый раз вызывать Бейсик-интерпретатор), что-то подсчитать, а потом убрать изображение калькулятора на экране дисплея, нажав клавишу Esc.
БУДИЛЬНИК... Спящего человека будильник ЭВМ, конечно, не разбудит, а вот сидящему за клавиатурой машины очень даже пригодится. Всякий, кто сидел за нею, знает, что эта работа очень увлекательная, заставляющая забывать обо всем на свете. Но если впереди прием у начальника, то опаздывать, конечно, нельзя. Поэтому приходится либо нервно поглядывать на часы, либо... завести будильник компьютера: отдать цепочку команд СЕРВИС... и БУДИЛЬНИК.. Машина после этого запросит вид сообщения ("Пора закругляться и бежать в дирекцию"), время (14:10) и дату (6/10/90), когда его необходимо вывести на экран дисплея в особом окне поверх всей другой информации и сопроводить звуковым сигналом.
Можно запрограммировать много таких звонков будильника и спокойно работать на компьютере, зарабатывая себе репутацию пунктуального и обязательного человека. Одни напоминания выдаются ежедневно, другие только по рабочим дням, третьи - раз или два в месяц ("Не забудь сходить в кассу и получить зарплату, а то деньги уйдут на депонент!") и т.д.
(Людям, увлеченно работающим на компьютерах и забывающих при этом "мать родную", обязан своим появлением очень интересный компьютерный вирус под названием "five o'clock". Если ваш компьютер заразится им, то ежедневно в пять часов пополудни он будет прерывать работу музыкой, как бы призывая вас следовать хорошей английской традиции - попить чайку между обедом и ужином, избегая больших перерывов в еде, вредящих здоровью. Полезный вирус, не правда ли? В природе вирусы и бактерии тоже делятся на плохие и хорошие - одни заражают человека болезнями, другие сбраживают виноградный сок в вино, а молоко в кефир).
НАБРАТЬ НОМЕР... Типичное действие человека, чей рабочий стол иллюстрирует наш рассказ, - обзвонить людей, приглашаемых на совещание. Для этого с полки берут телефонный справочник, пододвигают поближе телефон, снимают трубку и начинается бесконечное накручивание диска аппарата. В среде MS Works такая работа делается более быстро и менее утомительно. Вызывается из архива нужная база данных - назовем ее "Телефонная книга" (команды ФАЙЛ... и ОТКРЫТЬ ФАЙЛ...), в ней курсорной рамкой отмечается нужный номер телефона и отдается команда НАБРАТЬ НОМЕР... После этого ЭВМ с помощью модема (ежели, конечно, он у вас имеется) наберет выбранный номер, соединит вас, а затем особым сигналом попросит поднести трубку к уху для разговора.
Последний шаг по строчке ФАЙЛ, СЕРВИС, СПРАВКА. Третье из этих слов, СПРАВКА... - это путеводитель по интегрированному пакету MS Works. Машина подскажет, как пользоваться справкой (позиция вспомогательного меню ИСПОЛЬЗОВАНИЕ), покажет на экране справочное оглавление (ОГЛАВЛЕНИЕ), даст справку о том, как запустить нужный режим (ВВЕДЕНИЕ), об особенностях работы с клавиатурой (КЛАВИАТУРА) и с мышкой (МЫШКА).
Однако в неясных случаях можно не обращаться к режиму СПРАВКА..., а просто нажать клавишу F1. Б среде MS Works, как и в других программных продуктах, функциональная клавиша F1 - это палочка-выручалочка. Обычно пользователю бывают не ясны те или иные короткие позиции меню, И если он перед выполнением какой-то команды нажмет клавишу F1, то ЭВМ выдаст на экран подробное описание этой команды.
Многие читатели, наверно, уже с удовлетворением отметили, что все позиции меню пакета MS Works выдаются на экран по-русски. На русский язык переведены и записаны на диск все комментарии - подсказки пользователю. Так что работать с этим пакетом человеку, не знающему английского языка, одно удовольствие. Перевели пакет MS Works на русский язык, сотрудники совместного советско-американского пед-приятия "Диалог" Дмитрий Бондаренко, Андрей Давыдов, Николай Любовный и Юрий Стариков. Существует, естественно, и оригинальный вариант пакета MS Works с английскими позициями меню и комментариями - любители могут пользоваться им.
Многооконная система работы с документами стала уже традиционной. При этом машина позволяет быстро перебрасывать информацию из одного окна в другое.
Теперь, как было обещано, расскажем о том, что такое электронные таблицы и базы данных и "с чем их едят" под соусом пакета MS Works. Как их создают, поговорим попозже, а пока посмотрим, как они выглядят. На рисунке: электронная таблица с именем SHEET1.WKS, база данных в виде таблицы (DATA2.WDB), та же база данных в традиционной форме, когда видна только одна запись (DATA1.WDB). Здесь же, в правой половине рисунка, помещен и некий безымянный текст. Он понадобится нам, когда мы станем рассказывать о текстовом процессоре пакета MS Works. Для этих четырех документов на дисплее открыто четыре окна, размеры и расположение которых пользователь по своему усмотрению может менять. В частности, сейчас машине отдана команда на перемещение окна с текстом при помощи клавиш "стрелочка вверх", "вниз", "вправо" и "влево" (см. строку в нижней части рисунка): предварительно было активизировано главное меню (см. строку в верхней части рисунка) и в нем выделена позиция ОКНО, а в вывалившемся вспомогательном меню - позиция ПЕРЕМЕСТИТЬ (здесь можно было бы выделить позицию РАЗМЕР, если бы требовалось изменить размер окна). Заканчивается операция перемещения окна (или изменения его размера) нажатием клавиши Enter. Перебрасывается курсор из одного окна в другое аккордом Ctrl-F6.
Поговорим о каждом из окон в отдельности. Начнем с правого, где помещен самый обычный текст. Создавать такие тексты, просматривать их, дописывать и редактировать можно с помощью текстового процессора. Чтобы его вызвать, надо сразу же после вхождения в среду MS Works навести курсорную рамку на слово ФАЙЛ, нажать клавишу Enter, в появившемся вспомогательном меню с помощью той же клавиши Enter выполнить команду СОЗДАТЬ ФАЙЛ, а в возникшей далее лесенке из трех строк таким же путем выполнить команду НОВЫЙ В ФОРМАТЕ ТЕКСТОВОГО ПРОЦЕССОРА. Вот теперь можно набирать текст на клавиатуре, если он создается впервые. Если же он уже есть на диске и записан там в формате текстового процессора, а вся работа над, текстом заключается в просмотре дополнении и редактировании, то следует лишь вызвать его. Для этого во вспомогательном меню надо навести курсорную рамку на строчку ОТКРЫТЬ ФАЙЛ - и дальше действовать так, как сказано выше. Формат вызванного текста служит залогом того, что компьютер будет далее работать в режиме текстового процессора.
Когда вызывается текстовый процессор, главное меню MS Works дополняется (читатель уже заметил, разглядывая рисунок) новыми названиями режимов: РЕДАКТИРОВАНИЕ, ПЕЧАТЬ, ВЫДЕЛИТЬ, ФОРМАТ и ОКНО. Они подсказывают пользователю, что можно делать с текстами.
(Забегая вперед, скажем, что в режимах работы с электронными таблицами и базами данных в этой строке появляется еще и слово ПРОСМОТР).
Текстовый процессор среды MS Works сможет удовлетворить самых капризных пользователей ЭВМ - тех, которым персональный компьютер служит интеллектуальной пишущей машинкой. Там, в частности, есть система WYSIWYG (визивиг - What You See Is What You Get - что ты видишь, то ты и получишь), о которой мы уже писали (7/90), позволяющая просмотреть на экране дисплея текст в виде рисунка и увидеть расположение заголовков, полей, абзацев и других элементов на страницах, не гоняя понапрасну принтер.
Есть в текстовом процессоре дружественная человеку команда ОТМЕНА (по-английски Undo), отменяющая действие предыдущей ошибочно отданной команды. Стерли, к примеру, целую страницу только что в муках творчества набранного текста, а потом в досаде стукнули себя по лбу, поняв, что этого бы делать не стоило. Не беда: отдали команду РЕДАКТИРОВАНИЕ - ОТМЕНА, и текст моментально восстановлен: машина "не сжигает за человеком мостов", оставляя ему путь к отступлению.
В набранном тексте можно исправить орфографические ошибки, отдав команды СЕРВИС, ПРОВЕРКА ОРФОГРАФИИ.... Вряд ли кто из читателей заметил ошибку в правой половине только что обсуждавшегося рисунка ("текствого" вместо "текстового"). Машина же, если ее об этом попросить, ошибку найдет в два счета, сравнив слова текста со словарем и предложив человеку похожие по написанию слова для замены неправильного.
После того, как в работу включен текстовый процессор, увеличивается не только число слов в главном меню, но и число позиций во вспомогательных меню. Так, во вспомогательном меню СЕРВИС, помимо слов ПАРАМЕТРЫ Works..., КАЛЬКУЛЯТОР.... БУДИЛЬНИК... и НАБРАТЬ НОМЕР.., после вызова текстового процессора появятся новые слова-команды: ЛИНЕЙКА (включение и выключение специальной линейки в верхней части текста с метками табуляции, красной строки, начала и конца текста), ПОКАЗАТЬ ВСЕ СИМВОЛЫ (высвечивание на дисплее невидимых символов перевода строки, лишних пробелов, выравнивающих правый край текста и др.), ПОКАЗАТЬ ВСЕ СНОСКИ, ВМЕСТИТЬ В ЭКРАН, ЗАМЕНА ВЫДЕЛЕННОГО, ПРОВЕРКА ОРФОГРАФИИ и ПЕРЕНУМЕРАЦИЯ СТРОК. Обо всех этих режимах мы рассказывать не будем, интригуя читателя - пусть он освоит их сам, благо освоить их нетрудно. Заметим попутно: меню пакета MS Works очень гибкое, если чего-то в данный момент выполнить нельзя, то соответствующая команда в меню и не присутствует - чтобы не путалась под ногами.
Электронная таблица. Часто ее называют на английский манер - спредшит (английское spreadsheet образовано от to spread - распространяться и a sheet - лист бумаги). Такая таблица в отличие от простого текста разбита не только на строки, но и на колонки (см. окно с названием SHEET1.WKS), на пересечении которых расположены ячейки. Строки электронной таблицы нумеруются числами (1, 2, 3 и т.д.), а колонки - латинскими буквами (А, В, С.....Z, АА, АВ, и т.д., на сколько хватит места в памяти машины).
Эти разметочные символы появляются н« экране дисплея тотчас же, как компьютер переводится в режим работы с электронными таблицами. Делается это почти так же, как при подготовке к работе в режиме текстового процессора - см. рисунок. Только на сей раз в окне, расположенном на этом рисунке в правом нижнем углу, надо нанести курсорную рамку на строчку НОВЫЙ В ФОРМАТЕ ЭЛЕКТРОННЫХ ТАБЛИЦ и нажать клавишу Enter. Тогда и возникнет на экране дисплея заготовка будущей таблицы с цифрами по левому краю, с буквами - по верхнему и со стандартным заголовком вверху: SHEET, далее цифра (1, если строится первая таблица, 2, 3 и т.д., если строятся дальнейшие) и расширение WKS. Можно изменить номер таблицы или ее имя по своему усмотрению. Надо лишь припомнить, нет ли таблицы с таким именем в архивной памяти машины. Иначе, если уже созданную таблицу придется отправлять туда, машина выдаст на экран дисплея протестующее заявление: Стоп! Таблица с таким именем уже есть на диске!
(Кстати, удобнее бывает не строить таблицу заново, а вызвать из архивной памяти уже имеющуюся там и отредактировать ее так, как будет описано ниже).
В ячейки электронной таблицы можно записывать не только какой-то текст или числа (это можно сделать и с помощью обычного текстового процессора), но и формулы, приказывающие машине взять, например, числа из ячеек В2 (пересечение второй колонки со второй строкой), В3 (вторая колонка и третья строка) и В4 (вторая колонка и четвертая строка), сложить их, а ответ вывести на дисплей в ячейку, куда эта формула была записана при проектировании таблицы (у нас это ячейка В5). Машина поймет, что в ячейку В5 записывается формула, а не цепочка литер "B2+B3+D4", если ее предварить знаком равно: =B2+B3+B4. После нажатия клавиши Enter в ячейке В5 появится число - соответствующая сумма. Для обработки серий чисел, расположенных радом (как в нашем примере - в ячейках В2, В3, В4) в электронных таблицах предусмотрены специальные встроенные функции подсчета суммы, среднего, определения минимального и максимального числа. Так например, в нашу ячейку В5 можно записать не =В2+В3+В4, а формулу =СУММ(В2:В4) - возьми все числа столбца В от 2-й до 4-й строки и сложи их, если в этом интервале окажутся ячейки с нечисловой информацией (пустая или с цепочкой букв), то проигнорируй их.
Так можно заполнить всю электронную таблицу исходными данными и формулами для их обработки. И если при очередном использовании таблицы исходные данные будут изменены, то моментально изменятся выходные данные - результаты расчетов по этим формулам.
Электронная таблица внешне отличается от простого текста еще и тем, что перемещение курсора в горизонтальном направлении ведется не побайтно от позиции к позиции, а скачками из одной ячейки в соседнюю; при этом расцвечивается вся ячейка целиком.
Чтобы отредактировать содержимое ячейки, которую в данный момент отмечает курсор, нужно вначале нажать клавишу F2. После этого находившаяся в ячейке цепочка символов, число или формула выносится в специальную строку, расположенную под главным меню. Эту строчку можно подправить и после нажатия клавиши Enter вернуть исправленное в прежнюю ячейку.
Еще раз напоминаем: человек предупреждает машину о том, что он вводит формулу, а не число или слова тем, что предваряет ее знаком "равно": =SIN(Z123) - подсчет синуса числа (в радианах), хранящегося на 123-й строке 26-го столбца, =LOG(A4) - подсчет десятичного логарифма, =M1N(A1:G2O) - поиск минимального числа среди хранящихся в прямоугольной области таблицы с углами Al, A20, G1 и G20.
По умолчанию машина при создании новой таблицы делает все столбцы одинаковой ширины в 10 позиций. Если это составителя таблицы не устраивает (текст или число не умещаются в таком прокрустовом ложе или же, наоборот, таблицу нужно сделать более компактной, отведя под ячейки ровно столько, сколько нужно), то пользователь может изменить ширину столбца. Для этого следует переместить на одну из ячеек расширяемого (сужаемого) столбца курсорную рамку к отдать цепочку команд ФОРМАТ - ШИРИНА СТОЛБЦА... Машина запросит новое значение ширины столбца (допустимо от 0 до 79 позиций) и после нажатия клавиши Enter сделает то, что от нее попросили.
Машина также предоставляет возможность вставлять в таблицу новые строки и столбцы, раздвигая старые по цепочке команд РЕДАКТИРОВАНИЕ - ВСТАВИТЬ СТРОКУ/СТОЛБЕЦ. Новая строка (столбец) появится выше (левее) "окурсоренной" ячейки. Строка или столбец будут при необходимости удалены по команде РЕДАКТИРОВАНИЕ - УДАЛИТЬ СТРОКУ/СТОЛБЕЦ.
Самое интересное в командах вставки и удаления строк и столбцов, без чего было бы невозможно эти команды использовать, заключается в том, что во введенных формулах адресация на ячейки, содержащие аргументы формул, не нарушается при сдвиге столбцов и строк. Так, если бы мы захотели дополнить нашу таблицу данными по зарплате Петухова, мы должны были бы над Сидоровым вставить новую строку (ФОРМАТ - ВСТАВИТЬ СТРОКУ/СТОЛБЕЦ - см. выше). После такой операции формула =СУММ(В2:В4) автоматически заменится на =СУММ(В2:В5), и Сидоров из подсчетов не выпадет.
Такое же "умное" переиначивание формул происходит и при их копировании: формулу =СУММ(В2:В4) достаточно ввести только в ячейку В5, в остальные же ячейки (находившиеся в столбцах С, D и т.д.) можно направить ее копии. Для этого надо сначала навести кypcopную рамку на ячейку, где находится копируемая формула (в нашем примере - на ячейку В5), далее пройтись по командам РЕДАКТИРОВАНИЕ и КОПИРОВАТЬ, затем перенести курсорную рамку в ту ячейку, где желательно получить копию (скажем, в ячейку С5), нажать клавишу Enter - и желаемая копия появится там. Но вглядитесь: там записано не =СУММ(В2:В4), там стоит =СУММ(С2:С4). Машина сама произвела необходимую смену символов.
Разговор о пакете MS WORKS будет закончен на следующем занятии "Школы". А это завершим справкой.
На предыдущем занятии нашей "Школы" мы договорились о том, что программы друг у друга "пиратским" способом переписывать нельзя, а нужно обращаться к их разработчикам. В связи с этим, сообщаем пользователям ЭВМ, что в Москве открывается представительство фирмы Microsoft, это, наверняка, упростит приобретение современных, популярных программных средств для персональных компьютеров.
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ СЕДЬМОЕ, где начинается рассказ об интегрированных пакетах для персональных компьютеров. Они интегрируют (а по-русски говоря, включают в себя) такие мощные программные средства, как текстовые процессоры, электронные таблицы, базы данных и надстройки над дисковыми операционными системами. О первом и последнем из этих средств уже рассказывалось в нашей "Школе" (см. 3,5,7/90), об остальных речь пойдет в конце нынешнего занятия. В мире ПК среди интегрированных пакетов лидируют такие: Lotus 1-2-3(r), Symphony(r) , Framework(r), Knowledgeman(r), MS Works(r), Мастер. Начнем разговор с одного из самых популярных пакетов - с пакета Microsoft Works(r) 2.0 (вторая версия, русифицированная), разработанного американской формой Microsoft. Ведут занятие кандидат технических наук В.Ф.ОЧКОВ (Московский энергетический институт), инженеры А.И.Берест и А.В.Леонтьев (Московское представительство фирмы Microsoft), Д.А.СЕРБИН и И.И.ФЕФЕЛОВ (ВНИИ Электромеханики).
Соседний дом в сиренях ночи тонет
и сумраком становится он сам.
Кой-где забыли кресло на балконе,
не затворили рам.
Внезапно, как раскрывшееся око,
свет зажигается в одном из окон.
К буфету женщина идет.
А тот уж знает, что хозяйке надо,
и жители хрустальные ей рады,
и одного она берет.
Бесшумная, сияя желтым платьем,
протягивает руку, и невнятен
звук выключателя: трик-трак.
Сквозь темноту наклонного паркета
уходит силуэт тропинкой света,
дверь закрывается, и - мрак.
Но чем я так пронзительно взволнован,
откуда эта радость бытия?
И опытом каким волшебно-новым обогатился я?
В.Набоков
Владимир Набоков - сам, конечно, того не сознавая - в стихотворении "Окно" передал не только поэзию, но и в какой-то мере технологию работы с пакетом MS Works. Не верите? Постараемся вас в этом убедить.
Но сначала спустимся с поэтических высот на землю и скажем несколько слов о том, что же такое интегрированные пакеты и какие задачи решаются с их помощью.
В конце четвертого урока нашей "Школы" (см. 7/90), когда разговор зашел о дисплейных окнах текстового процессора Лексикон, мы попросили читателей представить себя на рабочем месте специалиста (будь то инженер, бизнесмен, управляющий, журналист, писатель, ученый и т.д.), которому приходится перелопачивать массу информации и выдавать "на гора" новую. Что можно увидеть на столе такого человека? Там разбросан (см. рис.) "джентльменский набор" работника умственного труда: книга со справочным материалом, лис ты бумаги с текстом, ящик с картотекой, календарь и будильник (он, конечно, будит не спящего человека, а заработавшегося, напоминая ему, например, о совещании у начальника), набор штемпелей на вертящейся подставке с наиболее часто употребляемыми текстами и резолюциями ("Разрешить", "Отказать" и т.п.- вспомним "резинового" Полыхаева из романа Ильфа и Петрова "Золотой теленок"), конверт, бланк для составления таблицы, ручка, резинка, ножницы, клей, пишущая машинка, калькулятор, чертежные инструменты для построения графиков и диаграмм. Связь с внешним миром ведется либо но почте (на стене висят два ящика для входящей и исходящей корреспонденции), либо по телефону. На стене висит полка для документов, с которыми человек сейчас не работает, но которые могут понадобиться в любой момент. На той же стене под потолком висят свернутые экранчики с нужной информацией, разворачивающиеся по просьбе человека.
В кабинете работника умственного труда, изображенного на этом рисунке, висят почтовые ящики. О них ничего не сказано в статье. Несмотря на этот пробел, рисунок вполне соответствует действительности: интегрированные пакеты включают в себя и такой мощный инструмент, как телекоммуникации, позволяющие компьютерам, работать в сети. Компьютерные сети - тема одного из будущих занятий нашей "Школы".
Вот такое рабочее место и моделируется на экране дисплея в среде интегрированного пакета MS Works. Особенности диалога пользователя с машиной мы проиллюстрируем примерами действий человека, сидящего за столом. А чтобы текст не получился совсем уж сухим, мы постараемся украсить его строками Б.Набокова и других поэтов. Читатели вправе заметить: если существуют такие хорошие системы, объединяющие в себе все, что требуется деловому человеку, - зачем же тогда нужны изолированные прикладные пакеты - текстовые процессоры (Лексикон, MultiEdit, MicrosoftWord, WordPerfect др.), базы данных (dBASE, RFOX, Clipper, РЕБУС и др.), электронные таблицы (VisiCalc, SuperCalc, MultiPlan и др.)?
Все дело в том, что интегрированные системы наряду с плюсами имеют и минусы, главный из которых - повышенные требования к оперативной памяти. Так, например, Framework требует для работы около 320 Кбайт оперативной памяти, Symphony - 390 Кбайт, Lotus 1-2-3 - 192 Кбайт. Если учесть, что оперативная память стандартного персонального компьютера насчитывает 640 Кбайт, из которых около 80 Кбайт "съедает" дисковая операционная система, 1-5 Кбайт - программа-русификатор клавиатуры, 10-20 Кбайт - программа-руссификатор принтера, 10-20 Кбайт - драйвер (водитель) "мыши", то нетрудно подсчитать, что для документов пользователя (тексты, базы данных, электронные таблицы) свободной памяти машины остается не так уж много.
Правда, некоторые интегрированные пакеты (Framework, например, которому мы посвятим отдельное занятие в нашей "Школе") умеют разбивать объемистые документы пользователя на две части. По ходу работы только малая часть документа загружается в ОЗУ машины, а его остаток помещается временно на диске - прямо как у Сергея Михалкова:
Спать ложился дядя Степа -
ноги клал на табурет.
На экране дисплея появляется то один фрагмент огромной электронной таблицы или базы данных, то другой, а машина ведет непрерывный обмен информацией между ОЗУ (диван) и диском (табурет), подгружая в оперативную память нужные чисти рабочего документа.
Но как бы то ни было, интегрированные системы пользуются огромной популярностью благодаря большим удобствам, предоставляемым пользователю. Расскажем о них.
После вхождения в среду MS Workb (после запуска файла с именем works.exe в директории WORKS) на экране дисплея появляется картинка, показанная на рис. На "чердаке" экрана перечисляются имена "слуг" пользователя: ФАЙЛ, СЕРВИС и СПРАВКА. Из каждой позиции этого коротенького меню, если навести на нее курсорную рамку и нажать клавишу Enter, выпадает меню вспомогательное с командами, приглашающими к началу работы.
Опытный пользователь ЭВМ сразу увидит в этом изображении почерк фирмы Microsoft. Кого-то, правда, удивят слова Файл, Сервис, Справка вместо более привычных File, Service, Help. Но большинству отечественных пользователей это понравится: нет необходимости вместе с информатикой учить и английский язык.
СОЗДАТЬ ФАЙЛ...- это значит взять из стопки чистый бланк для будущего документа и положить ею на стол. В среде MS Works имеются бланки трех сортов: для написания и дальнейшей правки простых текстов (в формате Текстового процессора), для составления таблиц (в формате Электронных таблиц) и для изготовления картотек (в формате Базы данных).
Требуемый формат создаваемого документа запрашивается в новом окне (см. текст в нижней рамке], которое появляется на экране дисплея, если навести курсор-указатель на слова СОЗДАТЬ ФАЙЛ... и нажать клавишу Enter. О том, как и чем заполняются пустые бланки "компьютерных" документов, мы скажем чуть позже.
Среда MS Works, как и все другие программные продукты, дает человеку возможность выбирать "блюда" меню разными способами. Первый способ (для начинающих) мы уже описали: для активизации меню и высвечивания курсорной рамкой-указателем слова ФАЙЛ нужно нажать клавишу Alt, затем эта рамка клавишей "стрелочка вправо" перемещается на нужное слово (СЕРВИС или СПРАВКА) или же оставляется на слове ФАЙЛ, а затем нажимается клавиша Enter. Дальнейший выбор нужного режима или команды ведется аналогичным образом с единственным отличием: курсорная рамка перемещается по строкам вспомогательного меню клавишей "стрелочка вниз".
Второй способ (быстрый, для опытных "безмышиных" пользователей) опирается на то, что в каждом слове меню одна буква выделяется цветом. И если нужно, чтобы машина создала, к примеру, новую электронную таблицу, то достаточно нажать всего четыре клавиши: Alt (активизация меню), "Ф" {выбор режима работы с Файлами), еще раз "ф" (команда Создать файл...) и "э" (Новый в формате Электронных таблиц). Третий способ обращения с меню среды MS Works "показан" на первом рисунке: все желания человека, сидящего за письменным столом, выполняет "мышь" - пользователю достаточно поелозить ею по столу и навести тем самым курсор "мыши" (бегающая по экрану дисплея стрелочка) на нужное слово в меню, а затем нажать левую кнопку "мыши".
Но продолжим просмотр вспомогательного меню, которое вываливается из слова ФАЙЛ.
ОТКРЫТЬ ФАЙЛ... - это значит встать из-за стола, подойти к полке, открыть ее, взять нужный документ (листы с текстом, таблицу, картотеку) и вернуться с ним за стол. Следует отметить важное отличие обычной полки от компьютеризованной: с полки ЭВМ (с магнитного диска) переносится на рабочий стол не сам документ (файл), а его копия, моментально появляющаяся на свет, как только к оригиналу потянется рука человека. Эта рабочая копия может быть в процессе работы испорчена или потеряна. Не беда - оригинал всегда под рукой на полке. После выполнения команды ОТКРЫТЬ ФАЙЛ... ЭВМ в новом появившемся окне покажет, какие у нее есть "полки" (дисководы А, В, С, D, Е и т.д.), какие на этих полках есть отделения (поддиректории дисководов) и какие там хранятся документы в форматах текстового процессора (файлы с расширением *.WPS), электронной таблицы (расширение *.WKS) и базы данных (расширение *.WDB). На название нужного для работы документа наводится курсорная рамка, нажимается клавиша Enter, и документ (еще раз подчеркиваем, не он сам, а его копия) возникает на экране дисплея.
К буфету женщина идет.
А тот уж знает, что хозяйке надо,
и жители хрустальные ей рады,
и одного она берет.
Как правило, рабочий документ при работе не портят и не теряют - его обычно исправляют и дополняют. Внести изменения в оригинал, хранящийся на полке, - то бишь в архивной памяти ЭВМ на магнитных дисках - поможет команда СОХРАНИТЬ, стирающая старый файл и записывающая на его месте новый под тем же именем. Но ежели человек захочет вернуть измененный документ на полку, не уничтожая оригинала, или поставить на какую-то другую полку (перенести на другой диск) или на другое отделение полки (на другую директорию диска), то он должен отдать команду СОХРАНИТЬ КАК... В ответ машина попросит человека изменить имя документа-файла и его место хранения в архивной памяти. Просьбы машины выполнены, нажата клавиша Enter - и под нужным именем документ направляется на нужное место.
Команда ЗАКРЫТЬ удаляет документ с рабочего стола пользователя, освобождая стол (оперативную память машины) для новых документов. ЭВМ при этом проверяет, остался ли на полке (в архивной памяти) машины идентичный дубликат удаляемого документа. Если дубликата нет, то машина спросит человека, нужно ли внести изменения на диске. Таким же образом машина страхует человека, если он собирается закончить работу в среде MS Works (no команде ВЫХОД ИЗ MS Works), не записав измененные старые или созданные новые документы на диске.
Кой-где забыли кресло на балконе,
не затворили рам...
Человеку приходится подходить к полке не только для того, чтобы что-то взять или что-то на нее положить, но и для того, чтобы навести на ней порядок: выкинуть устаревшие документы, другие переложить на новое место, что-то переименовать, приладить к полке новые отделения и т.д. Все это позволяет делать режим УПРАВЛЕНИЕ ФАЙЛАМИ..., превращающий среду MS Works в надстройку над дисковой операционной системой (см. 3/90). Говоря конкретнее, этот режим дает возможность, не выходя из среди MS Works, копировать, удалять, переименовывать файлы на дисках, создавать новые директории на дисках или удалять ненужные, форматировать гибкие диски, выставлять часы и календарь компьютера, если они показывают неточное время или дату. Как это делается, говорилось в вышеупомянутом рассказе про надстройки над дисковой операционной системой.
Режим ВЫПОЛНИТЬ ДРУГИЕ ПРОГРАММЫ... предназначен для временного выхода из среды MS Works в среду дисковой операционной системы (DOS), ежели необходимо "прогнать" какую-то программу, а потом вернуться к пакету MS Works по команде Exit. Например, с помощью текстового процессора вы оформляете расчетную записку и вам понадобилось что-то подсчитать по какой-то Бейсик-программе. Это делается просто: временно выходим в DOS, запускаем Бейсик-интерпретатор (файл с именем basica.exe), подгружаем нужную Бейсик-программу (команда Load), запускаем ее (команда Run), считываем результат, возвращаемся в среду DOS (команда System) и возвращаемся к прерванной работе над текстом в среде MSWorks (команда Exit).
Для окончательного же прощания с расцвеченным дисплеем пакета MS Works и возвращения к черному экрану среды DOS с единственной путеводной звездой "C:\WORKS>" служит команда Выход из Works:
Сквозь темноту наклонного паркета
уходит силуэт тропинкой света,
дверь закрывается, и - мрак.
Вернемся теперь к тому моменту, когда тотчас после вхождения в среду MS Works в верхней части экрана дисплея появились слова ФАЙЛ, СЕРВИС и СПРАВКА. Займемся вторым из них - СЕРВИС. Это полуиностранное, заманчивое, но плохо приживающееся на нашей почве понятие открывает путь к подстройке пакета под вкусы и привычки пользователя - например, к изменению ПАРАМЕТРОВ Works: единиц измерения размеров на дисплее или на бумаге принтера (сантиметры, дюймы, точки), числа строк на дисплее (25 или 43) и многого другого. Когда нужно, пользователь может включить КАЛЬКУЛЯТОР...(не будешь же в самом деле каждый раз вызывать Бейсик-интерпретатор), что-то подсчитать, а потом убрать изображение калькулятора на экране дисплея, нажав клавишу Esc.
БУДИЛЬНИК... Спящего человека будильник ЭВМ, конечно, не разбудит, а вот сидящему за клавиатурой машины очень даже пригодится. Всякий, кто сидел за нею, знает, что эта работа очень увлекательная, заставляющая забывать обо всем на свете. Но если впереди прием у начальника, то опаздывать, конечно, нельзя. Поэтому приходится либо нервно поглядывать на часы, либо... завести будильник компьютера: отдать цепочку команд СЕРВИС... и БУДИЛЬНИК.. Машина после этого запросит вид сообщения ("Пора закругляться и бежать в дирекцию"), время (14:10) и дату (6/10/90), когда его необходимо вывести на экран дисплея в особом окне поверх всей другой информации и сопроводить звуковым сигналом.
Можно запрограммировать много таких звонков будильника и спокойно работать на компьютере, зарабатывая себе репутацию пунктуального и обязательного человека. Одни напоминания выдаются ежедневно, другие только по рабочим дням, третьи - раз или два в месяц ("Не забудь сходить в кассу и получить зарплату, а то деньги уйдут на депонент!") и т.д.
(Людям, увлеченно работающим на компьютерах и забывающих при этом "мать родную", обязан своим появлением очень интересный компьютерный вирус под названием "five o'clock". Если ваш компьютер заразится им, то ежедневно в пять часов пополудни он будет прерывать работу музыкой, как бы призывая вас следовать хорошей английской традиции - попить чайку между обедом и ужином, избегая больших перерывов в еде, вредящих здоровью. Полезный вирус, не правда ли? В природе вирусы и бактерии тоже делятся на плохие и хорошие - одни заражают человека болезнями, другие сбраживают виноградный сок в вино, а молоко в кефир).
НАБРАТЬ НОМЕР... Типичное действие человека, чей рабочий стол иллюстрирует наш рассказ, - обзвонить людей, приглашаемых на совещание. Для этого с полки берут телефонный справочник, пододвигают поближе телефон, снимают трубку и начинается бесконечное накручивание диска аппарата. В среде MS Works такая работа делается более быстро и менее утомительно. Вызывается из архива нужная база данных - назовем ее "Телефонная книга" (команды ФАЙЛ... и ОТКРЫТЬ ФАЙЛ...), в ней курсорной рамкой отмечается нужный номер телефона и отдается команда НАБРАТЬ НОМЕР... После этого ЭВМ с помощью модема (ежели, конечно, он у вас имеется) наберет выбранный номер, соединит вас, а затем особым сигналом попросит поднести трубку к уху для разговора.
Последний шаг по строчке ФАЙЛ, СЕРВИС, СПРАВКА. Третье из этих слов, СПРАВКА... - это путеводитель по интегрированному пакету MS Works. Машина подскажет, как пользоваться справкой (позиция вспомогательного меню ИСПОЛЬЗОВАНИЕ), покажет на экране справочное оглавление (ОГЛАВЛЕНИЕ), даст справку о том, как запустить нужный режим (ВВЕДЕНИЕ), об особенностях работы с клавиатурой (КЛАВИАТУРА) и с мышкой (МЫШКА).
Однако в неясных случаях можно не обращаться к режиму СПРАВКА..., а просто нажать клавишу F1. Б среде MS Works, как и в других программных продуктах, функциональная клавиша F1 - это палочка-выручалочка. Обычно пользователю бывают не ясны те или иные короткие позиции меню, И если он перед выполнением какой-то команды нажмет клавишу F1, то ЭВМ выдаст на экран подробное описание этой команды.
Многие читатели, наверно, уже с удовлетворением отметили, что все позиции меню пакета MS Works выдаются на экран по-русски. На русский язык переведены и записаны на диск все комментарии - подсказки пользователю. Так что работать с этим пакетом человеку, не знающему английского языка, одно удовольствие. Перевели пакет MS Works на русский язык, сотрудники совместного советско-американского пед-приятия "Диалог" Дмитрий Бондаренко, Андрей Давыдов, Николай Любовный и Юрий Стариков. Существует, естественно, и оригинальный вариант пакета MS Works с английскими позициями меню и комментариями - любители могут пользоваться им.
Многооконная система работы с документами стала уже традиционной. При этом машина позволяет быстро перебрасывать информацию из одного окна в другое.
Теперь, как было обещано, расскажем о том, что такое электронные таблицы и базы данных и "с чем их едят" под соусом пакета MS Works. Как их создают, поговорим попозже, а пока посмотрим, как они выглядят. На рисунке: электронная таблица с именем SHEET1.WKS, база данных в виде таблицы (DATA2.WDB), та же база данных в традиционной форме, когда видна только одна запись (DATA1.WDB). Здесь же, в правой половине рисунка, помещен и некий безымянный текст. Он понадобится нам, когда мы станем рассказывать о текстовом процессоре пакета MS Works. Для этих четырех документов на дисплее открыто четыре окна, размеры и расположение которых пользователь по своему усмотрению может менять. В частности, сейчас машине отдана команда на перемещение окна с текстом при помощи клавиш "стрелочка вверх", "вниз", "вправо" и "влево" (см. строку в нижней части рисунка): предварительно было активизировано главное меню (см. строку в верхней части рисунка) и в нем выделена позиция ОКНО, а в вывалившемся вспомогательном меню - позиция ПЕРЕМЕСТИТЬ (здесь можно было бы выделить позицию РАЗМЕР, если бы требовалось изменить размер окна). Заканчивается операция перемещения окна (или изменения его размера) нажатием клавиши Enter. Перебрасывается курсор из одного окна в другое аккордом Ctrl-F6.
Поговорим о каждом из окон в отдельности. Начнем с правого, где помещен самый обычный текст. Создавать такие тексты, просматривать их, дописывать и редактировать можно с помощью текстового процессора. Чтобы его вызвать, надо сразу же после вхождения в среду MS Works навести курсорную рамку на слово ФАЙЛ, нажать клавишу Enter, в появившемся вспомогательном меню с помощью той же клавиши Enter выполнить команду СОЗДАТЬ ФАЙЛ, а в возникшей далее лесенке из трех строк таким же путем выполнить команду НОВЫЙ В ФОРМАТЕ ТЕКСТОВОГО ПРОЦЕССОРА. Вот теперь можно набирать текст на клавиатуре, если он создается впервые. Если же он уже есть на диске и записан там в формате текстового процессора, а вся работа над, текстом заключается в просмотре дополнении и редактировании, то следует лишь вызвать его. Для этого во вспомогательном меню надо навести курсорную рамку на строчку ОТКРЫТЬ ФАЙЛ - и дальше действовать так, как сказано выше. Формат вызванного текста служит залогом того, что компьютер будет далее работать в режиме текстового процессора.
Когда вызывается текстовый процессор, главное меню MS Works дополняется (читатель уже заметил, разглядывая рисунок) новыми названиями режимов: РЕДАКТИРОВАНИЕ, ПЕЧАТЬ, ВЫДЕЛИТЬ, ФОРМАТ и ОКНО. Они подсказывают пользователю, что можно делать с текстами.
(Забегая вперед, скажем, что в режимах работы с электронными таблицами и базами данных в этой строке появляется еще и слово ПРОСМОТР).
Текстовый процессор среды MS Works сможет удовлетворить самых капризных пользователей ЭВМ - тех, которым персональный компьютер служит интеллектуальной пишущей машинкой. Там, в частности, есть система WYSIWYG (визивиг - What You See Is What You Get - что ты видишь, то ты и получишь), о которой мы уже писали (7/90), позволяющая просмотреть на экране дисплея текст в виде рисунка и увидеть расположение заголовков, полей, абзацев и других элементов на страницах, не гоняя понапрасну принтер.
Есть в текстовом процессоре дружественная человеку команда ОТМЕНА (по-английски Undo), отменяющая действие предыдущей ошибочно отданной команды. Стерли, к примеру, целую страницу только что в муках творчества набранного текста, а потом в досаде стукнули себя по лбу, поняв, что этого бы делать не стоило. Не беда: отдали команду РЕДАКТИРОВАНИЕ - ОТМЕНА, и текст моментально восстановлен: машина "не сжигает за человеком мостов", оставляя ему путь к отступлению.
В набранном тексте можно исправить орфографические ошибки, отдав команды СЕРВИС, ПРОВЕРКА ОРФОГРАФИИ.... Вряд ли кто из читателей заметил ошибку в правой половине только что обсуждавшегося рисунка ("текствого" вместо "текстового"). Машина же, если ее об этом попросить, ошибку найдет в два счета, сравнив слова текста со словарем и предложив человеку похожие по написанию слова для замены неправильного.
После того, как в работу включен текстовый процессор, увеличивается не только число слов в главном меню, но и число позиций во вспомогательных меню. Так, во вспомогательном меню СЕРВИС, помимо слов ПАРАМЕТРЫ Works..., КАЛЬКУЛЯТОР.... БУДИЛЬНИК... и НАБРАТЬ НОМЕР.., после вызова текстового процессора появятся новые слова-команды: ЛИНЕЙКА (включение и выключение специальной линейки в верхней части текста с метками табуляции, красной строки, начала и конца текста), ПОКАЗАТЬ ВСЕ СИМВОЛЫ (высвечивание на дисплее невидимых символов перевода строки, лишних пробелов, выравнивающих правый край текста и др.), ПОКАЗАТЬ ВСЕ СНОСКИ, ВМЕСТИТЬ В ЭКРАН, ЗАМЕНА ВЫДЕЛЕННОГО, ПРОВЕРКА ОРФОГРАФИИ и ПЕРЕНУМЕРАЦИЯ СТРОК. Обо всех этих режимах мы рассказывать не будем, интригуя читателя - пусть он освоит их сам, благо освоить их нетрудно. Заметим попутно: меню пакета MS Works очень гибкое, если чего-то в данный момент выполнить нельзя, то соответствующая команда в меню и не присутствует - чтобы не путалась под ногами.
Электронная таблица. Часто ее называют на английский манер - спредшит (английское spreadsheet образовано от to spread - распространяться и a sheet - лист бумаги). Такая таблица в отличие от простого текста разбита не только на строки, но и на колонки (см. окно с названием SHEET1.WKS), на пересечении которых расположены ячейки. Строки электронной таблицы нумеруются числами (1, 2, 3 и т.д.), а колонки - латинскими буквами (А, В, С.....Z, АА, АВ, и т.д., на сколько хватит места в памяти машины).
Эти разметочные символы появляются н« экране дисплея тотчас же, как компьютер переводится в режим работы с электронными таблицами. Делается это почти так же, как при подготовке к работе в режиме текстового процессора - см. рисунок. Только на сей раз в окне, расположенном на этом рисунке в правом нижнем углу, надо нанести курсорную рамку на строчку НОВЫЙ В ФОРМАТЕ ЭЛЕКТРОННЫХ ТАБЛИЦ и нажать клавишу Enter. Тогда и возникнет на экране дисплея заготовка будущей таблицы с цифрами по левому краю, с буквами - по верхнему и со стандартным заголовком вверху: SHEET, далее цифра (1, если строится первая таблица, 2, 3 и т.д., если строятся дальнейшие) и расширение WKS. Можно изменить номер таблицы или ее имя по своему усмотрению. Надо лишь припомнить, нет ли таблицы с таким именем в архивной памяти машины. Иначе, если уже созданную таблицу придется отправлять туда, машина выдаст на экран дисплея протестующее заявление: Стоп! Таблица с таким именем уже есть на диске!
(Кстати, удобнее бывает не строить таблицу заново, а вызвать из архивной памяти уже имеющуюся там и отредактировать ее так, как будет описано ниже).
В ячейки электронной таблицы можно записывать не только какой-то текст или числа (это можно сделать и с помощью обычного текстового процессора), но и формулы, приказывающие машине взять, например, числа из ячеек В2 (пересечение второй колонки со второй строкой), В3 (вторая колонка и третья строка) и В4 (вторая колонка и четвертая строка), сложить их, а ответ вывести на дисплей в ячейку, куда эта формула была записана при проектировании таблицы (у нас это ячейка В5). Машина поймет, что в ячейку В5 записывается формула, а не цепочка литер "B2+B3+D4", если ее предварить знаком равно: =B2+B3+B4. После нажатия клавиши Enter в ячейке В5 появится число - соответствующая сумма. Для обработки серий чисел, расположенных радом (как в нашем примере - в ячейках В2, В3, В4) в электронных таблицах предусмотрены специальные встроенные функции подсчета суммы, среднего, определения минимального и максимального числа. Так например, в нашу ячейку В5 можно записать не =В2+В3+В4, а формулу =СУММ(В2:В4) - возьми все числа столбца В от 2-й до 4-й строки и сложи их, если в этом интервале окажутся ячейки с нечисловой информацией (пустая или с цепочкой букв), то проигнорируй их.
Так можно заполнить всю электронную таблицу исходными данными и формулами для их обработки. И если при очередном использовании таблицы исходные данные будут изменены, то моментально изменятся выходные данные - результаты расчетов по этим формулам.
Электронная таблица внешне отличается от простого текста еще и тем, что перемещение курсора в горизонтальном направлении ведется не побайтно от позиции к позиции, а скачками из одной ячейки в соседнюю; при этом расцвечивается вся ячейка целиком.
Чтобы отредактировать содержимое ячейки, которую в данный момент отмечает курсор, нужно вначале нажать клавишу F2. После этого находившаяся в ячейке цепочка символов, число или формула выносится в специальную строку, расположенную под главным меню. Эту строчку можно подправить и после нажатия клавиши Enter вернуть исправленное в прежнюю ячейку.
Еще раз напоминаем: человек предупреждает машину о том, что он вводит формулу, а не число или слова тем, что предваряет ее знаком "равно": =SIN(Z123) - подсчет синуса числа (в радианах), хранящегося на 123-й строке 26-го столбца, =LOG(A4) - подсчет десятичного логарифма, =M1N(A1:G2O) - поиск минимального числа среди хранящихся в прямоугольной области таблицы с углами Al, A20, G1 и G20.
По умолчанию машина при создании новой таблицы делает все столбцы одинаковой ширины в 10 позиций. Если это составителя таблицы не устраивает (текст или число не умещаются в таком прокрустовом ложе или же, наоборот, таблицу нужно сделать более компактной, отведя под ячейки ровно столько, сколько нужно), то пользователь может изменить ширину столбца. Для этого следует переместить на одну из ячеек расширяемого (сужаемого) столбца курсорную рамку к отдать цепочку команд ФОРМАТ - ШИРИНА СТОЛБЦА... Машина запросит новое значение ширины столбца (допустимо от 0 до 79 позиций) и после нажатия клавиши Enter сделает то, что от нее попросили.
Машина также предоставляет возможность вставлять в таблицу новые строки и столбцы, раздвигая старые по цепочке команд РЕДАКТИРОВАНИЕ - ВСТАВИТЬ СТРОКУ/СТОЛБЕЦ. Новая строка (столбец) появится выше (левее) "окурсоренной" ячейки. Строка или столбец будут при необходимости удалены по команде РЕДАКТИРОВАНИЕ - УДАЛИТЬ СТРОКУ/СТОЛБЕЦ.
Самое интересное в командах вставки и удаления строк и столбцов, без чего было бы невозможно эти команды использовать, заключается в том, что во введенных формулах адресация на ячейки, содержащие аргументы формул, не нарушается при сдвиге столбцов и строк. Так, если бы мы захотели дополнить нашу таблицу данными по зарплате Петухова, мы должны были бы над Сидоровым вставить новую строку (ФОРМАТ - ВСТАВИТЬ СТРОКУ/СТОЛБЕЦ - см. выше). После такой операции формула =СУММ(В2:В4) автоматически заменится на =СУММ(В2:В5), и Сидоров из подсчетов не выпадет.
Такое же "умное" переиначивание формул происходит и при их копировании: формулу =СУММ(В2:В4) достаточно ввести только в ячейку В5, в остальные же ячейки (находившиеся в столбцах С, D и т.д.) можно направить ее копии. Для этого надо сначала навести кypcopную рамку на ячейку, где находится копируемая формула (в нашем примере - на ячейку В5), далее пройтись по командам РЕДАКТИРОВАНИЕ и КОПИРОВАТЬ, затем перенести курсорную рамку в ту ячейку, где желательно получить копию (скажем, в ячейку С5), нажать клавишу Enter - и желаемая копия появится там. Но вглядитесь: там записано не =СУММ(В2:В4), там стоит =СУММ(С2:С4). Машина сама произвела необходимую смену символов.
Разговор о пакете MS WORKS будет закончен на следующем занятии "Школы". А это завершим справкой.
На предыдущем занятии нашей "Школы" мы договорились о том, что программы друг у друга "пиратским" способом переписывать нельзя, а нужно обращаться к их разработчикам. В связи с этим, сообщаем пользователям ЭВМ, что в Москве открывается представительство фирмы Microsoft, это, наверняка, упростит приобретение современных, популярных программных средств для персональных компьютеров.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
2/91
МикроЭВМ "Поиск" с цветным монитором "Электроника 6106", двумя блоками расширения памяти (по 256 Кбайт) и кассетным магнитофоном "Электроника 302". В таком комплекте компьютер обладает памятью 640 Кбайт и при наличии специальной программы совместим с персональным компьютером IBM PC.
УДАЧНЫЙ "ПОИСК
Впервые в нашей стране всего за 1000 рублей можно приобрести микроЭВМ, совместимую по системе команд с известным американским компьютером IBM PC. Впервые появилась возможность наращивать мощность этого компьютера, приобретая различные вспомогательные блоки. Слово "впервые" еще встретится в статье про "Поиск" - так называется компьютер, разработанный киевским НПО "Электронмаш".
Инженер А.БОЙКО
Компьютером для дома, в том числе и сравнительно недорогим по теперешним ценам, уже никого не удивишь. Практически в любом фирменном магазине-салоне "Электроника" или "Радиотехника" можно увидеть "Электронику БК-0010" или "Микрошу", "Апогей" или "Кристу", "Суру" или "Львов ПК-01".
Число различных бытовых компьютеров перевалило за три десятка, однако разнообразие это кажущееся. Совсем недавно едва ли не все такие машины можно было разделить на три основных типа. К первому относятся "синклероподобные", то есть микроЭВМ на основе зарубежного 8-разрядного процессора Z80, построенные "по мотивам" популярного несколько лет назад на западе домашнего компьютера "Sinclair ZX Spectrum". Второй класс составляют микроЭВМ, появившиеся в результате многочисленных попыток создать мало-мальски приемлемый по возможностям и цене бытовой компьютер на основе одного из самых доступных и дешевых отечественных 8-разрядных микропроцессоров КР580ВМ80 (это "Микроша", "РК-86", "Криста" и другие). К третьему классу, безусловно, следовало бы отнести семейство "Электроника БК" на 16-разрядных микропроцессорах К1801ВМ1.
Если отечественные "синклеры" популярны прежде всего благодаря многим сотням игровых программ, попадающих к нам с запада пиратским способом, то для "Электроники БК", практически несовместимой ни с одним иностранным компьютером, наши программисты-любители создали более 3000 программ, среди которых есть весьма интересные и вполне профессиональные разработки. Семейство микроЭВМ на основе процессора КР580ИК80 отличается самой низкой стоимостью - цена конструктора, позволяющего самостоятельно собрать такую микроЭВМ в домашних условиях, ниже 500 рублей.
Неизвестно, как шло бы "соревнование" между различными моделями, если бы а 1990 году не появился конкурент, способный изменить всю ситуацию на компьютерном рынке нашей страны.
ОТ ИДЕИ ДО РЕЗУЛЬТАТА
Подготовка к этому событию началась в киевском производственном объединении "Электронмаш" еще в 1987 году. Было решено создать компьютер на основе только отечественных микросхем, но такой, который был бы совместим с персональным компьютером IBM PC, ставшим еще в начале 60-х годов своего рода мировым стандартом.
Под совместимостью в данном случае следует понимать то, что программы, предназначенные для IВM PC, должны без каких-либо изменений выполняться на новой машине. Кроме того, машины должны быть эквивалентными по своим функциональным возможностям. Обычно под совместимостью понимают еще и аппаратную идентичность, то есть аналогичное устройство компьютеров, но от этого сразу же пришлось отказаться, поскольку тогда все свелось бы к попытке повторить IBM на отечественных микросхемах. О том, что из этого выходит, могут рассказать обладатели, например, ЕС 1840, да и цена такой машины превышала бы 10 тысяч рублей.
Именно поэтому у разработчиков не было никакого конкретного прототипа, причем задачу усложняло еще и то, что машина в итоге должна была получиться простой, дешевой и надежной, но в то же время допускающей возможность дальнейшего развития.
Если спросить специалиста-электронщика, он скажет, что многие функции в IBM PC реализованы аппаратно. Это означает, что в машине есть специальные узлы, каждый из которых служит для реализации вполне определенной функции, например, для обслуживания клавиатуры или дисплея. В то же время, с некоторыми из этих функций мог бы справиться и центральный процессор, если только снабдить его специальными программами. В этом случае программа как бы заменяет некоторые микросхемы, упрощается электронная начинка машины, а значит, снижается ее стоимость и повышается надежность. За все приходится платить,- в этом случае платой является уменьшение быстродействия машины.
Киевлянам удалось создать достаточно компактную машину, всего на 78 микросхемах. При конструировании использовано несколько оригинальных решений, например, в подключении клавиатуры. Если в IBM в клавиатуре работает специальный процессор, кстати, достаточно дорогой в СССР, то здесь клавиатура состоит из обычных кнопок, соединенных в матрицу, которые обслуживает, или, говоря техническим языком, сканирует 20 раз в секунду основной процессор. Экономия настолько существенна, что вся микроЭВМ "Поиск" стоит меньше, чем одна только клавиатура "Электроники ЕС-1840", нашего аналога IBM PC. В IBM выводом информации на экран занимается специальный микропроцессор - графический видеоконтроллер. Аналогичной отечественной микросхемы еще не существовало, когда шли разработки "Поиска", поэтому, чтобы обойтись без зарубежных микросхем, пришлось имитировать контроллер на логических элементах. Разработанная схема позволила разместить весь компьютер на одной электронной плате, причем не на многослойной, а на обычной, двухсторонней, а в итоге машина получилась технологичной и легкой в ремонте.
В 1989 году началось серийное производство - было сделано несколько сотен машин. В 1990 году выпуск стал массовым, и к концу года появилось около 10 тысяч машин. В 1991 году в объединении планируют изготовить 50 тысяч машин, примерно по 4000 в месяц,- для этого уже создано необходимое технологическое оборудование.
С ПРИЦЕЛОМ НА БУДУЩЕЕ
Казалось бы, чего еще желать? Такой машине, как "Поиск" гарантирован прекрасный сбыт, она, как говорится, обречена на успех. Однако киевляне хотели воплотить в "Поиске" еще одну задумку - сделать компьютер, пригодный для дальнейшего развития, подходящий для самых разнообразных применений. Для этого разработчики реализовали так называемый модульный подход, о котором так долго мечтали на страницах журнала "Наука и жизнь" поклонники программируемых калькуляторов. Что это значит?
Для того, кто приобретает Компьютер для электронных игр или для серьезного знакомства с языком программирования Бейсик, возможностей "Поиска" вполне хватает. Но чтобы, например, работать с длинными текстами или синтезировать музыку или речь, требуются дополнительные устройства.
В "Поиске" предусмотрено четыре свободных разъема, в каждый из которых можно вставить дополнительный модуль - пластмассовую коробочку с электронной начинкой. По расчетам разработчиков, четырех модулей достаточно для того, чтобы создать на основе "Поиска" так называемый проблемно-ориентированный комплекс. В то же время такой комплекс за несколько минут можно перестроить для решения совершенно других задач.
Все модули - это самостоятельные изделия, которые по мере надобности можно приобретать отдельно от машины. Сейчас разработано уже более десяти различных модулей, многие из которых можно приобрести, а на "Электронмаше" работают над их совершенствованием. Например, если первые блоки для расширения памяти вмещали по 256 Кбайт, то новый модуль позволяет добавить к памяти ЭВМ сразу 512 Кбайт и еще позволяет подключить к ЭВМ печатающее устройство.
ПЕРИФЕРИЯ НА ЛЮБОЙ ВКУС
Какими разнообразными ни были бы модули, "Поиск" нельзя сравнивать с "настоящей" IBM, пока компьютер не получит набор периферийных устройств, и прежде всего печатающее устройство - принтер. Именно поэтому первые сто машин были направлены в различные организации и предприятия партнерам "Электронмаша", чтобы они сразу же могли заниматься разработкой периферии и программного обеспечения.
Вот краткие итоги: уже в этом году начинается выпуск так называемых, струйных принтеров для "Поиска". В них используется одноразовая печатающая головка - своего рода чернильница, из которой под воздействием управляющих электросигналов чернила разбрызгиваются мельчайшими капельками, создавая на обычном бумажном листе текст или картинку, по качеству не уступающую той, что дают традиционные (мозаичные) принтеры.
К "Поиску" в качестве дисплея можно подключить практически любой цветной телевизор (кроме ламповых). Чтобы не ухудшать качество картинки, телевизор приходится немного дорабатывать, устанавливая блок сопряжения. Еще лучше картинка будет, если воспользоваться цветным монитором, например, из тех, что продаются в московском магазине "Электроника" (для игр подойдет монитор на основе портативного цветного телевизора, а для работы с текстами и графикой желательно использовать более дорогие модели).
Магнитофон, на работу с которым рассчитан "Поиск", не самое удобное устройство для хранения информации: и работает слишком медленно, и надежность хранения информации не очень высокая, да и найти нужную программу на ленте, особенно, если магнитофон без счетчика, весьма непросто. Другое дело - накопитель на магнитных дисках, дисковод. Уже с 1990 года выпускаются модули-адаптеры для подключения к "Поиску" дисководов. Такое устройство, работая с "Поиском", позволяет хранить на дискете размером 5.25 дюймов до 720 Кбайт информации. В то же время на предприятии завершается разработка дисководов, которые будут работать с дискетами в 3.5 дюйма. Формат записи, что особенно важно, полностью совместим с IBM, то есть дискету, записанную на "Поиске", можно прочитать на IBM и наоборот.
Еще одно периферийное устройство для "Поиска" - графопостроитель, своего рода электронный чертежник, который способен рисовать трехцветные чертежи на листах форматом A3. Графопостроитель - роликового типа, то есть компьютер управляет перемещениями пишущего узла влево-вправо, его подъемом и опусканием, а также движением бумажного листа вперед и назад. Опущенный вниз пишущий узел оставляет на бумаге горизонтальную линию при перемещении влево или вправо (при этом бумага неподвижна) и вертикальную линию - при вращении ролика (здесь неподвижен пишущий узел, мимо которого двигается бумага). При этом скорость рисования прямой линии достигает 200мм в секунду. Выпуск графопостроителя намечен на 1991 год, на первых порах это устройство, по-видимому, будет направлено в сферу образования.
"ПОИСК" - IBM ДЛЯ ШКОЛЬНИКОВ
На базе "Поиска" разработан учебный класс для школ. Это шестнадцать или восемь рабочих мест, на каждом из которых установлен компьютер с памятью 384 Кбайт. Все компьютеры объединены в локальную сеть, включающую также рабочее место учителя, где работает "Поиск" с памятью 640 Кбайт, двумя дисководами, цветным монитором, принтером и, возможно, графопостроителем.
Такое соединение машин позволяет учителю в любой момент загрузить одновременно во все компьютеры ту или иную программу. В компьютерном классе можно использовать многие программы, предназначенные для IBM, но кроме того в "Электронмаше" разрабатывают специальные учебные программы, не только по курсу информатики и вычислительной техники, но и по основным школьным предметам - математике, физике.
Здесь киевляне также использовали комплексный подход - продуманы не только детали электронного оснащения, но также разработана специальная мебель, высота которой регулируется в зависимости от того, какого возраста ребята будут работать с компьютерами. Все оборудование компьютерного класса устанавливают представители производственного объединения "Электронмаш". Сдав работу "под ключ", специалисты также берут технику на обслуживание.
ЗА ПОЛ-ШАГА ДО IBM
Что же входит в комплект "Поиска", который можно приобрести за 1000 рублей? Поскольку автору удалось в течение недели поработать с новой машиной, краткое описание будет дополнено личными впечатлениями.
Основной блок, то есть сам компьютер, легкий, достаточно компактный особо отмечу, что толщина "Поиска" такая же, как у стандартной клавиатуры персонального компьютера. Клавиши работают четко, без дребезга. Нажатия клавиш подтверждаются легкими щелчками встроенного громкоговорителя. На цветном дисплее "Электроника 6106" (30см по диагонали) картинка прямоугольная и очень четкая, буквы даже в режиме 60 символов в строке читаются прекрасно.
Кассета с записью трех программ, вложенная в коробку с "Поиском", успешно считывается с помощью видавшей виды "Электроники 302". Одна из программ - это Бейсик, весьма напоминающий известный Basic фирмы Microsoft. Две другие служат для проверки компьютера, причем та, что называется TEST, при известном умении позволяет вводить в "Поиск" программу в машинных кодах и запускать ее, а также читать содержимое памяти, в том числе и постоянного запоминающего устройства с базовыми внутренними программами.
Блок питания весьма компактен, но нужно быть внимательным и случайно не накрыть его каким-либо посторонним предметом, иначе блок может выйти из строя из-за перегрева.
Основной недостаток базового комплекта "Поиска" в том, что этот комплект нельзя считать IBM-совместимым. Дело в том, что в базовый комплект не входят несколько служебных программ, известных, как операционная система.
Достаточно подключить к "Поиску" адаптер дисковода и поставить в дисковод дискету со стандартной операционной системой,- "Поиск" станет IBM-совместимым. Без этого о "Поиске" можно сказать, что он лишь пополнил семейство из тридцати разнообразных, нестыкующихся друг с другом бытовых компьютеров.
Правда, опытный программист сумеет написать программу, которая позволит имитировать наличие в "Поиске" операционной системы, то есть позволит запускать на нем некоторые программы, предназначенные для IBM.
В любом случае - машина стоящая, и если бы автору предложили на выбор любой из известных ему советских бытовых компьютеров, выбор был бы сделан в пользу "Поиска".
"ПОИСК". ОСНОВНЫЕ ДАННЫЕ
Процессор - КМ1810ВМ88 (8 разрядов данных, 20 разрядов адреса).
Быстродействие - 1.25 миллионов операций в секунду.
Объем памяти - 128 Кбайт оперативной, 8 Кбайт постоянной.
Графический адаптер CGA - 25 строк по 40 символов или 320*200 точек, четыре цвета из шестнадцати; 25 строк по 80 символов, 640*200 точек, два цвета из шестнадцати.
Клавиатура - 88 клавиш.
Масса - 3кг.
"ПОИСК". МОДУЛИ-РАСШИРЕНИЯ
Игровой адаптер (для подключения двух джойстиков).
Расширитель ПЗУ (картридж) 8-64 Кбайт.
Адаптеры интерфейсные (параллельный, последовательный и интерфейс "мыши").
Расширители ОЗУ 256 Кбайт и 512 Кбайт.
Адаптер дисковода (1 или 2 любых дисковода).
Адаптер винчестера (20 или 40 Мбайт).
Звуковой синтезатор (синтезатор речи, 2-голосый речевой синтезатор, синтезатор звуковых ударных инструментов, интерфейс MIDI).
Адаптер локальной сети.
Полный комплект оборудования, разработанного для "Поиска". С помощью различных адаптеров можно значительно расширить возможности микроЭВМ, настроить ее на решение тех или иных конкретных задач.
"КОНТАКТ": НОВЫЕ СЕКЦИИ
Клуб "Контакт", созданный при редакции в 1987 году, продолжает свою работу. Его услугами воспользовалось уже около 3000 владельцев компьютеров. За это время несколько раз расширялось число составляющих его секций, вот их сегодняшний список: БК-0010, БК-0011, Микроша, Синклер, Atari, Commodore, Немига, Криста, РК-86, Апогей, ПК-01 Львов, Специалист, Вектор, Ямаха.
Сообщаем также об открытии новой секции - "Поиск". Напоминаем, что для вступления в клуб достаточно прислать заявку с просьбой сообщить два адреса корреспондентов, обладающих аналогичным компьютером. Клуб "Контакт" не занимается тиражированием программ ни для каких компьютеров.
ГДЕ КУПИТЬ "ПОИСК"?
Отвечать на вопрос "где можно купить..." сегодня трудно. Дефицит, талоны, визитки и тому подобное оставляют возможность только советовать. В конце 1990 года, когда готовилась эта статья, "Поиск" и некоторые из модулей можно было купить в киевском магазине-салоне "Электрон" и центральном универмаге. По безналичному расчету "Поиск" продается со складов ПО "Электронмаш". В то же время, большая часть компьютеров, по-видимому, будет направлена в школы в составе учебных классов.
Игровой комплект рассчитан на работу с кассетным магнитофоном, который в этом случае служит для хранения программ.
Рабочее место редактора на основе микро ЭВМ "Поиск" позволяет набирать текст, редактировать и записывать его на дискету.
МикроЭВМ "Поиск" с цветным монитором "Электроника 6106", двумя блоками расширения памяти (по 256 Кбайт) и кассетным магнитофоном "Электроника 302". В таком комплекте компьютер обладает памятью 640 Кбайт и при наличии специальной программы совместим с персональным компьютером IBM PC.
УДАЧНЫЙ "ПОИСК
Впервые в нашей стране всего за 1000 рублей можно приобрести микроЭВМ, совместимую по системе команд с известным американским компьютером IBM PC. Впервые появилась возможность наращивать мощность этого компьютера, приобретая различные вспомогательные блоки. Слово "впервые" еще встретится в статье про "Поиск" - так называется компьютер, разработанный киевским НПО "Электронмаш".
Инженер А.БОЙКО
Компьютером для дома, в том числе и сравнительно недорогим по теперешним ценам, уже никого не удивишь. Практически в любом фирменном магазине-салоне "Электроника" или "Радиотехника" можно увидеть "Электронику БК-0010" или "Микрошу", "Апогей" или "Кристу", "Суру" или "Львов ПК-01".
Число различных бытовых компьютеров перевалило за три десятка, однако разнообразие это кажущееся. Совсем недавно едва ли не все такие машины можно было разделить на три основных типа. К первому относятся "синклероподобные", то есть микроЭВМ на основе зарубежного 8-разрядного процессора Z80, построенные "по мотивам" популярного несколько лет назад на западе домашнего компьютера "Sinclair ZX Spectrum". Второй класс составляют микроЭВМ, появившиеся в результате многочисленных попыток создать мало-мальски приемлемый по возможностям и цене бытовой компьютер на основе одного из самых доступных и дешевых отечественных 8-разрядных микропроцессоров КР580ВМ80 (это "Микроша", "РК-86", "Криста" и другие). К третьему классу, безусловно, следовало бы отнести семейство "Электроника БК" на 16-разрядных микропроцессорах К1801ВМ1.
Если отечественные "синклеры" популярны прежде всего благодаря многим сотням игровых программ, попадающих к нам с запада пиратским способом, то для "Электроники БК", практически несовместимой ни с одним иностранным компьютером, наши программисты-любители создали более 3000 программ, среди которых есть весьма интересные и вполне профессиональные разработки. Семейство микроЭВМ на основе процессора КР580ИК80 отличается самой низкой стоимостью - цена конструктора, позволяющего самостоятельно собрать такую микроЭВМ в домашних условиях, ниже 500 рублей.
Неизвестно, как шло бы "соревнование" между различными моделями, если бы а 1990 году не появился конкурент, способный изменить всю ситуацию на компьютерном рынке нашей страны.
ОТ ИДЕИ ДО РЕЗУЛЬТАТА
Подготовка к этому событию началась в киевском производственном объединении "Электронмаш" еще в 1987 году. Было решено создать компьютер на основе только отечественных микросхем, но такой, который был бы совместим с персональным компьютером IBM PC, ставшим еще в начале 60-х годов своего рода мировым стандартом.
Под совместимостью в данном случае следует понимать то, что программы, предназначенные для IВM PC, должны без каких-либо изменений выполняться на новой машине. Кроме того, машины должны быть эквивалентными по своим функциональным возможностям. Обычно под совместимостью понимают еще и аппаратную идентичность, то есть аналогичное устройство компьютеров, но от этого сразу же пришлось отказаться, поскольку тогда все свелось бы к попытке повторить IBM на отечественных микросхемах. О том, что из этого выходит, могут рассказать обладатели, например, ЕС 1840, да и цена такой машины превышала бы 10 тысяч рублей.
Именно поэтому у разработчиков не было никакого конкретного прототипа, причем задачу усложняло еще и то, что машина в итоге должна была получиться простой, дешевой и надежной, но в то же время допускающей возможность дальнейшего развития.
Если спросить специалиста-электронщика, он скажет, что многие функции в IBM PC реализованы аппаратно. Это означает, что в машине есть специальные узлы, каждый из которых служит для реализации вполне определенной функции, например, для обслуживания клавиатуры или дисплея. В то же время, с некоторыми из этих функций мог бы справиться и центральный процессор, если только снабдить его специальными программами. В этом случае программа как бы заменяет некоторые микросхемы, упрощается электронная начинка машины, а значит, снижается ее стоимость и повышается надежность. За все приходится платить,- в этом случае платой является уменьшение быстродействия машины.
Киевлянам удалось создать достаточно компактную машину, всего на 78 микросхемах. При конструировании использовано несколько оригинальных решений, например, в подключении клавиатуры. Если в IBM в клавиатуре работает специальный процессор, кстати, достаточно дорогой в СССР, то здесь клавиатура состоит из обычных кнопок, соединенных в матрицу, которые обслуживает, или, говоря техническим языком, сканирует 20 раз в секунду основной процессор. Экономия настолько существенна, что вся микроЭВМ "Поиск" стоит меньше, чем одна только клавиатура "Электроники ЕС-1840", нашего аналога IBM PC. В IBM выводом информации на экран занимается специальный микропроцессор - графический видеоконтроллер. Аналогичной отечественной микросхемы еще не существовало, когда шли разработки "Поиска", поэтому, чтобы обойтись без зарубежных микросхем, пришлось имитировать контроллер на логических элементах. Разработанная схема позволила разместить весь компьютер на одной электронной плате, причем не на многослойной, а на обычной, двухсторонней, а в итоге машина получилась технологичной и легкой в ремонте.
В 1989 году началось серийное производство - было сделано несколько сотен машин. В 1990 году выпуск стал массовым, и к концу года появилось около 10 тысяч машин. В 1991 году в объединении планируют изготовить 50 тысяч машин, примерно по 4000 в месяц,- для этого уже создано необходимое технологическое оборудование.
С ПРИЦЕЛОМ НА БУДУЩЕЕ
Казалось бы, чего еще желать? Такой машине, как "Поиск" гарантирован прекрасный сбыт, она, как говорится, обречена на успех. Однако киевляне хотели воплотить в "Поиске" еще одну задумку - сделать компьютер, пригодный для дальнейшего развития, подходящий для самых разнообразных применений. Для этого разработчики реализовали так называемый модульный подход, о котором так долго мечтали на страницах журнала "Наука и жизнь" поклонники программируемых калькуляторов. Что это значит?
Для того, кто приобретает Компьютер для электронных игр или для серьезного знакомства с языком программирования Бейсик, возможностей "Поиска" вполне хватает. Но чтобы, например, работать с длинными текстами или синтезировать музыку или речь, требуются дополнительные устройства.
В "Поиске" предусмотрено четыре свободных разъема, в каждый из которых можно вставить дополнительный модуль - пластмассовую коробочку с электронной начинкой. По расчетам разработчиков, четырех модулей достаточно для того, чтобы создать на основе "Поиска" так называемый проблемно-ориентированный комплекс. В то же время такой комплекс за несколько минут можно перестроить для решения совершенно других задач.
Все модули - это самостоятельные изделия, которые по мере надобности можно приобретать отдельно от машины. Сейчас разработано уже более десяти различных модулей, многие из которых можно приобрести, а на "Электронмаше" работают над их совершенствованием. Например, если первые блоки для расширения памяти вмещали по 256 Кбайт, то новый модуль позволяет добавить к памяти ЭВМ сразу 512 Кбайт и еще позволяет подключить к ЭВМ печатающее устройство.
ПЕРИФЕРИЯ НА ЛЮБОЙ ВКУС
Какими разнообразными ни были бы модули, "Поиск" нельзя сравнивать с "настоящей" IBM, пока компьютер не получит набор периферийных устройств, и прежде всего печатающее устройство - принтер. Именно поэтому первые сто машин были направлены в различные организации и предприятия партнерам "Электронмаша", чтобы они сразу же могли заниматься разработкой периферии и программного обеспечения.
Вот краткие итоги: уже в этом году начинается выпуск так называемых, струйных принтеров для "Поиска". В них используется одноразовая печатающая головка - своего рода чернильница, из которой под воздействием управляющих электросигналов чернила разбрызгиваются мельчайшими капельками, создавая на обычном бумажном листе текст или картинку, по качеству не уступающую той, что дают традиционные (мозаичные) принтеры.
К "Поиску" в качестве дисплея можно подключить практически любой цветной телевизор (кроме ламповых). Чтобы не ухудшать качество картинки, телевизор приходится немного дорабатывать, устанавливая блок сопряжения. Еще лучше картинка будет, если воспользоваться цветным монитором, например, из тех, что продаются в московском магазине "Электроника" (для игр подойдет монитор на основе портативного цветного телевизора, а для работы с текстами и графикой желательно использовать более дорогие модели).
Магнитофон, на работу с которым рассчитан "Поиск", не самое удобное устройство для хранения информации: и работает слишком медленно, и надежность хранения информации не очень высокая, да и найти нужную программу на ленте, особенно, если магнитофон без счетчика, весьма непросто. Другое дело - накопитель на магнитных дисках, дисковод. Уже с 1990 года выпускаются модули-адаптеры для подключения к "Поиску" дисководов. Такое устройство, работая с "Поиском", позволяет хранить на дискете размером 5.25 дюймов до 720 Кбайт информации. В то же время на предприятии завершается разработка дисководов, которые будут работать с дискетами в 3.5 дюйма. Формат записи, что особенно важно, полностью совместим с IBM, то есть дискету, записанную на "Поиске", можно прочитать на IBM и наоборот.
Еще одно периферийное устройство для "Поиска" - графопостроитель, своего рода электронный чертежник, который способен рисовать трехцветные чертежи на листах форматом A3. Графопостроитель - роликового типа, то есть компьютер управляет перемещениями пишущего узла влево-вправо, его подъемом и опусканием, а также движением бумажного листа вперед и назад. Опущенный вниз пишущий узел оставляет на бумаге горизонтальную линию при перемещении влево или вправо (при этом бумага неподвижна) и вертикальную линию - при вращении ролика (здесь неподвижен пишущий узел, мимо которого двигается бумага). При этом скорость рисования прямой линии достигает 200мм в секунду. Выпуск графопостроителя намечен на 1991 год, на первых порах это устройство, по-видимому, будет направлено в сферу образования.
"ПОИСК" - IBM ДЛЯ ШКОЛЬНИКОВ
На базе "Поиска" разработан учебный класс для школ. Это шестнадцать или восемь рабочих мест, на каждом из которых установлен компьютер с памятью 384 Кбайт. Все компьютеры объединены в локальную сеть, включающую также рабочее место учителя, где работает "Поиск" с памятью 640 Кбайт, двумя дисководами, цветным монитором, принтером и, возможно, графопостроителем.
Такое соединение машин позволяет учителю в любой момент загрузить одновременно во все компьютеры ту или иную программу. В компьютерном классе можно использовать многие программы, предназначенные для IBM, но кроме того в "Электронмаше" разрабатывают специальные учебные программы, не только по курсу информатики и вычислительной техники, но и по основным школьным предметам - математике, физике.
Здесь киевляне также использовали комплексный подход - продуманы не только детали электронного оснащения, но также разработана специальная мебель, высота которой регулируется в зависимости от того, какого возраста ребята будут работать с компьютерами. Все оборудование компьютерного класса устанавливают представители производственного объединения "Электронмаш". Сдав работу "под ключ", специалисты также берут технику на обслуживание.
ЗА ПОЛ-ШАГА ДО IBM
Что же входит в комплект "Поиска", который можно приобрести за 1000 рублей? Поскольку автору удалось в течение недели поработать с новой машиной, краткое описание будет дополнено личными впечатлениями.
Основной блок, то есть сам компьютер, легкий, достаточно компактный особо отмечу, что толщина "Поиска" такая же, как у стандартной клавиатуры персонального компьютера. Клавиши работают четко, без дребезга. Нажатия клавиш подтверждаются легкими щелчками встроенного громкоговорителя. На цветном дисплее "Электроника 6106" (30см по диагонали) картинка прямоугольная и очень четкая, буквы даже в режиме 60 символов в строке читаются прекрасно.
Кассета с записью трех программ, вложенная в коробку с "Поиском", успешно считывается с помощью видавшей виды "Электроники 302". Одна из программ - это Бейсик, весьма напоминающий известный Basic фирмы Microsoft. Две другие служат для проверки компьютера, причем та, что называется TEST, при известном умении позволяет вводить в "Поиск" программу в машинных кодах и запускать ее, а также читать содержимое памяти, в том числе и постоянного запоминающего устройства с базовыми внутренними программами.
Блок питания весьма компактен, но нужно быть внимательным и случайно не накрыть его каким-либо посторонним предметом, иначе блок может выйти из строя из-за перегрева.
Основной недостаток базового комплекта "Поиска" в том, что этот комплект нельзя считать IBM-совместимым. Дело в том, что в базовый комплект не входят несколько служебных программ, известных, как операционная система.
Достаточно подключить к "Поиску" адаптер дисковода и поставить в дисковод дискету со стандартной операционной системой,- "Поиск" станет IBM-совместимым. Без этого о "Поиске" можно сказать, что он лишь пополнил семейство из тридцати разнообразных, нестыкующихся друг с другом бытовых компьютеров.
Правда, опытный программист сумеет написать программу, которая позволит имитировать наличие в "Поиске" операционной системы, то есть позволит запускать на нем некоторые программы, предназначенные для IBM.
В любом случае - машина стоящая, и если бы автору предложили на выбор любой из известных ему советских бытовых компьютеров, выбор был бы сделан в пользу "Поиска".
"ПОИСК". ОСНОВНЫЕ ДАННЫЕ
Процессор - КМ1810ВМ88 (8 разрядов данных, 20 разрядов адреса).
Быстродействие - 1.25 миллионов операций в секунду.
Объем памяти - 128 Кбайт оперативной, 8 Кбайт постоянной.
Графический адаптер CGA - 25 строк по 40 символов или 320*200 точек, четыре цвета из шестнадцати; 25 строк по 80 символов, 640*200 точек, два цвета из шестнадцати.
Клавиатура - 88 клавиш.
Масса - 3кг.
"ПОИСК". МОДУЛИ-РАСШИРЕНИЯ
Игровой адаптер (для подключения двух джойстиков).
Расширитель ПЗУ (картридж) 8-64 Кбайт.
Адаптеры интерфейсные (параллельный, последовательный и интерфейс "мыши").
Расширители ОЗУ 256 Кбайт и 512 Кбайт.
Адаптер дисковода (1 или 2 любых дисковода).
Адаптер винчестера (20 или 40 Мбайт).
Звуковой синтезатор (синтезатор речи, 2-голосый речевой синтезатор, синтезатор звуковых ударных инструментов, интерфейс MIDI).
Адаптер локальной сети.
Полный комплект оборудования, разработанного для "Поиска". С помощью различных адаптеров можно значительно расширить возможности микроЭВМ, настроить ее на решение тех или иных конкретных задач.
"КОНТАКТ": НОВЫЕ СЕКЦИИ
Клуб "Контакт", созданный при редакции в 1987 году, продолжает свою работу. Его услугами воспользовалось уже около 3000 владельцев компьютеров. За это время несколько раз расширялось число составляющих его секций, вот их сегодняшний список: БК-0010, БК-0011, Микроша, Синклер, Atari, Commodore, Немига, Криста, РК-86, Апогей, ПК-01 Львов, Специалист, Вектор, Ямаха.
Сообщаем также об открытии новой секции - "Поиск". Напоминаем, что для вступления в клуб достаточно прислать заявку с просьбой сообщить два адреса корреспондентов, обладающих аналогичным компьютером. Клуб "Контакт" не занимается тиражированием программ ни для каких компьютеров.
ГДЕ КУПИТЬ "ПОИСК"?
Отвечать на вопрос "где можно купить..." сегодня трудно. Дефицит, талоны, визитки и тому подобное оставляют возможность только советовать. В конце 1990 года, когда готовилась эта статья, "Поиск" и некоторые из модулей можно было купить в киевском магазине-салоне "Электрон" и центральном универмаге. По безналичному расчету "Поиск" продается со складов ПО "Электронмаш". В то же время, большая часть компьютеров, по-видимому, будет направлена в школы в составе учебных классов.
Игровой комплект рассчитан на работу с кассетным магнитофоном, который в этом случае служит для хранения программ.
Рабочее место редактора на основе микро ЭВМ "Поиск" позволяет набирать текст, редактировать и записывать его на дискету.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
3/91
КОНКУРС КОМПЬЮТЕРНЫХ ПРОГРАММ ЗАВЕРШЕН
Завершился конкурс на лучшую программу для компьютеров типа MSX, IBM PC и совместимых с ними (см. 3/90).
На конкурс, который проводился по инициативе японской фирмы "Санзидайся", поступило около 4000 программ для IBM PC компьютеров и около 900 для "Ямахи", в частности, из Москвы и Ленинграда (более 2000 программ), с Украины и из Белоруссии (768), с Урала и из Сибири (632), из Средней Азии (136), с Кавказа (80), из Прибалтики (40).
Языки программирования Паскаль, Бейсик и Си представлены почти равным числом программ. Для IBM PC примерно половина это служебные программы, четверть - для научной работы. Для "Ямахи" большая часть программ учебные и игровые.
Первые места в конкурсе заняли В.Маслов за служебную программу Tran Inst, Ю.Бродский и К.Лобанов за научную программу Miss, З.Уражалина за учебную программу Matards. Все эти победители конкурса награждены ценным призом и недельной поездкой в Японию.
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
Уважаемые читатели раздела "Школа пользователя ЭВМ"! Очень просим отправить в редакцию открытку или письмо и в двоичном коде ответить на следующие три вопроса: Удовлетворяет ли Вас выбор тем "Школы"? (да, нет); Считаете ли Вы "Школу" слишком сложной? (да, нет); Считаете ли Вы "Школу" слишком упрощенной? (да, нет). Будем благодарны вам также за высказанные замечания и пожелания.
ЗАНЯТИЕ ВОСЬМОЕ, на котором заканчивается разговор об интегрированном пакете MS Works (версия 2.0, русифицированная) фирмы Microsoft, начатый в 1/91.
Еще раз обратимся к рисунку из прошлой статьи, к трем строчкам в правом нижнем его углу. При выборе желаемого формата наведем курсорную рамку не третью строчку и тем самым зададим машине режим работы с базами данных. В ответ машина выведет на экран дисплея характерную рамку, которую тоже уже видели под заголовком DATA2.WDB. Имя можно изменить, помня, однако, что машина не допустит совпадения, если база под таким именем уже есть в архивной памяти.
Базы данных во многом напоминают электронные таблицы (сравните прямоугольники под именами DATA2.WDB и SHEET1.WKS). Различий всего три: у базы данных не столбцы, а поля, и озаглавлены они не латинскими буквами, а заданными пользователем цепочками символов: "Ф.И.О.", "Год рождения", "Телефон" и т.д.; ячейки одной строки базы данных называются записью; порции записи по вертикали базы данных ("одного поля ягоды") должны быть однотипными (только числами или словами, например); формулы, записанные в базу данных, в качестве аргументов могут использовать только данные своей записи.
По такому принципу устроены так называемые реляционные (табличные) базы данных, встроенные в интегрированные пакеты.
Информация в рамке с заголовком DATA1.WDB - это та же база по сотрудникам, но переведенная в другую форму представления, когда видна только одна запись. За счет этого ячейка базы (пересечение поля и записи) может занимать несколько строк, а не одну, как в табличной форме (см. DATA2.WDB). Перевод базы данных из одной формы в другую ведется через цепочку меню: ПРОСМОТР (это слово "втискивается" между словами СЕРВИС и ОКНО при переходе к работе с базами данных или с электронными таблицами) и ФОРМА (или ТАБЛИЦА).
Пришла пора заканчивать наш разговор об интегрированном пакете MS Works. He правда пи, этот программный продукт не так уж сложен для понимания? Работа с ним до мелочей схожа с общеизвестными, обыденными, рутинными действиями человека, привыкшего обращаться с деловыми бумагами...
Но чем я так пронзительно взволнован,
откуда эта радость бытия?
И опытом каким волшебно-новым
обогатился я?
И наконец самое последнее. Мы с читателями договорились о том, что программы пиратским способом переписывать друг у друга нельзя - см. заключительную часть прошлого занятия (11/90). Поэтому мы сообщаем, что фирма Microsoft открыла в Москве филиал для непосредственного руководства сетью диллеров, распространяющих программное обеспечение у нас в стране. Адрес филиала для переписки по вопросам, не связанным с продажей программ: 103009, Москва, а/я 890.
Говоря об интегрированных пакетах для персональных компьютеров, включающих в себя надстройку над DOS, текстовые процессоры, электронные таблицы, деловую графику, базы данных и средства телекоммуникации, стоит рассказать о содержащем все это программном продукте фирмы Ashton-Tate, о пакете Framework III (Фреймворк, третья версия сокращено FW3).
Продолжают занятие кандидат технических наук В.Ф.ОЧКОВ и инженер Л.А ЗАЙЦЕВА (Московский энергетический институт).
Все познается в сравнении. Видимо, это и дало кому-то из великих основание заявить: если человек владеет только одним языком, то он, по существу, не знает ни одного. Сказано это было по поводу языков человеческого общения, будь то русский, английский или французский, но вполне приложимо и к машинным языкам, и вообще ко всяким средствам общения человека с ЭВМ.
Поэтому мы в наших уроках, описывая какой-то программный продукт, стараемся сопоставить с ним как минимум еще одно средство того же назначения: Лексикон - MultiEdit, BASICA - QuickBASIC и т.д.
Вот и на сей раз вслед за описанием пакета MS Works на наших страницах появляется Framework III.
На рисунке можно увидеть типичную картинку, возникающую на экране дисплея при работе с пакетом FW3. На ней зафиксирован момент, когда пользователь, просмотрев содержимое дисков А (сменный гибкий) и С (винчестер) и не найдя там нужного документа, создает (Create) новую электронную таблицу (Spreadsheet) с четырьмя колонками и семнадцатью строками.
Как бы ни разнились программные среды по своим возможностям, но картинки, какие они выдают, на дисплей довольно однообразны. На "чердаке" меню с вываливающимися табличками команд, в "подвале" реклама текущего "блюда", а пользователю ЭВМ дано на откуп рабочее поле. Его можно "засеять" документами, беря их из "лукошка" - с магнитных дисков.
Все выглядит почти также, как при работе с пакетом MS Works (см. 1/91): на "чердаке" рядком выписаны слова-слуги (у пакета FW3 их десять: Apps, Disk, Create, Edit, Locate, Frame, Words, Numbers, Graph, Print), из которых можно "вывалить" (по-английски fo pull down) таблички с именами прислужников (если так можно выразиться), а по рабочему полю разбросаны документы (тексты, электронные таблицы, базы данных).
Сходство сходством, но есть и существенные отличия. Мы перечислим только основные.
1. Работая с пакетом FW3, на рабочем поле можно держать в особых окнах (их называют кабинетами) списки файлов, хранящихся на дисках. Эти файлы можно переименовывать, копировать, перемещать, уничтожать, просматривать; в этих списках можно создавать новые директории, полностью имитируя тем самым работу пакета Norton Commander (см. 3/90). FW3 в чем-то даже перещеголял эту популярную надстройку над DOS, работая с которой, пользователь видит только два окна (левую и правую панель) с информацией о двух выбранных аккордом Alt+F1 или Alt+F2 дисковых устройствах. FW3 позволяет просматривать на дисплее одновременно хоть все дисковые устройства (А, В, С, D, Е и т.д., вплоть до Z), открывая на рабочем поле соответствующие окна-кабинеты.
2. Меню пакета FW3 активизируется нажатием клавиши Insert, а не Alt как у пакета MS Works. При этом меню пакета FW3 обладает памятью. Это значит, что при нажатии клавиши Insert высвечивается не крайнее левое слово Apps, а та позиция меню, к которой обращались перед этим. Это дает возможность быстро проводить серию действий (например, выделять курсивом или полужирным шрифтом отдельные слова в редактируемом тексте), не путаясь в ветвях древовидной структуры меню, а просто нажимая клавишу Insert нужное количество раз.
Так же, как в среде программирования QuickBASIC или в интегрированном пакете MS Works, выбор позиций меню FW3 может вестись разными способами. Первый мы только что описали через клавишу Insert (для QuickBASIC или для MS Works то была клавиша Alt). Второй способ заключается в том, чтобы взять аккорд: Ctrl плюс первая буква в названии слова главного меню (А - приложения, D - работа с дисками, С - создание новых документов-фреймов, Е - редактирование, L - местонахождение, F - работа с фреймами, W - работа со словами, N - работа с числами, G - построение графиков, Р - печать), после чего из этого слова "вывалится" табличка со вспомогательным меню, на требуемое слово которого нужно навести курсорную рамку и нажать клавишу Enter. Третий способ самый простой: подвел с помощью "мыши" курсор к нужной позиции меню, нажал левую кнопку "мыши", и дело сделано. Но "мышью" оборудованы далеко не все компьютеры, поэтому-то и зарезервированы вышеназванные альтернативные способы навигации по меню.
3. В отличие от пакета MS Works, где тексты, электронные таблицы и базы данных кажутся наслаивающимися друг на друга плоскими листами, документы пакета FW3 рельефные. Первая "возвышенность" в них это окантовка фрейма (см. рисунок выше). Но кроме этого фрейм пакета FW3 может быть контейнером, содержащим фреймы более низкого уровня. В этом структура фреймов копирует древовидную структуру файлов на дисках с директориями и поддиректориями. Поэтому для путешествия по фрейму-контейнеру недостаточно клавиш со стрелочками. На помощь приходят еще две клавиши: "серый" плюс (плюс на числовом наборном поле) для вхождения в глубину фрейма и "серый" минус (минус на числовом наборном поле) для выхода на поверхность фрейма. "Стрелочные" клавиши позволяют перемещаться по объектам одного уровня, будь то буквы в тексте, ячейки электронной таблицы или базы данных, главы книги, тома библиотеки и т.д.
4. В пакете FW3 в формулах электронной таблицы могут быть обработаны данные не только из той таблицы, с которой вы сейчас работаете, но и из других, которые в это же время находятся на рабочем попе. Допустим, формула AVG(A10:AZ10)+MIN(B5:B50) в ячейке таблицы ТАВ1 означает, что дано приказание сложить среднее арифметическое (avirage) чисел, хранящихся на десятой строке таблицы в столбцах от А до AZ, с минимальным числом из столбца В на строках от 5-й до 50-й этой же таблицы. Но если в этой формуле записать MIN(B5:B50).TAB2, то нужный для расчетов минимум будет искаться уже в другой таблице, озаглавленной ТАВ2. Эта особенность пакета FW3 дает возможность строить не только плоские, но и трехмерные таблицы, то есть двухмерные, сложенные в стопку. Можно, например, держать на рабочем поле двенадцать таблиц с данными о зарплате сотрудников по месяцам и еще одну, содержащую ссылки в формулах на месячные сводки и подытоживающую год. Стоит только что-то изменить в месячных электронных таблицах, как это тут же скажется на числах годовой таблицы. Все эти тринадцать таблиц удобно занести в одни фрейм-контейнер и хранить на диске в виде одного файла. Вот тут-то и нужны будут клавиши "серый" плюс для перехода от границы фрейма на границу какой-то месячной таблицы, а оттуда в ее ячейки (вход в глубину структуры) и "серый" минус для обратного путешествия из глубины структуры наружу.
5. Пакет FW3 позволяет раскрашивать документы на экране дисплея в различные цвета. Так, например, эмоциональный бухгалтер, работающий с вышеописанными таблицами по расчету зарплаты, для облегчения ориентации в них может летние таблицы раскрасить "теплым" цветом (красный, желтый), а зимние - "холодным" (синий, голубой). Можно приказать машине выделить особым цветом (черным, к примеру) отрицательные числа в электронной таблице. Их траурная окраска будет означать, что годовой баланс по зарплате вышел с перерасходом, который неизвестно, как покрыть.
6. Напомним: у пакета MS Workt функциональные клавиши несут вспомогательную нагрузку, ускоряя отдачу нужных команд и не заставляя пользователя копаться в меню в поисках названия часто используемого "блюда". В пакете же FW3 эти двенадцать клавиш несут самостоятельные нагрузки, поэтому мы о них поговорим особо.
Часто пользователи, приступая к работе с новым программным продуктом, прикалывают к стене листок с пояснениями к функциональным клавишам клавиатуры F1-F12. Иногда такой листок "приколот" к экрану дисплея: достаточно вспомнить "картинку" надстройки над дисковой операционной системой Norton Commander (см. 3/90).
Припоминаете список в нижней части экрана? 1-Help, 2-User, 3-View, 4-Edit, 5-Copy, 6-RenMoV, 7-MkDir, 8-Delete, 9-PullDn, 10-Qutt. Или возьмем язык программирования BASICA (см. 11/90); 1-LIST, 2-RUN, 3-LOAD, 4-SAVE и т.д. У многих компьютеров под функциональными клавишами имеются специальные гнезда, куда можно вставить бумажку с названием текущей функции.
Говорят (или это только приснилось одному из авторов нынешнего занятия "Школы"?), что есть клавиатуры, у которых верхняя поверхность клавиш представляет собой маленький жидкокристалический экранчик, высвечивающий текущую функцию данной клавиши. Перевел такую клавиатуру на кириллицу, и на клавишах появились буквы "Й", "Ц, "У" вместо "Q"," W", "E". Вызвал надстройку над DOS Norton Commander, и вместо надписей "F1", "F2", "F3" появились новые, более вразумительные: "Help", "User", "View". Если клавиатуры с перепрограммируемыми названиями клавиш существуют пока что только во сне, то мы эту идею дарим миру: пусть кто-нибудь ее реализует.
Со временем надобность в шпаргалках, расшифровывающих функции клавиш F1-F12, отпадает, а у пользователя вырабатываются моторные навыки, помогающие быстро отдавать машине нужные команды нажатием одной клавиши F1, F2, F3, или, как у опытных программистов, "слепым" взятием целых аккордов Ali-F5, Alt-Ctrl-F1 и т.п. "А вы спредшит создать смогли бы на клавишах под буквой F?", - так можно в этой ситуации перефразировать поэта. Но сейчас мы обойдем молчанием "аккорды" (их описанию, рассказу о макросах пакета FW3 посвящены целые статьи в специальных журналах для пользователей персональных компьютеров), а сыграем простую "гамму", бегло пройдемся по функциональным клавишам, составляя шпаргалку пакета FW3.
F1 HELP - помощь, справка. Задумавшись, нормальный человек почесывает у себя в затылке. Рука же пользователя персонального компьютера в затруднительных ситуациях тянется в противоположную сторону к клавише F1 за справкой. Справочная система помощи пакета FW3 (впрочем, как и других пакетов) умеет подстраиваться под нужды человека: машина обучена выдавать именно ту подсказку, которая в данный момент требуется. Например, пользователем уже "окурсорена" очередная позиция в меню, но одолевают сомнения в правильности выбора команды для исполнения задуманного. Не беда. Нажимается клавиша F1, и на дисплее - полное описание команды, намеченной к исполнению.
Другой пример. Набирается на клавиатуре формула для электронной таблицы или базы данных, заминка - "почесывание в затылке", то есть нажатие клавиши F1, и на дисплее список встроенных функций пакета, а также примеры их использования в алгебраических выражениях. Выдавая нужную страницу описания программного продукта, машина одновременно приглашает пользователя просмотреть предыдущую (Previous Screen) или последующую (Next Screen), перейти к оглавлению описания (Index of Topics) или узнать о назначении функциональных клавиш (Key Help). Словосочетания, заключенные в скобки, выстраиваются по нижнему краю экрана дисплея, когда пользователь обращается к компьютеру за помощью. Одно из словосочетаний оконтурено курсорной рамкой. Там же, в подвальной части экрана, видно напоминание пользователю о традиционном способе выбора нужного действия из предложенных машиной: клавишами "стрелочка влево" и "стрелочка вправо" следует переместить курсорную рамку на требуемую позицию меню и нажать клавишу Enter. Своего рода антоним клавиши Enter, клавиша Esc, позволяет закончить информационный поиск в описании и вернуться к прерванной работе.
Продолжая начатое чуть ли не на первом занятии нашей "Школы" сравнение работы на персональном компьютере с посещением ресторана, можно сказать, что нажатие клавиши F1 равносильно обращению к официанту: "Будьте любезны, подскажите ", а нажатие клавиши Esc словам: "Спасибо за информацию" или "Пардон, я передумал".
Дружественность пакета FW3 к человеку наблюдается и в том, что пользователь может найти нужную информацию разными путями. Например, узнать о том, как вставить логарифм в электронную таблицу, можно либо перелистывая страницы помощи (Next Screen.., NextScreen...), либо через позиции описания (Index of Topics) "Числовые функции" или "Встроенные функции по алфавиту".
Но, к огорчению многих пользователей ЭВМ, подсказки пакета FW3 написаны на английском языке. Легальных переводов этого пакета на русский язык (как это сделано для MS Works) пока нет. Однако совместное советско-американское предприятие "Параграф" (103051, Москва, Петровский бульвар, д.23, тел. 200-25-66) предлагает оригинальное решение этой проблемы по принципу "И волки сыты, и овцы целы". Созданная СП "ПараГраф" резидентная программа русифицирует интегрированный пакет Framework II, заставляя его выдавать подсказки и названия команд на русском языке. Авторские права фирмы AsMon-Tate при этом не нарушаются, а структура пакета не изменяется. Подобным образом "Пара-Граф" заставил "обрусеть" и другие заморские популярные программные средства: текстовый процессор MS Word (4.0 и 5.0), настольную типография Xerox Ventura, системы управления базами данных Paradox 3.0 и dBASE IV, надстройки над DOS Norton Commander (2.0 и 3.0).
Совместное советско-финское предприятие Сфинкс (190000, Ленинград, ул.Герцена, 55) распространяет русифицировнаную легальную версию пакета Framework IV.
Все сказанное можно занести в шпаргалку о функциональных клавишах пакета FW3 предельно кратко: F1-помощь.
...
КОНКУРС КОМПЬЮТЕРНЫХ ПРОГРАММ ЗАВЕРШЕН
Завершился конкурс на лучшую программу для компьютеров типа MSX, IBM PC и совместимых с ними (см. 3/90).
На конкурс, который проводился по инициативе японской фирмы "Санзидайся", поступило около 4000 программ для IBM PC компьютеров и около 900 для "Ямахи", в частности, из Москвы и Ленинграда (более 2000 программ), с Украины и из Белоруссии (768), с Урала и из Сибири (632), из Средней Азии (136), с Кавказа (80), из Прибалтики (40).
Языки программирования Паскаль, Бейсик и Си представлены почти равным числом программ. Для IBM PC примерно половина это служебные программы, четверть - для научной работы. Для "Ямахи" большая часть программ учебные и игровые.
Первые места в конкурсе заняли В.Маслов за служебную программу Tran Inst, Ю.Бродский и К.Лобанов за научную программу Miss, З.Уражалина за учебную программу Matards. Все эти победители конкурса награждены ценным призом и недельной поездкой в Японию.
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
Уважаемые читатели раздела "Школа пользователя ЭВМ"! Очень просим отправить в редакцию открытку или письмо и в двоичном коде ответить на следующие три вопроса: Удовлетворяет ли Вас выбор тем "Школы"? (да, нет); Считаете ли Вы "Школу" слишком сложной? (да, нет); Считаете ли Вы "Школу" слишком упрощенной? (да, нет). Будем благодарны вам также за высказанные замечания и пожелания.
ЗАНЯТИЕ ВОСЬМОЕ, на котором заканчивается разговор об интегрированном пакете MS Works (версия 2.0, русифицированная) фирмы Microsoft, начатый в 1/91.
Еще раз обратимся к рисунку из прошлой статьи, к трем строчкам в правом нижнем его углу. При выборе желаемого формата наведем курсорную рамку не третью строчку и тем самым зададим машине режим работы с базами данных. В ответ машина выведет на экран дисплея характерную рамку, которую тоже уже видели под заголовком DATA2.WDB. Имя можно изменить, помня, однако, что машина не допустит совпадения, если база под таким именем уже есть в архивной памяти.
Базы данных во многом напоминают электронные таблицы (сравните прямоугольники под именами DATA2.WDB и SHEET1.WKS). Различий всего три: у базы данных не столбцы, а поля, и озаглавлены они не латинскими буквами, а заданными пользователем цепочками символов: "Ф.И.О.", "Год рождения", "Телефон" и т.д.; ячейки одной строки базы данных называются записью; порции записи по вертикали базы данных ("одного поля ягоды") должны быть однотипными (только числами или словами, например); формулы, записанные в базу данных, в качестве аргументов могут использовать только данные своей записи.
По такому принципу устроены так называемые реляционные (табличные) базы данных, встроенные в интегрированные пакеты.
Информация в рамке с заголовком DATA1.WDB - это та же база по сотрудникам, но переведенная в другую форму представления, когда видна только одна запись. За счет этого ячейка базы (пересечение поля и записи) может занимать несколько строк, а не одну, как в табличной форме (см. DATA2.WDB). Перевод базы данных из одной формы в другую ведется через цепочку меню: ПРОСМОТР (это слово "втискивается" между словами СЕРВИС и ОКНО при переходе к работе с базами данных или с электронными таблицами) и ФОРМА (или ТАБЛИЦА).
Пришла пора заканчивать наш разговор об интегрированном пакете MS Works. He правда пи, этот программный продукт не так уж сложен для понимания? Работа с ним до мелочей схожа с общеизвестными, обыденными, рутинными действиями человека, привыкшего обращаться с деловыми бумагами...
Но чем я так пронзительно взволнован,
откуда эта радость бытия?
И опытом каким волшебно-новым
обогатился я?
И наконец самое последнее. Мы с читателями договорились о том, что программы пиратским способом переписывать друг у друга нельзя - см. заключительную часть прошлого занятия (11/90). Поэтому мы сообщаем, что фирма Microsoft открыла в Москве филиал для непосредственного руководства сетью диллеров, распространяющих программное обеспечение у нас в стране. Адрес филиала для переписки по вопросам, не связанным с продажей программ: 103009, Москва, а/я 890.
Говоря об интегрированных пакетах для персональных компьютеров, включающих в себя надстройку над DOS, текстовые процессоры, электронные таблицы, деловую графику, базы данных и средства телекоммуникации, стоит рассказать о содержащем все это программном продукте фирмы Ashton-Tate, о пакете Framework III (Фреймворк, третья версия сокращено FW3).
Продолжают занятие кандидат технических наук В.Ф.ОЧКОВ и инженер Л.А ЗАЙЦЕВА (Московский энергетический институт).
Все познается в сравнении. Видимо, это и дало кому-то из великих основание заявить: если человек владеет только одним языком, то он, по существу, не знает ни одного. Сказано это было по поводу языков человеческого общения, будь то русский, английский или французский, но вполне приложимо и к машинным языкам, и вообще ко всяким средствам общения человека с ЭВМ.
Поэтому мы в наших уроках, описывая какой-то программный продукт, стараемся сопоставить с ним как минимум еще одно средство того же назначения: Лексикон - MultiEdit, BASICA - QuickBASIC и т.д.
Вот и на сей раз вслед за описанием пакета MS Works на наших страницах появляется Framework III.
На рисунке можно увидеть типичную картинку, возникающую на экране дисплея при работе с пакетом FW3. На ней зафиксирован момент, когда пользователь, просмотрев содержимое дисков А (сменный гибкий) и С (винчестер) и не найдя там нужного документа, создает (Create) новую электронную таблицу (Spreadsheet) с четырьмя колонками и семнадцатью строками.
Как бы ни разнились программные среды по своим возможностям, но картинки, какие они выдают, на дисплей довольно однообразны. На "чердаке" меню с вываливающимися табличками команд, в "подвале" реклама текущего "блюда", а пользователю ЭВМ дано на откуп рабочее поле. Его можно "засеять" документами, беря их из "лукошка" - с магнитных дисков.
Все выглядит почти также, как при работе с пакетом MS Works (см. 1/91): на "чердаке" рядком выписаны слова-слуги (у пакета FW3 их десять: Apps, Disk, Create, Edit, Locate, Frame, Words, Numbers, Graph, Print), из которых можно "вывалить" (по-английски fo pull down) таблички с именами прислужников (если так можно выразиться), а по рабочему полю разбросаны документы (тексты, электронные таблицы, базы данных).
Сходство сходством, но есть и существенные отличия. Мы перечислим только основные.
1. Работая с пакетом FW3, на рабочем поле можно держать в особых окнах (их называют кабинетами) списки файлов, хранящихся на дисках. Эти файлы можно переименовывать, копировать, перемещать, уничтожать, просматривать; в этих списках можно создавать новые директории, полностью имитируя тем самым работу пакета Norton Commander (см. 3/90). FW3 в чем-то даже перещеголял эту популярную надстройку над DOS, работая с которой, пользователь видит только два окна (левую и правую панель) с информацией о двух выбранных аккордом Alt+F1 или Alt+F2 дисковых устройствах. FW3 позволяет просматривать на дисплее одновременно хоть все дисковые устройства (А, В, С, D, Е и т.д., вплоть до Z), открывая на рабочем поле соответствующие окна-кабинеты.
2. Меню пакета FW3 активизируется нажатием клавиши Insert, а не Alt как у пакета MS Works. При этом меню пакета FW3 обладает памятью. Это значит, что при нажатии клавиши Insert высвечивается не крайнее левое слово Apps, а та позиция меню, к которой обращались перед этим. Это дает возможность быстро проводить серию действий (например, выделять курсивом или полужирным шрифтом отдельные слова в редактируемом тексте), не путаясь в ветвях древовидной структуры меню, а просто нажимая клавишу Insert нужное количество раз.
Так же, как в среде программирования QuickBASIC или в интегрированном пакете MS Works, выбор позиций меню FW3 может вестись разными способами. Первый мы только что описали через клавишу Insert (для QuickBASIC или для MS Works то была клавиша Alt). Второй способ заключается в том, чтобы взять аккорд: Ctrl плюс первая буква в названии слова главного меню (А - приложения, D - работа с дисками, С - создание новых документов-фреймов, Е - редактирование, L - местонахождение, F - работа с фреймами, W - работа со словами, N - работа с числами, G - построение графиков, Р - печать), после чего из этого слова "вывалится" табличка со вспомогательным меню, на требуемое слово которого нужно навести курсорную рамку и нажать клавишу Enter. Третий способ самый простой: подвел с помощью "мыши" курсор к нужной позиции меню, нажал левую кнопку "мыши", и дело сделано. Но "мышью" оборудованы далеко не все компьютеры, поэтому-то и зарезервированы вышеназванные альтернативные способы навигации по меню.
3. В отличие от пакета MS Works, где тексты, электронные таблицы и базы данных кажутся наслаивающимися друг на друга плоскими листами, документы пакета FW3 рельефные. Первая "возвышенность" в них это окантовка фрейма (см. рисунок выше). Но кроме этого фрейм пакета FW3 может быть контейнером, содержащим фреймы более низкого уровня. В этом структура фреймов копирует древовидную структуру файлов на дисках с директориями и поддиректориями. Поэтому для путешествия по фрейму-контейнеру недостаточно клавиш со стрелочками. На помощь приходят еще две клавиши: "серый" плюс (плюс на числовом наборном поле) для вхождения в глубину фрейма и "серый" минус (минус на числовом наборном поле) для выхода на поверхность фрейма. "Стрелочные" клавиши позволяют перемещаться по объектам одного уровня, будь то буквы в тексте, ячейки электронной таблицы или базы данных, главы книги, тома библиотеки и т.д.
4. В пакете FW3 в формулах электронной таблицы могут быть обработаны данные не только из той таблицы, с которой вы сейчас работаете, но и из других, которые в это же время находятся на рабочем попе. Допустим, формула AVG(A10:AZ10)+MIN(B5:B50) в ячейке таблицы ТАВ1 означает, что дано приказание сложить среднее арифметическое (avirage) чисел, хранящихся на десятой строке таблицы в столбцах от А до AZ, с минимальным числом из столбца В на строках от 5-й до 50-й этой же таблицы. Но если в этой формуле записать MIN(B5:B50).TAB2, то нужный для расчетов минимум будет искаться уже в другой таблице, озаглавленной ТАВ2. Эта особенность пакета FW3 дает возможность строить не только плоские, но и трехмерные таблицы, то есть двухмерные, сложенные в стопку. Можно, например, держать на рабочем поле двенадцать таблиц с данными о зарплате сотрудников по месяцам и еще одну, содержащую ссылки в формулах на месячные сводки и подытоживающую год. Стоит только что-то изменить в месячных электронных таблицах, как это тут же скажется на числах годовой таблицы. Все эти тринадцать таблиц удобно занести в одни фрейм-контейнер и хранить на диске в виде одного файла. Вот тут-то и нужны будут клавиши "серый" плюс для перехода от границы фрейма на границу какой-то месячной таблицы, а оттуда в ее ячейки (вход в глубину структуры) и "серый" минус для обратного путешествия из глубины структуры наружу.
5. Пакет FW3 позволяет раскрашивать документы на экране дисплея в различные цвета. Так, например, эмоциональный бухгалтер, работающий с вышеописанными таблицами по расчету зарплаты, для облегчения ориентации в них может летние таблицы раскрасить "теплым" цветом (красный, желтый), а зимние - "холодным" (синий, голубой). Можно приказать машине выделить особым цветом (черным, к примеру) отрицательные числа в электронной таблице. Их траурная окраска будет означать, что годовой баланс по зарплате вышел с перерасходом, который неизвестно, как покрыть.
6. Напомним: у пакета MS Workt функциональные клавиши несут вспомогательную нагрузку, ускоряя отдачу нужных команд и не заставляя пользователя копаться в меню в поисках названия часто используемого "блюда". В пакете же FW3 эти двенадцать клавиш несут самостоятельные нагрузки, поэтому мы о них поговорим особо.
Часто пользователи, приступая к работе с новым программным продуктом, прикалывают к стене листок с пояснениями к функциональным клавишам клавиатуры F1-F12. Иногда такой листок "приколот" к экрану дисплея: достаточно вспомнить "картинку" надстройки над дисковой операционной системой Norton Commander (см. 3/90).
Припоминаете список в нижней части экрана? 1-Help, 2-User, 3-View, 4-Edit, 5-Copy, 6-RenMoV, 7-MkDir, 8-Delete, 9-PullDn, 10-Qutt. Или возьмем язык программирования BASICA (см. 11/90); 1-LIST, 2-RUN, 3-LOAD, 4-SAVE и т.д. У многих компьютеров под функциональными клавишами имеются специальные гнезда, куда можно вставить бумажку с названием текущей функции.
Говорят (или это только приснилось одному из авторов нынешнего занятия "Школы"?), что есть клавиатуры, у которых верхняя поверхность клавиш представляет собой маленький жидкокристалический экранчик, высвечивающий текущую функцию данной клавиши. Перевел такую клавиатуру на кириллицу, и на клавишах появились буквы "Й", "Ц, "У" вместо "Q"," W", "E". Вызвал надстройку над DOS Norton Commander, и вместо надписей "F1", "F2", "F3" появились новые, более вразумительные: "Help", "User", "View". Если клавиатуры с перепрограммируемыми названиями клавиш существуют пока что только во сне, то мы эту идею дарим миру: пусть кто-нибудь ее реализует.
Со временем надобность в шпаргалках, расшифровывающих функции клавиш F1-F12, отпадает, а у пользователя вырабатываются моторные навыки, помогающие быстро отдавать машине нужные команды нажатием одной клавиши F1, F2, F3, или, как у опытных программистов, "слепым" взятием целых аккордов Ali-F5, Alt-Ctrl-F1 и т.п. "А вы спредшит создать смогли бы на клавишах под буквой F?", - так можно в этой ситуации перефразировать поэта. Но сейчас мы обойдем молчанием "аккорды" (их описанию, рассказу о макросах пакета FW3 посвящены целые статьи в специальных журналах для пользователей персональных компьютеров), а сыграем простую "гамму", бегло пройдемся по функциональным клавишам, составляя шпаргалку пакета FW3.
F1 HELP - помощь, справка. Задумавшись, нормальный человек почесывает у себя в затылке. Рука же пользователя персонального компьютера в затруднительных ситуациях тянется в противоположную сторону к клавише F1 за справкой. Справочная система помощи пакета FW3 (впрочем, как и других пакетов) умеет подстраиваться под нужды человека: машина обучена выдавать именно ту подсказку, которая в данный момент требуется. Например, пользователем уже "окурсорена" очередная позиция в меню, но одолевают сомнения в правильности выбора команды для исполнения задуманного. Не беда. Нажимается клавиша F1, и на дисплее - полное описание команды, намеченной к исполнению.
Другой пример. Набирается на клавиатуре формула для электронной таблицы или базы данных, заминка - "почесывание в затылке", то есть нажатие клавиши F1, и на дисплее список встроенных функций пакета, а также примеры их использования в алгебраических выражениях. Выдавая нужную страницу описания программного продукта, машина одновременно приглашает пользователя просмотреть предыдущую (Previous Screen) или последующую (Next Screen), перейти к оглавлению описания (Index of Topics) или узнать о назначении функциональных клавиш (Key Help). Словосочетания, заключенные в скобки, выстраиваются по нижнему краю экрана дисплея, когда пользователь обращается к компьютеру за помощью. Одно из словосочетаний оконтурено курсорной рамкой. Там же, в подвальной части экрана, видно напоминание пользователю о традиционном способе выбора нужного действия из предложенных машиной: клавишами "стрелочка влево" и "стрелочка вправо" следует переместить курсорную рамку на требуемую позицию меню и нажать клавишу Enter. Своего рода антоним клавиши Enter, клавиша Esc, позволяет закончить информационный поиск в описании и вернуться к прерванной работе.
Продолжая начатое чуть ли не на первом занятии нашей "Школы" сравнение работы на персональном компьютере с посещением ресторана, можно сказать, что нажатие клавиши F1 равносильно обращению к официанту: "Будьте любезны, подскажите ", а нажатие клавиши Esc словам: "Спасибо за информацию" или "Пардон, я передумал".
Дружественность пакета FW3 к человеку наблюдается и в том, что пользователь может найти нужную информацию разными путями. Например, узнать о том, как вставить логарифм в электронную таблицу, можно либо перелистывая страницы помощи (Next Screen.., NextScreen...), либо через позиции описания (Index of Topics) "Числовые функции" или "Встроенные функции по алфавиту".
Но, к огорчению многих пользователей ЭВМ, подсказки пакета FW3 написаны на английском языке. Легальных переводов этого пакета на русский язык (как это сделано для MS Works) пока нет. Однако совместное советско-американское предприятие "Параграф" (103051, Москва, Петровский бульвар, д.23, тел. 200-25-66) предлагает оригинальное решение этой проблемы по принципу "И волки сыты, и овцы целы". Созданная СП "ПараГраф" резидентная программа русифицирует интегрированный пакет Framework II, заставляя его выдавать подсказки и названия команд на русском языке. Авторские права фирмы AsMon-Tate при этом не нарушаются, а структура пакета не изменяется. Подобным образом "Пара-Граф" заставил "обрусеть" и другие заморские популярные программные средства: текстовый процессор MS Word (4.0 и 5.0), настольную типография Xerox Ventura, системы управления базами данных Paradox 3.0 и dBASE IV, надстройки над DOS Norton Commander (2.0 и 3.0).
Совместное советско-финское предприятие Сфинкс (190000, Ленинград, ул.Герцена, 55) распространяет русифицировнаную легальную версию пакета Framework IV.
Все сказанное можно занести в шпаргалку о функциональных клавишах пакета FW3 предельно кратко: F1-помощь.
...
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
...
Рабочее поле "засеяно" таблицей характеристик популярных пакетов для статистической обработки экспериментальных данных и двумя поясняющими ее текстами. Теперь их можно "выращивать" - дополнять сведениями о новых программах, убирать сокращения и др.
F2 EDIT - редактирование. В окурсоренную ячейку электронной таблицы или базы данных можно записать исходную информацию либо числовой, либо литерной константой (128, "1990.11.06", "Среднее" и т.д.). Сюда же можно занести и формулу, указывающую машине, результат каких вычислений будет отображен в данной ячейке.
Машина, например, поймет, что в эту ячейку будет помещена формула сложения двух чисел, хранящихся в ячейках В2 и С4, а не цепочка литер "В2+С4", если ее ввод предварить нажатием клавиши F2. Эта же функциональная клавиша позволяет редактировать ранее введенную формулу (или просто число), вытаскивая ее из окурсоренной ячейки таблицы на край рабочего стола в специально отведенную для этой работы строку экрана дисплея. Бывает и наоборот: нужно предупредить машину о том, что в ячейку будет вводиться не алгебраическое выражение, а цепочка литер. Без такого предупреждения машина может оказать "медвежью услугу". Ну, например: вы собираетесь занести в базу данных телефон редакции журнала "Наука и жизнь", передвигаете курсорную рамку к свободной ячейке и набираете на клавиатуре девять символов 924-18-35. Нажата клавиша Enter, но на дисплее ие номер телефона, а число 871. Что такое?!. Все объясняется довольно просто: машина перестаралась, приняв номер телефона за приказ: "Возьми число 924, отними от него 18 и 35, а ответ запиши в окурсоренную ячейку!". Обычно машина сама понимает, что хочет ей сообщить человек - число, арифметическое действие или цепочку литер, и перед вводом новой информации не нужно подавать никаких условных сигналов типе нажатия клавиши F2 (см. выше) или клавиши пробела, означающей, что будет вводиться литерная константа: номер телефона, например. В случаях, таящих в себе двусмысленности (мы только что их описали), ввод или редактирование информации нужно предварять нажатием клавиши пробела (литерная константа) либо клавиши F2 (формула или число). В пакете MS Works ввод формулы, как помнит читатель, тоже предваряется особым сигналом - набором символа "равно". Этот же символ отмечает формулы еще одного популярного интегрированного пакета Lofus 1-2-3.
Итак, еще две строчки нашей шпаргалки: F2 - ввод или редактирование формул и чисел.
Пробел - ввод или редактирование цепочки литер.
F3 DRAG - перетащить. Мы уже говорили о том, что хороший интегрированный пакет должен имитировать работу человека за письменным столом см. рисунок, которым открывалось седьмое занятие нашей "Школы" (1/91), где описывался пакет MS Works (вторая, русифицированная версия). Функциональная клавиша F3 позволяет передвигать документы-фреймы по рабочему полю которое моделируется на экране дисплея с помощью пакета FW3.
Если, к примеру, нужно, чтобы один документ не загораживал другой, то достаточно поместить курсор на его заголовок, нажать клавишу F3 и поработать клавишами со стрелочками. Нажим на клавишу "стрелочка вниз" перетащит (to drag по-английски "тащить") таблицу на одну дисплейную строку вниз; нажим на клавишу "стрелочка вправо" - на одно экранное знакоместо вправо, и т.д. На новом месте таблица закрепляется нажатием клавиши Enter. Таким же образом можно перемещать и кабинеты, отображающие содержимое дисковой памяти машины, фреймы, входящие в контейнеры, сами контейнеры и все другое, что можно двигать на экране дисплея, создавая себе комфортные условия для работы.
Дополним шпаргалку: F3 - перемещение фреймов.
F4 SIZE - размер. Эта клавиша - напарница клавиши F3: она тоже помогает аккуратно размещать документы перед глазами пользователя. Говоря точнее, она позволяет изменять размеры фреймов (если курсор перед нажатием клавиши F4 охватывает весь документ, находясь на его заголовке), ширину колонок электронных таблиц или полей баз данных (если курсор находится в колонке таблицы или на попе базы данных). По умолчанию при создании новой таблицы или базы данных цепочкой команд Create Spreadsheet (или Create Database; см. рисунок в самом начале занятия) колонки таблицы или поля базы данных получаются шириной в девять знакомест. Такая ячейка часто оказывается прокрустовым ложем для цепочки литер, которую в нее потом пытаются втиснуть. Легендарный разбойник Прокруст в такой ситуации отрубал ноги высокому путнику, пожелавшему прилечь на его ложе, а если путник оказывался маленького роста, то вытягивал ему ноги. Пакет FW3 более дружествен к данным, которые человек вручает ему для хранения и обработки. Если окажется, что после заполнения очередной ячейки правая часть цепочки литер залезла в соседнюю колонку, то можно либо все так и оставить (такие записи, хранящиеся в одной ячейке, но раскинувшиеся на нескольких соседних пустых ячейках в одной строке, как правило, помещают в шапке таблицы), либо нажать клавишу F4, а затем поработать клавишей "стрелочка вправо", отодвигая правый край столбца, а вместе с ним всю правую часть таблицы, и расширяя тем самым колонку. Клавишей "стрелочка влево" этот же правый край столбца можно перемещать влево, сужая колонку. Новая ширина столбца фиксируется нажатием клавиши Enter.
Так часто случается с данными литерного типа: при непомерной длине они имеют обыкновение заползать в соседнюю справа ячейку. Числовые же данные в такой ситуации ведут себя более скромно. Если количество знаков числа больше размера отведенной для него колонки, то это число после его ввода и нажатия клавиши Enter преобразуется в цепочку звездочек: было, например, 12345.6789 получилось ********. С подобным явлением сталкиваются и программисты на Бейсике, пытающиеся заставить машину выполнить некорректный оператор, скажем, PRINT USING "###.####"; 2345.6789. Эти звездочки приглашают пользователя пакета FW3 либо через цепочку команд Numbers - Decimal Places изменить формат числа (задать не четыре, а два знака после запятой, например), либо расширить колонку клавишей F4.
Для сравнения скажем, что в пакете Eureka (см. 9/90) внести изменения в размер и местонахождение дисплейных окон можно после нажатия клавиши Scroll Lock. При этом "белые" стрелочные клавиши перетаскивают окна, а "серые" (расположенные на числовом поле) меняют их размер.
Запишем в нашу шпаргалку: F4 - изменение размеров.
FS RECALCULATING - пересчет. Еще раз напомним нашим читателям, что электронная таблица отличается от табулированного текста тем, что изменение значения числа-аргумента автоматически приводит к пересчету по введенным формулам. Но иногда такая автоматичность бывает излишней. Если таблица огромная и в ней нужно изменить многие исходные значения, то работа резко замедляется, если пересчет по формулам ведется каждый раз после ввода очередного числа-аргумента. В такой ситуации пользователь может попросить машину "не лезть поперек батьки в пекло" и все пересчитать только одни раз после ввода последнего числа-аргумента и нажатия клавиши F5. Иногда бывает необходимо наоборот нажимать эту клавишу несколько раз. Так приходится поступать при циклических расчетах методом последовательных приближений в электронной таблице, где есть перекрестные ссылки в формулах. Здесь важно определить порядок пересчета: по строкам или по столбцам. Отключение автоматического пересчета и определение его порядка ведется через команду: Options for Recalc (оптимизация при расчетах) под заголовком Numbers.
Отразим в шпаргалке сказанное: F5 - пересчет по формулам.
F6 SELECT. Эта клавиша позволяет выбрать часть текста, одну или несколько строк (колонок) или целый фрагмент электронной таблицы или базы данных для дальнейших сепаратных действий с ними: для распечатки через режим PRINT, удаления нажатием клавиши Delete; для переноса, копирования, защиты от редактирования, для задания формата чисел и т.п. При выделении фрагмента электронной таблицы или базы данных курсор устанавливают на одном из угловых элементов этого документе, нажимают клавишу F6 и при помощи клавиш "Стрелочка вправо (влево, вверх, вниз)" указывают границы фрагмента, а затем нажимают клавишу Enter. Выбираемая группа элементов будет менять свой цвет: было, например, белым по синему, стало синим по белому. Клавиша F6 обычно используется в паре с другими клавишами, например, с F7 или с F8. В первом случае (F6+F7) выделенный участок переносится на новое место, во втором (F6+F8) - копируется. Таким образом, совместное использование клавиш F6 и какой-либо другой заменяет ряд последовательных операций над несколькими ячейками и сокращает время на создание документа.
Продолжим шпаргалку: F6 - выбор фрагмента на рабочем поле.
F7 MOVE. Клавиша F7 очень удобна, когда редактируешь тексты и электронные таблицы. При редактировании текстов она позволяет переставлять символы, слова или целые абзацы, при редактировании электронных таблиц дает возможность переставлять содержимое ячеек, строк и столбцов ипи их комбинаций в рамках одного фрейма, а также переносить выбранные элементы одного фрейма в другой.
Еще одна строка в нашей шпаргалке: F7 - перемещение выбранного элемента документа на новое место.
F8 COPY. Эта клавиша просто незаменима для тех, кто не любит однообразной механической работы. Она позволяет копировать: во-первых, целые фреймы, во-вторых, выбранные при помощи клавиши F6 фрагменты фреймов, в-третьих, выбранные группы символов при редактировании (повторяющиеся несколько раз слово, формулу и т.п.).
Напомним нашим читателям, что при копировании формул адресация на ячейки с аргументами меняется "по-умному". Было, к примеру, =В2+С4, стало =C3+D5, если формула скопирована в "юго-восточном направлении" - вправо и вниз. Но иногда от такой услуги машины приходится "откупаться" - нажимать в конце не на клавишу Enter, а на клавишу "$". В этом случае адресация на ячейки не изменится.
Запишем в шпаргалку: F8 - копирование выбранного элемента документа или всего документа на новое место.
F9 ZOOM. Клавиша F9 очень удобна при работе с документами большого размера, когда границы документа, заданные при помощи клавиш F3 и F4, не дают возможности просмотреть его целиком. На этот случай в пакете FW3 предусмотрено максимально возможное удобство для человека - раскрытие рамки документа на весь экран дисплея. Повторное нажатие F9 восстанавливает фрейм в прежних размерах. Если помнит читатель, в пакете Eureka (9/90) подобной функцией нагружена клавиша F5.
Еще два слова в шпаргалке: F9 - "лупа".
F10 VIEW - преобразование вида документа. Эта функция имеет отношение к базам данных (перевод их в разные виды представлен в 1/91; помещенный там рисунок представляет базу данных по сотрудникам в двух формах: форма и таблица), контейнерам и кабинетам. Окурсорив имя какого-либо файла, с помощью клавиши F10 можно просмотреть его полные атрибуты: не только имя и размер, но и дату и время создания (вспомним переход от режима Brief к режиму Full в надстройке над DOS Nor/on Commander).
F11 дублирует клавишу "серый" минус для выхода из фрейма на его границу ипи для перехода к документу более высокого уровня.
F12 дублирует клавишу "серый" плюс для входа внутрь фрейма из его границы или для перехода к документу более низкого уровня.
Клавиш F11 и F12 на некоторых клавиатурах нет. Вот поэтому-то их функции "по совместительству" выполняют плюсовая и минусовая клавиши числового поля при погашенной лампочке Num Lock.
Итак, меню пакета FW3 активизировано, и на экране дисплея список блюд. Отметим наиболее интересные из них.
Disk. Обычно в программных продуктах этот заголовок меню имеет другое имя File (см. рассказы о пакете Eureka в 9/90 и о среде программирования QuickBASIC в 11/90). Тут собраны команды, связывающие компьютер с дисками и с дисковой операционной системой. Они позволяют взять файл по его имени, записать документ на диск в виде файла и продолжить работу с ним, записать его на диск с одновременным стиранием в памяти машины, очистить рабочий стол от фреймов, положив их на край стола, импортировать и экспортировать документы (несколькими строками ниже мы скажем, что это такое), временно выйти в дисковую операционную систему (DOS Access), либо совсем покинуть интегрированный пакет {QUIT FrameworkWi) и вернуться в среду дисковой операционной системы.
Export (экспорт) и Import (импорт) это те "карты", которыми козыряют разработчики интегрированных пакетов на рынке сбыта. Эти режимы позволяют использовать созданные в среде FW3 информационные объекты (тексты, электронные таблицы, базы данных) на диске они хранятся в особой форме, понятной только пакету FW3, о чем говорит расширение файлов "*.fw3") в других популярных программных средах: в текстовых процессорах WordStar и WordPerfect, в интегрированных пакетах Lotus 1 -2-3, Framework II (более ранняя версия), в электронных таблицах VisiCalc, MultiPlan, MultiMate, в системах управления базами данных dBASE и др.
Представьте себе, что вы работаете с Lotus 1-2-3, или с Framework II, или с первой версией MS Works и вам предлагают "последний писк моды" - интегрированные пакеты Framework III и MS Works 2.0. При всех их очевидных достоинствах вас одолевают сомнения. С помощью старых пакетов вы наработали много разных электронных таблиц, баз данных. Что же теперь, перейдя на новый пакет, все это выкидывать? Отнюдь нет! Новые пакеты не чураются своих предшественников и умеют в режиме экспорта считывать чужие файлы. Более того, в режиме импорта они могут переделать свои файлы в чужой формат. Так что вам не составит особого труда при желании преобразовать ваши базы данных и электронные таблицы в чужой формат и передать их владельцам пакетов Lotus 1-2-3 или Framework II. И отбросив сомнения, вы покупаете оба пакета и Framework III, и MS Works 2.0.
ОТ РЕДАКЦИИ. На предыдущем занятии, рассказывая про интегрированный пакет MS Works 2.0, мы отвели несколько абзацев встроенной в него системе управления базами данных (СУБД). Есть такая система и в пакете Framework III; мы планировали коснуться ее на текущем занятии. Но отклики читателей внесли коррективы в наши планы, и мы решили посвятить рассказу о СУБД отдельное занятие.
Этим рисунком мы убиваем двух зайцев: показываем, как в среде интегрированного пакета Framework III выглядит база данных в табличной форме, и выполняем многочисленные просьбы читателей, желающих знать основные характеристики отечественных персональных компьютеров.
Нельзя не согласиться с теми, кто ратует за это: ядром интегрированных пакетов остается текстовый процессор; встроенные в них базы данных и системы управления ими несут вспомогательную роль (наподобие калькулятора при текстовом процессоре), помогая, например, заполнить электронные бланки писем реквизитами адресатов. Между тем системы управления базами данных важны сами по себе. Мы могли бы пересказать здесь доводы читателей в пользу занятия, целиком отведенного теме СУБД, но ограничимся лишь аргументом, приведенным в письме калужанина В.Коршунова: "Владение информацией - это владение ситуацией". А овладеть информацией, хранящейся в базе данных, можно лишь с помощью системы управления этой самой базой...
Для одного из будущих занятий "Школы" мы анонсируем рассказ о СУБД Clipper 5.0, созданной фирмой Nantucket.
Уже ранняя версия этой системы ClipperSummer1'87 стала одним из самых популярных программных продуктов в мире и вот почему.
Clipper - это не интерпретирующее, а компилирующее программное средство. На занятии ло QuickBASIC (см. 11/90) было сказано, что в этой среде тексты программ можно компилировать в ЕХЕ-файлы, работающие "без няньки"-интерпретатора, а только под "патронажем" операционной системы. Это очень удобно: ведь операционной системой DOS обеспечены все персональные компьютеры, а что сверх того (языки программирования, различные СУБД и пр.) - то часто "от лукавого", то есть добытое "пиратским" способом. Clipper - компилятор, и это выгодно отличает его от других СУБД: с его помощью можно построить базу данных в виде дееспособного ЕХЕ-файла и передать любому заказчику, не требуя от него наличия в его машине чего-то иного помимо DOS.
Clipper прекрасно выступает "в дуэте" с другим популярным программным продуктом со средой программирования Microsoft С (кстати, она представляет собой тему одного из будущих занятий нашей "Школы") или с ассемблером. Такое содружество разноплановых средств дает в руки программиста отличный инструментарий для создания новых программ.
Clipper - это мощное средство жизнеобеспечения сетевых баз данных коллективного пользования. А мы знаем, что "плох тот персональный компьютер, который не мечтает стать генералом, пардон, терминалом компьютерной сети".
По оценкам экспертов Clipper и в нашей стране входит в десятку хит-парада программных продуктов. Число его копий в СССР по разным оценкам составляет от 20 до 60 тысяч, но почти все они нелегальные, приобретенные "пиратским" способом.
Это обстоятельство побудило фирму Nantucket в начале 1990 года выйти на советский рынок, чтобы дать возможность советским программистам придерживаться принятых во всем мире правил работы с программными продуктами. Clipper 5.0 продается и за рубли, и за деньги, то есть за свободно конвертируемую валюту.
Продажа системы Clipper далеко не единственная цель, которую преследует фирма. Не менее важной сферой своей деятельности она считает помощь во внедрении новейших технологий работы с базами данных, в создании инфраструктуры производства и распространения программных продуктов, включающей развитые средства их разработки, маркетинга, продажи, технической поддержки х обучения.
В Clipper 5.0 реализована концепция открытой архитектуры. Это значит, что пользователь имеет возможность изменить, удалить или заменить любую компоненту пакета. Необходимость в открытой архитектуре возникает из-за того, что ни одна отдельно взятая группа программистов не может сделать всего, что потребуется потенциальным пользователем. Любому программисту открытая архитектура обеспечивает возможность сделать свою версию того, что уже есть в системе, или дополнить ее чем-то новым.
Если вы решили стать легальным пользователем системы Clipper 5-0, или у вас возникли вопросы, связанные с деятельностью фирмы Nantucket в СССР и с использованием ее программных продуктов, то вам следует обратиться ло адресу; 127018, Москва, ул.2-ая Ямская, д.15 или позвонить по телефону 289-44-77.
Рабочее поле "засеяно" таблицей характеристик популярных пакетов для статистической обработки экспериментальных данных и двумя поясняющими ее текстами. Теперь их можно "выращивать" - дополнять сведениями о новых программах, убирать сокращения и др.
F2 EDIT - редактирование. В окурсоренную ячейку электронной таблицы или базы данных можно записать исходную информацию либо числовой, либо литерной константой (128, "1990.11.06", "Среднее" и т.д.). Сюда же можно занести и формулу, указывающую машине, результат каких вычислений будет отображен в данной ячейке.
Машина, например, поймет, что в эту ячейку будет помещена формула сложения двух чисел, хранящихся в ячейках В2 и С4, а не цепочка литер "В2+С4", если ее ввод предварить нажатием клавиши F2. Эта же функциональная клавиша позволяет редактировать ранее введенную формулу (или просто число), вытаскивая ее из окурсоренной ячейки таблицы на край рабочего стола в специально отведенную для этой работы строку экрана дисплея. Бывает и наоборот: нужно предупредить машину о том, что в ячейку будет вводиться не алгебраическое выражение, а цепочка литер. Без такого предупреждения машина может оказать "медвежью услугу". Ну, например: вы собираетесь занести в базу данных телефон редакции журнала "Наука и жизнь", передвигаете курсорную рамку к свободной ячейке и набираете на клавиатуре девять символов 924-18-35. Нажата клавиша Enter, но на дисплее ие номер телефона, а число 871. Что такое?!. Все объясняется довольно просто: машина перестаралась, приняв номер телефона за приказ: "Возьми число 924, отними от него 18 и 35, а ответ запиши в окурсоренную ячейку!". Обычно машина сама понимает, что хочет ей сообщить человек - число, арифметическое действие или цепочку литер, и перед вводом новой информации не нужно подавать никаких условных сигналов типе нажатия клавиши F2 (см. выше) или клавиши пробела, означающей, что будет вводиться литерная константа: номер телефона, например. В случаях, таящих в себе двусмысленности (мы только что их описали), ввод или редактирование информации нужно предварять нажатием клавиши пробела (литерная константа) либо клавиши F2 (формула или число). В пакете MS Works ввод формулы, как помнит читатель, тоже предваряется особым сигналом - набором символа "равно". Этот же символ отмечает формулы еще одного популярного интегрированного пакета Lofus 1-2-3.
Итак, еще две строчки нашей шпаргалки: F2 - ввод или редактирование формул и чисел.
Пробел - ввод или редактирование цепочки литер.
F3 DRAG - перетащить. Мы уже говорили о том, что хороший интегрированный пакет должен имитировать работу человека за письменным столом см. рисунок, которым открывалось седьмое занятие нашей "Школы" (1/91), где описывался пакет MS Works (вторая, русифицированная версия). Функциональная клавиша F3 позволяет передвигать документы-фреймы по рабочему полю которое моделируется на экране дисплея с помощью пакета FW3.
Если, к примеру, нужно, чтобы один документ не загораживал другой, то достаточно поместить курсор на его заголовок, нажать клавишу F3 и поработать клавишами со стрелочками. Нажим на клавишу "стрелочка вниз" перетащит (to drag по-английски "тащить") таблицу на одну дисплейную строку вниз; нажим на клавишу "стрелочка вправо" - на одно экранное знакоместо вправо, и т.д. На новом месте таблица закрепляется нажатием клавиши Enter. Таким же образом можно перемещать и кабинеты, отображающие содержимое дисковой памяти машины, фреймы, входящие в контейнеры, сами контейнеры и все другое, что можно двигать на экране дисплея, создавая себе комфортные условия для работы.
Дополним шпаргалку: F3 - перемещение фреймов.
F4 SIZE - размер. Эта клавиша - напарница клавиши F3: она тоже помогает аккуратно размещать документы перед глазами пользователя. Говоря точнее, она позволяет изменять размеры фреймов (если курсор перед нажатием клавиши F4 охватывает весь документ, находясь на его заголовке), ширину колонок электронных таблиц или полей баз данных (если курсор находится в колонке таблицы или на попе базы данных). По умолчанию при создании новой таблицы или базы данных цепочкой команд Create Spreadsheet (или Create Database; см. рисунок в самом начале занятия) колонки таблицы или поля базы данных получаются шириной в девять знакомест. Такая ячейка часто оказывается прокрустовым ложем для цепочки литер, которую в нее потом пытаются втиснуть. Легендарный разбойник Прокруст в такой ситуации отрубал ноги высокому путнику, пожелавшему прилечь на его ложе, а если путник оказывался маленького роста, то вытягивал ему ноги. Пакет FW3 более дружествен к данным, которые человек вручает ему для хранения и обработки. Если окажется, что после заполнения очередной ячейки правая часть цепочки литер залезла в соседнюю колонку, то можно либо все так и оставить (такие записи, хранящиеся в одной ячейке, но раскинувшиеся на нескольких соседних пустых ячейках в одной строке, как правило, помещают в шапке таблицы), либо нажать клавишу F4, а затем поработать клавишей "стрелочка вправо", отодвигая правый край столбца, а вместе с ним всю правую часть таблицы, и расширяя тем самым колонку. Клавишей "стрелочка влево" этот же правый край столбца можно перемещать влево, сужая колонку. Новая ширина столбца фиксируется нажатием клавиши Enter.
Так часто случается с данными литерного типа: при непомерной длине они имеют обыкновение заползать в соседнюю справа ячейку. Числовые же данные в такой ситуации ведут себя более скромно. Если количество знаков числа больше размера отведенной для него колонки, то это число после его ввода и нажатия клавиши Enter преобразуется в цепочку звездочек: было, например, 12345.6789 получилось ********. С подобным явлением сталкиваются и программисты на Бейсике, пытающиеся заставить машину выполнить некорректный оператор, скажем, PRINT USING "###.####"; 2345.6789. Эти звездочки приглашают пользователя пакета FW3 либо через цепочку команд Numbers - Decimal Places изменить формат числа (задать не четыре, а два знака после запятой, например), либо расширить колонку клавишей F4.
Для сравнения скажем, что в пакете Eureka (см. 9/90) внести изменения в размер и местонахождение дисплейных окон можно после нажатия клавиши Scroll Lock. При этом "белые" стрелочные клавиши перетаскивают окна, а "серые" (расположенные на числовом поле) меняют их размер.
Запишем в нашу шпаргалку: F4 - изменение размеров.
FS RECALCULATING - пересчет. Еще раз напомним нашим читателям, что электронная таблица отличается от табулированного текста тем, что изменение значения числа-аргумента автоматически приводит к пересчету по введенным формулам. Но иногда такая автоматичность бывает излишней. Если таблица огромная и в ней нужно изменить многие исходные значения, то работа резко замедляется, если пересчет по формулам ведется каждый раз после ввода очередного числа-аргумента. В такой ситуации пользователь может попросить машину "не лезть поперек батьки в пекло" и все пересчитать только одни раз после ввода последнего числа-аргумента и нажатия клавиши F5. Иногда бывает необходимо наоборот нажимать эту клавишу несколько раз. Так приходится поступать при циклических расчетах методом последовательных приближений в электронной таблице, где есть перекрестные ссылки в формулах. Здесь важно определить порядок пересчета: по строкам или по столбцам. Отключение автоматического пересчета и определение его порядка ведется через команду: Options for Recalc (оптимизация при расчетах) под заголовком Numbers.
Отразим в шпаргалке сказанное: F5 - пересчет по формулам.
F6 SELECT. Эта клавиша позволяет выбрать часть текста, одну или несколько строк (колонок) или целый фрагмент электронной таблицы или базы данных для дальнейших сепаратных действий с ними: для распечатки через режим PRINT, удаления нажатием клавиши Delete; для переноса, копирования, защиты от редактирования, для задания формата чисел и т.п. При выделении фрагмента электронной таблицы или базы данных курсор устанавливают на одном из угловых элементов этого документе, нажимают клавишу F6 и при помощи клавиш "Стрелочка вправо (влево, вверх, вниз)" указывают границы фрагмента, а затем нажимают клавишу Enter. Выбираемая группа элементов будет менять свой цвет: было, например, белым по синему, стало синим по белому. Клавиша F6 обычно используется в паре с другими клавишами, например, с F7 или с F8. В первом случае (F6+F7) выделенный участок переносится на новое место, во втором (F6+F8) - копируется. Таким образом, совместное использование клавиш F6 и какой-либо другой заменяет ряд последовательных операций над несколькими ячейками и сокращает время на создание документа.
Продолжим шпаргалку: F6 - выбор фрагмента на рабочем поле.
F7 MOVE. Клавиша F7 очень удобна, когда редактируешь тексты и электронные таблицы. При редактировании текстов она позволяет переставлять символы, слова или целые абзацы, при редактировании электронных таблиц дает возможность переставлять содержимое ячеек, строк и столбцов ипи их комбинаций в рамках одного фрейма, а также переносить выбранные элементы одного фрейма в другой.
Еще одна строка в нашей шпаргалке: F7 - перемещение выбранного элемента документа на новое место.
F8 COPY. Эта клавиша просто незаменима для тех, кто не любит однообразной механической работы. Она позволяет копировать: во-первых, целые фреймы, во-вторых, выбранные при помощи клавиши F6 фрагменты фреймов, в-третьих, выбранные группы символов при редактировании (повторяющиеся несколько раз слово, формулу и т.п.).
Напомним нашим читателям, что при копировании формул адресация на ячейки с аргументами меняется "по-умному". Было, к примеру, =В2+С4, стало =C3+D5, если формула скопирована в "юго-восточном направлении" - вправо и вниз. Но иногда от такой услуги машины приходится "откупаться" - нажимать в конце не на клавишу Enter, а на клавишу "$". В этом случае адресация на ячейки не изменится.
Запишем в шпаргалку: F8 - копирование выбранного элемента документа или всего документа на новое место.
F9 ZOOM. Клавиша F9 очень удобна при работе с документами большого размера, когда границы документа, заданные при помощи клавиш F3 и F4, не дают возможности просмотреть его целиком. На этот случай в пакете FW3 предусмотрено максимально возможное удобство для человека - раскрытие рамки документа на весь экран дисплея. Повторное нажатие F9 восстанавливает фрейм в прежних размерах. Если помнит читатель, в пакете Eureka (9/90) подобной функцией нагружена клавиша F5.
Еще два слова в шпаргалке: F9 - "лупа".
F10 VIEW - преобразование вида документа. Эта функция имеет отношение к базам данных (перевод их в разные виды представлен в 1/91; помещенный там рисунок представляет базу данных по сотрудникам в двух формах: форма и таблица), контейнерам и кабинетам. Окурсорив имя какого-либо файла, с помощью клавиши F10 можно просмотреть его полные атрибуты: не только имя и размер, но и дату и время создания (вспомним переход от режима Brief к режиму Full в надстройке над DOS Nor/on Commander).
F11 дублирует клавишу "серый" минус для выхода из фрейма на его границу ипи для перехода к документу более высокого уровня.
F12 дублирует клавишу "серый" плюс для входа внутрь фрейма из его границы или для перехода к документу более низкого уровня.
Клавиш F11 и F12 на некоторых клавиатурах нет. Вот поэтому-то их функции "по совместительству" выполняют плюсовая и минусовая клавиши числового поля при погашенной лампочке Num Lock.
Итак, меню пакета FW3 активизировано, и на экране дисплея список блюд. Отметим наиболее интересные из них.
Disk. Обычно в программных продуктах этот заголовок меню имеет другое имя File (см. рассказы о пакете Eureka в 9/90 и о среде программирования QuickBASIC в 11/90). Тут собраны команды, связывающие компьютер с дисками и с дисковой операционной системой. Они позволяют взять файл по его имени, записать документ на диск в виде файла и продолжить работу с ним, записать его на диск с одновременным стиранием в памяти машины, очистить рабочий стол от фреймов, положив их на край стола, импортировать и экспортировать документы (несколькими строками ниже мы скажем, что это такое), временно выйти в дисковую операционную систему (DOS Access), либо совсем покинуть интегрированный пакет {QUIT FrameworkWi) и вернуться в среду дисковой операционной системы.
Export (экспорт) и Import (импорт) это те "карты", которыми козыряют разработчики интегрированных пакетов на рынке сбыта. Эти режимы позволяют использовать созданные в среде FW3 информационные объекты (тексты, электронные таблицы, базы данных) на диске они хранятся в особой форме, понятной только пакету FW3, о чем говорит расширение файлов "*.fw3") в других популярных программных средах: в текстовых процессорах WordStar и WordPerfect, в интегрированных пакетах Lotus 1 -2-3, Framework II (более ранняя версия), в электронных таблицах VisiCalc, MultiPlan, MultiMate, в системах управления базами данных dBASE и др.
Представьте себе, что вы работаете с Lotus 1-2-3, или с Framework II, или с первой версией MS Works и вам предлагают "последний писк моды" - интегрированные пакеты Framework III и MS Works 2.0. При всех их очевидных достоинствах вас одолевают сомнения. С помощью старых пакетов вы наработали много разных электронных таблиц, баз данных. Что же теперь, перейдя на новый пакет, все это выкидывать? Отнюдь нет! Новые пакеты не чураются своих предшественников и умеют в режиме экспорта считывать чужие файлы. Более того, в режиме импорта они могут переделать свои файлы в чужой формат. Так что вам не составит особого труда при желании преобразовать ваши базы данных и электронные таблицы в чужой формат и передать их владельцам пакетов Lotus 1-2-3 или Framework II. И отбросив сомнения, вы покупаете оба пакета и Framework III, и MS Works 2.0.
ОТ РЕДАКЦИИ. На предыдущем занятии, рассказывая про интегрированный пакет MS Works 2.0, мы отвели несколько абзацев встроенной в него системе управления базами данных (СУБД). Есть такая система и в пакете Framework III; мы планировали коснуться ее на текущем занятии. Но отклики читателей внесли коррективы в наши планы, и мы решили посвятить рассказу о СУБД отдельное занятие.
Этим рисунком мы убиваем двух зайцев: показываем, как в среде интегрированного пакета Framework III выглядит база данных в табличной форме, и выполняем многочисленные просьбы читателей, желающих знать основные характеристики отечественных персональных компьютеров.
Нельзя не согласиться с теми, кто ратует за это: ядром интегрированных пакетов остается текстовый процессор; встроенные в них базы данных и системы управления ими несут вспомогательную роль (наподобие калькулятора при текстовом процессоре), помогая, например, заполнить электронные бланки писем реквизитами адресатов. Между тем системы управления базами данных важны сами по себе. Мы могли бы пересказать здесь доводы читателей в пользу занятия, целиком отведенного теме СУБД, но ограничимся лишь аргументом, приведенным в письме калужанина В.Коршунова: "Владение информацией - это владение ситуацией". А овладеть информацией, хранящейся в базе данных, можно лишь с помощью системы управления этой самой базой...
Для одного из будущих занятий "Школы" мы анонсируем рассказ о СУБД Clipper 5.0, созданной фирмой Nantucket.
Уже ранняя версия этой системы ClipperSummer1'87 стала одним из самых популярных программных продуктов в мире и вот почему.
Clipper - это не интерпретирующее, а компилирующее программное средство. На занятии ло QuickBASIC (см. 11/90) было сказано, что в этой среде тексты программ можно компилировать в ЕХЕ-файлы, работающие "без няньки"-интерпретатора, а только под "патронажем" операционной системы. Это очень удобно: ведь операционной системой DOS обеспечены все персональные компьютеры, а что сверх того (языки программирования, различные СУБД и пр.) - то часто "от лукавого", то есть добытое "пиратским" способом. Clipper - компилятор, и это выгодно отличает его от других СУБД: с его помощью можно построить базу данных в виде дееспособного ЕХЕ-файла и передать любому заказчику, не требуя от него наличия в его машине чего-то иного помимо DOS.
Clipper прекрасно выступает "в дуэте" с другим популярным программным продуктом со средой программирования Microsoft С (кстати, она представляет собой тему одного из будущих занятий нашей "Школы") или с ассемблером. Такое содружество разноплановых средств дает в руки программиста отличный инструментарий для создания новых программ.
Clipper - это мощное средство жизнеобеспечения сетевых баз данных коллективного пользования. А мы знаем, что "плох тот персональный компьютер, который не мечтает стать генералом, пардон, терминалом компьютерной сети".
По оценкам экспертов Clipper и в нашей стране входит в десятку хит-парада программных продуктов. Число его копий в СССР по разным оценкам составляет от 20 до 60 тысяч, но почти все они нелегальные, приобретенные "пиратским" способом.
Это обстоятельство побудило фирму Nantucket в начале 1990 года выйти на советский рынок, чтобы дать возможность советским программистам придерживаться принятых во всем мире правил работы с программными продуктами. Clipper 5.0 продается и за рубли, и за деньги, то есть за свободно конвертируемую валюту.
Продажа системы Clipper далеко не единственная цель, которую преследует фирма. Не менее важной сферой своей деятельности она считает помощь во внедрении новейших технологий работы с базами данных, в создании инфраструктуры производства и распространения программных продуктов, включающей развитые средства их разработки, маркетинга, продажи, технической поддержки х обучения.
В Clipper 5.0 реализована концепция открытой архитектуры. Это значит, что пользователь имеет возможность изменить, удалить или заменить любую компоненту пакета. Необходимость в открытой архитектуре возникает из-за того, что ни одна отдельно взятая группа программистов не может сделать всего, что потребуется потенциальным пользователем. Любому программисту открытая архитектура обеспечивает возможность сделать свою версию того, что уже есть в системе, или дополнить ее чем-то новым.
Если вы решили стать легальным пользователем системы Clipper 5-0, или у вас возникли вопросы, связанные с деятельностью фирмы Nantucket в СССР и с использованием ее программных продуктов, то вам следует обратиться ло адресу; 127018, Москва, ул.2-ая Ямская, д.15 или позвонить по телефону 289-44-77.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
В 4/91 о компьютерах ничего не было.
5/91
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ДЕВЯТОЕ, где, как и обещано (см. 3/91), пойдет разговор о языке Clipper 5.0, предназначенном для создания баз данных. Он разработан фирмой Nantucket (США). Ведут занятие кандидат технических наук В.Ф.ОЧКОВ (преподаватель Московского энергетического института) и инженер О.В.МАТВЕЕВ (сотрудник московского НИИ).
Постоянный наш читатель, конечно, уже заметил, что у "Школы пользователя ЭВМ" понемногу складываются свои традиции.
Стиснутые узкими рамками семи журнальных страниц, которые редакция отводит под "Школу", и получая от читателей множество писем с просьбами дать интересную информацию из компьютерного мира, мы вынуждены "стрелять в двух зайцев": рассказывать, например, о языке QuickBASIC и давать в качестве предновогоднего подарка Бейсик-программу составления табеля-календаря (11/90); "втискивать" в электронные таблицы параметры популярных пакетов статобработки, а в базы данных - характеристики отечественных персональных компьютеров (3/91) и т.д. и т.п.
Не будем ломать сложившейся традиции и на этот раз. Но прежде предоставим слово, одному из наших читателей.
"Здравствуй, дорогая редакция! В моем письме речь пойдет о ценах на персональные компьютеры. Они довольно разные: например, БК-0010.01 стоит 750 рублей, а 8-разрядные машины - от 500 до 1000 руб. Между тем эти модели годятся только для досуга, учебными их при всем желании не назовешь. Но и для досуга это слишком дорого! Хороший персональный компьютер типа IBM PC/AT тоже можно купить, но по какой цене!!! Хотел бы я знать, сколько найдется инженеров в СССР, у которых "завалялось" 50-70 тысяч рублей?! Выходит, "персональный" компьютер по карману только довольно крупным организациям. У меня складывается такое впечатление, что наша промышленность еще долго будет раскачиваться с выпуском хороших персональных компьютеров, в то время как в Верховном Совете СССР готовится и скоро будет принят "Закон о въезде и выезде из страны". За границу поедут работать сотни тысяч людей, у них появится валюта, на которую они смогут купить нужные им вещи, в том числе и компьютеры. Поэтому возникает вопрос: каковы цены на компьютеры "там"? Буду очень признателен, если Вы опубликуете сводную таблицу, где помимо цен в долларах будут и другие характеристики персональных компьютеров, от простейших 8-разрядных, до AT, Macintosh и на 386-м процессоре. С уважением, Хоменко А.В., г.Уварово Тамбовской области."
Итак, первый "заяц" - информация о ценах на западном компьютерном рынке - взят на мушку. Второго "зайца" нетрудно увидеть в пушкинских строках (см. рисунок), взятых в качестве эпиграфа к нынешнему занятию. Перед нами - одна из картинок базы данных, созданной на СУБД, написанной на языке Clipper 5.0, под названием "Домашняя библиотека".
Виссарион Белинский назвал "Евгения Онегина" энциклопедией русской жизни. Эта характеристика не потеряла актуальности и в наше компьютерное время. Строфу XXIV из четвертой главы знаменитого романа в стихах можно толковать как работу Татьяны с базой данных - с сонником Мартына Задеки.
Тактовая частота (ТЧ) процессора - основная скоростная характеристика машин - дана в мегагерцах, емкость ОЗУ в килобайтах, а жесткого диска (винчестера) в мегабайтах. LCD - это жидкокристаллический дисплей, которым оборудуются работающие на батарейках и умещающиеся в кейсе портативные компьютеры - незаменимые спутники путешествующих бизнесменов и журналистов.
Итак, "убиваем двух зайцев" - рассказываем о программировании базы данных на языке Clipper 5.0 и наполняем эту базу информацией (см. рис.) о персональных компьютерах фирмы HighScreen, взяв за основу рекламу немецкого торгового дома Vobis, вложенную в прошлогодний декабрьский номер журнала "Stern". Цены, правда, в немецких марках.
Все машины фирмы HighScreen, перечисленные в таблице, снабжены дисковыми операционными системами MS-DOS 4.01 (тема одного из будущих занятий "Школы") или DR-DOS 5.0, а некоторые и немецкой версией системы MS Works 2.0. Портативный редакционный компьютер фирмы Schneider, на котором "доводился" этот урок, кстати, также изначально был укомплектован MS-DOS 3.3, и MS WORKS. Как видим, наш выбор этого популярного интегрированного пакета для седьмого занятия "Школы" (см. "Наука и жизнь" 1,3/91) оказался верным. "Если гора не идет к Магомеду, то Магомед идет к горе" - пословица верна: если пользователи персональных компьютеров не покупают матобеспечение для своих машин, а вынуждены "пиратским" образом переписывать его друг у друга, то "стреляные" разработчики программ и ЭВМ делают "подарочные наборы" так, чтобы покупатель компьютера сразу оплачивал и "тело", и "душу" машины, имея потом под рукой минимум программных средств: операционная система, текстовый процессор, электронные таблицы и простенькая СУБД.
Наш пример с компьютерами фирмы HighScreen, конечно, предельно прост. Для базы данных (см. рис.) из одиннадцати записей с девятью полями вполне достаточно такой системы управления, какая находится в голове человека. Вся нужная информация - как на ладони. А вот в базе данных по портативным компьютерам, приведенной в первом номере за 1990 год международного компьютерного журнала "Новинтех", без какого-либо технического средства копаться уже трудно. В ней 98 записей, разбросанных на одиннадцати полях: тип компьютера, компания-изготовитель, емкость винчестера (от нуля, то есть жесткого диска нет, до 100 мегабайт), тип дисплея (просто LCD, LCD с подсветкой, газопламенный), цена в долларах (от 949 до 9495), емкость ОЗУ (от 256 Кбайт до 16 Мбайт), высота, ширина, длина, вес (от 4.5 до 27 фунтов) и тип процессора.
Другой пример. Открываем некоторую газету и видим объявление о продаже базы данных по 160000 предприятиям с полями: наименования, адреса, отрасли, телефоны, Ф.И.О. руководителей, предлагаемые товары или услуги, типы собственности. Такая база данных, как понимает читатель,- это настоящий спасательный круг для директоров заводов, уходящих от командно-административной опеки с гарантированной поставкой исходных материалов и сырья и ныряющих в бурные воды рынка. Но без системы управления базой данных утонуть можно еще на подходах к этому самому рынку, которым сейчас нас пугают,- в ста шестидесяти тысячах записей с шестью полями.
Сформулируем наши требования к нужной нам сейчас системе управления базой данных (СУБД), которую мы построим на языке Clipper 5.0:
1. База данных - это таблица, колонки которой, как мы уже знаем, называются полями, а строки - записями. Пользователь "ползает" экраном дисплея по таблице, нажимая клавиши управления курсором, рассматривает ее и при необходимости вносит коррективы, вставляет новые записи (поля) или стирает ненужные, заполняет пустые ячейки, а то и стирает ненужные.
2. Более быстрый переход к искомой информации ведется через команду "Поиск", когда пользователь просит машину перебросить курсор-указатель на запись, содержащую ключевое слово: "Пойди туда - не знаю куда, найди то - ЗНАЮ что". Такой инструмент есть у любого мало-мальски уважающего себя текстового процессора: вспомним популярнейший Norton Commander с функциями F3 - просмотр, а затем F7 - поиск. СУБД обычно дополняют неким локализатором поиска, заставляющим, например, машину искать нужную цепочку букв не во всей базе данных, а только в оговоренной области. Это и ускоряет поиск, и делает его более точным: ведь на ИВАНОВа можно выйти не только в поле "Фамилия И.О.", но и в самых неожиданных местах, например, в поле "Адрес" (г.ИВАНОВО, ИВАНОВская ул.). Хорошая СУБД ведет поиск по принципу "Одну ягодку беру, на другую смотрю, третью примечаю, а четвертая мерещится": машина отмечает курсором ближайшую к исходной точке найденную запись с ключевым словом и сообщает пользователю, сколько всего имеется таких ключевых слов в базе данных, приглашая пользователя перейти или к следующему слову (нажать клавишу "стрелочка вниз"), или к предыдущему ("стрелочка вверх"), или закончить поиск, удовлетворившись найденным (клавиша "Esc"). Кстати, поиск пушкинской цитаты, послужившей нам эпиграфом, тоже велся по ключевому слову "Мартын Задека". Попутно заметим что, пользователи ЭВМ стали обращаться к классической литературе не реже, чем к математическим программам. Это побудило разработчиков новейшего компьютера NeXT занести в его память не только чисто прикладные системы (пакет Mathematica, язык С, текстовый процессор WriteNow и прочее), но и... полное собрание сочинений Шекспира (в издании Oxford University Press), оксфордский словарь цитат, академический тезаурус Вебстера и девятое издание академического словаря Вебстера.
Хозяин СУБД может почувствовать себя на месте большого начальника, требующего от своих референтов и помощников, чтобы они клали ему на стол не всю исходную информацию, а выжимку из нее, квинтэссенцию. Можно приказать машине: "По щучьему велению, по моему хотению оставь перед моими светлыми очами не все записи и поля, а только те, какие меня в данный момент интересуют". С полями дело обстоит проще: пользователь компьютера может временно "захлопнуть" те из них, информация по которым в данный момент его не интересует и не влияет на поиск, а только "путается под ногами". Фильтрация базы данных (а именно так в теории СУБД называется операция целенаправленной "усушки" записей) проводится по более сложным приказаниям человека. Не по "щучьему велению, по моему хотению", конечно, а по командам, вид которых для начинающего пользователя персонального компьютера тоже бывает не совсем ясен. Примеры? Пожалуйста. Человеку хочется, чтобы на дисплее остались записи только по компьютерам с оперативной памятью не менее 1 Мбайт и ценою не более 3000 марок. Вот формула для такой фильтрации базы данных: ОЗУ>=1024 .AND. Цена<=3000.
Если же человек желает также отсеять компьютеры без винчестера и без второго дисковода для гибких дисков, то есть заведомо негодные для работы, то формула, которую он должен сообщить машине, может выглядеть так: Винчестер<>"нет" .OR. NOT(Диск В="нет").
Вот тут-то и пригодится нашему читателю знание азов формальной логики и булевой алгебры с ее тремя основными действиями: NOT (отрицание), AND (и это, и это) и OR (или это, или это), которые в скрытой форме даются в разделе нашего журнала "Психологический практикум" с историями о детективе Людовике и инспекторе Варнике.
Для облегчения работы с базой данных система управления ею может быть дополнена еще кое-чем полезным и даже на первый взгляд экзотическим.
Например, возможностью сортировки записей по какому-то полю. По приказанию человека машина может быстро и безошибочно расставить наши компьютеры в порядке возрастания тактовой частоты, объема ОЗУ, емкости винчестера или цены компьютера, сгруппировать записи по марке процессора или по типу дисплея.
Поля базы данных могут отображать не только исходную информацию, но и результат расчета по введенным пользователем формулам. Вернемся к письму, которым мы начали данное занятие "Школы". Читатель А.В.Хоменко просил дать цены в долларах, а не в немецких марках. Эта недоработка легко поправима: поле "Цена" нужно переименовать в "Цена в DM", a правее создать новое с именем "Цена в $ US", записи которой будут хранить не числа, а формулу: Цена в DM/1.5423 (см. газету "Известия" от 8 марта 1991). А чтобы базу данных по компьютерам привязать к нашей действительности, нужно еще правее в поле "Цена в руб." записать формулу 20*Цена в DM (см. газету "Коммерсантъ" от 4 марта 1991г.).
СУБД должна уметь по приказу пользователя структурировать записи в базе данных по примеру того, как размещаются файлы на дисках по директориям и по субдиректориям (см. "Наука и жизнь", 1/90) или как хранятся тексты в библиотеке, сгруппированные по собраниям сочинений, по отдельным томам, произведениям, главам (см. рисунок-эпиграф). Ведь искомая информация в вышеупомянутой базе данных по 160000 предприятиям найдется намного быстрее, если не просто просматривать линейно расположенные записи, а спускаться вниз по иерархии: "Народное хозяйство - промышленность - машиностроение - автомобилестроение - производство карбюраторов" или "СССР - РСФСР - Самарская обл. - г.Тольятти".
Итак, требования к нашей СУБД сформированы. Остается только показать, как быстро и изящно она строится с помощью языка Clipper 5.0.
Впрочем, читатель вправе заметить, что вполне работоспособную несложную СУБД можно создать и иными, неспециализированными средствами, например, с помощью старого нашего приятеля - с помощью Бейсика. Таким "забиванием гвоздей логарифмической линейкой" грешила рубрика "Человек и компьютер" (1986-1990), открывшаяся в нашем журнале в февральском номере за 1986 год заметкой В.Соловьева "Как я заведовал складом химреактивов". Там была описана Бейсик-программа для управления базой данных по реактивам и реагентам химической лаборатории. Эта тема очень волновала корреспондентов рубрики и имела продолжение - см., например, заметку "Кому нужна амбарная книга" в 2/89г.). Но еще раз повторяем: создавать СУБД пытаться пахать в поле на арабском скакуне или стараться выиграть скачки на тяжеловозе.
Программист, вооруженный Clipper'ом 5.0, подобен поэту, с сожалением смотрящему на прозаика - на программиста без Clipper'а:
Читатели могут подумать, что компьютер, на котором авторы писали эту статью, хранит базу данных Сочинения А.С.Пушкина" и что из нее с помощью СУБД вытаскиваются цитаты, как кролики из шляпы фокусника. Это предположение не так уж фантастично, если вспомнить про память компьютер NeXT с Шекспиром и латинскими цитатами. Образованному и культурному человеку можно простить незнание языков программирования, но не классической литературы.
Ну, а теперь поясним, из чего будет состоять программа "База данных" на Clipper'e.
У нас будет задействована всего лишь одна переменная nCHOICE в операторе выбора CASE, которую необходимо объявить в заголовке программы: LOCAL nCHOICE:=1. Проверяем, есть ли на диске файл с именем "BAZA.DBF", хранящий базу данных: IF (FILE("BAZA.DBF")). Если файл есть, то загружаем его и используем: USE BAZA. Если нет (ELSE), то переходим к подпрограмме создания базы данных: CCREATEQ. Конец альтернативного блока отмечаем словом ENDIF.
Теперь мы будем строить на дисплее меню, включив предварительно режим закольцовывания SET WRAP ON, когда курсорная рамка-указатель, дойдя до последнего "блюда", не упирается в тупик, а перескакивает в начало меню - см. рисунок-схему.
Типичная схема работы с меню пользователя: курсорной рамкой можно пробегать по коротким позициям, а в нижней части дисплея эта позиция расшифровывается. Нажатие клавиши Enter фиксирует выбор человека.
Далее мы просим машину, чтобы сообщения-подсказки появлялись в центре 23-й экранной строки: SET MESSAGE TO 23 CENTER, то есть там, где им и положено быть - в "подвале" дисплея. Наши "Уроки пользователя ЭВМ" опираются на концепцию структурного программирования, одним из постулатов которой утверждается правило "Использование меток - это признак низкой культуры программирования". Программисты так боятся прослыть "некультурными", что избегают меток и в тех случаях, где их ставить, как говорится, сам Бог велел, например, при организации бесконечного цикла запроса режима работы с базой данных. У нас он заменен циклом "пока" (DO WHILE ... ENDDO) с никогда не меняющим свое значение булевым выражением .Т. в заголовке: выполняй тело цикла до тех пор, пока "рак на горе не свистнет".
На чем же машина "зациклилась"?
Хороший лектор перед очередной фразой, как правило, откашливается. Хорошая же машина - очищает экран дисплея командой CLEAR SCREEN. Четыре последующих строки задают меню выбора режима работы с базой данных: две цифры, разделенные запятой, указывают машине строку и столбец, где писать названия "блюда" на выбор (PROMPT - суфлировать, по-английски). После слова MESSAGE записаны соответствующие подсказки, рекламирующие текущее "блюдо", перечисленное в меню (см. рис. выше): "СОЗДАНИЕ НОВОЙ БАЗЫ ДАННЫХ", "ПРОСМОТР, РЕДАКТИРОВАНИЕ И ДОБАВЛЕНИЕ НОВЫХ ЗАПИСЕЙ", "ПОИСК НУЖНЫХ ЗАПИСЕЙ" и, наконец, "ВОЗВРАТ В DOS". Выбранный номер позиции меню будет занесен в переменную nCHOICE оператором MENU TO nCHOICE. Далее программа заставляет (DO) машину вызывать функции, которые пользователь создал для различных случаев (CASE) работы с базой. Обезьяну, говорят, довольно просто научить открывать водопроводный кран, чтобы напиться, но почти невозможно приучить ее закрывать воду за собой. С подобной проблемой сталкиваются и неопытные программисты, открывая файлы, но забывая закрывать их после использования (USE - см. начало программы). Мы же рабочий файл "BAZA" закроем (CLOSE) перед возвратом (RETURN) в DOS.
Теперь наступила пора разобраться с функциями пользователя. Объявляем функцию поиска нужной информации в базе данных: FUNCTION FFIND(). Выбранное имя не означает, что программист, создававший функцию, заика (FFind вместо Find, от английского "искать"). Двойное F будет отличать функцию пользователя от стандартной с именем FIND(), хранящейся в библиотеке Clipper'a. При использовании функции FFIND() нужна локальная литерная переменная cFLAG длиною в 70 символов, которая и объявляется оператором LOCAL cFLAG:=SPACE(70). В нее будет вводится формула фильтрации базы - см. следующий оператор @ 1,1 SAY "ВВЕДИТЕ УСЛОВИЯ" GET cFLAG, то есть в описанном нами выше случае после ввода признака поиска записей и выполнения оператора READ переменная cFLAG будет содержать строку "ОЗУ>=1024 .AND. ЦЕНА<=3000". Заметим, что если пользователь окажется очень привередлив и вводимый признак будет содержать более 70 символов, то придется исправить цифру 70 в функции SPACE на другое число. Оператор SET FILTER TO &cFLAG фиксирует условие, содержащееся в переменной cFLAG в качестве жесткой директивы не пропускать на экран ни одну запись, не удовлетворяющую этому условию. Однако эта директива начинает действовать не моментально, а только после особого распоряжения, которым является любое действие с базой данных. Лучше всего, если этим действием будет перевод указателя базы данных с текущей записи на самую первую, "верхнюю". Для этого-то и используется оператор GO ТОР. Рекомендуется всегда выполнять перевод указателя базы данных непосредственно после оператора SET FILTER TO. Следующий далее вызов функции BROWSE() осуществит вывод на экран дисплея базы данных, но уже без "отсеянных" командой SET FILER ТО &cFLAG, начиная с текущей записи, с записи, на которую установлен указатель - с первой в нашем случае, поскольку мы перевели указатель в начало базы данных. Однако возможности функции BROWSE() не ограничиваются простым показом: в том случае, если записей, удовлетворяющих введенным нами условиям, больше, чем их может поместиться одновременно на экране, функция BROWSE() позволит, перемещаясь последовательно от записи к записи, добраться до любой из них осуществляя так называемый "скроллинг", то есть прокрутку строк экрана сверху вниз или снизу вверх в зависимости от того, в каком направлении двигают курсор. Помимо этого работа с функцией BROWSE() дает возможность доступа ко всем полям записей - можно менять их содержимое, а также заводить новые записи или уничтожать старые. Короче говоря, функция BROWSE() достаточно интеллектуальна, чтобы самостоятельно разобраться, в какое место экрана и в каком формате выводить информацию. Те, кому доводилось организовывать подобные операции на других языках, поймут, почему авторы так подробно описывают эту функцию. Наличие подобных средств делает программирование все более творческим процессом - труженики клавиатуры и дисплея освобождаются при этом от рутинной работы. Разработчики Clipper'a смогли удачно подобрать целую обойму функций и процедур языка, позволяющих вытворять с базами данных чудеса короткими и простыми командами. Для выхода из режима просмотра и редактирования нажимается клавиша Esc. Пользователю необходимо только помнить, что ошибка ввода (неверное имя поля в формуле фильтра, например) аварийно прервет выполнение программы. Но этого легко избежать, если после ввода формулы организовать контрольно-пропускной пункт с соответствующими проверками. Следует отметить, что в языке Clipper 5.0 имеется более мощное средство организации просмотра и редактирования баз данных - функция DBEDIT. Мы же остановили свой выбор на BROWSE для того, чтобы сделать программу более простой и наглядной.
Пришло время рассказать о еще одном свойстве оператора SET FILTER. Начиная с момента активизации фильтр действует постоянно до тех пор, пока он не будет отменен. Оператор SET FILTER TO без параметров отменяет действие ранее установленного фильтра. Последний оператор подпрограммы передает управление туда, откуда подпрограмма была вызвана - в основную программу.
После всего сказанного о подпрограмме FFIND останавливаться на подпрограмме EEDIT, видимо, не имеет смысла, поскольку она очень похожа на предыдущую.
Перейдем к процедуре создания базы данных. В результате выполнения первого оператора CREATE TmpExt будет создана база данных о будущей базе данных с полями Field_name (имя_поля), Field_type (тип_поля), Field_len (длина_поля) и Field_dec (десятичное_поле), записи которых хранят информацию об полях новой базы данных: имя поля (Тип, Процессор и т.д.), тип поля (в нашей базе данных их два - литерный и числовой), максимальная длина литерной записи и число знаков после запятой в числовой записи.
Идея здесь в том, что создается служебная база данных, каждая запись которой содержит информацию об одном поле базы данных, которую мы собираемся создать. Оператор USE помещает в рабочую область вновь созданную "базу данных о базе данных". Логическая переменная LMore нужна для того, чтобы продемонстрировать еще один способ выхода из цикла. Итак, первоначально мы присваиваем переменной значение .Т. - True (истинно). Далее идет уже знакомый нам оператор цикла, который будет выполнять тело цикла до тех пор, пока переменная LMore не примет значения .F. - False (ложно). До этого база данных TmpExt была пуста - оператор APPEND BLANK добавляет запись - в нашем случае создает первую запись в базе данных. Далее идут операторы осуществляющие ввод конкретных значений в поля текущей записи базы данных. Последний оператор тела цикла присваивает переменной LMore значение .Т., если что-нибудь было введено в поле Field_name. Если же обнаруживается, что ничего не введено в это поле, то переменной LMore присваивается значение .F. Затем управление передается на начало цикла, где происходит проверка переменной LMore, и в случае, если она имеет значение .F. (рак все-таки свистнул), осуществляется выход из цикла. Заметим, что вместо описанного выше цикла можно было использовать функцию BROWSE(), но тогда мы бы лишились удовольствия продемонстрировать еще один прием программирования. Первый за циклом оператор уничтожает последнюю запись базы данных, ту самую, у которой первое поле осталось пустым. Это, как мы отметили, будет признаком выхода из цикла. Однако в действительности последняя запись не будет уничтожена окончательно, а лишь помечена специальным образом. Это делается для того чтобы, сгоряча пользователь не потерял необходимую информацию, например, телефон любимой девушки. В нашем случае мы уверены в своей правоте - запись с первым пустым полем нам действительно не нужна, и поэтому мы даем команду уже окончательно уничтожить все помеченные к уничтожению записи. Оператор CREATE BAZA FROM TmpExt создает пустую базу данных с именем BAZA и структурой из базы данных TmpExt. Для того, чтобы не "замусорить" диск временно созданным файлом TmpExt, уничтожим его оператором ERASE TmpExt.dbf. Последний оператор RETURN завершает функцию пользователя и передает управление вызвавшей ее программе.
Необходимо отметить, что подпрограмма CCREATE практически полностью повторяет один из примеров, приведенных в документации по Clipper'y 5.0. Мы настоятельно рекомендуем внимательно изучить все примеры, содержащиеся в документации. Там вы найдете заготовки практически на все случаи жизни. Этим советом, а также листингом рассмотренной программы мы и заканчиваем наш урок.
Опытный программист знает, что написать функции пользователя - это почти наполовину составить требуемую программу. В нашей Клиппер-программе на некоторых строках записан не один оператор, а несколько (ох уж этот дефицит журнального пространства!)
5/91
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
ЗАНЯТИЕ ДЕВЯТОЕ, где, как и обещано (см. 3/91), пойдет разговор о языке Clipper 5.0, предназначенном для создания баз данных. Он разработан фирмой Nantucket (США). Ведут занятие кандидат технических наук В.Ф.ОЧКОВ (преподаватель Московского энергетического института) и инженер О.В.МАТВЕЕВ (сотрудник московского НИИ).
Постоянный наш читатель, конечно, уже заметил, что у "Школы пользователя ЭВМ" понемногу складываются свои традиции.
Стиснутые узкими рамками семи журнальных страниц, которые редакция отводит под "Школу", и получая от читателей множество писем с просьбами дать интересную информацию из компьютерного мира, мы вынуждены "стрелять в двух зайцев": рассказывать, например, о языке QuickBASIC и давать в качестве предновогоднего подарка Бейсик-программу составления табеля-календаря (11/90); "втискивать" в электронные таблицы параметры популярных пакетов статобработки, а в базы данных - характеристики отечественных персональных компьютеров (3/91) и т.д. и т.п.
Не будем ломать сложившейся традиции и на этот раз. Но прежде предоставим слово, одному из наших читателей.
"Здравствуй, дорогая редакция! В моем письме речь пойдет о ценах на персональные компьютеры. Они довольно разные: например, БК-0010.01 стоит 750 рублей, а 8-разрядные машины - от 500 до 1000 руб. Между тем эти модели годятся только для досуга, учебными их при всем желании не назовешь. Но и для досуга это слишком дорого! Хороший персональный компьютер типа IBM PC/AT тоже можно купить, но по какой цене!!! Хотел бы я знать, сколько найдется инженеров в СССР, у которых "завалялось" 50-70 тысяч рублей?! Выходит, "персональный" компьютер по карману только довольно крупным организациям. У меня складывается такое впечатление, что наша промышленность еще долго будет раскачиваться с выпуском хороших персональных компьютеров, в то время как в Верховном Совете СССР готовится и скоро будет принят "Закон о въезде и выезде из страны". За границу поедут работать сотни тысяч людей, у них появится валюта, на которую они смогут купить нужные им вещи, в том числе и компьютеры. Поэтому возникает вопрос: каковы цены на компьютеры "там"? Буду очень признателен, если Вы опубликуете сводную таблицу, где помимо цен в долларах будут и другие характеристики персональных компьютеров, от простейших 8-разрядных, до AT, Macintosh и на 386-м процессоре. С уважением, Хоменко А.В., г.Уварово Тамбовской области."
Итак, первый "заяц" - информация о ценах на западном компьютерном рынке - взят на мушку. Второго "зайца" нетрудно увидеть в пушкинских строках (см. рисунок), взятых в качестве эпиграфа к нынешнему занятию. Перед нами - одна из картинок базы данных, созданной на СУБД, написанной на языке Clipper 5.0, под названием "Домашняя библиотека".
Виссарион Белинский назвал "Евгения Онегина" энциклопедией русской жизни. Эта характеристика не потеряла актуальности и в наше компьютерное время. Строфу XXIV из четвертой главы знаменитого романа в стихах можно толковать как работу Татьяны с базой данных - с сонником Мартына Задеки.
Тактовая частота (ТЧ) процессора - основная скоростная характеристика машин - дана в мегагерцах, емкость ОЗУ в килобайтах, а жесткого диска (винчестера) в мегабайтах. LCD - это жидкокристаллический дисплей, которым оборудуются работающие на батарейках и умещающиеся в кейсе портативные компьютеры - незаменимые спутники путешествующих бизнесменов и журналистов.
Итак, "убиваем двух зайцев" - рассказываем о программировании базы данных на языке Clipper 5.0 и наполняем эту базу информацией (см. рис.) о персональных компьютерах фирмы HighScreen, взяв за основу рекламу немецкого торгового дома Vobis, вложенную в прошлогодний декабрьский номер журнала "Stern". Цены, правда, в немецких марках.
Все машины фирмы HighScreen, перечисленные в таблице, снабжены дисковыми операционными системами MS-DOS 4.01 (тема одного из будущих занятий "Школы") или DR-DOS 5.0, а некоторые и немецкой версией системы MS Works 2.0. Портативный редакционный компьютер фирмы Schneider, на котором "доводился" этот урок, кстати, также изначально был укомплектован MS-DOS 3.3, и MS WORKS. Как видим, наш выбор этого популярного интегрированного пакета для седьмого занятия "Школы" (см. "Наука и жизнь" 1,3/91) оказался верным. "Если гора не идет к Магомеду, то Магомед идет к горе" - пословица верна: если пользователи персональных компьютеров не покупают матобеспечение для своих машин, а вынуждены "пиратским" образом переписывать его друг у друга, то "стреляные" разработчики программ и ЭВМ делают "подарочные наборы" так, чтобы покупатель компьютера сразу оплачивал и "тело", и "душу" машины, имея потом под рукой минимум программных средств: операционная система, текстовый процессор, электронные таблицы и простенькая СУБД.
Наш пример с компьютерами фирмы HighScreen, конечно, предельно прост. Для базы данных (см. рис.) из одиннадцати записей с девятью полями вполне достаточно такой системы управления, какая находится в голове человека. Вся нужная информация - как на ладони. А вот в базе данных по портативным компьютерам, приведенной в первом номере за 1990 год международного компьютерного журнала "Новинтех", без какого-либо технического средства копаться уже трудно. В ней 98 записей, разбросанных на одиннадцати полях: тип компьютера, компания-изготовитель, емкость винчестера (от нуля, то есть жесткого диска нет, до 100 мегабайт), тип дисплея (просто LCD, LCD с подсветкой, газопламенный), цена в долларах (от 949 до 9495), емкость ОЗУ (от 256 Кбайт до 16 Мбайт), высота, ширина, длина, вес (от 4.5 до 27 фунтов) и тип процессора.
Другой пример. Открываем некоторую газету и видим объявление о продаже базы данных по 160000 предприятиям с полями: наименования, адреса, отрасли, телефоны, Ф.И.О. руководителей, предлагаемые товары или услуги, типы собственности. Такая база данных, как понимает читатель,- это настоящий спасательный круг для директоров заводов, уходящих от командно-административной опеки с гарантированной поставкой исходных материалов и сырья и ныряющих в бурные воды рынка. Но без системы управления базой данных утонуть можно еще на подходах к этому самому рынку, которым сейчас нас пугают,- в ста шестидесяти тысячах записей с шестью полями.
Сформулируем наши требования к нужной нам сейчас системе управления базой данных (СУБД), которую мы построим на языке Clipper 5.0:
1. База данных - это таблица, колонки которой, как мы уже знаем, называются полями, а строки - записями. Пользователь "ползает" экраном дисплея по таблице, нажимая клавиши управления курсором, рассматривает ее и при необходимости вносит коррективы, вставляет новые записи (поля) или стирает ненужные, заполняет пустые ячейки, а то и стирает ненужные.
2. Более быстрый переход к искомой информации ведется через команду "Поиск", когда пользователь просит машину перебросить курсор-указатель на запись, содержащую ключевое слово: "Пойди туда - не знаю куда, найди то - ЗНАЮ что". Такой инструмент есть у любого мало-мальски уважающего себя текстового процессора: вспомним популярнейший Norton Commander с функциями F3 - просмотр, а затем F7 - поиск. СУБД обычно дополняют неким локализатором поиска, заставляющим, например, машину искать нужную цепочку букв не во всей базе данных, а только в оговоренной области. Это и ускоряет поиск, и делает его более точным: ведь на ИВАНОВа можно выйти не только в поле "Фамилия И.О.", но и в самых неожиданных местах, например, в поле "Адрес" (г.ИВАНОВО, ИВАНОВская ул.). Хорошая СУБД ведет поиск по принципу "Одну ягодку беру, на другую смотрю, третью примечаю, а четвертая мерещится": машина отмечает курсором ближайшую к исходной точке найденную запись с ключевым словом и сообщает пользователю, сколько всего имеется таких ключевых слов в базе данных, приглашая пользователя перейти или к следующему слову (нажать клавишу "стрелочка вниз"), или к предыдущему ("стрелочка вверх"), или закончить поиск, удовлетворившись найденным (клавиша "Esc"). Кстати, поиск пушкинской цитаты, послужившей нам эпиграфом, тоже велся по ключевому слову "Мартын Задека". Попутно заметим что, пользователи ЭВМ стали обращаться к классической литературе не реже, чем к математическим программам. Это побудило разработчиков новейшего компьютера NeXT занести в его память не только чисто прикладные системы (пакет Mathematica, язык С, текстовый процессор WriteNow и прочее), но и... полное собрание сочинений Шекспира (в издании Oxford University Press), оксфордский словарь цитат, академический тезаурус Вебстера и девятое издание академического словаря Вебстера.
Хозяин СУБД может почувствовать себя на месте большого начальника, требующего от своих референтов и помощников, чтобы они клали ему на стол не всю исходную информацию, а выжимку из нее, квинтэссенцию. Можно приказать машине: "По щучьему велению, по моему хотению оставь перед моими светлыми очами не все записи и поля, а только те, какие меня в данный момент интересуют". С полями дело обстоит проще: пользователь компьютера может временно "захлопнуть" те из них, информация по которым в данный момент его не интересует и не влияет на поиск, а только "путается под ногами". Фильтрация базы данных (а именно так в теории СУБД называется операция целенаправленной "усушки" записей) проводится по более сложным приказаниям человека. Не по "щучьему велению, по моему хотению", конечно, а по командам, вид которых для начинающего пользователя персонального компьютера тоже бывает не совсем ясен. Примеры? Пожалуйста. Человеку хочется, чтобы на дисплее остались записи только по компьютерам с оперативной памятью не менее 1 Мбайт и ценою не более 3000 марок. Вот формула для такой фильтрации базы данных: ОЗУ>=1024 .AND. Цена<=3000.
Если же человек желает также отсеять компьютеры без винчестера и без второго дисковода для гибких дисков, то есть заведомо негодные для работы, то формула, которую он должен сообщить машине, может выглядеть так: Винчестер<>"нет" .OR. NOT(Диск В="нет").
Вот тут-то и пригодится нашему читателю знание азов формальной логики и булевой алгебры с ее тремя основными действиями: NOT (отрицание), AND (и это, и это) и OR (или это, или это), которые в скрытой форме даются в разделе нашего журнала "Психологический практикум" с историями о детективе Людовике и инспекторе Варнике.
Для облегчения работы с базой данных система управления ею может быть дополнена еще кое-чем полезным и даже на первый взгляд экзотическим.
Например, возможностью сортировки записей по какому-то полю. По приказанию человека машина может быстро и безошибочно расставить наши компьютеры в порядке возрастания тактовой частоты, объема ОЗУ, емкости винчестера или цены компьютера, сгруппировать записи по марке процессора или по типу дисплея.
Поля базы данных могут отображать не только исходную информацию, но и результат расчета по введенным пользователем формулам. Вернемся к письму, которым мы начали данное занятие "Школы". Читатель А.В.Хоменко просил дать цены в долларах, а не в немецких марках. Эта недоработка легко поправима: поле "Цена" нужно переименовать в "Цена в DM", a правее создать новое с именем "Цена в $ US", записи которой будут хранить не числа, а формулу: Цена в DM/1.5423 (см. газету "Известия" от 8 марта 1991). А чтобы базу данных по компьютерам привязать к нашей действительности, нужно еще правее в поле "Цена в руб." записать формулу 20*Цена в DM (см. газету "Коммерсантъ" от 4 марта 1991г.).
СУБД должна уметь по приказу пользователя структурировать записи в базе данных по примеру того, как размещаются файлы на дисках по директориям и по субдиректориям (см. "Наука и жизнь", 1/90) или как хранятся тексты в библиотеке, сгруппированные по собраниям сочинений, по отдельным томам, произведениям, главам (см. рисунок-эпиграф). Ведь искомая информация в вышеупомянутой базе данных по 160000 предприятиям найдется намного быстрее, если не просто просматривать линейно расположенные записи, а спускаться вниз по иерархии: "Народное хозяйство - промышленность - машиностроение - автомобилестроение - производство карбюраторов" или "СССР - РСФСР - Самарская обл. - г.Тольятти".
Итак, требования к нашей СУБД сформированы. Остается только показать, как быстро и изящно она строится с помощью языка Clipper 5.0.
Впрочем, читатель вправе заметить, что вполне работоспособную несложную СУБД можно создать и иными, неспециализированными средствами, например, с помощью старого нашего приятеля - с помощью Бейсика. Таким "забиванием гвоздей логарифмической линейкой" грешила рубрика "Человек и компьютер" (1986-1990), открывшаяся в нашем журнале в февральском номере за 1986 год заметкой В.Соловьева "Как я заведовал складом химреактивов". Там была описана Бейсик-программа для управления базой данных по реактивам и реагентам химической лаборатории. Эта тема очень волновала корреспондентов рубрики и имела продолжение - см., например, заметку "Кому нужна амбарная книга" в 2/89г.). Но еще раз повторяем: создавать СУБД пытаться пахать в поле на арабском скакуне или стараться выиграть скачки на тяжеловозе.
Программист, вооруженный Clipper'ом 5.0, подобен поэту, с сожалением смотрящему на прозаика - на программиста без Clipper'а:
Читатели могут подумать, что компьютер, на котором авторы писали эту статью, хранит базу данных Сочинения А.С.Пушкина" и что из нее с помощью СУБД вытаскиваются цитаты, как кролики из шляпы фокусника. Это предположение не так уж фантастично, если вспомнить про память компьютер NeXT с Шекспиром и латинскими цитатами. Образованному и культурному человеку можно простить незнание языков программирования, но не классической литературы.
Ну, а теперь поясним, из чего будет состоять программа "База данных" на Clipper'e.
У нас будет задействована всего лишь одна переменная nCHOICE в операторе выбора CASE, которую необходимо объявить в заголовке программы: LOCAL nCHOICE:=1. Проверяем, есть ли на диске файл с именем "BAZA.DBF", хранящий базу данных: IF (FILE("BAZA.DBF")). Если файл есть, то загружаем его и используем: USE BAZA. Если нет (ELSE), то переходим к подпрограмме создания базы данных: CCREATEQ. Конец альтернативного блока отмечаем словом ENDIF.
Теперь мы будем строить на дисплее меню, включив предварительно режим закольцовывания SET WRAP ON, когда курсорная рамка-указатель, дойдя до последнего "блюда", не упирается в тупик, а перескакивает в начало меню - см. рисунок-схему.
Типичная схема работы с меню пользователя: курсорной рамкой можно пробегать по коротким позициям, а в нижней части дисплея эта позиция расшифровывается. Нажатие клавиши Enter фиксирует выбор человека.
Далее мы просим машину, чтобы сообщения-подсказки появлялись в центре 23-й экранной строки: SET MESSAGE TO 23 CENTER, то есть там, где им и положено быть - в "подвале" дисплея. Наши "Уроки пользователя ЭВМ" опираются на концепцию структурного программирования, одним из постулатов которой утверждается правило "Использование меток - это признак низкой культуры программирования". Программисты так боятся прослыть "некультурными", что избегают меток и в тех случаях, где их ставить, как говорится, сам Бог велел, например, при организации бесконечного цикла запроса режима работы с базой данных. У нас он заменен циклом "пока" (DO WHILE ... ENDDO) с никогда не меняющим свое значение булевым выражением .Т. в заголовке: выполняй тело цикла до тех пор, пока "рак на горе не свистнет".
На чем же машина "зациклилась"?
Хороший лектор перед очередной фразой, как правило, откашливается. Хорошая же машина - очищает экран дисплея командой CLEAR SCREEN. Четыре последующих строки задают меню выбора режима работы с базой данных: две цифры, разделенные запятой, указывают машине строку и столбец, где писать названия "блюда" на выбор (PROMPT - суфлировать, по-английски). После слова MESSAGE записаны соответствующие подсказки, рекламирующие текущее "блюдо", перечисленное в меню (см. рис. выше): "СОЗДАНИЕ НОВОЙ БАЗЫ ДАННЫХ", "ПРОСМОТР, РЕДАКТИРОВАНИЕ И ДОБАВЛЕНИЕ НОВЫХ ЗАПИСЕЙ", "ПОИСК НУЖНЫХ ЗАПИСЕЙ" и, наконец, "ВОЗВРАТ В DOS". Выбранный номер позиции меню будет занесен в переменную nCHOICE оператором MENU TO nCHOICE. Далее программа заставляет (DO) машину вызывать функции, которые пользователь создал для различных случаев (CASE) работы с базой. Обезьяну, говорят, довольно просто научить открывать водопроводный кран, чтобы напиться, но почти невозможно приучить ее закрывать воду за собой. С подобной проблемой сталкиваются и неопытные программисты, открывая файлы, но забывая закрывать их после использования (USE - см. начало программы). Мы же рабочий файл "BAZA" закроем (CLOSE) перед возвратом (RETURN) в DOS.
Теперь наступила пора разобраться с функциями пользователя. Объявляем функцию поиска нужной информации в базе данных: FUNCTION FFIND(). Выбранное имя не означает, что программист, создававший функцию, заика (FFind вместо Find, от английского "искать"). Двойное F будет отличать функцию пользователя от стандартной с именем FIND(), хранящейся в библиотеке Clipper'a. При использовании функции FFIND() нужна локальная литерная переменная cFLAG длиною в 70 символов, которая и объявляется оператором LOCAL cFLAG:=SPACE(70). В нее будет вводится формула фильтрации базы - см. следующий оператор @ 1,1 SAY "ВВЕДИТЕ УСЛОВИЯ" GET cFLAG, то есть в описанном нами выше случае после ввода признака поиска записей и выполнения оператора READ переменная cFLAG будет содержать строку "ОЗУ>=1024 .AND. ЦЕНА<=3000". Заметим, что если пользователь окажется очень привередлив и вводимый признак будет содержать более 70 символов, то придется исправить цифру 70 в функции SPACE на другое число. Оператор SET FILTER TO &cFLAG фиксирует условие, содержащееся в переменной cFLAG в качестве жесткой директивы не пропускать на экран ни одну запись, не удовлетворяющую этому условию. Однако эта директива начинает действовать не моментально, а только после особого распоряжения, которым является любое действие с базой данных. Лучше всего, если этим действием будет перевод указателя базы данных с текущей записи на самую первую, "верхнюю". Для этого-то и используется оператор GO ТОР. Рекомендуется всегда выполнять перевод указателя базы данных непосредственно после оператора SET FILTER TO. Следующий далее вызов функции BROWSE() осуществит вывод на экран дисплея базы данных, но уже без "отсеянных" командой SET FILER ТО &cFLAG, начиная с текущей записи, с записи, на которую установлен указатель - с первой в нашем случае, поскольку мы перевели указатель в начало базы данных. Однако возможности функции BROWSE() не ограничиваются простым показом: в том случае, если записей, удовлетворяющих введенным нами условиям, больше, чем их может поместиться одновременно на экране, функция BROWSE() позволит, перемещаясь последовательно от записи к записи, добраться до любой из них осуществляя так называемый "скроллинг", то есть прокрутку строк экрана сверху вниз или снизу вверх в зависимости от того, в каком направлении двигают курсор. Помимо этого работа с функцией BROWSE() дает возможность доступа ко всем полям записей - можно менять их содержимое, а также заводить новые записи или уничтожать старые. Короче говоря, функция BROWSE() достаточно интеллектуальна, чтобы самостоятельно разобраться, в какое место экрана и в каком формате выводить информацию. Те, кому доводилось организовывать подобные операции на других языках, поймут, почему авторы так подробно описывают эту функцию. Наличие подобных средств делает программирование все более творческим процессом - труженики клавиатуры и дисплея освобождаются при этом от рутинной работы. Разработчики Clipper'a смогли удачно подобрать целую обойму функций и процедур языка, позволяющих вытворять с базами данных чудеса короткими и простыми командами. Для выхода из режима просмотра и редактирования нажимается клавиша Esc. Пользователю необходимо только помнить, что ошибка ввода (неверное имя поля в формуле фильтра, например) аварийно прервет выполнение программы. Но этого легко избежать, если после ввода формулы организовать контрольно-пропускной пункт с соответствующими проверками. Следует отметить, что в языке Clipper 5.0 имеется более мощное средство организации просмотра и редактирования баз данных - функция DBEDIT. Мы же остановили свой выбор на BROWSE для того, чтобы сделать программу более простой и наглядной.
Пришло время рассказать о еще одном свойстве оператора SET FILTER. Начиная с момента активизации фильтр действует постоянно до тех пор, пока он не будет отменен. Оператор SET FILTER TO без параметров отменяет действие ранее установленного фильтра. Последний оператор подпрограммы передает управление туда, откуда подпрограмма была вызвана - в основную программу.
После всего сказанного о подпрограмме FFIND останавливаться на подпрограмме EEDIT, видимо, не имеет смысла, поскольку она очень похожа на предыдущую.
Перейдем к процедуре создания базы данных. В результате выполнения первого оператора CREATE TmpExt будет создана база данных о будущей базе данных с полями Field_name (имя_поля), Field_type (тип_поля), Field_len (длина_поля) и Field_dec (десятичное_поле), записи которых хранят информацию об полях новой базы данных: имя поля (Тип, Процессор и т.д.), тип поля (в нашей базе данных их два - литерный и числовой), максимальная длина литерной записи и число знаков после запятой в числовой записи.
Идея здесь в том, что создается служебная база данных, каждая запись которой содержит информацию об одном поле базы данных, которую мы собираемся создать. Оператор USE помещает в рабочую область вновь созданную "базу данных о базе данных". Логическая переменная LMore нужна для того, чтобы продемонстрировать еще один способ выхода из цикла. Итак, первоначально мы присваиваем переменной значение .Т. - True (истинно). Далее идет уже знакомый нам оператор цикла, который будет выполнять тело цикла до тех пор, пока переменная LMore не примет значения .F. - False (ложно). До этого база данных TmpExt была пуста - оператор APPEND BLANK добавляет запись - в нашем случае создает первую запись в базе данных. Далее идут операторы осуществляющие ввод конкретных значений в поля текущей записи базы данных. Последний оператор тела цикла присваивает переменной LMore значение .Т., если что-нибудь было введено в поле Field_name. Если же обнаруживается, что ничего не введено в это поле, то переменной LMore присваивается значение .F. Затем управление передается на начало цикла, где происходит проверка переменной LMore, и в случае, если она имеет значение .F. (рак все-таки свистнул), осуществляется выход из цикла. Заметим, что вместо описанного выше цикла можно было использовать функцию BROWSE(), но тогда мы бы лишились удовольствия продемонстрировать еще один прием программирования. Первый за циклом оператор уничтожает последнюю запись базы данных, ту самую, у которой первое поле осталось пустым. Это, как мы отметили, будет признаком выхода из цикла. Однако в действительности последняя запись не будет уничтожена окончательно, а лишь помечена специальным образом. Это делается для того чтобы, сгоряча пользователь не потерял необходимую информацию, например, телефон любимой девушки. В нашем случае мы уверены в своей правоте - запись с первым пустым полем нам действительно не нужна, и поэтому мы даем команду уже окончательно уничтожить все помеченные к уничтожению записи. Оператор CREATE BAZA FROM TmpExt создает пустую базу данных с именем BAZA и структурой из базы данных TmpExt. Для того, чтобы не "замусорить" диск временно созданным файлом TmpExt, уничтожим его оператором ERASE TmpExt.dbf. Последний оператор RETURN завершает функцию пользователя и передает управление вызвавшей ее программе.
Необходимо отметить, что подпрограмма CCREATE практически полностью повторяет один из примеров, приведенных в документации по Clipper'y 5.0. Мы настоятельно рекомендуем внимательно изучить все примеры, содержащиеся в документации. Там вы найдете заготовки практически на все случаи жизни. Этим советом, а также листингом рассмотренной программы мы и заканчиваем наш урок.
Опытный программист знает, что написать функции пользователя - это почти наполовину составить требуемую программу. В нашей Клиппер-программе на некоторых строках записан не один оператор, а несколько (ох уж этот дефицит журнального пространства!)
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
6/91
Выпуск подготовил лауреат Государственной премии СССР кандидат технических наук В.А.ХМЕЛЮК.
Восемь лет назад в журнале впервые появилась рубрика "Человек с микрокалькулятором". Но "пришли" персональные компьютеры, журнал им также стал уделять внимание, и рубрика получила название "Человек и компьютер". Вскоре понадобилась и "Школа начинающего программиста", ставшая затем "Школой пользователя ЭВМ". Ведущий раздела "Человек и компьютер" кандидат физико-математических наук Ю.В.Пухначев и кандидат технических наук И.Д.Коган, активно участвовавший в становлении этого раздела, работу, начатую на страницах журнала, успешно развивают на центральном телевидении, популяризируя компьютерные знания. Первые приступы информационного голода микрокалькуляторщиков утолены, изменились оснащенность и интересы пользователей ЭВМ, и редакция в условиях обостряющегося дефицита журнальной площади регулярную публикацию статей, рассчитанных на владельцев микрокалькуляторов, передает вместе с авторским коллективом в распоряжение серии брошюр "Вычислительная техника и ее применение", издаваемых обществом "Знание" и распространяемых по подписке. Информацию о подписке на эти издания можно найти в "Каталоге советских газет и журналов" (раздел "Центральные журналы", рубрика "Брошюры общества "Знание"). Адрес издательства и редакции брошюр: 101834, ГСП, Москва, Центр, проезд Серова 4.
ДАТЫ И РИТМЫ
Спасибо авторам книги "От микрокалькулятора к персональному компьютеру". Это лучшее о микрокалькуляторах, что удалось мне выловить в книжном море. Приведенные там программы "Календаря" подали мне идею о создании программы, решающей триединую задачу: определение дня недели, разности между двумя датами и биоритмов, к которым, конечно, можно относиться по-разному - признавать или не признавать, но решать задачу об их программном определении всегда интересно. Сделав эту программу, я для себя покончил с программами календарей навсегда. Ведь главное - определить разность между заданной датой и какой-то фиксированной. Проблема состоит в том, чтобы рационально это сделать, а уж полученным результатом можно распоряжаться как угодно.
Я поставил перед собою задачу разработки программы с максимальным сервисом, заключающимся в том, что дата, для которой ведется расчет, сразу вводится в регистр X в формате "ГГГГ.ДДММ", где Г, Д и М соответственно цифры года, дня и месяца. Вместо отсутствующих цифр ставятся нули. Формат, в котором индицируется день недели - "ДД.ММ000К". Здесь Д и М - день и месяц, для которого определяется название дня недели, а К - код названия (1 - пн, 2- вт, 3 - ср, 4 - чт, 5 - пт, 6 - сб и 7 - вс). Формат вывода биоритмов - "6ФФЭЭИИ". Тут цифра 6 ассоциируется с буквой Б - биоритм, а на позициях ФФ, ЭЭ и ИИ стоят числа, показывающие, сколько дней прошло после начала соответствующего периода (физического, эмоционального и интеллектуального). Мне удалось использовать переключатель Р/ГРД/Г для указания, по какому стилю нужно произвести расчет. Р - новый, Г - старый. К сожалению, не удалось получить амплитуду биоритмов (А), которую рассчитывают в указанной выше книге, но тут можно сделать простейший рисунок, и я думаю, что это не очень большая цена за полученный сервис. В качестве исходной можно брать любую дату, начиная с 1 января 1-го года после Рождества Христова.
Программы календарей широко известны, поэтому поясню только особенности. Содержимое нулевого регистра является флажковым на шагах 00-55. При равенстве единице (флаг опущен) идет расчет биоритмов, а при другом заполнении (флаг поднят) рассчитывается код дня недели. Шаги 33-50 - расчет поправки на стиль, 51-53 - определение разности между двумя датами, 78 и до конца
- создание формата "ДД.ММ000К", 69-75 - создание формата "6ФФЭЭИИ", а 56-76 и 94-100 - определение биоритмов.
00. XП0 01. В^ О2. К[х] О3. ХП3 04. - 05. ПХС 06. * 07. ХП4 08. К[х] 09. FBx 10. К{х} 11. ПХС 12. * 13. 3 14. - 15. Fx<0 16. 22 17. КПХ3 18. F() 19. 1 20. 2 21. + 22. 4 23. + 24. ПХД 25. * 26. + 27. К[х] 28. ПХ3 29. ПХЕ 30. * 31. + 32. К[х] 33. ПХС 34. Fcos 35. Кзн 36. Fx>=0 37. 48 38. + 39. ПХ3 40. ПХС 41. / 42. К[х] 43. - 44. FBx 45. 4 46. / 47. К[х] 48. + 49. 5 50. + 51. В^ 52. ПХА 53. - 54.FL0 55. 78 56. 3 57.XП0 58. 6 59. ПХ6 60. * 61. ХП5 62. x-y 63. В^ 64. ПХ5 65. 5 66. + 67. ХП5 68. КППВ 69. ПХ6 70. ВП 71. 2 72. + 73. ХП6 74. FL0 75. 62 76. С/П 77. В/0 78. x-y 79. В^ 80. ХПА 81. 7 82. КППВ 83. Fx=0 84. 87 85. 7 86. + 87. 6 88. F10X 89. / 90. ПХ4 91. + 92. С/П 93. КБПС 94. / 95. FBx 96. x-y 97. K[x] 98. * 99. - -0. В/0.
После ввода программы вводим постоянные: 94 - в РВ, 100 - в PC, 30.6 - в РД и 365.25 в РЕ. А теперь несколько примеров, поясняющих работу с программой и являющихся тестом.
В специальной булле "Inter gravissimas" ("Среди важнейших...") 24 февраля 1582г. папа Григорий XIII предписал день, следующий после четверга 4 октября 1582г., считать пятницей 15 октября 1582г. Так как первая дата по старому стилю, то Г 1582.0410 В/0 С/П. Через 20с на индикаторе - "4.100004" (четверг, 4 октября). Вторая дата по новому стилю. Р, но теперь, пока не перейдем к расчету биоритмов, клавишу В/0 нажимать не надо. "1582.1510" С/П "15.100005" (пятница, 15 октября). Для определения разности между датами нажмем клавишу x-y "1". Все в полном соответствии с папской буллой.
Рассчитаем биоритмы для человека, родившегося 22 сентября 1952г. Для этого сначала определим код дня его рождения. Р 1952.2209 В/0 С/П "22.09001". Он родился в понедельник. Опустим флаг. 1 В/0 ПП и введем дату, для которой определяются биоритмы. Например, 1 мая 1991г. "1991.0105". Теперь для расчета этого и всех последующих биоритмов нужно только только вводить дату расчета и нажимать С/П. Через 40с "6011609". Это означает, что с начала физического цикла прошел один день, эмоционального - 16, а интеллектуального - 9 дней. Определим биоритмы для 29 ноября 2010г. 2010.2911 С/П. "6000000". Я не очень верю в биоритмы, но в этот день на улицу выходить не стал бы.
П.МИРОШНИЧЕНКО (г.Ленинград)
[ МАЛЕНЬКИЕ ХИТРОСТИ
При регенерации информации, записанной в ППЗУ МК-52 можно пользоваться не только свойством дизъюнкции AvA=А, как об этом сказано в 4/90, а и свойством 0vA=А. В этом случае регенерация происходит проще. Чтобы не обнулять регистры ОЗУ, регенерацию нужно проводить сразу после включения микрокалькулятора, когда в ячейках ОЗУ записаны нули. Переключатель Д-П устанавливают в нужное положение, переключатель С-3-Сч - в положение 3, набирают адрес регенерируемой программы или данных, после чего нажимают клавиши A^ и ^v. Вот и все.
Этими же свойствами дизъюнкции можно воспользоваться для замены части информации, записанной в ППЗУ, при записи "вплотную". Из ППЗУ в ОЗУ переписывается строка, с которой начинается заменяемая запись, и в ней удаляемая часть заменяется нулями. Затем, сохраняя запись в ОЗУ, очищают эту строку в ППЗУ и переписывают на ее место из ОЗУ откорректированную строку. Такую же операцию проделывают с последней строкой заменяемой записи. После этого остается лишь стереть информацию в строках ППЗУ, находящихся между начальной и конечной, и ППЗУ готово к записи новой информации.
А.РУБЦОВ (г.Мытищи) ]
И ВТОРОЙ ТОМ ... КОМОМ
В продаже появились блоки БРП-4, изготовляемые киевским заводом "Квазар", содержащие 54 программы. О некоторых из них и пойдет речь.
В пояснениях к Гарвардскому степ-тесту (прг.11), по которому определяется уровень работоспособности, сказано: "Если время выполнения теста отличается от заданых пяти минут, то при расчете учитывайте фактическое время". В тесте к программе 11 для t=300с даны такие значения пульса: Р1=80, Р2=65 и Р3=45. При этом калькулятор выдает оценку 4 (хорошая работоспособность). Если основываться на логике и предположить, что кто-то при таких же значениях пульса сумел выполнить тест вдвое быстрее, то и оценка у него должна быть не хуже, чем у первого. Но введя указанные выше значения пульса и t=150с, получим от калькулятора оценку 1 (очень плохая работоспособность). А если при тех же значениях пульса тест будет выполняться 10 минут? Конечно, у такого человека работоспособность хуже, чем у первых двух, если показания пульса не изменились. Калькулятор же оценивает его работоспособность на 5 (отличная работоспособность). Все получается с точностью наоборот.
В шахматной игре "Магараджа" (прг.31) калькулятор играет на шахматной доске полным набором белых фигур. У игрока одна фигура - "магараджа", которая, как указано в руководстве, устанавливается игроком на любое свободное поле и "имеет права коня и ферзя одновременно". Это, наверное, следует понимать так, что магараджа может делать такие же ходы, как конь или ферзь. На первые ходы магараджи калькулятор не обращает внимания, и игрок вводит их в ПМК исключительно для проформы. В принципе этого можно было бы и не делать, так как калькулятор их не анализирует, а занимается такой расстановкой своих фигур, в результате которой все поля кроме a6 и b6 оказываются под боем. Этого он достигает после своего 14-го хода. Рассмотрим оба возможных варианта, попутно отметив, что 14-й ход магараджи - единственный анализируемый калькулятором. 14. ... Мa6 15. е4+ Mf6. И тут ПМК выдает сигнал победы, считая, что после 16. Сg5 магарадже деваться некуда. Но ведь используя ход коня можно уйти на поля g4 или h5. Теперь ладья и ферзь их не бьют. Этому мешает слон на g5. Победы в этом варианте нет. 14. ... Mf6 15. Cg5+. 15-й ход магараджи калькулятор не анализирует, а считает, что магараджа сделает заведомо слабый ход 15. ... Ма6. И опять выдается сигнал победы, так как после 16. е4 магарадже деваться некуда. Но ведь можно сыграть на 15-м ходу во втором варианте так же, как на 16-м в первом. И снова у микрокалькулятора победы не будет. Хотя сигнал о победе он выдает исправно.
В игре "Жизнь" (прг.44) легко убедиться, что ПМК не соблюдает правил игры. Поместим конвиков в квадраты 7 и 9, и они вместо гибели начнут размножаться, а в квадратах 4, 7, 9 и А не получается прироста, и это не единственные расстановки, при которых правила игры калькулятором не соблюдаются. При этом искажается и сама идея Дж.X.Конвея о моделировании реальных процессов зарождения, развития и гибели колонии живых организмов, а познавательная ценность игры сводится к нулю.
Математическая и физическая модели игры "Космическая посадка" (прг.51) абсолютно неверны. Рассмотрим только пороки физической модели. В игре критерием качества посадки является разность между расстоянием, которое прошел бы посадочный модуль за время t и расстоянием, которое было в момент начала тормозного импульса между модулем и поверхностью, на которую совершается посадка, взятая с обратным знаком. Если получившаяся величина, которую автор игры называет "глубиной кратера", отрицательна, то посадка произошла. А по глубине кратера определяется ее качество. Если глубина меньше 0.5м, то считается, что произошла мягкая посадка в стиле Бака Роджерса. Хорошо, что выбрали иностранца, а то за своих было бы стыдно. Ведь автором неправильно выбран критерий качества посадки. Не только у специалистов, но и в играх подобного рода качество посадки определяется скоростью посадочного модуля в момент касания поверхности, на которую производится посадка. В маленькой энциклопедии "Космонавтика" сказано, что посадка считается мягкой, если эта скорость не превышает 2-3м/с. Введем программу 41 в МК-52 и произведем посадку на Луну, используя все данные теста из Руководства, изменив в нем лишь t и Р. Итак, наш тест: 65.45287 - в Р6, 12000 - в Р7, 1.7 - в Р9, 3000 - в РА, 200000 - в РВ, 20000 - в PC, 7000 - в РД и 0 - в РХ. Режим полета при выключенном тормозном двигателе в игре предусмотрен, и наш модуль просто будет свободно падать на Луну. В/0 С/П. Через 25с на индикаторе ЕГГОГ. Модуль сел на Луну. Определим качество посадки по Баку Роджерсу. ПXВ "-0.0077...". Если Бака Роджерса не было в нашем модуле, то он лопнул от зависти при такой сверхмягкой посадке. Ведь глубина кратера при посадке двадцатитонной махины меньше восьми миллиметров. Куда уж мягче. Но все-таки посмотрим, какая же была скорость в момент соприкосновения модуля с лунной поверхностью. ПXА "3111.2699м/с". Переведем ее в более привычную и получим - 11200км/ч. Это в 100 раз больше скорости, при которой наступают особо тяжкие последствия при авариях транспортных средств. Жаль, что Бака Роджерса больше нет с нами. Если он не лопнул от зависти только потому, что в момент посадки был в нашем модуле, то от него, как и от модуля, не осталось и мокрого места. Встанем, снимем шляпы и прочтем заупокойную молитву по экипажу нашего модуля. Будем милосердны и отпустим грехи автору программы, селекционерам и редакторам программ БРП-4. Почти во всех случаях инструкции и теста недостаточно для уяснения правил работы, а нужно еще поискать на других страницах Руководства либо регистры, в которые вводятся данные, либо правила считывания или еще что-нибудь. В инструкциях к программам 28 и 29 п.4 гласит: "Для обратного перевода нажмите клавишу С/П." Это можно понимать так, что если сначала пинты переводились в литры, а сейчас нужно перевести литры в пинты, то после ввода исходных данных нужно нажать клавишу С/П. А в книге Я.К. Трохименко "Программирование микрокалькуляторов "Электроника МК-61" и "Электроника МК-62"", откуда взяты эти программы, сказано: "если искомая величина должна храниться в предыдущем по порядку регистре, дополнительно нажать клавишу С/П". Т.е. речь идет совсем о другом.
В игре "Магический квадрат" (прг.41), взятой из 8/86, при переписывании журнального текста пропущен один абзац. В результате первоначальная расстановка цифр в квадрате является сразу такой, какую нужно получить в конце игры. Возникает вопрос: в чем суть игры? Игра "Опасный рейс" (прг.46) также взята из нашего журнала и текст программы переписан буква в букву, хотя это программа для Б3-34, в которой 65. К+ давало ЕГГОГ. В МК-52 для получения такого же эффекта нужно 65. К-. Этого не сделано, и из игры исчезла гибель корабля после пяти аварий, но зато появился никому не нужный перевод минут в десятичные доли градуса на шаге 65.
Программа 53 решает одну из любимых задач преподавателей математики технических ВУЗ'ов - поиска минимальной поверхности - Smin - или минимальной длины сварных швов - Lmin - цилиндрической банки заданного объема - V. При определении площади используются формулы:
r=sqr3(V/2пи); h=2r; Smin=sqr3(2пиV2); L=h(2пи+1),
где r - радиус, a h - высота банки, а при определении минимальной длины сварных швов -
r=sqr3(V/2пи2); h=2пиr; S=h(h+r); Lmin=sqr3(4Vпи),
Но легко показать, что Smin= 6пиr2, a Lmin=3h.
При использовании этих формул программа 53 может быть сокращена с 63 шагов до 48, Перечислять огрехи подобного рода можно долго. Оптимизируя математическое обеспечение и алгоритмы мне удалось сначала сократить программы 7 и 8 на восемь шагов каждую, а потом свести их в одну. Сократить на 7 шагов программу 9, уменьшить число шагов в программе 27 с 70 до 49. Программа 35 была сокращена всего на 1 шаг, но это повело к тому, что место, занимаемое ею в БРП-4, можно сократить на 7 шагов. В приведенной в этом выпуске рецензии на книгу: "От микрокалькулятора к персональному компьютеру" упоминается программа 1.21, длина которой 41 шаг. Эта программа позволяет заполнять как карточки спортлото 5 из 38, так и 6 из 45. А в БРП-4 эту задачу решают две программы (39 и 40), занимающие 175 шагов.
Словом, вместо того, чтобы служить эталоном и учебным пособием "как надо", большинство программ и инструкций к ним дают пищу для модернизации и оптимизации и являются блестящей иллюстрацией к положению "как не надо".
В.ХМЕЛЮК (г.Мытищи, Московской обл.)
[ МАЛЕНЬКАЯ РЕЦЕНЗИЯ
"Замечательная книга! Имея некоторый опыт работы с МК-52, узнал много нового и интересного. Единственное, с чем я не мог разобраться, это программа 1.17 "Вечный календарь-1" (стр.101)" (Н.Головко, г.Ленинград).
"Огромную помощь оказала последняя из книг - "От микрокалькулятора к персональному компьютеру", составленная по материалам вашего раздела. Например, здесь я нашел первое вразумительное объяснение логических операций, очень удобную форму записи программ, "секреты" ПМК" (С.Шевченко, г.Минск).
"Особенно отрадно, что в книге впервые воедино собраны материалы по различным приемам программирования и использования ПМК, до сих пор рассеянные по многочисленным книгам и журнальным публикациям" (Е.Розанцев, г.Кронштадт).
Вот отрывки из некоторых писем читателей, поступивших к нам в журнал и в издательство Московского энергетического института, выпустившего в 1990 году книгу В.Ф.Очкова и В.А.Хмелюка "От микрокалькулятора к персональному компьютеру". Но эта рецензия написана, конечно, не только и не столько для того, чтобы похвалить книгу.
К сожалению, в книгу вкрались опечатки. На стр.95: в программе 1.14 "Азимут и дальность-1" коэффициент К нужно ввести в нулевой регистр. На стр.101: в программе 1.17 "Вечный календарь-1" в регистр Е нужно ввести величину 365.25. На стр.105 контрольный пример должен выглядеть так БП 20 С/П "3". На стр.108 вместо 5 ^ 36 и 6 ^ 45 нужно читать 36 ^ 5 или 45 ^ 6 - так нужно вводить исходные данные в программы "Лототрон". На стр.109 в программе 1.22 "Ханойская башня- 1" на шаге 32 нужно поставить знак деления, а не сложения. В программе 1.5 должно быть 42. Кxor, в 1.9 - 21. ^, 25. ^, а в 1.25 - 14. 5. На стр.157 в описании функции Аккермана вместо (М-1,1) следует читать А(М-1,1) ]
В КНИГУ РЕКОРДОВ ГИННЕССА
После публикации С.Клочкова "Двадцать семь цифр знаменитого числа" (4/90) редакция получила много откликов, оптимизирующих программу. Преуспели на этом пути А.Азаров из подмосковного Фрязино, приславший две программы, вычисляющих 35 и 41 цифру числа е, алма-атинский школьник И.Кощеев (40 цифр), москвич М.Вулис (46 цифр).
Ленинградцы А. Бурдыгин и В.Афанасьев, независимо друг от друга, предложили вычислять е по преобразованной формуле:
e = 1+1/2(1+1/3(1+...+1/(k-1)(1+1/k)...))
Алгоритм и программа, созданные по этой формуле, позволяют использовать для определения цифр одной группы только один регистр, а не два, как в программах С.Клочкова, А.Азарова, И.Кощеева, М.Вулиса и других. В принципе, если бы кому-нибудь удалось вычислять группы по 7 цифр, используя только стек, то можно было бы достичь абсолютного рекорда - 106 цифр. Первые 8 в одном регистре и по 7 в остальных. А.Бурдыгин высвободил 13 регистров из 15 и избежал переполнения, записывая в них по 6 цифр. Его программа дает 80 цифр числа е (8+ 6*12). И, наконец, уже упоминавшемуся А.Азарову, не без помощи редакции, ознакомившей его с программой А.Бурдыгина, удалось создать подпрограмму вычислений, использующую только стек, в котором, кроме того, и хранится число k. Теперь все регистры используются для хранения 92 цифр е (8+6*14). Программа достаточно прозрачна и не нуждается в особых пояснениях. Отметим только, что число членов ряда k определено в соответствии с теоремой об остатке монотонно сходящегося ряда. В соответствии с ней для получения после запятой 91-го верного знака должно выполняться условие: k>65. Программа:
00. Сх 01. 6 02. 5 03. В^ 04. 7 05. F10X 06. В^ 07. ПХ0 08. ПП 09. 81 10. XП0 11. ПХ1 12. ПП 13. 81 14. ХП1 15. ПХ2 16. ПП 17. 81 18. ХП2 19. ПХ3 20. ПП 21. 81 22. ХП3 23. ПХ4 24. ПП 25. 81 26. ХП4 27. ПХ5 28. ПП 29. 81 30. ХП5 31. ПХ6 32. ПП 33. 81 34. ХП6 35. ПХ7 36. ПП 37. 81 38. ХП7 39. ПХ8 40. ПП 41. 81 42. ХП8 43. ПХ9 44. ПП 45. 81 46. ХП9 47. ПХА 48. ПП 49. 81 50. ХПА 51. ПХВ 52. ПП 53. 81 54. ХПВ 55. ПХС 56. ПП 57. 81 58. ХПС 59. ПХД 60. ПП 61. 81 62. ХПД 63. ПХЕ 64. ПП 65. 81 66. ХПЕ 67. F() 68. F() 69. 1 70. - 71. Fx=0 72. 04 73. ПХ0 74. 7 75. F10X 76. / 77. 1 78. + 79. XП0 80. С/П 81. x-y 82. F() 83. + 84. x-y 85. В^ 86. FBx 87. x-y 88. / 89. K[x] 90. В^ 91. F() 92. x-y 93. * 94. FBx 95. F() 96. - 97. 6 98. F10X 99. * -0. x-y -1. В/0.
Перед пуском программы нужно очистить все регистры памяти и пустить программу командами В/0 С/П. Программа работает около двух часов и после останова на индикаторе и в Р0 - 2.7182818, а остальные цифры знаменитого числа находятся в регистрах 1-Е группами по 6 цифр в каждом регистре.
СЫГРАЕМ В ПОКЕР!
Несколько костей-кубиков с точками или рисунками на гранях - вот и весь нехитрый инвентарь для игр, дошедших до нас из глубины веков. Правда, после появления игральных карт интерес к костям снизился, но в некоторые игры играют и сейчас. Одной из таких игр является покер. Рассмотрим одну из его разновидностей. Игроки по очереди бросают сразу шесть костей, на гранях которых нанесено от одной до шести точек. После чего фиксируется комбинация точек на верхних гранях. Победителем считается тот, у кого выпала более старшая комбинация. В порядке старшинства комбинации расположены так: 2 на 2 - в комбинации две пары одинаковых граней, например, 1 2 3 6 2 1 (упорядочивание ведут сами игроки). В данном случае 2 на 2 это 11 и 22. 2 на 3 - в комбинации три пары одинаковых граней (например, 11 22 55). 3 на 2 - две тройки одинаковых граней (например, 444 666). Каре - четыре одинаковых. Пирамида - одна из комбинаций - 122333, 233444, 344555 и 455666. Линия - выпали все значения от одного до шести. Пентагон - пять одинаковых. И, наконец, самая старшая комбинация - покер - шесть одинаковых. Если у игроков выпадают одинаковые комбинации, то старшей является та, в которой сумма очков комбинации больше. Игроки договариваются, сколько раз подряд они будут бросать кости. Во время второго и последующих бросаний можно метать не все кости, а только те, которые могут улучшить комбинацию. Повторно бросамые кости называются "кривыми". Например, выпал Пентагон 144444. Считая 1 "кривой" костью, можно бросить ее еще раз. Ведь если выпадет 4 - будет покер.
Вместо игральных костей можно использовать микрокалькулятор. Он может выступить и в роли партнера, но тогда вам придется определять и заменять "кривые* кости за себя и за него. Программа игры:
00. 7 01. XП0 02. ПХ2 03. ХП4 04. FL0 05. 39. 06. 5 07. ПХ0 08. ПХ2 09. ХП4 10. КПХ4. 11. ПХ6 12. * 13. КПХ4 14. + 15. ХП5 16. FL0 17. 11 18. С/П 19. ПХ2 20. ХП4 21. 7 22. XП0 23. FL0 24. 27 25. БП 26. 06 27. КПХ4 28. Fx=0 29. 23 30. ПХ4 31. 1 32. - 33. ХП4 34. ПП 35. 44 36. КХП4 37. БП 38. 23 39. ПП 40. 44 41. КХП4 42. БП 43. 04 44. ПХ1 45. ПХ3 46. * 47. Fпи 48. + 49. К{х} 50. ХП1 51. 6 52. * 53. 1 54. + 55. К[х] 56. В/0.
Случайные числа 1..6 формируются подпрограммой (шаги 44-56). Их распределение по регистрам памяти происходит на шагах 41-43. На шагах 19-38 происходит выбрасывание "кривых" костей и замена их другими.
Перед пуском программы в регистры памяти записывают: 8 - в Р2, 11 - в Р3 и 10 - в Р6. В Р1 заносят e - стартовое число для ГСЧ (0<e<1). Для получения первой комбинации нажимают клавиши В/0 С/П. Примерно через 45 секунд на индикаторе появляется выпавшая комбинация. Цифры этой комбинации хранятся в регистрах 9, А, В, С, Д и Е. Этот порядок соответствует тому порядку, в котором расположились кости на индикаторе. Для замены "кривых" костей в соответствующие регистры вводят ноль и нажимают клавишу С/П. Замена продолжается около 40с, и результат появляется на индикаторе. Если производится более одной замены, то все они производятся так же, как и первая. Когда очередь хода переходит ко второму игроку, он нажимает клавиши В/0 С/П. Замена "кривых" костей происходит так, как сказано выше. Тест. Пусть каждому игроку разрешается по одной замене "кривых" костей. Зададимся стартовым числом ГСЧ 0.12 и введем его в Р1. Ход первого игрока. В/0 С/П "324232". Уже есть младшая комбинация 33 22 (2*2), но хочется большего. Заменим все цифры, кроме 2. Сх ХП9 ХПВ ХПД С/П "326222" - каре на двойках - 322226. Ход второго игрока. В/0 С/П "546554", полученная комбинация 2*2 (44 55) младше каре на двойках, и поэтому нужно использовать шанс и заменить 4 и 6. Сх ХПА ХПВ ХПЕ С/П "525551". Каре на пятерках. Это победа в партии. Можно начинать другую. В/0 С/П...
А.НИЛИН (г.Апатиты)
[ НАМ ОТВЕЧАЕТ ЗАВОД "КВАЗАР"
В 1990г. в нашем разделе трижды публиковались материалы о БРП-3. В 2/90 - "Первый том... комом", в 4/90 - "Год работы с БРП-3" и 10/90 - "Вам привет от БРП". В редакцию поступил ответ от завода "Квазар", изготавливающего эти блоки, подготовленный начальником отдела Э.И.Жигадло и подписанный заместителем Генерального директора В.Ф.Туриком. К сожалению, в ответе речь идет только о последней публикации.
"В блоках БРП-2 и БРП-3,- говорится в этом ответе,- применена микросхема ПЗУ64К-2-005 производства нашего предприятия, все поле памяти которой состоит из двух матриц емкостью 32К каждая. Одна из матриц "прошита" программой для решения астронавигационных задач (блок БРП-2, перемычка на плате в положении П2), в другую матрицу "зашиты" программы для решения ряда вычислительных задач (блок БРП-3, перемычка в положении П1)".
Соглашаясь с замечаниями С.Ивашкова и Э.Эйдельмана о том, что при составлении программы 16 использовались неверные формулы, и с замечаниями по запутанности некоторых положений Руководства по эксплуатации, в ответе говорится: "устранить эти замечания, к сожалению, уже невозможно, т.к. блок БРП-3 снят с производства. Поэтому авторы заметок, которым мы приносим свои извинения, могут сдать их в установленном порядке и получить обратно деньги, если блоки нужны им только для решения именно этих задач. В случае проблем с возвратом денег авторы могут обратиться непосредственно к нам по адресу: 252136, Киев, ул.Сырецкая 3, сославшись на это письмо (#6/660 08 января 1991г.)".
В заключении ответа сказано, что завод "Квазар" не планирует производить блоки БРП с программами заказчика из-за высокой стоимости заказных БИС ПЗУ вследствие их малосерийности ]
[ УЗЕЛКИ НА ПАМЯТЬ
Мною обнаружены следующие странности в работе микрокалькулятора "Электроника МК-85":
- в режиме RAD cos(0)=-1, а должно быть +1;
- при нулевом аргументе в режимах DEG и GRA при вычислении ATN(0) получаем сообщение ERR3, а в режиме RAD результат вычисления ATN(0) - текстовая переменная, не содержащая символов. Таким образом, следует избегать вычисления арктангенса нуля во всех режимах;
- в инструкции указано, что допустимый диапазон значений аргумента при вычислении тригонометрических функций соответствует всему диапазону чисел - от 1e-4035 до 1e4035, однако опасно оперировать числами меньше, чем 1e-880, в противном случае последствия могут оказаться трагическими. В режиме RAD сов 1e887 приводит к "зависанию" микрокалькулятора, cos(1e-891) - к выключению, сов(1e-889) - к переходу в исходный режим. Но самое опасное происходит в режиме GRA, если попытаться вычислить cos(1e-888). В этом случае происходит авария, разрушающая оперативную память, происходит ее очистка, и гибнет все, что там было записано. Чтобы вернуть калькулятор к жизни, нужно подать команду TEST;
- в режиме WRT в случае появления сообщения ERR1 при вводе программы, нельзя нажимать клавишу ANS. Если это сделать, то можно испортить другие файлы. Нужно воспользоваться клавишей АС.
Э.ГАУЗЕР (г.Баку) ]
1024 СОВЕТА
(БАЙТ ДВЕНАДЦАТЫЙ)
В байте советов продолжается разговор об антивирусной профилактике при работе с "айбиэмками", начатый в первом выпуске "Школы пользователя ЭВМ".
89. Если товарищ предлагает новую любопытную программу, а ты не совсем уверен, пригодится она тебе или нет, то постарайся "прогнать" ее в познавательных целях на машине того же товарища, где она уже не раз запускалась. Не вставляй лишний раз чужую дискету или свою собственную, но с чужими программами в свою машину, даже если для удовлетворения любопытства тебе придется проехаться в другой конец города.
90. Если в твоей организации много персональных компьютеров, то отведи одному из них роль своеобразного отстойника, вернее, карантинной бухты, если вспомнить название нашего байта советов. Испытывать зараженность вновь поступающих программ, добытых пиратским способом, лучше не на всех машинах, а на какой-то одной, не забывая при этом менять показания ее встроенных часов и календаря, так как многие вирусы настроены на определенное время и (или) дату.
91. Если у тебя есть антивирусные программы, то сразу запиши команды их запуска в стартовый файл AUTOEXEC.BAT. В этом случае антивирусная профилактика машины будет проводиться каждый раз после ее очередного запуска. В стартовый файл стоит также записать команды вызова специальных резидентных программ-церберов, предупреждающих пользователя о попытках других программ стать резидентными или о внесюжетной записи информации в файлы на дисках.
92. Боже тебя упаси запускать самопроизвольно возникающие в зараженной машине файлы с расширениями *.EXE, *.COM, *.ВАТ. Типичный пример такого (его еще называют троянским) файла - файл с именем SEXSHOW.EXE, ни с того ни с сего появляющийся на диске и приглашающий человека сыграть в некую фривольную игру для взрослых, но на самом деле стирающий информацию на винчестере. У таких "игровых" файлов должен быть один партнер - антивирусные программы (см. совет 91).
93. Заведи на диске текстовый файл с записью размеров основных рабочих файлов. Это поможет зафиксировать вирусное "распухание" операционной системы и вовремя принять соответствующие лечебные меры (см. совет 91). Не пожалей памяти машины на резидентные программы, автоматически фиксирующие изменения в атрибутах файлов на диске.
94. Если ты имеешь склонность к доработке не только математического обеспечения компьютера, но и аппаратных средств (а таких людей, судя по почте рубрики, много среди читателей), то приделай к машине еще один замок, запирание которого будет препятствовать записи на винчестер, но не будет мешать считыванию информации с него. Не оставляй штатный ключ в замке, запирающем клавиатуру, даже если ты покидаешь машину только на минутку. При отсутствии замка оснасти машину программой-администратором, допускающей пользователя к работе только по паролю. Не забывай этот пароль периодически менять.
95. Помни, что в вирусной обстановке нормальное состояние дискет - заклеенная прорезь (5.25 дюйма) и открытая заслонка (3.5 дюйма). Если к этому добавить еще замок, описанный в совете 94, то вероятность заразить свой компьютер вирусом резко снизится.
96. Если при работе машина пытается записать вирус на защищенную дискету (см. совет 95) и выдает в связи с этим сообщение об ошибке (запись на защищенную дискету), то не пытайся игнорировать эту ситуацию, нажимая на клавишу "I" (Ignory). Здесь будет лучше просто прервать работу компьютера и попытаться уничтожить вирус спецсредствами (см. совет 91). Помни, что есть обидчивые вирусы, мстящие пользователю за препятствия на пути своего размножения. Троекратное нажатие на клавишу "I" (Ignory) может рассердить вирус и толкнуть его на серьезные действия - например, на порчу информации на винчестере.
Выпуск подготовил лауреат Государственной премии СССР кандидат технических наук В.А.ХМЕЛЮК.
Восемь лет назад в журнале впервые появилась рубрика "Человек с микрокалькулятором". Но "пришли" персональные компьютеры, журнал им также стал уделять внимание, и рубрика получила название "Человек и компьютер". Вскоре понадобилась и "Школа начинающего программиста", ставшая затем "Школой пользователя ЭВМ". Ведущий раздела "Человек и компьютер" кандидат физико-математических наук Ю.В.Пухначев и кандидат технических наук И.Д.Коган, активно участвовавший в становлении этого раздела, работу, начатую на страницах журнала, успешно развивают на центральном телевидении, популяризируя компьютерные знания. Первые приступы информационного голода микрокалькуляторщиков утолены, изменились оснащенность и интересы пользователей ЭВМ, и редакция в условиях обостряющегося дефицита журнальной площади регулярную публикацию статей, рассчитанных на владельцев микрокалькуляторов, передает вместе с авторским коллективом в распоряжение серии брошюр "Вычислительная техника и ее применение", издаваемых обществом "Знание" и распространяемых по подписке. Информацию о подписке на эти издания можно найти в "Каталоге советских газет и журналов" (раздел "Центральные журналы", рубрика "Брошюры общества "Знание"). Адрес издательства и редакции брошюр: 101834, ГСП, Москва, Центр, проезд Серова 4.
ДАТЫ И РИТМЫ
Спасибо авторам книги "От микрокалькулятора к персональному компьютеру". Это лучшее о микрокалькуляторах, что удалось мне выловить в книжном море. Приведенные там программы "Календаря" подали мне идею о создании программы, решающей триединую задачу: определение дня недели, разности между двумя датами и биоритмов, к которым, конечно, можно относиться по-разному - признавать или не признавать, но решать задачу об их программном определении всегда интересно. Сделав эту программу, я для себя покончил с программами календарей навсегда. Ведь главное - определить разность между заданной датой и какой-то фиксированной. Проблема состоит в том, чтобы рационально это сделать, а уж полученным результатом можно распоряжаться как угодно.
Я поставил перед собою задачу разработки программы с максимальным сервисом, заключающимся в том, что дата, для которой ведется расчет, сразу вводится в регистр X в формате "ГГГГ.ДДММ", где Г, Д и М соответственно цифры года, дня и месяца. Вместо отсутствующих цифр ставятся нули. Формат, в котором индицируется день недели - "ДД.ММ000К". Здесь Д и М - день и месяц, для которого определяется название дня недели, а К - код названия (1 - пн, 2- вт, 3 - ср, 4 - чт, 5 - пт, 6 - сб и 7 - вс). Формат вывода биоритмов - "6ФФЭЭИИ". Тут цифра 6 ассоциируется с буквой Б - биоритм, а на позициях ФФ, ЭЭ и ИИ стоят числа, показывающие, сколько дней прошло после начала соответствующего периода (физического, эмоционального и интеллектуального). Мне удалось использовать переключатель Р/ГРД/Г для указания, по какому стилю нужно произвести расчет. Р - новый, Г - старый. К сожалению, не удалось получить амплитуду биоритмов (А), которую рассчитывают в указанной выше книге, но тут можно сделать простейший рисунок, и я думаю, что это не очень большая цена за полученный сервис. В качестве исходной можно брать любую дату, начиная с 1 января 1-го года после Рождества Христова.
Программы календарей широко известны, поэтому поясню только особенности. Содержимое нулевого регистра является флажковым на шагах 00-55. При равенстве единице (флаг опущен) идет расчет биоритмов, а при другом заполнении (флаг поднят) рассчитывается код дня недели. Шаги 33-50 - расчет поправки на стиль, 51-53 - определение разности между двумя датами, 78 и до конца
- создание формата "ДД.ММ000К", 69-75 - создание формата "6ФФЭЭИИ", а 56-76 и 94-100 - определение биоритмов.
00. XП0 01. В^ О2. К[х] О3. ХП3 04. - 05. ПХС 06. * 07. ХП4 08. К[х] 09. FBx 10. К{х} 11. ПХС 12. * 13. 3 14. - 15. Fx<0 16. 22 17. КПХ3 18. F() 19. 1 20. 2 21. + 22. 4 23. + 24. ПХД 25. * 26. + 27. К[х] 28. ПХ3 29. ПХЕ 30. * 31. + 32. К[х] 33. ПХС 34. Fcos 35. Кзн 36. Fx>=0 37. 48 38. + 39. ПХ3 40. ПХС 41. / 42. К[х] 43. - 44. FBx 45. 4 46. / 47. К[х] 48. + 49. 5 50. + 51. В^ 52. ПХА 53. - 54.FL0 55. 78 56. 3 57.XП0 58. 6 59. ПХ6 60. * 61. ХП5 62. x-y 63. В^ 64. ПХ5 65. 5 66. + 67. ХП5 68. КППВ 69. ПХ6 70. ВП 71. 2 72. + 73. ХП6 74. FL0 75. 62 76. С/П 77. В/0 78. x-y 79. В^ 80. ХПА 81. 7 82. КППВ 83. Fx=0 84. 87 85. 7 86. + 87. 6 88. F10X 89. / 90. ПХ4 91. + 92. С/П 93. КБПС 94. / 95. FBx 96. x-y 97. K[x] 98. * 99. - -0. В/0.
После ввода программы вводим постоянные: 94 - в РВ, 100 - в PC, 30.6 - в РД и 365.25 в РЕ. А теперь несколько примеров, поясняющих работу с программой и являющихся тестом.
В специальной булле "Inter gravissimas" ("Среди важнейших...") 24 февраля 1582г. папа Григорий XIII предписал день, следующий после четверга 4 октября 1582г., считать пятницей 15 октября 1582г. Так как первая дата по старому стилю, то Г 1582.0410 В/0 С/П. Через 20с на индикаторе - "4.100004" (четверг, 4 октября). Вторая дата по новому стилю. Р, но теперь, пока не перейдем к расчету биоритмов, клавишу В/0 нажимать не надо. "1582.1510" С/П "15.100005" (пятница, 15 октября). Для определения разности между датами нажмем клавишу x-y "1". Все в полном соответствии с папской буллой.
Рассчитаем биоритмы для человека, родившегося 22 сентября 1952г. Для этого сначала определим код дня его рождения. Р 1952.2209 В/0 С/П "22.09001". Он родился в понедельник. Опустим флаг. 1 В/0 ПП и введем дату, для которой определяются биоритмы. Например, 1 мая 1991г. "1991.0105". Теперь для расчета этого и всех последующих биоритмов нужно только только вводить дату расчета и нажимать С/П. Через 40с "6011609". Это означает, что с начала физического цикла прошел один день, эмоционального - 16, а интеллектуального - 9 дней. Определим биоритмы для 29 ноября 2010г. 2010.2911 С/П. "6000000". Я не очень верю в биоритмы, но в этот день на улицу выходить не стал бы.
П.МИРОШНИЧЕНКО (г.Ленинград)
[ МАЛЕНЬКИЕ ХИТРОСТИ
При регенерации информации, записанной в ППЗУ МК-52 можно пользоваться не только свойством дизъюнкции AvA=А, как об этом сказано в 4/90, а и свойством 0vA=А. В этом случае регенерация происходит проще. Чтобы не обнулять регистры ОЗУ, регенерацию нужно проводить сразу после включения микрокалькулятора, когда в ячейках ОЗУ записаны нули. Переключатель Д-П устанавливают в нужное положение, переключатель С-3-Сч - в положение 3, набирают адрес регенерируемой программы или данных, после чего нажимают клавиши A^ и ^v. Вот и все.
Этими же свойствами дизъюнкции можно воспользоваться для замены части информации, записанной в ППЗУ, при записи "вплотную". Из ППЗУ в ОЗУ переписывается строка, с которой начинается заменяемая запись, и в ней удаляемая часть заменяется нулями. Затем, сохраняя запись в ОЗУ, очищают эту строку в ППЗУ и переписывают на ее место из ОЗУ откорректированную строку. Такую же операцию проделывают с последней строкой заменяемой записи. После этого остается лишь стереть информацию в строках ППЗУ, находящихся между начальной и конечной, и ППЗУ готово к записи новой информации.
А.РУБЦОВ (г.Мытищи) ]
И ВТОРОЙ ТОМ ... КОМОМ
В продаже появились блоки БРП-4, изготовляемые киевским заводом "Квазар", содержащие 54 программы. О некоторых из них и пойдет речь.
В пояснениях к Гарвардскому степ-тесту (прг.11), по которому определяется уровень работоспособности, сказано: "Если время выполнения теста отличается от заданых пяти минут, то при расчете учитывайте фактическое время". В тесте к программе 11 для t=300с даны такие значения пульса: Р1=80, Р2=65 и Р3=45. При этом калькулятор выдает оценку 4 (хорошая работоспособность). Если основываться на логике и предположить, что кто-то при таких же значениях пульса сумел выполнить тест вдвое быстрее, то и оценка у него должна быть не хуже, чем у первого. Но введя указанные выше значения пульса и t=150с, получим от калькулятора оценку 1 (очень плохая работоспособность). А если при тех же значениях пульса тест будет выполняться 10 минут? Конечно, у такого человека работоспособность хуже, чем у первых двух, если показания пульса не изменились. Калькулятор же оценивает его работоспособность на 5 (отличная работоспособность). Все получается с точностью наоборот.
В шахматной игре "Магараджа" (прг.31) калькулятор играет на шахматной доске полным набором белых фигур. У игрока одна фигура - "магараджа", которая, как указано в руководстве, устанавливается игроком на любое свободное поле и "имеет права коня и ферзя одновременно". Это, наверное, следует понимать так, что магараджа может делать такие же ходы, как конь или ферзь. На первые ходы магараджи калькулятор не обращает внимания, и игрок вводит их в ПМК исключительно для проформы. В принципе этого можно было бы и не делать, так как калькулятор их не анализирует, а занимается такой расстановкой своих фигур, в результате которой все поля кроме a6 и b6 оказываются под боем. Этого он достигает после своего 14-го хода. Рассмотрим оба возможных варианта, попутно отметив, что 14-й ход магараджи - единственный анализируемый калькулятором. 14. ... Мa6 15. е4+ Mf6. И тут ПМК выдает сигнал победы, считая, что после 16. Сg5 магарадже деваться некуда. Но ведь используя ход коня можно уйти на поля g4 или h5. Теперь ладья и ферзь их не бьют. Этому мешает слон на g5. Победы в этом варианте нет. 14. ... Mf6 15. Cg5+. 15-й ход магараджи калькулятор не анализирует, а считает, что магараджа сделает заведомо слабый ход 15. ... Ма6. И опять выдается сигнал победы, так как после 16. е4 магарадже деваться некуда. Но ведь можно сыграть на 15-м ходу во втором варианте так же, как на 16-м в первом. И снова у микрокалькулятора победы не будет. Хотя сигнал о победе он выдает исправно.
В игре "Жизнь" (прг.44) легко убедиться, что ПМК не соблюдает правил игры. Поместим конвиков в квадраты 7 и 9, и они вместо гибели начнут размножаться, а в квадратах 4, 7, 9 и А не получается прироста, и это не единственные расстановки, при которых правила игры калькулятором не соблюдаются. При этом искажается и сама идея Дж.X.Конвея о моделировании реальных процессов зарождения, развития и гибели колонии живых организмов, а познавательная ценность игры сводится к нулю.
Математическая и физическая модели игры "Космическая посадка" (прг.51) абсолютно неверны. Рассмотрим только пороки физической модели. В игре критерием качества посадки является разность между расстоянием, которое прошел бы посадочный модуль за время t и расстоянием, которое было в момент начала тормозного импульса между модулем и поверхностью, на которую совершается посадка, взятая с обратным знаком. Если получившаяся величина, которую автор игры называет "глубиной кратера", отрицательна, то посадка произошла. А по глубине кратера определяется ее качество. Если глубина меньше 0.5м, то считается, что произошла мягкая посадка в стиле Бака Роджерса. Хорошо, что выбрали иностранца, а то за своих было бы стыдно. Ведь автором неправильно выбран критерий качества посадки. Не только у специалистов, но и в играх подобного рода качество посадки определяется скоростью посадочного модуля в момент касания поверхности, на которую производится посадка. В маленькой энциклопедии "Космонавтика" сказано, что посадка считается мягкой, если эта скорость не превышает 2-3м/с. Введем программу 41 в МК-52 и произведем посадку на Луну, используя все данные теста из Руководства, изменив в нем лишь t и Р. Итак, наш тест: 65.45287 - в Р6, 12000 - в Р7, 1.7 - в Р9, 3000 - в РА, 200000 - в РВ, 20000 - в PC, 7000 - в РД и 0 - в РХ. Режим полета при выключенном тормозном двигателе в игре предусмотрен, и наш модуль просто будет свободно падать на Луну. В/0 С/П. Через 25с на индикаторе ЕГГОГ. Модуль сел на Луну. Определим качество посадки по Баку Роджерсу. ПXВ "-0.0077...". Если Бака Роджерса не было в нашем модуле, то он лопнул от зависти при такой сверхмягкой посадке. Ведь глубина кратера при посадке двадцатитонной махины меньше восьми миллиметров. Куда уж мягче. Но все-таки посмотрим, какая же была скорость в момент соприкосновения модуля с лунной поверхностью. ПXА "3111.2699м/с". Переведем ее в более привычную и получим - 11200км/ч. Это в 100 раз больше скорости, при которой наступают особо тяжкие последствия при авариях транспортных средств. Жаль, что Бака Роджерса больше нет с нами. Если он не лопнул от зависти только потому, что в момент посадки был в нашем модуле, то от него, как и от модуля, не осталось и мокрого места. Встанем, снимем шляпы и прочтем заупокойную молитву по экипажу нашего модуля. Будем милосердны и отпустим грехи автору программы, селекционерам и редакторам программ БРП-4. Почти во всех случаях инструкции и теста недостаточно для уяснения правил работы, а нужно еще поискать на других страницах Руководства либо регистры, в которые вводятся данные, либо правила считывания или еще что-нибудь. В инструкциях к программам 28 и 29 п.4 гласит: "Для обратного перевода нажмите клавишу С/П." Это можно понимать так, что если сначала пинты переводились в литры, а сейчас нужно перевести литры в пинты, то после ввода исходных данных нужно нажать клавишу С/П. А в книге Я.К. Трохименко "Программирование микрокалькуляторов "Электроника МК-61" и "Электроника МК-62"", откуда взяты эти программы, сказано: "если искомая величина должна храниться в предыдущем по порядку регистре, дополнительно нажать клавишу С/П". Т.е. речь идет совсем о другом.
В игре "Магический квадрат" (прг.41), взятой из 8/86, при переписывании журнального текста пропущен один абзац. В результате первоначальная расстановка цифр в квадрате является сразу такой, какую нужно получить в конце игры. Возникает вопрос: в чем суть игры? Игра "Опасный рейс" (прг.46) также взята из нашего журнала и текст программы переписан буква в букву, хотя это программа для Б3-34, в которой 65. К+ давало ЕГГОГ. В МК-52 для получения такого же эффекта нужно 65. К-. Этого не сделано, и из игры исчезла гибель корабля после пяти аварий, но зато появился никому не нужный перевод минут в десятичные доли градуса на шаге 65.
Программа 53 решает одну из любимых задач преподавателей математики технических ВУЗ'ов - поиска минимальной поверхности - Smin - или минимальной длины сварных швов - Lmin - цилиндрической банки заданного объема - V. При определении площади используются формулы:
r=sqr3(V/2пи); h=2r; Smin=sqr3(2пиV2); L=h(2пи+1),
где r - радиус, a h - высота банки, а при определении минимальной длины сварных швов -
r=sqr3(V/2пи2); h=2пиr; S=h(h+r); Lmin=sqr3(4Vпи),
Но легко показать, что Smin= 6пиr2, a Lmin=3h.
При использовании этих формул программа 53 может быть сокращена с 63 шагов до 48, Перечислять огрехи подобного рода можно долго. Оптимизируя математическое обеспечение и алгоритмы мне удалось сначала сократить программы 7 и 8 на восемь шагов каждую, а потом свести их в одну. Сократить на 7 шагов программу 9, уменьшить число шагов в программе 27 с 70 до 49. Программа 35 была сокращена всего на 1 шаг, но это повело к тому, что место, занимаемое ею в БРП-4, можно сократить на 7 шагов. В приведенной в этом выпуске рецензии на книгу: "От микрокалькулятора к персональному компьютеру" упоминается программа 1.21, длина которой 41 шаг. Эта программа позволяет заполнять как карточки спортлото 5 из 38, так и 6 из 45. А в БРП-4 эту задачу решают две программы (39 и 40), занимающие 175 шагов.
Словом, вместо того, чтобы служить эталоном и учебным пособием "как надо", большинство программ и инструкций к ним дают пищу для модернизации и оптимизации и являются блестящей иллюстрацией к положению "как не надо".
В.ХМЕЛЮК (г.Мытищи, Московской обл.)
[ МАЛЕНЬКАЯ РЕЦЕНЗИЯ
"Замечательная книга! Имея некоторый опыт работы с МК-52, узнал много нового и интересного. Единственное, с чем я не мог разобраться, это программа 1.17 "Вечный календарь-1" (стр.101)" (Н.Головко, г.Ленинград).
"Огромную помощь оказала последняя из книг - "От микрокалькулятора к персональному компьютеру", составленная по материалам вашего раздела. Например, здесь я нашел первое вразумительное объяснение логических операций, очень удобную форму записи программ, "секреты" ПМК" (С.Шевченко, г.Минск).
"Особенно отрадно, что в книге впервые воедино собраны материалы по различным приемам программирования и использования ПМК, до сих пор рассеянные по многочисленным книгам и журнальным публикациям" (Е.Розанцев, г.Кронштадт).
Вот отрывки из некоторых писем читателей, поступивших к нам в журнал и в издательство Московского энергетического института, выпустившего в 1990 году книгу В.Ф.Очкова и В.А.Хмелюка "От микрокалькулятора к персональному компьютеру". Но эта рецензия написана, конечно, не только и не столько для того, чтобы похвалить книгу.
К сожалению, в книгу вкрались опечатки. На стр.95: в программе 1.14 "Азимут и дальность-1" коэффициент К нужно ввести в нулевой регистр. На стр.101: в программе 1.17 "Вечный календарь-1" в регистр Е нужно ввести величину 365.25. На стр.105 контрольный пример должен выглядеть так БП 20 С/П "3". На стр.108 вместо 5 ^ 36 и 6 ^ 45 нужно читать 36 ^ 5 или 45 ^ 6 - так нужно вводить исходные данные в программы "Лототрон". На стр.109 в программе 1.22 "Ханойская башня- 1" на шаге 32 нужно поставить знак деления, а не сложения. В программе 1.5 должно быть 42. Кxor, в 1.9 - 21. ^, 25. ^, а в 1.25 - 14. 5. На стр.157 в описании функции Аккермана вместо (М-1,1) следует читать А(М-1,1) ]
В КНИГУ РЕКОРДОВ ГИННЕССА
После публикации С.Клочкова "Двадцать семь цифр знаменитого числа" (4/90) редакция получила много откликов, оптимизирующих программу. Преуспели на этом пути А.Азаров из подмосковного Фрязино, приславший две программы, вычисляющих 35 и 41 цифру числа е, алма-атинский школьник И.Кощеев (40 цифр), москвич М.Вулис (46 цифр).
Ленинградцы А. Бурдыгин и В.Афанасьев, независимо друг от друга, предложили вычислять е по преобразованной формуле:
e = 1+1/2(1+1/3(1+...+1/(k-1)(1+1/k)...))
Алгоритм и программа, созданные по этой формуле, позволяют использовать для определения цифр одной группы только один регистр, а не два, как в программах С.Клочкова, А.Азарова, И.Кощеева, М.Вулиса и других. В принципе, если бы кому-нибудь удалось вычислять группы по 7 цифр, используя только стек, то можно было бы достичь абсолютного рекорда - 106 цифр. Первые 8 в одном регистре и по 7 в остальных. А.Бурдыгин высвободил 13 регистров из 15 и избежал переполнения, записывая в них по 6 цифр. Его программа дает 80 цифр числа е (8+ 6*12). И, наконец, уже упоминавшемуся А.Азарову, не без помощи редакции, ознакомившей его с программой А.Бурдыгина, удалось создать подпрограмму вычислений, использующую только стек, в котором, кроме того, и хранится число k. Теперь все регистры используются для хранения 92 цифр е (8+6*14). Программа достаточно прозрачна и не нуждается в особых пояснениях. Отметим только, что число членов ряда k определено в соответствии с теоремой об остатке монотонно сходящегося ряда. В соответствии с ней для получения после запятой 91-го верного знака должно выполняться условие: k>65. Программа:
00. Сх 01. 6 02. 5 03. В^ 04. 7 05. F10X 06. В^ 07. ПХ0 08. ПП 09. 81 10. XП0 11. ПХ1 12. ПП 13. 81 14. ХП1 15. ПХ2 16. ПП 17. 81 18. ХП2 19. ПХ3 20. ПП 21. 81 22. ХП3 23. ПХ4 24. ПП 25. 81 26. ХП4 27. ПХ5 28. ПП 29. 81 30. ХП5 31. ПХ6 32. ПП 33. 81 34. ХП6 35. ПХ7 36. ПП 37. 81 38. ХП7 39. ПХ8 40. ПП 41. 81 42. ХП8 43. ПХ9 44. ПП 45. 81 46. ХП9 47. ПХА 48. ПП 49. 81 50. ХПА 51. ПХВ 52. ПП 53. 81 54. ХПВ 55. ПХС 56. ПП 57. 81 58. ХПС 59. ПХД 60. ПП 61. 81 62. ХПД 63. ПХЕ 64. ПП 65. 81 66. ХПЕ 67. F() 68. F() 69. 1 70. - 71. Fx=0 72. 04 73. ПХ0 74. 7 75. F10X 76. / 77. 1 78. + 79. XП0 80. С/П 81. x-y 82. F() 83. + 84. x-y 85. В^ 86. FBx 87. x-y 88. / 89. K[x] 90. В^ 91. F() 92. x-y 93. * 94. FBx 95. F() 96. - 97. 6 98. F10X 99. * -0. x-y -1. В/0.
Перед пуском программы нужно очистить все регистры памяти и пустить программу командами В/0 С/П. Программа работает около двух часов и после останова на индикаторе и в Р0 - 2.7182818, а остальные цифры знаменитого числа находятся в регистрах 1-Е группами по 6 цифр в каждом регистре.
СЫГРАЕМ В ПОКЕР!
Несколько костей-кубиков с точками или рисунками на гранях - вот и весь нехитрый инвентарь для игр, дошедших до нас из глубины веков. Правда, после появления игральных карт интерес к костям снизился, но в некоторые игры играют и сейчас. Одной из таких игр является покер. Рассмотрим одну из его разновидностей. Игроки по очереди бросают сразу шесть костей, на гранях которых нанесено от одной до шести точек. После чего фиксируется комбинация точек на верхних гранях. Победителем считается тот, у кого выпала более старшая комбинация. В порядке старшинства комбинации расположены так: 2 на 2 - в комбинации две пары одинаковых граней, например, 1 2 3 6 2 1 (упорядочивание ведут сами игроки). В данном случае 2 на 2 это 11 и 22. 2 на 3 - в комбинации три пары одинаковых граней (например, 11 22 55). 3 на 2 - две тройки одинаковых граней (например, 444 666). Каре - четыре одинаковых. Пирамида - одна из комбинаций - 122333, 233444, 344555 и 455666. Линия - выпали все значения от одного до шести. Пентагон - пять одинаковых. И, наконец, самая старшая комбинация - покер - шесть одинаковых. Если у игроков выпадают одинаковые комбинации, то старшей является та, в которой сумма очков комбинации больше. Игроки договариваются, сколько раз подряд они будут бросать кости. Во время второго и последующих бросаний можно метать не все кости, а только те, которые могут улучшить комбинацию. Повторно бросамые кости называются "кривыми". Например, выпал Пентагон 144444. Считая 1 "кривой" костью, можно бросить ее еще раз. Ведь если выпадет 4 - будет покер.
Вместо игральных костей можно использовать микрокалькулятор. Он может выступить и в роли партнера, но тогда вам придется определять и заменять "кривые* кости за себя и за него. Программа игры:
00. 7 01. XП0 02. ПХ2 03. ХП4 04. FL0 05. 39. 06. 5 07. ПХ0 08. ПХ2 09. ХП4 10. КПХ4. 11. ПХ6 12. * 13. КПХ4 14. + 15. ХП5 16. FL0 17. 11 18. С/П 19. ПХ2 20. ХП4 21. 7 22. XП0 23. FL0 24. 27 25. БП 26. 06 27. КПХ4 28. Fx=0 29. 23 30. ПХ4 31. 1 32. - 33. ХП4 34. ПП 35. 44 36. КХП4 37. БП 38. 23 39. ПП 40. 44 41. КХП4 42. БП 43. 04 44. ПХ1 45. ПХ3 46. * 47. Fпи 48. + 49. К{х} 50. ХП1 51. 6 52. * 53. 1 54. + 55. К[х] 56. В/0.
Случайные числа 1..6 формируются подпрограммой (шаги 44-56). Их распределение по регистрам памяти происходит на шагах 41-43. На шагах 19-38 происходит выбрасывание "кривых" костей и замена их другими.
Перед пуском программы в регистры памяти записывают: 8 - в Р2, 11 - в Р3 и 10 - в Р6. В Р1 заносят e - стартовое число для ГСЧ (0<e<1). Для получения первой комбинации нажимают клавиши В/0 С/П. Примерно через 45 секунд на индикаторе появляется выпавшая комбинация. Цифры этой комбинации хранятся в регистрах 9, А, В, С, Д и Е. Этот порядок соответствует тому порядку, в котором расположились кости на индикаторе. Для замены "кривых" костей в соответствующие регистры вводят ноль и нажимают клавишу С/П. Замена продолжается около 40с, и результат появляется на индикаторе. Если производится более одной замены, то все они производятся так же, как и первая. Когда очередь хода переходит ко второму игроку, он нажимает клавиши В/0 С/П. Замена "кривых" костей происходит так, как сказано выше. Тест. Пусть каждому игроку разрешается по одной замене "кривых" костей. Зададимся стартовым числом ГСЧ 0.12 и введем его в Р1. Ход первого игрока. В/0 С/П "324232". Уже есть младшая комбинация 33 22 (2*2), но хочется большего. Заменим все цифры, кроме 2. Сх ХП9 ХПВ ХПД С/П "326222" - каре на двойках - 322226. Ход второго игрока. В/0 С/П "546554", полученная комбинация 2*2 (44 55) младше каре на двойках, и поэтому нужно использовать шанс и заменить 4 и 6. Сх ХПА ХПВ ХПЕ С/П "525551". Каре на пятерках. Это победа в партии. Можно начинать другую. В/0 С/П...
А.НИЛИН (г.Апатиты)
[ НАМ ОТВЕЧАЕТ ЗАВОД "КВАЗАР"
В 1990г. в нашем разделе трижды публиковались материалы о БРП-3. В 2/90 - "Первый том... комом", в 4/90 - "Год работы с БРП-3" и 10/90 - "Вам привет от БРП". В редакцию поступил ответ от завода "Квазар", изготавливающего эти блоки, подготовленный начальником отдела Э.И.Жигадло и подписанный заместителем Генерального директора В.Ф.Туриком. К сожалению, в ответе речь идет только о последней публикации.
"В блоках БРП-2 и БРП-3,- говорится в этом ответе,- применена микросхема ПЗУ64К-2-005 производства нашего предприятия, все поле памяти которой состоит из двух матриц емкостью 32К каждая. Одна из матриц "прошита" программой для решения астронавигационных задач (блок БРП-2, перемычка на плате в положении П2), в другую матрицу "зашиты" программы для решения ряда вычислительных задач (блок БРП-3, перемычка в положении П1)".
Соглашаясь с замечаниями С.Ивашкова и Э.Эйдельмана о том, что при составлении программы 16 использовались неверные формулы, и с замечаниями по запутанности некоторых положений Руководства по эксплуатации, в ответе говорится: "устранить эти замечания, к сожалению, уже невозможно, т.к. блок БРП-3 снят с производства. Поэтому авторы заметок, которым мы приносим свои извинения, могут сдать их в установленном порядке и получить обратно деньги, если блоки нужны им только для решения именно этих задач. В случае проблем с возвратом денег авторы могут обратиться непосредственно к нам по адресу: 252136, Киев, ул.Сырецкая 3, сославшись на это письмо (#6/660 08 января 1991г.)".
В заключении ответа сказано, что завод "Квазар" не планирует производить блоки БРП с программами заказчика из-за высокой стоимости заказных БИС ПЗУ вследствие их малосерийности ]
[ УЗЕЛКИ НА ПАМЯТЬ
Мною обнаружены следующие странности в работе микрокалькулятора "Электроника МК-85":
- в режиме RAD cos(0)=-1, а должно быть +1;
- при нулевом аргументе в режимах DEG и GRA при вычислении ATN(0) получаем сообщение ERR3, а в режиме RAD результат вычисления ATN(0) - текстовая переменная, не содержащая символов. Таким образом, следует избегать вычисления арктангенса нуля во всех режимах;
- в инструкции указано, что допустимый диапазон значений аргумента при вычислении тригонометрических функций соответствует всему диапазону чисел - от 1e-4035 до 1e4035, однако опасно оперировать числами меньше, чем 1e-880, в противном случае последствия могут оказаться трагическими. В режиме RAD сов 1e887 приводит к "зависанию" микрокалькулятора, cos(1e-891) - к выключению, сов(1e-889) - к переходу в исходный режим. Но самое опасное происходит в режиме GRA, если попытаться вычислить cos(1e-888). В этом случае происходит авария, разрушающая оперативную память, происходит ее очистка, и гибнет все, что там было записано. Чтобы вернуть калькулятор к жизни, нужно подать команду TEST;
- в режиме WRT в случае появления сообщения ERR1 при вводе программы, нельзя нажимать клавишу ANS. Если это сделать, то можно испортить другие файлы. Нужно воспользоваться клавишей АС.
Э.ГАУЗЕР (г.Баку) ]
1024 СОВЕТА
(БАЙТ ДВЕНАДЦАТЫЙ)
В байте советов продолжается разговор об антивирусной профилактике при работе с "айбиэмками", начатый в первом выпуске "Школы пользователя ЭВМ".
89. Если товарищ предлагает новую любопытную программу, а ты не совсем уверен, пригодится она тебе или нет, то постарайся "прогнать" ее в познавательных целях на машине того же товарища, где она уже не раз запускалась. Не вставляй лишний раз чужую дискету или свою собственную, но с чужими программами в свою машину, даже если для удовлетворения любопытства тебе придется проехаться в другой конец города.
90. Если в твоей организации много персональных компьютеров, то отведи одному из них роль своеобразного отстойника, вернее, карантинной бухты, если вспомнить название нашего байта советов. Испытывать зараженность вновь поступающих программ, добытых пиратским способом, лучше не на всех машинах, а на какой-то одной, не забывая при этом менять показания ее встроенных часов и календаря, так как многие вирусы настроены на определенное время и (или) дату.
91. Если у тебя есть антивирусные программы, то сразу запиши команды их запуска в стартовый файл AUTOEXEC.BAT. В этом случае антивирусная профилактика машины будет проводиться каждый раз после ее очередного запуска. В стартовый файл стоит также записать команды вызова специальных резидентных программ-церберов, предупреждающих пользователя о попытках других программ стать резидентными или о внесюжетной записи информации в файлы на дисках.
92. Боже тебя упаси запускать самопроизвольно возникающие в зараженной машине файлы с расширениями *.EXE, *.COM, *.ВАТ. Типичный пример такого (его еще называют троянским) файла - файл с именем SEXSHOW.EXE, ни с того ни с сего появляющийся на диске и приглашающий человека сыграть в некую фривольную игру для взрослых, но на самом деле стирающий информацию на винчестере. У таких "игровых" файлов должен быть один партнер - антивирусные программы (см. совет 91).
93. Заведи на диске текстовый файл с записью размеров основных рабочих файлов. Это поможет зафиксировать вирусное "распухание" операционной системы и вовремя принять соответствующие лечебные меры (см. совет 91). Не пожалей памяти машины на резидентные программы, автоматически фиксирующие изменения в атрибутах файлов на диске.
94. Если ты имеешь склонность к доработке не только математического обеспечения компьютера, но и аппаратных средств (а таких людей, судя по почте рубрики, много среди читателей), то приделай к машине еще один замок, запирание которого будет препятствовать записи на винчестер, но не будет мешать считыванию информации с него. Не оставляй штатный ключ в замке, запирающем клавиатуру, даже если ты покидаешь машину только на минутку. При отсутствии замка оснасти машину программой-администратором, допускающей пользователя к работе только по паролю. Не забывай этот пароль периодически менять.
95. Помни, что в вирусной обстановке нормальное состояние дискет - заклеенная прорезь (5.25 дюйма) и открытая заслонка (3.5 дюйма). Если к этому добавить еще замок, описанный в совете 94, то вероятность заразить свой компьютер вирусом резко снизится.
96. Если при работе машина пытается записать вирус на защищенную дискету (см. совет 95) и выдает в связи с этим сообщение об ошибке (запись на защищенную дискету), то не пытайся игнорировать эту ситуацию, нажимая на клавишу "I" (Ignory). Здесь будет лучше просто прервать работу компьютера и попытаться уничтожить вирус спецсредствами (см. совет 91). Помни, что есть обидчивые вирусы, мстящие пользователю за препятствия на пути своего размножения. Троекратное нажатие на клавишу "I" (Ignory) может рассердить вирус и толкнуть его на серьезные действия - например, на порчу информации на винчестере.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
7/91
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
Занятие ДЕСЯТОЕ, где пойдет разговор о среде программирования Turbo Pascal (ТР), разработанной американской фирмой Borland International, Inc. (далее просто Borland). Ведут занятие В.Ф.ОЧКОВ (преподаватель Московского энергетического института), В.А.ВАСИН (сотрудник Московского энергетического института), К.В.КОРОБКОВ (сотрудник Института прикладной математики АН СССР), Д.Ю.МАРТЫНОВ (выпускник московской школы #1234), Э.М.ПРОЙДАКОВ (заведующий лабораторией научно-производственного центра "Эхо+") и А.Г.ФЕДОРОВ (сотрудник совместного советско-франко-итальянского предприятия "Интерквадро").
"Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколько-нибудь развязности, какая у Балтазара Балтазаровича, да, пожалуй, прибавить к этому еще дородности Ивана Павловича - я бы тогда тотчас же решилась."
Н.Гоголь. "Женитьба".
Когда в начале 1990 года семинар по информатике "Школа начинающего программиста" стал называться "Школой пользователя ЭВМ", имелось в виду, что мы не будем, как прежде, учить наших читателей создавать программы, но станем больше внимания уделять технологии использования готовых программных средств. Но "человек предполагает, а судьба располагает". Решение даже, казалось бы, простейших задач требует знания основ программирования. Поэтому мы продолжаем рассказывать о языках, на которых человек объясняет свою проблему машине.
Нет, наверное, программиста, который подобно гоголевской Агафье Тихоновне, выбирающей женихов, не воскликнул: "Если бы fortran'овскую библиотеку численного решения уравнений и систем да приставить к богатству прикладных программ BASIC а, да взять сколько-нибудь структурности, какая у языка Pascal, да, пожалуй, прибавить к этому еще мощности и гибкости языка С - я бы тогда тотчас же решился, связал бы свою судьбу только с этим языком программирования и никогда бы ему не изменял".
Продолжаем парад "женихов". А начнем с примера, подтверждающего верность тезиса (см. начало статьи) о необходимости в той или иной степени знания азов программирования. В 3/91 год шел разговор о расчетах с использованием электронных таблиц пакета Framework III. Эта интегрированная система включает в себя и язык программирования FRED (FRame EDitor), позволяющий в ячейку электронной таблицы или базы данных поместить не только формулу (@SIN(A3)+@MAX(D5:G12S), например), но и целую программу с локальными переменными, процедурами, функциями, циклами, альтернативами и т.д., если просто формулы недостаточно.
Иллюстрирующий пример. В 12/90 были помещены QuickBASIC-программы расчета суммы "чистых" выплат населению с учетом новой схемы налогообложения в СССР. Даже такая простенькая бухгалтерская задача уже потребовала знания азов программирования - конструкции выбора: (SELEСТ CASE ENDSELECT).
Решение же обратной задачи (расчет суммы "грязных" денег по полученным на руки "чистым") невозможно без знакомства с численными методами решения алгебраических уравнений. Вот как выглядит Pascal-программа решения такой задачи применительно к налоговой системе США. За нашей же налоговой системой не угонишься - она меняется от сессии к сессии. Источник информации для нашего семинара по информатике самый подходящий - книга: David I.Schneider "Microsoft QuickBASIC: An Infroducfion to Structured Programing".
В программе для реализации метода секущих (частный случай метода Ньютона - см. урок по QuickBASIC'у в 11/90, когда касательную заменяют на секущую, проходящую через две точки: у нас это G1 и G2) использована основная управляющая конструкция алгоритмов цикл "пока" (итерация с предпроверкой), выделенный рамкой структурной диаграммы.
А вот программа для аналогичной цели, но с еще одной управляющей конструкцией алгоритмов, со встроенной в цикл альтернативой, замыкающей Дейкстровскую триаду: следование, повторение, выбор.
Сравнивая вышеприведенные программы с QuickBASIC-аналогами в 12/90, можно отметить следующие отличия языка Pascal от BASIC'а.
Если в BASIC-программу "можно нырнуть с разбегу", т.е. начать реализацию задуманного первым оператором (из-за этого-то BASIC и стал любимцем начинающих), то перед началом Pascal-программы требуется "слегка остыть", т.к. она всегда начинается со своеобразной "увертюры", где "композитор" должен педантично перечислить все задействованные в программе переменные (у нас это adjPay, Gl, G2, G и Ch - вещественного типа Real), функции пользователя: их имена (TaxSingle, например), типы аргумента и возвращаемого значения (все Real), процедуры, метки и т.п. Процедура (функция) в свою очередь может иметь свои собственные локальные переменные, процедуры, функции, метки и т.д.: "Вассал моего вассала - не мой вассал - переменная моей процедуры - не моя переменная". Такая, как говорил приятель Швейка вольноопределяющийся Марек, "систематизированная систематическая система" нередко приводит к тому, что непрофессиональный программист, "остывая", совсем замерзает и уже не хочет "нырять" в Pascal, а возвращается к старому приятелю - к BASIC'у.
Наиболее "ортодоксальные" версии Pascal'я требуют четкого порядка в "увертюре" к создаваемой программе: в "катехизисе" такого языка перечислено, что за чем должно стоять, и если, например, описание функции "забежит вперед батьки в пекло", т.е. окажется впереди описания переменных, то компилятор откажется "проглатывать" такую "еретическую", на его взгляд, исходную программу.
Но текст Quick- или Turbo BASIC-программы не сложно переписать для языка Pascal. Более-менее опытный программист справится с такой работой в два счета, используя такие функции редактора, как возможность перестановки местами строк и целых блоков текста, а также замены одних символов другими. Нужно будет, например, заменить в операторах присваивания знак "равно" (=) на знак "соответствует" (:=), оставив его только в логических (булевых) выражениях. Символ "=" в BASIC-npoграммах несет двойную нагрузку, поэтому оператор А=В=С имеет вполне определенный смысл: переменной А будет возвращено значение "минус единица" (бейсиковская истина), еспи В равно С, или "ноль" (бейсиковская ложь) в противном случае. В Pascal-программе в аналогичной ситуации нужно будет записать А:=В=С и "сбегать" в начало программы, для того чтобы оговорить, что А - это булевая переменная.
В пакете Eureka (см. 9/90) оба символа, и "=", и ":=", являются знаками присваивания, но имеют в этой операции разный приоритет: человек просит машину сначала превратить в тождества уравнения со знаком "=" и только потом остальные, у которых знак ":=". С языками программирования не соскучишься!
Строка в Pascal-программе, в отличие от BASIC'S, не несет никакой смысловой нагрузки, и ее можно рвать как угодно. Этой особенностью языка воспользовался читатель В.Соловьев, приславший Pascal-функцию расчета чисел Фибоначчи, где количество символов в строках было равно этим самым числам: 0, 1, 1, 2, 3, 5, 8, 5+8 и т.д. (Единство формы и содержания: см. 6/89).
BASIС'овскую функцию нажатия клавиши Enter (или "двоеточие") несут Pascal'евское слово End и знак "точка с запятой". Комментарии в Pascal-программах, как правило, заключаются в фигурные скобки, чтобы машина знала, какую "воду" нужно будет "выжимать" из программы при ее компиляции. Попутно заметим, что фигурные скобки в С-программах имеют прямо противоположный смысл, отмечая не "воду", а "соль" программы: "{" начало (на Pascal'e для этого пишется Begin) и "}" конец (End) блока операторов. Повторяем еще раз: с чем-чем, а с языками программирования не соскучишься!
Педантичный читатель отметит, что в вышеприведенных "налоговых" программах более уместен не цикл "пока", а цикл с выходом из середины. Но на Pascal's его так просто не запишешь. При необходимости он реализуется двумя способами. Во-первых, прервать цикл в любом месте можно с помощью метки и оператора условного перехода (If... Goto...). Те же, на кого метка в программе действует, как красная тряпка на быка, как говорил Даниил Хармс, "поступают самым остроумным способом". Тело цикла записывается процедурой с вкраплениями If...Then Exit если..., то прерви выполнение процедуры и вернись в основную программу - к оператору, записанному за именем процедуры. На QuickBASIC's цикл можно прервать в любом месте любое число раз (DO IF THEN EXIT DO LOOP или FOR IF THEN EXIT FOR NEXT). В языке С пошли еще дальше: цикл можно прервать, передав управление программой либо в конец цикла (If... Then Break), либо в его начало (If... Then Continue). Так что можно быть "более католиком, чем папа римский" и более структурированным языком, чем Pascal.
Эти замечания касались, так сказать, программистской стороны программы. Но нашим читателям, успешно осваивающим персональные компьютеры и повышающим вследствие этого не только свой образовательный, но и материальный уровень, интересно вникнуть и в саму задачу о налогах. Что при этом бросается в глаза. Во-первых, налоговая система США нацелена на укрепление семьи: если супруги захотят развестись, то государство сразу накажет их рублем, точнее, долларом. Во-вторых, в США никому в голову не придет "драть" с налогоплательщика 60 и более процентов с заработка, превышающего определенную сумму. 33 процента - вот тот предел, на который отваживается государство, не опасаясь погасить деловую активность своих кормильцев. В-третьих и главных, при высоких доходах ставка налога снижается до 28 процентов. Преуспевающие налогоплательщики свои сверхдоходы в рыночной среде никогда не будут проедать, а пустят их в дело: купят акции, средства производства (тот же персональный компьютер или новую версию компилятора Turbo Pascal, к примеру), займутся благотворительностью и т.д.
Язык программирования Pascal, названный в честь философа Блеза Паскаля (1623-1662), разработан в 1970г. швейцарским математиком Н.Виртом, интервью с которым можно прочесть в первом номере журнала "Лоцман ПК", "отпочковавшемся" от компьютерных рубрик "Науки и жизни". Начальные версии этого языка предназначались только для обучения студентов программированию. Считалось, что после работы на "тогдашнем" Бейсике с его лабиринтом условных переходов к меткам-номерам строк и слаборазвитой структурой данных у студентов вырабатывается плохой стиль программирования, который потом исправить почти невозможно. Первые версии языка Pascal очень удобно было использовать для написания небольших учебных программ, для демонстрации методов структурного программирования, но для реальной работы его возможностей было явно недостаточно. Поэтому во все последующие реализации языка Pascal для персональных компьютеров (Паскаль-86, Паскаль МТ+, Microsoft Pascal и, наконец, ТР - Turbo Pascal, предмет нашего разговора) внесены значительные изменения.
У каждой из указанных реализаций есть свои достоинства и недостатки. Но, если учитывать удобство использования, качество документации, возможность отладки и наличие дополнительных средств (поддерживающей интегрированной среды, библиотек, прикладных пакетов и т.д., что в последнее время называется Programmer's Platform), то предпочтение в большинстве случаев отдается компилятору Turbo Pascal.
Эта среда программирования в своем развитии прошла следующие этапы:
1. Версии 3.01 и ниже были реализованы и для 16-разрядных ПК (в том числе и совместимых с IBM PC XT/AT) с операционными системами (ОС) СР/М-86 (советский аналог МИКРОС-86), PC-DOS и MS-DOS (МДОС1810 и МДОС1820), и для 8-разрядных машин на базе микропроцессора Z-80 (ГДРовский U880) с ОС СР/М-80 и SCP-1715 (ПЭВМ "Роботрон 1715"). Кроме базовой версии (Turbo), существовали отдельные ее модификации для решения научных (Turbo87) и экономических (Turbo BCD).
2. В версии 4.0 (1987г.) значительно улучшено взаимодействие (интерфейс) системы с пользователем. Введено понятие модуля и поддержка их раздельной компиляции. Добавлены встроенные средства управления проектом. В языке появились новые типы данных: Word, Shortint, Longint, Single, Double и Extended. Реализованы графический интерфейс BGI (Borland Graphics Interface). Скорость компиляции повышена до 27000 операторов в минуту (IBM PC с 8МГц тактовой частоты).
3. В версии 5.0 (осень
1988г.) появился встроенный символьный отладчик (Debugger). Добавлена возможность записи выражений при определении констант и программная эмуляция арифметического сопроцессора (8087 для XT и 80287 или 80387 для AT) при его отсутствии. Включена поддержка расширенной оперативной памяти (так называемой EMS - Expanded Memory System - памяти), т.е. преодолен 640-килобайтный лимит MS-DOS. Это дает возможность загружать части программы (оверлеи) или использовать эту память интегрированной средой.
4. В версию 5.5 (май
1989г.) добавлены (!!!) средства поддержки технологии объектно-ориентированного программирования (ООП - Организация Освобождения Программирования от процедурных ограничений - см. ниже) с символьным отладчиком. Скорость компиляции возросла до 34000 операторов в минуту.
5. Версия 6.0 (осень 1990г.) получила новую оболочку, похожую на оболочку языка Turbo C++, с названием Programmer's Platform (см. выше), а также поддержку манипулятора "мышь". Появилась возможность одновременного редактирования несколько файлов объемом до 1 Мбайт каждый. И наконец-то появился нормальный встроенный ассемблер и кодогенератор для 286-го процессора. Улучшены средства отладки. Следует заметить, что с этой версией трудно работать на безвинчестерном компьютере также и потому, что система в полном объеме требует для размещения более 2.5 Мбайт дисковой памяти.
На всех этапах в язык добавлялись новые встроенные процедуры и функции, расширялись библиотеки.
Анализ причин популярности интерпретаторов (например, таких языков, как BASIC) показал, что основное для пользователя это легкость освоения языка, удобство разработки и отладки программы. Интерпретаторы, как правило, включают в себя средства построчного (а в последнее время - экранного) редактирования, трансляции программы в промежуточный код для повышения скорости этой операции, а также средства трассировки программы при ее прогонке: вывод на экран номера выполненного оператора, возможность останова программы, просмотра и изменения значения переменных с последующим продолжением выполнения программы.
Поэтому при разработке популярного компилятора для ТР предстояло решить, каким образом следует создать вокруг него программную среду, предоставляющую возможности не хуже, чем в среде интерпретатора. Для этого впервые для компилятора была создана простейшая интегрированная оболочка (ИО), представляющая собой объединенную с компилятором программную среду с такими средствами:
- ввод и редактирование в полноэкранном режиме исходных текстов программ;
- операции с каталогами и файлами диска;
- трансляция программы с размещением объектного кода в ОЗУ;
- автоматическая компоновка объектного файла с библиотеками;
- выполнение и отладка программы без выхода из ИО;
- получение справочной информации;
- установка параметров (опций) компилятора и системы.
В дальнейшем ИО реализовывались и во всех других Borland'овских разработках (Turbo С, Turbo BASIC, Turbo Prolog). Каждая ИО в зависимости от языка имеет свои особенности, но все они имеют общую основу. Поэтому, освоив работу в одной из ИО, очень легко начать пользоваться другой оболочкой.
При загрузке среды ТР в верхней строке экрана появляется главное меню. В нем находятся названия основных режимов работы с системой. Назначение большинства режимов уже знакомо нашему читателю по среде QuickBASIC, описанной в 11/90.
Общий вид интегрированной оболочки - по-английски shell - раковина. Какие программы-жемчужины появятся в ней зависит от мастерства и таланта программиста.
Что скрывается за названиями блюд главного меню? Вспомним киплинговский эпиграф урока по QuickBASIC у. "Есть у меня шестерка (у нас девятка) слуг проворных, удалых. И все, что вижу я вокруг, все узнаю от них. Они по зову моему являются в беде. Зовут их...":
- Files - работа с файлами и взаимодействие с DOS;
- Edit - ввод и редактирование текста программы;
- Search - различные функции, связанные с поиском;
- Run - выполнение и отладка программы;
- Compile - компиляция программы;
- Debug - работа со встроенным отладчиком;
- Options - установка режимов работы пакета ТР;
- Window - работа с окнами ;
- Help - вызов справочной системы.
После нажатия клавиши F10 (как у Лексикона, см. 5/90) это меню активизируется. Текущее положение в меню отмечено выделяющейся цветом и яркостью полоской. Перемещая эту полоску (курсор меню) с помощью клавиш "стрелка вправо" и "стрелка влево", а затем нажимая клавишу Enter, выбирают необходимый режим. Этого можно добиться также одновременным нажатием клавиши Alt и первой буквы названия соответствующего меню. Например, для выбора, режима "Редактирование" достаточно взять аккорд Alt-E. Еще проще все это делается с помощью "мыши".
Экран обычно разделен на следующие окна, которые при необходимости могут перекрывать друг друга (см. рисунки урока по пакету Eureka в 9/90):
- окно редактирования, куда вводятся и затем редактируются программы;
- окно сообщений отладчика (окно трассировки);
- окно пользователя для вывода результатов прогонки программы;
- окно состояния регистров процессора (доступно только при пошаговой отладке);
- прочие окна (поиска, помощи, контрольных точек, вычисления выражений), появляющиеся при специальном обращении к ним.
Все режимы главного меню содержат дополнительные подменю. Выход из любого подменю осуществляется либо нажатием клавиши Esc, либо правой кнопки мыши, функцию которой при желании можно переопределить. Левая же кнопка мыши эквивалентна клавише Enter, нажатие на которую приводит к "заказу" выбранного "блюда" из меню к выполнению задуманного.
Среда ТР помогает и сопровождению проектов. Цикл индивидуальной разработки программы (без постановочной части) можно представить следующей схемой:
- с помощью встроенного редактора вводится исходный текст программы и сохраняется в виде файла на диске;
- периодически, по мере ввода новых процедур, программа транслируется для выявления синтаксических ошибок, которые тут же устраняются;
- по мере необходимости с помощью встроенных средств трассировки производится отладка каждой новой версии программы;
- периодически производится структуризация программы;
- независимые части программы выделяются в отдельные модули.
Для увеличения скорости компиляция может производиться в оперативную память, а не на диск, чтобы не ждать завершения медленных дисковых операций. При обнаружении в тексте программы синтаксической ошибки осуществляется возврат в режим редактирования. Курсор при этом показывает место обнаруженной ошибки, при этом отмечается ее тип. Система помощи позволяет получить расширенное объяснение ошибки, что способствует оперативному ее устранению.
Компоновка с библиотеками поддержки осуществляется автоматически, незаметно для пользователя. Эти библиотеки оформлены в виде набора модулей: Dos, Crt, Graph, Printer, System и др. Важно отметить, что фирма Borland продает отдельно (и только зарегистрированным пользователям) их исходные тексты, что исключительно полезно как для создания своих библиотек (поддержка кириллицы в функциях, работа с нестандартным дисплеем или с магнитофоном, например), так и для целей обучения.
Очень важно, что при компоновке неиспользуемые процедуры не включаются в исполняемый файл. В качестве формата объектного файла принят формат фирмы Intel. Возможна компоновка программы в среде ТР с программами, написанными на языках Turbo С и Turbo Assembler и др.
Очень важна скорость компиляции. В первых версиях разработчики в ряде случаев пожертвовали ради нее эффективностью исполнения программы. Этот подход наложил существенные ограничения и на размер программы. Объем редактируемого файла, кодового сегмента и сегмента данных мог быть не более 64 Кбайт (программа в 5000-6000 операторов). Начиная с версии 4.0 эти ограничения были сняты.
...
ШКОЛА ПОЛЬЗОВАТЕЛЯ ЭВМ
Занятие ДЕСЯТОЕ, где пойдет разговор о среде программирования Turbo Pascal (ТР), разработанной американской фирмой Borland International, Inc. (далее просто Borland). Ведут занятие В.Ф.ОЧКОВ (преподаватель Московского энергетического института), В.А.ВАСИН (сотрудник Московского энергетического института), К.В.КОРОБКОВ (сотрудник Института прикладной математики АН СССР), Д.Ю.МАРТЫНОВ (выпускник московской школы #1234), Э.М.ПРОЙДАКОВ (заведующий лабораторией научно-производственного центра "Эхо+") и А.Г.ФЕДОРОВ (сотрудник совместного советско-франко-итальянского предприятия "Интерквадро").
"Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколько-нибудь развязности, какая у Балтазара Балтазаровича, да, пожалуй, прибавить к этому еще дородности Ивана Павловича - я бы тогда тотчас же решилась."
Н.Гоголь. "Женитьба".
Когда в начале 1990 года семинар по информатике "Школа начинающего программиста" стал называться "Школой пользователя ЭВМ", имелось в виду, что мы не будем, как прежде, учить наших читателей создавать программы, но станем больше внимания уделять технологии использования готовых программных средств. Но "человек предполагает, а судьба располагает". Решение даже, казалось бы, простейших задач требует знания основ программирования. Поэтому мы продолжаем рассказывать о языках, на которых человек объясняет свою проблему машине.
Нет, наверное, программиста, который подобно гоголевской Агафье Тихоновне, выбирающей женихов, не воскликнул: "Если бы fortran'овскую библиотеку численного решения уравнений и систем да приставить к богатству прикладных программ BASIC а, да взять сколько-нибудь структурности, какая у языка Pascal, да, пожалуй, прибавить к этому еще мощности и гибкости языка С - я бы тогда тотчас же решился, связал бы свою судьбу только с этим языком программирования и никогда бы ему не изменял".
Продолжаем парад "женихов". А начнем с примера, подтверждающего верность тезиса (см. начало статьи) о необходимости в той или иной степени знания азов программирования. В 3/91 год шел разговор о расчетах с использованием электронных таблиц пакета Framework III. Эта интегрированная система включает в себя и язык программирования FRED (FRame EDitor), позволяющий в ячейку электронной таблицы или базы данных поместить не только формулу (@SIN(A3)+@MAX(D5:G12S), например), но и целую программу с локальными переменными, процедурами, функциями, циклами, альтернативами и т.д., если просто формулы недостаточно.
Иллюстрирующий пример. В 12/90 были помещены QuickBASIC-программы расчета суммы "чистых" выплат населению с учетом новой схемы налогообложения в СССР. Даже такая простенькая бухгалтерская задача уже потребовала знания азов программирования - конструкции выбора: (SELEСТ CASE ENDSELECT).
Решение же обратной задачи (расчет суммы "грязных" денег по полученным на руки "чистым") невозможно без знакомства с численными методами решения алгебраических уравнений. Вот как выглядит Pascal-программа решения такой задачи применительно к налоговой системе США. За нашей же налоговой системой не угонишься - она меняется от сессии к сессии. Источник информации для нашего семинара по информатике самый подходящий - книга: David I.Schneider "Microsoft QuickBASIC: An Infroducfion to Structured Programing".
В программе для реализации метода секущих (частный случай метода Ньютона - см. урок по QuickBASIC'у в 11/90, когда касательную заменяют на секущую, проходящую через две точки: у нас это G1 и G2) использована основная управляющая конструкция алгоритмов цикл "пока" (итерация с предпроверкой), выделенный рамкой структурной диаграммы.
А вот программа для аналогичной цели, но с еще одной управляющей конструкцией алгоритмов, со встроенной в цикл альтернативой, замыкающей Дейкстровскую триаду: следование, повторение, выбор.
Сравнивая вышеприведенные программы с QuickBASIC-аналогами в 12/90, можно отметить следующие отличия языка Pascal от BASIC'а.
Если в BASIC-программу "можно нырнуть с разбегу", т.е. начать реализацию задуманного первым оператором (из-за этого-то BASIC и стал любимцем начинающих), то перед началом Pascal-программы требуется "слегка остыть", т.к. она всегда начинается со своеобразной "увертюры", где "композитор" должен педантично перечислить все задействованные в программе переменные (у нас это adjPay, Gl, G2, G и Ch - вещественного типа Real), функции пользователя: их имена (TaxSingle, например), типы аргумента и возвращаемого значения (все Real), процедуры, метки и т.п. Процедура (функция) в свою очередь может иметь свои собственные локальные переменные, процедуры, функции, метки и т.д.: "Вассал моего вассала - не мой вассал - переменная моей процедуры - не моя переменная". Такая, как говорил приятель Швейка вольноопределяющийся Марек, "систематизированная систематическая система" нередко приводит к тому, что непрофессиональный программист, "остывая", совсем замерзает и уже не хочет "нырять" в Pascal, а возвращается к старому приятелю - к BASIC'у.
Наиболее "ортодоксальные" версии Pascal'я требуют четкого порядка в "увертюре" к создаваемой программе: в "катехизисе" такого языка перечислено, что за чем должно стоять, и если, например, описание функции "забежит вперед батьки в пекло", т.е. окажется впереди описания переменных, то компилятор откажется "проглатывать" такую "еретическую", на его взгляд, исходную программу.
Но текст Quick- или Turbo BASIC-программы не сложно переписать для языка Pascal. Более-менее опытный программист справится с такой работой в два счета, используя такие функции редактора, как возможность перестановки местами строк и целых блоков текста, а также замены одних символов другими. Нужно будет, например, заменить в операторах присваивания знак "равно" (=) на знак "соответствует" (:=), оставив его только в логических (булевых) выражениях. Символ "=" в BASIC-npoграммах несет двойную нагрузку, поэтому оператор А=В=С имеет вполне определенный смысл: переменной А будет возвращено значение "минус единица" (бейсиковская истина), еспи В равно С, или "ноль" (бейсиковская ложь) в противном случае. В Pascal-программе в аналогичной ситуации нужно будет записать А:=В=С и "сбегать" в начало программы, для того чтобы оговорить, что А - это булевая переменная.
В пакете Eureka (см. 9/90) оба символа, и "=", и ":=", являются знаками присваивания, но имеют в этой операции разный приоритет: человек просит машину сначала превратить в тождества уравнения со знаком "=" и только потом остальные, у которых знак ":=". С языками программирования не соскучишься!
Строка в Pascal-программе, в отличие от BASIC'S, не несет никакой смысловой нагрузки, и ее можно рвать как угодно. Этой особенностью языка воспользовался читатель В.Соловьев, приславший Pascal-функцию расчета чисел Фибоначчи, где количество символов в строках было равно этим самым числам: 0, 1, 1, 2, 3, 5, 8, 5+8 и т.д. (Единство формы и содержания: см. 6/89).
BASIС'овскую функцию нажатия клавиши Enter (или "двоеточие") несут Pascal'евское слово End и знак "точка с запятой". Комментарии в Pascal-программах, как правило, заключаются в фигурные скобки, чтобы машина знала, какую "воду" нужно будет "выжимать" из программы при ее компиляции. Попутно заметим, что фигурные скобки в С-программах имеют прямо противоположный смысл, отмечая не "воду", а "соль" программы: "{" начало (на Pascal'e для этого пишется Begin) и "}" конец (End) блока операторов. Повторяем еще раз: с чем-чем, а с языками программирования не соскучишься!
Педантичный читатель отметит, что в вышеприведенных "налоговых" программах более уместен не цикл "пока", а цикл с выходом из середины. Но на Pascal's его так просто не запишешь. При необходимости он реализуется двумя способами. Во-первых, прервать цикл в любом месте можно с помощью метки и оператора условного перехода (If... Goto...). Те же, на кого метка в программе действует, как красная тряпка на быка, как говорил Даниил Хармс, "поступают самым остроумным способом". Тело цикла записывается процедурой с вкраплениями If...Then Exit если..., то прерви выполнение процедуры и вернись в основную программу - к оператору, записанному за именем процедуры. На QuickBASIC's цикл можно прервать в любом месте любое число раз (DO IF THEN EXIT DO LOOP или FOR IF THEN EXIT FOR NEXT). В языке С пошли еще дальше: цикл можно прервать, передав управление программой либо в конец цикла (If... Then Break), либо в его начало (If... Then Continue). Так что можно быть "более католиком, чем папа римский" и более структурированным языком, чем Pascal.
Эти замечания касались, так сказать, программистской стороны программы. Но нашим читателям, успешно осваивающим персональные компьютеры и повышающим вследствие этого не только свой образовательный, но и материальный уровень, интересно вникнуть и в саму задачу о налогах. Что при этом бросается в глаза. Во-первых, налоговая система США нацелена на укрепление семьи: если супруги захотят развестись, то государство сразу накажет их рублем, точнее, долларом. Во-вторых, в США никому в голову не придет "драть" с налогоплательщика 60 и более процентов с заработка, превышающего определенную сумму. 33 процента - вот тот предел, на который отваживается государство, не опасаясь погасить деловую активность своих кормильцев. В-третьих и главных, при высоких доходах ставка налога снижается до 28 процентов. Преуспевающие налогоплательщики свои сверхдоходы в рыночной среде никогда не будут проедать, а пустят их в дело: купят акции, средства производства (тот же персональный компьютер или новую версию компилятора Turbo Pascal, к примеру), займутся благотворительностью и т.д.
Язык программирования Pascal, названный в честь философа Блеза Паскаля (1623-1662), разработан в 1970г. швейцарским математиком Н.Виртом, интервью с которым можно прочесть в первом номере журнала "Лоцман ПК", "отпочковавшемся" от компьютерных рубрик "Науки и жизни". Начальные версии этого языка предназначались только для обучения студентов программированию. Считалось, что после работы на "тогдашнем" Бейсике с его лабиринтом условных переходов к меткам-номерам строк и слаборазвитой структурой данных у студентов вырабатывается плохой стиль программирования, который потом исправить почти невозможно. Первые версии языка Pascal очень удобно было использовать для написания небольших учебных программ, для демонстрации методов структурного программирования, но для реальной работы его возможностей было явно недостаточно. Поэтому во все последующие реализации языка Pascal для персональных компьютеров (Паскаль-86, Паскаль МТ+, Microsoft Pascal и, наконец, ТР - Turbo Pascal, предмет нашего разговора) внесены значительные изменения.
У каждой из указанных реализаций есть свои достоинства и недостатки. Но, если учитывать удобство использования, качество документации, возможность отладки и наличие дополнительных средств (поддерживающей интегрированной среды, библиотек, прикладных пакетов и т.д., что в последнее время называется Programmer's Platform), то предпочтение в большинстве случаев отдается компилятору Turbo Pascal.
Эта среда программирования в своем развитии прошла следующие этапы:
1. Версии 3.01 и ниже были реализованы и для 16-разрядных ПК (в том числе и совместимых с IBM PC XT/AT) с операционными системами (ОС) СР/М-86 (советский аналог МИКРОС-86), PC-DOS и MS-DOS (МДОС1810 и МДОС1820), и для 8-разрядных машин на базе микропроцессора Z-80 (ГДРовский U880) с ОС СР/М-80 и SCP-1715 (ПЭВМ "Роботрон 1715"). Кроме базовой версии (Turbo), существовали отдельные ее модификации для решения научных (Turbo87) и экономических (Turbo BCD).
2. В версии 4.0 (1987г.) значительно улучшено взаимодействие (интерфейс) системы с пользователем. Введено понятие модуля и поддержка их раздельной компиляции. Добавлены встроенные средства управления проектом. В языке появились новые типы данных: Word, Shortint, Longint, Single, Double и Extended. Реализованы графический интерфейс BGI (Borland Graphics Interface). Скорость компиляции повышена до 27000 операторов в минуту (IBM PC с 8МГц тактовой частоты).
3. В версии 5.0 (осень
1988г.) появился встроенный символьный отладчик (Debugger). Добавлена возможность записи выражений при определении констант и программная эмуляция арифметического сопроцессора (8087 для XT и 80287 или 80387 для AT) при его отсутствии. Включена поддержка расширенной оперативной памяти (так называемой EMS - Expanded Memory System - памяти), т.е. преодолен 640-килобайтный лимит MS-DOS. Это дает возможность загружать части программы (оверлеи) или использовать эту память интегрированной средой.
4. В версию 5.5 (май
1989г.) добавлены (!!!) средства поддержки технологии объектно-ориентированного программирования (ООП - Организация Освобождения Программирования от процедурных ограничений - см. ниже) с символьным отладчиком. Скорость компиляции возросла до 34000 операторов в минуту.
5. Версия 6.0 (осень 1990г.) получила новую оболочку, похожую на оболочку языка Turbo C++, с названием Programmer's Platform (см. выше), а также поддержку манипулятора "мышь". Появилась возможность одновременного редактирования несколько файлов объемом до 1 Мбайт каждый. И наконец-то появился нормальный встроенный ассемблер и кодогенератор для 286-го процессора. Улучшены средства отладки. Следует заметить, что с этой версией трудно работать на безвинчестерном компьютере также и потому, что система в полном объеме требует для размещения более 2.5 Мбайт дисковой памяти.
На всех этапах в язык добавлялись новые встроенные процедуры и функции, расширялись библиотеки.
Анализ причин популярности интерпретаторов (например, таких языков, как BASIC) показал, что основное для пользователя это легкость освоения языка, удобство разработки и отладки программы. Интерпретаторы, как правило, включают в себя средства построчного (а в последнее время - экранного) редактирования, трансляции программы в промежуточный код для повышения скорости этой операции, а также средства трассировки программы при ее прогонке: вывод на экран номера выполненного оператора, возможность останова программы, просмотра и изменения значения переменных с последующим продолжением выполнения программы.
Поэтому при разработке популярного компилятора для ТР предстояло решить, каким образом следует создать вокруг него программную среду, предоставляющую возможности не хуже, чем в среде интерпретатора. Для этого впервые для компилятора была создана простейшая интегрированная оболочка (ИО), представляющая собой объединенную с компилятором программную среду с такими средствами:
- ввод и редактирование в полноэкранном режиме исходных текстов программ;
- операции с каталогами и файлами диска;
- трансляция программы с размещением объектного кода в ОЗУ;
- автоматическая компоновка объектного файла с библиотеками;
- выполнение и отладка программы без выхода из ИО;
- получение справочной информации;
- установка параметров (опций) компилятора и системы.
В дальнейшем ИО реализовывались и во всех других Borland'овских разработках (Turbo С, Turbo BASIC, Turbo Prolog). Каждая ИО в зависимости от языка имеет свои особенности, но все они имеют общую основу. Поэтому, освоив работу в одной из ИО, очень легко начать пользоваться другой оболочкой.
При загрузке среды ТР в верхней строке экрана появляется главное меню. В нем находятся названия основных режимов работы с системой. Назначение большинства режимов уже знакомо нашему читателю по среде QuickBASIC, описанной в 11/90.
Общий вид интегрированной оболочки - по-английски shell - раковина. Какие программы-жемчужины появятся в ней зависит от мастерства и таланта программиста.
Что скрывается за названиями блюд главного меню? Вспомним киплинговский эпиграф урока по QuickBASIC у. "Есть у меня шестерка (у нас девятка) слуг проворных, удалых. И все, что вижу я вокруг, все узнаю от них. Они по зову моему являются в беде. Зовут их...":
- Files - работа с файлами и взаимодействие с DOS;
- Edit - ввод и редактирование текста программы;
- Search - различные функции, связанные с поиском;
- Run - выполнение и отладка программы;
- Compile - компиляция программы;
- Debug - работа со встроенным отладчиком;
- Options - установка режимов работы пакета ТР;
- Window - работа с окнами ;
- Help - вызов справочной системы.
После нажатия клавиши F10 (как у Лексикона, см. 5/90) это меню активизируется. Текущее положение в меню отмечено выделяющейся цветом и яркостью полоской. Перемещая эту полоску (курсор меню) с помощью клавиш "стрелка вправо" и "стрелка влево", а затем нажимая клавишу Enter, выбирают необходимый режим. Этого можно добиться также одновременным нажатием клавиши Alt и первой буквы названия соответствующего меню. Например, для выбора, режима "Редактирование" достаточно взять аккорд Alt-E. Еще проще все это делается с помощью "мыши".
Экран обычно разделен на следующие окна, которые при необходимости могут перекрывать друг друга (см. рисунки урока по пакету Eureka в 9/90):
- окно редактирования, куда вводятся и затем редактируются программы;
- окно сообщений отладчика (окно трассировки);
- окно пользователя для вывода результатов прогонки программы;
- окно состояния регистров процессора (доступно только при пошаговой отладке);
- прочие окна (поиска, помощи, контрольных точек, вычисления выражений), появляющиеся при специальном обращении к ним.
Все режимы главного меню содержат дополнительные подменю. Выход из любого подменю осуществляется либо нажатием клавиши Esc, либо правой кнопки мыши, функцию которой при желании можно переопределить. Левая же кнопка мыши эквивалентна клавише Enter, нажатие на которую приводит к "заказу" выбранного "блюда" из меню к выполнению задуманного.
Среда ТР помогает и сопровождению проектов. Цикл индивидуальной разработки программы (без постановочной части) можно представить следующей схемой:
- с помощью встроенного редактора вводится исходный текст программы и сохраняется в виде файла на диске;
- периодически, по мере ввода новых процедур, программа транслируется для выявления синтаксических ошибок, которые тут же устраняются;
- по мере необходимости с помощью встроенных средств трассировки производится отладка каждой новой версии программы;
- периодически производится структуризация программы;
- независимые части программы выделяются в отдельные модули.
Для увеличения скорости компиляция может производиться в оперативную память, а не на диск, чтобы не ждать завершения медленных дисковых операций. При обнаружении в тексте программы синтаксической ошибки осуществляется возврат в режим редактирования. Курсор при этом показывает место обнаруженной ошибки, при этом отмечается ее тип. Система помощи позволяет получить расширенное объяснение ошибки, что способствует оперативному ее устранению.
Компоновка с библиотеками поддержки осуществляется автоматически, незаметно для пользователя. Эти библиотеки оформлены в виде набора модулей: Dos, Crt, Graph, Printer, System и др. Важно отметить, что фирма Borland продает отдельно (и только зарегистрированным пользователям) их исходные тексты, что исключительно полезно как для создания своих библиотек (поддержка кириллицы в функциях, работа с нестандартным дисплеем или с магнитофоном, например), так и для целей обучения.
Очень важно, что при компоновке неиспользуемые процедуры не включаются в исполняемый файл. В качестве формата объектного файла принят формат фирмы Intel. Возможна компоновка программы в среде ТР с программами, написанными на языках Turbo С и Turbo Assembler и др.
Очень важна скорость компиляции. В первых версиях разработчики в ряде случаев пожертвовали ради нее эффективностью исполнения программы. Этот подход наложил существенные ограничения и на размер программы. Объем редактируемого файла, кодового сегмента и сегмента данных мог быть не более 64 Кбайт (программа в 5000-6000 операторов). Начиная с версии 4.0 эти ограничения были сняты.
...
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
...
В ТР разработчики отказались от многих ограничений, вызванных тем, что Pascal первоначально предназначался только для обучения. "К губам Никанора Ивановича приставили нос Ивана Кузьмича":
1. Отказались от фиксированного порядка следования секций LABEL. CONST, TYPE, VAR, процедур и функций "ортодоксального" Pascal'я, см. начало урока.
2. Метки теперь могут быть не только цифровыми (рудимент от fortran'а и BASIC а), но и символьными.
3. Существенно улучшен и усилен ввод-вывод. Напомним, что гибель титана-algol'а в первую очередь была предрешена отсутствием хороших средств диалога человека с машиной при выполнении написанной программы. Чего стоила, к примеру, реализация на algole BASIC'овского INPUT'а или Pascal'евского Read'а!
4. Добавлена работа с графикой в стандарте BGI - Borland Graphic Interfase, поддерживающим практически все типы дисплеев IBM PC (CGA, EGA VGA, Hercules и др.).
5. Введена работа с программными и аппаратными прерываниями: процедура SetlntVec устанавливает, процедура GetlntVec возвращает вектор прерывания с заданным номером, процедура Intr вызывает программное прерывание с заданным номером, а процедура MsDos вызывает обращение к системным функциям DOS. Процедуры обработки прерываний имеют заголовок следующего вида: procedure имя_процедуры interrupt;
6. Разрешается работа с абсолютными адресами памяти. Этому способствует возможность записи чисел в шестнадцатеричной нотации. Таким константам предшествует знак $. Пример:
Var
Crt_Mode: byte absolute $0040:$0049;
Buff_Str: string[255];
StrLen: byte absolute Buff_Str;
Существует три предопределенных массива для работы с памятью: байтовый массив памяти (Mem), массив слов (MemW) и массив двойных слов (memL), которые позволяют читать и писать, соответственно, байты, слова и двойные слова (4 байта) в ОЗУ, например:
Byte_Var:=Mem[Dseg:$0С37];
7. Возможность работы с портами ввода-вывода. Массивы портов Port н PortW служат для ввода-вывода байтов и слов, соответственно. Это позволяет писать на ТР драйверы для медленных и среднескоростных устройств. Например, можно написать операторы:
Port[$f6]:=$20; { запись в порт значения }
Port[base+8]:=Port[base+8] xor Ready_mask; { готовность }
while PortW[$C2] and ($02=0) do <оператор> { ожидание }
8. Возможность включения в программу машинного кода, например, аналогов ассемблерных команд:
Procedure CLI; inline($FA);
Procedure STI; inline($FB);
либо написание процедур на встроенном ассемблере (BASM).
9. Поддержка арифметических сопроцессоров 8087, 80287 и 80387 или их программная эмуляция в случае отсутствия.
10. Символьная отладка позволяет выполнить программу пооператорно, непроцедурно и с установленными контрольными точками, а также помечать переменные, массивы и объекты для вывода их значений в окне отладки. Для отладки программ может также использоваться внешний отладчик Turbo Debugger, а для их оптимизации - пакет Turbo Profiler. С помощью средств Turbo Profiler's можно определить критичные по времени участки программы и переписать их, например, на ассемблере. Это может дать повышение скорости выполнения на 20-40%. Однако более существенные результаты обычно дают поиски более эффективных алгоритмов.
11. Поддержка объектно-ориентированного программирования.
12. Библиотека Turbo Vision представляет собой объектно-ориентированную оболочку для создания интерфейса прикладных программ.
Следует также остановиться на понятии потребитепьского качества программного обеспечения (ПО), под которым понимают совокупность свойств программы, делающих работу с ней удобной и приятной для пользоватепя. Этот критерий в значительной степени отражает наше эмоциональное отношение к тому или иному продукту и в конце концов его коммерческий успех. В программистском плане наработка потребительских свойств программного продукта очень трудная задача. Одна из главных причин успеха фирмы Borland заключается в очень высоком потребительском качестве создаваемого этой фирмой ПО. В частности, в ТР это проявляется в виде многих десятков мелочей, без которых, вообще говоря, можно обойтись, но их отсутствие (как, например, в Паскале "Эпектроники-85") равносильно переезду из пятизвездной гостиницы в рядовое общежитие.
Процедурным языкам программирования, к которым относится и Pascal, свойствен целый ряд недостатков, выражающихся в трудности отладки и сопровождения программ. Это вызвало появление языков других типов: объектно-ориентированных, функционального и логического программирования. Для многих программистов показался очень интересным шаг фирмы Borland к ООП в ТР 5.5.
Объектам присущи следующие свойства:
- Инкапсуляция: соединение (слияние) вместе данных и методов их обработки, что определяет свойства объекта. Такой подход позволяет избежать довольно неприятных с точки зрения их локализации и последствий ошибок. Инкапсуляция может быть полной, если к данным некоторого объекта применимы лишь те методы, которые описаны в данном объекте, или неполной. Очевидно, что полная инкапсуляция позволяет устранить вышеназванные ошибки.
- Наследование: объект-потомок получает все свойства, которые определены в объекте-предке. Это дает возможность создавать иерархии объектов. Примитивный пример - функция TAN(X), которая может "наследовать" свойства -других тригонометрических функций через формулу TAN(X)=SIN(X)/COS(X).
- Полиморфизм, когда объекты одного семейства могут использовать одноименные методы для обработки данных разного типа.
Взаимодействие с объектами происходит через обмен сообщениями.
Для поддержки ООП уже в ТР 5.5 введен новый тип данных: object. На первый взгляд он похож на тип данных запись. Например, для системы управления дорожным движением мы можем определить объект типа "светофор" следующим образом:
type Sf=object
Light: (red, yellow, green);
Ready_Time: integer
End;
В отличие от записей, объекты одного типа могут наследовать свойства объектов другого типа. Чтобы в нашем примере определить объект типа "светофор с дополнительной стрелкой влево", нужно только в скобках после слова object указать, от какого объекта наследуются свойства, а потом определить дополнительные данные:
Type Sfl=object(sf)
Left_Arrow: boolean;
Arrow Time: integer
End;
Кроме наследования, объекты отличаются от записей тем, что в них можно определить методы процедуры и функции, управляющие определенными в объекте данными. Методы также могут наследоваться. Например, для объекта "светофор" определим функцию, проверяющую, горит пи красный свет:
type Sf=object
Light: (red, yellow, green);
Ready_Time: integer;
function Red_Light: boolean
End;
function Sf.Red_Light: boolean;
begin
if Light=red then Red_Light:=true
else Red Light:=false
End; {red_light}
В объявлении объекта помещается только заголовок процедуры или функции. Обращение к полям данных объекта производится, как и к полям записи, либо указанием полного имени, либо с помощью конструкции:
With <тип_объекта> do <оператор>
Таким образом, работая с объектами, программист не обращается явным образом к данным, определенным внутри объекта (эти действия выполняют методы объектов), что позволяет скрыть структуру организации данных (которая может быть достаточно сложной) в объекте и полностью сосредоточится на работе с объектами. Этот подход несколько отличается от чистого ООП, как, например в языке Смоллток, и ближе к подходу, принятому в языке Turbo C++. Следует учесть, что, если конструкции процедурных языков, пройдя около 3000 реализаций, в основном стандартизовались, то ООП это область, освоение которой только началось.
ТР обеспечивает доступ к большому числу встроенных констант, типов данных, переменных, процедур и функций. Некоторые из них специфичны для ТР, другие специфичны для IBM-совместимых компьютеров или для операционной системы DOS. Их количество велико, однако в конкретной программе они редко используются все сразу. Поэтому они разделены на связанные группы, называемые модулями. В этом случае можно использовать только те модули, которые необходимы в программе.
Программный модуль представляет собой набор констант, типов данных, переменных, процедур и функций. Каждый модуль аналогичен отдельной программе: он может иметь основное тело, которое вызывается перед запуском вашей программы и осуществляет необходимую инициализацию. Короче говоря, модуль представляет собой библиотеку описаний, которую можно вставить в свою программу и которая позволит разбить программу на части, компилируемые отдельно.
Все описания внутри модуля связаны друг с другом. Например, модуль Crt содержит все описания, необходимые для подпрограмм работы с экраном на персональном компьютере. ТР предоставляет пользователю семь стандартных модулей. Пять из них - System, Graph, DOS, Crt и Printer - обеспечивают поддержку обычных программ на ТР. Два других Turbo3 и Graph3 предназначены для обеспечения совместимости с программами, созданными для версии ТР 3.0. Ряд модулей хранится в файле TURBO.TPL
Модуль обеспечивает набор средств благодаря процедурам и функциям при поддержке констант, типов данных и переменных, однако действительная реализация этих средств скрыта в силу того, что модуль разделен на две секции: интерфейса и реализации. Если программа использует модуль, то все описания модуля становятся доступными этой программе, как если бы они были определены в ней самой.
Структура модуля аналогична структуре программы, однако есть несколько существенных различий. Например, рассмотрим модуль:
unit <идентификатор>;
interface
uses <список модулей>; { необязательный }
{ открытые описания }
implementation
{ закрытые описания }
{ процедуры и функции }
begin
{ код инициализации }
End.
Заголовок модуля начинается зарезервированным словом unit, за которым следует имя модуля (идентификатор) точно так же, как и в случае имени программы. Следующим элементом в модуле является ключевое слово interface. Оно обозначает начало интерфейсной секции модуля секции, видимой всем другим модулям или программам, в которых он используется.
На реализацию любого языка программирования более других влияют два фактора: аппаратные возможности ЭВМ и возможность расширения языка. Первый определяет реализуемый уровень сервиса и инструментальной программной среды, второй - возможность дальнейшего развития данной реализации языка программирования. Для ПК на базе МП 80286 версия ТР 6.0 в значительной мере близка к насыщению. Новые возможности развития эта система получит с переходом на ПК на базе 32-разрядных микропроцессоров 80386SX/80386DX/80486 фирмы Intel.
Интересно соревнование (конкуренция) фирм Borland (около 800 программистов) и Microsoft (более 5000 программистов) в области языков программирования. До появления версии 6.0 система Quick Pascal фирмы Microsoft (приставка Quick "быстрый", как и Turbo "мощный", указывает потребителям, что фирма-разработчик вдохнула в старый язык новую жизнь) являлась для ТР серьезным конкурентом. По существу, это соревнование двух из нескольких десятков американских программистских школ. Остается пока сожалеть, что в СССР такие школы находятся только в зачаточном состоянии. Отдельным супер-программистам и сильным лабораториям в СССР по силам, как правило, разработка интерпретаторов (Бейсик, Форт, АПЛ, Лисп, ФРЛ, Рефал), макропроцессоров (Stage2) и препроцессоров, однако доведение их до уровня коммерческих изделий вызывает значительные затруднения. (Что стоит одно только оформление документации по ГОСТу!)
С точки зрения возможностей разработки прикладных систем, если перед читателем стоит проблема выбора языка и среды разработки, то, при прочих равных условиях, следует отдать предпочтение ТР.
ОТ РЕДАКЦИИ.
Анализ советского компьютерного рынка показывает, что, несмотря на его явное отставание от западного в количестве и качестве персональных ЭВМ, все большее распространение получает использование компьютеров в деловой сфере, в повседневной деятельности. Такую деятельность принято называть учрежденческой,- но это не очень хороший термин, поскольку перед глазами сразу возникает классическая контора с бесчисленным множеством столов и всей "бюрократической" атрибутикой (скорей всего, здесь никакой компьютер не поможет). Тем не менее, за отсутствием достойных синонимов (и гордо отказавшись от чужеродного слова "офис"), будем использовать "учреждение", понимая под этим и поликлинику, и библиотеку, и магазин, и гостиницу, и... и... и...- словом, все те организации, для которых сегодня одна из самых важных проблем - это проблема оперативного сбора, хранения, поиска и обработки информации.
Для решения этих задач в каждой предметной области (в идеале, для каждого конкретного учреждения) создаются специальные программы, которые мы для простоты будем называть прикладными информационно-поисковыми системами (ИПС).
Вообще говоря, ИПС могут быть разработаны с помощью любых инструментальных средств (в том числе и на обычном алгоритмическом языке, например, на обсуждаемом сегодня языке Pascal). Однако даже квалифицированный программист вряд пи выберет эти языки для такой работы, скорее всего, в качестве инструмента он использует одну из СУБД (Систем Управления Базами Данных).
Журнап PC Magazine в ежегодных обзорах публикует итоги тестирования порядка 40 наиболее известных СУБД для IBM-DOS компьютеров. Из этих СУБД, как правило, две-три иерархические, три-четыре сетевые, а остальные реляционные (табличные). Примерами реляционных и иерархических СУБД мы уже иллюстрировали наши уроки, показывая таблицы с параметрами отечественных (3/91) и западных ПК, слепки с экрана дисплея с цитатами из А.С.Пушкина базы данных "Домашняя библиотека" (5/91).
Итак, на зарубежном рынке программных продуктов для PC налицо явное преобладание реляционных СУБД. Аналогичная ситуация имеет место и в СССР, где наибольшее распространение получили реляционные СУБД dBASE (Ребус), FoxBASE (Карат), Paradox (Миг), Clipper, в последнее время - Clarion.
Основное достоинство реляционной модели состоит в простоте и эффективности обработки несложных фиксированных структур данных, и именно эффективность и универсальность подхода обусловили невероятную популярность этого метода. Однако в последнее время становится понятным, что такая простота модели уже явно недостаточна для отображения тех сложных отношений и связей, которые присутствуют во все более усложняющихся задачах - модель оказывается слишком "натянутой", искусственной. Ведь, если подойти философски, то любая схема данных есть в какой то мере попытка отразить окружающий мир, его объекты и образы. А если образы и понятия, с которыми оперирует человек, не соответствуют его повседневным представлениям, эффективность его деятельности резко падает, потому что в связке "компьютер - человек" слабым звеном, как правило, оказывается именно человек. В этом смысле понятно стремление фирм-разработчиков СУБД включить в свои системы различные средства поддержки внешних форм представления информации, которые приближают пользователя к привычной для него работе с бумажными документами. Но эти средства есть только надстройка над по-прежнему реляционной структурой, а документ в нашем привычном понимании есть структура намного более гибкая. Например, если мы возьмем самый распространенный документ библиотеки - библиографическую карточку, то в разделе "авторы" часто бывает необходимо поместить не одного, а несколько авторов, в разделе "аннотация" может помещаться информация переменной, иногда очень большой длины. Иными словами, нам бывает необходимо разместить информацию гибкой внутренней структуры - с переменным количеством элементов, с элементами переменной длины и т.п., что довольно сложно реализовать, используя реляционную модель.
Выход из этой ситуации следующий - попытаться создать новую концепцию организации представления информации, определить новый объект - некий "электронный документ", обладающий гибкими динамическими свойствами обычного бумажного документа. Работа с такой моделью была бы, безусловно, удобна конечному пользователю, поскольку она "имитирует" его традиционные действия с бумажными аналогами. С другой стороны, существенно ускорилась бы работа программиста (или не программиста) - разработчика ИПС, поскольку он начинает оперировать с объектами-документами, на внутреннем уровне реализующими необходимые динамические свойства представления информации. Заметим, что такая форма организации данных позволяет быстро и без потерь перевести в электронную форму хранения уже имеющиеся в учреждении обычные документы.
Более того, можно пойти дальше - уж если создавать "объект", так до конца. Можно не только наделить электронный документ способностью "размещать" информацию сложной структуры, но задать ему специфическое поведение по отношению к "собственной" информации, поведение, свойственное именно этому документу. Например, можно "запретить" документу вводить в какое-то числовое поле значение, выходящее за заданный диапазон, или внутри документа могут производиться какие-то вычисления (что необходимо в любой бухгалтерии). Другими словами, документ, с точки зрения объектного подхода, является не только сложной динамической структурой данных, но и структурой, имеющей свою собственную динамику поведения.
Так есть ли смельчаки, отправившиеся наперекор всем сложившимся традициям по этому не очень изведанному пока пути воплощения новых идей? Есть. Это создатели первой документно-ориентированной СУБД, которая называется ИРИС (Инструмент Разработчика Информационных Систем).
Авторы сегодняшней статьи утверждают, что в СССР нет достойных западу соперников, способных создавать конкурентоспособную коммерческую программную продукцию. Но нужно заметить, что сегодня, в условиях зарождающейся новой экономики, не все создающееся в этой области обязательно должно соответствовать ГОСТу! ИРИС - это один из таких "новых ростков".
Первая версия ИРИС начала распространяться СП "Интерквадро" в 1988 году. В январе 1991 "Интерквадро" и молодая фирма "Инфорг", взявшая на себя дальнейшее развитие этого продукта, выпустили новую версию ИРИС 2.0.
ИРИС уже стал довольно популярным продуктом на советском рынке, а появившиеся в последней версии развитые сервисные и диалоговые возможности ставят ИРИС в один ряд с известными западными продуктами. ИРИС 2.0 - это пакет, работа с которым доступна непрофессионалу в программировании. ИРИС 2.0 дает возможность быстрого старта для профессиональных программистов. Некоторые пользователи ИРИС утверждают, что ИРИС сэкономил даже не месяцы, а целый год при решении сложных задач! ИРИС - это несколько "ноу-хау", причем документно-ориентированный подход - только одно из них.
"Наука и жизнь" собирается более подробно познакомить своих читателей с этим пакетом в очередном уроке "Школы".
А пока все, кто заинтересовался ИРИС, могут обратиться в общество "Инфорг" по адресу 125047 а/я 81, Москва, ул.Горького 46а, кв.1 (тел. 454-91-05) или в СП "Интерквадро" в отдел инструментальных средств по адресу 125130, Москва, 2-й Новоподмосковный пер., д.4 (телефоны 454-91-05 и 150-92-01).
При поддержке СП "Интерквадро" создана ассоциация групп пользователей фирмы Borland (БорАГ). Телефон для справок 150-92-01, адрес 125130, Москва, 2-й Новоподмосковный пер., д.4.
В ТР разработчики отказались от многих ограничений, вызванных тем, что Pascal первоначально предназначался только для обучения. "К губам Никанора Ивановича приставили нос Ивана Кузьмича":
1. Отказались от фиксированного порядка следования секций LABEL. CONST, TYPE, VAR, процедур и функций "ортодоксального" Pascal'я, см. начало урока.
2. Метки теперь могут быть не только цифровыми (рудимент от fortran'а и BASIC а), но и символьными.
3. Существенно улучшен и усилен ввод-вывод. Напомним, что гибель титана-algol'а в первую очередь была предрешена отсутствием хороших средств диалога человека с машиной при выполнении написанной программы. Чего стоила, к примеру, реализация на algole BASIC'овского INPUT'а или Pascal'евского Read'а!
4. Добавлена работа с графикой в стандарте BGI - Borland Graphic Interfase, поддерживающим практически все типы дисплеев IBM PC (CGA, EGA VGA, Hercules и др.).
5. Введена работа с программными и аппаратными прерываниями: процедура SetlntVec устанавливает, процедура GetlntVec возвращает вектор прерывания с заданным номером, процедура Intr вызывает программное прерывание с заданным номером, а процедура MsDos вызывает обращение к системным функциям DOS. Процедуры обработки прерываний имеют заголовок следующего вида: procedure имя_процедуры interrupt;
6. Разрешается работа с абсолютными адресами памяти. Этому способствует возможность записи чисел в шестнадцатеричной нотации. Таким константам предшествует знак $. Пример:
Var
Crt_Mode: byte absolute $0040:$0049;
Buff_Str: string[255];
StrLen: byte absolute Buff_Str;
Существует три предопределенных массива для работы с памятью: байтовый массив памяти (Mem), массив слов (MemW) и массив двойных слов (memL), которые позволяют читать и писать, соответственно, байты, слова и двойные слова (4 байта) в ОЗУ, например:
Byte_Var:=Mem[Dseg:$0С37];
7. Возможность работы с портами ввода-вывода. Массивы портов Port н PortW служат для ввода-вывода байтов и слов, соответственно. Это позволяет писать на ТР драйверы для медленных и среднескоростных устройств. Например, можно написать операторы:
Port[$f6]:=$20; { запись в порт значения }
Port[base+8]:=Port[base+8] xor Ready_mask; { готовность }
while PortW[$C2] and ($02=0) do <оператор> { ожидание }
8. Возможность включения в программу машинного кода, например, аналогов ассемблерных команд:
Procedure CLI; inline($FA);
Procedure STI; inline($FB);
либо написание процедур на встроенном ассемблере (BASM).
9. Поддержка арифметических сопроцессоров 8087, 80287 и 80387 или их программная эмуляция в случае отсутствия.
10. Символьная отладка позволяет выполнить программу пооператорно, непроцедурно и с установленными контрольными точками, а также помечать переменные, массивы и объекты для вывода их значений в окне отладки. Для отладки программ может также использоваться внешний отладчик Turbo Debugger, а для их оптимизации - пакет Turbo Profiler. С помощью средств Turbo Profiler's можно определить критичные по времени участки программы и переписать их, например, на ассемблере. Это может дать повышение скорости выполнения на 20-40%. Однако более существенные результаты обычно дают поиски более эффективных алгоритмов.
11. Поддержка объектно-ориентированного программирования.
12. Библиотека Turbo Vision представляет собой объектно-ориентированную оболочку для создания интерфейса прикладных программ.
Следует также остановиться на понятии потребитепьского качества программного обеспечения (ПО), под которым понимают совокупность свойств программы, делающих работу с ней удобной и приятной для пользоватепя. Этот критерий в значительной степени отражает наше эмоциональное отношение к тому или иному продукту и в конце концов его коммерческий успех. В программистском плане наработка потребительских свойств программного продукта очень трудная задача. Одна из главных причин успеха фирмы Borland заключается в очень высоком потребительском качестве создаваемого этой фирмой ПО. В частности, в ТР это проявляется в виде многих десятков мелочей, без которых, вообще говоря, можно обойтись, но их отсутствие (как, например, в Паскале "Эпектроники-85") равносильно переезду из пятизвездной гостиницы в рядовое общежитие.
Процедурным языкам программирования, к которым относится и Pascal, свойствен целый ряд недостатков, выражающихся в трудности отладки и сопровождения программ. Это вызвало появление языков других типов: объектно-ориентированных, функционального и логического программирования. Для многих программистов показался очень интересным шаг фирмы Borland к ООП в ТР 5.5.
Объектам присущи следующие свойства:
- Инкапсуляция: соединение (слияние) вместе данных и методов их обработки, что определяет свойства объекта. Такой подход позволяет избежать довольно неприятных с точки зрения их локализации и последствий ошибок. Инкапсуляция может быть полной, если к данным некоторого объекта применимы лишь те методы, которые описаны в данном объекте, или неполной. Очевидно, что полная инкапсуляция позволяет устранить вышеназванные ошибки.
- Наследование: объект-потомок получает все свойства, которые определены в объекте-предке. Это дает возможность создавать иерархии объектов. Примитивный пример - функция TAN(X), которая может "наследовать" свойства -других тригонометрических функций через формулу TAN(X)=SIN(X)/COS(X).
- Полиморфизм, когда объекты одного семейства могут использовать одноименные методы для обработки данных разного типа.
Взаимодействие с объектами происходит через обмен сообщениями.
Для поддержки ООП уже в ТР 5.5 введен новый тип данных: object. На первый взгляд он похож на тип данных запись. Например, для системы управления дорожным движением мы можем определить объект типа "светофор" следующим образом:
type Sf=object
Light: (red, yellow, green);
Ready_Time: integer
End;
В отличие от записей, объекты одного типа могут наследовать свойства объектов другого типа. Чтобы в нашем примере определить объект типа "светофор с дополнительной стрелкой влево", нужно только в скобках после слова object указать, от какого объекта наследуются свойства, а потом определить дополнительные данные:
Type Sfl=object(sf)
Left_Arrow: boolean;
Arrow Time: integer
End;
Кроме наследования, объекты отличаются от записей тем, что в них можно определить методы процедуры и функции, управляющие определенными в объекте данными. Методы также могут наследоваться. Например, для объекта "светофор" определим функцию, проверяющую, горит пи красный свет:
type Sf=object
Light: (red, yellow, green);
Ready_Time: integer;
function Red_Light: boolean
End;
function Sf.Red_Light: boolean;
begin
if Light=red then Red_Light:=true
else Red Light:=false
End; {red_light}
В объявлении объекта помещается только заголовок процедуры или функции. Обращение к полям данных объекта производится, как и к полям записи, либо указанием полного имени, либо с помощью конструкции:
With <тип_объекта> do <оператор>
Таким образом, работая с объектами, программист не обращается явным образом к данным, определенным внутри объекта (эти действия выполняют методы объектов), что позволяет скрыть структуру организации данных (которая может быть достаточно сложной) в объекте и полностью сосредоточится на работе с объектами. Этот подход несколько отличается от чистого ООП, как, например в языке Смоллток, и ближе к подходу, принятому в языке Turbo C++. Следует учесть, что, если конструкции процедурных языков, пройдя около 3000 реализаций, в основном стандартизовались, то ООП это область, освоение которой только началось.
ТР обеспечивает доступ к большому числу встроенных констант, типов данных, переменных, процедур и функций. Некоторые из них специфичны для ТР, другие специфичны для IBM-совместимых компьютеров или для операционной системы DOS. Их количество велико, однако в конкретной программе они редко используются все сразу. Поэтому они разделены на связанные группы, называемые модулями. В этом случае можно использовать только те модули, которые необходимы в программе.
Программный модуль представляет собой набор констант, типов данных, переменных, процедур и функций. Каждый модуль аналогичен отдельной программе: он может иметь основное тело, которое вызывается перед запуском вашей программы и осуществляет необходимую инициализацию. Короче говоря, модуль представляет собой библиотеку описаний, которую можно вставить в свою программу и которая позволит разбить программу на части, компилируемые отдельно.
Все описания внутри модуля связаны друг с другом. Например, модуль Crt содержит все описания, необходимые для подпрограмм работы с экраном на персональном компьютере. ТР предоставляет пользователю семь стандартных модулей. Пять из них - System, Graph, DOS, Crt и Printer - обеспечивают поддержку обычных программ на ТР. Два других Turbo3 и Graph3 предназначены для обеспечения совместимости с программами, созданными для версии ТР 3.0. Ряд модулей хранится в файле TURBO.TPL
Модуль обеспечивает набор средств благодаря процедурам и функциям при поддержке констант, типов данных и переменных, однако действительная реализация этих средств скрыта в силу того, что модуль разделен на две секции: интерфейса и реализации. Если программа использует модуль, то все описания модуля становятся доступными этой программе, как если бы они были определены в ней самой.
Структура модуля аналогична структуре программы, однако есть несколько существенных различий. Например, рассмотрим модуль:
unit <идентификатор>;
interface
uses <список модулей>; { необязательный }
{ открытые описания }
implementation
{ закрытые описания }
{ процедуры и функции }
begin
{ код инициализации }
End.
Заголовок модуля начинается зарезервированным словом unit, за которым следует имя модуля (идентификатор) точно так же, как и в случае имени программы. Следующим элементом в модуле является ключевое слово interface. Оно обозначает начало интерфейсной секции модуля секции, видимой всем другим модулям или программам, в которых он используется.
На реализацию любого языка программирования более других влияют два фактора: аппаратные возможности ЭВМ и возможность расширения языка. Первый определяет реализуемый уровень сервиса и инструментальной программной среды, второй - возможность дальнейшего развития данной реализации языка программирования. Для ПК на базе МП 80286 версия ТР 6.0 в значительной мере близка к насыщению. Новые возможности развития эта система получит с переходом на ПК на базе 32-разрядных микропроцессоров 80386SX/80386DX/80486 фирмы Intel.
Интересно соревнование (конкуренция) фирм Borland (около 800 программистов) и Microsoft (более 5000 программистов) в области языков программирования. До появления версии 6.0 система Quick Pascal фирмы Microsoft (приставка Quick "быстрый", как и Turbo "мощный", указывает потребителям, что фирма-разработчик вдохнула в старый язык новую жизнь) являлась для ТР серьезным конкурентом. По существу, это соревнование двух из нескольких десятков американских программистских школ. Остается пока сожалеть, что в СССР такие школы находятся только в зачаточном состоянии. Отдельным супер-программистам и сильным лабораториям в СССР по силам, как правило, разработка интерпретаторов (Бейсик, Форт, АПЛ, Лисп, ФРЛ, Рефал), макропроцессоров (Stage2) и препроцессоров, однако доведение их до уровня коммерческих изделий вызывает значительные затруднения. (Что стоит одно только оформление документации по ГОСТу!)
С точки зрения возможностей разработки прикладных систем, если перед читателем стоит проблема выбора языка и среды разработки, то, при прочих равных условиях, следует отдать предпочтение ТР.
ОТ РЕДАКЦИИ.
Анализ советского компьютерного рынка показывает, что, несмотря на его явное отставание от западного в количестве и качестве персональных ЭВМ, все большее распространение получает использование компьютеров в деловой сфере, в повседневной деятельности. Такую деятельность принято называть учрежденческой,- но это не очень хороший термин, поскольку перед глазами сразу возникает классическая контора с бесчисленным множеством столов и всей "бюрократической" атрибутикой (скорей всего, здесь никакой компьютер не поможет). Тем не менее, за отсутствием достойных синонимов (и гордо отказавшись от чужеродного слова "офис"), будем использовать "учреждение", понимая под этим и поликлинику, и библиотеку, и магазин, и гостиницу, и... и... и...- словом, все те организации, для которых сегодня одна из самых важных проблем - это проблема оперативного сбора, хранения, поиска и обработки информации.
Для решения этих задач в каждой предметной области (в идеале, для каждого конкретного учреждения) создаются специальные программы, которые мы для простоты будем называть прикладными информационно-поисковыми системами (ИПС).
Вообще говоря, ИПС могут быть разработаны с помощью любых инструментальных средств (в том числе и на обычном алгоритмическом языке, например, на обсуждаемом сегодня языке Pascal). Однако даже квалифицированный программист вряд пи выберет эти языки для такой работы, скорее всего, в качестве инструмента он использует одну из СУБД (Систем Управления Базами Данных).
Журнап PC Magazine в ежегодных обзорах публикует итоги тестирования порядка 40 наиболее известных СУБД для IBM-DOS компьютеров. Из этих СУБД, как правило, две-три иерархические, три-четыре сетевые, а остальные реляционные (табличные). Примерами реляционных и иерархических СУБД мы уже иллюстрировали наши уроки, показывая таблицы с параметрами отечественных (3/91) и западных ПК, слепки с экрана дисплея с цитатами из А.С.Пушкина базы данных "Домашняя библиотека" (5/91).
Итак, на зарубежном рынке программных продуктов для PC налицо явное преобладание реляционных СУБД. Аналогичная ситуация имеет место и в СССР, где наибольшее распространение получили реляционные СУБД dBASE (Ребус), FoxBASE (Карат), Paradox (Миг), Clipper, в последнее время - Clarion.
Основное достоинство реляционной модели состоит в простоте и эффективности обработки несложных фиксированных структур данных, и именно эффективность и универсальность подхода обусловили невероятную популярность этого метода. Однако в последнее время становится понятным, что такая простота модели уже явно недостаточна для отображения тех сложных отношений и связей, которые присутствуют во все более усложняющихся задачах - модель оказывается слишком "натянутой", искусственной. Ведь, если подойти философски, то любая схема данных есть в какой то мере попытка отразить окружающий мир, его объекты и образы. А если образы и понятия, с которыми оперирует человек, не соответствуют его повседневным представлениям, эффективность его деятельности резко падает, потому что в связке "компьютер - человек" слабым звеном, как правило, оказывается именно человек. В этом смысле понятно стремление фирм-разработчиков СУБД включить в свои системы различные средства поддержки внешних форм представления информации, которые приближают пользователя к привычной для него работе с бумажными документами. Но эти средства есть только надстройка над по-прежнему реляционной структурой, а документ в нашем привычном понимании есть структура намного более гибкая. Например, если мы возьмем самый распространенный документ библиотеки - библиографическую карточку, то в разделе "авторы" часто бывает необходимо поместить не одного, а несколько авторов, в разделе "аннотация" может помещаться информация переменной, иногда очень большой длины. Иными словами, нам бывает необходимо разместить информацию гибкой внутренней структуры - с переменным количеством элементов, с элементами переменной длины и т.п., что довольно сложно реализовать, используя реляционную модель.
Выход из этой ситуации следующий - попытаться создать новую концепцию организации представления информации, определить новый объект - некий "электронный документ", обладающий гибкими динамическими свойствами обычного бумажного документа. Работа с такой моделью была бы, безусловно, удобна конечному пользователю, поскольку она "имитирует" его традиционные действия с бумажными аналогами. С другой стороны, существенно ускорилась бы работа программиста (или не программиста) - разработчика ИПС, поскольку он начинает оперировать с объектами-документами, на внутреннем уровне реализующими необходимые динамические свойства представления информации. Заметим, что такая форма организации данных позволяет быстро и без потерь перевести в электронную форму хранения уже имеющиеся в учреждении обычные документы.
Более того, можно пойти дальше - уж если создавать "объект", так до конца. Можно не только наделить электронный документ способностью "размещать" информацию сложной структуры, но задать ему специфическое поведение по отношению к "собственной" информации, поведение, свойственное именно этому документу. Например, можно "запретить" документу вводить в какое-то числовое поле значение, выходящее за заданный диапазон, или внутри документа могут производиться какие-то вычисления (что необходимо в любой бухгалтерии). Другими словами, документ, с точки зрения объектного подхода, является не только сложной динамической структурой данных, но и структурой, имеющей свою собственную динамику поведения.
Так есть ли смельчаки, отправившиеся наперекор всем сложившимся традициям по этому не очень изведанному пока пути воплощения новых идей? Есть. Это создатели первой документно-ориентированной СУБД, которая называется ИРИС (Инструмент Разработчика Информационных Систем).
Авторы сегодняшней статьи утверждают, что в СССР нет достойных западу соперников, способных создавать конкурентоспособную коммерческую программную продукцию. Но нужно заметить, что сегодня, в условиях зарождающейся новой экономики, не все создающееся в этой области обязательно должно соответствовать ГОСТу! ИРИС - это один из таких "новых ростков".
Первая версия ИРИС начала распространяться СП "Интерквадро" в 1988 году. В январе 1991 "Интерквадро" и молодая фирма "Инфорг", взявшая на себя дальнейшее развитие этого продукта, выпустили новую версию ИРИС 2.0.
ИРИС уже стал довольно популярным продуктом на советском рынке, а появившиеся в последней версии развитые сервисные и диалоговые возможности ставят ИРИС в один ряд с известными западными продуктами. ИРИС 2.0 - это пакет, работа с которым доступна непрофессионалу в программировании. ИРИС 2.0 дает возможность быстрого старта для профессиональных программистов. Некоторые пользователи ИРИС утверждают, что ИРИС сэкономил даже не месяцы, а целый год при решении сложных задач! ИРИС - это несколько "ноу-хау", причем документно-ориентированный подход - только одно из них.
"Наука и жизнь" собирается более подробно познакомить своих читателей с этим пакетом в очередном уроке "Школы".
А пока все, кто заинтересовался ИРИС, могут обратиться в общество "Инфорг" по адресу 125047 а/я 81, Москва, ул.Горького 46а, кв.1 (тел. 454-91-05) или в СП "Интерквадро" в отдел инструментальных средств по адресу 125130, Москва, 2-й Новоподмосковный пер., д.4 (телефоны 454-91-05 и 150-92-01).
При поддержке СП "Интерквадро" создана ассоциация групп пользователей фирмы Borland (БорАГ). Телефон для справок 150-92-01, адрес 125130, Москва, 2-й Новоподмосковный пер., д.4.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
На этом работа "ШКОЛЫ" и "КЛУБА" "Науки и жизни" закончилась. Упомянутые выпуски "Вычислительной техники и ее применения"" общества "Знания" протянули еще год...
Перечитывая эти материалы, я все пытался понять, во-первых, куда делись все эти энтузиасты бытовых и производственных вычислений? Почему сейчас никто ничего не считает?
Во-вторых, я пытался в этом разговоре о калькуляторах вычленить что-то про их общую теорию. Представить, как должен выглядеть калькулятор для моих надобностей.
На первый вопрос я ответ получил. Пик вычислений был связан с очень высоким количеством инженеров на практических должностях. Прорабы, учителя, завхозы и, даже, врачи тогда часто имели хорошее высшее образование со знанием техники и теории. В перестройку эти специалисты ушли в более "хлебные" места, например, в АСУчивание разнообразной бухгалтерии.
Со вторым вопросом я затруднился. Статьи, поначалу, были честные, люди высказывали различные мнения, были заинтересованы в решении практических вопросов. Но, чем дальше, тем больше все превращалось в соревнование между собой ограниченного числа знатоков калькуляторов по решению одних и тех же задач. Так что, полезного материала набралось крайне мало.
Первое и второе вместе приводят к выводу: то, полезное, что мы сейчас делаем или пытаемся делать полезного на ПК, в формат ПМК перенести достаточно сложно. В первую очередь, из-за ориентации большинства программ на большой размер экрана.
Перечитывая эти материалы, я все пытался понять, во-первых, куда делись все эти энтузиасты бытовых и производственных вычислений? Почему сейчас никто ничего не считает?
Во-вторых, я пытался в этом разговоре о калькуляторах вычленить что-то про их общую теорию. Представить, как должен выглядеть калькулятор для моих надобностей.
На первый вопрос я ответ получил. Пик вычислений был связан с очень высоким количеством инженеров на практических должностях. Прорабы, учителя, завхозы и, даже, врачи тогда часто имели хорошее высшее образование со знанием техники и теории. В перестройку эти специалисты ушли в более "хлебные" места, например, в АСУчивание разнообразной бухгалтерии.
Со вторым вопросом я затруднился. Статьи, поначалу, были честные, люди высказывали различные мнения, были заинтересованы в решении практических вопросов. Но, чем дальше, тем больше все превращалось в соревнование между собой ограниченного числа знатоков калькуляторов по решению одних и тех же задач. Так что, полезного материала набралось крайне мало.
Первое и второе вместе приводят к выводу: то, полезное, что мы сейчас делаем или пытаемся делать полезного на ПК, в формат ПМК перенести достаточно сложно. В первую очередь, из-за ориентации большинства программ на большой размер экрана.
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Re: Матчасть диванного танкиста
Т.к. мое исследование истории калькуляторов явно оказалось неполным, почитаю и другую книжку (которую уже поминал - ТЕМА #114, АБЗАЦ #1683 и ТЕМА #34, АБЗАЦ #2971).
АЛЕКСЕЙ ЧАЧКО
ЧЕЛОВЕК ЗА ПУЛЬТОМ
(Очерки антропотехники)
1974
ВВЕДЕНИЕ
В молодом городе N было так много цифровых вычислительных машин и автоматизированных систем управления, что чуть ли не каждый житель его служил ОПЕРАТОРОМ. Когда ваш самолет приближался к городу, его принимал и вел на посадку диспетчер аэропорта. Кратчайший путь заказанному вами такси указывал диспетчер городского движения. Вы входили в гостиницу, и администратор, поколдовав над клавишами своего пульта, определял вам номер. Вы направлялись на предприятие, и там, на участках и в цехах, трудились рабочие-операторы, колебались стрелки приборов, таинственно мигали сигнальные лампы. Вы оказывались в инженерном корпусе и встречали бухгалтеров, плановиков, экономистов, технологов, конструкторов, каждый из которых смотрел на свой экран. Вместе с ними вы видели, как высвечиваются, сменяя друг друга, таблицы и графики планов, плоские чертежи и объемные формы будущих конструкций.
Вы являлись на совещание к главному инженеру и опять видели экран, только коллективный, а вам, равно и всем другим участникам совещания, вручали пультик: пожалуйста, вызывай необходимую информацию, приводи свои аргументы прямо на большом экране. И вы вызывали, и приводили, и вдруг останавливались, поняв, что в этом городе и вас сделали оператором.
В своем номере в гостинице вы успокаивались. "Сюда вездесущим операторам не проникнуть,- расслабленно думали вы.- Здесь я один". Еще миг, и вы уснули бы, но внезапная мысль вдруг перечеркивала дремотные размышления:
"Они здесь! Номер отапливается - это оператор теплоэлектроцентрали регулирует подачу воды. Горит электрическая лампочка - это диспетчер энергосистемы управляет мощностью генераторных станций. Скрипят за окном тормоза машин - оператор треста ресторанов направил сюда продукты. Они уже готовят мой завтрак. Пожалуй, они готовят и все мое завтра".
Сон как рукой сняло. А поскольку у вас бессонница, расстегните чемодан, найдите и прочтите эту книгу.
Ее автор, позвольте представиться, всю свою инженерную жизнь занимается конструированием пультов для операторов, он участвовал в разработке нескольких пультов для города N и нескольких пультов для иных мест.
Другие, более удачливые специалисты по автоматике, создавали настоящие автоматы, регуляторы, которые все делали сами, без человека, без оператора. Автору всегда доставались остатки с пиршественного стола автоматизации. "Это нам автоматизировать недосуг,- говорили они мне,- ты нам выведи что надо на щит, а хочешь - сделай пультик какой-нибудь".
Они знали мои слабости, эти автоматчики. Я очень хотел делать "пультик". Придирчиво изучал книги, в которых шла речь о пультах. Книги 20-х годов чаще называли их пюпитрами, в начале 30-х пюпитры сменились приборными досками, в 50-х досок стало столь много, что пришлось сбить из них щит управления. Щит насытился измерительными приборами, сигнальными табло, кнопками и ключами. Автор считал своим долгом знать в лицо каждый тип щитовых приборов, следил за вновь разрабатываемыми элементами.
Одна неясность мучила автора. Чтобы пульт был удобным, нужно, кроме технических элементов, знать "устройство" человека-оператора. Тогда можно соединить "схему со схемой". В вузе про "схему оператора" не было и речи: надеялись, что студенту предстоит заниматься настоящей автоматикой, а не "пультовщиной" какой-то.
Принялся за розыски... Сколько книг о труде актера! И ни одной о труде оператора. Расширил область поисков - обратился к литературе о человеческом мозге. Один автор утверждал, что мозг бесструктурен, а голова оператора похожа на "миску с кашей". Другой, соглашаясь с мнением про бесструктурность, толковал про "облако нейронов". Третий настаивал на упорядоченной, жестко определенной схеме, но не приводил ее. Четвертый доказательно убеждал, что мозг - механизм с обратными связями, самонастраивающийся механизм, преобразующий случайность в определенность.
На каждом этапе развития науки ученые находили "окончательную модель" мозга. Академик Н.А.Беренштейн назвал это извинительное заблуждение семероморфизмом - от греческого semeron - сегодня. В свой черед мозг считали похожим на водяные часы, потом на часы пружинные, потом на автоматическую телефонную станцию. Сегодня мозг напоминает иным цифровую вычислительную машину.
Полезна ли аналогия между мозгом и ЦВМ для нашей цели, для выбора наилучшего щита? ЦВМ - универсальный преобразователь информации, безразличный к типу задач. На решение той или иной задачи машину направляет программа. Причем не только направляет, но и детально указывает, что делать дальше - шаг за шагом, от исходных данных до результата.
Выходит, уподобляя мозг машине, мы обязаны тотчас привести "программы" мышления, по крайней мере, костяк таких программ - алгоритмы работы мозга. Алгоритм - одно из звонких слов, принесенных кибернетикой. Наш век - век алгоритмирования. Впрочем, под последней фразой мог бы подписаться и Архимед: попытки найти последовательность решения задач человеком уходят в древность. Египтяне и греки успешно занимались арифметическими и геометрическими алгоритмами. Многие алгоритмы придумали математики средних веков и нового времени. Только это не операторские алгоритмы, не алгоритмы взаимодействия человека с приборами и ключами.
Аналогия между мозгом и ЦВМ полезна как компас, заключил автор. Стрелка компаса указывает на области науки, занятые "алгоритмами мышления", указывает на психологию мышления и ее младшую сестру - инженерную психологию.
Автор отправился к психологам, познакомился со многими из них и со многими их идеями, участвовал в симпозиумах и совещаниях, чуть было сам не постригся в психологи и не принялся исследовать восприятие человеком абстрактных знаков. Не дал незавершенный щит управления, не дала любовь к "железкам".
Автор вернулся в инженерную область, вернулся с некоторыми новыми мыслями.
Во-первых, разработка пультов - не чистая техника, хотя и не чистая психология. Это АНТРОПОТЕХНИКА. Без учета "человеческих факторов" хорошего пульта по сделаешь.
Во-вторых, учет "человеческих факторов" - проблема колоссальной трудности. Размеры всего щита (чтобы он охватывался одним взором), его элементов (чтобы человек их хорошо различал), число элементов (чтобы внимание оператора не было перегружено) - все это можно определить тщательными экспериментами. Гораздо труднее выявить процесс решения оперативных задач, выделить их составляющие, отдельные зерна решений, равно как и устройство колоса, в который собираются зерна.
Выявив процесс решения, можно перейти от представления оператору информации "в общем и целом" к снабжению его информацией "в частности", в ходе оперативных решений. Это, конечно, потребует особой переработки информации, но в век цифровых вычислительных машин переработка информации - не проблема, если известен алгоритм переработки.
В-третьих, появление ЦВМ на щите - пе простое улучшение, а революция. Похож ли мозг человека на ЦВМ или не похож, но машина в силах освободить оператора от части работы, снять с него нагрузку. Традиционная инженерная психология рассматривает пульт как место стыка между "машинной" и "человеческой" частями системы. Совершенствуя шкалы и стрелки приборов, подгоняя рукоятки и рычаги, инженерные психологи стремятся загладить стык. Хорошо, но мало: объединение оператора и пульта нужно начинать не на стыке, а значительно раньше. Вместо проектирования стыка - разработка единой человеко-машинной деятельности, в которой инициативой владеет то человек, то машина.
Так приходим мы к системе отображения информации, к СОИ. Пульт управления - часть СОИ, даже если включить цифровую машину в состав пульта, все равно только часть. Другая часть СОИ - человек-оператор (или несколько операторов). И третья часть - программы для ЦВМ, те самые программы, которые готовят информацию, представляют ее человеку в ходе решений, принимают и толкуют указания оператора.
Три составляющих в системе отображения информации, три разнородных части. Не заглаживать стык, а образовывать единство составляющих - цель антропотехники, наша цель.
К ней мы будем стремиться, а по пути произойдут удивительные вещи. Перегруженные приборами пульты управления вовсе лишатся приборов. Зазвучат диалоги из новой пьесы "Взаимодействие человека с машиной". Непостижимое оперативное мышление окажется не столь уж туманным. Там, где все мнится возможным, возникнут суровые ограничения. Зато там, где мешают границы, удастся прорваться: ледяные стены растают под солнцем системного подхода.
Мы станем интересоваться разнообразными СОИ; особый интерес проявим к таким системам для электрических станций. Здесь сказываются личные пристрастия (автор занимался станционными пультами более, чем другими), но сильнее личных пристрастий - уверенность в том, что этапы развития СОИ и принципы их построения едины. Двигаясь по любой из дорог, анализируя системы отображения для управления воздушным движением, для автоматизированного проектирования или для диагностики больных, мы приходим в одно и то же место. Всякий раз мы оказываемся перед экранами, всякий раз пользуемся языками обмена.
Наука и техника разделены сегодня на мелкие, специализированные участки, разбиты на соты. Из своей ячейки автор обращается к ближним и дальним соседям и к тем, кто еще не успел "спрятаться в ячейку".
Самый неискушенный читатель многое знает об отображении информации; видел и стрелочные, и цифровые индикаторы, встречал мнемонические знаки, табло, клавиатуры и ключи управления. Наша задача - привести разрозненные наблюдения в систему, дополнить их менее известными, но не менее важными приборами и идеями. Наша задача - рассказать о красоте настоящих систем отображения.
Размышления о красоте побуждают нас обратиться в далекое прошлое - там скрыты истоки оперативной деятельности людей. Мы должны проследить изменение роли человека во все усложняющихся технических системах. Пульт оператора останется для нас главной целью, но мы постараемся подсветить этот пульт из двух противоположных точек - от человека и от цифровой машины. В полярном свете контуры пульта станут более рельефными.
Рассказ о пультах будет подробным - как и в искусстве, в антропотехнике результат делают детали. Тщательное исполнение деталей приводит к пультам, удобным для людей, значит, к коренному улучшению систем. "Человек,- пишет академик В.А.Трапезников,- это главный ресурс системы управления, и мобилизация всех его психологических резервов наряду с использованием технических средств управления (ЦВМ и др.) значительно ускорит научно-технический прогресс и общее развитие нашей страны".
АЛЕКСЕЙ ЧАЧКО
ЧЕЛОВЕК ЗА ПУЛЬТОМ
(Очерки антропотехники)
1974
ВВЕДЕНИЕ
В молодом городе N было так много цифровых вычислительных машин и автоматизированных систем управления, что чуть ли не каждый житель его служил ОПЕРАТОРОМ. Когда ваш самолет приближался к городу, его принимал и вел на посадку диспетчер аэропорта. Кратчайший путь заказанному вами такси указывал диспетчер городского движения. Вы входили в гостиницу, и администратор, поколдовав над клавишами своего пульта, определял вам номер. Вы направлялись на предприятие, и там, на участках и в цехах, трудились рабочие-операторы, колебались стрелки приборов, таинственно мигали сигнальные лампы. Вы оказывались в инженерном корпусе и встречали бухгалтеров, плановиков, экономистов, технологов, конструкторов, каждый из которых смотрел на свой экран. Вместе с ними вы видели, как высвечиваются, сменяя друг друга, таблицы и графики планов, плоские чертежи и объемные формы будущих конструкций.
Вы являлись на совещание к главному инженеру и опять видели экран, только коллективный, а вам, равно и всем другим участникам совещания, вручали пультик: пожалуйста, вызывай необходимую информацию, приводи свои аргументы прямо на большом экране. И вы вызывали, и приводили, и вдруг останавливались, поняв, что в этом городе и вас сделали оператором.
В своем номере в гостинице вы успокаивались. "Сюда вездесущим операторам не проникнуть,- расслабленно думали вы.- Здесь я один". Еще миг, и вы уснули бы, но внезапная мысль вдруг перечеркивала дремотные размышления:
"Они здесь! Номер отапливается - это оператор теплоэлектроцентрали регулирует подачу воды. Горит электрическая лампочка - это диспетчер энергосистемы управляет мощностью генераторных станций. Скрипят за окном тормоза машин - оператор треста ресторанов направил сюда продукты. Они уже готовят мой завтрак. Пожалуй, они готовят и все мое завтра".
Сон как рукой сняло. А поскольку у вас бессонница, расстегните чемодан, найдите и прочтите эту книгу.
Ее автор, позвольте представиться, всю свою инженерную жизнь занимается конструированием пультов для операторов, он участвовал в разработке нескольких пультов для города N и нескольких пультов для иных мест.
Другие, более удачливые специалисты по автоматике, создавали настоящие автоматы, регуляторы, которые все делали сами, без человека, без оператора. Автору всегда доставались остатки с пиршественного стола автоматизации. "Это нам автоматизировать недосуг,- говорили они мне,- ты нам выведи что надо на щит, а хочешь - сделай пультик какой-нибудь".
Они знали мои слабости, эти автоматчики. Я очень хотел делать "пультик". Придирчиво изучал книги, в которых шла речь о пультах. Книги 20-х годов чаще называли их пюпитрами, в начале 30-х пюпитры сменились приборными досками, в 50-х досок стало столь много, что пришлось сбить из них щит управления. Щит насытился измерительными приборами, сигнальными табло, кнопками и ключами. Автор считал своим долгом знать в лицо каждый тип щитовых приборов, следил за вновь разрабатываемыми элементами.
Одна неясность мучила автора. Чтобы пульт был удобным, нужно, кроме технических элементов, знать "устройство" человека-оператора. Тогда можно соединить "схему со схемой". В вузе про "схему оператора" не было и речи: надеялись, что студенту предстоит заниматься настоящей автоматикой, а не "пультовщиной" какой-то.
Принялся за розыски... Сколько книг о труде актера! И ни одной о труде оператора. Расширил область поисков - обратился к литературе о человеческом мозге. Один автор утверждал, что мозг бесструктурен, а голова оператора похожа на "миску с кашей". Другой, соглашаясь с мнением про бесструктурность, толковал про "облако нейронов". Третий настаивал на упорядоченной, жестко определенной схеме, но не приводил ее. Четвертый доказательно убеждал, что мозг - механизм с обратными связями, самонастраивающийся механизм, преобразующий случайность в определенность.
На каждом этапе развития науки ученые находили "окончательную модель" мозга. Академик Н.А.Беренштейн назвал это извинительное заблуждение семероморфизмом - от греческого semeron - сегодня. В свой черед мозг считали похожим на водяные часы, потом на часы пружинные, потом на автоматическую телефонную станцию. Сегодня мозг напоминает иным цифровую вычислительную машину.
Полезна ли аналогия между мозгом и ЦВМ для нашей цели, для выбора наилучшего щита? ЦВМ - универсальный преобразователь информации, безразличный к типу задач. На решение той или иной задачи машину направляет программа. Причем не только направляет, но и детально указывает, что делать дальше - шаг за шагом, от исходных данных до результата.
Выходит, уподобляя мозг машине, мы обязаны тотчас привести "программы" мышления, по крайней мере, костяк таких программ - алгоритмы работы мозга. Алгоритм - одно из звонких слов, принесенных кибернетикой. Наш век - век алгоритмирования. Впрочем, под последней фразой мог бы подписаться и Архимед: попытки найти последовательность решения задач человеком уходят в древность. Египтяне и греки успешно занимались арифметическими и геометрическими алгоритмами. Многие алгоритмы придумали математики средних веков и нового времени. Только это не операторские алгоритмы, не алгоритмы взаимодействия человека с приборами и ключами.
Аналогия между мозгом и ЦВМ полезна как компас, заключил автор. Стрелка компаса указывает на области науки, занятые "алгоритмами мышления", указывает на психологию мышления и ее младшую сестру - инженерную психологию.
Автор отправился к психологам, познакомился со многими из них и со многими их идеями, участвовал в симпозиумах и совещаниях, чуть было сам не постригся в психологи и не принялся исследовать восприятие человеком абстрактных знаков. Не дал незавершенный щит управления, не дала любовь к "железкам".
Автор вернулся в инженерную область, вернулся с некоторыми новыми мыслями.
Во-первых, разработка пультов - не чистая техника, хотя и не чистая психология. Это АНТРОПОТЕХНИКА. Без учета "человеческих факторов" хорошего пульта по сделаешь.
Во-вторых, учет "человеческих факторов" - проблема колоссальной трудности. Размеры всего щита (чтобы он охватывался одним взором), его элементов (чтобы человек их хорошо различал), число элементов (чтобы внимание оператора не было перегружено) - все это можно определить тщательными экспериментами. Гораздо труднее выявить процесс решения оперативных задач, выделить их составляющие, отдельные зерна решений, равно как и устройство колоса, в который собираются зерна.
Выявив процесс решения, можно перейти от представления оператору информации "в общем и целом" к снабжению его информацией "в частности", в ходе оперативных решений. Это, конечно, потребует особой переработки информации, но в век цифровых вычислительных машин переработка информации - не проблема, если известен алгоритм переработки.
В-третьих, появление ЦВМ на щите - пе простое улучшение, а революция. Похож ли мозг человека на ЦВМ или не похож, но машина в силах освободить оператора от части работы, снять с него нагрузку. Традиционная инженерная психология рассматривает пульт как место стыка между "машинной" и "человеческой" частями системы. Совершенствуя шкалы и стрелки приборов, подгоняя рукоятки и рычаги, инженерные психологи стремятся загладить стык. Хорошо, но мало: объединение оператора и пульта нужно начинать не на стыке, а значительно раньше. Вместо проектирования стыка - разработка единой человеко-машинной деятельности, в которой инициативой владеет то человек, то машина.
Так приходим мы к системе отображения информации, к СОИ. Пульт управления - часть СОИ, даже если включить цифровую машину в состав пульта, все равно только часть. Другая часть СОИ - человек-оператор (или несколько операторов). И третья часть - программы для ЦВМ, те самые программы, которые готовят информацию, представляют ее человеку в ходе решений, принимают и толкуют указания оператора.
Три составляющих в системе отображения информации, три разнородных части. Не заглаживать стык, а образовывать единство составляющих - цель антропотехники, наша цель.
К ней мы будем стремиться, а по пути произойдут удивительные вещи. Перегруженные приборами пульты управления вовсе лишатся приборов. Зазвучат диалоги из новой пьесы "Взаимодействие человека с машиной". Непостижимое оперативное мышление окажется не столь уж туманным. Там, где все мнится возможным, возникнут суровые ограничения. Зато там, где мешают границы, удастся прорваться: ледяные стены растают под солнцем системного подхода.
Мы станем интересоваться разнообразными СОИ; особый интерес проявим к таким системам для электрических станций. Здесь сказываются личные пристрастия (автор занимался станционными пультами более, чем другими), но сильнее личных пристрастий - уверенность в том, что этапы развития СОИ и принципы их построения едины. Двигаясь по любой из дорог, анализируя системы отображения для управления воздушным движением, для автоматизированного проектирования или для диагностики больных, мы приходим в одно и то же место. Всякий раз мы оказываемся перед экранами, всякий раз пользуемся языками обмена.
Наука и техника разделены сегодня на мелкие, специализированные участки, разбиты на соты. Из своей ячейки автор обращается к ближним и дальним соседям и к тем, кто еще не успел "спрятаться в ячейку".
Самый неискушенный читатель многое знает об отображении информации; видел и стрелочные, и цифровые индикаторы, встречал мнемонические знаки, табло, клавиатуры и ключи управления. Наша задача - привести разрозненные наблюдения в систему, дополнить их менее известными, но не менее важными приборами и идеями. Наша задача - рассказать о красоте настоящих систем отображения.
Размышления о красоте побуждают нас обратиться в далекое прошлое - там скрыты истоки оперативной деятельности людей. Мы должны проследить изменение роли человека во все усложняющихся технических системах. Пульт оператора останется для нас главной целью, но мы постараемся подсветить этот пульт из двух противоположных точек - от человека и от цифровой машины. В полярном свете контуры пульта станут более рельефными.
Рассказ о пультах будет подробным - как и в искусстве, в антропотехнике результат делают детали. Тщательное исполнение деталей приводит к пультам, удобным для людей, значит, к коренному улучшению систем. "Человек,- пишет академик В.А.Трапезников,- это главный ресурс системы управления, и мобилизация всех его психологических резервов наряду с использованием технических средств управления (ЦВМ и др.) значительно ускорит научно-технический прогресс и общее развитие нашей страны".
Gudleifr- Admin
- Сообщения : 3398
Дата регистрации : 2017-03-29
Страница 5 из 6 • 1, 2, 3, 4, 5, 6
Страница 5 из 6
Права доступа к этому форуму:
Вы не можете отвечать на сообщения