/
Автор: Абрамов В.А. Дубровин В.С.
Теги: компьютерные технологии вычислительная техника микропроцессоры программирование информатика программное обеспечение
ISBN: 5-06-001784-2
Год: 1991
Текст
< ПРОГРАММНОЕ
0 ОБЕСПЕЧЕНИЕ
й
В. А. Абрамов
В. С. Дубровин
ПРИКЛАДНОЕ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ
МИКРОЭВМ
В ОДИННАДЦАТИ
КНИГАХ
Под редакцией
лауреата Государственной премии СССР.
доктора технических наук.
профессора В.Ф. ШАНЬГИНА
В. А. Абрамов
В. С. Дубровин
ПРИКЛАДНОЕ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Издание второе.
переработанное и дополненное
Допущено Государственным комитетом СССР
по народному образованию
в качестве учебного пособия
для профессионально-технических училищ
Моснва„Высшая школа“1991
8сап АА\У
ББК 32.97
П78
УДК 681.3
Рецензент ГЛ. Годжелло - директор СПТУ № 200 г. Москвы.
п 2405000000(4307000000) -325 53 _ 91
052(01) -91
18 ВИ 5-06-001784-2
© В.А. Абрамов, В.С. Дубровин, 1991
Алгоритм - точное и понятное указание исполнителю совершить
последовательность действий для решения определенной задачи.
Алгоритмический язык - система обозначений и правил для единой
и точной записи алгоритмов и их исполнения.
База данных - совокупность данных, необходимых для решения
прикладных задач пользователей и хранимых в организованном порядке
в памяти ЭВМ.
Загрузочный модуль - программа в машинных кодах, готовая к вы-
полнению на ЭВМ.
Интерпретатор - программа, осуществляющая независимый анализ
каждого отдельного оператора исходной программы и немедленное их
исполнение.
Команда алгоритма - отдельное указание исполнителю выполнить
запомненное действие, являющееся шагом алгоритма.
Компилятор - программа, преобразующая написанную на языке вы-
сокого уровня программу в эквивалентную программу в объектном
коде, которая после полного преобразования запускается в работу.
Компоновщик - специальная программа, осуществляющая сбор
всех необходимых программ в объектных кодах в программу, готовую
для выполнения на микроЭВМ.
Массив - упорядоченное множество однородных элементов, имею-
щее имя.
Машинная графика - создание, хранение и обработка в цифровом
виде изображений различных объектов на ЭВМ.
Модуль программный - функционально независимая часть програм-
мы, представляющая собой набор нескольких операторов.
Объектный код — промежуточный (машинный) код, в котором за-
писана исходная программа после трансляции. Такая программа еще не
готова для выполнения на ЭВМ.
Операторы языка программирования — запись, выражающая опре-
деленное законченное действие в программе (например, умножение
двух величин и присваивание результата третьей величине).
Основные управляющие структуры - модули, используемые для
написания легко читаемых программ. К ним относятся структуры: следо-
вание, развилка, цикл.
Отладчик - специальная программа, позволяющая устанавливать
точки останова в любом месте программы, выполнять программу опера-
тор за оператором, просматривать и изменять значения переменных и
элементов массивов.
Пакет прикладных программ — специальным образом организован-
ные программные комплексы, ориентированные на определенную опера-
3
ционную систему и класс ЭВМ. Они разрабатываются для типовых задач,
чтобы обеспечить потребности большого числа пользователей.
Пиксел - единичный элемент изображения, отображаемый на экране
дисплея.
Программа - законченная последовательность операторов языка
программирования, определяющая последовательность действий для
решения некоторой задачи.
Редактор текстов — специальная программа для создания текстовых
файлов в микроЭВМ.
Рекуррентное соотношение - соотношение в виде формулы, позво-
ляющее вычислять последующий член последовательности через предыду-
щий (или несколько предыдущих).
Семантика алгоритмического языка — смысловая трактовка языка,
определяющая определенное толкование отдельных конструкций и целых
фраз и совпадающая со смыслом обычных математических выражений.
Синтаксис алгоритмического языка - совокупность правил, опреде-
ляющих построение допустимых конструкций языка.
Структурный подход к программированию - современные принципы
написания программ для их использования и возможности изменения
без участия авторов. Подход состоит из следующих частей - нисходящая
разработка, структурное программирование и тестирование.
Схема алгоритма - диаграмма, состоящая из соединенных между
собой блоков разного типа и отражающая основные этапы выполнения
алгоритма или программы.
Тестирование программ - процесс поиска ошибок в программе,
планируемый до начала программирования.
Файл - набор (совокупность) данных на внешних носителях (диске-
те, магнитной ленте и т. п.).
ВВЕДЕНИЕ
Широкое внедрение микроЭВМ в сферу производства требу-
ет соответствующей компьютерной подготовки рабочих кадров.
От уровня компьютерной грамотности молодого поколения су-
щественно зависит ускорение научно-технического прогресса.
Наиболее распространенная форма программного обеспече-
ния — пакеты прикладных программ, которые могут использо-
ваться в разных отраслях народного хозяйства.
Выпускники средних профессионально-технических училищ
должны уметь использовать разработанные прикладные про-
граммы и при необходимости дополнять их своими программа-
ми для конкретных целей.
Данная книга знакомит читателя с применением алгоритмов
для решения задач и основными этапами создания прикладных
программ. Конкретные варианты этих программ использования
прикладного обеспечения показаны на примере широко распро-
страненных персональных микроЭВМ типа диалоговых вычис-
лительных комплексов (ДВК) и совместимых с ними микро-
ЭВМ «Электроника НЦ», «Электроника-60» и «Электрони-
ка-85». Аналогичное прикладное программное обеспечение ис-
пользуется и на микроЭВМ серии ЕС-1840, ЕС-1842.
Для перечисленных микроЭВМ достаточно подробно описан
один из распространенных экранных редакторов, позволяющий
вводить и редактировать текстовую информацию на экране
дисплея.
В описание программ текстовой обработки включена про-
грамма, позволяющая проводить форматирование документов.
На ее выходе пользователь получает документ, соответствую-
щий ГОСТу на оформление (с выровненными краями, автомати-
чески пронумерованными страницами и т. д.).
В главах 1—3 учебного пособия описываются типы алгорит-
мов и способы их записи, рассматриваются способы составления
прикладных программ, обработка текстовой и табличной инфор-
мации. В главе 4 показана разработка прикладных программ для
реализации машинной графики. В главе 5 описана существующая
библиотека программ для проведения научно-технических рас-
четов на микроЭВМ.
Материал учебного пособия помогает уяснить структуру
и состав прикладных программ, специфику их составления, опи-
сания и реализации на микроЭВМ.
Книга предназначена для учащихся СПТУ. Может быть полез-
на преподавателям и мастерам производственного обучения.
Глава 1
ПОСТРОЕНИЕ АЛГОРИТМОВ
ДЛЯ РЕШЕНИЯ ЗАДАЧ
1.1. ПОНЯТИЕ АЛГОРИТМА
Преобразование и познание природы человеком приводит
к искусственному делению на составные части явлений, с кото-
рыми он сталкивается. Чтобы прийти к конечному результату,
следует выполнить ряд последовательных действий, иначе гово
ря, осуществить процесс принятия решений на основе определен-
ных правил. Решение многих практических задач, представлен-
ных в виде отдельных составляющих, удобно передать вычисли-
тельным устройствам — универсальным или персональным ЭВМ.
При описании последовательности вычислительных процессов
используют алгоритм.
Алгоритм - точное и понятное предписание (указание) ис-
полнителю совершить последовательность действий, направлен-
ных на достижение указанной цели или на решение поставленной
задачи.
Слово «алгоритм» происходит от имени узбекского матема-
тика IX в. н.э. аль-Хорезми, который сформулировал правила
четырех арифметических действий над многозначными числами.
В дальнейшем это слово стало использоваться не только в мате-
матическом смысле, а более расширенно. Фактически любую
последовательность взаимосвязанных действий, приводящую
к конечному результату, стали называть алгоритмическим про-
цессом, а каждое действие — его шагом.
Пример 1.1. Найти с помощью циркуля и линейки
центр окружности, описанной вокруг треугольника АВС
(рис. 1.1).
Решение. Алгоритмический процесс распишем по
шагам.
Шаг 1: Проведем окружность с центром в точке А
радиусом К (1), где К (1) > АВ/2. Обозначим ее 0(7).
Шаг 2: Проведем окружность с центром в точке В
тем же радиусом К (7). Обозначим ее 0(2).
Шаг 3: Проведем прямую через точки пересечения
окружностей О(1) и 0(2), которую обозначим Ь (1).
Шаг 4: Проведем окружность с центром в точ-
ке В радиусом К (2), где 7? (2) > ВС/2. Обозначим ее
0(3).
Рис. 1.1. Нахождение центра окружности
Шаг 5 : Проведем окружность с центром в точке С
также радиусом К (2). Обозначим ее 0(4).
Шаг 6: Проведем прямую через точки пересе-
чения окружностей 0(3) и 0(4), которую обозначим
Л (2).
Шаг 7: Выделим точку пересечения прямых Ь (1) и
А (2), обозначим ее через О.
Точка 2 — искомый центр окружности.
• Здесь каждый шаг определяет конкретные действия исполнителя.
Исполнителем может быть и техническое устройство, например графо-
построитель, управляемый от ЭВМ.
Пример 1.2. Пусть дано число X. Найти значение много-
члена 5Д'2 — 6Х + 7. Зададим допустимые правила преоб-
разований: 1) вычисление суммы двух чисел; 2) вычисле-
ние произведения двух чисел.
Решение. Запишем исходное выражение в виде 5Х X +
+ (-6) • X + 7 и перейдем к шагам алгоритма.
Шаг 1: Вычислим X • X.
Обозначим его X X = V.
Шаг 2: Вычислим значение 5 У.
Обозначим 5 У = X.
Шаг 3: Вычислим значение (-б)Х.
Обозначим (-6)Х = 13.
Ш а г 4: Вычислим значение X + 13.
Обозначим X + 13 = V.
Ш а г 5: Вычислим значение V + 7.
Обозначим V + 7 = И'.
Значение И' есть искомое.
• Данный алгоритм можно вычислить на микроЭВМ, используя ее
как калькулятор.
В математике понятие алгоритма возникло в связи с поиска-
ми методов решения однотипных задач.
К алгоритмам предъявляется ряд требований. Они должны
обладать свойствами определенности, массовости, результатив-
ности и дискретности.
Определенность алгоритма. Метод вычисления должен быть
точен, общепонятен и исключать возможность произвольного
толкования. Процесс вычислений должен быть таким, чтобы его
мог повторить любой пользователь. Этому требованию удовлет-
воряет пример 1.1.
Массовость алгоритма. Он должен быть применен к це-
лому классу однотипных задач, для которых меняются ис-
ходные условия. Данному требованию удовлетворяет при-
мер 1.2. Предложенный в нем алгоритм обладает массовостью,
т.е. по нему можно получить решение для любого исходного
числа X.
Результативность алгоритма. Пошаговый процесс решения
задач определенного типа должен заканчиваться через конечное
число шагов, после чего становится возможным прочитать ис-
ходный результат. Понятие результативности алгоритма связано
с областью его применения. Если условия задачи взяты из обла-
сти применения, то алгоритм перерабатывает их в конечное ре-
шение, после чего наступает останов вычислительного процесса.
Если условия взяты не из области, то либо никогда не наступает
останов, либо наступает, но нельзя узнать, какое из полученных
чисел является результатом.
Дискретность. Для многих задач создание алгоритмов
является процессом творческим. Однако решение задач по го-
товому алгоритму не требует каких-либо рассуждений, сво-
дится к выполнению полученных шагов и может быть пере-
поручено ЭВМ.
Для реализации алгоритма на ЭВМ необходимо выполнение
требования дискретности вычислительных операций, т.е. воз-
можности расчленения задачи на элементарные операции для вы-
полнения их счета. В алгоритме отражаются не только арифмети-
ческие действия, необходимые для счета, но и логические связи,
которые вычислительный процесс налагает на исходные и проме-
жуточные данные. Логические связи задаются в форме отноше-
ний, допускающих или не допускающих автоматическое выпол-
нение действий, предписываемых ЭВМ. Примерами этих связей,
не допускающих автоматическую работу ЭВМ, являются деление
на 0, вычисление 1п (0), 1п (- °°) или 1п (-а), где а > 0, вычис-
ление агс81п (X) или агссоз (X) при |Х| > 1.
1.2. СПОСОБЫ ЗАПИСИ И ТИПЫ АЛГОРИТМОВ
Составленные разными разработчиками алгоритмы должны
быть прочитаны и поняты другими людьми. Иначе говоря, форма
записи алгоритма должна быть общепонятна, не нарушать точ-
ность и последовательность вычислений, обладать компактно-
стью и наглядностью. Приведенные выше словесные описания
алгоритмов (см. § 1.1 и 1.2) не компактны, малонаглядны и не
учитывают специфику решения задач на ЭВМ. Более удобная
наглядная форма записи алгоритмов — их графическое представ-
ление в виде схемы алгоритма. Это чертеж, состоящий из геомет-
рических фигур (прямоугольников, параллелепипедов, ромбов,
овалов и т. д.), соединенных направленными линиями. Гео-
метрические фигуры (в дальнейшем называемые блоками)
соответствуют тем или иным шагам алгоритмического про-
цесса, а направленные линии определяют порядок выполнения
блоков.
Различают безусловные и условные типы блоков. Без-
условные подразделяют на арифметические, т.е. выполня-
ющие вычисления ввода—вывода информации (данных) и нача-
ла - останова вычислений. Блок условного типа обознача-
ет разветвление вычислительного процесса в зависимости от вы-
полнения некоторых условий. В дальнейшем используем некото-
рые геометрические обозначения наиболее часто употребляемых
блоков (табл. 1.1).
Таблица 1.1
Наименование Обозначение Пояснение
Процесс
Вычислительные действия
или последовательность вы-
числительных действий
Проверка условий
Решение
Ввод-вывод
Ввод-вывод данных
Модификация
Начало цикла
Продолжение табл. 1.1
Наименование Обозначение Пояснение
Предопределении й
процесс
Документ
Вычисление по подпрограм-
ме или стандартной подпро-
грамме
Вывод данных, печать ре-
зультатов
Перфокарта
Ввод данных с перфокарт
или вывод данных на-перфо-
карты
Соединитель
Разрыв линий потока
Лин ии потока
Если поток
или направо,
или линии не
мер, а, г)
направлен вниз
можно стрелку
ставить (напри-
Пуск, останов
Начало, конец, останов,
вход и выход в подпрограм-
мах
V При составлении схем алгоритмов соблюдаются следу-
ющие правила:
\. Каждый блок имеет единственную точку входа, кроме
блока пуска, который не имеет входа;
2. Каждый безусловный блок имеет единственную точку
выхода, кроме блока останова, который не имеет ни одной точ-
ки выхода;
3. Условный блок имеет два или в отдельных случаях три
выхода;
4. Выход условного блока можно пометить условиями (на-
пример, ДА, НЕТ или > 0, = 0, < 0);
5. Линии, идущие на вход некоторого блока, могут соеди-
няться. Это соответствует 'переходу на конкретный единствен-
ный этап вычислений после нескольких других этапов;
10
6. Линия, исходящая из входной точки блока, не может
разветвляться на несколько направлений. Этим исключается не-
однозначность перехода между блоками.
Примеры правильного соединения блоков приведены на рис.
1.2, а-в, где блоки А и В — некоторые вычислительные процес-
сы. На рис. 1.3, а-в изображена без текстовых пояснений непра-
вильная запись схем. Ошибочные соединения отмечены знаком (?).
Схема алгоритма вычисления многочлена (см. пример 1.2)
показана на рис. 1.4. Отметим, что в одном вычислительном бло-
ке можно объединить несколько операций.
Пример 1.3. Составить схему алгоритма вычислений
функции
У = 18 [у/^Х2 + Ъ + 1п (аХ3 + 6)]
для различных значений а, Ъ, X.
Решение. Шаги алгоритмического процесса можно
представить в такой последовательности:
Шаг 1: 2 = аХ3 + Ъ;
Шаг 2: Т = -/Й + 1п (2);
Шаг 3: У = 18(Г);
Ш а г 4: Вывод на печать вычисленного значения У.
Рис. 1.2. Примеры правильного соединения блоков
Рис. 1.3. Примеры неправильного соединения блоков
• Здесь показан последовательный однократный процесс вычислений
при заданных исходных данных. Схема алгоритма для данного примера
приведена на рис. 1.5.
Рис. 1.4. Схема алго-
ритма вычисления
значения многочлена:
1 — пуск; 2 - ввод X;
3-7- вычисление
У = Х2; 2=5У;
и = -бХ;У = 2+ II;
V = V + 7; 8 - вы-
вод XV; 9 - останов
Рис. 1.5. Схема
алгоритма вычис-
ления значения
функции
Рис. 1.6. Схема одного из
ветвящихся алгоритмов
Можно выделить три типа алгоритмов: арифметические (ли-
нейные вычислительные), ветвящиеся и циклические.
Арифметические алгоритмы. В таких алгоритмах (см. при-
мер 13) каждый этап вычислений сводится к выполнению ариф-
метических операций, которые в процессе вычислений выполня-
12
ются однократно. В схемах таких алгоритмов блоки операций
выполняются последовательно друг за другом.
Ветвящиеся алгоритмы. В зависимости от выполнения
или невыполнения в них некоторых условий они осуществля-
ют ту или иную последовательность вычислений. При раз-
ветвлении происходит однократный проход по одной из вет-
вей решения задачи. Схема одного из таких алгоритмов пред-
ставлена на рис. 1.6. В общем случае количество ветвей в та-
ком алгоритме разветвляющейся структуры может быть больше
двух.
Циклические алгоритмы. В них та или иная часть вычисле-
ний выполняется неоднократно. Схемы некоторых циклических
алгоритмов приведены на рис. 1.7, а-г. Здесь в блоке «Серия
шагов» может содержаться произвольное конечное число шагов
алгоритма. В блоке «Подготовка цикла» задаются начальные
значения переменных, используемых в цикле. В блоке «Цикли-
ческая часть» содержится последовательность шагов алгоритма,
повторяющаяся при каждом проходе цикла. В блоке «Условие
выхода из цикла» или «Условие» принимается решение о пре-
кращении или продолжении вычислений. Число повторений
в цикле должно быть конечным.
Циклические алгоритмы по способу организации выхода
из цикла можно разделить на арифметические и итерационные.
В арифметическом цикле количество повторений
заранее известно или легко может быть вычислено. В итера-
ционном цикле количество повторений заранее не изве-
стно. Выход из них осуществляется по достижении заданной
Рис. 1.7. Примеры схем циклических алгоритмов:
а-в - частные случаи; г - обобщенная запись циклического алгоритма
с возвратом в контур цикла
точности при последовательном приближении к искомому
значению.
• В циклических алгоритмах часто вычисляют последующий член
последовательности через предыдущий. Эти вычисления осуществляют-
ся на всех шагах цикла по единой формуле. Например, д,- = /д,-.] для всех /
от 1 до п, причем а0 задается заранее. Говорят, что в этих случаях единая
формула вычислений называется рекуррентной, т.е. выражает рекуррент-
ное соотношение между последующим и предыдущим шагами вычис-
лений.
Пример 1.4. Составить схему вычисления суммы п
слагаемых, т.е. вычислить5 = а! + а2 + ... + а„.
Решение. Введем 50 = 0. Тогда
51 = 50 + \
=51 + а2; |
5/ = 5/_ ! + ду; I
$п =$п - 1 + ап. )
Формулу (1.1) перепишем в виде
5 = 5+аь
(1.2)
где «=» — символ операции присваивания. Иначе значению
суммы на /-м шаге присваивается значение частичной сум-
мы на предыдущем шаге плюс слагаемое а/. Следовательно,
формула (1.2) является рекуррентной.
Схема алгоритма для данного примера представлена на
рис. 1.8. Участки схемы, состоящие из блоков 5-7, представля-
ют собой тело цикла. Число шагов цикла равно п.
Пример 15. Составить схему алгоритма нахождения
произведения п сомножителей Р = Рг • Р2 ’... • Рп.
Решение. Для определения рекуррентной формулы
сначала введем Ро = 1, а затем вычислим алгоритм
Р1 =Роа1\ Ч
Р 2 =Л«2;
(1-3)
~?1- 1а1> I
= РП- \аП- }
Для данного случая рекуррентная формула имеет вид
Р = Ра1.
(1-4)
Схема нахождения произведения представлена на
рис. 1.9, где блоки 5-7 являются телом циклического ал-
горитма, число шагов равно п.
ления суммы п слагаемых
ления произведения п сомножи-
телей
Итерациональный цикл - это сходящийся процесс повто-
рения одного и того же действия (или совокупности действий),
где результат предыдущего действия (вычисления) принимает-
ся как исходное данное для последующего решения.
Пример 1.6. Дано уравнение хсо$ (х) = 1п (х + 1,1).
Найти решение уравнения за конечное число шагов в окре-
стности точки Хо = 0.
Решение. Аналитически, т.е. в виде конечной единой
формулы, данное уравнение не разрешается. Численно его
можно приближенно решить путем пошагового алгоритма.
Иначе за некоторое число шагов п, которое неизвестно,
можно вычислить значение хп, отличающееся от истинного
значения х по абсолютному значению на е:
где е — заданная точность решения.
Отметим, что такое решение существует лишь для схо-
дящихся процессов вычисления, у которых при возраста-
15
Рис. 1.10. Схема алгоритма итерацион-
ного цикла
нии и вычисленное значение
хп стремится к истинному
значению х.
Перепишем исходное
уравнение в виде
1п (х + 1,1)
СОЗ (х)
= V» (*).
В итерационных алго-
ритмах следует переписать
исходное уравнение в виде
X = (х). Вид функции
(х) надо выбрать так,
чтобы обеспечить сходи-
мость* итерационного
цикла в окрестности на-
чального исходного значе-
ния х0.
В рассматриваемом
примере шаги приближения
равны Х1 = (х0), х2 =
= (*1), хз = (х2), ...,
*/+1 = (х,) и т. д. до тех
пор, пока не выполнится
условие
I хц. ! - V? (х,) | < е.
(1-5)
Как только (1.5) будет выполнено при некотором и,
процесс вычислений прекращается.
В итерационных алгоритмах рекуррентная формула имеет
вид х/+1 =^(х/).
Рекуррентное соотношение запишем в виде
_1п(х, + 1,1)
Х/+1 —------------
СОЗ (Х()
Схема нахождения приближенного решения исходного
уравнения с точностью е > 0 представлена на рис. 1.10. Здесь
у — значение х;+1 для любого /, начиная с хг (блок 5); а —мо-
дуль рассогласования между вычисленным значением х/+1, рав-
ным 1п (х, + 1,1)/соз (х;), и исходным значением х/ (блок 4).
* Методы определения сходимости итерационных циклов изучают
в высшей школе.
16
В блоке 5 проверяется условие окончания цикла. Если а < е,
т.е. достигнута заданная точность, то вычисления прекращают-
ся. Блоки 3-5 представляют собой тело итерационного цикла.
Количество шагов заранее не известно и фактически зависит от
заданной точности е.
Рассмотренные примеры показывают, что запись алгоритма
в виде словесного описания или схемы распадается на отдельные
указания исполнителю выполнить законченное действие. Каждое
такое указание называется командой алгоритма. Поочередное
выполнение команд алгоритма за конечное число шагов приво-
дит к решению задачи, достижению цели.
1.3. АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ
I Алгоритмический язык — это система обозначений и правил
для единой и точной записи алгоритмов и их исполнения.
Он используется для реализации на ЭВМ команд алгоритма
и служит для представления задач в форме, близкой к математи-
ческой записи. На этом языке алгоритмы читаются и записыва-
ются как обычный текст.
Составление алгоритмических языков — трудоемкий про-
цесс. Они должны включать в себя общепринятую математичес-
кую символику (числа, действия над ними, функции, операции
отношений, скобки и т. д.) и должны позволять записывать по
определенным правилам всевозможные программы для после-
дующего их решения на ЭВМ. Программа, записанная на алгорит-
мическом языке, при вводе в ЭВМ транслируется в машинный
код, затем редактируется и после отладки осуществляется про-
цесс вычислений.
Любой алгоритмический язык имеет свой алфавит, из кото-
рого строятся слова, входящие в словарь языка. Из символов
алфавита создаются фиксированные слова — операторы. Их при-
меняют для записи команд алгоритмов. Например, в некото-
ром абстрактном алгоритмическом языке возможно исполь-
зование оператора ВЫП, смысл которого — выполнить какое-то
действие.
Для различных вспомогательных целей используют служеб-
ные слова. Смысл и способ их употребления задается раз и на-
всегда. Благодаря служебным словам запись алгоритма стано-
вится наглядной, а форма представления различных алгорит-
мов имеет единый вид. Например, для удобства пользователей
различные комментарии в тексте программ помечаются одним
служебным словом КОММЕНТ. С помощью этого слова можно
выделить название алгоритма.
2—332 ’ биб : 17
Служебное слово КОНЕЦ характеризует завершение алго-
ритма. Между названием и концом записываются последователь-
но операторы алгоритма.
Алгоритмические языки ФОКАЛ, ФОРТРАН, БЕЙСИК,
ПАСКАЛЬ, ПЛ/М и присущие им операторы и служебные слова
будут изложены в кн. 4—8 данной серии учебных пособий.
Пример 1.7. Рассмотрим запись алгоритма (см. при-
мер 1.1) на абстрактном алгоритмическом языке, удовлет-
воряющем введенным начальным правилам.
КОММЕНТ ВЫП Нахождение центра окружности Построить окружность О (1) Построить окружность О (2) Построить линию Ъ (1) Построить окружность О (3) Построить окружность О (4) Построить линию Ь (2) Найти точку 0 - пересечение линий Ь (1) и Ь (2),
КОНЕЦ
В данной записи между служебными словами
КОММЕНТ и КОНЕЦ помещен оператор ВЫП, в котором
последовательно выполняются команды алгоритма приме-
ра 1.1, соответствующие шагам 1-7.
Для алгоритмов с разветвлением вычислительного процесса
в алгоритмических языках используются операторы, реализу-
ющие различные направления ветвления. Можно предложить
следующую запись оператора (см. рис. 1.7):
ЕСЛИ
ТО
ИНАЧЕ
ВСЕ
Условие
Серия шагов 1
Серия шагов 2
Здесь введены операторы ЕСЛИ, ТО, ИНАЧЕ и ВСЕ. Дей-
ствия, выполняемые ими, трактуются смысловым значением
этих слов в русском языке. Блок «Серия шагов 2» может не
содержать ни одного действия, тогда говорят, что оператор
ИНАЧЕ пустой. Оператор ветвления будет записан в сокращен-
ной форме:
ЕСЛИ Условие
ТО Серия шагов 1
ВСЕ
Циклические алгоритмы с конечным числом повторений
могут быть записаны в алгоритмическом языке с помощью
18
операторов ПОКА, НЦ, КЦ. Данные операторы вызывают соот-
ветственно следующие действия: пока выполняется некоторое
условие, то ...; начало цикла; конец цикла.
Пример 1.8. Структура алгоритма, изображенного на
рис. 1.7, а, имеет вид
ПОКА Условие
НЦ Серия шагов
КЦ
«Серия шагов» может включать в себя ряд операто-
ров вып.
Пример 1.9. На основе введенных операторов соста-
вить программу для алгоритма, изображенного на рис. 1.8.
Решение
КОММЕНТ
ВЫП
ВЫП
{ВЫП
ПОКА
НЦ
ВЫП
ВЫП
КЦ
вып
Вычисление суммы 8 числа слагаемых п
Ввод значений п, в], а2,.... ап
8 = 0
1= 1
1 = 1
। < п
8 = 8 + а,-
1 = 1 + 1
Печатать 8
КОНЕЦ
Здесь операторы, отмеченные фигурной скобкой,
будут последовательно выполнять суммирование: 8 = Э1;
8 = Э1 + а2,...; 8 = а2 + а2 + ..., + ап до тех пор, пока выпол-
няется условие 1 < п. После чего цикл завершится и про-
изойдет печать результата 8.
Классификация языков программирования. Обычно языки
программирования делят на машинные, языки ассемблера и ал-
горитмические языки высокого уровня. Каждая микроЭВМ
имеет свой машинный язык программирования, содержа-
щий перечень операций, которые она может выполнять (см.
кн. 2 данной серии учебных пособий). Машинные языки исполь-
зуют язык цифр и поэтому неудобны для описания вычислитель-
ных процессов.
Применение машинных языков требует от программистов
больших усилий для написания и отладки программ. Однако
при их использовании может быть достигнута максимальная
гибкость в реализации технических возможностей ЭВМ.
Языки ассемблера используют символические име-
на в программе, избавляют программиста от утомительной рабо-
2» 19
ты по распределению памяти ЭВМ для переменных и констант.
На этих языках программируется операционная система ЭВМ.
Они занимают промежуточное положение между машинными
языками высокого уровня. Их применение повышает про-
изводительность по сравнению с программированием на ма-
шинных языках и одновременно позволяет гибко реализовать
технические возможности ЭВМ, как и в случае машинных
языков.
Алгоритмические языки высокого
уровня (ФОКАЛ, ФОРТРАН, БЕЙСИК, ПАСКАЛЬ, ПЛ/М
и др.) используют обыкновенную математическую запись. Их
структура ближе к естественному языку. Они не зависят от
параметров используемых микроЭВМ. Эти языки, кроме алфа-
вита, имеют свою семантику и синтаксис.
Семантика - смысловая трактовка языка, определяющая
определенное толкование отдельных конструкций и целых
фраз.
Семантика языка совпадает со смыслом обычных математи-
ческих выражений.
Синтаксис - совокупность правил, определяющих постро-
ение допустимых конструкций языка.
Так как языки высокого уровня имеют значительную упо-
рядоченность записи всех операторов и конструкций языка, то
составление программ на них достаточно просто и удобно.
Использование языков высокого уровня предполагает нали-
чие транслятора в ЭВМ, представляющего сложный програм-
мный комплекс. Транслятор считает строки программы и прове-
ряет наличие в них синтаксических ошибок. Если обнаружена
ошибка, то она диагностируется. Затем каждое правильное
предложение переводится с алгоритмического языка на язык
машины.
• На алгоритмических языках высокого уровня написано большое
число прикладных программ, позволяющих решить производственные
и научные задачи.
1.4. АЛГОРИТМЫ РАБОТЫ С ВЕЛИЧИНАМИ
При решении практических задач с помощью алгоритмичес-
ких процедур приходится осуществлять вычислительные дей-
ствия над константами, переменными, элементами массивов и
функциями. Константами будем называть числа и тексты, явно
заданные в программе.
Так как в алгоритмических языках используются математи-
ческие формулы, то сохраним понятия постоянных и
переменных величин, принятые в математике. Известно,
20
что значение постоянной величины в отличие от переменной не
меняется в процессе исполнения алгоритма.
Величины являются как исходными данными при решении
задач, так и результатами вычислительных процессов. В алго-
ритмических языках переменной величине присваивается имя,
например сумме (см. пример 1.10) присваивается имя 5.
Значения величин (переменных или постоянных) могут
быть числовыми или текстовыми. Числовые значения имеют
различный тип (целые числа, вещественные числа). Текстовые
величины (иначе символьные или строковые) принимают значе-
ние слов. Так переменная величина «фрукт» может принимать
значения из множества (яблоко, груша, слива), где каждое
значение есть слово.
В введенном выше алгоритмическом языке указанные
типы величин можно обозначить операторами ЦЕЛ, ВЕЩ,
симв, смысл которых соответственно целый, веществен-
ный или символьный. Возможны и другие типы величин.
Пример 1.10. Составить программу вычисления произ-
ведения Р числа сомножителей (см. рис. 1.9), используя
введенные операторы.
Решение
[МЕНТ Вычислить произведение Р числа сомножите- лей п
ЦЕЛ >, п
ВЕЩ а,, а,,..., а„, Р
ВЫП Ввод значений п, а, ,а2,..., а„
ВЫП Р= 1
ВЫП 1= 1
ПОКА 1 < п
нц
ВЫП Р = Р • а/
ВЫП 1 = 1+1
кц
ВЫП Печатать ”Р =”, Р
КОНЕЦ
В последнем операторе ВЫП в кавычках введена сим-
вольная константа ”Р = ”, отделенная запятой от веще-
ственной переменной Р. После выполнения данного алго-
ритма, например, для чисел 1, 2, 3, 4, 5 будет напечатано
Р= 120.
Расширим первоначальные сведения о введенных типах
числовых значений величин, поскольку они характери-
зуют форму представления чисел в программе и в микро-
ЭВМ.
В современных алгоритмических языках числа могут быть
положительными (со знаком «+»), нулем или отрицательными
(со знаком «—»). Перед положительным числом знак «+» может
быть опущен. При записи дробных чисел вместо традиционной
запятой используется точка, например 3.14159, а не 3,14159.
Формы представления чисел. Вещественные числа в про-
грамме могут быть представлены в форме с фиксированной или
плавающей точкой. В первом случае целая и дробная части числа
отделяются точкой.
Числа в форме с фиксированной точкой,
включая целую и дробную части, содержат не более шести знача-
щих десятичных цифр, если для их хранения используется
16 двоичных разрядов памяти микроЭВМ. Если цифр в числе
больше шести, то при вычислении на ЭВМ отбрасываются справа
числа дробной части. Существенны только первые шесть знаков,
причем шестой знак может быть неточным из-за ошибок округ-
ления. Число называют целым, если у него отсутствует дробная
часть. Семизначные целые числа в программах не могут быть
заданы.
Пример 1.11. Рассмотрим некоторые случаи записи
чисел с фиксированной точкой:
-152,03 12,0 6,12345 657
Здесь последнее число — целое.
Существует также запись чисел с плавающей точ-
кой (эта запись иначе называется записью числа в показатель-
ной форме). Число в показательной форме состоит из двух
частей: мантиссы и порядка (целой степени числа 10). Например,
число 2.34 • 106 содержит 234 — мантиссу и 6 — порядок. При
такой записи в алгоритмических языках за целым или десятич-
ным числом, являющимся мантиссой, идут буква Е и целое
число, представляющее собой порядок и состоящее из одной
или двух цифр со знаком «+» или «—» (знак «+» может быть
опущен).
При хранении таких чисел в 16 двоичных разрядах памяти
микроЭВМ мантисса чисел в форме с плавающей точкой содер-
жит не более шести значащих цифр. Если указано в мантиссе
более шести цифр, то при вычислении мантисса округляется
до шести знаков.
Пример 1.12. Рассмотрим запись чисел с плавающей
точкой:
45,3 • 10’
—8-10’
15.234
0,831- 105
453Е + 03
-8Е - 02
15.234Е + 0
0.831Е+05
Здесь слева математическая запись числа, справа его запись
на алгоритмическом языке.
Запись исходных чисел в правой части может быть и другой.
Так, вместо 15.234Е + 0 можно написать О.О15234Е+ОЗ, или
0.15234Е + 02, или 15234Е + 01, или 15234Е - 01, или
1523.4Е — 02 и т. д. Таким образом, в зависимости от значения
порядка точка может перемещаться (плавать) вдоль мантиссы
в числе.
Число в показательной форме называется нормализован-
ным, если его целая часть равна нулю, а в мантиссе после точки
следует цифра, отличная от нуля. В данном случае нормализо-
ванным числом будет 0.15234Е + 02.
В программах допустима запись целых и вещественных
чисел в любой форме, но в ЭВМ форма представления чисел
(иначе, внутренняя форма представления) следующая: форма
записи с плавающей точкой используется для представления
множества вещественных чисел, форма представления чисел
с фиксированной точкой — в основном для множества целых
чисел. В ЭВМ перед выполнением действий целые числа автома-
тически преобразуются в форму вещественных с плавающей
точкой.
Задание величин в форме таблиц. Чаще всего таблицы бы-
вают линейные (одномерные) и прямоугольные (двухмерные),
состоящие из п столбцов и т строк. В программах упорядочен-
ное множество элементов, входящих в таблицы, называют
массивами.
Обычно массиву дается имя и в круглых скобках указыва-
ются предельные границы изменения индексов элементов, вхо-
дящих в массив.
Другое название элемента таблицы с индексами — индекс-
ные переменные. Положение индексных переменных
упорядочено в массиве.
Примерами одномерных и двухмерных массивов могут
служить записи: ВЕКТОР (20), МАТР(5, 10). Первая запись
характеризует строку, имя которой ВЕКТОР, состоящую из
20 индексных переменных. Вторая запись характеризует табли-
цу, имя которой МАТР. Она состоит из 5 строк, 10 столбцов
и содержит 50 индексных переменных. В свою очередь, индекс-
ные переменные сохраняют имя массива, из которого они
берутся. Сами индексы ставятся в круглых скобках после
имени переменной. Если индексная переменная взята из двух-
мерного массива, то ее первый индекс от второго отделяется
запятой.
Примерами индексных переменных являются ВЕКТОР (К),
МАССИВ (I, 1). Здесь числовые значения К и (1,1) принимают-
23
ся соответственно из-диапазонов: К — от 1 до 20, номер стро-
ки I — от 1 до 5, номер столбца I — от 1 до 10.
Пример 1.13. Из двух массивов А = (ан ..., ап) и
В = (Ь1, .... Ьп) сформировать массив С = (С1, ..., сп),
каждый элемент которого равен сумме соответствующих
элементов массивов А и В, с, = а, + Ь,.
Решение.
КОММЕНТ Вычислить элементы массива С как сумму элементов массивов А и В
ВЫП Ввод значений
ВЫП 1= 1
ПОКА нц 1 < п
ВЫП Ч = ад+ Ъ)
ВЫП 1=1+1
кц
ВЫП Печатать с 1,.... сп
КОНЕЦ
Пример 1.14. В массиве А = (ад,..., ап) найти макси-
мальный элемент и его индекс.
Решение.
КОММЕНТ Найти максимальный элемент массива А и его
индекс
ВЫП Ввод значений п, ад,ап
ВЫП М = ад
ВЫП 1=1
ВЫП 1 = 1
ПОКА 1 < п
нц ЕСЛИ М < а.
ТО М = ад, з = 1
ВСЕ
ВЫП 1 = 1+ 1
КЦ
ВЫП Печатать М,]
КОНЕЦ
Прикладные программы работы с таблицами данных см.
в гл. 3.
Функции в программах обозначаются с помощью имени
функции и набора (списка) аргументов, расположенных за име-
нем. Например, 8ВЧ (X), Р (X, V), МАК8 (X).
Наиболее употребительные математические функции —
8ш (х), соз (х), 1п (х), е* и др. — хранятся в памяти ЭВМ в виде
стандартных библиотечных подпрограмм.
Пример 1.15. Вычислить зна-
чение функции
у = х/ V 2 + 51П (х)
при 100 разных значениях аргу-
мента х, заданных линейной
таблицей (хь х2>..., Хюо).
Решение.
Схема алгоритма вычисле-
ний приведена на рис. 1.11, где
запись 1=1, 100,1 в блоке 3
означает, что 1 изменяется от 1
до 100 с шагом 1.
КОММЕНТ
МАССИВ
ЦЕЛ
ВЕЩ
ВЫП
ВЫП
ПОКА
Вычислить 100
значений функ-
ции У(Х) при
100 разных зна-
чениях аргу-
мента X
Х(ЮО), У(100)
1
х, У
Ввод X
1 = 1
1 < 100
Рис. 1.11. Схема алгоритма
вычисления значений
функции при различных
значениях аргумента
НЦ
ВЫП
кц
ВЫП
КОНЕЦ
V (1) = Х(0/х/2+ 8Ж (Х(1)]
Печатать V
Здесь таблица 100 исходных значений функции (Хь
Х2, ..., Хюо) и таблица 100 вычисленных значений функ-
ции (У1, У2, —> У1оо) описаны с помощью оператора
МАССИВ Х(100), Т(100). В программе X и V - имена со-
ответствующих массивов, элементы которых веществен-
ного типа, числа в скобках — границы массивов. Послед-
ний оператор ВЫП организует печать 100 значений функ-
ции К(/) = 2 + мп [Х(0]. Переменные Х(1) и У(/),
1=1 — 100 — индексные переменные, принадлежащие со-
ответственно массивам Х( 100) иТ(100).
Этапы решения задач на ЭВМ. Выделим основные этапы ре-
шения задач с использованием микроЭВМ.
Постановка задачи. Она является исходным пунк-
том при решении любой задачи. Задача начинается с определения
исходных данных и математического представления их в виде
некоторых зависимостей (формул). Обычно объект исследова-
ния описывается в математических терминах, что позволяет
свести изучение реального объекта к изучению его математичес-
кого аналога (иначе говоря, к изучению математической моде-
ли) . Степень соответствия модели реальному объекту проверя-
ется практикой, опытом. На данном этапе четко задается цель
решения, указывается, что должно быть получено в результате
решения задачи.
Построение алгоритма. После постановки задачи
начинается поиск метода ее решения на ЭВМ - строится алго-
ритм, удовлетворяющий соответствующим требованиям (см.
§ 1.1). Полученный алгоритм записывается в виде схемы и на
алгоритмическом языке, доступном исполнению на ЭВМ (см.
§ 1.2-1.4).
Реализация алгоритма с помощью ЭВМ.
Сюда также включаются отладка и тестирование программ.
Завершается этап получением результата.
Анализ полученных результатов. На этом
завершающем этапе оценивается точность полученных результа-
тов и их соответствие поставленным целям.
вопросы для САМОКОНТРОЛЯ
1.1. Приведите примеры алгоритмов, с которыми вы встречаетесь на
производстве. Удовлетворяют ли они требованиям, предъявляемым к
алгоритмам?
1.2. Перечислите типы алгоритмов и нарисуйте их схемы.
1.3. Составьте схему алгоритма вычисления корней уравнения
Ах2 + Вх + С = О' при А * 0.
1.4. Чем отличаются арифметические циклы от итерационных?
1.5. Каково назначение алгоритмических языков? Что необходимо
для использования языков высокого уровня на ЭВМ?
1.6. Какие типы величин используются в алгоритмических языках?
Приведите примеры.
1.7. Приведите примеры вещественных чисел с фиксированной точ-
кой, с плавающей точкой. Почему удобно использовать числа с плавающей
точкой для внутреннего представления чисел на ЭВМ?
1.8. Выделите основные этапы решения задач с использованием ЭВМ.
Г лава 2
СОСТАВЛЕНИЕ ПРИКЛАДНЫХ ПРОГРАММ
2.1. ПРИНЦИПЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ
Создание больших сложных программ для решения типовых
задач в различных отраслях народного хозяйства требует от про-
граммистов значительных трудовых затрат. Для повышения
эффективности составления таких программ применяется
структурный подход к программированию, позволя-
ющий создавать крупные программы практически без ошибок
и в запланированные сроки. Цель структурного подхода —
так построить программы, чтобы их можно было использовать
и изменять без участия авторов. Это способствует уменьшению
затрат на создание и дальнейшее использование программ при
эксплуатации.
Структурный подход к программированию состоит из трех
частей: 1) нисходящей разработки; 2) структурного програм-
мирования (кодирования); 3) сквозного контроля (тести-
рования).
Нисходящая разработка. При нисходящей разработке проек-
тирование и программирование ведутся по методу «сверху
вниз». Этот метод предусматривает сначала определение задачи
в общих чертах, а затем постепенное уточнение ее структуры
путем пошагового внесения мелких деталей. Таким образом,
исходная задача разбивается на ряд более простых подзадач.
Каждой подзадаче соответствует свой независимый от любой
другой подзадачи программный модуль, представляющий собой
функционально независимую часть программы — набор несколь-
ких операторов программы. При нисходящей разработке осуще-
ствляется последовательная детализация проекта: от модулей
верхнего уровня к модулям нижнего уровня. Для каждого
модуля определяют алгоритм решения задачи, области допусти-
мых и возможных выходных значений переменных.
Обычно модуль реализует одну функцию, а затем возвраща-
ет управление вызвавшему его модулю. Не разрешается завер-
шать выполнение всей программы в вызываемом модуле, реше-
ние о ее выполнении принимается только вызывающим модулем.
Основные требования к программному модулю: наличие
только одного входа и одного выхода; ограниченные размеры
модуля.
Модуль верхнего уровня оформляется как главная процеду-
ра (основная программа). Переменные, общие для всех моду-
27
лей, являются частью главной процедуры. Локальные перемен-
ные используются только своими модулями.
На исходный текст программы и другие наиболее важные его
разделы составляется комментарий. Он должен быть подроб-
ным, но не отвлекать внимание от содержания самой программы.
Для каждого раздела он должен начинаться с одной и той же
позиции, продолжение записывается на последующих строках
с той же позиции.
При записи операторов, содержащих списки переменных,
рекомендуется каждый элемент списка помещать в новой стро-
ке также с одной и той же позиции. Этим обеспечивается нагляд-
ность записи. В такой оператор легко вносить поправки, не пере-
бивая его целиком на печатающем устройстве.
Исходный текст программы следует четко разделить на
блоки (рис. 2.1).
Блок I. Перед основной программой, каждой подпро-
граммой или модулем помещается паспорт. Он содержит: крат-
кое описание назначения модуля: способ обращения к модулю;
характер входных и выходных данных; перечисление других
подпрограмм, требуемых для его исполнения; других исполь-
зуемых переменных, имя автора, дату первоначальной версии
и дату внесения последнего изменения в программу; краткое
описание работы модуля.
Блок //. Описание данных — ключ к пониманию програм-
мы, поэтому смысл каждой переменной должен быть пояснен.
В этом блоке необходимо строго соблюдать рекомендуемую
ГОСТом на БСПД последовательность расположения операторов
в программе.
Рис. 2.1. Схема содер-
жания текста програм-
мы
Рис. 2.2. Структура
типа «следование»
Блок III. К этому блоку относятся операторы ввода-
вывода начальных данных. Все начальные данные после ввода в
память машины должны быть распечатаны, чтобы можно было
убедиться в их правильности.
Блок IV. Здесь размещен алгоритм решения задачи, не
требующий дополнительных пояснений.
Блок V- Обработка результатов всегда сопровождается
пояснительным текстом, а не просто наименованиями перемен-
ных. Печатаются не только окончательные результаты, но и про-
межуточные. Результаты можно оформлять в виде таблиц.
Структурное программирование. Это — метод написания
хорошо структурированных программ произвольного размера
и сложности на основе основных управляющих структур (базо-
вых) . К ним относятся следование, развилка и цикл.
Структура типа «с л ед о в а н и е». В такой струк-
туре действия выполняются друг за другом (рис. 2.2). Действия,
выполняемые в А и В, могут быть заданы одним или нескольки-
ми операторами, необходимыми для вычислений.
Структура типа «развилка». Такая структура
предназначена для действия ЕСЛИ... ТО... ИНАЧЕ (см. пример
1.8 и рис. 1.7). Здесь осуществляется выбор между «Серией ша-
гов 1» и «Серией шагов 2». Каждый из путей ведет к общей
точке слияния. Случаи, когда «Серия шагов 2» не содержит ни
одного действия, представлены на рис. 2.3, а, б.
Структура типа «цикл» (см. рис. 1 Л). В струк-
туре используется повторное выполнение действий, необходимое
для большинства вычислительных программ (см. примеры
1.10 и 1.11). Здесь также один вход и один выход.
Основные управляющие структуры могут комбинировать-
ся друг с другом, как требует программа. Фактически любой
Рис. 2.3. Частные случаи структуры типа «развилка»
Один вход
роверить
/слови
Выполнить С: Выполнить О
Один выход
Рис. 2.4. Пример комбинации основных
управляющих структур
прямоугольник на схеме
можно заменить одной из
основных управляющих
структур. На рис. 2.4 штри-
ховкой показана структура
типа «развилка», заменяю-
щая прямоугольник.
Основные управляю-
щие структуры облегчают
понимание программы и ее
тестирование, поскольку
весь поток управления в
программе направлен свер-
ху вниз от структуры к
структуре.
Тестирование. Процесс
поиска ошибок в програм-
ме, планируемый до начала
программирования, назы-
вается тестированием или сквозным контролем. Целесообразно
проводить тестирование по методу «сверху вниз», стремясь
к минимальному числу контрольных примеров.
Сначала определяют цели тестирования. Ими могут быть
проверки: работы программы в диапазоне заданных входных
значений; работы программы при минимальных и максималь-
ных значениях входных данных; реакции программы на недо-
пустимые входные данные; взаимодействия между модулями
программы, состоящей из нескольких модулей.
Если программа является составной частью другой про-
граммы, то проверяется передача входных данных между ними.
Иногда это взаимодействие проверить невозможно, ибо не раз-
работана программа, с которой надо взаимодействовать. Тогда
проводится автономное тестирование программ, имитирующих
работу их взаимодействия. Разрабатываются модули, имитиру-
Рис. 2.5. Схема автономного тестирования
ющие вызывающую и вызываемые программы. Общая схема
автономного тестирования приведена на рис; 25.
Тестирование считается законченным, когда осуществлены
все требуемые проверки на соответствие программы целям
ее разработки и все найденные ошибки устранены на этапе от-
ладки с использованием специальных прикладных программ -
отладчиков.
2.2. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРОГРАММИРОВАНИЯ
В качестве инструментального средства программирования
могут быть использованы трансляторы (компиляторы и интер-
претаторы) с алгоритмических языков высокого уровня, систе-
мы отладки, технологические комплексы программирования.
Компилятор преобразует программу, написанную на языке
высокого уровня, в эквивалентную рабочую программу в ма-
шинных кодах, которая после полного преобразования запуска-
ется в работу. Интерпрератор осуществляет независимую транс-
ляцию каждого отдельного оператора исходной программы и
сразу же его выполняет. Интерпретирующая программа нахо-
дится в оперативной памяти в течение всего времени выполне-
ния программы пользователя.
На начальных стадиях развития микроЭВМ, когда они имели
малые ресурсы по объему оперативной памяти и составу перифе-
рийного оборудования, для разработки их программ использо-
вались большие вычислительные машины, из которых работа-
ли так называемые кросс-системы (ассемблеры, компиляторы).
С помощью кросс-системы программист полностью готовил
программу, отлаживал ее. Разработчик писал программу в тер-
минах команд микроЭВМ, а кросссистема имитировала их вы-
полнение на ЭВМ, проверяя правильность решения задачи. Ре-
зультатом работы кросс-системы является программа, полно-
стью готовая для выполнения на микроЭВМ. Такой подход
обладал рядом неудобств, главным из которых являлось необ-
ходимое наличие большой машины с работающей кросс-систе-
мой подготовки программ для микроЭВМ.
По мере развития микроЭВМ появилась возможность весь
процесс разработки новых программ проводить непосредственно
на той микроЭВМ, где эти программы должны выполняться.
Появление инструментальных операционных систем (см. кн. 2
данной серии) сделало процесс разработки программ достаточно
удобным и легким для программиста.
Этапы подготовки программы для микроЭВМ (рис. 2.6).
Различают следующие этапы: редактирование, трансляцию, ком-
поновку и выполнение программы.
Редактирование
Т рансляция
Компоновка
Выполнение
Рис. 2.6. Этапы подготовки программ для микроЭВМ
Редактирование. После составления алгоритма
решения задачи выбирается наиболее подходящий язык высо-
кого уровня. Затем текст программы заносится в микроЭВМ.
С этой целью используется специальная программа — экранный
редактор текста, правила работы с которым см. в гл. 3. В ре-
зультате работы пользователя с редактором текста создается
текст программы. Хранится программа на внешнем запомина-
ющем устройстве — обычно гибкой дискете.
Любая микроЭВМ непосредственно понимает и может вы-
полнять только коды из собственного набора команд. Поэтому
необходима дальнейшая обработка текста, чтобы сделать его
понятным машине.
Трансляция. На данном этапе специальная программа,,
называемая транслятором с данного языка, переводит програм-
му из текстового вида в промежуточный машинный (объект-
ный) код. Результаты работы транслятора можно посмотреть
на терминале или распечатать с диагностикой синтаксических
ошибок. Для их исправления следует вернуться на этап редакти-
рования и с помощью экранного редактора внести изменения
в текст программы.
32
Объектный код все еще не является программой, готовой
к выполнению. Дополнительные модули, необходимые для ее
выполнения, собраны в отдельный набор, называемый стандарт-
ной библиотекой. Обычно в ней хранятся программы вычисле-
ния арифметических и тригонометрических функций, обработки
текстовых строк и ввода-вывода данных на периферийные
устройства.
Компоновка. На этом этапе происходит сбор всех не-
обходимых программ в единый загрузочный модуль
(программу, готовую для выполнения на микроЭВМ) с по-
мощью специальной программы — компоновщика. Результатом
работы компоновщика является модуль, полностью готовый
для выполнения на данной микроЭВМ. Хранится он в виде от-
дельного файла (набор данных) и запускается на выполне-
ние с помощью специальной команды операционной системы.
Выполнение. Если в результате выполнения програм-
мы и анализа результатов ее работы на текстовых наборах дан-
ных обнаружены ошибки, то весь процесс разработки повторяет-
ся с этапа редактирования.
При разработке программ широко применяются как от-
ладочные средства языков (например, оператор О в языке
ФОРТРАН), так и специальные программы — отладчики. Отлад-
чики могут работать с ячейками памяти, занимаемыми програм-
мой, просматривать и изменять содержимое ячеек, выполнять
программу в пошаговом режиме, устанавливать в различных
частях программы точки останова. Они могут работать и непо-
средственно с программой, написанной на языке высокого уров-
ня. Особенность отладчиков для программ на языках высокого
уровня — возможность работы в терминах языка, на котором
написаны отлаживаемые программы (можно ссылаться на про-
граммные модули, операторы и переменные, а не на адреса
ячеек памяти микроЭВМ). Такие отладчики позволяют устанав-
ливать точки останова в любом месте программы, выполнять
программу оператор за оператором, просматривать и (или) из-
менять значения переменных и элементов массивов, объединять
последовательности команд отладчика. Обычно отладчики при-
соединяют к программе на этапе компоновки; вместе с про-
граммой они образуют единый загрузочный модуль.
2.3. СТРУКТУРА И ОСОБЕННОСТИ ПРИМЕНЕНИЯ
ПРИКЛАДНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Непосредственная обработка исходных данных в задачах
пользователей осуществляется на базе пакетов прикладных
программ (ППП). Это специальным образом организованные
3—332 33
программные комплексы, ориентированные на определенную
операционную систему, определенный класс ЭВМ. Пакет при-
кладных программ разрабатывается в том случае, когда какая-
то задача довольно часто решается на ЭВМ и становится типовой.
Здесь нет необходимости каждому пользователю разрабатывать
свое программное обеспечение. Достаточно один раз разрабо-
тать его в виде ППП и в нем по возможности учесть специфику
отдельных пользователей. Например, частично ППП можно раз-
делить по сферам применения и классам решаемых задач на сле-
дующие виды: инструментальные средства программирования;
средства обработки текстовой информации и документов; сред-
ства поддержки баз данных: проведение научно-технических
расчетов.
Расширение возможностей использования микроЭВМ приве-
ло к появлению новых ППП, например, для решения графичес-
ких задач, передашь данных между отдельными микроЭВМ не-
посредственно по каналам связи.
При использовании ППП задаются управляющие операторы
входного языка и параметры, описывающие исходную информа-
цию конкретно решаемой задачи.
К структуре ППП предъявляется ряд требований. Обычно
пакеты программ имеют модульную структуру. Каждый модуль
имеет собственное имя, с помощью которого он может быть
вызван другим модулем программы, и собственный набор дан-
ных. Это требование позволяет расширить содержание пакета на
основе вновь разработанных алгоритмов, осуществить замену
отдельных модулей и производить дальнейшее пополнение
пакетов.
Входной язык пакета должен быть доступным, учитывать
исходные языки операционных систем и специфику решаемого
класса задач. Так как пакеты функционируют под управлением
операционных систем, то они должны удовлетворять основным
требованиям, предъявляемым к этим системам.
Документация ППП должна содержать описания и руковод-
ства для эксплуатации, редактирования и расширения пакета.
Целесообразно в каждой системе программ выделить веду-
щую программу (диспетчер), управляющую всеми модулями
ППП. Ведущая программа выполняет только функции управле-
ния системой. Сами программы, входящие в систему, не должны
иметь большой объем и должны получать и передавать управле-
ние ведущей программе.
Пакет прикладных программ является простым по структу-
ре, если он состоит из диспетчера и п модулей пакетов типа биб-
лиотеки стандартных программ (рис. 2.7). Пакет сложной
структуры может включать в себя ведущую программу, трансля-
34
тор с входного языка, набор программных модулей для реше-
ния определенного класса задач (тело пакета) и набор обслужи-
вающих программ (рис. 2.8). В некоторых ППП транслятор
отсутствует.
Набор обслуживающих программ используют для удоб-
ства и диагностики ошибок, а также для генерации и редактиро-
вания библиотеки стандартных программ.
Этапы разработки ППП. Процесс создания ППП есть сово-
купность взаимосвязанных этапов: предварительные исследова-
ния составления математических моделей изучаемых процессов,
рабочих алгоритмов; комплексная отладка программ и их внед-
рение.
На этапе предварительных исследований
проводится сбор и изучение материалов. В конце этапа создается
техническое задание на разработку пакета.
На этапе составления математических мо-
делей изучаемых процессов осуществляется поста-
новка задачи, включающая построение математического описа-
ния, выделение аргументов и результатов.
На этапе составления рабочих алгоритмов
проводится математическая запись шагов, т.е. составляется сово-
купность рабочих алгоритмов. Шаги записываются в виде схемы;
после чего утверждается алгоритмический язык пакета.
На этапе комплексной отладки программ
программируются модули пакета, включающие разработанные
алгоритмы, отлаживаются программы и оформляются соответ-
ствующие документы на полученные программы. На данном
этапе следят за тем, чтобы изменения, внесенные в один модуль,
как можно меньше сказывались на остальных модулях, уточня-
3* 35
ют логико-функциональную структуру пакета и составляют
полный комплект документации на весь ППП.
Из перечисленных этапов разработки ППП можно выделить
основные шаги, присущие всем этапам разработки программно-
го обеспечения: разработка требований, проектирование и тести-
рование программ.
Разработка требований. Этот шаг начинается с изучения про-
блемы, которую нужно решить с использованием ППП. Иссле-
дуется качественное описание создаваемой программной систе-
мы, устанавливаются закономерности, которым она подчиняет-
ся. Выявляется наличие, полнота и точность информации, необ-
ходимой для обеспечения работы системы. Определяются сроки
и стоимость проектирования. В итоге формируется перечень
решаемых задач. Описание каждой задачи должно содержать
сведения о переменных, являющихся исходными данными,
с указанием их типов и размерности.
Нечеткость требований к разрабатываемому программному
обеспечению является источником ошибок. Например, если раз-
работчики программ и их пользователи по-разному понимают
требования к исходным цифровым данным, то и проведенные
вычисления не дадут в конечном итоге желаемого результата.
Проектирование программ. Этот шаг является одним из
самых трудоемких. Здесь строится математическая модель
каждой рассмотренной задачи, устанавливается взаимно одно-
значное соответствие между качественным описанием и сово-
купностью переменных, входящих в математическую модель,
определяется алгоритм решения задач.
Разработчики обычно придерживаются принципа структур-
ного проектирования программ. После определения функций
каждого модуля выявляются связи между модулями в единой
программной системе. Наиболее эффективно независимость
модуля обеспечивается за счет увеличения внутренних связей
между переменными модуля и уменьшения связей с другими
модулями системы.
Если программное обеспечение строится на основе имею-
щейся базы данных, то решение большинства вопросов, связан-
ных с организацией данных пакета, упрощается, так как они
определяются структурой базы. Поэтому в этих условиях не тре-
буется описание пакета данных и разработка языковых средств
описания данных.
Этап математического описания перечня задач считается ло-
гически завершенным, когда установлены все связи между мо-
делями, все алгоритмы классифицированы и любую задачу пе-
речня можно алгоритмически решить, если будут заданы исход-
ные данные. Проектирование завершается трансляцией про-
36
грамм в машинный код с учетом синтаксиса и семантики выб-
ранного языка.
Тестирование программ. Оно осуществляется на контроль-
ных примерах. Сначала проверяют работу каждого модуля и
устраняют ошибки, затем осуществляют системны^ испытания
программы как единого целого и общий контроль взаимо-
действий между отдельными модулями программного обеспе-
чения. В целом составление контрольных тестов и процедур
тестовых проверок является трудоемкой операцией. Поэтому
в качестве тестовых примеров удобно использовать те задачи,
которые ранее решались пользователем, и имеется опыт их реа-
лизации.
Из рассмотрения этапов разработки прикладного програм-
много обеспечения ясно, что программный продукт должен быть
хорошо документирован. Структура документации и ее содер-
жание могут быть определены техническими условиями или
стандартами предприятий.
В связи с этим можно выделить следующие документы про-
граммного обеспечения: «Описание применения», «Руководство
пользователя», «Руководство системного программиста».
Документ «Описание применения» предназначен для пользо-
вателей и персонала, обслуживающего работу вычислительных
средств. В нем отражаются цели и задачи создания ППП, сфера
применения ППП и состав вычислительных средств для его реа-
лизации.
«Руководство пользователя» содержит сведения о принци-
пах работы программы и подробную инструкцию по ее эксплуа-
тации. Например, в нем описываются типы исходных данных
и правила их описания с использованием имеющихся языковых
средств.
«Руководство системного программиста» содержит сведе-
ния о привязке ППП к имеющейся микроЭВМ с набором пери-
ферийных устройств.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
2.1. Какова цель структурного подхода к программированию? Выде-
лите основные части структурного подхода.
2.2. Выделите требования и шаги оформления текста програм-
мы для понимания логики работы программных модулей и процесса
отладки.
2.3. В чем состоит тестирование программ? Как лучше осуществить
этот процесс?
2.4. Какие инструментальные средства программирования вам из-
вестны?
2.5. Выделите основные этапы процесса подготовки программы для
реализации на микроЭВМ.
2.6. В каких случаях разрабатываются ППП? Какова их структура?
2.7. Выделите основные шаги этапов разработки ППП. Оцените
трудоемкость этапов.
Г лава 3
ОБРАБОТКА ТЕКСТОВОЙ
И ТАБЛИЧНОЙ ИНФОРМАЦИИ
3.1. ОБЩИЕ СВЕДЕНИЯ
Чтобы выполнить на ЭВМ работу, связанную с решением за-
дачи пользователя, необходимо оформить текст программы и
передать его машине. Вообще для работы с любыми текстами
(не только с текстом программы, но и с текстом письма или
документа) используют прикладные программы. Они позволя-
ют подготавливать и редактировать текст, оформлять тексты
документов в формате, удобном для чтения, и структурировать
их на разделы в соответствии с требованиями ЕСПД.
База данных представляет собой совокупность данных, необ-
ходимых для решения прикладных задач пользователей и хра-
нимых в организованном порядке в памяти ЭВМ.
Для хранения данных используются гибкие магнитные
диски (ГМД).
Управление базой данных осуществляется программно си-
стемой управления (СУБД). Эта система, разработанная Киев-
ским институтом кибернетики, может использоваться в автома-
тизированных информационно-справочных системах сбора, хра-
нения и обработки данных и позволяет обслуживать одну или
несколько баз данных. Существует два уровня взаимодействия
с пользователем: 1) диалоговый экранный режим, рассчитан-
ный на пользователя-непрограммиста; 2) программный доступ
к СУБД.
Диалоговый экранный режим обеспечивает
наглядный и оперативный доступ к базе данных посредством
вывода на экран ее содержимого в виде таблицы. Програм-
мный доступ дает возможность работать с базой данных
(создавать, заполнять, изменять базу данных, извлекать инфор-
мацию из нее), используя программы, написанные на языке
ПАСКАЛЬ. Программный доступ используется при создании
специализированных систем обработки данных.
Рассмотрим более подробно указанные программные сред-
ства, используемые при работе на микроЭВМ.
3.2. ПОДГОТОВКА ТЕКСТОВ ПРОГРАММ
ДЛЯ МИКРОЭВМ
Стандартный набор команд операционной системы позволя-
ет переписывать файлы с одного устройства на другое, про-
сматривать их на экране дисплея, распечатывать на печатающем
устройстве, изменять имя файла или вообще удалять его из си-
стемы. При этом подразумевается, что файлы были заранее
созданы и введены в систему.
Чтобы создать текстовый файл в микроЭВМ, необходимо
набрать его с помощью клавиатуры дисплея. С этой целью при-
меняется специальная программа — редактор текстов. Она име-
ется в любой операционной системе микроЭВМ.
Освоив работу с редактором, можно использовать микро-
ЭВМ как пишущую машинку с памятью. Редактор позволяет
набирать и неограниченно корректировать текстовые докумен-
ты, хранить в виде файлов бланки писем, которые после исправ-
ления можно выводить на печатающее устройство. К настоящему
времени создано много различных редакторов текста, которые
делятся на две группы: 1) редакторы общего назначения;
2) экранные редакторы.
Редакторы общего назначения. Они не зависят от типа тер-
минала. Работать с ними (например, с редактором ЕЫТ) не
очень удобно. Все изменения в текстовом файле проводятся
в области оперативной памяти, называемой буфером редактора,
с помощью команд, подаваемых с клавиатуры. Чтобы посмот-
реть на измененный текст, надо набирать специальные команды.
Экранные редакторы. Они настраиваются на определенный
тип терминала и дают пользователям различную степень удоб-
ства в работе (например, редакторы 8СКЕЕК, 8ЕВ, Г340, ТЕО,
ТЕСО, БОК, К52). Достоинство экранных редакторов состоит в
том, что они непрерывно отображают на экране терминала теку-
щее состояние текста и все проводимые в нем изменения. Рас-
смотрим достаточно широко распространенный экранный редак-
тор К52, который может работать с операционными системами
ОС ДВК, РАФОС, ФОДОС на микроЭВМ типа ДВК, «Электрони-
ка-60», оснащенных дисплеем 15-ИЭ-00-013.
Любой из редакторов работает как прикладная программа,
поэтому для запуска следует набрать команду операционной
системы (запустить программу на выполнение — КЦЫ):
КШПК:К52 <ВК>*
* Здесь и далее символ <ВК> обозначает нажатие клавиши «возврат
каретки». Подробно команды операционной системы и правила записи
имен файлов приведены в кн. 2 данной серии.
После запуска редактор находится в командном режиме,
высвечивая на экране звездочку ♦. В этом режиме редактор ожи-
дает ввода командной строки, в которой указываются названия
входного и выходного файлов. Если создается новый файл, то
в конце необходимо указать ключ/С(СКЕАТЕ) - создать. Напри-
мер, по команде ♦ В.В = А.Ь8Т<В1О редактируется файл
ПК : А.Ь8Т. Отредактированная версия файла будет записана
в файл. При этом сохранится старый файл. По команде
♦ МХ2 : А А <ВК> будет редактироваться файл МХ2 : А. А.
После редактирования он будет иметь имя МХ2 : А.А, а старая
версия запомнится с именем МХ2 : А.ВАК. По команде
♦ МХО : 2АРЛЭОС/С на устройстве МХО: создается новый файл
МХО : 2АР.ООС.
Экранный редактор оперирует с текстовыми файлами. С по-
мощью перечисленных команд пользователь открывает входной
файл, который надо отредактировать, вносит в него необходи-
мые изменения и сохраняет отредактированный или вновь соз-
данный текст в выходном файле. В процессе работы пользова-
тель может включить в редактируемый текст содержимое дру-
гих текстовых файлов (дополнительные входные файлы), а
также записывать часть информации в другие файлы (дополни-
тельные выходные файлы).
В режиме редактирования с помощью функций и команд
редактора проводятся все необходимые изменения в редакти-
руемом или создаваемом тексте. При этом все изменения текста
автоматически отображаются на экране терминала. Для ввода
функций и команд редактора используются клавиши дополни-
тельной клавиатуры (рис. 3.1).
Программа использует экран терминала в качестве «окна»
в редактируемый файл, показывая 24 строки текста. В процессе
+
•СТРАНИЦА! ! 7 ! ! КОМАНДА! ДАЛЕЕ 8 поиск !СТИРОЛОВ! ! 9 ! !ВОСТСЛОВ!
! ВПЕРЕД ! 4 ! КОНЕЦ ! ! I НАЗАД 5 НАЧАЛО !СТИРЗНАК! ! 6 I •ВОСТЗНАК!
I СЛОВО ! 1 ! СМЕРЕГ !КОНСТРОК!ОБНОВИТЬ! ! 2 ! 3 I I СТИРКС ! БУФЕР I
I НАЧАЛО СТРОКИ ! 0 । вставить строка + I 1 I ВЫБОР ! » 1 СБРОС I +
!«*«*****! А I ввод I
!«***»***! ! I \ I I
!***«*»**!ЗАМЕНИТЬ! ВМЕСТО I
I <---- !•**«***«! -----> I
! !****»*»*! I
!ДОБАВИТЬ!*»»»»♦«*! СПЕЦ I
!**«**»**! ! !***»***«!
!*»»*•*»•! V I***«*«**!
!•*•«»***! АБЗАЦ !•*»••»«•!
! ===! I 1СТИРСТ А1
! I ! У ! ! !
I СЛУЖ V ! СПРАВ . 1ВОСТРК "I
Рис. 3.1. Дополнительная клавиатура терминала
работы пользователь может сдвигать текст вверх и вниз, получая
тем самым доступ к его различным фрагментам. Используя
функции и команды редактора, пользователь может вносить
изменения в файл, стирать текст и добавлять новый. После каж-
дой замены редактор немедленно отображает на экран обновлен-
ный текст или выдает сообщение ХУОККГМС (работаю), если
операция еще не закончилась.
На экране терминала всегда присутствует мерцающий сим-
вол — курсор, который указывает:
место в файле, в которое редактор вставит символ, если
пользователь нажмет соответствующую клавишу на клавиатуре;
место, откуда начинается выполнение других функций или
команд редактора, например стирания.
При перемещении курсора вперед текст на экране сдвигает-
ся вверх, при перемещении назад — вниз. Редактор обычно рас-
полагает курсор на 16-й строке экрана, так что пользователю
видны строки и выше, и ниже курсора; исключение составляют
случаи, когда курсор находится вблизи начала или конца файла.
Для обозначения конца файла используется специальный
символ <А>. При вставке текста этот символ смещается вправо
и вниз; при создании нового файла он появляется в начале пу-
стого экрана.
В необходимых случаях редактор выдает в верхней части эк-
рана сообщения—подсказки, запрашивая команду «СОММАЛВ»,
образец для поиска «МОВЕЬ» и т. д. Если команда или функция
почему-либо не может быть выполнена или нормальная ее обра-
ботка нарушается, редактор привлекает внимание пользователя
звуковым сигналом. По нажатию клавиши <справ> (рис. 3.1)
выдается справочная информация о функциях и командах ре-
дактора. Продолжение справочной информации осуществляется
при повторном нажатии клавиши <справ>.
Функции и команды, выполняемые экранным редактором.
Функция — это операция, для выполнения которой пользователю
достаточно нажать одну или две клавиши на дополнительной
клавиатуре (ДК) терминала (см. рис. 2.4). Заштрихованные
клавиши на ДК в редакторе не используются. Команда — это
операция, для выполнения которой необходимы следующие
действия:
1) выполнить функцию <команда>;
2) ввести имя команды (полное или сокращенное);
3) выполнить функцию <ввод>.
Каждая клавиша ДК, кроме <служ> и <справ>, может вы-
полнять две функции — простую и сложную. Для выполнения
сложной функции требуется предварительно нажать клавишу
<служ>. Простые функции изображены в верхней части клавиш,
сложные — в нижней. Повторение функции осуществляется сле-
дующим образом: <служ> И <функция> (И — целое десятичное
число от 1 до 65535).
При вводе числа повторений редактор выдает подсказку
«КЕРЕАТ» (повторить). Поскольку вставка символов представ-
ляет собой функцию редактора по умолчанию, в текст таким же
способом многократно вставляют нужные символы. Например,
в результате последовательного нажатия клавиш <служ> 5 <♦>
в текст вставляется строка символов
Функции и команды экранного редактора даны в конце кни-
ги в приложениях 1—3. Перечисленные функции и команды
позволяют работать с текстом так, как будто на дисплее изобра-
жен лист бумаги, а в руках у пользователя есть карандаш, ла-
стик, ножницы и клей. Нажимая на функциональные клавиши,
можно удалять или заменять в тексте символы, слова, строки
и целые фрагменты. Рассмотрим некоторые способы работы
с экранным редактором.
Управление курсором, исправление отдельных символов.
Любой отображаемый символ вводится в то место экрана дис-
плея, у которого расположен курсор. После ввода очередного
символа курсор автоматически сдвигается на одну позицию
влево. Нажатием клавиши <ВК> редактору указывается конец
очередной строки. При этом курсор переходит на экране в пер-
вую позицию следующей строки. Курсор можно перемещать по
экрану в произвольное место, нажимая на клавиши с рисунками
стрелок: стрелка вправо (влево) передвинет курсор на одну по-
зицию вправо (влево), а стрелка вниз (вверх) передвинет курсор
на одну строку вниз (вверх) соответственно.
После установления курсора в нужное место экрана можно
ввести любой символ, нажимая соответствующую клавишу.
При этом строка справа от курсора сама раздвинется вправо.
Символ около курсора можно удалить. Если нажать клавишу
<6> на дополнительной цифровой клавиатуре (см. рис. 3.1),
то сотрется символ, стоящий под курсором, и строка сожмет-
ся влево. Удаленный таким образом символ можно вернуть
на место в тексте, если нажать клавиши <служ> <6>.
Клавиша <ЗБ> (забой) удаляет символ, стоящий слева от
курсора.
Исправление слов в тексте. Аналогично работе с отдельными
символами редактор позволяет работать с целыми словами.
Нажимая клавишу <1> на дополнительной цифровой клавиату-
ре, установим курсор в начало следующего слова текста. В зави-
симости от выбранного направления просмотра будем передви-
гаться или вперед по тексту, если нажмем перед этим клавишу
42
<4>, или назад от конца к началу, если нажмем клавишу <5>.
Слово или часть слова, стоящее справа от курсора, можно сте-
реть, нажимая клавишу <9>, а последовательное нажатие кла-
виш <служ> <9> восстанавливает стертое слово.
Удаление — вставка строк и фрагментов текста. Часто тре-
буется обрабатывать достаточно большие фрагменты текста.
Нажимая клавишу <0>, в зависимости от направления просмот-
ра курсор передвинется в начало следующей или предыдущей
строки текста. Стереть строку, находящуюся справа от курсора,
можно, нажав клавишу <стрелка вверх с двумя чертами>.
За один раз можно стереть произвольное число строк, используя
функцию повтора. Для этого нажимается клавиша <служ>, на-
бирается число стираемых строк и нажимается клавиша <стрел-
ка вверх с двумя чертами>. Редактор сожмет текст на указанное
число строк. Последнюю удаленную строку всегда можно восста-
новить последовательным нажатием клавиш <служ> и <стрелка
вверх с двумя чертами>.
Перестановка фрагмента текста, содержащего более одной
строки, выполняется следующим образом. Курсор подводится
к началу фрагмента и нажимается клавиша <,> (выбор). Затем
курсор устанавливается в конец фрагмента и нажимается клави-
ша <3> (обновить). Выбранный фрагмент текста исчезнет с эк-
рана, редактор поместит его во внутреннем буфере. Теперь
этот фрагмент можно вставить в любом месте редактируе-
мого файла. Для этого достаточно установить у этого места
курсор и последовательно нажать клавиши <служ> и <3>
(буфер).
Просмотр текста и поиск по образцу. Если текстовый файл
достаточно длинный, то крайне неудобно просматривать его,
построчно опуская курсор вниз. В редакторе предусмотрены
команды, позволяющие сделать это намного быстрее.
Одной из команд можно установить длину страницы текста.
Например, чтобы сделать ее равной 24 строкам (столько можно
разместить одновременно на терминале), надо выполнить
команду
<СЛУЖ> <7> ЗЕТ РАСЕ 24 <ВВОД>
После нажатия клавиши <7> (страница) экран будет полно-
стью обновлен очередным текстом.
Чтобы сразу найти нужное слово в тексте, следует нажать
клавиши <служ> и <8>. Редактор запросит модель поиска.
В качестве модели необходимо набрать на клавиатуре нужное
слово и нажать клавишу <8>. После очередного нажатия этой
клавиши редактор будет искать следующее появление слова
в тексте и остановится при завершении поиска.
Работа с командами редактора. Дия удобства пользователя
помимо работы с дополнительной функциональной клавиатурой
в редакторе можно работать с командами.
Команда О Р Е И I М Р II Т открывает дополнитель-
ный входной файл. Одновременно можно открыть только один
дополнительный входной файл. Если пользователь повторно
подает команду ОРЕМ ПЧР11Т, указывая новый файл, редактор
автоматически закрывает старый. Входные файлы автоматичес-
ки закрываются при завершении сеанса редактирования (коман-
ды ЕХ1Т и О1ЛТ).
Команда ОРЕМ О II Т Р1) Т открывает дополнитель-
ный выходной файл. Одновременно можно открыть только один
дополнительный выходной файл. Открывая новый файл, редак-
тор автоматически закрывает старый. Если на выходном устрой-
стве уже имеется файл с таким же именем, как и у дополнитель-
ного выходного файла, редактор выдает сообщение
ДОП. ВЫХОДНОЙ ФАЙЛ УЖЕ ЕСТЬ - ЗАМЕНИТЬ (V, М)?
Пользователь может отменить команду или продолжить
сеанс редактирования; в последнем случае редактор стирает
имеющийся файл, заменяя его новым.
Команды С Ь О 8 Е иЕХ1Т закрывают дополнитель-
ный выходной файл.
Команда Р11КСЕ очищает открытый дополнительный
выходной файл и отменяет команду ОРЕМ О1ТТРЦТ. Новый
файл можно открыть по команде ОРЕМ О11ТР11Т.
Команда V К I Т Е с различными переключателями
(ЗЕЬЕСТ, КЕ8Т, М РАСЕ8, М ЫМЕ8) записывает текст в допол-
нительный выходной файл, ранее открытый по команде ОРЕМ
О1ЛГРОТ. Переключатели выполняют следующие функции:
ЗЕЬЕСТ - копирует интервал выбора. Положение курсора
не изменяется;
КЕ8Т — копирует нижнюю часть файла — весь текст правее
и ниже курсора. Курсор перемещается в конец файла;
IV/РАСЕ8 - копирует указанное число страниц;
Ш/ЬШЕЗ - копирует указанное количество строк. Курсор
перемещается к первому символу, не попавшему в дополнитель-
ный выходной файл. Редактор допускает значение М от 1 до
65535.
Команда 1МСЫ1ПЕ дает возможность копировать
текст в редактируемый файл из дополнительного входного
файла, ранее открытого по команде ОРЕМ 1МРОТ. По заверше-
нии копирования курсор размещается справа от последнего
скопированного символа. В этой команде можно использовать
переключатели, описанные выше.
44
Команда 8К1Р дает возможность редактору пропу-
скать часть текста в дополнительном входном файле. Операция
выполняется в прямом направлении. Если пользователь про-
пустил в дополнительном входном файле нужную страницу, то
доступ к ней он получит только после того, как повторно откро-
ет этот файл по команде ОРЕМ 1КР11Т. В команде также допу-
скаются описанные переключатели.
Команда СЬЕАК Р А 8 Т Е очищает буфер сбора.
Она полезна для удаления больших фрагментов текста: сколь
угодно большой интервал выбора можно заменить содержимым
пустого буфера сбора (функция <заменить>).
Сохранение отредактированного файла. Работа редактора
прекращается по команде ЕХ1Т или 01ЛТ. Нормальное заверше-
ние сеанса редактирования осуществляется по команде ЕХ1Т.
Редактор закрывает все файлы, переименовывает, если требует-
ся, входной файл; сохраняет результаты работы в выходном и
(если он был) дополнительном входном файле и ожидает коман-
ды пользователя. При этом положение курсора значения не име-
ет. По команде ОШТ редактор закрывает входные файлы, остав-
ляя их без изменения, и ожидает новой команды пользователя.
Выходные файлы не сохраняются. Подавать команды ЕХ1Т и
01ЛТ следует так:
< СЛУМ> < КОМАНДА > ЕХIТ < ВВОД>
<СЛУЖХКОМАНДА>аи1Т<ВВОД>
3.3. ПРОГРАММА ОФОРМЛЕНИЯ
ТЕКСТОВЫХ ДОКУМЕНТОВ
Рассмотренный в предыдущем параграфе «Редактор текста»
позволяет подготавливать текстовые документы. Однако в ре-
дакторе нет средств, позволяющих их структурировать. Напри-
мер, при подготовке больших рефератов всегда желательно
иметь возможность формирования титульных листов, автомати-
ческой нумерации страниц, выравнивания текста на странице,
нумерации разделов и т. д.
Для оформления и распечатки текстов в формате, удобном
для чтения, используется программа ПОС (документатор).
Этой программе можно указать входной файл, в котором прямо
в тексте вставлены директивы программы. Обрабатывая дирек-
тивы, она генерирует выходной файл, в котором произведено
форматирование страниц, заголовков, сбор оглавления, офор-
мление титульных листов.
По умолчанию выходной файл выводится на печать. Для
записи его на другое внешнее устройство необходимо перед вы-
45
зовом программы назначить логическое имя .Ы’К соответству-
ющему устройству, например .А58 МХ1 :ПРК <ВК>. После это-
го, аналогично вызову текстового редактора командой 1ШМ,
запускается программа
.к цы оос <вк>.
Программа выдает символ «♦», в ответ на который следует
ввести имя входного файла. Выходной файл с учетом команды
А55 будет выведен с тем же именем и расширением ПРК на
устройство МХ1
Для соответствующей обработки в текстовом файле исполь-
зуются директивы, понятные программе. Все директивы ПОС
находятся в начале строки и начинаются с точки. У каждой ди-
рективы числовой аргумент Ы определяет количество пустых
строк перед фрагментом текста, но умолчанию И = 1. Рассмот-
рим наиболее употребительные из них.
Директивы форматирования текста. К директивам форма-
тирования текста относятся: Х1Ы, .ВЬК, ДМР, Б1УТ, 14ОР,
.МЮ, Л1Т.
Директива ДЛИ записывает фрагмент текста с крас-
ной строки. Под фрагментом понимается текст, расположенный
между двумя директивами. Если фрагмент текста попадает на
начало страницы, то строка не пропускается. Если пропуск строк
приводит к переводу на новую страницу, то фрагмент начинается
с начала этой страницы.
Директива .ЬП4 переводит программу ПОС в режим
вывода, при котором выходная строка формируется пословно
из входной текстовой информации. При этом строки вьфавни-
ваются по длине, дополняясь пробелами между словами. Про-
грамма автоматически осуществляет перенос слов.
Директива .В Ь М распечатывает фрагмент текста с на-
чала строки.
Директива ДМР печатает сформированный текст
с указанным интервалом. Директива имеет числовой аргумент,
определяющий количество пустых строк, пропускаемых перед
печатью очередной строки.
Директива . 5 V Т осуществляет копирование следу-
ющего фрагмента текста без форматирования, включая пустые
строки. Числовой аргумент интерпретируется, как и в директи-
вах .В1Л4 и -ИЫ. Строки следующего фрагмента текста должны
иметь длину, не превышающую ширину страницы.
Директива .КОЕ осуществляет вставку без измене-
ния длинных строк.
Директива .М1П с текстовым аргументом выводит
текст го центру страницы.
46
Директива . К I Т выравнивает текст по правой грани-
це страницы.
Директивы оформления страниц. Программа ПОС автомати-
чески формирует страницы распечатываемого документа. В про-
цедуры оформления страниц документа входят: нумерация
страниц, обозначение документа; сформатировэнный текст до-
кумента.
Нумерация страниц осуществляется автоматически. Номер
страницы печатается по центру первой (или единственной) стра-
ницы. Обозначение (номер) документа определяется требова-
ниями ЕСПД и вводится директивой ДТЬ. Рекомендуется,
чтобы в данной директиве обозначение документа определялось
по стандарту, так как оно используется при формировании ти-
тульных листов. Директива должна предшествовать директивам
.ТЬУ и .ТТЬ в тексте исходного документа. Действие директи-
вы .5ТЬ можно изменить (отменить) только другой директивой
ДТЬ. Чтобы отказаться от распечатки обозначения, достаточно
использовать директиву 5ТЬ без аргумента.
Директива ТАС осуществляет переход на новую стра-
ницу документа. Если директива обрабатывается в начале
страницы, то переход не производится. Директива .ТЕ8 осуще-
ствляет переход на новую страницу документа, если на текущей
странице осталось строк меньше, чем задано числовым аргумен-
том директивы.
Директивы описания структуры документа. Для описания
структуры документа программа ВОС представляет набор ди-
ректив, позволяющих выделить в документе: титульный лист;
аннотацию; содержание; разделы и подразделы; пункты и под-
пункты; перечисления; примечания; приложения. Формирование
заголовков, автоматический сбор содержания и нумерации раз-
делов, подразделов, пунктов, подпунктов, приложений обеспечи-
ваются с помощью директив описания структуры документов.
Директива .Т О С используется для указания необхо-
димости сбора содержания. Если содержание необходимо, то
эта директива должна быть первой в исходном тексте. При сборе
содержания программа ВОС выполняет два прохода (просмот-
ра) исходного текста. На первом проходе осуществляется сбор
содержания, на втором — распечатка документа и содержания.
В конце первого прохода на терминале оператора распечатывает-
ся сообщение о завершении первого прохода и количество
страниц, которое будет содержать сформированный документ.
Директива .1Ы Т используется для выделения анно-
тации к документу. Фрагменты текста, следующие за директи-
вой, включаются в аннотацию. Ограничением аннотации будет
начало одного из разделов, подразделов, пунктов, подпунктов
47
или приложений. В аннотации допустимо использование перечис-
лений и примечаний.
Директива .АРИ служит для выделения прило-
жения. Текстовый аргумент у директивы берется в качестве
заголовка. Приложения начинаются с новой страницы. Для
выделения раздела применяется директива .СРТ, аналогичная
директиве .АРК.
Директива . Н Ь V определяет начало подраздела,
пункта или подпункта. Интерпретация директивы определяется
числовым аргументом (1 — подраздел, 2 — пункт, 3 — под-
пункт) . Фрагмент текста, следующий за директивой, использу-
ется как заголовок. Заголовок форматируется аналогично тек-
стовой информации, но на меньшую длину выходной строки.
Если непосредственно за директивой указать одну из директив
типа ,ЫЫ, .ВЬЫ, то форматирование заголовка не производится.
В этом случае в начале выводимого фрагмента текста будет про-
ставлена соответствующая нумерация. Содержимое номера
определяется аналогично нумерации заголовков.
Директива . А И В определяет начало фрагмента тек-
ста, который используется как элемент перечисления. Числовой
аргумент указывает на количество пустых строк перед началом
данного элемента перечисления. Элемент перечисления в распе-
чатке дополняется знаком «—» и формируется аналогично
текстовой информации.
Директива .АТТ используется для выделения текста
примечания. Числовой аргумент отсутствует. Форматирование
проводится аналогично текстовой информации. В документе
тексту примечания предшествует слово «ПРИМЕЧАНИЕ».
По директиве .18Т программа ВОС выполняет распечатку переч-
ней, используя текстовый аргумент как заголовок.
К служебным директивам относятся .СОМ, .СНА, .СРТ.
Директива .СОМ предназначена для внесения ком-
ментариев в исходный текст. Аргументы директивы не выво-
дятся в формируемый документ, а печатаются на терминале опе-
ратора.
Аргументом директивы .СНА является наименова-
ние файла, в котором находится продолжение исходного текста
документа. По этой директиве обработка текущего текста
прекращается и начинает обрабатываться указанный файл. Это
дает возможность размещения исходного текста в нескольких
файлах, расположенных на различных носителях. Длина цепочки
такого размещения логически не ограничена. Если в наименова-
нии файла отсутствует указание устройства, то программа выби-
рает устройство, на котором размещен первый файл распечаты-
ваемого документа.
Аргументом директивы .СРУ является название
дополнительного файла. Содержащийся в нем текст будет вклю-
чен в формируемый документ. Соглашения о наименовании фай-
ла совпадают с .СНА. По директиве .СРУ обработка текущего
файла прекращается и начинает обрабатываться дополнитель-
ный файл. По завершении его обработки программа ВОС возоб-
новляет обработку текущего файла со строки, следующей за
.СРУ. Во вторичном файле запрещается использование директи-
вы .СРУ.
Использование программы ВОС удобно тем, что не надо
беспокоиться о сохранении структуры документа. После внесе-
ния исправлений в документ достаточно снова пропустить ис-
правленный файл через программу и тем самым сэкономить
время для творческой работы.
3.4. СТРУКТУРА БАЗЫ ДАННЫХ
Система управления базой данных работает с данными,
представленными в виде таблиц. Таблица состоит из записей с
фиксированным набором столбцов. Каждый столбец имеет имя
и определенный тип, единые для всех записей базы данных.
Допустимы следующие типы столбцов: 1) целое число в диапа-
зоне от —32768 до 32767; 2) вещественное число; 3) символь-
ная строка произвольной длины; 4) символьная строка фикси-
рованной длины, содержащая от 1 до 32 символов.
Максимальное число столбцов в базе данных — 48. Обраще-
ние к базе данных в СУБД происходит по имени, содержащему
не более шести латинских символов.
База данных на гибких магнитных дисках хранится в виде
трех физических файлов — записей, алфавитных данных и описа-
ния. Имена этих файлов совпадают с именем базы данных.
Объем базы данных ограничивается объемом одной дискеты.
Диалог в СУБД строится так, чтобы минимизировать и об-
легчить ввод, исключив при этом большинство возможных оши-
бок. Система сама запрашивает в каждом конкретном случае
необходимую для работы информацию, выдавая подсказки,
которые часто содержат и набор допустимых ответов. Это
позволяет использовать систему пользователям с минимальной
подготовкой.
Ввод строк. Любой элементарный ввод (строк, чисел, ко-
манд) заканчивается нажатием клавиши <ВК>. Для стирания
последнего выведенного символа используется клавиша <ЗБ>.
С помощью клавши перемещения маркера вправо и влево
(->, *-) можно подвести маркер к любому введенному символу
в строке и ввести новый символ. С помощью клавиш -> и *-
49
можно сдвинуть строку вправо или влево (удалить символ) от
позиции маркера.
Описанные средства редактировать строки не распростра-
няются на ввод наименований файлов (имени, базы данных,
файла печати, файла формата), который осуществляется стан-
дартными средствами операционной системы.
Экранная таблица. При заполнении, редактировании и про-
смотре базы дашых используется особая форма организации
диалога, называемая экранной таблицей (рис. 3.2).
Сверху размещается заголовок базы данных, содержащий
имя базы данных, число столбцов и число записей в ней. Ни-
же располагаются две пустые строки, служащие для ввода
команд и данных (первая строка) и для вывода диагности-
ческих сообщений (вторая строка). В ряде случаев обе стро-
ки могут использоваться для вывода информационных сооб-
щат ий.
Далее следует непосредственно таблица, состоящая из заго-
ловка с именами и номерами выводимых столбцов и 15 строк,
в которые выводятся значения столбцов. Каждая строка соот-
ветствует одной записи. Нулевой столбец содержит порядковые
номера выведенных на экран записей. Многие команды работают
с текущей записью, отмечаемой на экране специальным марке-
ром, который располагается между нулевым и первым столб-
цами.
В общем случае экранная таблица может содержать не все
столбцы. Набор выводимых на экран столбцов и число занима-
емых ими позиций определяются при создании базы данных и
могут оперативно изменяться в процессе работы. Если символь-
ная строка значения столбца не умещается в число отведенных
на экране позиций, то она отсекается на экране (но не в памяти
микроЭВМ).
Значение любого столбца текущей записи можно вывести
в командную строку экрана независимо от того, выведен ли
столбец на экран или нет.
ЁАЗА~ДАННЫХ:_кйА58~:_чЙСЛ0_СТ0ЛБй0В:_5“7~ЧЙСЛ0-ЗАПЙсЁЙ7"з
н :фамилия :имя : КЛАСС :предмет: ОЦЕНКИ
0 : 1 : 2 : 3 : А : 5
1:Иванов ВАСЯ 9-А ФИЗИКА 4
2:ПЕТРОВА ОЛЯ 9-А ЛИТЕРАТ. 5
3:СИДОРОВ СЕРГЕИ 9-А ФИЗИКА 4
Рис. 3.2. Пример экранной таблицы
50
В описании базы данных хранятся четыре формата экранной
таблицы, называемые стандартными. Они определяются при со-
здании базы и могут быть изменены при редактировании.
После вывода на экран информационных и диагностических
сообщений возврат к обработке таблицы осуществляется нажа-
тием клавиши <ВК>.
Защиту базы данных можно осуществлять паролем, содер-
жащим от 1 до 4 символов, за исключением пробелов. Он вво-
дится при создании базы данных и может быть изменен при ее
редактировании.
Если база данных защищена паролем, то любой работе с ней
предшествует ввод пароля независимо от того, используются
программы, реализующие диалоговый режим, или программный
доступ.
Программы, реализующие диалоговый режим, запрашивают
пароль в диалоге, выдавая на экран запрос ПАРОЛЬ? Если па-
роль вводится неверно, выдается диагностическое сообщение
НЕВЕРНЫЙ ПАРОЛЬ, и пароль запрашивается повторно. Если
и вторично пароль вводится неверно, вывод диагностического
сообщения повторяется и выполнение программы завершается.
При вводе пароля с клавиатуры дисплея символы пароля
на экран не выводятся.
3.5. ПРОГРАММЫ ДЛЯ ДИАЛОГОВОГО РЕЖИМА
РАБОТЫ С БАЗОЙ ДАННЫХ
Диалоговый режим работы в СУБД реализуется следующим
набором программных модулей*: СКЕК — программа создания
базы данных; ЕВ1К — редактор базы данных; Къ Гк - програм-
ма поиска; 8ОКК — программа сортировки базы данных;
СОЬК - программа обслуживания столбцов; МЕКК — програм-
ма слияния двух баз данных; 1ЛЧ1К — программа объединения
однотипных баз данных. Вызов модуля с дискеты выполняется
командой КЦЫ.
Программа создания базы данных СКЕК. Для любой табли-
цы можно создать базу данных. Для этою используется про-
грамма СКЕК, запрашивающая имя базы данных, в которой
будет храниться таблица и число столбцов в ней. Затем по каж-
дому столбцу запрашиваются имя столбца и его тип.
Далее может быть задан один из четырех стандартных фор-
матов экранной таблицы, остальные форматы генерирует про-
* В системной документации на СУБД названия всех программ име-
ют окончание ВЛ В вместо К.
грамма, располагая на экране столько столбцов по порядку,
сколько умещается. Число позиций, заменяемых столбцом, опре-
деляется из максимального количества символов в имени столб-
ца и числа позиций, выделяемых стандартно для каждого типа.
Для первого типа выделяется 6 позиций; для второго — 13; для
третьего — 10 и для четвертого отводится число позиций, равное
длине строки.
Если формат экранной таблицы в диалоге не задается, то
программа формирует четыре одинаковых описания экранной
таблицы. Форматы стандартных экранных таблиц можно изме-
нять при редактировании.
После окончания описания данных формируются три файла,
содержащие базу данных.
Пример диалога создания базы данных
.Н СНЕК
ИМЯ БАЗЫ ДАННЫХ? КЦА55
КОЛИЧЕСТВО СТОЛБЦОВ? 5
ДОПУСТИМЫЕ ТИПЫ СТОЛБЦОВ:
1 - ЦЕЛЫЙ
2 - ВЕЩЕСТВЕННЫЙ
3 - СТРОКА ПРИЗВОЛЬНОИ ДЛИНЫ
4 - СТРОКА ФИКСИРОВАННОМ ДЛИНЫ 1..32 СИМВОЛОВ
ИМЯ СТОЛБЦА 1? ФАМИЛИЯ
ТИП СТОЛБЦА (1..4)? 3
ИМЯ СТОЛБЦА 2? ИМЯ
ТИП СТОЛБЦА С1..4)? 4
КОЛИЧЕСТВО СИМВОЛОВ В СТРОКЕ? 5
ИМЯ СТОЛБЦА 3? КЛАСС
ТИП СТОЛБЦА (1..4)? 3
ИМЯ СТОЛБЦА 4? ПРЕДМЕТ
ТИП СТОЛБЦА <1..4>? 3
ИМЯ СТОЛБЦА 5? ОЦЕНКА
ТИП СТОЛБЦА С1..41? 1
ИСПОЛЬЗУЕТСЯ СТАНДАРТНЫЙ ФОРМАТ ТАБЛИЦЫ <Д/Н>? Н
СВОБОДНЫХ ПОЗИЦИИ ЭКРАНА: 79
НУЛЕВОЙ СТОЛБЕЦ ВЫВОДИТСЯ НА ЭКРАН <Д/Н)? Д
ШИРИНА СТОЛБЦА? 4
СВОБОДНЫХ ПОЗИЦИИ ЭКРАНА: 74
СТОЛБЕЦ ФАМИЛИЯ ВЫВОДИТСЯ НА ЭКРАН <Д/Н)? Д
ШИРИНА СТОЛБЦА? 13
СВОБОДНЫХ ПОЗИЦИИ ЭКРАНА: 58
СТОЛБЕЦ ИМЯ ВЫВОДИТСЯ НА ЭКРАН <Д/Н>? д
ШИРИНА СТОЛБЦА? 5
СВОБОДНЫХ ПОЗИЦИИ экрана: 32
СТОЛБЕЦ КЛАСС ВЫВОДИТСЯ НА ЭКРАН <Д/Н)? Д
ШИРИНА СТОЛБЦА? 12
СВОБОДНЫХ ПОЗИЦИИ ЭКРАНА: 39
СТОЛБЕЦ ОЦЕНКА ВЫВОДИТСЯ НА ЭКРАН <Д/Н>? Д
ШИРИНА СТОЛБЦА? 7
СВОБОДНЫХ ПОЗИЦИИ ЭКРАНА: 31
СТОЛБЕЦ ТЕЛЕФОН ВЫВОДИТСЯ НА ЭКРАН <Д/Н)? Д
ШИРИНА СТОЛБЦА? 8
ПОДТВЕРДИТЕ СОЗДАНИЕ БАЗЫ ДАННЫХ <Д/Н>? Д
БАЗА ДАННЫХ КЕА55 СОЗДАНА
После вопроса, задаваемого микроЭВМ, идут ответы пользо-
вателя. Если при описании экранной таблицы в ответ на запрос
о выводе столбца на экран нажимается только клавиша <ВК>,
настройка таблицы прекращается и считается, что оставшиеся
столбцы на экране не выводятся. При выходе столбца за грани-
цы экрана выдается диагностика и запрос на вывод столбца
повторяется.
Вещественные числа могут выводиться на экран в одном из
двух форматов: с плавающей точкой, например 1.253400Е + 02,
и в формате с фиксированной точкой, например 125.34.
При настройке экранной таблицы для столбцов второго типа
(вещественное число) после запроса ширины столбца запраши-
вается формат вывода числа. Если число выводится в формате
с фиксированной точкой, то запрашивается число цифр, выводи-
мых после точки.
Редактор базы данных ЕЫК. Он позволяет заполнить и ре-
дактировать базу данных. После вызова редактора запрашивает-
ся имя базы данных и на экран выводится хранящаяся в ней
таблица. Управление редактором осуществляется с помощью
нажатия функциональных клавиш (см. приложение 2).
Программа поиска КЕТК. С помощью КЕТК можно про-
сматривать записи базы данных, осуществлять выборочный
поиск записей по заданным условиям, исследовать значения
столбцов, пересылать искомые записи в новую базу, выполнять
печать активных записей базы данных.
Условие поиска может содержать до 16 ключей. Ключ состо-
ит из номера столбца, операции сравнения и второго операнда
операции сравнения. В качестве операнда может выступать либо
столбец, либо значение, вводимое с клавиатуры. Допустимы
следующие операции сравнения:
меньше (<);
больше (>);
равно (=);
операция сравнения для символьных строк =#=), когда равен-
ство проверяется не по полной строке, а по заданной начальной
подстроке;
не равно (< >);
меньше или равно (< =);
больше или равно (> =).
Эти операции определены для всех типов, за исключением
«+». Они определены только для символьных строк. Диалог
ввода условия выполняется после команды УС.
Заданные условия не больше четырех могут быть выведены
на экран с помощью специальной команды ИУ.
Пример диалога ввода условий при работе с программой КЕТК
НОМЕР СТОЛБЦА (0..5)? 2
ОПЕРАЦИЯ < < >=*<><= >=«)?=
ЗНАЧЕНИЕ ИЛИ СТОЛБЕЦ <3/0? 3
ЗНАЧЕНИЕ? ОЛЯ
ЕЩЕ БУДЕТЕ ВВОДИТЬ КЛИЧИ (Д/Н)? Д
НОМЕР СТОЛБЦА (0..5)? 4
ОПЕРАЦИЯ <<>=*<><=>= К )? К
ЗНАЧЕНИЕ ИЛИ СТОЛБЕЦ (3/0? 3
ЗНАЧЕНИЕ? ЛИТЕР.
ЕЩЕ БУДЕТЕ ВВОДИТЬ КЛИЧИ (Д/Н)? Н
Условие считается истинным, если истинны все заданные
ключи.
Запись считается активной, если она удовлетворяет хотя бы
одному условию поиска.
Условие может быть задано с использованием нулевого
столбца, когда в качестве значения выступает номер записи.
После вызова программы поиска запрашивается имя базы
данных и на экран выводится таблица, но с пустыми строками,
отведенными под записи.
Управление программой поиска, так же как и редактором,
осуществляется с помощью функциональных клавиш и команд
(см. приложение 2).
С помощью программы КЕТК. по команде П (печать актив-
ных записей данных) можно выполнять печать всех активных
записей базы данных. Записи могут выводиться полностью или
по указанным столбцам. База распечатывается в виде таблицы,
подобно экранной, но в отличие от нее значение столбца выво-
дится полностью. Если оно не умещается в отведенные позиции
столбца, то его печать продолжается (только для символьных
строк) на следующей строке. Таким образом одна запись может
занимать несколько строк печати.
Настройка формата печати производится в диалоге, в начале
которого запрашивается ширина печати. В ответ вводится число
используемых позиций листа печатающего устройства. На запрос:
ИСПОЛЬЗОВАТЬ СТАНДАРТНЫЙ ФОРМАТ ПЕЧАТИ (Д/Н)?
при ответе Д используется стандартный формат печати, а при от-
вете Н продолжается диалог по настройке таблицы. Заголовок
печатаемой таблицы содержит имена и номера столбцов, а набор
выводимых на печать столбцов и число занимаемых ими пози-
ций определяется по тем же правилам, что и для стандартного
формата экранной таблицы. После окончания настройки записи
выводятся на печать под своими номерами в базе данных. Полу-
чив утвердительный ответ на запрос
54
ПОДТВЕРДИТЕ ПЕЧАТЬ (Д/Н) ?
запрашивается имя выходного файла, в который выводятся за-
писи данных. При нестандартном формате настройка продол-
жается.
Перед выводом на печать базы данных может быть отпечатан
собственный заголовок пользователя. Если заголовок не вводит-
ся, то в начале каждого листа печатается имя базы данных. Выво-
димая на печать таблица начинается с заголовка. Если имена
столбцов в заголовке не умещаются в отведенные столбцу пози-
ции, они выводятся в несколько строк. Записи на печать могут
выводиться под своими номерами в базе данных или в порядке
их вывода на печать.
Далее по каждому столбцу запрашивается необходимость
его вывода на печать и число занимаемых столбцом позиций.
Предварительно выдается число оставшихся свободных пози-
ций. Если в ответ на запрос нажимается только клавиша <ВК>,
оставшиеся столбцы на печать не выводятся.
Средства печати позволяют не только распечатать содержи-
мое базы данных, но и вывести отобранную предварительно
информацию из базы в виде печатного документа, снабдив его
соответствующим заголовком.
Команда ВЧ в программе КЕТК позволяет вычислить ариф-
метическое выражение, в котором допустимы операции «+»,
«—в, «♦», «/». В арифметические выражения включаются:
— целые и вещественные константы;
— столбец, задаваемый своим номером в виде +1,=#=3, где
+ — признак столбца. В арифметическом выражении используют-
ся только числовые типы столбцов;
— функции над столбцами базы данных. Аргументом функ-
ции является арифметическое выражение.
Допустимыми являются функции СУМ и СР.
СУМ — функция суммирования. С помощью
функции СУМ можно вычислить для каждой активной записи
значение заданного аргумента функции и выполнить суммиро-
вание этих значений по всем активным записям. Например,
СУМ (*1),СУМ (+1+Ф2);
СР — функция вычисления среднего. С по-
мощью данной функции для каждой активной записи можно
вычислить значение заданного аргумента и среднее из этих зна-
чений СР (+5), СР (=#=2/10).
Пример арифметического выражения.
*2 = (1+4=2 - 3*5.4)/6,
где операция «=» присваивает значение выражения, стоящего
справа от знака операции, столбцу текущей записи, номер кото-
рого указан слева от знака операции.
Чтобы выполнить аналогичную операцию присваивания для
всех активных записей, используется функция ЗАП, аргументом
которой является выражение, содержащее операцию «=».
Например,
ЗАП (4=4 =*2 **3)
Здесь для всех активных записей значение четвертого столб-
ца устанавливается равным значению второго столбца, умножен-
ному на значение третьего столбца этой же записи.
Программа сортировки 80КК. При вызове модуля запраши-
ваются имена входной и выходной баз данных и номер столбца,
по которому необходимо произвести сортировку. Программа
сортирует записи по заданному столбцу в порядке возрастания
значений столбца; для столбцов третьего и четвертого типов
производит алфавитное упорядочение.
Программа обслуживания столбцов СОЬК. Программа
позволяет переименовать столбцы, удалять их, добавлять новые,
переставлять (изменять место столбца в базе данных), изменять
длину строки (для столбцов четвертого типа).
При одном обращении к программе можно произвести до
20 операций. При этом над одним столбцом выполняется только
одна операция. При попытке произвести более одной операции
над одним и тем же столбцом выдается сообщение:
ОПЕРАЦИЯ НЕВЫПОЛНИМА -
ВВЕДЕННАЯ РАНЕЕ ОПЕРАЦИЯ НЕСОВМЕСТИМА.
Порядок расположения в новой базе данных добавленных и
переставленных столбцов за одним и тем же столбцом (включая
и нулевой) определяется порядком ввода соответствующих опе-
раций. В остальных случаях порядок ввода операций роли не
играет.
Каждая операция требует выбора столбца, который следует
удалить или после него вставить другой. При запросе операций
выводится имя столбца. С помощью клавиш < стрелка вниз> и
< стрелка вверх> просматриваются (выводятся на экран) име-
на столбцов. Выбор столбца фиксируется нажатием клавиши
<ВК>. Имена столбцов связаны в кольцо, т.е. после вывода
последнего столбца будет выведено имя первого столбца.
Программа не реагирует на ошибочно нажатые клавиши.
При использовании операции изменения длины строки в столбце
на экран выводятся только имена столбцов четвертого типа.
При вызове программы запрашиваются имена входной и выход-
56
ной баз данных. Если эти имена совпадают, то при запросе име-
ни выходной базы данных достаточно нажать клавишу <ВК>.
В конце программы происходит настройка экранной таблицы
новой базы данных.
Пример работы с программой СОЬК
.к соьк
ИМЯ ВХОДНОЙ БАЗЫ ДАННЫХ? ЫАМЕ1
ИМЯ ВЫХОДНОЙ БАЗЫ ДАННЫХ? ЫАМЕ2
ДОПУСТИМЫЕ ВИДЫ ОПЕРАЦИЙ НАД СТОЛБЦАМИ:
ПЕРЕИМЕНОВАТЬ СТОЛБЕЦ (П)
УДАЛИТЬ СТОЛБЕЦ (У)
ДОБАВИТЬ СТОЛБЕЦ <Д>
ПЕРЕСТАВИТЬ СТОЛБЕЦ <М>
ИЗМЕНИТЬ ДЛИНУ СТРОКИ СТОЛБЦА (ТИП 4) (С)
ВВЕДИТЕ НУЖНЫЙ ВИД ОПЕРАЦИИ (П/У/Д/М/С)? П
ПЕРЕИМЕНУЕМЫИ СТОЛБЕЦ: ИМЯ СТОЛБЦА /НОМЕР СТОЛБЦА/
НОВОЕ ИМЯ СТОЛБЦА? НОВОЕ ИМЯ
ПОДТВЕРДИТЕ ВЫПОЛНЕНИЕ ОПЕРАЦИИ (Д/Н>? Д
ЕЩЕ БУДЕТЕ ВВОДИТЬ ОПЕРАЦИИ (Д/Н)? Д
ВВЕДИТЕ НУЖНЫЙ ВИД ОПЕРАЦИИ (П/У/Д/М/О? У
УДАЛЯЕМЫЙ СТОЛБЕЦ: ИМЯ СТОЛБЦА /НОМЕР СТОЛБЦА/
ПОДТВЕРДИТЕ ВЫПОЛНЕНИЕ ОПЕРАЦИИ <Д/Н>? Н
ЕЩЕ БУДЕТЕ ВВОДИТЬ ОПЕРАЦИИ <Д/Н>? Н
ИСПОЛЬЗУЕТСЯ СТАНДАРТНЫЙ ФОРМАТ ТАБЛИЦЫ ВЫВОДА(Д/Н)? Д
ЗАДАННЫЕ ОПЕРАЦИИ НАД БАЗОЙ ДАННЫХ ЫАМЕ2 ВЫПОЛНЕНЫ
Программа слияния баз данных МЕКК. Она выполняет сли-
яние двух существующих баз данных в третью базу. При вызове
модуля запрашиваются имена двух исходных баз данных и ре-
зультирующей базы данных. Затем пользователь указывает
число сравниваемых пар столбцов и их номера в исходных базах
данных. Формирование записи в результирующей базе данных
происходит путем слияния записей исходных баз данных, име-
ющих полное соответствие во всех парах сравниваемых столб-
цов. Сравниваемая пара столбцов представлена в результиру-
ющей записи одним столбцом, для которого может быть указа-
но новое имя. При слиянии в результирующую базу данных
могут переноситься не все столбцы, а только указанные. Для
результирующей базы данных выполняется описание формата
экранной таблицы.
Пример работы с программой МЕКК.
.К МЕКК
ИМЯ ПЕРВОЙ (ВХОДНОЙ) БАЗЫ ДАННЫХ? ЫАМЕ1
ИМЯ ВТОРОЙ (ВХОДНОЙ) БАЗЫ ДАННЫХ? НАМЕ2
ИМЯ ВЫХОДНОЙ БАЗЫ ДАННЫХ? ЫАМЕЗ
ЧИСЛО СРАВНИВАЕМЫХ ПАР СТОЛБЦОВ? 1
НОМЕР СТОЛБЦА В ПЕРВОЙ БАЗЕ ДАННЫХ? 2
НОМЕР СТОЛБЦА ВО ВТОРОЙ БАЗЕ ДАННЫХ? 3
ИМЯ РЕЗУЛЬТИРУЮЩЕГО СТОЛБЦА В НОВОЙ БАЗЕ ДАННЫХ? ОБЩИЙ
ВСЕ СТОЛБЦЫ БАЗЫ ДАННЫХ 1 И БАЗЫ ДАННЫХ 2 СОХРАНИТЬ (Д/Н)?Н
БАЗА ДАННЫХ ЫАМЕ1, КОЛИЧЕСТВО СТОЛБЦОВ 2
КАКОЙ ИЗ СТОЛБЦОВ УДАЛИТЬ?
СТОЛБЕЦ 1<Д/Н>? Д
БАЗА ДАННЫХ МАМЕ2, КОЛИЧЕСТВО СТОЛБЦОВ 4
КАКОЙ ИЗ СТОЛБЦОВ УДАЛИТЬ?
СТОЛБЕЦ 1<Д/Н>? Н
СТОЛБЕЦ 2<Д/Н>? Н
СТОЛБЕЦ 4<Д/Н>? Д
ИСПОЛЬЗУЕТСЯ СТАНДАРТНЫЙ ФОРМАТ ТАБЛИЦЫ ВЫВОДА (Д/Н)? Д
БАЗА ДАННЫХ НАМЕЗ СОЗДАНА
Программа объединения баз данных 1ЛЧ1К. Эта программа
позволяет объединить две однотипные базы данных, создавая
третью и переписывая в нее сначала все записи первой, а затем
все записи второй базы данных.
Объединяемые базы данных должны соответствовать друг
другу, т.е. иметь одинаковое число и одинаковые типы столб-
цов. В противном случае выдается сообщение.
ИСХОДНЫЕ БАЗЫ ДАННЫХ НЕ СООТВЕТСТВУЮТ ДРУГ ДРУГУ
и программа завершает свою работу. Имена столбцов, получен-
ных после объединения результирующей базы данных, совпада-
ют с именами столбцов.
С помощью программ СУБД пользователь получает возмож-
ность упорядочить хранение информационно-справочных таблиц
и использовать готовые программы для их обработки.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
3.1. В каком виде можно подготовить программу с помощью экран-
ного редактора: а) текстовый файл, б) программа в объектном коде;
в) загрузочный модуль?
3.2. С помощью каких функциональных клавиш в текстовый файл
можно вставить строку АААААААААА?
3_3. Какой командой можно установить размер страницы редактора,
равный 24 строкам?
3.4. Какие директивы документатора используются для автомати-
ческой нумерации разделов и сбора оглавления?
3.5. В какой форме представляются данные в системе управления
базой данных СУБД?
3.6. Как, используя СУБД с таблицей учеников класса, вычислить
их средний возраст?
Г лава 4
ИНТЕРАКТИВНАЯ ГРАФИКА НА МИКРОЭВМ
4.1. ОБЩИЕ СВЕДЕНИЯ
До недавнего времени обработка графической информации
являлась сложным процессом даже для больших ЭВМ. Однако
сейчас возможности микроЭВМ возросли настолько, что к ним
могут подключаться устройства для ввода-вывода графичес-
кой информации. Интерес к машинной графике обусловлен
тем, что во многих приложениях графическое представление
данных наиболее эффективно. Диалоговое воздействие при
работе с интерактивной графикой позволяет объединить воз-
можности человека и ЭВМ, эффективнее использовать лучшие
качества каждого, являясь мощным инструментом в решении
прикладных задач.
I Машинная графика - создание, хранение и обработка в циф-
| ровом виде изображений различных объектов на ЭВМ.
В зависимости от области применений существуют разнооб-
разные формы машинной графики. В интерактивной графике
пользователь имеет возможность управлять процессом рисова-
ния изображения, его формой, размерами, цветом на экране
графического дисплея. Чтобы работать с изображениями, в со-
став микроЭВМ должен входить графический дисплей. Широкое
использование графических средств связано с появлением в се-
редине 70-х годов относительно дешевых растровых дисплеев,
основанных на стандартной телевизионной технике. В растро-
вых дисплеях изображение, состоящее из отрезков прямых,
дуг окружностей, букв, закрашенных участков, хранится в па-
мяти микроЭВМ в виде совокупности точек — элементов изоб-
ражения (пикселов). Изображение формируется на растре,
представляющем набор горизонтальных строк, каждая из кото-
рых состоит из отдельных пикселов. Таким образом, растр —
это матрица пикселов, закрывающая всю площадь экрана дис-
плея. Для постоянного воспроизведения на экране изображение
очень быстро (24 раз/с) считывается из памяти на экран. При
этом в качестве дисплея может использоваться обычный телеви-
зор. За простоту такой реализации приходится платить большим
размером памяти для хранения данных. Для черно-белого изоб-
ражения на каждый элемент изображения приходится отводить
минимум одну ячейку памяти. Для цветного изображения или
получения тонов требуется большее число ячеек. В настоящее
время распространены графические дисплеи на базе бытовых
цветных телевизоров (например, цветной дисплей растровый —
59
Рис. 4.1. Модель программирования машинной графики
ЦЦР) с разрешением 256X256 точек и заданием в каждой точке
одного из четырех цветов. Отметим, что характеристики графи-
ческих дисплеев постоянно улучшаются.
Появление новых аппаратных средств для вывода графичес-
кой информации ставит серьезные проблемы перед програм-
мным обеспечением машинной графики. Решение задач текстовой
или цифровой обработки практически не зависит от конкретно-
го типа микроЭВМ, так как все они обеспечены трансляторами
с соответствующих языков высокого уровня. Однако пакеты
программ для работы с графической информацией существенно
зависят от характеристик конкретного дисплея. Поэтому одной
из главных задач разработчиков является стандартизация при-
кладного программного графического «обеспечения и разработ-
ка универсальных пакетов программ.
Так как пока не выработан единый стандарт на программи-
рование машинной графики, то широко используется много-
уровневая модель программирования (рис. 4.1). В этой модели
в отдельный блок выносятся программы, которые физически
управляют дисплеем для отображения информации на экране.
Построение изображения из составляющих его элементов (при-
митивов) может происходить двумя способами: аппаратно
(посредством усложнения логической части управления диспле-
ем) и программным путем.
4.2. АЛГОРИТМЫ ПОСТРОЕНИЯ ПРЯМЫХ И ОКРУЖНОСТЕЙ
Стремление к простоте программного управления графи-
ческим дисплеем приводит к тому, что при построении изобра-
жений применяют единственную программу, зависящую от типа
дисплея. Она выводит на экран точку с координатами X, V и
цветом С. Все остальные графические примитивы могут быть
построены с помощью этой программы и не будут зависеть от
60
конкретного типа дисплея. Обращаться с ней можно с помощью
оператора вызова подпрограммы языка ФОРТРАН:
САЫ. РК1ЫТР (X, У, С).
Более сложные изображения можно построить путем после-
довательного вычисления координат точек и вывода их на экран
подпрограммой РК1ЫТР.
Практически всегда к программам построения изображений
предъявляются повышенные требования к быстродействию,
поэтому для построения любых фигур предпочтительны алго-
ритм с минимальным числом вычислений (особенно операций
умножения и деления, которые выполняются на микроЭВМ
без специальной аппаратуры достаточно долго).
Наиболее часто при построении изображений используются
отрезки прямых линий и окружности.
Алгоритм построения прямых. Основная задача алгоритма
состоит в вычислении координат элементов, лежащих вблизи
отрезков прямых, изображаемых на экране. Отрезок задается
начальной (Ху, Ум) и конечной (Хк, Ук) точками. Координаты
остальных точек (X У), принадлежащих отрезку, удовлетворя-
ют уравнению
У = АХ + В,
где
Vк - ук*м
А = ------ ;В = -----------
Хк-Хы ХК-Х„
В простейшем случае можно задавать единичные приращения
X и вычислить значение У. Процесс вычислений замедляет умно-
жение АХ, для которого нужно хранить Л и X в виде веществен-
ных чисел. Операцию умножения
можно устранить, если заме-
тить, что единичные приращения
X сводятся к изменению У на Л.
Тогда рекуррентные соотноше-
ния Х/+1 = X, + 1; У/+1 = У(+А
позволяют последовательно вы-
числить координаты всех точек
только на основе операций сло-
жения, как показано на рис. 4.2.
Если А > 1, то шаг по X будет
приводить к шагу по У. больше-
му 1. Для этого случая X и У
Рис. 4.2. Пошаговое вычисление
координат отрезка
надо поменять ролями. Ниже приведена программа 4.1 на языке
ФОРТРАН, реализующая данный алгоритм.
Программа 4.1. Построение отрезка прямой
С с с ПОСТРОЕНИЕ ВЕКТОРА В 1-М КВАДРАНТЕ 50ВВ00ТШЕ УЕСТ1(С,ХН,УЫ,ХК,УК) 1ЫТЕСЕН ХМ,УМ,ХК,УК,Х,У,Х1,У1,Х2,У2,С
с с с с с ХЫ.УН - КООРДИНАТЫ НАЧАЛЬНОЙ ТОЧКИ ХК.УК - КООРДИНАТЫ КОНЕЧНОЙ точки С - ЦВЕТ ТОЧКИ ИЕАЬ А,УН ШУ=1 Х1=ХЫ У1=УЫ Х2-ХК У2=УК ТЕ ((Х1.Е0.Х2).АНЛ.(У1.ВД.У2)) СО ТО 25 1Г (1АВ8(Т2-У1).ЬЕ.1АВ5(Х2-Х1)) СО ТО 10
с с с МЕНЯЕМ КООРДИНАТЫ X И У РОЛЯМИ Х=Х1 Х1=У1 У1=Х Х=Х2 Х2=У2 У2=Х ШУ=2
с с с 10 В КАЧЕСТВЕ НАЧАЛЬНОЙ ВЫБИРАЕМ ТОЧКУ С МЕНЫПИМ X 1Е (Х2.СЕ.Х1) СО ТО 20 Х=Х1 Х1=Х2 Х2=Х У=У1 У1=У2 У2=У
с с с 20 с с с с 25 С С с с ОПРЕДЕЛЯЕМ КОЭФФИЦИЕНТ НАКЛОНА ОТРЕЗКА А=(1.♦(У2-У1))/(Х2-Х1) ВЫЧИСЛЯЕМ ТОЧКИ ОТРЕЗКА Х.У. НАЧИНАЯ С XI, У1 УН=У1 ОБРАЩЕНИЕ К Р01МТ ЗАВИСИТ ОТ ТОГО МЕНЯЛИ ИЛИ НЕТ X И У РОЛЯМИ СО ТО (30,50), ШУ
30 ЦО 40 Х=Х1,Х2 ! ПРИРАЩЕНИЯ X НА 1 У=УК ! ОКРУГЛЯЕМ ДО ЦЕЛОГО САЛЬ Р0ШТ(С,Х,У)
40 УК=ГК+А ! ПРИРАЩЕНИЯ У НА А КЕТОНЫ
50 ЦО 60 Х=Х1,Х2 У=УН ! ОКРУГЛЯЕМ ДО ЦЕЛОГО САЬЬ Р01МТ(С,Х,У)
60 ТК=ТН+А
КЕТОНЫ
ИГО
Алгоритм построения окружностей. Существуют простые,
но не эффективные способы построения окружности на графи-
ческом дисплее. Окружность радиусом К с центром в начале
координат описывается уравнением
АГ2 + У2 = Л2.
Решая это уравнение относительно У, получаем
Г=±у/ К2 -X2.
Для изображения части
окружности, расположенной в
первом квадранте, можно с ша-
гом 1 увеличивать X от 0 до К и
каждый раз, вычисляя квад-
ратный корень, определять У. В
данном алгоритме операции
возведения в квадрат и извле-
чения корня требуют значи-
тельных затрат времени. Кроме
того, имеются незаполненные
промежутки в изображении
окружности (рис. 4.3). Алго-
Рис. 4.3. Построение окружности
прямым решением уравнения
ритмы построения окружности
можно упростить, если вос-
пользоваться ее симметрией.
Пусть для окружности с центром в начале координат известна
какая-нибудь лежащая на ней точка X, У. Тогда можно полечить
еще семь точек (рис. 4.4). Построив дугу окружности в 45 ”, по-
лучим остальные ее точки, применяя программу 4.2.
Рис. 4.4. Использование симметрии окружно-
сти для вычисления дополнительных точек
Программа 4.2. Построение точек окружности на основе симметрии
С Х,У КООРДИНАТЫ ОЧЕРЕДНОЙ
С ТОЧКИ НА ОКРУЖНОСТИ
С ХО,УО КООРДИНАТЫ ЦЕНТРА
С ОКРУЖНОСТИ
С С ЦВЕТ ПОСТРОЕНИЯ ТОЧЕК
5ЦВРООТ1НЕ С1РСС8<С,Х,У,ХО,У0>
1ЫТЕБЕК Х,У,ХО,УО,С
САШ Р01ЫТ<С,Х+Х0,У+У0)
САШ РОХНТ<С,У+ХО,Х+УО)
САШ Р01ЫТСС,У+Х0,-Х+У0)
САШ Р01ЫТ(С,Х+Х0,-У+У0)
САШ Р01НТ<С,-Х+Х0,-У+У0>
САИ. Р01ЫТ<С,-У+ХО,-Х+УО)
САШ Р01ЫТСС,-У+Х0,Х+У0>
САШ Р01ЫТ <С ,-Х+ХО, У+УО)
кетокм
БЫВ
Рассмотрим более подробно алгоритм построения окруж-
ности в секторе от 0 до 45 °. Введем для каждой точки Р
с координатами X, У квадрат расстояния 7) (Р) от истин-
ной окружности. Если Р лежит вне окружности, то квадрат
расстояния
Р (Р) = Х2 +У2 -Я2;
если Р пехал внутри окружности, то 7> (Р) = К2 - X2 - У2.
Чтобы на 1-м шаге определить, какая из двух точек 5/ или
7} будет аппроксимировать окружность на экране дисплея, надо
сравнить квадраты их расстояний 7>(3/) и О (7/) до истинной
окружности. Введем величину
Если <7/ < 0, то выбирается точка 5/; если 0, то выбирается
точка 7/.
Для вычисления <7/ можно получить простые рекуррентные
соотношения. На первом шаге (рис. 45, а) X — О, У = К и
Рис. 4.5. Выбор точек для построения окружности
64
аг = л(Г1)=/?2 +1 -л2 - [/?2-(Я-1)2-1] =з-2я.
Соотношения для произвольного (т + 1) -го шага зависят от
того, какая из двух точек 5, или Т, выбиралась на 7-м шаге.
Пусть на (7- 1)-мшаге Х/_х = X и У 1-1 = У. Если на 7-м шаге
была выбрана точка 5/ (рис. 45,6), то с учетом определения
6,, сделанного выше,
<4+1 = Л(5/+1) -Г>(7}+1) = (Х + 2)2 -У2 -К2 - [Л2 -
-(Х+2)2 - (У+1)2] = (X + I)2 - У2 -К2 - [Я2-
- (Х+ I)2 - (У+ I)2] +4Х + 6 = П(8^-О(Т{)+4Х1_1 +
+ 6 = 6/ + 4Х/~1 + 6.
Если на 7-м шаге была выбрана точка Т/ (рис. 4.5, в), то
= <7/ + 4(Х/_1 - У/_1) + 10. Аналогично можно разрабо-
тать алгоритмы построения более сложных кривых. Достоин-
ством таких алгоритмов является их линейность; для постро-
ения окружностей не требуется операций возведения в квадрат
и извлечения квадратного корня, которые на микроЭВМ вы-
полняются медленно. На основании этих вычислений получена
программа 4.3 построения окружности.
Программа 4.3. Пошаговое построение окружности
О
С Х0,Г0 - КООРДИНАТЫ ЦЕНТРА
С К РАДИУС ОКРУЖНОСТИ
С С - ЦВЕТ
С
зовнооттне С1нсее<хо,то,к,с>
1ИТЕ6ЕК Х0,Т0,К,С,Х,Т,0
С
С НАЧАЛЬНЫЕ ЗНАЧЕНИЯ
Х=О
т=к
0=3-2*К
С
С СТРОИМ ТОЧКИ В СЕКТОРЕ 45 ГРАДУСОВ
С
10 ТЕ ТХ.6Е.Т) 60 ТО 50
С
С КООРДИНАТЫ очередной точки найдены
С ИСПОЛЬЗУЯ СИММЕТРИИ ВЫВОДИМ ИХ НА ЭКРАН
с
САЫ_ СТКСЬВ<Х,У,ХО,ТО,С)
ТЕ (О.ЫГ.О) 60 ТО 20
0=0+4*(Х-Т)+10 ! ВЫБИРАЕТСЯ ТОЧКА Т
Г=Т-1 I ПРИРАЩЕНИЕ Г
60 ТО 30
20 0=Л+4»Х+6 I ВЫБИРАЕТСЯ ТОЧКА 5
30 Х=Х+1 I ОЧЕРЕДНОЕ ПРИРАЩЕНИЕ X
60 ТО 10
50 ТЕ <Х.ЕО.Т> САЫ_ СТКСЬВ<Х,Т,ХО,ТО,С)
КЕТОКН
ЕНО
В результате работы этой программы будут построены все
точки окружности в секторе а = 45 °, показанном на рис 4.3,
а остальные точки будут построены симметрично в программе
С1КСЬ8. Программы для построения более сложных изображе-
ний могут конструироваться многократным вызовом программ
УЕСТ1 и С1КСЬ8 с указанием необходимых параметров.
4.3. БИБЛИОТЕКА ПРОГРАММ ФОРМИРОВАНИЯ
ЭЛЕМЕНТОВ ИЗОБРАЖЕНИЙ
Графические примитивы строят в виде библиотек подпро-
грамм, совместимых с языками высокого уровня типа БЕЙСИК,
ПАСКАЛЬ, ФОРТРАН. Рассмотрим минимальный набор про-
грамм такой библиотеки, ориентированный на работу с цветным
растровым дисплеем, построенным на базе бытового цветного
телевизора «Юность». Использование библиотеки позволяет
на языке высокого уровня описывать геометрию выводимого
на экран изображения.
Кадр изображения содержит 256X256 точек. Каждая точка
выводится одним из четырех цветов. Управляющее устройство
дисплея позволяет быстро задавать цвет фона всего экрана
с помощью программы ЕКА8Е (С), которую на языке ФОРТРАН
можно вызвать оператором САЬЬ:
САИ. ЕКА8Е (С)
Параметр С определяет цвет всего экрана (С = 0 — черный,
С = 1 — красный, С — 2 — синий, С = 3 — зеленый).
Прежде чем вывести какую-либо точку на экран, нужно
осуществить ее привязку к требуемым координатам экрана дис-
плея. Это можно сделать с помощью программы РОЮТ:
СА1Х РО1ЫТ (С, X, V),
где С — цвет выводимой на экран информации; X, V - коорди-
наты (положение) первого выводимого символа. При этом
должно выполняться условие 0 < X < 255,0<У < 255.
Программа РОЮТ обычно используется для последующего
размещения в нужном месте экрана строки текста, который
выводится программой А8СП:
САЫ. А5СП (С," ТЕКСТ ,'М).
Здесь С — цвет выводимой на экран строки текста ТЕКСТ,
состоящей из Ы символов. Каждый символ в тексте программы
строится в матрице 5X7 точек. Одновременно на экран можно
вывести 16 строк символов по 32 символа в строке.
66
Единственную точку можно ввести с помощью программы
РКВ4ТР:
САЦ. РП1МТР (С, X, V),
где С — цвет выводимой точки; X и V - ее координаты на экра-
не дисплея.
Из более сложных примитивов достаточно уметь строить
отрезки прямых с помощью программы УЕСТ1:
САН. УЕСТ! (С, XI, У1, Х2, Т2),
где С - цвет отрезка; XI, VI и Х2, У2 - координаты соответ-
ственно начальной и конечной точек.
Программа 4.4. Построение графиков функций
С ОКАРТК - ПРОГРАММА ПОСТРОЕНИЯ ГРАФИКА
С НА ЦВЕТНОМ ДИСПЛЕЕ РАСТРОВОМ
С
с параметры:
С Х<Н),Т(М> -МАССИВЫ ЗНАЧЕНИИ ФУНКЦИИ Т=Р(Х)
С М -КОЛИЧЕСТВО ТОЧЕК ФУНКЦИИ
С ТОХ,ЮТ -ЗАДАВАЕМЫЕ РАЗМАХИ ПО ОСЯМ ХИТ
С МАСШТАБИРУЮТ РАЗМАХ ГРАФИКА
С
С ВЫЗЫВАЕМЫЕ ПРОГРАММЫ:
С ЕРАЗЕ<С) -РИСОВАНИЕ ФОНА
С РОТЫТ<С,Х,Т) -ПОЗИЦИОНИРОВАНИЕ ТОЧКИ
С РРТМТР<с,х,т) -вывод точки
С АЗСИ (С,'ТЕКСТ’,МТ) - ВЫВОД ТЕКСТА
С ЧЕСТТ<С,XI,VI,Х2,Т2> - РИСОВАНИЕ ВЕКТОРА
С
С ВЕРСИЯ 1-ФЕВРАЛЯ-86 ГОДА
С
ЗиВКОЫТТЫЕ ВКАЕТК (X,Т,М, ЮХ, ТОГ)
ТНТЕСЕР Н,Х«Н) ,Т<Ы) ,ТОХ,ЮТ,
и ТМАХ.ТМТН, I МТИ
х ХМАХ.ХМ1Ы, ! И МАХ ЗНАЧ. Ф-ИИ
х С, I УКАЗАТЕЛЬ ЦВЕТА
х 0Е1_Х,0Е|_Т, I ВЫЧИСЛЕННЫЕ РАЗМАХИ Ф-ИИ
х ЫХ,НТ,IX,ГТ I <Т-1)-Я И Т-Я ТОЧКИ ГРАФИКА
С
С
С
30
40
С
РИСУЕМ СИНИИ ФОН
САЦ ЕРАЗЕ<2)
РИСУЕМ КРАСНЫЕ ОСИ
С=1
00 30 1=15,256
САЦ РВТЫТРСС,1,240)
СОМТТМОЕ
00 40 1=1,240
САЦ РКТЫТРТС, 15,1)
СОНТТМШЕ
РИСУЕМ ТЕКСТ ’ТОК’
САЦ Р0ТЫТ<С,3,20)
САН АЗСИ <С, ’Т’ ,1)
САЦ РОТЫТ<С,3,35)
САЦ АЗСИ (С,'О’,1)
САЦ РОТЫТ<С,3,50)
САСЕ АЗСИ <С,'К',1)
I УКАЗАТЕЛЬ КРАСНОГО ЦВЕТА
У ОСИ Т
РИСУЕМ ТЕКСТ 'НАПРЯЖЕНИЕ' У ОСИ Т
САЕЕ РОТЫТ<С,150,245)
САЕЕ АЗСИ <С,'НАПРЯЖЕНИЕ',10)
С УСТАНАВЛИВАЕМ ЗЕЛЕНЫЙ ЦВЕТ ФУНКЦИИ
САШ Р01НТ<3,0,0>
С ИЦЕМ НАХ И М1Ы ЗНАЧЕНИЯ В МАССИВАХ ХИТ
ХМАХ=Х<1>
ХМ1Ы«Х<1>
ТМАХ-ТС1»
ТМ1Н-Т<1>
00 70 1=2,Н
ХЕ <Х<1).6Т.ХНАХ) ХМАХ=Х<1>
ХЕ <Х<1> .кТ.ХМХМ) ХМ1Л=Х<1>
ХЕ (V(Х>.БТ.ГМАХ) ТМАХ=Т<1>
ХЕ <Т С1> .ЦТ.ТМ1Н) ТМГ11=Т<1>
70 СОЫТХЫЫЕ
ОЕ|_Х=ХМАХ-ХМХЫ
1Е (ВЕЦХШТ.<1.*10Х)) 0ЕЬХ=1.»1ПХ
ВЕкГ«ГМАХ-ГМХЫ
ХЕ <ВЕ1Л.|_Т. СХ.мХОХ)) 0Е1Л=Х.«ХВГ
С ОПРЕДЕЛЯЕМ КООРДИНАТЫ ТОЧЕК ГРАФИКА В С001В. С МАС
ШТАБОМ
С СТРОИМ ВЕКТОРАМИ ОТ ТОЧКИ К ТОЧКЕ
ЫХ=Х5+ ((1 . м (X <Х> -ХМХЮ > /ВЕСХ> «240.
ЫТ=240. - С <Х .» СУ (X>-ТМХЫ)>/ВЕЦТ)«239.
00 80 1=2,МВ
ХХ=15* < С1.» СХ СХ) -ХМХН) >/ВЕЬХ>«240.
ХУ=240.-ССХ.« СТ <1 >-ТМХЮ >/0Е1.Т) «239.
С ЕСЛИ Ф-ИЯ РАВНА СО№Т РИСУЕМ ПРЯМУЮ ЛИНИЮ
ХЕ (ТМАХ.ЕО.ТНХМ) 17=150
С ВЕКТОРА, СОЕДИНЯЮЩИЕ ТОЧКИ ФУНКЦИИ РИСУЕМ КРАСНЫМ
САШ УЕСТХ СХ ,ЫХ,ЫУ, IX, ХТ)
ЫХ=ХХ
ЫТ=ХТ
С ВЫВОДИМЫЕ ТОЧКИ ГРАФИКА РИСУЕМ ЗЕЛЕНЫМ
САШ РКХЫТР(3,МХ,ЫТ>
80 СОЫТХЫЫЕ
РЕТикы
БЫВ
Прикладная программа 4.4 на языке ФОРТРАН позволяет
строить на экране графики функций V = Р (X), используя только
рассмотренные ранее подпрограммы. Функция передается в про-
грамму в виде таблицы из двух массивов Х(Ы) и У(М), где Ы —
количество точек, задающих функцию. Максимальный размер
графически отображаемой функции задается переменными
ГОХ и ЮУ.
Программа СКАРПС сначала рисует на синем экране красные
оси и текст, используя подпрограммы библиотеки. После этого
вычисляются масштабные коэффициенты БЕЬХ и БЕГУ, равные
соответственно ГОХ/240 и ЮУ/240; последовательно выбирают-
ся точки функции (элементы массивов Х(Ы) и У(Ы), определя-
ются координаты экрана XI и VI. Затем эти точки попарно
соединяются векторами. Например, если функция задана масси-
вом чисел (X, У) в виде
X .. 1, 2, 3, .. , 200
У .. 200, 199, 198, .. , 1
то в результате работы програм-
мы СКАР1К при ЮХ = ЮУ =
= 200 получится прямая, пред-
ставленная на рис. 4.6.
Интерактивную машинную
графику можно использовать как
для изучения сложных явлений и
проектирования технических из-
делий, так и для проведения
досуга.
V
200
150-
100-
50-
0
50 100 150 200
Рис. 4.6. Пример работы про-
граммы
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
4.1. Что такое машинная графика, в чем ее специфика?
4.2. Какая единственная команда необходима для построения на гра-
фическом дисплее сколь угодно сложных изображений?
43. Как построить прямые в окружности на графическом дисплее?
4.4. Используя минимальный набор программ библиотеки, составьте
программу, которая заштрихует синим цветом прямоугольник на экране
с координатами (5,5), (5, 50), (50, 50), (50, 5).
Г л а в а 5
ПРИКЛАДНЫЕ ПРОГРАММЫ
ДЛЯ НАУЧНО-ТЕХНИЧЕСКИХ РАСЧЕТОВ
5.1. НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ БИБЛИОТЕКИ
ДЛЯ НАУЧНО-ТЕХНИЧЕСКИХ РАСЧЕТОВ
Прежде чем программировать задачу, следует проверить, нет
ли в библиотеке научно-технических расчетов (БНТР) уже гото-
вой программы, реализующей ее алгоритм. Если такая програм-
ма имеется, то остается только подготовить в ней начальные дан-
ные, зарезервировать место в памяти для выходных данных и,
используя оператор САЬЬ, вызвать требуемую программу из
библиотеки, на выходе которой получится результат решения
задачи.
Например, рассматриваемая задача сводится к отысканию
решения системы п-линейных уравнений вида
аиХ1 +аих2 + ...+«1Лхл = 6М;
а21*1 + а22*2 + ••• + а2пХп = Ъг',
«Я 1*1 +а2и*2 +— +<^л*л =Ьп.
В матричном виде система запишется АХ = В. Здесь
Для решения матричного уравнения достаточно вызвать из
библиотеки программу
САИ. ЬАЕЬМР (А, В, 1Р1ДТ, Ы, 1А, X)
где в массивах А(Ы, Ы) и В (И) в качестве параметров передают-
ся значения элементов матриц А и В. После выполнения про-
граммы в массиве Х(Ы) будет находиться искомое решение си-
стемы уравнений; 1Р11Т и 1А - дополнительные параметры, свя-
занные с методом решения.
Первоначально библиотеки для научно-технических расчетов
использовались в больших ЭВМ и миниЭВМ, так как для их ра-
боты требовались значительные ресурсы. Однако расширение
возможностей микроЭВМ позволило использовать БНТР на
микроЭВМ, совместимых в ДВК и «Электроника-60». Библиоте-
ка БНТР представляет собой набор более 230 подпрограмм, ко-
торые для удобства разбивают на пять разделов.
Библиотека для научно-технических расчетов — это библио-
тека пользователя, состав которой определяется областью ре-
шаемых задач. В ее подпрограммах не осуществляется ввод-
вывод информации и поэтому в программах пользователя
должно обеспечиваться задание входной и выходной информа-
ции. Такая библиотека разработана как часть программного
обеспечения микроЭВМ, расширяющая их возможности в обла-
сти логико-математической обработки данных.
Все подпрограммы библиотеки написаны на проблемно-
ориентированном языке ФОРТРАН и оформлены в соответствии
с требованиями этого языка. Их можно использовать в школь-
ных курсах физики и математики, в точных теоретических рас-
четах, в инженерном проектировании, в лабораторном экспери-
менте.
Обращение к подпрограммам БНТР типа ЗОВКООТШЕ
осуществляется с помощью стандартного оператора САЬЬ,
за которым следует имя подпрограммы и список фактических
параметров, совпадающих по порядку, числу и типу с соответ-
ствующими формальными параметрами. Числа передаются в
70
подпрограмму либо как переменные в списке аргументов, либо
как константы в этом списке.
Обращение к подпрограмме типа РЦНСТЮЫ осуществляет*
ся с помощью имени этой подпрограммы, за именем следует
список фактических параметров. Отдельные подпрограммы
используют имя подпрограммы пользователя или функции
пользователя как элемент списка оператора САН,. В таком слу-
чае имя подпрограммы, находящейся в списке аргументов,
должно быть описано оператором ЕХТЕКЯАЬ в программе
пользователя.
При решении задач, использующих подпрограммы библиоте-
ки БНТР, пользователь должен в головной программе обес-
печить:
ввод исходных данных с внешнего устройства или задание
исходных данных в головной программе;
определение размерности массивов для всех данных,
используемых подпрограммами библиотеки;
приведение способов хранения данных в соответствие со
способами хранения, предусмотренными подпрограммами биб-
лиотеки;
определение фактических значений формальных параметров
подпрограмм;
организацию вызова подпрограмм библиотеки с помощью
оператора САН. или имени подпрограммы-функции;
вывод результатов решения задачи на внешние устройства
микроЭВМ.
Библиотека для научно-технических расчетов является
открытой библиотекой, т.е. пользователь может пополнять ее
новыми подпрограммами.
Для использования подпрограмм из библиотеки он должен
владеть основами программирования на языке ФОРТРАН.
5.2. СОСТАВ И ФУНКЦИИ БИБЛИОТЕКИ*
По функциональному назначению библиотека делится на
пять разделов:
линейная алгебра; численные методы анализа; статистика;
специальные функции; сервисные программы.
Линейная алгебра. Данный раздел включает подпрограммы,
выполняющие следующие функции.
Хранение матриц: запись всей матрицы или отдель-
ных строк и столбцов ее в виде вектора, вычисление индекса
* Данный параграф может быть использован преподавателями как
справочный материал по основному содержанию библиотеки.
в уплотненно хранимой матрице, изменение способа хранения
матриц.
Линейные преобразования: преобразование мат-
риц с помощью функций пользователя, операция сложения и вы-
читания матриц, умножения и деления матриц на скаляр. Про-
граммы преобразования обеспечивают табуляцию, сортировку,
перестановку, сложение и другие операции над строками и
столбцами матриц, транспонирование матриц.
Умножение и деление матриц: обращение
квадратных матриц, умножение, деление, транспонирование
матриц и их произведений.
Факторизация матриц и определение
ранга: разложение исходной матрицы в произведение двух
специальных матриц в зависимости от требований пользователя,
определение ранга исходной матрицы.
Решение систем линейных уравнений:
методом Гаусса и другими численными методами.
Анализ собственных значений: нахождение
собственных значений и собственных векторов действительных
несимметричных и симметричных матриц.
Численные методы анализа. Раздел включает подпрограммы,
выполняющие следующие функции: вычисление значения первой
производной и интеграла от полинома, вычисление корней поли-
нома, сложение, вычитание, умножение полиномов и другие
операции над ними.
Решение нелинейных уравнений: вычисление корней систе-
мы нелинейных уравнений с № неизвестными, заданной в век-
торной форме.
Решение уравнений: обыкновенных дифференци-
альных первого порядка и системы обыкновенных дифферен-
циальных первого порядка.
Численное интегрирование: вычисление опре-
деленного интеграла от функций, заданных таблично или выра-
женных через неэлементарные функции.
Статистика. Раздел включает подпрограммы, выполняющие
следующие функции.
Отбор данных: вычисление числовых характеристик
(математическое ожидание, медиану, дисперсию и др.), распре-
деление вероятностей случайных величин.
Корреляция и регрессия: выполнение корреля-
ционного и регрессионного анализа для зависимых переменных
и множества независимых переменных.
Анализ планирования: вычисление характеристик
для анализа многофакторного эксперимента.
Дискриминантный анализ: вычисление коэффи-
циентов дискриминантных функций и оценка их для каждого
наблюдения.
Факторный анализ: вычисление характеристик,
необходимых для факторного анализа.
Временные ряды: определение авто ковариаций и
взаимных ковариаций временных рядов и вычисление их сгла-
женных значений.
Непараметрические статистики: выполнение
проверки и сравнение одной и двух выборок измерением рас-
хождения между эмпирической и теоретической функциями рас-
пределения по критериям, выявляющим отклонения от прове-
ряемой гипотезы.
Образование случайных чисел: вычисление
равномерно и нормально распределенных случайных чисел.
Функции распределения: вычисление вероятно-
сти событий определенного типа (в зависимости от конкретного
закона вероятностей).
Элементарные статистики: определение элемен-
тарных статистических характеристик и классификация исход-
ных данных.
Специальные функции. Этот раздел включает подпрограм-
мы, выполняющие вычисление значений следующих специаль-
ных функций: гамма-функций, функций Бесселя, Неймана,
Кельвина, эллиптических интегралов, интегральных синуса и
косинуса, гиперболических функций.
Сервисные программы. Раздел включает подпрограммы, вы-
полняющие следующие функции: чтение матриц и векторов,
печать различных форм представления экспериментальных дан-
ных (гистограммы, функции распределения), печать матриц,
печать графиков функций, вычисление времени работы про-
граммного блока и т. д.
Необходимый состав и объем библиотеки для работы поль-
зователь определяет при генерации БНТР.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
5.1. Какие существуют возможности обращения к подпрограммам
БНТР?
5.2. Выделите разделы БНТР, которые можно использовать во вне-
классной работе по математике, физике, в кружках технического твор-
чества.
Глава 6
ИЗДАТЕЛЬСТВО НА СТОЛЕ
Каждый год стремительно растут возможности вычислитель-
ной техники. Появляются все более мощные и в то же время де-
шевые персональные компьютеры. Совершенствуются возмож-
ности выводных устройств. На смену матричным принтерам
приходит новое поколение лазерных принтеров.
6.1. ЛАЗЕРНЫЕ ПРИНТЕРЫ И ШРИФТЫ ДЛЯ НИХ
В матричном принтере изображение переносилось на бумагу
путем удара иголок и физически для 9 игольчатых принтеров
ограничивалось разрешением 3—4 точек на миллиметр. Для по-
вышения быстродействия разработчики предложили использо-
вать лазерный луч, который засвечивает точки, соответствующие
символам или картинкам на светочувствительном барабане.
Засвеченные участки при этом приобретают электрический за-
ряд. На эти заряженные участки происходит налипание очень
мелких частиц, красителя — тонера, который затем переносится
на бумагу и закрепляется на ней после подогрева. Так работает
лазерный принтер. За счет тонкой фокусировки с помощью
лазерного луча можно достичь более высокого разрешения.
Лазерные принтеры в настоящее время имеют разрешение 10 то-
чек на миллиметр, а лучшие модели могут достичь 100 и более
линий.
Такое разрешение позволяет в площадке, на которой рисует-
ся буква, изображать не только ее стилизованное изображение
в виде матрицы 7X9 точек, как было в первых матричных прин-
терах, а рисовать очень точное изображение символа, используя
на той же площадке матрицу 300X400 точек и более. На такой
матрице можно рисовать буквы, которые будут существенно
лучше выглядеть, как отпечаток с хорошей пишущей машинки,
и приближаться к полиграфическому качеству, которое мы ви-
дим в книгах.
Используя этот подход, для лазерных принтеров созданы
библиотеки полиграфических шрифтов различных гарнитур от
литературной, которой набрана книга, которую Вы держите в ру-
ках, до журнальной, которой набираются заголовки газет и жур-
налы.
Однако библиотеки шрифтов, в которых для каждой буквы
отводится матрица 300X400 точек, занимают довольно много
места в памяти. Развивая и совершенствуя шрифтовое обеспече-
74
ние, исследователи предложили различные способы описаний
букв. Наибольшее распространение получил способ, в котором
буквы описываются контурами, ограничивающими изображе-
ние буквы. Кроме сжатия описания такой подход позволил,
используя математические операции, производить автоматичес-
кое масштабирование букв. При данном способе достаточно
хранить одно описание буквы в каком-то базовом размере, из
которого программы автоматически строят и подставляют
на страницу большие буквы и для заголовков, и для основного
текста.
Описание букв в виде матриц нашло применение в лазерных
принтерах фирмы Хьюлетт-Паккард серии ЬазеНеС Для управ-
ления этими принтерами создан специальный язык РСЬ (Рпп1ег
соп1го1 1ап§аи^е — язык управления принтером). Контурно-
векторное описание шрифтов предложила фирма Адоби. Оно ис-
пользуется также в принтерах фирмы Эппл. Специальный язык
для управления этими принтерами и сами принтеры получили
название Ро$18спр1.
Оба направления описания шрифтов получили широкое
развитие, и появляющиеся все новые инструментальные средства
позволяют каждому пользователю персонального компьютера
и лазерного принтера создавать свои собственные шрифты и
целые шрифтовые библиотеки.
6.2. ТЕКСТОВЫЕ ПРОЦЕССОРЫ
И ПАКЕТЫ ДЛЯ ВЕРСТКИ
Параллельно совершенствовалось развитие программного
обеспечения для обработки текстовой и графической информа-
ции. Совершенствуя простые текстовые редакторы и докумен-
таторы, описанные в начале этой книги, разработчики создали
специальные программы — текстовые процессоры, которые
позволяют не только вводить и редактировать в компьютере
текст, но и задавать вашим документам полиграфическое офор-
мление. Например, текст может быть выровнен по краям доку-
мента, отдельные слова могут быть выделены полужирным на-
чертанием, для заголовка выбран определенный размер букв
и сделано множество других возможностей.
Наибольшее распространение для подготовки книг и других
изданий получил текстовой процессор фирмы Микрософт
М8-\Уогд. Для этого пакета во ВНИИ полиграфии и других
организациях проведена большая работа по его русификации.
В настоящее время пакет умеет переносить тексты на русском и
других языках народов СССР. Для него написаны программы,
обеспечивающие вывод с этого пакета на различные выводные
устройства: от матричных и лазерных принтеров до профессио-
нальных выводных устройств высокого разрешения, так назы*
ваемых фотонаборных и лазерных гравировальных автоматов.
Это дает возможность получать подготовленный Вами документ
не только на бумаге, а и на фотопленке и сразу на печатной
форме, для того чтобы с нее сделать печать тиража Вашего
документа.
Развитие графических возможностей персональных компью-
теров позволило от простейших графических библиотек перей-
ти к созданию совсем другого принципа работы с компьютером
в режиме графического интерфейса. Широкое распространение
получил подход (Жа1 Той 8ее к ОД1а1 Уои Се1 - Что
Вы видите (на экране), то и получите (на выводном устрой-
стве) . Этот принцип означает, что изображение, которое отобра-
жается на дисплее компьютера, с точностью до каждой точки
будет выведено на выводное устройство. Такая возможность
позволяет построить специальные графические программы,
позволяющие техническому редактору на экране дисплея видеть
все элементы полиграфического оформления издания, шрифто-
вые выделения и общий вид полосы издания.
Из программных продуктов для верстки изданий наиболь-
ший успех получили программы Уеп1ига РиЫкЬег, распростра-
няемые фирмой Рэнк Ксерокс, и пакет Ра^еМакег фирмы Алдус.
Таким образом, достижения в области лазерной техники,
вычислительной техники, программного и шрифтового обеспе-
чения привели к появлению настольных издательских систем.
6.3. РАЗВИТИЕ НАСТОЛЬНЫХ ИЗДАТЕЛЬСКИХ СИСТЕМ
Появившись пять лет назад, настольные издательские систе-
мы (НИС), построенные на базе персонального компьютера,
лазерного принтера и плоского скенера, начали широко приме-
няться в издательствах, особенно последние два года.
Применение НИС в СССР имеет несколько особенностей.
6.4. ВЫБОР АППАРАТНЫХ СРЕДСТВ ДЛЯ НИС
В силу действовавшего до недавнего времени эмбарго
в СССР практически отсутствовали компьютеры фирмы Арр1е
типа МасшЮзЬ и лазерные принтеры с языком описания полос
Роз18спр1, с которых ведут начало НИС. С другой стороны,
в СССР достаточно активно развивается направление 1ВМ подоб-
ных компьютеров, число которых в СССР в настоящее время
более 1 млн. шт. При этом простейшие модели таких компью-
теров производятся в Советском Союзе с использованием
отечественной элементной базы. Наиболее распространенным
компьютером для подготовки изданий становится стандартный
АТ — совместный компьютер с монитором типа УСА. В каче-
76
стве лазерных принтеров наиболее распространенным стал
ЬазегЗе! 8ег11 или совместимые с ним модели и Ьа$ег1е12000 для
вывода на формат АЗ. В качестве сканирующих устройств
в издательствах используются скенеры типа 8сап1е1+, особенно
для ввода и подготовки штриховых иллюстраций.
В большинстве издательств такие комплекты используются
пока в виде автономных рабочих мест (АРМ). Однако в неко-
торых крупных издательствах, например "Юридическая литера-
тура”, ’Ъысшая школа”, давно и активно внедряющих процессы
автоматизации, редакционные АРМы объединяются в локальные
сети с использованием в качестве файловых серверов УАХ
подобные машины.
65. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ НИС
До использования прикладного программного обеспечения
в НИС для подготовки русскоязычных изданий необходимо бы-
ло решить вопросы русификации основных пакетов. Возможны
несколько уровней русификации. Самый простой состоит в ис-
пользовании драйверов клавиатуры и экрана, позволяющих вво-
дить и редактировать тексты на русском языке.
Следующей проблемой при верстке изданий в полиграфи-
ческих форматах является встраивание алгоритмов русских пе-
реносов, имеющих достаточно сложный алгоритмический вид
и требующих для точного решения хранения больших словарей
исключений.
Для более полного удобства работы с системой для пользо-
вателей, не владеющих русским языком, является полная
русификация всех сообщений прикладной системы и наличие
справочной информации на русском языке. При поставках
программных систем в Советский Союз необходимо учитывать,
что более широкое распространение могут иметь системы, име-
ющие возможность настройки или встраивания других языков
народов СССР, которых более 180. Большая часть из них постро-
ена на кирилической основе и имеет от 3 до 15 добавочных зна-
ков. Наиболее распространены Русский, Украинский и Белорус-
ский. Однако в рамках процессов возрождения и развития на-
циональных культур, бурно идущих в стране, существенно повы-
шается спрос на издательские системы именно на довольно ред-
ких языках, например Якутском, Чукотском и т. д. Для повы-
шения конкурентоспособности программные системы должны
быть достаточно гибкими, чтобы в идеале сам пользователь
настраивал их на языковое применение вплоть до клавиатурных
раскладок.
В большинстве НИС в настоящее время применяют обще-
употребительные пакеты зарубежного производства. Для про-
цессов набора и редактирования особенно книжной продук-
ции без сложного формульного и табличного набора широкое
распространение получил пакет фирмы М1сго$ой М8 \Уоп1.
Активно используются версии ХУогс! для РС 4.0 и 5.0 и 5Уогд под
\Унк1о^5. Несколькими предприятиями в СССР разработаны ру-
сификаторы 5Уог<1, дающие возможность работать с русскими
шрифтами, переносами и сообщениями экрана. Существуют вер-
сии ХУогй для работы с Украинским и Белорусским языками и
практически отсутствуют для других языков.
Для сложных видов формульного набора в НИС находит
применение пакет ЕХАСТ, особенно после его улучшения, про-
веденного в нашем институте, и доведения возможностей до раз-
решения лазерного принтера. В институте разработан собствен-
ный пакет для формульного набора ИНПОЛФОРМ и ведется
разработка пакета для табличного набора.
В качестве верстальных пакетов получили распространение
пакет УепТига РиЬНзЬег фирмы Валк Хегох и пакет Ра^еМакег
фирмы А1ЙИ8. Пакеты стали активно распространяться особенно
после проведения их полной русификации фирмами-разработ-
чиками с участием советских издательств.
6.6. ШРИФТЫ ДЛЯ НИС
Наличие качественных шрифтов для НИС является ключе-
вым фактором широты их распространения на рынке. Выбор
в качестве базовых лазерных принтеров типа ЬазепГеТ предопре-
делил начальный формат описания полосы в виде языка РСЬ.
В настоящее время многими организациями в Советском Союзе
в растровом виде разработаны комплекты кирилических шриф-
тов -для Ьа$ег1е1. Например, ВНИИ полиграфии распространяет
шрифты пяти гарнитур ТипТаймс, Журнально рубленую, Новую
газетную, Антикву в диапазоне кеглей от 6 до 52. Для подготов-
ки символов использовалась технология конвертирования ранее
оцифрованных контуров знаков для профессиональных фото-
наборных систем в битовые карты для разрешения 300 точек
на дюйм и их последующая корректировка в пакетах типа ТУре
Еоипбгу. В настоящее время многими организациями в СССР
ведется разработка дополнительных знаков для национальных
языков и сложных видов набора. Технология контурно-вектор-
ных шрифтов в Советском Союзе развита слабо. В основном
кирилические наборы шрифтов были сделаны по заказу круп-
ных издательств в закрытых форматах для профессиональных
систем 1дпо1уре, Мопо1уре, ВегШоМ, 8сап1ехС Совместное пред-
приятие Параграф начало предлагать шрифты в формате Роз1-
8спр1 и Тгие Туре. Но, как отмечалось выше, в СССР практически
78
отсутствуют выводные устройства в Ро818спр1 и не следует
ожидать их широкого распространения из-за отсутствия отече-
ственной элементной базы для их производства.
Активность на Советском рынке начала проявлять фирма
РгозуЛет через свое совместное предприятие Интермикро,
предлагая и поставляя издательствам НИС с возможностью
выхода на компактные фотоавтоматы типа ВйтйеНег.
6.7. ПЕРСПЕКТИВЫ РАЗВИТИЯ
В СССР с внедрением редакционных комплектов на базе
НИС началось активное развитие автоматизации редакционно-из-
дательских процессов. Типичная конфигурация НИС построена
на базе 1ВМ совместимых АТ и более мощных компьютерах,
лазерных принтерах типа ЬазегЗе! формата А4 и АЗ и настольных
плоских скенерах типа $сап1е1.
Проведена русификация общеупотребительных пакетов для
набора и верстки простых и сложных изданий \Уогб, Ехас1,
Ра^еМакег, УепТига.
Для лазерных принтеров типа Еазег1е1 разработана большая
библиотека кирилических шрифтов и спецзнаков. Начаты рабо-
ты по производству шрифтов в формате Рол 8спр1.
Проводятся работы по созданию конверторов для стыковки
НИС с профессиональными фотоавтоматами.
В крупных издательствах началось внедрение полных изда-
тельских систем с сетевой поддержкой и организацией издатель-
ских баз данных на базе УАХ, подобных ЭВМ.
Практически отсутствуют настольные системы обработки
цветных иллюстраций.
По прогнозу будут пользоваться успехом более специализи-
рованные программные пакеты, предназначенные специально
для подготовки газетной, журнальной, книжной, акцидентной
продукции после их русификации с учетом национальных осо-
бенностей. Перспективны работы по совместной русификации
с использованием от западных партнеров технических средств
и базового программного обеспечения, а от советских — под-
готовленного шрифтового обеспечения, знаний особенностей
национальных языков народов СССР и внедрение конкретных
технологий с поддержкой качества на всех стадиях от набора
до печатных оттисков.
Приложение 1. Функции экранного редактора
Клавиша ДК Функция Описание функции
0 • <НАЧАЛО СГРОКИ> . <ВСТАВИТЬ
СГРОКУ>
? <ВЫБОР> ССБРОО
1 0 < СЛУЖ>
1 V <СПРАВ>
А ! <СТИРСТ> <ВОССТРК>
<слово>
1
<СМЕРЕГ>
2 <КОНСТРОК> ССТИРКО
3
<БУФЕР>
Перемещает указатель в начало следу-
ющей (с учетом направления) строки
Вставляет пустую строку, положение
курсора не изменяется. Вставить пус-
тую строку можно также с помощью
клавиши < ВК>
Определяет начало интервала выбора
Отменяет действие функции <СЛУЖ>;
отменяет начало выбора
Служебная функция для выполнения
сложных функций и их повторения
Функция для получения справочной
информации. <СПРАВ> после звуко-
вого сигнала выдает диагностическое
сообщение, в остальных случаях -
справочную информацию продолжение
информации - повторное нажатие
<СПРАВ> . <ВВОД> или любая дру-
гая функция возвращает рабочий экран
Стирает строку справа от курсора до
конца строки включительно
Восстанавливает последнюю стертую
строку, вставляя в файл содержимое
буфера строки
Перемещает курсор в начало следую-
щего слова с учетом заданного направ-
ления (функции <ВПЕРЕД> и
<НАЗАД>)
Заменяет буквы верхнего регистра
буквами нижнего и, наоборот, в интер-
вале выбора или, если его нет, в стро-
ке, найденной по заданному образцу
Перемещает курсор в конец строки
Стирает строку справа от курсора.
Ограничитель строки не стирается
Очищает буфер сбора и записывает в
него текст из интервала выбора, удаляя
этот текст из файла
Вставляет в файл содержимое буфера
сбора
Клавиша ДК Функция Описание функции
<вниз>
(СТРЕЛКА
ВНИЗ)
<АБЗАЦ>
4 <ВПЕРЕД>
<КОНЕЦ>
5 <НАЗАД>
<НАЧАЛО>
6 <СТИРЗНАК> <ВОСТЗНАК>
и < ВЛЕВО
<— (СТРЕЛКА ВЛЕВО)
<ДОБАВИТЬ>
—> <ВПРАВО> (СТРЕЛКА ВПРАВО)
< СПЕЦ>
7 <СТРАНИЦА>
<КОМАНДА>
I
V
Перемещает курсор на строку вниз
Перемещает курсор в начало следую-
щего - с учетом направления - абзаца
(по умолчанию - 16 строк)
Задает прямое направление .для всех
операций - от начала к концу файла.
Завершает ввод образца для поиска
(функция <ПОИСК>)
Перемещает курсор в конец файла
Задает обратное направление для всех
операций - от конца к началу файла.
Завершает ввод образца для поиска
(функция <ПОИСК>)
Перемещает курсор в начало файла
Стирает символ справа от курсора
Восстанавливает последний символ,
стертый по <СТИРЗНАК> или <ЗБ>
Перемещает курсор на одну позицию
влево
Добавляет к содержимому буфера сбо-
ра текст из интервала выбора, удаляя
этот текст из файла
Перемещает курсор на одну позицию
вправо
Вставляет в файл код (в десятичной
системе) служебного знака, который
нельзя вставить обычным способом
Перемещает курсор в начало следую-
щей (с учетом направления) страницы.
По умолчании страница ограничивается
знаком <ПФ>
Функция, необходимая для выполне-
ния любой из команд редактора. В от-
вет на подсказку КОМАНДА в верхней
части экрана пользователь указывает —
полное или сокращенное - имя коман-
ды и, если требуется, переключатели,
завершая ввод функцией <ВВОД>.
Перечень команд редактора приведен в
приложении 3
Клавиша ДК Функция Описание функции
<ДАЛЕЕ>
<ПОИСК>
<СТИРСЛОВ>
<ВОСТСЛОВ>
<ВВЕРХ>
(СТРЕЛКА
ВВЕРХ)
<ЗАМЕНИТЬ>
<ВВОД>
< ВМЕСТО
Продолжает поиск. Образец для поиска
и направление поиска указаны в по-
следней функции <ПОИСК>
Разыскивает в файле строку текста,
указанную в качестве образца для по-
иска, в заданном направлении в ответ
на подсказку ИЩУ: в верхней части эк-
рана пользователь указывает образец
для поиска, завершая ввод задани-
ем направления поиска (функция
<ВПЕРЕД> или <НАЗАД>)
Стирает слово (символы справа от кур-
сора в пределах слова)
Восстанавливает слово, вставляя в
файл содержимое буфера слова
Перемещает курсор на строку вверх
Заменяет интервалы выбора содержи-
мым буфера сбора, даже если послед-
ний и пуст. Если интервал выбора не
задан и курсор расположен на строке,
найденной в результате поиска, то за-
меняется найденный образец
Функция для завершения ввода ко-
манд редактора. Если редактор выда-
ет справочную информацию или диаг-
ностическое сообщение, функция
<ВВОД> возвращает рабочий экран
Если курсор расположен на строке,
найденной в результате поиска, то най-
денный образец заменяется содержи-
мым буфера сбора и выполняется
функция <ДАЛЕЕ>
Приложение 2. Служебные функции и клавиши
Функция или клавиша Действие
<вк> Вставляет пустую строку. Курсор переносится в начало новой строки
<пс> Стирает слово слева от курсора. Курсор и остаток стро- ки сдвигаются влево. Нижние строки сдвигаются вверх.
<ЗБ> Стирает символ слева от курсора. Курсор и остаток строки сдвигаются влево. Нижние строки сдвигаются вверх. Может использоваться для исправления вводимо- го ответа на подсказку редактора
СУ/С Прекращает выполнение любого процесса, выполняемо- го редактором. Редактор показывает часть файла, содер- жащую курсор, и подает звуковой сигнал. Редактор игнорирует СУ/С, если в этот момент никакой процесс не выполняется.СУ/С в командном режиме передает управление операционной системе
СУ/Ц Стирает сторону слева от курсора до начала строки. Если курсор находится в начале строки, то стирается предыдущая строка и верхние строки сдвигаются вниз. Может использоваться для исправления вводимого отве- та на подсказку редактора
СУ/XV Обновляет рабочий экран. Осуществляет возврат к ра- бочему экрану, когда редактор выдает справочную ин- формацию или диагностическое сообщение
СУ/2 Действие аналогично СУ/С
П ри л о же н и в 3. Команды программы К 52
1 ДЕЙСТВИЕ КОМАНДЫ !
( КОМАНДА
1 СкЕАЙ РАЗТЕ 1 Очицает буфер сбора 1
! ! СкОЗЕ ! Закрывает дополнительный! !выходной файл !
1 I ЕХ1Т I Закрывает все открытые ! !файлы !
1 ! ! ! ЕЮ. ! Переформатирует текст в ! интервале выбора о соот- I (ветствии с заданной пра- ! (вой границей текста I
1 I ! 1НСШ0Е ЫЫИ РАСЕ8 1 Копирует страницы из до-! !полнительного входного ! (файла !
! 1 1 1НСШ0Е МММ 1.1НЕЗ I Копирует строки из до- ! полнительного входного I !файла !
I ! 1НСШ0Е КЕЗТ 1 Копирует остаток допол- ! (нительного входного файла!
1 1 ! 1 ! кЕАКЫ I Начало определения мак-! !ро> все функции и команды! (редактора, поданные после! (Хеагп, записывается в бу-! !фер макро !
I I 1 <СЛ31>8 ! Конец определения макро.! (Выполнения макро не про- ! (исходит !
1 I <служ>х ! Выполняет ранее опреде- I (леннуи макро !
! 1 I цосац снач.значениес иагзз ( Выполняет перенумерации 1 (локальных меток ассембле-1 (ра I
! ! СОРЕМ 31НРОТ СП* ( Открывает дополнительный! (входной файл 1
1 ! сореы зоитрит спф ! Открывает дополнительный! (выходной файл !
! ! РОКСЕ ( Очицает дополнительный I (выходной файл 1
1 ! ОО1Т ( Очицает все открытые вы-! (ходные файлы !
! ! ЗЕТ СЕЫТ1ТГ ЗРАОЕ ЫЫЫС кТЫЕЗЗ ! Определяет страницу по • (числу строк !
1 1 ! 8ЕТ СЕНТХТТ ЗРАВЕ “СТРОКА* ! Определяет страницу по ! (строке маркера (один или ! (несколько символов) (
1 I ЗЕТ СЕЙТЦУ 38ЕСТ1ОИ ЫЫЫСкХНЕЗЗI Определяет абзац по чис-1 !лу строк !
! ! ЗЕТ СЕЫТ1ТТ 35ЕСТЮИ "СТРОКА" ( Определяет абзац по ( (строке маркера !
I 1 + ВЕТ С5ЕАРСН ЗВЕМЕКАи ( Задает режим поиска, в ( (котором соответствия ре- 1 -+ +
I КОМАНДА I ДЕЙСТВИЕ КОМАНДЫ I
I 8ЕТ СЗЕАКСН ЗЕХАСТ
I 8ЕТ СЗЕАКСН ЗВЕ61Н
I ЗЕТ СЗЕАКСН ЗЕНО
! ЗЕТ СЗЕАКСН ЗВООНОЕО
I ЗЕТ СЗЕАКСН ЗОНВООНОЕО
I ЗЕТ ТАВЗС ОТСТУПЗ
I ЗЕТ НОТАВЗ
I 8ЕТ С1КАРС ННЗ
ЗЕТ НОЫКАР
> 5К1Р ННН РАСЕ8
! ЗК1Р ННН 1.1 НЕЗ
I ЗК1Р КЕЗТ
। ставзз Апиизтс+-зннн
I ыясте ннн РАОЕЗ
। икс те ннн инее
! ЫК1ТЕ КЕЗТ
I ЫК1ТЕ ЗЕСЕСТ
!гистров при сравнении с I
• образцом не требуется I
I Задает ремим поиска, в I
(котором требуется соот- I
(ветствие регистров при I
(сравнении с образцом !
I Задает ремим поиска, в I
(котором курсор помечается!
(в начало найденной строки!
! Задает ремим поиска, в !
(котором курсор помечается!
!в конец найденной строки !
! Задает ремим поиска, в 1
(котором поиск идет в пре-!
(делах страницы !
! Задает ремим поиска, в !
(котором поиск идет по !
(всему файлу !
I Разрешает форматирование!
(знаков табуляции !
I Запречает форматирование!
(со специальной обработкой!
(знаков табуляции !
1 Задает лравуи границу !
(текста и разрешает сверт-1
(ку слов I
! Отменяет свертку слов !
! Пропускает страницы в !
(дополнительном входном (
(файле I
I Пропускает строки в до- !
!лолнительном входном фай-!
! ле 1
! Пропускает остаток файла!
! Изменяет значение абзац-!
!ного отступа !
! Записывает страницы в (
(дополнительный выходной !
!файл I
! Записывает строки в до- !
!полнительный выходной !
(файл (
I Записывает остаток файла!
!в дополнительный выходной!
!файл (
I Записывает интервал вы** !
!бора в дополнительный еы~!
!ходкой файл !
Приложение 4. Функциональные клавишии команды для работы
с программами редактирования и поиска
-Функциональные клавиши программы редак-
тирования -
Стрелка вниз — сдвиг маркера на следующую запись. Если маркер
находится в последней строке, то на экран выводится следующая страни-
ца (15 записей) и маркер устанавливается на ее первую запись.
Стрелка вверх - сдвиг маркера вверх на предыдущую запись. Если
маркер находится в первой строке, то на экран выводится предыдущая
страница и маркер устанавливается на ее последнюю запись.
Стрелка вниз — влево — вывод на экран следующей страницы. Мар-
кер устанавливается на первую запись.
Наклонная стрелка - переход в начало базы данных. На экран выво-
дится первая страница и маркер устанавливается на первую запись.
Стрелка вниз с точкой — переход в конец базы данных. На экран
выводится последняя запись, и маркер устанавливается за последней
записью, т.е. приготовлен для ввода в «хвост» базы данных новой за-
писи.
СУ/С — выход из редактора без сохранения текущего состояния базы
данных.
-Команды программы редактирования
В - ввести запись в строку, указываемую маркером. Если маркер на-
ходится за последней записью, то новая запись дописывается в «хвост»
базы данных. Если маркер указывает на конкретную запись, то происхо-
дит раздвижка строк и под этим номером вводится новая запись. В про-
цессе ввода редактор запрашивает значения столбцов, выдавая в каче-
стве подсказки имена столбцов. При вводе контролируется тип столб-
цов. Вводимые значения столбцов появляются в соответствующих пози-
циях экранной таблицы, если столбец выведен на экран.
У - удалить записи, начиная с текущей. Запрашивается число удаля-
емых записей. Записи стираются с экрана и удаляются из базы данных.
Если удаляемые записи не являются последними, то происходит подтяги-
вание расположенных ниже записей. Если введенное число удаляемых за-
писей превышает число оставшихся записей, то удаляются все записи,
начиная с текущей до конца базы данных.
3 - заменить запись. Удаляется текущая запись и под этим номером
вводится новая запись.
С - просмотреть столбец текущей записи. Запрашивается номер
столбца, после чего в командную строку выводится значение столбца не-
зависимо от того, выведен столбец на экран или нет.
ЗС - заменить значение столбца текущей записи. Запрашивается но-
мер столбца, после чего значение столбца удаляется из базы данных и из
поля экранной таблицы, если столбец выведен на экран, и запрашивается
новое значение столбца.
Р - редактировать текстовое значение столбца текущей записи.
Запрашивается номер столбца, после чего значение столбца удаляется из
базы данных и поля экранной таблицы и появляется в поле командной
строки. Далее оно может быть отредактировано средствами строчного
редактора. Для числовых данных (типы 1 и 2) команда работает анало-
гично комацце ЗС.
БФ - переслать текущую запись в специальный внутренний буфер
редактора.
ВБ — ввести запись из буфера редактора в строку, указываемую
маркером. Если маркер находится за последней записью, то новая запись
дописывается в «хвост» базы данных. Если маркер указывает на кон-
кретную запись, то происходит раздвижка строк и под этим номером
вводится новая запись.
ВЗ - заменить текущую запись на запись из буфера редактора.
ВС - ввести потоком значение столбца. Запрашивается номер столб-
ца, а затем его значение. После ввода значения столбца происходит сдвиг
маркера на следующую запись и повторяется запрос значения столбца
уже для этой записи и т. д. Выход из режима ввода осуществляется по на-
жатии клавиши <СУ/С>. Значения других столбцов записей не изменяют-
ся. При выходе на конец базы данных порождается новая запись, имею-
щая во всех столбцах, кроме вводимого, пустые значения.
О - найти значение столбца, заданное образцом. После набора коман-
ды запрашивается номер столбца и образец. Для числовых данных (ти-
пы 1 и 2) образец должен полностью задавать искомое число. Для сим-
вольных данных допускается задание начальной подстроки. Задание об-
разца для нулевого столбца используется для вывода на экран записи
с требуемым номером. Поиск ведется от записи, следующей за текущей,
до конца базы данных и от начала базы данных до текущей записи. Если
искомое значение столбца найдено, то на экран выводится страница,
начиная с записи, содержащей найденное значение столбца. Если столбец
не найден, то об этом выдается информационное сообщение.
ОЗ - найти образец с заменой. Запрашиваются номер столбца (зада-
ние нулевого столбца не допускается), образец и новое значение столбца.
После этого выполняется просмотр базы данных. Все значения задан-
ного столбца, соответствующие образцу, заменяются новым значением.
По окончании просмотра базы данных выдается информационное сообще-
ние о количестве произведенных замен, и если замены были, перево-
дится на экран текущая страница.
К - выйти из редактора с сохранением текущего состояния базы
данных.
Т - настроить экранную таблицу аналогично тому, как это было
описано в программе создания базы данных.
ТС - запросить номер стандартной экранной таблицы (цифра от 1
до 4) и перевести экранную таблицу в соответствующем формате.
ЗТ - записать формат текущей экранной таблицы в качестве стан-
дартной. Запрашивается номер стандартной экранной таблицы (цифра
от 1 до 4) и под этим номером запоминается текущая экранная таблица
в описании базы данных.
ИС — выдать информации о столбцах. Экран гасится и выводятся
в четыре колонки сведения о столбцах. По каждому столбцу выдаются
номер, имя, тип и число занимаемых на экране позиций, если столбец
выводится на экран.
ПР - ввести пароль защиты базы данных. Выдается запрос, в ответ
на который вводятся от 1 до 4 символов, которые запоминаются как
новый пароль защиты данных. Старый пароль защиты (если он был)
теряется.
? - выдать информации о командах. Экран гасится и вводится
список представленных команд и функциональных клавиш редактора.
• При вводе значения столбца допускается пустое значение (нажима-
ется только одна клавиша <ВК>). В экранной таблице пустое значение
выводится как незаполненное поле столбца. При запросе значения столб-
ца по команде С выдается сообщение «Нет значения».
— запросить повторные значения столбца предыдущей записи при
выполнении команд В, 3, ЗС, ВС; в ответ на запрос значения столбца при
нажатии клавиши <ТАБ> может быть повторено значение этого же столб-
ца из предыдущей записи. При этом значение столбца появляется в ко-
мандной строке и по нажатии клавиши <ВК> заносится в базу данных.
Нажатием клавиши <СУ/С> можно отказаться от этого значения; при
этом оно удаляется из командной строки и повторяется запрос значения
столбца. Значение столбца символьных типов (типы 3 и 4) при появлении
в командной строке может редактироваться.
— Функциональные клавиши программы по-
иска —
Стрелка вниз - сдвиг маркера вниз с выводом на экран следующей
активной записи, если она не выведена на экран. При выходе на конец
базы данных в командную строку выдается информационное сообщение
о числе активных записей в базе данных.
Стрелка вверх - сдвиг маркера вверх на предыдущую активную
запись.
Стрелка влево — вниз — вывод на экран страницы. Выводятся только
активные записи, маркер устанавливается на первую выведенную запись.
При выходе на конец базы данных выдается информационное сообщение
о числе активных записей в базе данных.
Наклонная стрелка - переход в начало базы данных. Информацион-
ная часть таблицы гаснет.
СУ/С - выход из программы поиска.
СБР - сброс введенных условий поиска.
- Команды программы поиска -
С - посмотреть столбец текущей записи.
УС - ввести условие поиска. Экран гаснет и выполняется ввод усло-
вия, как было описано выше. Условие добавляется к ранее введенным
условиям.
СБ — сброс введенных условий поиска (то же, что и клавиша
<СБР>).
Ч - выдать частотную характеристику столбца. Запрашивается номер
столбца, для которого строится частотная таблица. Строка таблицы со-
держит значение столбца, число появлений этого значения в активных
записях и процент от общего числа активных записей. Частотная таблица
вводится на экран или печать (по запросу задается пользователем). При
выводе на печать таблице может предшествовать заголовок. Частотная
таблица формируется, если число использованных значений не превы-
шает 48.
ЧД — выдать частотную характеристику столбца в виде графической
диаграммы. Для заданного столбца выводится частотная таблица, содер-
жащая значение столбца, число появлений этого значения в активных
записях и процент от общего числа активных записей. Процентные соот-
ношения дополняются горизонтальными диаграммами, позволяющими
визуально оценить количественные характеристики использования значе-
ний столбца. Максимальное число использования значений столбца рав-
но 24.
Г - выдать таблицу и графическую диаграмму, отражающую появле-
ние данных в труппах, образованных для заданного столбца. Таблица
вводится на экран или печать (по запросу задается пользователем).
При выводе на печать таблице может предшествовать заголовок.
ИС - выдать информацию о столбцах (аналогично программе редак-
тирования) .
ИУ - выдать информацию о выведенных условиях поиска. Экран
гасится и выводятся заданные условия поиска, как было показано выше.
ИЗ - выдать информацию о числе активных записей. В командную
строку выдаются информационные сообщения о числе активных записей
в базе данных.
? — выдать информацию о командах программы поиска.
Т — настроить экранную таблицу аналогично тому, как это было опи-
сано в программе создания базы данных.
ТС - запросить номер стандартной экранной таблицы (цифра от 1
до 4) и перевести экранную таблицу в соответствующем формате.
БД — переслать активные записи в новую базу данных. Запраши-
вается имя новой базы данных, создается база данных с этим именем
и в нее осуществляется пересылка активных записей.
ВЧ - вычислить выражение. Вводится по запросу арифметическое
выражение и выполняется его вычисление. Результат помещается во вто-
рую командную строку.
П - печатать активные записи базы данных.
ЗФ - записать последний заданный формат печати в файл, имя файла
запросить в командной строке. Стандартное расширение имени файла -
РРЁ. Задание формата печати происходит по команде П, которая должна
предшествовать настоящей команде. После настройки формата печати
независимо от того, выполнялась ли печать или произошел отказ от печа-
ти, может быть выполнена запись формата печати.
ПФ - печатать активные записи базы данных по заданному формату.
Запрашивается имя файла, содержащего формат печати, и выполняется
печать. Если формат печати не соответствует базе данных, об этом выдает-
ся диагностическое сообщение.
ПД - печатать базу данных в виде документа по заданному шабло-
ну. Запрашивается имя шаблона, выполняется настройка печати и произ-
водится печать.
К - выйти из программы поиска (то же, что и клавиша <СУ/С>).
Функциональные клавиши «стрелка вниз» и «стрелка влево - вниз»
используются для просмотра активных записей базы данных.
Приложение 5. Команды графического редактора
На базе расширенного пакета подпрограмм построения графических
примитивов авторами был разработан графический редактор, предназна-
ченный для построения на ДВК с графическим контроллером произволь-
ных изображений, их редактирования и хранения в виде специальных
графических файлов.
Загрузочный модуль графического редактора имеет размер 45 бло-
ков и работает под управлением ОС ДВК.
После запуска командой Р1Ш редактор запрашивает имя входного
и выходного файлов. При создании нового файла вместо имени входного
файла нужно нажать клавишу <ВК>. Графические файлы имеют свою
внутреннюю структуру, в которой содержится последовательность ко-
манд редактора, необходимая для воспроизведения изображений на экра-
не. При указании имени входного файла последовательность команд
автоматически выполняется, т.е. в графическом файле хранится вся исто-
рия рисования изображения.
После отрисовки изображения или обнуления экрана, в случае созда-
ния нового файла, редактор переходит в режим команд. В этом режиме
по экрану можно перемещать курсор (точку пересечения двух прямых на
экране), а также выполнять команды по построению изображения.
Перемещение курсора. Клавишами «стрелка вверх», «вниз», «впра-
во», «влево» курсор перемещается в соответствующем направлении с ша-
гом на 1 или 10 точек. Для смены величины шага перемещения нужно
последовательно нажать клавиши <АР2> и <Н>. При их повторном на-
жатии происходит возврат к противоположному шагу перемещения.
Команды редактора. Для выполнения команд редактора необходимо
нажать одну из клавиш алфавитной клавиатуры. При этом для некоторых
команд курсор исчезнет с экрана, в нижней строке дисплея появится
поясняющий текст, в ответ на который требуется ввести числовые пара-
метры команды. При вводе параметры можно редактировать, используя
клавишу <ЗБ>, удаляющую с экрана последний введенный символ.
Ввод параметров завершается нажатием клавиши <ВК>, они стираются
с экрана и команда немедленно выполняется.
- Описание команд графического редактора —
М - определить текущую точку в месте нахождения курсора. Ко-
манда используется, когда нужно определить начало вывода
текста, рисования векторов, определения центра окружно-
сти
О - рисовать линию от предыдущей текущей точки до места нахож-
дения курсора. После отрисовки положение курсора определя-
ет новую текущую точку.
8 — задать размер матрицы букв. По умолчанию выбрана матрица
16X18. Можно установить матрицу произвольного размера
с параметрами, кратными 16X18 или 8X8.
Т — вывести текст. После ввода этой команды курсор исчезает и по
нажатию клавиш алфавитно-цифровой клавиатуры их изобра-
жение выводится на экран в матрице, размер которой задан
командой 8. При выводе текста действуют следующие управ-
ляющие клавиши: <СУ[Т> — конец вывода текста, переход
в режим команд; ЗБ - удаление последнего нарисованного
символа; <ВК> — перевод строки и возврат каретки.
Р - вывести картинку, нарисованную на экране, на печатающее
устройство. При вводе параметра 1 будет напечатано позитив-
ное изображение (темные точки на экране будут напечатаны
черными точками на бумаге), 2 - негативное изображение
(темные точки на экране печатаются белыми на бумаге).
IV - восстановить изображение. Экран гасится и выполняются все
команды по отрисовке изображения, содержащиеся в графи-
ческом файле.
11 - удалить из списка последнюю введенную команду.
О - определить виртуальное окно. При выводе вырезается прямо-
угольник с левым нижним углом в текущей точке.
V - определить поле вывода по оси Х0 - 399, по оси У0 - 279.
Вырезается прямоугольник с левым нижним углом в текущей
точке, в который выводится изображение.
К - залить поле вывода. При вводе параметра -1 происходит ин-
версия экрана (в поле вывода меняется цвет точек на противо-
положный) ; 0 - очистить экран (экран становится черным);
1 - залить экран (экран становится белым).
К - установить режим вывода. При вводе параметра -1 происхо-
дит вывод инверсией (пересечение белых точек рисуется чер-
ным) ; 0 - рисование черными точками; 1 - рисование белы-
ми точками.
2 - закрасить область одним из 7 типов штриховки.
С - нарисовать окружность радиуса Р.
А - нарисовать дугу. Нужно ввести три параметра: радиус, угол
от вертикали по часовой стрелке до начальной точки дуги,
угол по часовой стрелке от начальной до конечной точки
дуги.
В - режим автоматического повторения отрисовки изображения из
графического файла.
К - выйти из редактора в команды монитора с сохранением в гра-
фическом файле, созданного на экране изображения.
СПИСОК ЛИТЕРАТУРЫ
1. Основы информатики и вычислительной техники/Под ред. А.П. Ер-
шова, В.М. Монахова. — М.: Просвещение, 1985.
2. Криницкий НЛ. Алгоритмы вокруг нас. - М.: Наука, 1984.
3. Абрамов СЛ. Математические построения и программирование. -
М.: Наука, 1978.
4. Операционная система СМ ЭВМ РАФОС: Справочник/Л И Валико-
ва, Г.В. Вигдорчик, А.Ю. Воробьев и др. - М.: Финансы и статистика,
1984.
5. Фоли Дж., Вэн. Дэм А. Основы интерактивной машинной графики.
В 2-х кн. - М.: Мир, 1985.
6. Брябрин В.М. Программное обеспечение персональных ЭВМ. - М.:
Наука, 1988.
7. Персональные компьютеры единой системы ЭВМ/Под ред. А.П. За-
польского. - М.: Финансы и статистика, 1988.
8. Персональные ЭВМ в инженерной практике: Справочник/7'.Э. Лрен-
кель, АМ. Коган, АМ. Тараторкин. - М.: Радио и связь, 1989.
9. В мире персональных компьютеров, № 1-5. - М.: Радио и связь,
1988 - 1990.
ОГЛАВЛЕНИЕ
Термины и определения......................................... 3
Введение ..................................................... 5
Глава 1. Построение алгоритмов для решения задач........... 6
1.1. Понятие алгоритма................................ 6
1.2. Способы записи и типы алгоритмов ................ 9
1.3. Алгоритмические языки........................... 17
1.4. Алгоритмы работы с величинами................... 20
Вопросы для самоконтроля......................... 26
Глава 2. Составление прикладных программ . . -............ ^7
2.1. Принципы структурного программирования....... 27
2.2. Инструментальные средства программирования . ... 31
2.3. Структура и особенности применения прикладного
программного обеспечения....................... 33
Вопросы для самоконтроля................... 37
Глава 3. Обработка текстовой и табличной информации ....
3.1. Общие сведения............................ 38
3.2. Подготовка текстов программ для микроЭВМ .... 39
3.3. Программа оформления текстовых документов ... 45
3.4. Структура базы данных..................... 49
3.5. Программы для диалогового режима работы с базой
данных ............................................. 51
Вопросы для самоконтроля......................... 58
Глава 4. Интерактивная графика на микроЭВМ................... $$
4.1. Общие сведения.................................. 59
4.2. Алгоритмы построения прямых и окружностей .... 60
4.3. Библиотека программ формирования элементов
изображений......................................... 66
Вопросы для самоконтроля......................... 69
Глава 5. Прикладные программы для научно-технических рас-
четов ...................................................... 69
5.1. Назначение и условия применения библиотеки для
научно-технических расчетов......................... 69
5.2. Состав и функции библиотеки..................... 71
Вопросы для самоконтроля......................... 73
Глава 6. Издательство на столе............................
6.1. Лазерные принтеры и шрифты для них............ 74
6.2. Текстовые процессоры и пакеты для верстки.... 75
6.3. Развитие настольных издательских систем....... 76
6.4. Выбор аппаратных средств для НИС.............. 76
6.5. Программное обеспечение для НИС............... 77
6.6. Шрифты для НИС................................ 78
6.7. Перспективы развития ......................... 79
Приложения................................................. 80
Список литературы.......................................... 92
Учебное пособие
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МИКРОЭВМ
В 11-ти книгах
Абрамов Владимир Абрамович,
Дубровин Владимир Сергеевич
Кн.З
ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Зав. редакцией Н.И Хрусталева. Редактор ИЕ. Якушина. Младший
редактор А.С Саченкин. Художник В.В. Гарбузов. Художественный
редактор Г.А. Скворцова. Технический редактор Л.М. Матюшина.
Корректор Р.К Косинова.
ИБ № 8829
Изд. СТД-723. Сцано в набор 17.12.90. Подп. в печать 27.05.91.
Формат 84x108 732. Бум. тип. № 2. Гарнитура Пресс-Роман. Печать
высокая. Объем 5,04 усл. печ.л. 5,46 усл. кр.-отт. 5,60 уч.-изд.л.
Тираж 150000 экз. Зак. № 332 . Цена 1 р. 20 к.
Издательство "Высшая школа”, 101430, Москва, ГСП-4, Неглинная
ул„ д. 29/14.
Набрано на наборно-пишущих машинах издательства.
Отпечатано в Ярославском полиграфкомбинате Госкомпечати
СССР. 150049, Ярославль, ул. Свободы, 97.
Программное обеспечение микроЭВМ. В 11 кн. Кн. 3.
П78 Прикладное программное обеспечение: Учеб, пособие для
ПТУ/В.А. Абрамов, В.С. Дубровин; Под ред. В.Ф. Шаньги-
на. — 2-е изд., перераб. и доп. — М.: Высш, шк., 1991. —
94 с.: ил.
I8В^ 5-06-001784-2
В третьей книге серии рассмотрены основные принципы состав-
ления и эксплуатации прикладного программного обеспечения
отечественных микроЭВМ. Во втором издании (1-е - 1987 г.) более
подробно представлены понятие алгоритма и способы алгоритмиза-
ции прикладных задач, а также новые пакеты прикладных про-
грамм, поставляемые с микроЭВМ; описаны разработка приклад-
ных программ для реализации машинной графики и библиотека
программ для проведения расчетов на микроЭВМ. Может быть ис-
пользовано при профессиональной подготовке рабочих.
п 2405000000(4307000000) -325
052 (01) - 91
53-91
ББК 32.97
6Ф7.3
^ПРОГРАММНОЕ^
^ОБЕСПЕЧЕНИЕ^
1 р- 20 к - 51 & ЙИЙЬШЖ
В ОДИННАДЦАТИ
КНИГАХ
СТРУКТУРА И ФУНКЦИОНИРОВАНИЕ МИКРОЭВМ
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ДИАЛОГОВЫЙ ЯЗЫК ФОКАЛ
ДИАЛОГОВЫЙ ЯЗЫК БЕЙСИК
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ -ФОРТРАН-
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ -ПАСКАЛЬ-
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПЛ/М
МИКРОЭВМ В СИСТЕМАХ
УПРАВЛЕНИЯ ОБОРУДОВАНИЕМ
КОНТРОЛЬ, НАЛАДКА И ТЕСТИРОВАНИЕ
ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ