/
Author: Абрамов В.А. Дубровин В.С.
Tags: компьютерные технологии вычислительная техника микропроцессоры программирование информатика программное обеспечение
ISBN: 5-06-001784-2
Year: 1991
Text
РАММНОЕ
БЕСПЕЧЕНИЕ -
. .. .... ... ....
....... ._ _
.
••
••
•
•••
•
•
•
•
•
•
•
•••
е\ ...
•••••••••
•••
• ••••••••••••
:\:::.• ::.. :·· .
..
.: ::..'
••••
••
•••
••••••••• ••••• ••
В. А. Абрамов
В. С. Дубровин
ПРИКЛАДНОЕ .
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Москва
« Высшая· шкопа "
ПРОГРАММНОЕ
ОБЕСПЕЧЕНИЕ
... ~ iAкr-······-.. ·••-...r-. M
lt\\• :
.1: 1 -'[i:
,.:.
..... ···-' ....
В ОДИННАДЦАТИ
КНИГАХ
Под редакцией
лауреата Государственной премии СССР.
доктора технических наук,
профессора В. Ф. ШАНЬГИ НА
В. А. Абрамов
В. С. Дубровин
ПРИКЛАДНОЕ
з
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Издание второе,
переработанное и дополненное
Допущено Государственным комиrетом СССР
по народному образованию
в качестве учебного пособия
для профессионально-технических училищ
Москва"Высшая школа"1991
ScanAAW
ББК 32.97
П78
УДК 681.3
Р е цен з е н т Г.В. Годжелло - директор СПТУ No- 200 г. Москвы.
П 2405000000(4307000000) - 325 53 _ 91
052 (01) - 91
ISBN 5-06-001784-2
© В.А. Абрамов, В.С. Дубровин, 1991
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
Алrориrм - точное и понятное указание исполниrелю совершиrь
последовательность действий для решения определенной задачи.
Алrориrмический язык - система обозначений и правил для единой
и точной записи алrориrмов и их исполнения.
База данных - совокупность данных, необходимых для решения
прикладных задач пользователей и хранимых в организованном порядке
в памяти ЭВМ.
Загрузочный модуль - программа в машинных кодах, rотовая к вы
полнению на ЭВМ.
Интерпретатор - программа, осуществляющая независимый анализ
каждого отдельного оператора исходной программы и немедленное их
исполнение.
Команда алгоритма - отдельное указание исполнителю выполниrь
запомненное действие, являющееся шагом алгориrма.
Компилятор - программа, преобразующая написанную на языке вы
сокого уровня программу в эквивалентную программу в обьектном
коде, коrорая после полноrо преобразования запускается в рабоrу.
Компоновщик - специальная программа, осуществляющая сбор
всех необходимых программ в обьектных кодах в программу, готовую
для выполнения на микроЭВМ.
Массив - упорядоченное множество однородных элементов, имею
щее имя.
Маш1D1иая графика - создание, хранение и обрабоrка в цисрровом
виде изображений различных обьектов на ЭВМ.
Модуль программный - функционально независимая часть програм
мы, представляющая собой набор нескольких операторов.
06ьектный код - промежуточный (машинный) код, в котором за
писана исходная программа после трансляции. Такая программа еще не
готова для выполнения на ЭВМ.
Операторы языка программирования - запись, выражающая опре
деленное законченное действие в программе (например, умножение
двух величин и присваивание результата третьей величине).
Основные управляющие структуры - модули, используемые для
написания легко чиrаемых программ. К ним относятся структуры: следо
вание, развилка, цикл.
Отладчик - специальная программа, позволяющая устанавливать
точки останова в любом месте программы, выполнять программу опера
тор за оператором, просматривать и изменять значения переменных и
элементов массивов.
Паксr прикладных программ - специальным образом организован
ные программные комплексы, ориентированные на определенную опера-
3
ционную систему и класс ЭВМ. Они разрабатываются для типовых задач,
чтобы обеспечить потребности большого числа пользователей.
Пиксел - едш~ичный элемент изображения, отображаемый fla экране
дисплея.
Программа - законченная последова1ельность операторов языка
программирования, определяющая последовательность действий для
решения некоторой задачи.
Редактор текстов - специальная программа для создания текстовых
файлов в микроЭВМ.
Рекуррентное соотношение - соотношение в виде формулы, позво
ляющее вычислять последующий член последовательности через предыду
щий (или несколько предыдущих).
Семантика алrориrмическоrо языка - смысловая трактовка языка,
определяющая определенное толкование отдельных конструкций и целых
фраз и совпадающая со смыслом обычных математических выражений.
Синтаю:ис алгоритмического языка - совокупность правил, опреде
ляющих построение допустимых конструкций языка.
Сrруктурный подход к программированию - современные п~,ш~ципы
написания программ для их использования и возможности изменения
без участия авторов. Подход состоит из следующих частей - нисходящая
разработка, струкТУрное программирование и тестирование.
Схема алrориrма - диаграмма, состоящая из соединенных между
собой блоков разного типа и отражающая основные этапы выполнения
алгоритма или программы.
Тестирование программ - процесс поиска ошибок в программе,
планируемый до начала программирования.
Файл - набор (совокупность) данных на внешних носителях (диске
те, магнитной ленте и т. п.).
ВВЕДЕНИЕ
Illиpoкoe внедрение микроЭВМ в сферу производства требу
ет соответствующей компьютерной подготовки рабочих кадров.
От уровня компьютерной rрамотности молодоrо поколения су
щественно зависит ускорение научно-техническоrо проrресса.
Наиболее распространенная форма проrраммноrо обеспече
ния - пакеты приЮiадных проrрамм, которые моrут использо
ваться в разных отраслях народноrо хозяйства.
Выпускники средних профессионально-технических училищ
должны уметь использовать разработанные приЮiадные про
rраммы и при необходимости дополнять их своими проrрамма
ми для конкретных целей.
Данная книrа знакомит читателя с применением алrоритмов
цля решения задач и основными этапами создания приЮiадных
проrрамм. Конкретные варианты этих проrрамм использования
приЮiадноrо обеспечения показаны на примере широко распро
страненных персональных микроЭ-ВМ типа диалоrовых вычис
лительных комIDtексов (ДВК) и совместимых с ними микро
ЭВМ «Электроника НЦ», «Электроника-60» и «Электрони
ка-85». Аналоrичное приЮiадное проrраммное обеспечение ис
пользуется и на микроЭВМ серии ЕС-1840, ЕС-1842.
Для перечисленных микроЭВМ достаточно подробно описан
один из распространенных экранных редакторов, позволяющий
ВВОДИТЬ И редактировать текстовую Юlформацию на экране
дисплея.
В описание проrрамм текстовой обработки ВЮiючена про
rрамма, позволяющая проводить форматирование документов.
На ее выходе пользователь получает документ, соответствую
щий ГОСТу на оформление (с выровненными краями, автомати
чески пронумерованными страницами и т. д.).
В rлавах 1-3 учебноrо пособия описываются типы алrорит
мов и способы их записи, рассматриваются способы составления
приЮiадных проrрамм, обработка текстовой и табличной инфор
мации. В rлаве 4 показана разработка прикладных проrрамм для
реализации машинной rрафики. В rлаве 5 описана существующая
библиотека проrрамм для проведения научно-технических рас
четов на микроЭВМ.
Материал учебноrо пособия помоrает уяснить структуру
и состав прикладных проrрамм, специфику их составления, опи
сания и реализации на микроЭВМ.
Книrа предназначена для учащихся СПТУ. Может быть полез
на преподавателям и мастерам проиэводственноrо обучения.
s
Гпава1
ПОСТРОЕНИЕ АЛГОРИТМОВ
ДЛЯ РЕШЕНИЯ ЗАДАЧ
1.1. ПОНЯТИЕ АЛГОРИТМА
Преобразование и познание природы человеком приводит
к искусственному делению на составные части явлений, с кото
рыми он сталкивается. Чтобы прийти к конечному результату,
следует выполнить ряд последовательных действий, иначе rово
ря, осуществить процесс принятия решений на основе определен
ных правил. Решение многих практических задач, представлен
ных в виде отдельных составляющих, удобно передать вычисли
тельным устройствам - универсальным или персональным ЭВМ.
При описании последовательности вычислительных процессов
используют алгоритм.
Алгоритм - точное и понятное предписание (указание) ис
полнителю совершить последовательность действий, направлен
ных на достижение указанной цели или на решение поставленной
задачи.
Слово «алгоритм» происходит от имени узбекского матема
тика IX в. н.э. аль-Хорезми, который сформулировал правила
четырех арифметических действий над многозначными числами.
В дальнейшем это слово стало использоваться не только в мате
матическом смысле, а более расширеюю. Фактически любую
последовательность взаимосвязанных действий, приводящую
к конечному результату, стали называть алгоритмическим про
цессом, а каждое действие - его шагом.
6
Пример 1.1. Найти с помощью циркуля и линейки
центр окружности, описанной вокруг треугольника АВС
(рис. 1.1).
Решение. Алгоритмический процесс распишем по
шагам.
111 а г 1: Проведем окружность с центром в точке А
радиусом R(1), гдеR (1) > АВ/2. Обозначим ее 0(1).
111 а г 2: Проведем окружность с центром в точке В
тем же радиусом R (1) . Обозначим ее О (2).
111 а г З: Проведем прямую через точки пересечения
окружностей 0(1) и 0(2), которую обозначимL (1).
111 а г 4: Проведем окружность с центром в точ
ке В радиусом R (2), где R (2) > ВС/2. Обозначим ее
0(3).
Рис. 1.1 . Нахождение центра окружности
III а г 5 : Проведем окружность с центром в точке С
также радиусом R (2). Обозначим ее 0(4).
III а г 6: Проведем прямую через точки пересе-
чения окружностей 0(3) и 0(4), которую обозначим
/, (2).
III а г 7: Выделим точку пересечения прямых L (1) и
/, (2), обозначим ее через Q.
Точка Q - искомый центр окружности.
• Здесь каждый шаг определяет конкретные действия исполниrеля.
Исполнителем может быть и техническое устройство, например rрафо-
11остроитель, управляемый от ЭВМ.
Пример 1.2 . Пусть дано число Х. Найти значение много
члена 5Х2 - 6Х + 7. Зададим допустимые правила преоб
разований: 1) вычисление суммы двух чисел; 2) вычисле
ние произведения двух чисел.
Решение. Запишем исходное выражение в виде SX • Х +
+ (-6) • Х + 7 и перейдем к шагам алгоритма.
lIIаг 1: ВычислимХ•Х.
ОбозначимегоХ•Х=У.
III а г 2: Вычислим значение 5 У.
Обозначим 5 У = Z.
III а г З: Вычислим значение ( -6) Х.
Обозначим (-б)Х = U.
III а г 4: Вычислим значение 7, + U.
Обозначим Z +U=V.
IIIаг 5: ВычислимзначениеV+7.
ОбозначимV+7=W.
Значение W есть искомое.
7
• Данный алгориrм можно вычислить на микроЭВМ, используя ее
как калькулятор,
В математике понятие алгоритма возникло в связи с поиска
ми методов решения однотипных задач.
К алгоритмам предъявляется ряд требований. Они должны
обладать свойствами определенности, массовости, результатив
ности и дискретности.
Определенность алгориrма. Метод вычисления должен быть
точен, общепонятен и исключать возможность произвольного
толкования. Процесс вычислений должен быть таким, чтобы его
мог повторить любой пользователь. Этому требованию удовлет
воряет пример 1.1 .
Массовость алгориrма. Он должен быть применен к це
лому классу однотипных задач, для которых меняются ис
ходные условия. Данному требованию удовлетворяет при
мер 1.2 . Предложенный в нем алгоритм обладает массовостью,
т.е. по нему можно получить решение для любого исходного
числах.
Результативность алгоритма. Пошаговый процесс решения
задач определенного типа должен заканчиваться через конечное
число шагов, после чего становится возможным прочитать ис
ходный результат. Понятие результативности алгоритма связано
с областью его применения. Если условия задачи взяты из обла
сти применения, то алгоритм перерабатывает их в конечное ре
шение, после чего наступает останов вычислительного процесса.
Если условия взяты не из области, то либо никогда не наступает
останов, либо наступает, но нельзя узнать, какое из полученных
чисел является результатом.
Дискретность. Для многих задач создание алгоритмов
является процессом творческим. Однако решение задач по rо
товому алгоритму не требует каких-либо рассуждений, сво
дится к выполнению полученных шагов и может быть пере
поручено ЭВМ.
Для реализации алгоритма на ЭВМ необходимо выполнение
требования дискретности вычислительных операций, т.е. воз
можности расчленения задачи на элементарные операции для вы
полнения их счета. В алгоритме отражаются не только арифмети
ческие действия, необходимые для счета, но и логические связи,
которые вычислительный процесс налагает на исходные и проме
жуточные данные. Логические связи задаются в форме отноше
ний, допускающих или не допускающих автоматическое выпол
нение действий, предписываемых ЭВМ. Примерами этих связей,
не допускающих автоматическую работу ЭВМ, являются деление
на О, вычисление ln (О), ln (- 00 ) или ln (-а), где а> О, вычис
ление arcsin (Х) или arccos (Х) при IXI > 1.
8
1,2. СПОСОБЫ ЗАПИСИ И ТИПЫ АЛГОРИТ~ОВ
СоставлеЮiые разными разработчиками алrоритмы должны
быть прочитаны и поняты друrими людьми. Иначе rоворя, форма
записи алrоритма должна быть общепонятна, не нарушать точ
ность и последовательность вычислений, обладать компактно
стью и наrлядностью. Приведенные выше словесные описания
алrоритмов (см.§ 1.1 и 1.2) не компактны, малонаrлядны и не
учитывают специфику решения задач на ЭВМ. Более удобная
наrлядная форма записи алrоритмов - их rрафическое представ
ление в виде схемы алrоритма. Это чертеж, состоящий из rеомет
рических фиrур (прямоуrольников, параллелепипедов, ромбов,
овалов и т. д.), соединенных направленными линиями. Гео
метрические фиrуры (в дальнейшем называемые блоками)
соответствуют тем или иным шаrам алrоритмическоrо про
цесса, а направленные линии определяют порядок выполнения
блоков.
Различают безусловные и условные типы блоков. Б е з •
у с л о в н ы е подразделяют на арифметические, т .е. выполня
ющие вычисления ввода-вывода информации (данных) и нача
ла - останова вычислений. Блок у с л о в но r о типа обознача
ет разветвление вычислительноrо процесса в зависимости от вы
полнения некоторых условий. В дальнейшем используем некото
рые rеометрические обозначения наиболее часто употребляемых
блоков (табл. 1.1).
Наименование 1 Обозначение 1
Процесс
Решение
Ввод-вывод
-r_ - --.lf-
Модификация
гС)-
Таблица 1.1
Пояснение
Вычислительные действия
или последовательность вы
числительных действий
Проверка условий
Ввод-вывод данных
Начало цикла
9
Наименование
Предопределенны 11
процесс
Документ
Перфокарта
Соединитель
Линии потока
Пуск, останов
Обозначение
о
о
Продолжение табл. 1.1
Пояснение
Вычисление по подпрограм
ме или стандартной подпро
грамме
Вывод данных. печать ре
зультатов
Ввод данных с перфокарт
или вы вод данных на• перфо
карты
Разрыв линий потока
Если поток направлен вниз
или направо, можно стрелку
или линии не ставить (напри
мер, а, r)
Начало, конец, останов.
вход и выход в подпрограм
мах
V При составлении схем алrоритмов соблюдаются следу.
ющие правила:
1. Каждый блок имеет единственную точку входа, кроме
блока пуска, который не имеет входа;
2. Каждый безусловный блок имеет единственную точку
выхода, кроме блока останова, который не имеет ни одной точ
ки выхода;
3.Условный блок имеет два или в отдельных случаях три
выхода;
4. Выход условного блока можно пометить условилми (на
пример, ДА, НЕТ или> О, = О,< О);
5. Линии, идущие на вход некоторого блока, могут соеди
няться. Это соответствует ·переходу на конкретный единствен
ный этап вычислений после нескольких других этапов;
10
6. Лш,ия, исходящая из входной точки блока, не может
разветвляться на несколько направлений. Этим исключается не
однозначность перехода между блоками.
Примеры правЮiьноrо соединения блоков приведены на рис.
1.2, а-в, rде блоки А и В - некоторые вьrчислительные процес
сы. На рис. 1.3, а-в изображена без текстовых пояснений непра
ВЮiьная заIШсь схем. Ошибочные соединения отмечены знаком(?).
Схема алrоритма вычисления многочлена (см. пример 1.2)
показана на рис. 1.4 . Оrметим, что в одном вычислительном бло-
ке можно объединить несколько операций.
•
Пример 1.3 . Составить схему алгоритма вычислений
функции
у=tg [✓ах2+ь+1n(аХ3+ь)]
для различных значений а, Ь, Х.
Решение. IIIarи алrоритмическоrо процесса можно
представить в такой последовательности:
IIIar 1: Z=aX3 +Ь;
IIIаr 2: T=yZ+1n(Z);
IIIаr3:У=tg(1);
III а r 4: Вывод на печать вычисленного значения У.
Пуск
Вывод
данн~,,х
в)
А
Ввод данных
Останов
Рис. 1.2 . Примеры правильного соединения блоков
в)
Рис. 1.3. Примеры неправильного соединения блоков
в
(?)
11
• Здесь показан последовательный однократный процесс вычислений
при заданных исходных данных. Схема алгоритма для данного примера
приведена на рис. 1.5 .
Пуск
Рис. 1.4 . Схема алго
ритма вычисления
значения многочлена:
1-пуск;2 - вводХ;
З-7 - вычисление
У=Х2 • Z=SY·
U=-бX;V=Z:.. U;
W=V+7;8- ВЫ•
вод W; 9 - останов
Пуск
Рис. 1.5 . Схема
алгоритма вычис
ления значения
функции
Серия
шагов1
Серия
шагов 2
Рис. 1.6 . Схема одного из
ветвящихся алгоритмов
Можно вьщелить три типа алгоритмов: арифметические (ли
нейные вычислительные), ветвящиеся и ЦИЮiические.
Арифмеrические алrориrмы. В таких алгоритмах (см. при
мер 1.3) каждый этап вычислений сводится к выполнению ариф
метических операций, которые в процессе вычислений выполня-
12
ются однократно. В схемах таких алгоритмов блоки операций
выполняются последовательно друr за друrом.
Веrвящиеся алrориrмы. В зависимости от выподнения
или невыполнения в них некоторых условий они осуществля
ют ту или иную последовательность вычислений. При раз
ветвлении происходит однократный проход по одной из вет
вей решения задачи. Схема одноrо из таких алгоритмов пред
ставлена на рис. 1.6. В общем случае количество ветвей в та
ком алrоритме разветвляющейся структуры может быть больше
двух.
Циклические алrориrмы. В них та или иная часть вычисле
ний выполняется неоднократно. Схемы некоторых циклических
алrоритмов приведены на рис. 1.7, а-г. Здесь в блоке «Серия
шаrов» может содержаться произвольное конечное число шаrов
алгоритма. В блоке «Подготовка цикла» задаются начальные
значения переменных, используемых в цикле. В блоке «Цикли
ческая часть» содержится последовательность шаrов алгоритма,
повторяющаяся при каждом проходе цикла. В блоке «Условие
выхода из цикла» или «Условие» принимается решение о пре
кращении или продолжении вычислений. Число повторений
в цикле должно быть конечным.
Циклические алгоритмы по способу орrанизации выхода
из ЦИI<:Ла можно разделить на арифметические и итерациош~.ые.
В арифметическом цикле количествоповторений
заранее известно или леrко может быть вычислено. В и т е р а -
ц и о и и о м цикл е количество повторений заранее не изве
стно. Выход из них осуществляется по достижении заданной
Рис. 1. 7 . Примеры схем циклических алгоритмов:
г)
Подготовка
цикла
а-в - часrные случаи; г
-
обобщенная запись циклического алгоритма
с возвратом в контур цикла
13
точности при ооследовательном приближении к искомому
значению.
• В циклических алгорпrмах часто вычисляют последующий член
последовательности через предыдущий. Эти вычисления осуществляют
ся на всех шагах цикла по единой формуле. Например, а; =ia;.1 для всех i
от 1 доп, причем а0 задается заранее. Говорят, что в этих случаях единая
формула вычислений назьmается рекуррентной, т.е. выражает рекуррент
ное соотношение между последующим и предьщущим шагами вычис
лений.
Пример 1.4 . Составить схему вычисления
слагаемых, т.е. вычислитьS =а1 + а2 + ... + ап.
Решение. Введем S 0 = О. Тогда
S1=S0+а1;
S2=S1+a2;
Формулу ( 1. 1) переIШШем в виде
S=S+a;,
суммы п
(1.1)
(1.2)
rде «=» - символ операции присваивания. Иначе значению
суммы на i-м шаrе присваивается значение частичной сум
мы на предыдущем шаrе мюс слагаемое а;. Следовательно,
формула (1.2) является рекуррентной.
Схема алгоритма ЩIЯ данного примера представлена на
рис. 1.8. Участки схемы, состоящие из блоков 5-7, представля
ют собой тело цикла. Число шагов цикла равно п.
14
Пример 15. Составить схему алгоритма нахождения
произведения п сомножителей Р = Р1 • Р2 • .. . • Рп,
Решение. Для определения рекуррентной формулы
сначала введем Р0 = 1, а затем вычислим алгоритм
Р;=Р;_1а;; }
Рп =Рп_ 1ап,
Р1 =Р0а1;
Р2 =Р1а2;
(1.3)
Для данного случая рекуррентная формула имеет вид
Р=Ра;.
(1.4)
Схема нахождения произведения представлена на
рис. 1.9, rде блоки 5-7 являются телом циклического ал-
горитма, число шагов равно п.
Пуск
8------
Печатm,
s
9---.. ..
Останов
Пуск
в----..
Печатать
р
9--'--
Останов
Рис. 1.8 . Схема алгоритма вычис• Рис. 1.9 . Схема алгориrма вычис
ления суммы п слагаемых
пения произведения п сомножи
телей
Итерациональный цикл - это сходящийся процесс повто
рения одного и того же действия (или совокупности действий),
где результат предыдуще20 действия (вычисления) принимает
ел как исходное данное для последующего решения.
Пример 1.6 . Дано уравнение xcos (х) = ln (х + 1,1).
Найти решение уравнения за конечное число шаrов в окре
стности ТОЧКИ Хо = 0.
Решение. Аналитически, т.е. в виде конечной единой
формулы, данное уравнение не разрешается. Численно ero
можно приближенно решить путем пошаrовоrо алгоритма.
Иначе за некоторое число шаrов п, ICoтqpoe неизвестно,
можно вычислить значение Хп, оmичающееся от истинного
значениях по абсолютному значению на е:
/х-хп/ <е,
rде е - заданная точность решения.
Оrметим, что такое решение существует лишь для схо
дящихся процессов вычисления, у которых при воэраста-
15
Пуск
2 Ввод
значений
3 Вычислить
нии п вычисленное значение
Хп стремится к истинному
значениюх.
Переrшшем исходное
уравнение в виде
ln (х+ 1,1)
х = --- =..р (х),
cos (х)
у= 1n(х +1,1)/со1(х1
В итерационных алго
ритмах следует переписать
исходное уравнение в виде
х = ..р (х). Вид функции
..р (х) надо выбрать так,
чтобы обеспечить сходи
мость*
итерационного
цикла в окрестности на
чального исходного значе
ния Хо,
6 ------ .
х=у
В рассматриваемом
Останов
Рис. 1.10. Схема алгоритма итерацион
ного цикла
примере шаги приближения
равны х1 = ..р (хо), Х2 =
=
..Р (х1), х3 = ..р (х2), ... ,
х;+1 = ..р (х;) и т.д. до тех
пор, пока не выполнится
условие
1Xj+1- ,Р(х;)1<€,
(1.5)
Как только (1.5) будет выполнено при некотором п,
процесс вычислений прекращается.
В итерационных алгоритмах рекуррентная формула имеет
ВИДXj+1 =,Р(х;),
Рекуррентное соотношение запишем в виде
1n (х; + 1,1)
Xi+l =----.
cos (х;)
Схема нахождения приближенного решения исходного
уравнения с точностью € > О представлена на рис. 1.10. Здесь
у - значениех;+1 для любогоi, начинаясх1 (блок3); а - мо
дуль рассогласования между вычисленным значением х;+ 1 , рав
ным ln (х; + 1,1)/cos (х;), и исходным значением х; (блок 4).
* Метоцы оnрецеления схоцимости итерационJ{ых циклов изучают
в высшей ШJ<оле.
16
В блоке 5 проверяется условие окончания цикла. Если а < е,
т .е. достш-нута заданная точность, то вычисления прекращают
ся. Блоки 3-5 представляют собой тело итерационного цикла.
Количество шаrов заранее не известно и фактически зависит от
заданной точности е.
Рассмотренные примеры показывают, что запись алгоритма
в виде сло:аесноrо описания или схемы распадается на отдельные
указания исполнителю выполнить законченное действие. Каждое
такое указание называется командой алгоритма. Поочередное
выполнение команд алгоритма за конечное число шаrов приво
дит к решению задачи, достижению цели.
1.3. АЛГОРИТМИЧЕСКИЕ RЗЫКИ
1 Алгоритмический язык - это система обозначений и правил
дм единой и точной записи алгоритмов и их исполнения.
Он используется для реализации на ЭВМ кома~щ алгоритма
и служит для представления задач в форме, близкой к математи
ческой записи. На этом языке алrqритмы читаются и записыва
ются как обычный текст.
Составление алгоритмических языков - трудоемкий про
цесс. Они должны включать в себя общепринятую математичес
кую символику (числа, действия над ними, функции, операции
отношений, скобки и т. д.) и должны позволять записывать по
определенным правилам всевозможные программы мя после
дующего их решения на ЭВМ. Программа, записанная на алгорит
мическом языке, при вводе в ЭВМ транслируется в машинный
код, затем редактируется и после отладки осуществляется про
цесс вычислений.
Любой алгоритмический язык имеет свой алфавит, из кото
рого строятся слова, входящие в словарь языка. Из символов
алфавита создаются фиксированные слова - операторы. Их при
меняют мя записи кома~щ алгоритмов. Например, в некото
ром абстрактном алгоритмическом языке возможно исполь
зование оператора ВЫП, смысл которого - выполнить какое-то
действие.
Для различных вспомогательных целей используют служеб
ные слова. Смысл и способ их употребления задается раз и на
всегда. Благодаря служебным словам запись алгоритма стано
вится наглядной, а форма представления различных алгорит
мов имеет единый вид. Например, мя удобства пользователей
различные комментарии в тексте программ помР.чаются одним
служеiным словом КОММЕНТ. С помощью этоrо слова можно
вьщелить название алгоритма.
2-332 r-
- ~;:l;;-•• .r, -~- -- -
___,_,
-L
17
Служебное слово КОНЕЦ характеризует завершение алrо
риrма. Между названием и 1<онцом записываются последователь
но операторы алrоритма.
Алrоритмичес1<Ие языки ФОКАЛ, ФОРТРАН, БЕЙСИК,
ПАСКАЛЬ, ПЛ/М и присущие им операторы и служебные слова
будут изложены в кн. 4-8 данной серии учебных пособий.
Пример 1.7 . Рассмотрим запись алrоритма (см. при
мер 1.1) на абстрактном алrоритмическом языке, удовлет
воряющем введенным начальным правилам.
КОММFНТ
вып
КОНЕЦ
Нахождение центра окружности
Построиrь окружность О (1)
Построиrь окружность О (2)
Построиrьлинию L (1)
Построиrь окружность О (3)
Построиrь окружность О (4)
Построиrь линию L (2)
Найти точку Q - пересечение линий L (1) и
L (2),
В данной записи между служебными словами
КОММЕНТ и КОНЕЦ помещен оператор ВЫП, в котором
последовательно выполняются команды алrоритма приме
ра 1.1, соответствующие шаrам 1- 7 .
Для алrоритмов с разветвлением вычислительноrо процесса
в алrоритмических языках используются операторы, реализу
ющие различные направления ветвления. Можно предложить
следующую запись оператора (см. рис. 1.7):
ЕСЛИ
Условие
ТО
Серия шагов 1
IПIAЧЕ
Серия шагов 2
ВСЕ
Здесь введены операторы ЕСЛИ, ТО, ИНАЧЕ и ВСЕ. Дей
ствия, выполняемые ими, трактуются смысловым значением
этих слов в русском языке. Блок «Серия шагов 2» может не
содержать ни одноrо действия, тогда rоворят, что оператор
ИНАЧЕ пустой. Оператор ветвления будет записан в сокращен
ной форме:
ЕСЛИ
то
ВСЕ
Условие
Серия шагов 1
Циклические алrориrмы с конечным числом повторений
моrут быть записаны в алrоритмическом языке с помощью
18
операторов ПОКА, НЦ, КЦ. Данные операторы вызывают соот
ветственно следующие действия: пока выполняется некоторое
условие, то ... ; начало цикла; конец цикла.
Пример 1.8 . Структура алгоритма, изображенного на
рис. 1.7, а, имеет вид
ПОКА Условие
НЦ
Серия шагов
кц
«Серия шагов» может включать в себя р.~щ операто
ров ВЫП.
Пример 1.9 . На основе введенных операторов соста
вить программу для алгоритма, изображенного на рис. 1.8.
Решение
коммmт
вып
вып
вып
ПОКА
НЦ
вып
вып
кц
вып
КОНЕЦ
Вычисление суммы S числа слагаемых п
Ввод значений п, а1, а2 , ..., ап
S=O
j=1
i=1
i ,;;;n
S=S+a;
j=j+1
ПечататьS
Здесь операторы, отмеченные фигурной скобкой,
будут последовательно выполнять суммирование: S = а1 ;
S=а1 +а2,...;S=а1 +а2 +..., +anдотехпор,покавыпол
няется условие i .s;;; n. После чего цикл завершится и про
изойдет печать результата S.
Классификация языков программирования. Обычно языки
программирования делят на маunmные, языки ассемблера и ал
горитмические языки высокого уровня. Каждая микроЭВМ
имеет свой м а ш и н н ы й язык программирования, содержа
щий перечень операций, которые она может выполнять (см.
кн. 2 данной серии учебных пособий) . Машинные языки исполь
зуют язык цифр и поэтому неудобны мя описания вычислитель
ных процессов.
Применение машинных языков требует от программистов
больших усилий для написания и оmадки программ. Однако
при их использовании может быть достигнута максимальная
гибкость в реализации технических возможностей ЭВМ.
Языки ассемблера исоользуютсимволическиеиме
на в программе, избавляют программиста от утомительной рабо
~
~
ты по распределению памяти ЭВМ для переменных и констант.
На этих языках программируется операциоЮiая система ЭВМ.
Они занимают промежуточное положение между машинными
языками высокого уровня. Их применение повышает про
изводительность по сравнению с программированием на ма
шинных языках и одновременно позволяет rибко реализовать
технические возможности ЭВМ, как и в случае машинных
языков.
Алгоритмические
языки
высокого
уровня (ФОКАЛ, ФОРТРАН, БЕЙСИК. ПАСКАЛЬ, ПЛ/М
и др.) используют обыкновенную математическую запись. Их
структура ближе к естествеЮiому языку. Они не зависят от
параметров используемых микроЭВМ. Эти языки, кроме алфа
вита, имеют свою семантику и синтаксис.
Семантика - смысловая трактовка языка, определяющая
определенное толкование отдельных конструкций и целых
фраз.
Семантика языка совпадает со смыслом обычных математи
ческих выражений.
1
Синтаксис - совокупность правил, определяющих постро-
ение допустимых конструкций языка.
Так как языки высокого уровня имеют значительную упо
рядоченность записи всех операторов и конструкций языка, то
составление программ на них достаточно просто и удобно.
Использование языков высокого уровня предполагает нали
чие транслятора в ЭВМ, представляющего сложный програм
мный комIDiекс. Транслятор считает строки программы и прове
ряет наличие в них синтаксических ошибок. Если обнаружена
ошибка, то она днаrностируется. Затем каждое правильное
предложение переводится с алrоритмическоrо языка на язык
машины.
• На алгоритмических языках высокого уровня написано большое
число прикладных программ, позволяющих решиr1, производственные
и научные задачи.
1.4. АЛГОРИТМЫ РАБОТЫ С ВЕЛИЧИНАМИ
При решении практических задач с помощью алгоритмичес
ких процедур приходится осуществлять вычислительные дей
ствия над константами, переменными, элементами массивов и
функциями. Константами будем называть числа и тексты, явно
заданные в программе.
Так как в алгоритмических языках используются математи
ческие формулы, то сохраним понятия по ст о я н н ы х и
переменных величин, принятые в математике. Известно,
20
что значение постоянной величины в отличие от переменной не
меняется в процессе исполнения алгоритма.
Величины являются как исходными данными при решении
задач, так и результатами вычислит(;Льных процессов. В алго
ритмических языках переменной величине присваивается имя,
например сумме (см. пример 1.10) присваивается имяS.
Значения величин (переменных или постоянных) могут
iыть чиап:овыми или текстовыми. Числовые значения имеют
различный тип (целые числа, вещественные числа). Текстовые
величины (иначе символьные или строковые) принимают значе
ние слов. Так переменная величина «фрукт» может принимать
значения из множества (яблоко, груша, слива), где каждое
значение есть слово.
В введенном выше алгоритмическом языке указанные
типы величиli можно обозначить операторами ЦЕЛ, ВЕЩ,
СИМВ, смысл которых соответственно целый, веществен
ный или символьный. Возможны и другие типы величин.
Пример 1.10. Составить программу вычисления произ
ведения Р числа сомножителей (см. рис. 1.9), используя
введенные операторы.
Решение
КОММЕНТ
ЦЕЛ
ВЕЩ
вып
вып
вып
вып
КОНЕЦ
ПОКА
НЦ
вып
кц
вып
Вычислить произведение Р числа сомножите
лей n
i,n
а1,lz, ... , &п, р
Вводзначенийn, а,, а2,••• , an
Р=1
i=1
i<n
Р=Р•31
i=i+1
Печатать "Р =", Р
В последнем операторе ВЫП в кавычках введена сим
вольная константа "Р = ", отделенная запятой от веще
ственной переменной Р. После выполнения данного алго
ритма, например, 11дя чисел 1, 2, 3, 4, 5 будет напечатано
Р= 120.
Расширим первоначальные сведения о введенных типах
числовых значений величин, mскольку они характери
зуют форму представления чисел в программе и в микро
ЭВМ.
21
В совремеЩIЫх алгоритмических языках числа могут быть
положительными (со знаком «+»), нулем или отрицательными
(со знаком «-»). Перед положительным числом знак«+» может
быть опущен. При записи дробных чисел вместо традиционной
запятой исоользуется точка, например 3.14159, а не 3,14159.
Формы предсrавления 11111сел. Вещественные числа в про
rрамме моrут быть представлены в форме с фиксированной или
JDJавающей точкой. В первом случае целая и дробная части числа
отделяются точкой.
Числа в форме с фиксированной точкой,
включая целую и дробную части, содержат не более шести знача
щих десятичных цифр, если 11дя их хранения испол~.зуется
16 двоичных разрядов памяти микроЭВМ. Если цифр в числе
больше шести, то при вычислении на ЭВМ отбрасываются справа
числа дробной части. Существенны только первые шесть знаков,
причем шестой знак может быть неточным из-за ошибок округ
ления. Число называют целым, если у него отсутствует дробная
часть. Семизначнь1е целые числа в программах не могут быть
заданы.
Пример 1.11 . Рассмотрим некоторые случаи записи
чисел с фиксированной точкой:
-152,03
12,0 6,12345 657
Здесь ооследнее число - целое.
Существует также записьчисел с плавающей точ-
к ой (эта запись 1D1аче называется записью числа в показатель
ной форме). Число в ооказательной форме состоит из двух
частей: мантиссы и порядка (целой степени числа 10). Например,
число 2.34 • 106 содержит 2.34 - мантиссу и 6 - порядок. При
такой записи в алгоритмических языках за целым или десятич
ным числом, являюIЦИмся мантиссой, идут буква Е и целое
число, представляющее собой оорядок и состоящее из одной
или двух цифр со знаком «+» или «-» (знак «+» может быть
опущен).
При хранении таких чисел в 16 двоичных разрядах памяти
микроЭВМ мантисса чисел в форме с IDiавающей точкой содер
жит не более шести значаIЦИХ цифр. Если указано в мантиссе
более шести цифр, то при вычислении мантисса округляется
до шести знаков.
22
Пример 1.12 . Рассмотрим запись чисел с IDiавающей
точкой:
45,3. 103
-8•102
15,234
0,831 • 105
453Е +03
-8Е -02
15.234Е+О
О.831Е +05
Здесь слева математическая запись числа, справа его запись
на алгоритмическом языке.
ЗаIП1сь исходных чисел в правой части может быть и другой.
Так, вместо 15.234Е + О моЖNo наIП1сать 0.01S234E +оз, или
0.1S234E + 02, или 1.5234Е + 01, или 1S2.34E - 01, или
1523.4Е - 02 и т. д. Таким образом, в зависимости от значения
порядка точка может перемещаться (IDiавать) вдоль мантиссы
в числе.
Число в показательной форме называется нормализован
ным, если его целая часть равна нулю, а в мантиссе·оосле точки
следует цифра, отличная от нуля. В данном случае нормализо
ванным числом будет О.15234Е + 02.
В программах допустима запись целых и вещественных
чисел в любой форме, но в ЭВМ форма представления чисел
(иначе, внутренняя форма представления) следующая: форма
записи с IDiавающей точкой используется для представления
множества вещественных чисел, форма представления чисел
с фиксированной точкой - в основном для множества целых
чисел. В ЭВМ перед выполнением действий целые числа автома
тически преобразуются в форму . вещественных с плавающей
точкой.
Задание величин в форме таблиц. Чаще всего таблицы бы
вают линейные (одномерные) и прямоугольные (двухмерные),
состоящие из n столбцов и т строк. В программах уоорядочен
ное множество элементов, входяЩl'.х в таблицы, называют
массивами.
Обычно массиву дается имя и в круглых скобках указыва
ются предельные границы изменения индексов элементов, вхо
дящих в массив.
Другое название элемента таблицы с индексами - и н д е к с
иые перемеиные. Положение индексных переменных
упорядочено в массиве.
Примерами одномерных и двухмерных массивов могут
служить записи: ВЕКТОР (20), МАТР(S, 10). Первая заIП1сь
характеризует строку, имя которой ВЕКТОР, состоящую из
20 индексных переменных. Вторая заIП1сь характеризует табли
цу, имя которой МАТР. Она состоит из 5 строк, 10 столбцов
и содержит 50 индексных переменных. В свою очередь, индекс
ные переменные сохраняют имя массива, из которого они
берутся. Сами индексы ставятся в круглых скобках оосле
имени переменной. Если индексная переменная взята из двух
мерного массива, то ее первый индекс от второго отделяется
запятой.
Примерами индексных переменных являются ВЕКТОР (К),
МАССИВ Q, J). Здесь числовые значения К и (1, J) прJIНИмают-
23
ся сооrветстве.нно из,диапазонов: К - от 1 до 20, номер стро
ки1- от1до5,номерстолбцаJ - от1до10.
Пример 1.13. Из двух массивов А = (а1, •••, а11) и
В = (Ь1, ~··• Ь11) сформироваrь массив С= (с1, ••• ,
с11 ),
каждый элемент котороrо равен сумме соответствующих
элементов массивов А и В, Cj = ai + bj.
Решение.
КОММЕНТ
вып
вып
ПОКА
нц
ВЫП
вып
кц
вып
КОНЕЦ
Вычислить элементы массива С как сумму
элементов массивов А и В
Ввод значений
i=1
i..; n
Cj=ai+-Ьi
i=i+1
Печатать с1, ... , с11
Пример 1.14. В массиве А= (а 1 , ••• , а11 ) найти макси
мальный элемент и ero индекс.
Решение.
КОММЕНТ Найти максимальный элемент массива А и его
индекс
ВЫП
Ввод значений n, а1, ... , а11
ВЫП
М=а1
ВЫП
j=l
ВЫП
i=l
ПОКА i ..;n
нц
ЕСЛИ М..; ai
ТО М=aj,j=i
ВСЕ
вып
кц
вып
КОНЕЦ
i=i+1
Печатать М, j
Прикладные проrраммы работы с таблицами данных см.
в rn.3.
Функции в проrраммах обозначаются с помощью имени
функции и набора (с1П1ска) арrументов, расположенных за име
нем. Например, SIN (Х), F (Х, У), МАКS (Х).
Наиболее употребительные математические функции -
24
sin (х), cos (х), ln (х), ех и др. - хранятся в памяти ЭВМ в виде
стандартных библиотечных подпроrрамм.
Пример 1.15 . Вычислить зна-
чение функции
у =х/ v,....2,....+ -s-in_(,....x,....) -
при 100 разных значениях арrу
мента х, заданных линейной
таблицей (х 1 , х2, ... , Х100)·
Решение.
Схема алrоритма вычисле
ний приведена на рис. 1.11, rде
запись i = 1, 100,1 в блоке З
означает, что i изменяется от 1
до 100 с шаrом 1.
КОММЕНТ
МАССИВ
ЦЕЛ
ВЕЩ
вып
вып
Вычислить 100
значений функ
ции У(Х) при
100 разных зна
чениях
аргу
мента Х
Х(100). Y(I00)
i
х,у
ВводХ
i=1
i..;; 100
Начало
4----'-----
YCi) = xo~J2 + siл IXCill
6 __.__
Конец
Рис. 1.11 . Схема алгоритма
вычисления значений
функции при различных
значениях аргумента
ПОКА
1Щ
вып
У (i) = X(i)/J 2 + SIN (X(i)J
кц
ВЫП
Печатать У
КОНЕЦ
Здесь таблица 100 исходных значений функции (Х 1 ,
Х 2 , •.. , Х 100 ) и таблица 100 вычисленных значений функ
ции (У1, У2 ,
.. .,
У 100 ) описаны с помощью оператора
МАССИВ X(I00), Y(l00). В программе Х и У
-
имена со
ответствующих массивов, элементы которых веществен
ного типа, числа в скобках - границы массивов. Послед
ний оператор ВЫП организует печать 100 значений функ
ции Y(i) = X(j)/.../ 2 + sin [X(i)]. Переменные X(i) и Y(i),
i = 1 - 100 - индексные переменные, принадлежащие со
ответственно массивам X(lOO) и Y(IOO).
Этапы решения задач на ЭВМ. Выделим основные этапы ре
шения задач с использованием микроЭВМ.
2S
Постановка задачи. Онаямяетсяисходнымпунк
том при решении любой задачи. Задача начинается с определения
исходных данных и математического представления их в виде
некоторых зависимостей (формул). Обычно обьект исследова
ния описывается в математических терМЮiах, что оозволяеr
свести изучение реального обьекта к изучению ero математичес
кого аналога (иначе говоря, к изучению математической моде
ли). Степень соответствия модели реальному обьекту проверя
ется практикой, опытом. На данном этапе четко задается цель
решения, указывается, что должно бьпь получено в результате
решения задачи.
Построение алrоритма. Послепостановкизадачи
начинается поиск метода ее решения на ЭВМ - строится алго
ритм, удовлетворяющий соответствующим требованиям (см.
§ 1.1). Полученный алгоритм записывается в виде схемы и на
алгоритмическом языке, доступном исполнению на ЭВМ (см.
§ 1.2-1.4).
Реализация алrоритма с помощью ЭВМ.
Сюда также включаются оmадка и тестирование программ.
Завершается этап rюлучением результата.
Анализ полученных результат'ов. Наэтом
завершающем этапе оценивается точность полученных результа
тов и их соответствие постаменным целям.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1.1 . Приведиrе примеры алгориrмов, с которыми вы встречаеrесь на
производстве. Удовлеrворяют ли они требованиям, предъявляемым к
алгориr мам?
1.2. Перечислиrе типы алгориrмов и нарисуйте их схемы.
1.3 . Составьте схему алгориrма вычисления корней уравнения
Ах2+Вх+С=о·приАФО.
1.4. Чем отличаются арифмеrические циклы от иrерационных?
1.5. Каково назначение алгоритмических языков? Что необходимо
для использования языков высокого уровня на ЭВМ?
1.6. Какие типы величин используются в алгориrмических языках?
Приведиrе примеры.
1.7. Приведиrе примеры в<Jщественных чисел с фиксированной то'f
кой, с плавающей точкой. Почему удобно использовать числа с плавающей
точкой для внутреннего представлЕН1111 чисел на ЭВМ?
1.8 . Выделиrе основные этапы реwЕНия задач с использованием ЭВМ.
Гпава2
СОСТАВЛЕНИЕ ПРИКЛАДНЫХ ПРОГРАММ
2,1. ПРИНЦИПЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ
Создание больших сложных проrрамм для решения типовых
задач в различных отраслях народноrо хозяйства требует от про
rраммистов значительных трудовых затрат. Для оовышения
эффективности составления таких проrрамм применяется
стр у к тур н ы й по д хо д к проrраммированию, позволя
ющий создавать кру1mые проrраммы практически без ошибок
и в запланированные сроки. Цель структурноrо подхода -
так построить проrраммы, чтобы их можно было использовать
и изменять без участия авторов. Это способствует уменьшению
затрат на создание и дальнейшее использование проrрамм при
экс1D1уатации.
Структурный подход к проrраммированию состоит из трех
частей: 1) нисходящей разработки; 2) структурноrо проrрам
мирования (кодирования); З) сквозноrо контроля (тести
рования).
Нисходящая разработка. При нисходящей разработке проек
тирование и проrраммирование ведутся по методу «сверху
вниз». Этот метод предусматривает сначала определение задачи
в общих чертах, а затем оостепенное уточнение ее структуры
путем пошаrовоrо внесения мелких деталей. Таким образом,
исходная задача разбивается на ряд более простых подзадач.
Каждой подзадаче соответствует свой независимый от любой
друrой подзадачи программный модуль, представляющий собой
функционально независимую часть проrраммы - набор несколь
ких операторов программы. При нисходящей разработке осуще
ствляется последовательная детализация проекта: от модулей
верхнего уровня к модулям нижнеrо уровня. Для каждоrо
модуля определяют алrоритм решения задачи, области допусти
мых и возможных выходных значений переменных.
Обычно модуль реализует одну функцию, а затем возвраща
ет управление вызвавшему ero модулю. Не разрешается завер
шать выполнение всей проrраммы в вызываемом модуле, реше
ние о ее выполнеШDI принимается только вызывающим модулем.
Основные требования к проrраммному модулю: наличие
только одноrо входа и одноrо выхода; оrраниченные размеры
модуля.
Модуль верхнего уровня оформляется как главная процеду
ра (основная проrрамма). Переменные, общие для всех моду-
27
лей, являются частью rлавной процедуры. Локальные перемен
ные используются только своими модулями.
На исходный текст программы и другие наиболее важные ero
разделы составляется комментарий. Он должен быть подроб
ным, но не отвлекать внимание от содержания самой программы.
Для каждого раздела он должен начинаться с одной и той же
позиции, продолжение записывается на последующих строках
с той же позиции.
При записи операторов, содержащих списки переменных,
рекомендуется каждый элемент списка помещать в новой стро
ке также с одной и той же позиции. Этим обеспечивается наrляд•
ность записи. В такой оператор легко вносить поправки, не пере
бивая ero целиком на печатающем устройстве.
Исходный текст программы следует четко разделить на
блоки (рис. 2.1).
Б л о к /. Перед основной программой, каждой подпро
граммой или модулем помещается паспорт. Он содержит: крат
кое описание назначения модуля: способ обращения к модулю;
характер входных и выходных данных; перечисление других
подпрограмм, требуемых для ero исполнения; других исполь
зуемых переменных, имя автора, дату первоначальной версии
и дату внесения последнего изменения в программу; краткое
описание работы модуля.
Б л о к Il Описание данных - ключ к пониманию програм
мы, поэтому смысл каждой переменной должен быть пояснен.
В ЭТl!»М блоке необходимо строго соблюдать рекомендуемую
ГОСТом на ЕСПД последовательность расположения операторов
в программе.
28
Паспорт
Описание данных
Предварительна11
обработка данных
Алгоритм
11
1/1
JV
V
Обработка результатов
Рис. 2.1 . Схема содер
жания текста програм
мы
Рис. 2.2 . Структура
типа «следование»
Один вход
Один выход
Б л о к 10. К этому блоку относятся операторы ввода
вывода начальных данных. Все начальные даиньrе после ввода в
память машины должны быть распечатаны, чтобы можно бьшо
убедиться в их правильности.
Б л о к IV. Здесь размещен алгориrм решения задачи, не
требующий дополнительных mяснений.
Б л о к V. Обработка результатов всегда сопровождается
поясниrельным текстом, а не просто наименованиями перемен
ных. Печатаются не только окончательные результаты, но и про
мех..уrочные. Результаты можно оформлять в виде таблиц.
Сrруктурное программирование. Это - метод написания
хорошо структурироваиньrх программ произвольного размера
и сложности на основе основных управляющих структур (базо
вых). К ним относятся следование, развилка и цикл.
Структур а тип а «след о ван и е». В такой струк
туре действия выполняются друг за другом (рис. 2.2) . Действия,
выполняемые в А и В, могут быть заданы одним или нескольки
ми операторами, необходимыми для вычислений.
Структура типа «развилка». Такая структура
предназначена для действия ЕСЛИ... ТО ... Ш:IАЧЕ (см. пример
1.8 и рис. 1.7). Здесь осуществляется выбор между «Серией ша
гов 1» и «Серией шагов 2». Каждый из путей ведет к общей
точке слияния. Случаи, когда «Серия шагов 2» не содержит ни
одного действия, представлены на рис. 2.3, а, б.
Структура типа «цикл» (см. рис. 1.8). В струк
туре используется повторное выполнение действий, необходимое
для большинства вычислиrельных программ (см. примеры
1.1 О и 1.11). Здесь также один вход и один выход.
Основные управляющие структуры могут комбинировать
ся друг с другом, как требует программа. Фактически любой
а)
дА
Выпопнить
серию шагов 1
НЕТ
Один выход
ДА
Выполнить
серию шагов 1
НЕТ
Пусто
Один выход
Рис. 2.3 . Частные случаи структуры типа «развилка»
29
Один вход·
Выполнить А
Выполнить С Выполнить D
Один выход
Рис. 2.4 . Пример комбинации основных
управляющих сrруктур
прямоугольник на схеме
можно заменить одной из
основных
управляющих
структур. На рис. 2.4 штри
ховкой показана структура
типа «развилка», заменяю
щая прямоугольник.
Основные управляю
щие структуры облегчают
понимание программы и ее
тестирование,
ооскольку
весь ооток управления в
программе направлен свер
ху вниз от структуры к
структуре.
Тестирование. Процесс
поиска ошибок в програм
ме, IUiанируемый до начала
программирования, назы
ваете~ тестированием или сквозным контролем. Целесообразно
проводить тестирование IIO методу «сверху вниз», стремясь
к минимальному числу контрольных примеров.
Сначала определяют цели тестирования. Ими могут быть
проверки: работы программы в диапазоне заданных входных
значений; работы программы при минимальных и максималь
ных значениях входных данных; реакции программы на недо
пустимые входные данные; взаимодействия между модулями
программы, состоящей из нескольких модулей.
Если программа является составной частью другой про
граммы, то проверяется передача входных данных между ними.
Иногда зто взаимодействие проверить невозможно, ибо не раз
работана программа, с которой надо взаимодействовать. Тогда
проводиrся автономное тестирование программ, имитирующих
работу их взаимодействия. Разрабатываются модули, имитиру-
30
Имитатор вызывающей программы
РазрабатываемаR программа
Имитатор 1-й вызыва•
емой программы
...
Имитатор п-й вызыва
емой программы
Рис. 2.5. Схема автономного тесrирования
ющие вызывающую и :рыэываемые проrраммы. Общая схема
автономною тестирования приведена на рис: 2.5.
Тестирование считается законченным, коrда осуществлены
все требуемые проверки на соответствие проrраммы целям
ее разработки и все найденные ошибки устранены на этапе от
ладки с использованием специальных прикладных проrрамм -
отладчиков.
2.2 . ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРОГРАММИРОВАНИЯ
В качестве инструментальноrо средства проrраммирования
моrут быть использованы транспяторы (компиnяторы и интер
претаторы) с алrоритмических языков высокоrо уровня, систе
мы отладки, технолоrические коМIDiексы проrраммирования.
Компилятор преобразует проrрамму, написанную на языке
высокоrо уровня, в эквивалентную рабочую проrрамму в ма
ШИННЬIХ кодах, которая посnе DOJJHoro преобразования запуска
ется в работу. Интерпрератор осуществляет независимую транс
ляцию каждоrо отдельноrо оператора исходной проrраммы и
сразу же ero выmnияет. Интерпретирующая проrрамма нахо
дlП'ся в оперативной памяти в течение всеrо времени выполне
ния проrраммы mnьэователя.
На начальных стадиях развития микроЭВМ, коrда они имели
малые ресурсы m объему оперативной памяти и составу перифе
рийною оборудования, для разработки их проrрамм использо
вались большие вычисnительные машины, из которых работа
ли так называемые кросс-системы (ассемблеры, компиnяторы).
С помощью кросс-системы проrраммист mлностью rотовЮJ
проrрамму, оmаживал ее. Разработчик писал проrрамму в тер
минах команд микроЭВМ, а кросс-система имитировала их вы
полнение на ЭВМ, проверяя правильность решения задачи. Ре
зультатом работы кросс-системы является проrрамма, mлно
стыо rотовая для выполнения на микроЭВМ. Такой подход
обладал рядом неудобств, rлавным из которых являлось необ
ходимое наличие большой машины с работающей кросс-систе
мой mдrотовки проrрамм для микроЭВМ.
По мере развития микроЭВМ появилась возможность весь
процесс разработки новых проrрамм проводить непосредственно
на той микроЭВМ, rде эти проrраммы должны выmлняться.
Появление инструментальных операционных систем (см. кн. 2
данной серии) сделало процесс разработки проrрамм достаточно
удобным и nеrким для проrраммиста.
Этапы подrотовкв проrраммы дm1 микроЭВМ (рис. 2.6).
Различают спедующие этапы: редактирование, транспяцию, ком
ПОJЮвку и вьmолнение проrраммы.
31
Редактирование
ТрансЛRЦИR
Компоновка
Выполнение
Постановка задачи
Алгоритм
Текст программы на 11зыке
ВЬIСОКОГО уровнR
Объектный код программы
Библиотека объектных кодов
отлаженных подпрограмм
Программ а готоваR
к выполнению
Анализ результатов работы
Исправление ошибок
в тексте программы
Решение поставленной задачи
Экранным
редактор
ТранслRтор
с Rзыка
высокого уровнR
Отладчики
Компоновщик
Рис. 2.6 . Этапы подготовки программ для микроЭВМ
Редактирование. После составления алrоритма
решения задачи выбирается наиболее подходящий язык высо
кого уровня. Затем текст программы заносится в микроЭВМ.
С этой целью используется специальная программа - экранный
редактор текста, правила работы с которым см. в гл. З. В ре
зультате работы пользователя с редактором текста создается
текст программы. Хранится программа на внешнем запомина
ющем устройстве - обычно гибкой дискете.
Любая микроЭВМ непосредственно понимает и может вы
полнять только коды из собственного набора команд. Поэтому
необходима дальнейшая обработка текста, чrобы сделать его
понятным машине.
Трансляция. На данном этапе специальная программа"
называемая транслятором с данного языка, переводит програм
му из текстового вида в промежуточный машинный (объект
ный) код. Результаты работы транслятора можно посмотреть
на терминале или распечатать с диагностикой синтаксических
ошибок. Для их исправления следУет вернуться на этап редакти
рования и с помощью экранного редактора внести изменения
в текст программы.
32
Объектный код все еще не является проrраммой, rотовой
к выполнению. Дополнительные модули, необходимые для ее
вьmолнения, собраны в отдельный набор, называемый стандарт
ной библиотекой. Обычно в ней хранятся проrраммы вычисле
ния арифметических и триrонометрических функций, обработки
текстовых строк и ввода-вывода данных на периферийные
устройства.
Компоновка. Наэтомэтапепроисходитсборвсехне
обходимыхпроrраммвединый эаrрузочный модуль
(проrрамму, rотовую для выполнения на микроЭВМ) с по
мощью специальной nporpaf\'!MЫ - компоновщика. Результатом
работы компоновщика является модуль, полностью rотовый
для выполнения на данной микроЭВМ. Хранится он в виде от
дельноrо ф а й л а (набор данных) и запускается на выполне
ние с помощью специальной команды операционной системы.
В ы пол н е н и е. Если в результате выполнения проrрам
мы и анализа результатов ее работы на текстовых наборах дан·
ных обнаружены ошибки, то весь процесс разработки повторяет
ся с этапа редактирования.
При разработке проrрамм широко применяются как от
ладочные средства языков (например, оператор D в языке
ФОРТРАН), так и специальные проrраммы - отладчики. Отлад
чики моrут работать с ячейками памяти, занимаемыми проrрам
мой, просматривать и изменять содержимое ячеек, выполнять
проrрамму в пошаrовом режиме, устанавливать в различных
частях проrраммы точки останова. Они моrут работать и непо
средственно с проrраммой, наIШсанной на языке высокоrо уров
ня. Особеююсть отладчиков для проrрамм на языках высокоrо
уровня - возможность работы в терминах языка, на котором
наmrсаны отлаживаемые проrраммы (можно ссьшаться на про
граммные модули, операторы и переменные, а не на адреса
ячеек памяти микроЭВМ). Такие отладчики позволяют устанав
ливать точки останова в любом месте проrраммы, выполнять
проrрамму оператор эа оператором, просматривать и (или) из
менять значения переменных и элементов массивов, объединять
последовательности команд отладчика. Обычно отладчики при
соединяют к проrрамме на этапе компоновки; вместе с про
граммой они образуют единый эаrрузочный модуль.
2.3. СТРУКТУРА И ОСОБЕННОСТИ ПРИМЕНЕНИЯ
ПРИКЛАДНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Непосредственная обработка исходных данных в задачах
пользователей осуществляется на базе пакетов прикладных
программ (ППП). Это специальным образом орrаниэованные
~т
n
nрограммные комплексы, ориентированные на определенную
операционную с1;1стему, оnределеннь1й класс ЭВМ. Пакет nри
Юiадных программ разрабатывается в том случае, когда какая
то задача довольно часто решается на ЭВМ и становится типовой.
Здесь нет необходимости 11Саждому пользователю разрабатывать
свое программное обеспечение. Достаточно один раз разрабо
тать его в виде ППП и в нем по возможности учесть специфику
отдельных пользователей. Например, частично ППП можно раз
делить по сферам применения и Юiассам решаемых задач на сле
дующие виды: инструментальные средства программирования;
средства обработки текстовой информации и документов; сред
ства поддержки баз данных: проведение научно-технических
расчетов.
Расширение возможностей использования микроЭВМ приве
ло к mявлению новых ППП, например, 11дя решения графичес
ких задач, передачи данных между отдельными микроЭВМ не
mсредственно rю каналам связи.
При использовании ППП задаются управляющие операторы
входного языка и параметры, описывающие исходную информа
цию конкретно решаемой задачи.
К структуре ППП предъявляется ряд требований. Обычно
пакеты программ имеют модульную структуру. Каждый модуль
имеет собственное имя, с nомоЩЬIО которого он может бьпь
вызван другим модулем программы, и собственный набор дан
ных. Это требование mзволяет расширить содержание пакета на
основе вновь разработанных алгоритмов, осуществить замену
отдельных модулей и производить АJЛьнейшее пополнение
пакетов.
Входной язык пакета должен быть достуmu,1м, учитывать
исходные языки операциоННЬiх систем и специфНIСу решаемого
класса задач. Так как пакеты функционируют под управлением
операциоШIЬlх систем, то они должны удовлетворять основным
требованиям, предъявляемым к этим системам.
Документация ППП должна содержать описания и руковод
ства дnя эксплуатации, редактирования и расширения пакета.
Целесообразно в каждой системе программ выделить веду
щую программу (дисцетчер) , управляющую всеми модулями
ППП. Ведущая программа выполняет только функции управле
ния системой. Сами программы, входящие в систему, не должны
иметь большой объем и должны получать и передавать управле
ние ведущей программе.
Пакет приЮiадных программ является простым по структу
ре, если он состоит из диспетчера и п модулей пакетов типа биб
лиотеки сrаидартных программ (рис. 2.7). Пакет сложной
структуры может включать в себя ведущую программу, трансля-
34
..
..
..
с::
с::
::Е
>
>
с::
~~>
..
::Е
~
х
1D
:ii
:ii
:.
Q.
:ii
..
,s
•S
..
..
о
::Е
а:
Q.
"
с
::Е
о
с
..
1D
..
о
lii
,с
Q.
:z:
1
..
2х
о
1D
Q.
с
i
с
Рис. 2. 7 . Пакет про-
а:
11
о
11
;u
~
s
стой сrруктуры
Q.
ЗЕ
iо
1-
>
..
.и
а:
1D
5
о
:z:
Q.
Рис. 2.8. Пакет
1D
'i
Q.
сложной сrруктурw
1-
::Е:
тор с входного языка, набор программных модулей для реше
ния определешюго класса задач (тело пакета) и набор обслужи
вающих программ (рис. 2.8). В некоторых fШП транслятор
отсутствует.
Набор обслуживающих программ используют для удоб
ства и диагностики ошибок, а также для генерации и редактиро
вания библиотеки стандартных программ.
Этапы разработки ППП. Процесс создания ППП есть сово
купность взаимосвязанных этапов: предварительные исследова
ния составления математических моделей изучаемых процессов,
рабочих алгоритмов; комплексная отладка программ и их внед
рение.
На этапе предварительных исследований
проводится сбор и изучение материалов. В конце этапа создаете.я
техническое задание на разработку пакета.
На этапе составления математических мо
делей изучаемых процессов осуществляетсяпоста
новка задачи, включающая построение математического описа
ния, выделение аргументов и результатов.
На этапе составления рабочих алгоритмов
проводится математическая запись шагов, т.е. составляется сово
купность' рабочих алгоритмов. Inarи записываются в виде схемы;
после чего утверждается алrориrмический язык пакета.
Наэтапе комплексной отладки проrрамм
программируются модули пакета, включающие разработанные
алгоритмы, отлаживаются программы и оформляются соответ
ствующие документы на полученные программы:. На даш1ом
этапе следят за тем, чrобы изменения, внесеииъ1е в оДШI модуль,
как можно меньше сказывались на остальных модулях, уточня-
•
~
ют логико-функциональную структуру пакета и составляют
полный комIDiект документации на весь ППП.
Из перечисленных этапов разработки ППП можно вьщелить
основные шаrи, присущие всем этапам разработки проrраммно
rо обеспечения: разработка требований, проектирование и тести
рование программ.
Разработка требований. Этот шаr начинается с изучения про
блемы, которую нужно решить с использованием ППП. Иссле
дуется качественное описание создаваемой программной систе
мы, устанавливаются закономерности, которым она подчиняет
ся. Выявляется наличие, полнота и точность информации, необ
ходимой для обеспечения работы системы. Определяются сроки
и стоимость проектирования. В итоге формируется перечень
решаемых эадач. Описание каждой задачи должно содержать
сведения о переменных, являющихся исходными данными,
с указанием их типов и размерности.
Нечеткость требований к разрабатываемому программному
обеспечению является источником ошибок. Например, если раз
работчики программ и их пользователи по-разному понимают
требования к исходным цифровым данным, то и проведенные
вычисления не дадут в конечном итоге желаемого результата.
Проектирование программ. Этот шаr является одним из
самых трудоемких. Здесь строится математическая модель
каждой рассмотренной задачи, устанавливается взаимно одно
значное соответствие между качественным описанием и сово
купностью переменнь1х, входящих в математическую модель,
определяется алгоритм решения задач.
Разработчики обычно придерживаются принципа структур
ного проектирования программ. После определения функций
каждого модуля выявляются свяэи между модулями в единой
программной системе. Наиболее эффективно независимость
модуля обеспечивается за счет увеличения внутренних связей
между переменными модуля и уменьшения связей с другими
модулями системы.
Если программное обеспечение строится на основе имею
щейся базы данных, то решение большинства вопросов, связан
ных с орrаниэацией данных пакета, упрощается, так как они
определяются структурой баэы. Поэтому в этих условиях не тре
буется описание пакета данных и разработка языковых средств
описания данных.
Этап математического описания перечня задач считается ло
гически завершенным, когда установлены все связи между мо
делями, все алгоритмы классифицированы и любую задачу пе
речня можно алгоритмически решить, если будут заданы исход
ные данные. Проектирование завершается трансляцией про-
36
грамм в машинный код с учетом синтаксиса и семантики вы&
рапного языка.
Тестирование программ. Оно осущестмяется на контроль
ных примерах. Сначала проверяют работу каждого модуля и
устраняют ошибки, затем осуществляют системны~ испытания
программы как единого целого и общий контроль взаимо
действий между отдельными модулями программного обеспе
чения. В целом составление контрольных тестов и процедур
тестовых проверок является трудоемкой операцией. Цоэтому
в качестве тестовых примеров удобно использовать те задачи,
которые ранее решались пользователем, и имеется опыт их реа
лизации.
Из рассмотрения этапов разработки прикладного програм
много обеспечения ясно, что программный продукт д0лжен быть
хорошо документирован. Структура документации и ее содер
жание могут быть определены техническими условиями или
стандартами предприятий.
В связи с этим можно вьщелить следующие документы про
граммного обеспечения: «Описание применения», «Руководство
пользователя», «Руководство системного программиста».
Документ «Описание применения» предназначен для пользо
вателей и персонала, обслуживающего работу вычислительных
средств. В нем отражаются цели и задачи создания ППП, сфера
применения ППП и состав вычислительных средств для его реа
лизации.
«Руководство пользователя» содержит сведения о принци
пах работы программы и подробную инструкцию по ее эксплуа
тации. Например, в нем описываются типы исходных данных
и правила их описания с использованием имеющихся языковых
средств.
«Руководство системного программиста» содержит сведе
ния о привязке ППП к имеющейся микроЭВМ с набором пери
ферИЙI1ых устройств.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
2.1 . Какова цель структурноrо подхода к проrраммироваиию? Выде
nнrе основные части структурноrо подхода.
2.2 . Выделите требования и шаrи оформления текста проrрам
мы для понимания лоrики работы проrраммных модулей и процесса
отладки.
2.3 . В чем состонr тестирование проrрамм? Как лучше осуществнrь
этот процесс?
2.4 . Какие инструментальные средства проrраммирования вам IO•
вестны?
37
2.5 . Выдепиrе осно1111ые этапы процесса подrотовки проrраммы для
реалюации на микроЭВМ.
2.6, В каких случаях раэрабатываю-кя ППП? Какова их структура?
2.7 . Выде.яиrе основные шаrи этапов раэрабоrкн ППП. Оцеииrе
трудоемкость этапов.
Гпава3
ОБРАБОТКАТЕКСТОВОй
И ТАБЛИЧНОЙ ИНФОРМАЦИИ
3.1 . ОБЩИЕ СВЕДЕНИЯ
Чтобы выполниrь на ЭВМ работу, связанную с решением за
дачи пользователя, необходимо оформиrь текст программы и
передать его машине. Вообще для работы с любыми текстами
(не только с текстом программы, но и с текстом IШсьма или
документа) исmльзуют прИЮJадные проrраммы. Они mзволя
ют подготавливать и редактировать текст, оформлять тексты
документов в формате, удобном для чтения, и структурировать
их на разделы в соответствии с требованиями ЕСПД.
База данных представ1111еr собой совокупносn, данных, необ
ходимых длл решенШI прикладных задач пользователей и хра
нимых в организованном пор.ядке в ммяти ЭВМ.
Для хранения данных использу:юrея rибкие магнитные
диски (ГМД).
Управление базой данных осуществляется программно си
стемой управления (СУБД). Эта система, разработанная Киев
ским Ш1ститутом кибернетики, может исоольэоваться в автома
тизированных 1П1формационно-справоqных системах сбора, хра
нения и обработки данных и позволяет обслуживать одну ЮIИ
несколько баз данных. Существует два уровня взаимодействия
с пользователем: 1) диалоговый экранный режим, рассчитан
ный на пользователя-непрограммиста; 2) программный доступ
к СУБД
Диалоговый экраиный режим обеспечивает
наглядный и оперативный доступ к базе данных mсредством
вывода на экран ее содержимого в виде таблицы. П р о г р а м
мный доступ даетвозможность работать сбазойданных
(создавать, заполнять, изменять базу данных, извлекать инфор
мацию из нее), используя программы, написанные на языке
ПАСКАЛЬ. -Программный доступ используется при создании
специализированных систем обработки данных.
38
Рассмотрим более подробно указанные проrраммные сред-
ства, используемые при работе на микроЭВМ.
3.2. ПОДГОТОВКА ТЕКСТОВ ПРОГРАММ
ДЛR МИКРОЭВМ
Стандартный набор команд операционной системы позволя
еr перепж:ь1вать файлы с одноrо устройства на друrое, про
сматривать их на экране дисмея, распечатывать на печатающем
устройстве, изменять имя файла или вообще удалять ero из си
стемы. При зтом поцразумевается, чrо файлы были' заранее
созданы и введены в систему.
Чтобы создать текстовый файл в микроЭВМ, необходимо
набрать ero с помощью клавиатуры дисIDiея. С этой целью при
меняется специальная проrрамма - редактор текстов. Она име
еrся в любой операционной системе микроЭВМ.
Освоив работу с редактором, можно использовать микро
ЭВМ как пишущую машинку с памятью. Редактор позволяет
набирать и иеоrравичевво корректировать текстовые докумен
ты, хранить в виде файлов бланки Шlсем, которые после исправ
ления можно выводить на печатающее устройство. К настоящему
времени создано мноrо различных редакторов текста, которые
делятся на две rруппы: 1) редакторы общеrо назначения;
2) экранные редакторы.
Редакrоры общего назначения. Они не зависят от типа тер
минала. Работать с ними {например, с редактором EDIT) не
очень удобно. Все изменения в текстовом файле проводятся
в области оперативной памяти, называемой буфером редактора,
с помощью команд, подаваемых с клавиатуры. Чтобы посмот
реть на измененный текст, надо набирать специальные команды.
Экранные редакrоры. Они настраиваются на определенный
тип терминала и дают пользователям различную степень удоб
ства в работе {например, редакторы SCREEN, SED, FЗ40, TED,
ТЕСО, E-DIК, К52). Достоинство экранных редакторов состоит в
том, чrо они непрерывно отображают на экране терМШ1ала теку
щее состояние текста и все проводимые в нем изменения. Рас
смотрим досrатоtJНО широко распространенный экранный редак
тор К52, который может работать с операционными системами
ОС ДВК, РАФОС, ФОДОС на микроЭВМ типа ДВК, «Электрони
ка-60», оснащенных днсJDiеем 15-ИЭ-00.013.
Любой из редакторов работает как прикладная проrрамма,
поэтому /JJIЯ запуска следует набрать команду операционной
системы {запустить проrрамму на выполнение- RUN):
RUN DK: К52 <ВК>*
* Здесь и далее символ <ВК> обозначает нажатие клавиши «возврат
каретки». Подробно команды операционной системы и правила записи
имен файлов приведены в кн. 2 данной серии.
39
После запуска редактор находится в командном режиме,
высвечивая на экране звездочку *. В этом режиме редактор ожи
дает ввода командной строки, в которой указываются названия
входного и выходного файлов. Если создается новый файл, то
в конце необходимо указать ключ/С (CREA ТЕ) - создать. Напри
мер, rю команде • В.В = A.LST<BК> редактируется файл
DK : A.LST. Оrредактированная версия файла будет записана
в файл. При этом сохранится старый файл. По команде
* МХ2 : АА <ВК> будет редактироваться файл МХ2 : А.А.
После редактирования он будет иметь имя МХ2 : А.А, а старая
версия запомнится с именем МХ2: А.ВАК. По команде
•МХО : ZAP.DOC/C на устройстве МХО: создается новый файл
МХО : ZAP.DOC.
Экранный редактор оперирует с текстовыми файлами. С по
мощью перечисленных команд пользователь открывает входной
файл, который надо отредактировать, вносит в него необходи
мые изменения и сохраняет отредактированный или вновь соз
данный текст в выходном файле. В процессе работы пользова
тель может включить в редактируемый текст содержимое дру
гих текстовых файлов (дополнительные входные файлы) , а
также записывать часть информации в другие файлы (дополни
тельные выходные файлы).
В режиме редактирования с помощью функций и команд
редактора проводятся все необходимые изменения в редакти
руемом или создаваемом тексте. При этом все изменения текста
автоматически отображаются 1Ш экране терминала. Для ввода
функций и команд редактора используются клавиши дополни
тельной клавиатуры (рис. 3.1).
Программа использует экран терминала в качестве «окна»
в редактируемый файл, показывая 24 строки текста. В процессе
+--------+--------+--------+
!СТРАНИЦА! ААЛЕЕ !СТИРСЛОВ!
7!
8!
9!
! КОМАНАА! ПОИСК !ВОСТСЛОВ!
+--------+ -- -- -- --+ -- -- -- --+
! ВПЕРЕА ! НАЗАА !СТИРЗНАК!
4!
S!
61
! КОНЕЦ I НАЧАЛО !ВОСТЗНАК!
+--------+ - -- -- -- -+- -- -- - --+
1 СЛОВО !КОНСТРОК!О6НОВИТЫ
1
1!
2!
31
1 CMEPEr I СТИРКС ! БУФЕР 1
+--------+--------+--------+
1 НАЧАЛО СТРОКИ I ВUБОР
1
О1
,
1
1 ВСТАВИТЬ СТРОКУ! СБРОС
+-----------------+ - - -- - - - -+
+--------+ -- -- -- --+ -- -- -- --+
1tttttltt !
А
I ВВОА
!tttttttt!
1,11
!tttttttt!ЗAMEHИTЫ вмЁёто 1
+--------+- -- -- -- -+ -- -- -- --+
1 <--- !tttttttt1 ---) 1
1
! tttttttt 1
1
!A06ABИTЬ!ttttttttl СПЕЦ 1
+--------+ -- -- -- --+ -- -- -- --+
ltttttttt!
lttttttttl
1tttttttt!
V I tttttttt 1
!tttttttt! АБЗАЦ lttttttttl
+--------+ - -- -- -- -+- -- -- - --+
1
•••!
1 IСТИРСТ AI
1
11
V1
11
1 сл~ж V !СПРАВ. \ВОСТРК =\
+--------+--------+--------•
Рис. 3.1. Дополнительная клавиатура терминала
40
работы пользователь может сдвиrать текст вверх и вниз, получая
тем самым доступ к ero различным фрагментам. Используя
функции и команды редактора, пользователь может вносмь
изменения в файл, стирать текст и добавлять новый. После каж
дой замены редактор немедленно отображает на экран обновлен•
ный текст ЮJИ выдает сообщение WORКING (работаю), если
операция еще не закончилась.
На экране терминала всегда присутствует мерцающий сим
вол - курсор, который указывает:
место в файле, в которое редактор вставм символ, если
пользоuатель нажмет соответствующую клавишу на клавиатуре;
место, откуда начинается выполнение других функций или
команд редактора, например стирания.
При перемещении курсора вперед текст на экране сдвиrает
ся вверх, при перемещении назад - вниз. Редактор обычно рас
полагает курсор на 16-й строке экрана, так чrо пользователю
видны строки и вьпnе, и ниже курсора; исключение составляют
случаи, когда курсор находмся вблизи начала или конца файла.
Для обозначения конца файла используется специальный
символ <А>. При вставке текста этот символ смещается вправо
и вниз; при создании нового файла он ооявляется в начале пу
стого экрана.
В необходимых случаях редактор выдает в верхней части эк
рана сообщения - подсказки, запрашивая командУ «СОММАND»,
образец для поиска «MODEL» и т. д. Если команда ЮJИ функция
почему-либо не может быть выполнена ЮJИ нормальная ее обра
ботка нарушается, редактор привлекает внимание пользователя
звуковым сигналом. По нажатию клавиши <справ> (рис. З.i)
выдается справочная информация о функциях и командах ре
дактора. Продолжение справочной информации осуществляется
прИ'повторном нажатии клавиши <справ>.
Функции и команды, выполняемые экранным редактором.
Функция - это операция,для выполнения которой пользователю
достаточно нажать одну ЮJИ две клавиши на дополнмельной
клавиатуре (ДК) терминала (см. рис. 2.4). Заштрихованные
клавиши на ДК в редакторе не используются. Команда - это
операция, для выполнения которой необходимы следующие
действия:
1) ВЫПОЛНJПЬ функцию <команда>;
2) ввести имя команды (полное ЮJИ сокращенное);
3) ВЫПОЛНJПЬ функцию <ввод>.
Каждая клавиша ДК, кроме <служ> и <справ>, может вы
полнять две функции - простую и сложную. Для выполнения
сложной функции требуется предварительно нажать клавишу
41
<служ..'>. Простые функции изображены в верхней части клавиш,
сложные - в нижней. Повторение функции осуществляется сле
дующим образом: <служ> N <функция> (N - целое десятичное
ЧИСЛО ОТ 1 ДО 65535).
При вводе числа оовторений редактор выдает оодсказку
«REPEAT» (оовторить). Поскольку вставка символов представ
ляет собой функцию редактора оо умолчанию, в текст таким же
способом многократm вставляют нужные символы. Например,
в результате последовательного нажатия JCJiaВИUI <служ> 5 <•>
в текст вставляеrся строка символов '*****'.
Функции и команды экранного редактора даны в конце кни
rи в приложениях 1-3. Перечисленные фуихции и команды
позволяют работать с текстом так, как будто на дисплее изобра
жен лист бумаги, а в руках у полъэователя ecn. карандаш, ла
стик, иожющы и Юiей. Нажимая на функционалЬНЬiе Юiавиши,
можно удалять или заменять в тексте символы, слова, строки
и целые фрагменты. Рассмотрим некоторые способы работы
с экранным редактором.
Управление курсором, исправление отделЫIЫХ символов.
Любой отображаемый символ вводится в то место экрана дис
IDiея, у которого расположен курсор. После ввода очередного
символа курсор автоматически сдвигается на одиу позицию
влево. Нажатием Юiавиши <ВIС> редактору у~сазывается конец
очередной строки. При этом курсор переходит на экране в пер
вую оозицию следующей строки. Курсор можно перемещать оо
экрану в произвольное место, нажимая на юtавиши с рисунками
стрелок: стрелка вправо (влево) передвинет курсор на одну по
зицию вправо (ВJ1ево),астрелкавШ1Э@вер~ передвинет курсор
на одну строку вниз (вверх) соответственно.
После установления курсора в нужное место экрана можно
ввести любой символ, нажимая соответствующую Юiавшnу.
При Э'l'ОМ строка справа от курсора сама раздвинется вправо.
Символ около курсора можно удалиrь. Еспи нажать Юiавиwу
<6> на дополнительной цифровой клавиатуре (см. рис. 3.1),
то сотрется символ, стоящий под курсором, и строка сожмет
ся влево. Удаленный таким образом символ можно вернуть
на место в тексте, если нажать клавиши <служ> <fi>.
Клавиша <ЗБ> (забой) удаляет символ, стоящий слева от
курсора.
Исправление слов в тексте. Анааоl'ИЧНО работе с отдельными
символами редактор позволяет работать с целыми словами.
Нажимая клавшпу <I> на дополнительной цифровой Юiавиату
ре, установим JCypcop в начало следующего слова текста. В зави
симости от выбранного направления просмотра будем передви
гаться или вперед по тексту, если нажмем перед этим клавишу
42
<4>, или назад от конца к началу, если нажмем клавишу <s>.
Слово или часть слова, стоящее справа от курсора, можно сте
реть, нажимая клавишу <9>, а последовательное нажатие кла
виш <служ> <9> восстанавливает стертое спово.
Удаление - вставка строк и фрагментов текста. Часто тре
буется обрабатывать достаточно большие фрагменты текста.
Нажимая клавишу <О>, в зависимости от направления просмот
ра курсор передвшrется в начало следующей или предыдущей
строки текста. Стереть строку, находящуюся справа от курсора,
можно, нажав клавишу <стрелка вверх с двумя чертами>.
За один раз можно стереть произвольное число строк, исmльзуя
функцию повтора. Для эroro нажимается клавиша <служ>, на
бирается число стираемых строк и нажимается клавиша <стрел
ка вверх с двумя чертами>. Редактор сожмет текст на указашюе
число строк. Последнюю удаленную строку всеrда можно восста
новить последовательным нажатием клавиш <служ> и <стрелка
вверх с двумя чертами>.
Перестановка фрагмента текста, содержащего более одной
строки, выполняется следующим образом. Курсор оодводится
к началу фрагмента и нажимается клавиша<,> (выбор). Затем
курсор устанавливается в конец фраrмеша и нажимается клави
ша <З> (обновить). Выбранный фрагмеm текста исчезнет с эк
рана, редактор поместит ero во внутреннем буфере. Теперь
Jrot фрагмент можно вставить в любом месте редактируе
моrо файла. Для этоrо достаточно установить у этоrо места
курсор и последовательно нажать клавиши <служ> и <З>
(буфер).
Просмотр тексrа и поиск по образцу. Если тексrовый файл
достаточно минный, то крайне неудобно цросматривать ero,
построчно опуская курсор вниз. В редакторе предусмотрены
команды, mзволяющие сдепать эrо намноrо быстрее.
Одной из команд можно установить длину страницы текста.
Например, чтобы сделать ее равной 24 строкам (столько можно
разместить одновременно на терминале), надо выПQЛншь
команду
<СЛУЖ> <7> SП PAGE 24 <ВВОД>
Поспе нажатия клавиши <.7> (страница) экран будет полно
стью обновлен очередным текстом.
Чтобы сразу найти нужное слово в тексте, следует нажать
клавиши <служ> и <8>. Редактор запросит модель ооиска.
В качестве модели необходимо набрать на клавиатуре нужное
слово и нажать клавишу <8>. После очередноrо нажатия эrой
клавиши редактор будет искать следующее появление слова
в тексте и остановится при завершении поиска.
43
Работа с командами редактора. Ддя удобства пользователя
помимо работы с дополнительной функциональной клавиатурой
в редакторе можно работать с командами.
Команда ОРЕN INРUТ открьшаетдополнитель
ный входной файл. Одновременно можно открыть только один
дополнительный входной файл. Если пользователь повторно
подает команду OPEN INPUT, указывая новый файл, редактор
автоматически закрывает старый. Входные файлы автоматичес
ки закрываются при завершении сеанса редактирования (коман
ды EXIT и QUIT).
Команда ОРЕN ОUТРUТоткрываетдоmлнитель
ный выходной файл. Одновременно можно открыть только один
дополнительный выходной файл. Открывая новый файл, редак•
тор автоматически закрывает старый. Если на выХQдном устрой
стве уже имеется файл с таким же именем, как и у дополнитель
ного выходного файла, редактор выдает сообщение
ДОП. ВЫХОДНОЙ ФАЙЛ УЖЕ ЕСГЬ - ЗАМЕНИТЬ (У, N)?
Пользователь может отменить команду или продолжить
сеанс редактирования; в последнем случае редактор стирает
имеющийся файл, заменяя его новым.
Команды СLОSЕ иЕХIТзакрываютдополнитель
ный выходной файл.
К о м а н да Р U R G Е очищает открытый дополнительный
выходной файл и отменяет команду OPEN ОUТРUТ. Новый
файл можно открыть по команде OPEN OUТPUT.
Команда WRI ТЕ сразличнымипереключателями
(SELECT, REST, N PAGES, N LINES) записывает текст в допол
нительный выходной файл, ранее открытый по команде OPEN
OUTPUT. Переключатели выполняют следующие функции:
SELECT - копирует интервал выбора. Положение курсора
не изменяется;
REST - копирует нижнюю часть файла
-
весь текст правее
и ниже курсора. Курсор перемещается в конец файла;
N/PAGES - копирует указанное число страниц;
N/LINES - копирует указанное количество строк. Курсор
перемещается к первому символу, не попавшему в дополнитель
ный выходной файл. Редактор допускает значение N от 1 до
65535.
Команда INСLUDЕ дает возможность копировать
текст в редактируемый файл из дополнительного входного
файла, ранее открытого по команде OPEN INPUТ. По заверше
нии копирования курсор размещается справа от последнего
скопированного символа. В этой команде можно исоользовать
переключатели, описанные выше.
44
К о м ан да S К I Р дает возможность редактору пропу
скать часть текста в дополюпельном входном файле. Операция
выполняется в прямом направлении. Если пользователь про
пустил в дополюпельном входном файле нужную страницу, то
доступ к ней он получит только оосле тоrо, как оовторно откро
ет этот файл по команде OPEN INPUT. В команде также допу
скаются описанные переЮiючатели.
Команда СLЕАR РАSТЕ очищает буфер сбора.
Она полезна /JllЯ удаления больших фраrментов текста: сколь
угодно большой интервал выбора можно заменить содержимым
пустого буфера сбора (функция <заменить>).
Сохранение отредактированного файла. Работа редактора
прекращается по команде EXIT или QUIT. Нормальное заверше
ние сеанса редактирования осуществляется оо команде ЕХIТ.
Редактор закрывает все файлы, переименовывает, если требует
ся, входной файл; сохраняет результаты работы в выходном и
(если он был) дополюпельном входном файле и ожидает коман
ды пользователя. При этом положение курсора значения не име
ет. По команде QUIT редактор закрывает входные файлы, остав
ляя их без изменения, и ожидает новой команды оользователя.
Выходные файлы не сохраняются. Подавать команды EXIT и
QUIТ следует так:
<СЛУЖ)(КОНАН1А>ЕХIТ(ВВО1>
(CЛYЖ><KOHAH1A)QUIT<BB01)
3.3 . ПРОГРАММА ОФОРМЛЕНИЯ
ТЕКСТОВЫХ ДОКУМЕНТОВ
Рассмотренный в предыдущем параграфе «Редактор текста»
позволяет подготавливать текстовые документы. Однако в ре
дакторе нет средств, позволяющих их структурировать. Напри
мер, при подrотовке болЫШIХ рефератов всегда желательно
иметь возможность формирования титульных листов, автомати
ческой нумерации страниц, выравнивания текста на странице,
нумерации разделов и т. д.
Для оформления и распечатки текстов в формате, удобном
для чrения, используется программа DOC (документатор).
Этой программе можно указать входной файл, в котором прямо
в тексте вставлены директивы программы. Обрабатывая дирек
тивы, она генерирует выходной файл, в котором произведено
форматирование стран1Щ, заrоловков, сбор оглавления, офор
мление титульных листов.
По умолчанию выходной файл выводится на печать. дJiя
записи ero на другое внешнее устройство необходимо перед вы-
45
зовом программы назначить логическое имя .DPR соответству
ющему устройству, например .ASS МХl :DPR <ВК.>. После эю
rо, аиапоrично вызову текстового редактора командой RUN,
запускается программа
.R UN DOC <ВК>.
Программа выдает символ «*», в ответ на коюрый сле,цует
ввесm имя входноrо файла. Выходной файл с учетом команды
ASS будет выведен с rем же именем и расширением DPR ва
устройство МХI:.
Для соответствующей обрабоrкк в текстовом файле испопь
зуются диреКП1ВЬ1, JDDТIIЬle программе. Все дврекПIВЬI DOC
вахоДЯТСJI в начапе строп и иа~ с rочкв. У к~i ди·
рекrивы WCJJOВOЙ арrумент N опреде,u1ет КОJD111ество nуст:ых
строк перед фраrмеиrом теJСста, во умО11'13ИИIО N = 1. Рассмоr
рвм ваибо.пее уmтребкrельные п ки..
ДиреlСТDы форматнроаания 'Jel(CТ8. :К директивам форма
Пlроваиия текста относятся: .LIN, .ВLN, JМР, .SWТ, .NOF,
.МID,.RIT.
Директива .LIN записывает фрагменттекстаскрас
ной строки. Под фраг1,и!llтом понимаеrсв: тасст, распопоженнwй
между двумя директивами. Если фрагмент тСJССта повадаеr ва
начало страницы, то строка не пропус.каетс.я.. Если пропуск строк
приводит к переводу на новую страницу, то фрагмент начинается
с начала этой страницы.
Директива .LIN переводит программу DOC в режим
вывода, при котором выходная строха формируется ПOCJIOBHO
из входной текстовой информации. При эrом стрmси :выравни
ваются по длине, дополняясь пробелами между словами. Про
rрамма автомпичеасх осущес:t'JШ'Яеr перенос сао:в.
Директива .ВLN pacoegrыuerфраrменrтекстасва-
1В1а стро1СВ.
Д и р е к: тв в а .J М Р uewunaer сформированный текст
с указанным витервшюм. Двреlсrква имее:r 1DICJIOВOi арrумеит,
оиредехsющий IСОПИ11еСПЮ Dy'C'IЬ1X CIJIOIC., пропускаемь1х перед
печатью очередной строки.
Дирекr вв а .SWТ осущесппвет 1СОШ1рОвание спеду
тцеrо фраrмента текста без форматированва, ВКЛ10'8Я пустые
с:тро1СИ. Чисювай а:р.rумект ивтериреnrруетса, JCaJC и в директи
вах .БLN и .LIN . Стро:ки спедующеrо фрагмента теJСста доJJЖНЬI
иметь двину, не превъIШающую ширину страницы.
ДиреJCrIIва .NОF осуществляет вставкубезизмене
ния длинных строк.
Директива .МID сте1естовымарrумеиrомвыводит
rасст 11) центру стр811ИЦЬ1.
46
Директива .RIТ вырониваеттекстпоправойграни
це страницЬI.
Дирекrиаы оформления страниц. Программа DOC автомати
'IССКИ формирует страницы распечатываемоFо документа. В про
це,цуры оформления страниц документа вхоцят: нумерация
страниц, обозначение документа; сформатироваииый текст дР
кумента.
Нумерация страниц осуществляется автоматически. Номер
страницы печатаеrся по центру первой (или едшктвеююй) стра
ницы. Обозначение (номер) документа определ.иеrся требова
нияJtИ ЕСПД и вводится ~кти.вой .SТL. Рекомендуется,
чrобы в данной директиве обозначение документа определялос&
по СТ3Ндарrу, так ЮП( оно кспольэуется при формировании ти
тульных лю:тов. Директива должна прецшествов~• директивам
.T L V и .ТТL в тексте исходного документа. Действие директи
вы .STL можно измениr& (отменить) только другой директивой
.STL. Чтобы отказаться от распечатки обозиач:ения, достаточно
использовать директиву .SТL без аргумента.
Д и р е к т и в а .РAG осуществляет переход на новую стра•
mщу документа. Если директива обрабатывается в начале
страниць1, то перех.од не производится. Директива .TES осуще
ствляет переход на новую страницу документа, если на текущей
странице осталось строк меньше, чем задано числовым аргумен
том директивЬI.
Дирек11111ы сtnисання сrруктуры документа. Для описания
структуры документа программа DOC представляет набор 111l·
ректив, позволяющих выделиrь в документе: тиrульный лист;
аннотацию; содержание; разделы и подразделы; пуmсты и IЮд·
пункты; перечиспеиия; примечания; припожения. Формирование
заголовков, автоматический сбор содержания и нумерации раз
делов, подразделов, пунктов, nодпуикюв, приложений обеспечи
ваютсJ1 с помощью директив описаииJI структуры докумешов.
Директива .ТОС используется~яуказаниянеобхо
диьюсти с;:бора содержания. Если содержание необходимо, то
эта директива должна быть первой в исходном тексте. При сборе
содержания программа DOC выполняет два прохода (просмот•
ра) исхоцноrо текста. На первом проходе осуществляется сбор
содержания, на втором - распечатка документа и содержания.
В конце первого прохода на терминале оператора распечатьшзеr
ся сообщение о эавершеюш первою прохода и количество
страниц, которое будет содержать сформировзнный документ.
Директив а .1 N Т используется для выделения анно
тации к документу. Фраrменты текста, следующие за директи
вой, включаются в аннотацию. Ограничением аннотации будет
начало одного из разделов, подразделов, пунктов, подпунктов
47
или приложений. в аннотации допустимо использование перечис
лений и примечаний.
Директива .АРN служит для выделения прило
жения. Текстовый аргумент у •директивы берется в качестве
заголовка. Приложения начинаются с новой страницы. Для
выделения раздела применяется директива .СРТ, аналогичная
директиве .APN.
Директива .НLV определяет начало подраздела,
пункта или подпункта. Интерпретация директивы определяется
числовым аргументом (1 - подраздел, 2 - пункт, 3 - под
пункт) . Фрагмент текста, следующий за директивой, использу
ется как заголовок. Заголовок форматируется аналогично тек
стовой информации, но на меньшую длину выходной строки.
Если непосредственно за директивой указать одну из директив
типа .LIN, .BLN, то форматирование заголовка не производится.
В этом случае в начале выводимого фрагмента текста будет про
ставлена соответствующая нумерация. Содержимое номера
определяется аналогично нумерации заголовков.
Директива .АND определяет началофрагментатек
ста, который используется как элемент перечисления. Числовой
арrумент указывает на количество пустых строк перед началом
данного элемента перечисления. Элемент перечисления в распе
чатке дополняется знаком «- » и формируется аналогично
текстовой информации.
Директива .АТ Т используется для выделениятекста
примечания. Числовой аргумент отсутствует. Форматирование
проводится аналогично текстовой информации. В документе
тексту примечания предшествует слово «ПРИМЕЧАНИЕ».
По директиве .IST программа DOC выполняет распечатку переч.
ней, используя текстовый аргумент как заголовок.
К служебным директивам относятся .СОМ, .СНА, .СРУ.
Директива .СОМ предназначенадлявнесенияком
ментариев в исходный текст. Аргументы директивы не выво
дятся в формируемый документ, а печатаются на терминале опе
ратора.
Аргументом директивы .СНА являетсянаименова
ние файла, в котором находится продолжение исходного текста
документа. По этой директиве обработка текущего текста
прекращается и начинает обрабатываться указанный файл. Это
дает возможность размещения исходного текста в нескольких
файлах, расположенных на различных носителях. Длина цепочки
такого размещения логически не ограничена. Если в наименова
нии файла отсутствует указание устройства, то программа выби
рает устройство, на котором размещен первый файл распечаты
ваемого документа.
48
Аргументом директивы .СРУ являетсяназвание
дополнительного файла. Содержащийся в нем текст будет вклю
чен в формируемый документ. Соглашения о наименовании фай
ла совпадают с .СНА. По директиве .СРУ обработка текущего
файла прекращается и начинает обрабатываться дополнитель
ный файл. По завершении его обработки программа DOC возоб-
• новляет обработку текущего файла со строки, слецующей за
.СРУ. Во вторичном файле запрещается использование директи
вы .СРУ.
Использование программы DOC удобно тем, что не надо
беспокоиться о сохранении структуры документа. После внесе
ния исправлений в документ достаточно снова пропустить ис
правленный файл через программу и тем самым сэкономить
время для творческой работы.
3.4. СТРУКТУРА БАЗЫ ДАННЫХ
Система управления базой данных работает с данными,
представленными в виде таблиц. Таблица состоит из записей с
фиксированным набором столбцов. Каждый столбец имеет имя
и определенный тип, единые для всех записей базы данных.
Допустимы слецующие типы столбцов: 1) целое число в диапа
зоне от -32768 до 32767; 2) вещественное число; 3) символь
ная строка произвольной длины; 4) символьная строка фикси
рованной длины, содержащая от 1 до 32 символов.
Максимальное число столбцов в базе данных - 48. Обраще
ние к базе данных в СУБД происходит по имени, содержащему
не более шести латинских символов.
База данных на гибких магнитных дисках хранится в виде
трех физических файлов - записей, алфавитных данных и описа
ния. Имена этих файлов совпадают с именем базы данных.
Объем базы данных ограничивается объемом одной дискеты.
Диалог в СУБД строится так, чтобы минимизировать и об
легчить ввод, исключив при этом большинство возможных оши
бок. Система сама запрашивает в каждом конкретном случае
необходимую для работы информацию, выдавая подсказки,
которые часто содержат и набор допустимых ответов. Это
позволяет использовать систему пользователям с минимальной
подготовкой.
Ввод сrрок. Любой элементарный ввод (строк, чисел, ко
манд) заканчивается нажатием клавиши <ВК>. Для стирания
последнего выведенного символа используется клавиша <ЗБ>.
С помощью клавиш перемещения маркера вправо и влево
(➔, -+ -) можно подвести маркер к любому введенному символу
в строке и ввести новый символ. С помощью клавиш ➔ и -+ -
49
можно сдвинуть строку вправо или влево (удалиrь символ) от
позиции маркера.
Описанные средства редактирования строtси не рзспросrра
няются на ввод наименований файлов (имени, базы данных,
файла печати, файла формата) , который осуществпяется стаи
дарrными срецствами операциоююй системы.
Экранная 13блица. При заполнении, редактировании и про
смотре базы данных используется особая форма организации
диалога, называемая экранной таблицей (рис. 3.2).
Сверху размещается заrоповок базы да~ содержащий
имя базы данных, число стол~в и число записей в вей. Ни
же располагаются две пустые строIСИ, служащие для ввода
команд и данных (первая строка) и ,:rдя вывода .циа-иости
ческих сообщений (вторая строка). В ряде случаев обе стро
ки могут использоваться для вывода информационных сооб
щений.
Далее следует непосредственно табл~ща, состоящая из заго
ловка с именами и номерами выводимых стопбuрв и 15 строк,
в коrорые выводятся значения столбцов. Каждая строка соот
ветствует оцной записи. Нулевой столбец содержит IЮрядковые
номера выведенных на экран записей. Многие команды работаюr
с текущей записью, отмечаемой на экране сmщиалъ~м марке
ром, который располагается между нулаR>IМ и первым сIОИб
цами.
В общем случае экранная таблJЩЗ мажеr содержат~. не все
столбцы. Набор ВЫВОДИМЪlХ ка жрав с-юябцов и чисоо эаиима
емых ими позиций опредеюпотся при СОЗ.ЩUIИИ базы данных в
могут оперативно изменяться в процессе работы. Еаи символ.
пая строка значения столбца не умещается в чиспо отведенных
на экране оозиций, то она отсекается на экране (IIO ire в памяп
микроЭВМ).
Значение любого столбца текущей записи можно вывести
в комаидиую строку экрана независимо от тоrо, выведен ли
столбец жа экран или иеr.
БАЗА ~АННЫХ: KLASS: ЧИСЛО СТОЛБЦОВ: 5: ЧИСЛО ЗАПИСЕ~: 3
N :ФАМИЛИЯ
о
1
1:ИВАНОВ
2:ПЕТРО'ВА
3:СИАОРОВ
:ИHSI : КЛАСС
:
2
ВАСЯ 9-А
OЛSI
9-А
СЕРГЕИ 9-А
Рис. 3.2. Пример :экранной табmш.ы
50
3
:ПРЕАНЕТ:ОЦЕНКИ
4
ФИЗИК/\
4
. 1 1\otTEPAT. 5
ФИЗИК/\ 4
5
В описании базы данных хранятся четыре формата экрашюй
таблицы, называемые стандартными. Оии опредеruuотс.я при со
~ базы и моrут быть изменены при редактировании.
После вывода яа экран ннформациоННЬIХ и диагностических
сообщений возврат к обработке табл1щы осуществляется нажа
тием клавШIIИ <BIC>.
Защиrу базы данных можно осуществлять паролем, содер
жащим от 1 дР 4 символов, за исJСЛЮчеиием пробелов. Он вво
дите.я при создании базы данных и может быть изменен при ее
редактировании.
Еспи база даниыJL защищена иароnем, ю тобой работе с ней
предшествует ввод пароля независимо от тоrо, ИC:IIOJIЬЗ)'IOТCJ[
программы, реализующие диаяоrовwй режим, иии врограммный
доступ.
Программы, реализующие диалоговый режим, запрашивают
пароль в диалоге, выдавая на экран запрос ПАРОЛЬ? Есnи па
роль вводится неверно, выдаете.я диаrвоСУИЧеское сообщение
НЕВЕРНЬIЙ ПАРОЛЬ, и пароль эапраuпmаетсв оовюрно. Если
и вторично пароль вводится неверно, вывод днаrJЮстического
сообщения повторяется и выполнение программы завершается.
При ВВОАе пароля с ЮJавиатуры ,цвспJ}ея символы пароля
на экран не выводятся.
3.5. ПРОГРАММЫ ДЛЯ ДИАЛОГОВОГО РЕЖИМА
РАБОТЫ С БАЗОЙ ДАННЫХ
Диалоговый режим работы в СУБД реапизуется следующим
набором программных модулей": CRER - программа создания
базы данных; EDIR - редактор базы данных; REТR
-
програм
ма поиска; SORR - программа сорrнро:u:и базы данных;
COLR - программа обслуживания стопбцов; МERR
-
програм
ма слияния двух баз данных; UNIR - программа объединения
одиотиm1ых баз данных. Вьiэов модупя с дискеты выполняется
командой RUN.
Программа создаииа базы цаввых ОШR. Дu JUDбoй табли
цы можно создать базу даиRЫХ. Дп:я этоrо нсmльзуется про
грамма CRER, запрашивающая имя базы дашв,IХ, в которой
будет храниться табпвца и чиспо C'lWlбцo:8 в ней. Затем m каж
дому столбцу запрашиваются имя стол~ в ero тип.
Далее может быть задан один из четырех сr.шдар.rных фо~
матов экранной таблицы, остальньrе форматы rеиерирует про-
• В системной дОО1:ументации иа СУБД В83Ва11Ш1 всех. программ име
ют окончание RDB вместо R.
51
грамма, располагая на экране столько столбцов IIO порядку,
сколько умещается. Число rюэиций, заменяемых столбцом, опре
деляется из максимального количества символов в имени столб
ца и числа позиций, выделяемых стандарrно для каждого типа.
Для первого типа выделяется 6 rюзиций; для второго - 13; для
третьего - 1О и для четвертого отводится число позиций, равное
длине строки.
Если формат экранной таблицы в диалоге не задается, то
программа формирует четыре одинаковых описания экранной
таблицы. Форматы стандартных экранных таблиц можно изме
нять при редактировании.
После окончания описания данных формируются три файла,
содержащие базу данных.
52
Пример диалога соэдан1а1 базы данных
.R CRER
ИМЯ БАЗЫ ААННЫХ? KLASS
КОЛИЧЕСТВО СТОЛБЦОВ? 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,.4)? 1
ИСПОЛЬЗ~ЕТСЯ СТАНААРТНЫИ ФОРМАТ ТАБЛИЦЫ <А/Н)? Н
СВОБОАНЫХ ПОЗИЦИИ ЭКРАНА: 79
Н~ЛЕВОИ СТОЛБЕЦ ВЫВОАИТСЯ НА ЭКРАН <AIH)? А
ШИРИНА СТОЛБЦА? 4
СВОБОАНЫХ ПОЗИЦИИ ЭКРАНА: 74
СТОЛБЕЦ ФАМИЛИЯ ВЫВОАИТСЯ НА ЭКРАН <AIH)? А
ШИРИНА СТОЛБЦА? 15
СВОБОАНЫХ ПОЗИЦИИ ЭКРАНА: 58
СТОЛБЕЦ ИМЯ ВЫВОАИТСЯ НА ЭКРАН (А/Н)? А
ШИРИНА СТОЛБЦА? 5
СВОБОАН~Х ПОЗИЦИЯ ЭКРАНА: 52
СТОЛБЕЦ КЛАСС ВЫВОАИТСЯ НА ЭКРАН <AIH)? А
ШИРИНА СТОЛБЦА? 12
СВОБОАНЫХ ПОЗИЦИИ ЭКРАНА: 39
СТОЛБЕЦ ОЦЕНКА ВЫВОАИТСЯ НА ЭКРАН <AIH), А
ШИРИНА СТОЛБЦА? 7
СВОБОАНЫХ ПОЗИЦИИ ЭКРАНА: 31
СТОЛБЕЦ ТЕЛЕФОН ВЫВОАИТСЯ НА ЭКРАН <А/Н)? А
ШИРИНА СТОЛБЦА? 8
ПОАТВЕРАИТЕ СОЗААНИЕ БАЗЫ ААННЫХ <А/Н)? А
6АЭА ААННЫХ KLASS СОЭААНА
После вопроса, задаваемого микроЭВМ, идут ответы пользо
вателя. Если при описании экранной таблицы в ответ на запрос
о выводе столбца на экран нажимается только клавиша < ВК>,
настройка таблицы прекращается и считается, что оставшиеся
столбцы на экране не выводятся. При выходе столбца за грани
цы экрана выдается диагностика и запрос на вывод столбца
повторяется.
Вещественные числа могут выводиться на экран в одном из
двух форматов: с WJавающей точкой, например 1.253400Е + 02,
и в формате с фиксированной точкой, например 125.34. •
При настройке экранной таблицы 11дя столбцов второго типа
(вещественное число) после запроса ширины столбца запраши
вается формат вывода числа. Если число выводится в формате
с фиксированной точкой, то запрашивается число цифр, выводи
мых после точки.
Редактор базы данных EDIR. Он позволяет заполнить и ре
дактировать базу данных. После вызова редактора запрашивает
ся имя базы данных и на экран выводится хранящаяся в ней
таблица. Управление редактором осуществляется с помощью
нажатия функциональных клавиш (см. приложение 2).
Программа поиска RE1R. С помощью REТR можно про
сматривать записи базы данных, осуществлять выборочный
поиск записей по заданным условиям, исследовать значения
столбцов, пересьmать искомые записи в новую базу, выrюлнять
печать активных записей базы данных.
Условие поиска может содержать до 16 ключей. Ключ состо
ит из номера столбца, операции сравнения и второго операнда
операции сравнения. В качестве операнда может выступать либо
столбец, либо значение, вводимое с клавиатуры. Допустимы
следующие операции сравнения:
меньше(<);
больше(>);
равно (=);
операция сравнения 11дя символьных строк =i=), когда равен
ство проверяется не по полной строке, а по заданной начальной
подстроке;
неравно(<>);
меньше или равно (< =);
больше или равно (> =).
Эти операции определены 11дя всех типов, за исключением
d». Они определены только 11дя символьных строк. Диалог
ввода условия вьшолняется после команды УС.
Заданные условия не больше четырех могут быть выведены
на экран с помощью специальной команды ИУ.
S3
Пример диалоrа ввода условий при работе с проrраммой RETR
НОМЕР СТОЛБЦА (0 ..5)? 2
ОПЕРАЦИЯ<( >=t <> <=>=К>?=
ЗНАЧЕНИЕ ИЛИ СТОЛБЕЦ (3/С)? З
ЗНАЧЕНИЕ? 0ЛSI
ЕЩЕ Б~АЕТЕ ввоаить кл~чи <1/Н>? А
НОМЕР СТОЛБЦА <О ..5)? 4
ОПЕРАЦИЯ(()аt<><=)аК>?К
ЗНАЧЕНИЕ ИЛИ СТОЛБЕЦ (З/С)? Э
ЗНАЧЕНИЕ? ЛИТЕР.
ЕЩЕ Б~АЕТЕ вво1ить кл•чи <А/Н)? н
Условие считаетсл истш,ным, eC/lu истшты все заданные
клюrш.
Запись считается активной, если она удовлетворяет хотя бь~
одному условию поиска.
Условие можеr ti,iть Зllдано с использованием нулевого
столбца. когда в качестве значения выступает номер записи.
После вызова проrраммЬJ поиска запрашивается имя базы
данных и на экран выводится таблица, но с пустыми строками,
отведенными оод записи.
Управление проrраммой поиска, так .же как и редактором,
осущесТВПJiется с оомощью функциональнЬiх клавшu и команд
(см. приложение 2).
С помощью проrраммы REТR по команде П (печать актив
ных записей даннЬiх) МОЖIЮ выполНJПЪ печать всех активных.
записей базЬJ данньIХ. Записи моrут выводиться полностью или
по указанным столбЦIIМ. База распечатывается в виде таблицы,
подобно экранной, JIO в оmичие от нее значение столбца выво
диrся mлностыо. Еспи оно яе умещается в отведенные позИЦIОI
столбФ, i;o ero печать продолжаетса: (только ддя символьных
строк) на следующей строке. Таким образом одна запись может
занимать несколько строк печати.
Настройка формата печати производится в диалоrе, в начале
котореrо запрашивается ширина печати. В ответ вводится число
используемых позиций листа печатающего устройства. На запрос:
ИСПОЛЬЗОВАТЬ crАНДАРПIЫЙ ФОРМАТ ПЕЧАТИ (д/Н)?
при ответе Д используется стандартный формат печати, а при от
вете Н продолжается диалоr по настройке таблицы. Заголовок
печатаемой таблиЦЬI содержит имена и номера столбцов, а набор
выводимых на печаn столбцов и число занимаемых ими пози
ций определяется JIO тем же правилам, что и для стандартною
формата экранной таблицы. После окончания настройки записи
выводятся на печать mд своими номерами в базе данных. Полу
чив утвердительный ответ на запрос
54
ПОДТВЕРДИТЕ ПЕЧАТЬ (д/Н) ?
запращивается имя выходного файла, в который выводятся за
писи данных. При нестандартном формате настройка продол
жается.
Перед выводом на печать базы данных может быть отпечатан
собственный заголовок пользователя. Если заголовок не вводит
ся, то в начале каждого листа печатается имя базы данных. Выво
димая на печать таблица начинается с заголовка. Есл~ имена
столбцов в заголовке не умещаются в отведе1mые столбцу пози
ции, они выводятся в несколько строк. Записи на печать могут
вьшодиться под своими номерами в базе да1mых или в порядке
их вывода на печать.
Далее по каждому столбпу запрашивается необходимость
ero вывода на печать и число занимаемых столбцом позиций.
Предварительно выдается число оставшихся свободных пози
ций. Если в ответ на запрос нажимается только клавиша <ВК>,
оставшиеся столбцы на печать не выводятся.
Средства печати позволяют не только распечатать содержи
мое базы данных, но и вывести отобранную предварительно
информацию из базы в виде печатного документа, снабдив его
соответствующим заголовком.
Команда ВЧ в программе REТR позволяет вычислить ариф
метическое выражение, в котором допустимы операции «+»,
«-», «*»,«/».В арифметические выражения включаются:
-
целые и вещественные константы;
-
столбец, задаваемый своим Ж>мером в виде Ф 1,:i=З, где
=11= -
признак столбца. В арифметическом выражении используют
ся только числовые типы столбцов;
-
функции над столбцами базы данных. Аргументом функ
ции является арифметическое выражение.
Допустимыми являются функции СУМ и СР.
СУМ - функция суммирования. С помощью
функции СУМ можно вычислить для каждой активной записи
значение заданного аргумента функции и выполнить суммиро
вание этих значений по всем активным записям. Например,
СУМ (:i=1),СУМ (=11=1+:i=2);
СР - функция вычисления среднего. С по
мощью данной функции для каждой активной записи можно
вычислить значение заданного аргумента и среднее из этих зна
чений СР (=11=5), СР (=11=2/ 10).
Пример арифметического выражения.
Ф2 = (1 +'8=2 - 3 •5.4)/6,
55
rде операция «=» присваивает значение выражения, сrоящего
справа от знака операции, столбuу текущей записи, номер кото
рого указан слева от знака операции.
Чтобы выполнить аналогичную операцию присваивания ЩIЯ
всех активных записей, используется функция ЗАП, аргументом
которой является выражение, содержащее операцию «=».
Например,
ЗАП (=1=4 = Ф2 •ФЗ)
Здесь ЩIЯ всех активных записей значение четвертого столб
ца устанавливается равным значению второго столбца, умножен
ному на значение третьего столбца этой же записи.
Программа сортировки SORR. При вызове модуля запрапш
ваются имена входной и выходной баз данных и номер столбца,
по которому необходимо произвести сортировку. Программа
сортирует записи по заданному столбцу в порядке возрастания
значений столбца; ЩIЯ столбцов третьего и четвертого типов
производит алфавитное упорядочение.
Проrрамма обслуживания столбцов COLR. Программа
позволяет переименовать столбцы, удалять их, добавлять новые,
переставлять (изменять место столбца в базе данных), изменять
Щiину строки (Щiя столбцов четвертого типа) .
При одном обращении к программе можно произвести '/1/J
20 операций. При этом над одним столбцом вьшолняется только
одна операция. При попытке произвести более одной операции
над одним и тем же столбцом выдается сообщение:
ОПЕРАЦИЯ НЕВЫПОJПIИМА -
ВВЕДЕННАЯ РАНЕЕ ОПЕРАЦИЯ НЕСОВМЕСГИМА.
Порядок расположения в новой базе данных добавленных и
переставленных столбцов за одним и тем же столбцом (включая
и нулевой) определяется порядком ввода соответствующих опе
раций. В остальных случаях порядок ввода операций роли не
играет.
Каждая операция требует выбора столбца, который следует
удалить или после него вставить другой. При запросе операций
выводится имя столбца. С помощью клавюn <стрелка вниз> и
< стрелка вверх> просматриваются (выводятся на экран) име
на столбцов. Выбор столбца фиксируется нажатием клавюnи
<ВК>. Имена столбцов связаны в кольцо, т.е. после вывода
последнего столбца будет выведено имя первого столбца.
Программа не реагирует на ошибочно нажатые клавиши.
При использовании операции изменения ЩIИНЫ строки в столбце
на экран выводятся только имена столбцов четвертого типа.
При вызове программы запрашиваются имена входной и выход-
56
ной баз данных. Если эти имена совпадают, то при запросе име
ни выходной базы данных достаточно нажать клавишу <ВК>.
В конце программы происходит настройка экранной таблицы
новой базы данных.
Пример работы с программой COLR
.R
COLR
ИМЯ ВХОАНОИ БАЗU ААННЫХ? NAME1
ИМЯ ВUХОАНОИ БАЗЫ ААННЫХ? NAME2
АОПУСТИМUЕ ВИАU ОПЕРАЦИЙ НАА СТОЛБЦАМИ:
ПЕРЕИМЕНОВАТЬ СТОЛБЕЦ
(П)
УААЛИТЬ СТОЛБЕЦ
(У)
АОБАВИТЬ СТОЛБЕЦ
(А>
ПЕРЕСТАВИТЬ СТОЛБЕЦ
(М>
ИЗМЕНИТЬ АЛИНУ СТРОКИ СТОЛБЦА (ТИП 4> (С)
ВВЕАИТЕ НУЖНЫИ ВИА ОПЕРАЦИИ (П/У/А/М/С)? П
ПЕРЕИМЕНУЕМЫИ СТОЛБЕЦ: ИМЯ СТОЛБЦА /НОМЕР СТОЛБЦА/
НОВОЕ ИМЯ СТОЛБЦА? НОВОЕ ИМЯ
ПОАТВЕРАИТЕ ВЫПОЛНЕНИЕ ОПЕРАЦИИ (А/Н)? А
ЕЩЕ БУАЕТЕ ВВОАИТЬ ОПЕРАЦИИ <AIH>J А
ВВЕАИТЕ НУЖНUИ ВИА ОПЕРАЦИИ (П/У/А/М/С>? У
УААЛЯЕМUИ СТОЛБЕЦ: ИМЯ СТОЛБЦА /НОМЕР СТОЛБЦА/
ПОАТВЕРАИТЕ ВЫПОЛНЕНИЕ ОПЕРАЦИИ (А/Н>? Н
ЕЩЕ БУАЕТЕ ВВОАИТЬ ОПЕРАЦИИ <AIH>? Н
ИСПОЛЬЗУЕТСЯ СТАНААРТНЫИ ФОРМАТ ТАБЛИЦЫ ВЫВОАА(А/Н)? А
ЗАААННЫЕ ОПЕРАЦИИ НАА бАЗОИ ААННЫХ NAME2 ВЫПОЛНЕНU
Программа слияния баз данных MERR. Она выполняет сли
яние двух существующих баз данных в третью базу. При вызове
модуля запрашиваются имена двух исходных баз данных и ре
зультирующей базы данных. Затем пользователь указывает
число сравниваемых пар столбцов и их номера в исходных базах
данных. Формирование записи в результирующей базе данных
происходит путем слияния записей исходных баз данных, име
ющих полное соответствие во всех парах сравниваемых столб
цов. Сравниваемая пара столбцов представлена в результиру
ющей записи одним столбцом, для которого может быть указа
но новое имя. При слиянии в результируюшую базу данных
могут переноситься не все столбцы, а только указанные. Для
результирующей базы данных выполняется аписание формата
экранной таблицы.
Пример работы с программой MERR
.R
MERR
ИМЯ ПЕРВОИ (ВХОАНОИ> БАЗU AAHHUX? NAME1
ИМЯ ВТОРОИ <ВХОАНОИ) БАЗU ААННЫХ? NAME2
ИМЯ ВЫХОАНОИ БАЗU AAHHUX? NAME3
ЧИСЛО СРАВНИВАЕМЫХ ПАР СТОЛБЦОВ? 1
НОМЕР СТОЛБЦА В ПЕРВОИ БАЗЕ AAHHUX? 2
НОМЕР СТОЛБЦА ВО ВТОРОИ БАЗЕ AAHHUX? 3
имя РЕЗУЛЬТИРУЮЩЕГО СТОЛБЦА в навои БАЗЕ ААННЫХ? ОБЩИИ
ВСЕ СТОЛБЦU БАЗЫ ААННЫХ 1 И БАЗЫ AAHHUX 2 СОХРАНИТЬ (AIH>?H
БАЗА ААННЫХ NAME1, КОЛИЧЕСТВО СТОЛБЦОВ 2
КАКОИ ИЗ СТОЛБЦОВ УААЛИТЬ?
51
СТОЛБЕЦ 1<AIH)? А
БАЗА ААННЫХ NAHE2, КОЛИЧЕСТВО СТОЛБЦОВ 4
КАКОИ ИЗ СТОЛБЦОВ УААЛИТЬ~
СТОЛБЕЦ 1СА/Н)? Н
СТОЛБЕЦ 2(А/Н)7 Н
СlОЛБЕЦ 4СА/Н)? А
ИСПОЛЬЗУЕТСSI СТАНААРТНЫ\11 ФОРМАТ ТАБЛИЦЫ ВЫВОАА <АIН>? А
БАЗА ААННЫХ NAHE3 СОЗААНА
Программа обьединения баз Д111111Ь1Х UNIR. Эта программа
позволяет объединить две однотипные базы данных, создавая
третью и переписывая в нее сначала все заrшси первой, а затем
все записи второй базы данных.
Объединяемые базы данных должны соответствовать друг
другу, т .е. иметь одинаковое число и одинаковые типы столб
цов. В противном случае выдается сообщение.
ИСХОДНЫЕ БАЗЫ ДАННЫХ НЕ СООТВЕТСfВУЮТ ДРУГ_ДРУГУ
и программа завершает свою работу. Имена столбцов, получен
ных после объединеJШЯ результирующей базы данных, совпада
ют с именами столбцов.
С помощью программ СУБД пользователь получает возмож
ность упорядочить хранение информационно-справочных таблиц
и использовать готовые программы ЩIЯ их обработки.
ВОПРОСЫ ДЛR САМОКОНТРОЛЯ
3.1. В каком виде можно DОДl"ОТОВIПЬ ароrрамму с DОМОЩЫО экраи
иоrо редактора: а) текстовый фаiш, б) проrрамма в объектном коде;
в) заrруэо'IШпi МQAYJDo?
3.2 . С помощыо каких функциоиавьиых клавиш в текстовый файл
можно вставиrь строку АААААМА.АА?
3.3. Kaкoii командо1i можно установить размер страницы редактора,
рuиыi 24 строкам?
ЗА. Какие директивы документатора используются AIIЯ авrомата
ческоii нумерации раэде.аов в сбора Оl'J1авлевия?
3.5. В какой форме аредст1111J1Яюrся данные в системе управлевна
базой данных СУБД?
3.6. Как, используя СУБД с табв~щей учеников класса, вычислиrь
их средний возраст?
Гпава4
ИНТЕРАКТИВНАЯ ГРАФИКА НА МИКРОЭВМ
4, 1. ОБЩИЕ СВЕДЕНИЯ
До недавнеrо времени обработка rрафической информации
являлась сложным процессом даже 11дя больших ЭВМ. Однако
сейчас возможности микроЭВМ возросли настолько, чrо к ним
моrут поДЮiючаться устройства 11дя ввода-вывода rрафичес
кой информации. Интерес к маnппmой графике обусловлен
тем, чrо во МЖ>rих приложениях rрафическое представление
данных наиболее эффективно. Диалоговое воздействие при
работе с ШfтерактивJЮй rрафикой mзволяет объедm1ить воз
можности человека и ЭВМ, эффективнее исIКШЬзовать лучшие
качества каждого, являясь мощным инструментом в решеШПI
прикладных задач.
1 Машштал графика - созда,ше, хранеиие и обработка в циф-
ровом виде изображений различных объектов на ЭВМ.
В зависимости от области применений существуют разнооб
разные формы машинной графики. В m1терактивиой графике
пользователь имеет возможность управлять процессом рисова
ния изображения, ero формой, размерами, цветом на экране
rрафическоrо диспл~я. Чтобы работать с изображениями, в со
став микроЭВМ должен входить графический дисплей. IIlиpoкoe
использование графических средств связано с появлением в се
редине 70-х rодов относительно дешевых растровых дисплеев,
основанных на стандартной телевизиоНJЮй технике. В растро
вых дисплеях изображение, состоящее из отрезков прямых,
дуr окружностей, букв, закрашевных участков, хранится в па
мяти микроЭВМ в виде совокупности точек - элементов изоб
ражения (пикселов). Изображение формируется на растре,
представляющем набор rоризонтальных строк, каждая ю кото
р~ состоит из отдельных пикселов. Таким образом, растр -
это матрица пикселов, закрывающая всю mоща,ць экрана дис
JDiея. Для постоянного воспроизведения на экране изображение
очень быстро (24 раз/с) считывается из памяти на экран. При
этом в качестве дис1mея может исmльэоваться обычный телеви
зор. За простоту такой реализации приходится JDiатить большим
размером памяти 11дя хранения данных. Для черно-белого изоб
ражения на каждый элемент изображения приходится отводить
минимум одну ячейку памяти. Для цветного иэображщmя или
получения тонов требуется большее число ячеек. В настоящее
время распространены графические диСIDiеи на базе бытовых
цветных телевизоров (например, цветной дисшtей растровый -
S9
Прикладные программы
Прикладная структура
данных
(дисплейный файл)
Программы управления
вводом- выводом
на дисплей
Построение элементарных
графических изображений
Аппаратное
Программное
Рис. 4.1 . Модель программирования машш~:ной графики
Дисплей
ЦЦР) с разрешением 256Х256 точек и заданием в каждой точке
одного из четырех цветов. Отметим, чrо характеристики графи
ческих дисIDiеев постояШiо улучшаются.
Появление новых аппаратных средств для вывода графичес
кой информации ставит серьезные проблемы перед програм
мным обеспечением машинной графики. Решение задач текстовой
или цифровой обработки практически не зависит от конкретно
го типа микроЭВМ, так как все они обеспечены трансляторами
с соответствующих языков высокого уровня. Однако пакеты
программ для работы с графической информацией существеШiо
зависят от характеристик конкретного дисплея. Поэтому одной
из главных задач разработчиков является стандартизация при
кладного программного графического Qбеспечения и разработ
ка универсальных пакетов программ.
Так как пока не выработан единый стандарт на программи
рование машинной графики, то широко используется много
уровневая модель программирования (рис. 4.1). В этой модели
в отдельный блок выносятся программы, которые физически
управляют дисIDiеем для отображения информации на экране.
Построение изображения из составляющих его элементов (при
митивов) может происходить двумя способами: аппаратно
(посредством усложнения логической части управления дисrше
ем) и программным путем.
4.2 . АЛГОРИТМЫ ПОС1РОЕНИR ПРЯМЫХ И ОКРУЖНОСТЕЙ
Стремление к простоте программного управления графи
ческим дисIDiеем приводит к тому, что при построении изобра
жений применяют единствеШiую программу, зависящую от типа
дисIDiея. Она выводит на экран точку с координатами Х, У и
цветом С. Все остальные графические примиrивы могут быть
построены с помощью этой программы и не бу.цут зависеть от
60
конкретного типа дисмея. Обращаться с ней можно с помощью
оператора вызова подпрограммы языка ФОРТРАН:
CALL PRINTP (Х, У, С).
Более сложные изображения можно построить путем после
довательного вычисления координат точек и вывода их на экран
подпрограммой PRINТP.
Практически всегда к программам построения изображений
предъявляются повышенные требования к быстродействию,
поэтому для построения любых фиrур предпо1Пительны алго
ритм с минимальным числом вычислений (особенно ьпераций
умножения и деления, которые выполняются на микроЭВМ
без специальной аппаратуры достаточно долго).
Наиболее часто при построении изображений используются
отрезки прямых линий и окружности.
Алгоритм построения прямых. Основная задача алгоритма
состоит в вычислении координат элементов, лежащих вблизи
отрезков прямых, изображаемых на экране. Оrрезок задается
начальной (XN, YN) и конечной (Хк, Ук) точками. Координаты
остальных точек (Х, У), принадлежащих отрезку, удовлетворя
ют уравнению
rде
У=АХ+В,
Ук- YN
А=---;В=
Хк-ХN
В простейшем случае можно задавать единичные приращения
Х и вычислить значение У. Процесс вычислений замедляет умно
жение АХ, для которого нужно хранить А и Х в виде веществен
ных чисел. Операцию умножения
можно устранить, если заме
тить, что единичные приращения
Х сводятся к изменению У на А.
Тоrда рекуррентные соотноше
нияХ;+1=Х;+1;Ун1=У;+А
позволяют последовательно вы
числить координаты всех точек
только на основе операций сло
жения, как показано на рис. 4.2 .
Если А > 1, то шаr по Х будет Рис. 4.2 . Пошаговое вычисление
приводпть к шаrу по У. больше- координат отрезка
му1.ДляэтоrослучаяХиУ
надо поменять ролями. Ниже приведена программа 4.1 на языке
ФОРТРАН, реализующая данный алrоритм.
61
62
Проrрамма4.1. Построениеотрезкапрямой
с
С
ПОСТРОЕНИЕ ВЕКТОРА В 1-М КВАДРАНТЕ
с
с
с
с
с
с
с
SUBROUTINE VECTI(C,XN,YN,XК,YК)
INTEGER ХN,УN,ХК,УК,Х,У,Х1,У1,Х2,У2,С
XN,YN
ХК,УК
с
-
КООРДИНАТЫ НАЧАJIЬПОй ТОЧКИ
-
КООРДИНАТЫ КОНЕЧНОЙ ТОЧКИ
-
ЦВЕТ ТОЧКИ
REAL A,YR
INV=l
Xl=XN
Yl=YN
Х2=ХК
Y2=YIC
IF ((Xl.EQ.X2) . .AND.(Y1.EQ.Y2)) GO ТО 25
IF (IAВS(Y2-Y1).LE.IAВS(X2-Xl)) GO ТО 10
С
IIЕНЯЕМ KOOPJUШATH Х И У РОЛЯМИ
с
с
X=Xl
Xl=Yl
Yl=X
Х=Х2
Х2=У2
У2=Х
INV=2
С
В КАЧЕСТВЕ НАЧАЛЪВОй ВЬIБИРАЕМ ТОЧКУ С МЕНЬШИМ Х
с
10
IF (X2.GE.X1) GO ТО 20
X=Xl
с
с
с
20
с
с
с
с
25
с
с
с
с
30
40
50
Х1=Х2
Х2=Х
Y=Yl
У1=У2
У2=У
ОПРЕДЕЛЯЕМ КОЭФФИЦИЕВТ НАКЛОНА ОТРЕЗКА
А=(1.*(У2-У1))/(Х2-Х1)
ВЫЧИСЛЯЕМ ТОЧКИ ОТРЕЗJСА Х,У,
НАЧИНАЯ С Xl,Yl
YR=Yl
ОБРАЩЕНИЕ К POINT ЗАВИСИТ ОТ ТОГО
ИЕНЯJIИ ИJIJI НЕТ Х И У РОJIЯМИ
GO ТО (ЗО,50), INV
00 40 X=Xl,X2
ПРИРАЩЕНИЯХ НА 1
Y=YR
OКPn'JIЯEJI ДО ЦЕJIОГО
CALL POINT(C,X, У)
YR=YR+A
ПРИРАЩЕНИЯ У НА А
REТURN
00 60 X=Xl, Х2
Y=YR
OKPn'JlЯEII ДО ЦЕЛОГО
CALL POINT(C,X,Y)
60
YR::YR+A
REТURN
END
Алrоритм построения окружностей. Существуют простые,
но не эффективные способы построения окружности на графи
ческом диcIUiee. Окружность радиусом R с центром в начале
координат описьmается уравнением
х2+у2=R2.
Решая это уравнение относительно У, получаем
У=±✓R2-Х2.
Для изображения части
окружности, расположенной в
первом квадранте, можоо с ша- R •
гом 1 увеличивать Хот О до R и
каждый раз, вычисляя квад
ратный корень, определять У. В
данном алгоритме операции
возведения в квадрат и извле
чения корня требуют значи
тельных затрат времени. Кроме
того, имеются незаполненные
промежутки в изображении
окружности (рис. 4.3). Алго-
••••
••••
•••
•••
•
••
••
•
•
•
R
ритмы построения окружности Рис. 4.3. Построение окружности
можно упростиrь, если вое- прямым решением уравнения
пользоваться ее симметрией.
Пусть для окружности с центром в начале координат известна
какая-нибудь лежащая на ней точка Х, У. Тогда можно полr~ить
еще семь точек (рис. 4.4). Построив дугу окружности в 45 , по
лучим остальные ее точки, применяя программу 4.2.
(-Х, У)•
(-У, Х) •
(-У, -Х) •
(-Х, -У) •
(Х, У)
•
(У, Х)
• (У, -Х)
•
(Х, -У)
Рис, 4.4. Использование симметрии окружно
сти для вычисления дополниrельных точек
63
Пр о грамм.а 4.2. Построение точек окружности на основе симметрии
С
Х,У
КООРДИНАТЫ ОЧЕРЕДНОИ
С
ТОЧКИ НА ОКР~ЖНОСТИ
С
ХО,УО КООРДИНАТЫ ЦЕНТРА
С
ОКР~ЖНОСТИ
С
С
ЦВЕТ ПОСТРОЕНИЯ ТОЧЕК
SUBROUTINE CIRCLB<C,X,Y,XO,YO)
INTEGER Х,У,ХО,УО,С
CALL POINT<C,X+XO,Y+YO)
CALL POINT<C,Y+XO,X+YO>
CALL POINT<C,Y+XO,-X+YO)
CALL POINT<C,X+XO,-Y+YO)
CALL POINT<C,-X+XO,-Y+YO)
CALL POINT<C,-Y+XO,-X+YO)
CALL POINT<C,-Y+XO,X+YO)
CALL POINT<C,-X+XO,Y+YO)
RETURN
END
Рассмотрим более подробно алгоритм построения окруж
ности в секторе от О до 45 °. Введем для каждой точки Р
с координатами Х, У квадрат расстояния D (Р) от истин
ной окружности. Если Р лежит вне окружности, то квадрат
расстояния
D(Р)=xz+у2-R2;
если Р лежит внутри окружности, то D (Р) = R2 - Х2 - У2•
Чтобы на i-м шаге определить, какая из двух точек S; или
Т; будет аппроксимировать окружность на экране дисIUiея, надо
сравнить квадраты их расстояний D(S;) и D (Ti) до истинной
окружности. Введем величину
d; = D(Si) - D(T;).
Если d; < О, то выбирается точка S;; если d; ;;;i,. О, то выбирается
точка Т;.
Для вычисления d; можно получить простые рекуррентные
соотношения. На первом шаге (рис. 4.5, а) Х = О, У= R и
а)О
б)
в)
R
у
R-1
Т;
Т; +1
У-2
Рис. 4.5 . Выбор точек для построения окружности
64
Т; +1
d1 =D(,Si)-D(Ti)=R 2 +1-R2 - [R 2 -(R-1)2-1] =3-2R.
Сооrnошения щ~я произвольного (i + 1)-го шаrа зависят от
того, какая из двух точек S; или Т; выбиралась на i-м шаге.
Пусть на(i- 1)-мшагеХ;_1 = Хи У;_1 = У. Еслина i-мшаrе
была выбрана точка S; (рис. 45, б), то с учетом определения
d;, сделанного выше,
dt+i =D(S1+1) -D(T;+1) = (Х + 2;2 - у2
-R2
-
[R2 -
-(Х+2) 2 -(У+1) 2 ] =(X+l) -Y
2
-R
2
-[R2
-
-
(Х+1)2 -(У+ 1)2
]
+4X+6=D(S;)-D(T;) +4Х;-1 +
+6=d;+4Х1-1 +6.
Если на i-м шаrе была выбрана точка Т; (рис. 4.5, в), то
d1+1 = d; + 4(X1-i
-
У,_ 1 ) + 10. Аналогично можно разрабо
тать алгоритмы построения более сложных кривых. Достоин
ством таких алгоритмов является их линейность; щ~я постро
ения окружностей не требуется операций возведения в квадрат
и извлечения квадратного корня, которые на микроЭВМ вы
полняются мещ~енно. На основании этих вычислений получена
программа 4.3 построения окружности.
П р о r р а м м а 4.3 . Пошаговое построение окружности
о
с
XQ,YO - кооРаинАТЫ ЦЕНТРА
С
R
-
РА1ИУС ОКРУЖНОСТИ
С
С
-
ЦВЕТ
с
с
SUBROUTINE CIRCLE(XO,YO,R ,C)
INTEGER X0,Y0,R,C,X,Y,D
С
НАЧАЛЬНЫЕ ЗНАЧЕНИЯ
Х=О
Y=R
D=3-2*R
с
С
СТРОИН ТОЧКИ В СЕКТОРЕ 45 ГРА1УСОВ
с
10
IF <X.GE.Y) GO ТО 50
с
С
КООР1ИНАТЫ ОЧЕРЕ1НОИ ТОЧКИ НАМ1ЕНЫ
С
испопьэ~я СИННЕТРИ~ ВЫВ01ИН их НА ЭКРАН
с
CALL CIRCLS<X,Y,XO,YO,C)
IF (D.LT .O> GO ТО 20
D=D+4*(X-Y)+10
ВЫБИРАЕТСЯ ТОЧКА Т
У=У-1
ПРИРАЩЕНИЕ У
GOТО30
20
D=D+4*X+6
ВЫБИРАЕТСЯ ТОЧКА S
30
Х=Х+1
ОЧЕРЕ1НОЕ ПРИРАЩЕНИЕ Х
GOТО10
50
1~ (Х.ЕО.У) CALL CIRCLS<X,Y,XO,YO,C)
RETU~N
END
6S
В результате работы этой программы будут построены все
точки окружности в секторе а = 45 °, показанном на рис 4.3,
а остальные точки будут построены симметрично в программе
CIRCL8. Программы д,Ля построения более сложных иэображе
JШЙ могут конструироваться многократным вызовом программ
VECTI и CIRCl.8 с указанием необходимых параметров.
4.3. &И&ЛИОТЕКА ПРОГРАММ ФОРМИРОВАНИЯ
ЭЛЕМЕНТОВ ИЭО&РАЖЕНИА
Графические примитивы стро.ят в виде библиотек подпро
rрамм, совместимых с языками высокоrо уровня типа БЕЙСИК,
ПАСКАЛЬ, ФОРГРАН. Рассмотрим минимальный набор про
rрамм такой библиотеки, ориентированный на работу с цвеmым
растровым дисJDiеем, построенным на базе бытового цветноrо
телевизора «Юность». Использование библиотеки позволяет
на языке высокоrо уровня описывать rеометрюо выводимоrо
на экран изображения.
Кадр изображения содержит 256Х256 точек. Каждая точка
выводиn:я одним нз четырех цветов. Управляющее устройство
дисJDiея позволяет быстро задавать цвет фона всего экрана
с помощью проrраммы ERASB (С), которую на языке ФОР'IРАН
можно вызвать оператором CALL:
CALL ERASE (С)
Параметр С определяет цвет всего экрана (С = О - черный,
С=1 - красный,С=2- синий,С=3- зеленый).
Прежде чем вывести какую-либо точку на экран, нужно
осуществить ее привязку к требуемым коорДIDlатам экрана дис-
1mея. Это можно сделать с помощью проrраммы POINT:
CALL POINT (С, Х, У),
rде С - цвет выводимой на экран информации; Х, У - коорди
наты (положение) первоrо выводимоrо символа. При этом
должно выполняться условие О < Х < 255, О< У< 255.
Программа POINT обычно используется }JДЯ последующеrо
размещения в нужном месте экрана строки текста, который
выводится программой АSСП:
CALL ASCII (С;ТЕКСТ ;N).
Здесь С - цвет выводимой на экран строки текста ТЕКСТ,
состоящей из N символов. Каждый символ в тексте программы
строится в матрице 5Х7 точек. Одновременно на экран можно
вывести 16 строк символов по 32 символа в строке.
66
F.динственную точку можно ввести с помощью программы
PRINTP:
CALL PRINTP (С, Х, У),
где С - цвет выводимой точки; Х и У
-
ее координаты на экра
не дисплея.
Из более сложных примитивов достаточно уметь строить
отрезки прямых с помощью программы VECТI:
CALL VECfl (С, Xl, Yl, Х2, У2),
где С - цвет отрезка; XI, Yl и Х2, У2 - координаты соответ
ственно начальной и :конечной точек.
Пр о гр а м м а 4.4. Построение графиков функций
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
с
30
40
с
с
)(
)(
)(
)(
)(
GRArIK - ПРОrРАННА ПОСТРОЕНИЯ rРА•ИКА
НА ЦВЕТНОН АИСПЛЕЕ РАСТРОВОН
ПАРАНЕТРЫ:
X<N> ,Y(N>
N
-НАССИВЫ ЗНАЧЕНИИ •УНКЦИИ Y=r(X)
-КОЛИЧЕСТВО ТОЧЕК •~нкции
IDX,IDY
-ЗАААВАЕНЫЕ РАЗНАХИ ПО ОСЯН Х И У
НАСШТАБИР~•т РАЭНАХ rРАФИКА
ВЫЗЫВАЕНЫЕ ПРОrРАННЫ:
ERAS,<C>
-РИСОВАНИЕ ФОНА
POINT<C,X ,Y)
-ПОЗИЦИОНИРОВАНИЕ ТОЧКИ
PRINTP<C,X ,Y) -ВЫВОА ТОЧКИ
ASCII(C,•TEKCT',NT) - ВЫВОI ТЕКСТА
VECTI(C,X1,Y1 ,X2,Y2) ~ РИСОВАНИЕ ВЕКТОРА
ВЕРСИЯ 1-ФЕВРАЛЯ-86 rOAA
SUBROUTINE GRAFIK<X,Y ,N ,IDX ,IDY)
INTEGER N,X<N),Y(N>,IDX ,IDY ,
YHAX,YHIN ,
1 HIN
XltAX,XHIN ,
1 И НАХ ЗНАЧ. •-ии
С,
1 УКАЗАТЕЛЬ ЦВЕТА
DELX,DELY ,
1 ВЫЧИСЛЕННЫЕ РАЭНАХИ •-ии
NX,NY ,IX ,IY
1 <I-1>-Я И I-Я ТОЧКИ rРАФИКА
РИСУЕН СИНИА ФОН
CALL ERASE<2)
РИСУЕН КРАСНЫЕ ОСИ
С=1
1 УКАЗАТЕЛЬ КРАсноrо ЦВЕТА
DO 30 1•15,256
CALL PRINTP<C,I ,240>
CONТINUE
DO 40 I=t,240
CALL PRINTP<C,15,II
CONTINUE
РИСУЕМ ТЕКСТ •ток• у оси у
CALL POINT<C,3 ,20)
CALL ASCII<C,'T' ,1)
CALL POINT<C,3,35>
CALL ASCII<C,'0 ',1>
CALL POINT<C,3 ,50)
CALL ASCII<C,'K ',11
РИС~ЕН ТЕКСТ 'НАПРЯ ■ЕНИЕ• У ОСИ У
CALL POINT<C,150,245)
CALL АSСII<С,'НАПРЯ ■ЕНИЕ',10>
61
С
~СТАНАВЛИВАЕМ ЭЕЛЕНЫИ ЦВЕТ Ф~НКЦИИ
CALL POINT<З,O,O)
С
ИIIIEH НАХ И HIN ЗНАЧЕНИЯ В НАССИВАХ Х И У
XHAX=X<l)
XНIN•X<l)
УНАХ•У(Н
YHIN•YC1)
DO 70 1=2,N
IF <X<I).GT .XHAX) XHAX=X(I)
IF <Xtl).LT.XHIN> XHI11=X(I)
IF (Y(I).GT .YHAX) YHAX=Y(I)
IF (Y(I).LT.YHHП YHitl=YCI)
70
CONTINUE
DELX=XMAX-XMIN
IF CDELX.LT .<1.•IDX>> DELX=l.•IDX
DELY=YMAX-YHIN
IF <DELY.LT.(1.•IDY)) DELY=l.•IDY
С
ОПРЕаЕЛЯЕН КООРаИНАТЫ ТОЧЕК ГРАФИКА В СОО1В. С НАС
WТАБОМ
С
СТРОИМ ВЕКТОРАМИ ОТ ТОЧКИ К ТОЧКЕ
NX=15+((1.•<X<1>-XHIN))/0ELX)•240.
NY=240.-( (1.•(Y(1)-YMIN))/DELY)•239.
DO 80 1=2,ND
IX=1S+((1.•(X<I>-XHIN)>/DELX>•240.
IY=240.- ((1.•(Y(I)-YMIN))/DELY>•239.
С
ЕСЛИ Ф-ИЯ РАВНА CONST РИСУЕМ ПРЯМУЮ ЛИНИЮ
IF (YHAX.EO .YHIN) IYs1SO
С
ВЕКТОРА, СОЕАИНЯIОЩИЕ ТОЧКИ ФУНКЦИИ РИСУЕМ КРАСНЫМ
CALL VECTI(1,NX ,NY,IX,IY>
NX"IX
NY•IY
с
вывоаиныЕ точки ГРАФИКА РИСУЕМ ЗЕЛЕНЫМ
CALL PRINTP(3,NX,NY>
80
CONТINUE
RETURN
END
Прикладная проrрамма 4.4 на языке ФОРТРАН позволяет
строить на экране rрафики функций У = F (Х), используя только
рассмотре1П1Ые ранее подпроrраммы. ФункЦWI передается в про
rрамму в виде таблицы из двух массищ,в X(N) и Y(N), rде N -
количество точек, задающих функцию. Максимальный размер
rрафически отображаемой функции задается переменными
IDXиIDY.
Проrрамма GRAFIК сначала рисует на синем экране красные
оси и текст, используя подпроrраммы библиотеки. После этоrо
вычисляются масuпабные коэффициенты DELX и DELY, равные
соответственно ЮХ/240 и ЮУ/240; последовательно выбирают
ся точки функции (элементы массивов X(N) и Y(N), определя
ются координаты экрана XI и Yl. Затем эти точки оопарно
соединяются векторами. Например, если функция задана масси
вом чисел (Х, У) в виде
Х..1,2, 3,
..
,
200
У .. 200, 199, 198,
..
,1
68
то в результате работы програм
мы GRAFIК при IDX = IDY =
= 200 получится прямая, пред
ставленная на рис. 4.6.
Интерактивную машинную
у
200
150
100
50
rрафику можно использовать как
для изучения сложных явлений и
проектирования технических из
делий, так и для проведения
досуга.
О
50 100 150 200
Рис. 4.6 . Пример работы про
граммы
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
4.1 . Что такое машинная rрафика, в чем ее специфика?
4.2 . Какая единствеиная команда необходима для построения на rра
фическом диCRJJee С:КО/11, уrодно с:ложных изображений?
4.З. Как построить прямые в окружности на rрафичес:ком дисплее?
4.4 . Ис:польэуя минимапьвыi набор проrрамм библиотеки, составьте
проrрамму, которая заштрихует с:иним цветом прямоуrольник на экране
с: координатами (S, S), (S, S0), (S0, SO), (S0, S).
Гпава5
ПРИКЛАДНЫЕ ПРОГРАММЫ
ДЛЯ НАУЧНО-ТЕХНИЧЕСКИХ РАСЧЕТОВ
5.1 . НАЗНАЧЕНИЕ И Условия ПРИМЕНЕНИЯ БИБЛИОТЕКИ
ДЛЯ НАУЧНО-ТЕХНИЧЕСКИХ РАСЧЕТОВ
Прежде чем проrраммировать задачу, следует проверить, нет
ли в библиотеке научно-технических расчетов (БН1Р) уже rото
вой проrраммы, реапизующей ее апrоритм. Если такая проrрам
ма имеется, то остается только подrотовить в ней начальные дан
ные, зарезервировать место в памяти для выходных данных и,
используя оператор CALL, вызвать требуемую проrрамму из
библиотеки, на выходе которой получится результат решения
задачи.
Например, рассматриваемая задача сводится к отысканию
решения системы n-линейиых уравнений вида
69
а11Х1 +а12Х2 + ••• +а1пХп =bi;
а21Х1 +а22Х2 + ••• + а2пХп = Ь2;
ап 1Х1 +а2пХ2 +... + tlnnXn = Ьп.
В матричном виде система эаmппется АХ = В. Здесь
{ан а12 ••• а1п) (Xi) (~1)
А ~~~--~~~..:::.:~. ~
;Х=?;В=~~
.
anl ап2 ••• апп
Хп
ь~
Для решения матричного уравнения достаточно вызвать из
библиотеки программу
CALL LAELMF (А, В, IPUT, N, IA, Х)
где в массивах A(N, N) и B(N) в качестве параметров передают
ся эиачения элементов матриц А и В. После выполнения про
граммы в массиве Х (N) будет находиться искомое решение си
стемы уравнений; IPUТ и 1А - дополнительные параметры, свя
занные с методом решения.
Первоначально библиотеки для научно-технических расчетов
использовались в больших ЭВМ и миниЭВМ, так как для их ра
боты требовались значительные ресурсы. Однако расширение
возможностей микроЭВМ mэволило использовать БНТР на
микроЭВМ, совместимых в ДВК и «Электроника-60». Библиоте
ка БНТР представляет собой набор более 230 подпрограмм, ко
торые для удобства разбивают на пять разделов.
Библиотека для научно-технических расчетов - это библио
тека mльэователя, состав которой определяется областью ре
шаемых задач. В ее подпрограммах не осуществляется ввод•
вывод пформации и поэтому в программах пользователя
должно обеспечиваться задание входной и выходной 1П1форма
ции. Такая библиотека разработана как часть программного
обеспечения микроЭВМ, расширяющая их возможности вобла
сти логико-математической обработки данных.
Все подпрограммы библиотеки написаны на проблемно
ориентированном языке ФОРТРАН и оформлены в соответствии
с требованиями этого языка. Их можно использовать в школь
ных курсах физики и математики, в точных теоретических рас
четах, в инженерном проектировании, в лабораторном экспери
менте.
Обращение к подпрограммам БIПР типа SUBROUTINE
осуществляется с помощью стандартного оператора CALL,
за которым следует имя подпрограммы и список фактических
параметров, совпадающих по порядку, числу и типу с соответ
ствующими формальными параметрами. Числа передаются в
70
подпрограмму либо как перемеJПJЫе в списке аргументов, либо
как константы в этом списке.
Обращение к подпроrрамме типа FUNCТION осуществляет
ся с помощью имени этой подпроrраммы, за именем следует
список фактических параметров. Отдельвые подпрограммы
используют имя mдпроrраммы JЮЛьзователя ИJIИ функции
•пользователя как элемент списка оператора CALL. В таком слу
чае имя подпроrраммы, находящейся в списке арrументов,
должно быть описано оператором EXTERNAL в программе
пользователя.
При решении задач, использующих подпрограммы библиоте
ки БН'IР, пользо:ватель должен в rоловной проrрамме об~
печить:
ввод исходных данных с внeIID1ero устройства JШИ задание
исходных данных в rоловной проrрамме;
определение размерности массивов для всех даннь1х,
используемых подпроrраммами библиотеки;
приведение способов хранения данньIХ в соответствие со
способами хранения, предусмотреlПIЫМИ подпроrраммами би&
лиотеки;
определение фактических значений формальных параметров
подпроrрамм;
орrанизацию вызова подпроrрамм библиотеки с помощью
оператора CALL или имени подпрограммы-функции;
вывод результатов решения задачи на вне1ID1ие устройства
микроЭВМ.
Библиотека для научно-технических расчетов является
открытой библиотекой, т.е. пользователь может mполнять ее
новыми подпроrраммами.
Для использования подпроrрамм из библиотеки он должен
владеть основами проrраммирования на языке ФОРТРАН.
5.2 . СОСТАВ И ФУНКЦИИ БИБЛИОТЕКИ*
По функциональному назначению библиотека делится на
пять разделов:
линейная алrебра; численные методы анализа; статистика;
специальные функции; сервисные проrраммы.
Линейная алгебра. Данный раздел ВЮiючает подпроrраммы,
выполняющие следующие функции.
Хранение матриц: записьвсейматрицыилиотдель
ных строк и столбцов ее в виде вектора, вычисление индекса
• Да,mый параграф может быть использован преподавателями как
справочный материал по основному содержанию библиотеки.
71
в уШiоmенно хранимой матрице, изменение способа хранения
матриц.
Линейныепреобразования: преобразованиемат
риц с помощью функций пользователя, операция сложения и вы
читания матриц, умножения и деления матриц на скаляр. Про
rраммы преобразования обеспечивают табуляцию, сортировку,
перестановку, сложение и друrие операции над строками и
столбцами матриц, транспонирование матриц.
Умножение и деление матриц: обращение
квадратных матриц, умножение, деление, транспонирование
матриц и их произведений.
Факторизация матриц и определение
р ан r а: разложение исходной матрицы в произведение двух
специальных матриц в зависимости от требований пользователя,
определение ранrа исходной матрицы.
Решение с ист ем линейных уравнений:
методом Гаусса и друrими численными методами.
Анализ собственных значений: нахождение
собственных значений и собственных векторов действительных
несимметричных и симметричных матриц.
Численные методы анализа. Раздел ВЮiючает подпроrраммы,
выполняющие следующие функции: вычисление значения первой
производной и интеrрала от полинома, вычисление корней поли
нома, сложение, вычитание, умножение полиномов и друrие
операции над ними.
Решение нелинейных уравнений: вычисление корней систе
мы N нелинейных уравнений с N неизвестными, заданной в век
торной форме.
Решение уравнений: обыкновенныхдифференци
альных первоrо порядка и системы обыкновенных дифферен
циальных первоrо порядка.
Численное интеrрирование: вычислениеопре
деленноrо интеrрала от функций, заданных таблично или выра
женных через неэлементарные функции.
Стаmстика. Раздел включает подпроrраммы, выполняющие
следующие функции.
От б о р д ан н ы х: вычисление числовых характеристик
(математическое ожидание, медиану, дисперсию и др.), распре
деление вероятностей случайных величин.
Корреляция и реrрессия: выполнениекорреля
ционноrо и реrрессионноrо анализа /JllЯ зависимых переменных
и множества независимых переменных.
Анализ планирован и я: вычисление характеристик
/JllЯ анализа мноrофакторноrо эксперимента.
72
Дискриминантный анализ: вычислениекоэффи
циентов дискриминантных функций и оценка их для каждоrо
наблюдения.
Факторный анализ: вычисление характеристик,
необходимых /JllЯ факторного анализа.
Временные ряды: определение автоковариаций и
взаимных ковариаций временных рядов и вычисление их сгла
женных значений.
Не пар а метрические ст ат ист и к и: вьшолнение
проверки и сравнение одной и двух выборок измерением рас
хождения между эмпирической и теоретической функциями рас
пределения по критериям, выявляющим отклонения от прове
ряемой гипотезы.
Образование случайных чисел: вычисление
равномерно и нормально распределенных случайных чисел.
Функции распределения: вычислениевероятно
сти событий определенноrо типа (в зависимости от конкретною
закона вероятностей) .
Элементарные статистики: определениеэлемен
тарных статистических характеристик и классификация исход
ных данных.
Специальные функции. Этот раздел включает подпрограм
мы, выполняющие вычисление значений следующих специаль
ных функций: rамма-функций, функций Бесселя, Неймана,
Кельвина, эллиптических интегралов, интегральных синуса и
косинуса, гиперболических функций.
Сервисные программы. Раздел включает подпрограммы, вы
полняющие следующие функции: чтение матриц и векторов,
печать различных форм представления экспериментальных дан
ных (rистоrраммы, функции распределения), печать матриц,
печать графиков функций, вычисление времени работы про
rраммноrо блока и т. д.
Необходимый состав и объем библиотеки /JllЯ работы поль
зователь определяет при генерации Б НТР.
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
5.1 . Какие существуют возможности обращения к подпрограммам
БНТР?
5.2. Выделите разделы БН1Р, которые можно использовать во вне
классной работе по математике, физике, в кружках технического твор
чества.
Гпава 6
ИЗдАТЕЛЬСТВО НА СТОЛЕ
Каждый rод стремительно растут возмоЖЯ>сти вычислитель
ной теХШIКи. Появляюrся все более мощm.~е и в 10 же время 111'·
wевые персональные компьютеры. Соверwенсrвуюrся возмож
ности выводных устройств. На смену матричным принтерам
приходит новое поколение лазерных принтеров.
6.1 . ЛАЗЕРНЫЕ ПРИНТЕРЫ И ШРИФТЫ ДПЯ НИХ
В матричном принтере изображение перенос1mось на бумаrу
путем удара иrопок и физически для 9 иrольчатых принтеров
ограничивалось разрешением 3-4 tочек на МИJШИМеrр. ~я по
вышения быстродействия разрабоrчики предложили использо
вать лазерный луч, который засвечивает точки, соответствующие
симвопам или картинкам на светочувствительном барабане.
Засвеченные участки при этом приобретаюr электрический за
ряд. На эти заряженные учасrки происхо,пит налипание очень
мелких частиц, красителя - 10нера, который затем переmсиrся
на бумагу и закреIDiяется на ней после подогрева. Так работает
лазерный принтер. За счет tонкой фокусировки с помоIЦЬЮ
лазерноrо луча можJЮ ДОСТИ'{Ь более высокоrо разрешения.
Лазерные принтеры в настоящее время им~юr разрешение 10 то
чек на мюmиметр, а лучшие модели мoryr достичь 100 и бопее
линий.
Такое разрешение позвопяет в IDiощадке, на которой рисует
ся буква, изображать не только ее стилизованное изображение
в виде матрицы 7Х9 точек, как бьшо в первых матричных прин
терах, а рисовать очень точное изображение символа, используя
на той же мощадке матрицу ЗООХ400 точек и более. На такой
матрице можно рисовать буквы, которые будут существенно
лучше выmядеть, как отпечаток с хорошей пишущей машинки,
и приближаться к полиrрафическому качеству, которое мы ви
дим в книrах.
Используя этот подход, рля лазерных принтеров созданы
библиотеки полиrрафических шрифтов различных rаршпур от
литературной, которой набрана книrа, которую Вы IJl'pжиre в ру
ках, до журнальной, которой набираются заrоловки rаэет и жур
налы.
Однако библиотеки шрифтов, в которых Д1IЯ каждой буквы
отводится матрица ЗООХ400 точек, занимают довольно мноrо
места в памяти. Развивая и совершенствуя шрифтовое обеспече-
74
ние, исследователи предложили различные способы описаний
букв. Наибольшее распространение получил способ, в котором
буквы описываются контурами, ограничивающими изображе
ние буквы. Кроме сжатия описания такой подход позволил,
используя математические операции, производить автоматичес
кое масштабирование букв. При данном способе достаточно
хранить одно описание буквы в каком-то базовом размере, из
котороrо программы автоматически строят и подставляют
на страницу большие буквы и для заrоловков, и для основного
текста.
Описание букв в виде матриц нашло применение в лазерных
принтерах фирмы Хьюлетт-Паккард серии LaserJet. Для управ
ления этими принтерами ооз,nан специальный язык PCL (Printer
control langauge - язык управления принтером). Контурно
векторное описание шрифтов предложила фирма Адоби. Оно ис
пользуется также в принтерах фирмы Эппл. Специальный язык
для управления этими принтерами и сами принтеры получили
название PostScript.
Оба направления описания шрифтов получили широкое
развитие, и появляющиеся все новые инструментальные средства
позволяют каждому пользователю персонад:ьноrо компьютера
и лазерного принтера создавать свои собственные шрифты и
целые шрифтовые библиотеки.
62. ТЕКСТОВЫЕ ПРОЦЕССОРЫ
И ПАКЕТЫ ДЛЯ ВЕРСТКИ
Параллельно оовершенствовалось развитие проrраммноrо
обеспечения для обработки текстовой и графической информа
ции. Совершенствуя простые текстовые редакторы и докумен
таторы, описанные в начале этой киши, разработчики ооздали
специальные программы - текстовые процессоры, которые
позволяют не только вводить и редактировать в компьютере
текст, но и задавать вашим документам полиграфическое офор
мление. Например, текст может быть выровнен по краям доку
мента, отдельные слова моrут быть выделены полужирным на
чертанием, для заголовка выбран определенный размер букв
и сделано множество друrих возможностей.
Наибольшее распространение для подготовки книr и друrих
изданий получил текстовой процессор фирмы Микрософт
MS-Word. Для этоrо пакета во ВНИИ полиграфии и .цруrих
орrаниэациях проведена большая работа по ero русификации.
В настоящее время пакет умеет переносить тексты на русском и
других языках народов СССР. Для неrо написань1 программы,
обеспечивающие вьmод с этоrо пакет.а на различные выводные
устройства: от матричных и лазерных принтеров /JP профессио-
75
нальных выводных устройств высокоrо разрешения, так назы
ваемых фотонаборных и лазерных rравировальных автоматов.
Это дает возможность получать подrотовленный Вами документ
не только на бумаrе, а и на фотопленке и сразу на печатной
форме, для тоrо чтобы с нее сделать печать тиража Вашеrо
документа.
Развитие rрафических возможностей персональщ,1х компью
теров позволило от простейших rрафических библиотек перей
ти к созданию совсем дpyroro прющипа работы с компьютером
в режиме rрафическоrо интерфейса. IIlиpoкoe распространение
получил подход WYSIWYG (What You See 1s What You Get - Что
Вы видите (на экране), то и получите (на выводном устрой
стве). Этот принцип означает, что изображение, которое отобра
жается на дисплее компьютера, с точностью тю каждой точки
будет выведено на выводное устройство. Такая возможность
позволяет построить специальные rрафические проrраммы,
позволяющие техническому редактору на экране дисплея видеть
все элементы полиrрафическоrо оформления издания, шрифто
вые выделения и общий вид полосы издания.
Из проrраммных продуктов для верстки изданий наиболь
шю-1 успех получили проrраммы Ventura Publisher, распростра
няемые фирмой Рэнк Ксерокс, и пакет PageMaker фирмы Алдус.
Таким образом, достижения в области лазер1ЮЙ техники,
вычислительной техники, проrраммноrо и шрифтового обеспе
чения привели к появлению настольных издательских систем.
6.3 . РАЗВИТИЕ НАСТОЛЬНЫХ ИЗДАТЕЛЬСКИХ СИСТЕМ
Появившись пять лет назад, настольные издательские систе
мы (НИС), построенные на базе персональ1Юrо компьютера,
лазерного принтера и плоского скенера, начали широко приме
няться в издательствах, особенно последние два rода.
Применение НИС в СССР имеет несколько особенностей.
6,4. ВЫБОР АППАРАТНЫХ СРЕДСТВ ДЛЯ НИС
В силу действовавшего l1P недавнеrо времени эмбарго
в СССР практически отсутствовали компьютеры фирмы Apple
типа Мacin tosh и лазерные принтеры с языком описания полос
PostScript, с которых ведут начало НИС. С другой стороны,
в СССР достаточно активно развивается направление IBM подоб
ных. компьютеров, число которых. в СССР в настоящее время
более 1 млн. шт. При этом простейшие модели таких компью
теров производятся в Советском Союзе с использованием
отечественной элементной базы. Наиболее распространенным
компьютером для подrотовки изданий становится стандартный
АТ - совместный компьютер с монитором типа VGA. В каче-
76
стве лазерных принтеров наиболее распространенным стал
LaserJet Serll или совместимые с ним модели и LaserJet 2000 для
вывода на формат АЗ. В качестве сканирующих устройств
в :ttздательствах используются скенеры типа ScanJet+, особенно
для ввода и подготовки штриховых шmюстраций.
В большинстве из.н;ательств такие комIПiекrы используются
пока в виде автономных рабочих мест (АРМ). Однако в неко
торых крупных издательствах, например "Юридическая литера
тура", "Высшая школа", давно и активно внедряющих процессы
автоматизации, редакциош1ые АРМы объединяются в локальнъ1е
сети с использованием в качестве файловых серверов VАХ
подобные машины.
6.5 . ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ НИС
ДО использования прикладного проrраммщ>rо обеспечеШ1Я
в НИС для подготовки русскоязычных изданий необходимо бы
ло решить вопросы русификации основных пакетов. Возможны
несколько уровней русификации. Самый простой оосrоит в ис
пользовании драйверов клавиатуры и экрана, позволяющих вво
дить и редактировать тексты на русском языке.
СлеАУющей проблемой при верстке изданий в полиграфи
ческих форматах является встраивание алгоритмов русских пе
реносов, имеющих достаточно СJIОЖНЬIЙ алгоритмический вид
и требующих для точного решения хранения больших словарей
исключений.
ДJхя более полного удобства работы с системой для пользо
вателей, не владеющих русским языком, является полная
русификация всех сообщений прикладной системы и наличие
справочной информации на русском языке. При поставках
программных систем в Советский Союз необходимо учитывать,
что более широкое распространение мoryr иметь системы, име
ющие возможность настройки или встраивания друrих языков
народов СССР, которых более 180. Большая часть из них постро
ена на кирилической основе и имеет от З до 15 добавочных зна
ков. Наиболее распространены Русский, Украинский и Белорус
ский. Однако в рамках процессов возроЖ,IIСНИЯ и развития на
циональных культур, бурно идущих в стране, существенно повы
шается спрос на издательские системы именно на довольно ред
ких языках, например Якутском, Чукотском и т. д. ДJхя повы
шения конкурентоспособности проrраммнь1е системы должны
быть достаточно гибкими, чтобы в идеале сам пользователь
настраивал их на языковое применение вплоть до КJiавиатурных
раскладок.
В большинстве НИС в настоящее время применяют о6ще
употребительные пакеты зарубежною производства. Для про-
77
цессов набора и редактирования особенно книжной продук
ции без сложного формульного и табличного набора широкое
распространение получил пакет фирмы Мicrosoft MS Word.
Активно используются версии Word для РС 4.0 и 5.0 и Word под
Wmdows. Несколькими предприятиями в СССР разработаны ру
сификаторы Word, дающие возможность работать с русскими
шрифтами, переносами и сообщениями экрана. Существуют вер
сии Word для работы с Украинским и Белорусским языками и
практически отсутствуют дпя друrих языков.
Для сложных видов формульного набора в НИС находит
применение пакет ЕХАСТ, особенно после ero улучшения, про
веденноrо в нашем институте, и доведения возможностей до раз
решения лаэерноrо принтера. В институте разработан собствен
ный пакет дпя формульного набора ИЮIОЛФОРМ и ведется
разработка пакета дпя табличного набора.
В качестве верстаnьных пакетов получили распространение
пакет Ventura Publisher фирмы Rank Xerox. и пакет PageMaker
фирмы Aldus. Пакеты стали активно распространяться особенно
после проведения их полной русификации фирмами-разработ
чиками с участием советских издательств.
6.6 . ШРИФТЫ ДЛЯ НИС
Наличие качественных шрифтов дпя НИС является ключе
вым фактором широты их распространения на рынке. Выбор
в качестве базовых лазерных. принтеров типа LaserJet предопре
делил начальный формат описания полосы в виде языка PCL
В настоящее время мноrими орrаниэациями в Советском Союзе
в растровом виде разработаны коМJШекты кириnических шриф
тов •для LaserJet. Например, ВНИИ полиграфии распространяет
шрифты пяти гарнитур ТнпТаймс, Журнаnьно рубленую, Новую
rаэетную, Антикву в диапазоне кеrлей от 6 до 52. Для подrотов
ки символов использовалась тех.нолоrия конвертирования ранее
оциф рова1шых контуров знаков ДJIЯ профессиональных фото
наборных. систем в битовые карты дпя разрешения 300 точек
на дюйм и их последующая корректировка в пакетах типа 'Iype
Foundry. В настоящее время мноrими орrаниэациями в СССР
ведется разработка дополнительных. знаков дпя национальных
языков и сложных видов набора. Технология контуроо-вектор
ных шрифтов в Советском Союзе развита слабо. В основном
кириnические наборы шрифтов бьши сделаны по заказу круп
ных издательств в закрытых форматах для профессиональных
систем Unotype, Monotype, Вerthold, Scantext. Совместное пред
приятие Параграф начало предпаrать шрифты в формате Post-
Sccipt и True Туре. Но, как отмечалось выше, в СССР практически
78
отсутствуют выводные устройства в PostSc.tipt и не следует
ожидать их 1Ш1рокоrо распространения из-за отсутствия отече
ственной элементной базы для их производства.
Активность на Советском рынке начала проявлять фирма
Prosystem через свое совместное предприятие Интермикро,
прерлаrая и поставляя издательствам НИС с возможностью
выхода на компактные фотоавтоматы типа Bkmisetter.
6.7 . ПЕРСПЕКТИВЫ РАЗВИТИЯ
В СССР с внедРением редакционных комплектов на базе
НИС началось активное развитие автоматизации редакционно-из
дательских процессов. ТJПiичная конфигурация НИС построена
на базе IBM совместимых АТ и более мощных компьюrерах,
лазерных принтерах типа LaserJet формата А4 и АЗ и настольных
плос1а1х скенерах типа ScanJet.
Проведена русификация общеупотребительных пакетов рля
набора и верстки простых и сложных изданий Word, Exact,
PageМaker, Ventura.
Дnя лазерных принтеров типа LaserJ et разработана большая
библиотека кирилических шрифтов и спецзнаков. Начаты рабо
ты по производству шрифтов в формате Post Script.
Проводятся работы по созданию конверторов для стыковки
НИС с профессиональными фотоавтоматами.
В крупных издательствах началось внедрение полных изда
тельских систем с сетевой поддержкой и организацией издатель
ских баз данных на базе VAX, подобных ЭВМ.
Практически отсутствуют настольные системы обработки
цветных ИJПiюстраций.
По прогнозу будут пользоваться успехом более специализи
рованные проrраммные пакеты, предназначенные специально
для подrотовки rазотной, журнальной, книжной, акцидентной
продукции после их русификации с учетом национальных осо
бенностей. Перспективны работы по совместной русификации
с использованием от западных партнеров технических средств
и базового проrраммноrо обеспечения, а от советских - nод
rоrовленноrо wрифтовоrо обеспечения, знаний особенностей
национальных языков народов СССР и внедрение конкретных
технологий с поддержкой качества на всех стадиях от набора
до печатных описков.
ПРИЛОЖЕНИЯ
Приnожение 1. ФункцииэкранноrореАSктора
1Клавиша ДК I Функция
Описание функции
о <НАЧАЛО Перемещает указатепь в начало спеду-
СfРОКИ>
ющей (с учетом направления) строки
<ВСТАВИТЬ
Вставляет пустую строку, положение
Сf РОКУ>
курсора не изменяется. Вставить пус-
CI
1=т=1
μ_1.
ш
[I]
<ВЫБОР>
<СБРОС>
<СЛУЖ>
<СПРАВ>
<CfИPCf>
<ВОССТРК>
:о <СЛОВО>
<СМЕРЕГ>
L]
С]
80
<КОН СТРОК>
<СГИРКС>
<ОБНОВИТЬ>
<БУФЕР>
тую строку можно также с помощью
клавшnи < ВК>
Определяет начало интервала выбора
Отменяет действие функции <СЛУЖ>;
отменяет начало выбора
Служебная функция для выполнения
сложных функций и их повторения
Функция для получения справочной
информации. <СПРАВ> после звуко
uого сигнала выдает диагностическое
сообщение, в остальных спучаях -
справочную информацию продолжение
информации
повторное нажатие
<СПРАВ> . <ВВОД> или любая дру
гая функция возвращает рабочкй экран
Сrирает строку справа от курсора до
конца строки включительно
Восстанавливает последнюю стертую
строку, вставляя в файл содержимое
буфера строки
Перемещает курсор в начало следую
щего спова с учетом заданного направ
ления (функции <ВПЕРЕД> и
<НАЗАд>)
Заменяет буквы верхнего регистра
буквами нижнего и, наоборот, винтер
вале выбора или, если его нет, в стро
ке, найденной по заданному образцу
Перемещает курсор в конец строки
Сrирает строку справа от курсора.
Ограничитель строки не стирается
Очищает буфер сбора и записывает в
него текст из интервала выбора, удаляя
этот текст из файла
Вставляет в файл содержимое буфера
сбора
\ Клавиша ДК
Функция
OJ
<ВНИЗ>
(СТРЕЛКА
ВНИЗ)
<АБЗАЦ>
о <ВПЕРЕД>
<КОНЕЦ>
о <НАЗАд>
<НАЧАЛО>
о <СТИРЗНАК>
<ВОСТЗНАК>
m
<ВЛЕВО>
(СТРЕЛКА
ВЛЕВО)
<ДОБАВИТЬ>
G <ВПРАВО>
(СТРЕЛКА
ВПРАВО)
<СПЕЦ>
о <СТРАНИЦА>
<КОМАНДА>
Птюдолжение прилож. 1
Описание функции
Перемещает курсор на строку вниз
Перемещает курсор в начало следУЮ·
щего - с учетом направления
-
абзаца
(по умолчанию - 16 строк)
Задает прямое направление ,для всех
операций - от начала к концу файла.
Завершает ввод образца для поиска
(функция <ПОИСК>)
Перемещает курсор в конец файла
Задает обратное направление для всех
операций - от конца к началу файла.
Завершает ввод образца для поиска
(функция <ПОИСК>)
Перемещает курсор в начало файла
стирает символ справа от курсора
Восстана1шивает последний символ,
стертый по <СТИРЗНАК> или <ЗБ>
Перемещает курсор на одну позицию
влево
Добавляет к содержимому буфера сбо•
ра текст из интервала выбора, удаляя
этот текст из файла
Перемещает курсор на одну позицию
вправо
Вставляет в файл код (в десятичной
системе) служебного знака, который
нельзя вставить обычным способом
Перемещает курсор в начало следУЮ·
щей (с учетом направления) страницы.
По умолчании страница ограничивается
знаком <ПФ>
Функция, необходимая для выполне
ния любой из команд редактора. В от
вет на подсказку КОМАНДА в верхней
части экрана пользователь указывает -
полное или сокращенное - имя коман
ды и, если требуется, переключатели,
завершая ввод функцией <ВВОД>.
Перечень команд редактора приведен в
приложении 3
81
lклавишаДК
ПJ
Функция
<дАЛЕЕ>
<ПОИСК>
<СТИРСЛОВ>
<ВОСГСЛОВ>
<ВВЕРХ>
{СГРЕЛКА
ВВЕРХ)
<ЗАМЕНИТЬ>
~ <ВВОД>
~
<ВМЕСГО>
Продолжение прилож. 1
Описание функции
Продолжает поиск. Образец для поиска
и направление поиска указаны в по
следней функции <ПОИСК>
Разыскивает в файле строку текста,
указанную в качестве образца для по
иска, в заданном направлении в ответ
на подсказку ИIЦУ: в верхней части эк
рана пользователь указывает образец
для поиска, завершая ввод задани
ем направления поиска (функция
<ВПЕРЕД> или <НАЗАД>)
Стирает слово {символы справа от кур
сора в пределах слова)
Восстанавливает слово, вставляя в
файл содержимое буфера слова
Перемещает курсор на строку вверх
Заменяет интервалы выбора содержи
мым буфера сбора, даже если послед
ний и пуст. Если интервал выбора не
задан и курсор расположен на строке,
найденной в результате поиска, то за
меняется найденный образец
Функция Д!1Я завершения ввод\1 ко
манд редактора. Если редактор выда
ет справочную информацию или диаг
ностическое сообщение, функция
<ВВОД> возвращает рабочий экран
Если курсор расположен на строке,
найденной в результате поиска, то най
денный образец заменяется содержи
мым буфера сбора и выполняется
функция <дАЛЕЕ>
Приnожение2. Служебныефункциииклавиши
1 Функция
или клавиша
<ВК>
<ПС>
<ЗБ>
СУ/С
CY/U
CY/W
CY/Z
Дейсrвие
Вставляет пустую строку. Курсор переносится в началn
новой строки
стирает слово слева от курсора. Курсор и остаток стро
ки сдвигаются влево. Нижние строки сдвигаются вверх.
стирает символ слева от курсора. Курсор и остаток
строки сдвигаются влево. Нижние строки сдвигаются
вверх. Может использоваться дЛЯ исправления вводимо
го ответа на подсказку редактора
Прекращает выполнение любого процесса, выполняемо
го редактором. Редактор показывает часть файла, содер
жащую курсор, и подает звуковой сигнал. Редактор
Ш'Норирует СУ /С, если в этот момент никакой процесс
не выполняется. СУ/С в командном режиме передает
управление операционной системе
СТирает сторону слева от курсора до начала строки.
Если курсор находится в начале строки, то стирается
предыдущая строка и верхние строки сдвигаются вниз.
Может использоваться мя исправления вводИМого отве
та на подсказку редактора
Обновляет рабочий экран. Осуществляет возврат к ра
бочему экрану, когда редактор выдает справочную ин
формацию или диагностическое сообщение
Дейсrвие аналогично СУ /С
Приnожени•· З. Команды nроrраммы К52
+--------------------------------+----------------- --------+
1
КО"АНАА
I
АЕРIСТВИЕ KOKAHAII
1
+--------------------------------+ ------ ------
----+
CLEAR PASTE
I Очи"ае7 6ytep с6ора
1
CLOSE
I Закр... ае7 ааnа•ни7е•ьнwй1
l ■ wмаанай t•м•
1
EXIT
I Закр.,■ &87 ■ се O7кpw7we 1
lt•••w
1
FilL
I Переtареа7ируе7 7екс7 • 1
lин7ер•••• ■ w6apa • саа7- 1
1 ■е7с7■ии с ••ааннам npa- 1
! ■ ай rраницей 7екс7а
1
INCLUDE NNH PAGES
I Каnируе7 С7раницw и• аа-1
tnо•ниу••~наrо ■ коаноrо 1
•t•м••
1
IHCLUDE NNN LINES
I Каnируе7 с7раки ие аа- 1
lnо•ни7••~ноrо екоАноrо 1
ll•й••
1
INCLUDE REST
I Каnируе7 ас7а7ак aana•- 1
lни'l'е•ьнаrа ■ каанаrа t••••I
LEARH
I Нач••а аnр•а•••ни• ••к-1
lpaJ •с• tvнкции и каманаwl
lреаак7ара, nаааннwе nac••I
llearn, еаnис"ван'l'са в 6у-1
ll•P макра
1
(СЛ\11)8
1 Конец аnреа•••ниа макра.1
!Вwnа•н•ни• макра не npa- 1
IИСКОАИ'I'
1
<СЛ\11))(
1 Bwna•н•e7 ранее anpeae- 1
1•еннун •акра
1
LOCALtHAЧ.ЗHAЧEHИEt ■Ar]]
1 Bwna•н••'I' nеренумерацин 1
l•ок••~нwк ■е7ок ассе ■6••-1
lpa
1
tOPEN ]IHPUT СП8
1 O'l'кpw ■ ae'I' ааnа•ни'l'е•ьнwмl
l ■ ICOAHOM l•й•
1
tOPEN ]OUTPUT СП8
1 O'l'KP•••ae'I' ааnа•ни'l'е•ьнwмl
1 ■ wмаанам t•м•
1
PURGE
I Очи"ае'I' ааnа•ни'l'е•ьн•1й 1
18WICOAHOЙ l•й•
1
QUIT
I Очи"ае'I' ■ се O'l'кpw'l'we •••-1
1 ICOAHW8 tам•••
1
SET tENTITY ]РАОЕ NNNt LINES] 1 Onpea••••'I' с'l'раницv na
lчис•v с'l'рак
SET tENTITY ]PAGE "СТРОКА"
1 Onpea••••'I' с7раницу na
lc'l'paкe маркера Сааин и•и
lнеско•ько сим•о~а•)
SET tENTITY ]SECTIDN NNNCLINES]I Onpea••••'I' а6аац na чис-1
l•V C'l 'pOK
1
SET tENTITY ]SECTIOH "СТРОКА" 1 Onpea••••'I' а6аац na 1
lc'l'paкe маркера
1
SET tSEARCH ]GENERAL
I Зааае'I' ре ■им nаисна, • 1
IK070po• СОО7887С78и• р•- 1
+--------------------------------+-------------------------+
Продолжение прилож. З
+--------------------------------+-------------------------+
1
КО"АИIА
I
IЕР\СТВИЕ KOHAHIII
1
+----------------------------- ~~ -+ - -- - -- -- - -- -- - -- - -- -- - -- -+
lrистро ■ nри сра ■ нении с 1
lo6paau,o■ не тре6уетс•
1
SET tSEARCH ]ЕХАСТ
I За4ает ре■и■ nомсна, е 1
lкотором тре6уетс• соот- 1
lа ■тст■ие реrистро■ nри
1
lсраанении с а6раацом
1
SET tSEARCH ]BEGIN
I За4ает ре■и■ nо"сна, • 1
lкоторо■ нурсор na••~••тcal
1• нача~о найАенной строкиl
SET tSEARCH :JEND
I За4ает ре ■и■ nоиска, • 1
lкоторо■ курсор na•••••тcal
18 нон•~ най4енной строки 1
SET tSEARCH ]BOUNDED
I За4ает ре■и■ nоиска, 8 1
lкот~ро ■ nоиск идет• npe-1
l4e.aa,c страници
1
SET tSEARCH ]UNBOUNDED
I За4ает ре ■и■ nоисна, 8 1
lноторо ■ поиск ИА■'I' na 1
!■се■у tай.ау
1
SET TABSt ОТСТ~П]
1 Рааре ■ает tор ■атироааниеl
1анако ■ та6у.а•u,ии
1
SET NOTABS
I Заnре11ает tор ■атиро ■ аниеl
lco сnе~и•~ьнай о6ра6атнойl
lsнакоа та6у.ааu,ии
1
SET \IRAPt NN]
1 За4ает nрааун rраниu,у
1
!тенета и раареwает с■ ерт-1
1 Ку С.АО■
1
SET NO\IRAP
I От■енает саертку с.ао ■ 1
SKIP NNN PAGES
I Проnускает страниu,и •
1
IАОПО~НИ'1'8~~ном 8КОАНО■ 1
........
1
SKIP NNN LINES
I Проnуснает строки• АО- 1
lnо~нит•~~но■ акоаном tай-1
....
1
SKIP REST
I Проnускает остаток t•й.aal
tTABS] ADJUSTt+-]NNN
I Иа ■енает аначение a6eau,-I
! наrо a'l'cтyna
1
IIRITE NNN PAGES
I Заnис•••••т страниu,w а 1
lааnо~ните~~нwй ■ wко•ной t
,......
1
IIRITE NNN LINES
I Заnис•1аает строки а AD- 1
lnо•нит••ьнwй 8WМОАНОй 1
ltaй.a
1
\IRtТE REST
I Заnис•••••т остаток tай.аа 1
18 АОnО•нит•~~нwй 8WHOAHOЙI
ltaй,11
1
IIRITE SELECT
I Заnис•••••т интер ■ а.а ■ м- 1
1,ара • аоnо~нит••~нмА ■ w-1
I ICOAHDЙ l ■Й,11
1
+--------------------------------+----- --------------------+
П риnожение 4. Функционаnьные кnавиwи и команды дnя работы
с nроrраммами редактирования и nоиска
-
Функциональные клавиши проrраммы редак
тирования-
Стрелка вииэ - сцвиr маркера на слецующую запись. Если маркер
находится в последней строке, то на экран выводится слецующая страни
ца (15 записей) и маркер устанавливается на ее первую запись.
Сrрелка вверх - сцвиr маркера вверх на прецыдущую запись. Если
маркер находится в первой сrроке, то на экран выводится предыцущая
страница и маркер устанавливается на ее последнюю запись.
Стрелка ВВВ3 - влево
-
вывод на экран слецующей страницы. Мар
кер устанавливается на первую запись.
Наклонная стрелка - переход в начало базы данных. На экран выво
дится первая страница и маркер устанавливается на первую запись.
Сrрелка вниз с точкой - переход в конец базы данных. На экран
выводится последняя запись, и маркер устанавливается за последней
записыо, т.е. приготовлен дпя ввода в «хвост» базы данных новой~
писи.
СУ/С - выход из редактора без сохранения текущего состояния базы
данных.
-
Команды программы редактирования
В - ввести запись в строку, указываемую маркером. Если маркер на
ходится за последней записью, то новая запись дописывается в «хвост»
базы данных. Если маркер указывает на конкретную запись, то происхо
дит разцвижка строк и под этим номером вводится новая запись. В про
цессе ввода редактор запрашивает значения столбцов, выдавая в каче
стве подсказки имена столбцов. При вводе контролируется TIOJ столб
цов, Вводимые значения столбцов появляются в соответствующих пози
циях экранной таблицы, если столбец выведен на экран.
У - удалить записи, начиная с текущей. Запрашивается число удаля
емых записей. Записи стираются с экрана и удаляются из базы данных.
Если удаляемые записи не являются последними, то происходит nодrяrи
вание расположенных ниже записей. Если введенное число удаляемых за
писей превьпuает число оставшихся записей, то удаляются все записи,
начиная с текущей до конца базы данных.
З - заменить запись. Удаляется текущая запись и под этим номером
вводится новая запись.
С - просмотреть столбец текущей записи. Запрашивается номер
столбца, после чего в командную строку выводится значение столбца не
зависимо от того, выведен столбец на экран или нет.
ЗС - заменить значение столбца текущей записи. Запрашивается но
мер стоц!'iца, после чего значение столбца удаляется из базы данных и из
поля экранной таблицы, если столбец выведен на экран, и запрашивается
новое значение столбца.
Р - редактировать текстовое значение столбца текущей записи,
Запрашивается номер столбца, после чего значение столбца удаляется из
базы данных и поля экранной таблицы и появляется в поле командной
строки. Далее оно может быть отредактировано средствами строчного
редактора. Для числовых данных (тЮJы 1 и 2) команда рабQтает анало
гично команде ЗС.
БФ - переслать текущую запись в специальный внутренний буфер
редактора.
86
ВБ - ввести запись из буфера редактора в строку, указываемую
маркером. Если маркер находится за последней эаписыо, то новая запись
дописывается в «хвост» базы данных. Если маркер указывает на кон
кретную запись, то происходит раздвижка строк и под этим номером
вводится новая запись.
83 - заменить текущую запись на запись из буфера редактора.
ВС - ввести потоком значение столбца. Запрашивается номер столб
ца, а затем его значение. После ввода значения столбца происходит сдвlП'
маркера на слецующую запись и повторяется эапрос значения столбца
уже для этой записи и т. д. Выход из режима ввода осуществляется по на
жатии клавиши <СУ/С>. Значения других столбцов записей не изменяют
ся. При выходе на конец базы данных порождается новая запись, имею
щая во всех столбцах, кроме вводимого, пустые значения.
О - найти значение столбца, заданное образцом. После набора коман
д,,l. запрашивается номер столбца и образец. Для числовых данных (ти
пы 1 и 2) образец должен полностью задавать искомое число. Для сим
вольных данных допускается задание начальной подстроки. Задание об
разца для нулевого столбца используется дm1 вывода на экран записи
с требуемым номером. Поиск ведется от записи, слецующей за текущей,
до конца базы данных и от начала базы данных до текущей записи. ECJDI
искомое значение столбца найдено, то на экран выводится страница,
начиная с записи, содержащей наАдеlПlое значение столбца. Если столбец
не найден, то об этом выдается информациоlПlое сообщение.
03 - найти образец с заменой. Запрашиваются номер столбца (зада
ние нулевого столбца не допускается), образец и новое значение столбца.
После этого выполняется просмотр базы данных. Все значения задан•
ного столбца, соответствующие образцу, заменяются новым значением.
По окончании просмотра базы данных выдается информацио1П1ое сообще
ние о количестве проиэведеlПIЫХ замен, и если замены бЫJПI, перево
дится на экран текущая страница.
К - выйти из редактора с сохранением текущего состояния базы
данных.
Т - настроить экранную таблицу аналогично тому, как это было
описано в программе создания базы данных.
те - запросить номер стандартной экранной таблицы (цифра от 1
до 4) и перевести экранную таблицу в соответствующем формате.
ЗТ - записать формат текущей экранной таблицы в качестве стан
дартной. Запрашивается номер стандартной экранной таблицы (цифра
от 1 до 4) и под этим номером запоминается текущая экранная таблица
в описании базы данных.
НС - выдать информации о столбцах. Экран гасится и выводятся
в четыре колонки сведения о столбцах. По каждому столбцу выдаются
номер, имя, тип и число занимаемых на экране позиций, если столбец
выводится на экран.
ПР - ввести пароль защиты базы данных. Выдается запрос, в ответ
на который вводятся от 1 до 4 символов, которые запоминаются как
новый пароль защиты данных. Старый пароль защиты (если он был)
теряется.
? - выдать информации о командах. Экран гасится и вводится
список представлеlПIЫХ команд и функциональных клавиш редактора.
• При вводе значения столбца допускается пустое значение (нажима
ется только одна клавиша <ВК>). В экранной таблице пустое значение
выводится как незаполненное поле столбца. При запросе значения столб
ца по команде С выдается сообщение «Нет значения».
87
-
запросиrь повторные значения столбца предыдущей записи при
выполнении команд В, 3, ЗС, ВС; в ответ на запрос значения столбца при
нажатии клавиши <Т АБ> может быть повторено значение этого же столб
ца из предыдУщей записи. При этом значение столбца появляется в ко
мандной строке и по нажатии клавиши <ВК> заносится в базу данных..
Нажатием клавиши <СУ/С> можно отказаться от этого значения; при
этом оно удаляется из командной строки и повторяется запрос значения
столбца. Значение столбца символьных. типов (типы 3 и 4) при появлении
в командной строке может редактироваться.
-
Функциональные клавиши программы по
иска -
Стрелка вниз - сдвиг маркера вниз с выводом на экран следующей
активной записи, если она не выведена на экран. При выходе на конец
базы данных в командную строку выдается информационное сообщение
о чисде активных записей в базе данных.
Стрелка вверх - сдвиг маркера вверх на предыдущую активную
запись.
Стрелка влево - вниз
-
вывод на экран страницы. Выводятся только
акти11ные записи, маркер устанавливается на первую выведенную запись.
При выходе на конец базы данных выдается информационное сообщение
о числе активных записей в базе данных.
Наклонная стрелка - переход в начало базы данных. Информацион-
ная часть таблицы гаснет.
СУ/С - вых.од из программы поиска.
СБР - сброс введенных условий поиска.
-
Команды программы поиска
С - посмотреть столбец текущей записи.
УС - ввести условие поиска. Экран гаснет и выполняется ввод усло
вия, как было описано выше. Условие добавляется к ранее 11веденным
условиям.
СБ - сброс введенных условий поиска (то же, что и клавиша
<СБР>).
Ч - выдать частотную характеристику столбца. Запрашивается номер
столбца, АЛЯ которого строиrся частотная таблица. Строка таблицы со
держиr значение стоnбца, число появлений этого значения в активных
записях и процент от общего числа активных записей. Частотная таблица
вводится на экран или печать (по запросу задается пользователем). При
выводе на печать таблице может предшествовать заголовок. Частотная
таблица формируется, если число испольэованных значений не превы
шает 48.
ЧД - выдать частотную характеристику столбца в виде графической
диаграммы. Для заданного столбца выводится частотная таблица, содер
жащая значение столбца, число появлений этого значения в активных.
записях и процент от общего числа активных записей. Процентные соот
ношения допоЛНJJЮтся горизонтальными диаграммами, позволяющими
визуально оценить количественные характеристики использования значе
ний сrолбца. Максимальное число использования значений столбца рав
но 24.
Г - выдать таблицу и графическую диаграмму, отражающую появле
ние данных в группах, образованных АЛЯ заданного столбца. Таблица
в11одится на экран или печать (по запросу задается пользователем).
При выводе на печать таблице может предшествовать заголовок.
88
НС - выдать информацию о столбцах (аналогично программе редак
тирования).
НУ - выдать информацию о выведенных условиях поиска. Экран
гасится и выводятся заданные условия поиска, как было показано выше.
ИЗ - выдать информацию о числе активных записей. В командную
строку выдаются информационные сообщения о числе активных записей
в базе данных.
? - выдать информацию о командах программы поиска.
Т - настроить экранную таблицу аналогично тому, как это было опи
сано в программе создания базы данных.
те - запросить номер стандартной экранной таблицы (цифра от 1
до 4) и перевести экранную таблицу в соответствующем формате.
БД - переслать активные записи в новую базу данных. Запраши-
вается имя новой базы данных, создается база данных с этим именем
и в нее осуществляется пересылка активных записей.
ВЧ - вычислить выражение. Вводится по запросу арифметическое
выражение и выполняется его вычисление. Результат помещается во вто
рую командную строку.
П - печатать активные записи базы данных.
з• - записать последний заданный формат печати в файл, имя файла
запросить в командной строке. Сrандартное расширение имени файла -
FPR. Задание формата печати происходит по команде 11, которая должна
предшествовать настоящей команде, После настройки формата печати
независимо от того, выполнялась ли печать или произошел отказ от печа
ти, может быть выполнена запись формата печати.
ПФ - печатать активные записи базы данных по заданному формату.
Запрашивается имя файла, содержащего формат печати, и выполняеТСJJ
печать. Если формат печати не соответствует базе данных, об этом выдает
ся диаmостическое сообщение.
ПД - печатать базу данных в виде документа по заданному шабло
ну. Запрашивается имя шаблона, выполняетс,r настройка печати и произ
водится печать.
К - выйти из программы поиска (то же, что и клавиша <СУ/С>).
Функциональные клавиши «стрелка вниз» и «стрелка влево - вниз»
используются для просмотра активных записей базы данных.
Пр и пожен и е 5. Команды rрафическоrо редактора
На базе расширенного пакета подпрограмм построения графических
примитивов авторами был разработан графический редактор, предназна
ченный для построения на ДВК с графическим контроллером произволь
ных изображений, их редактирования и хранения в виде специальных
графических файлов.
Загрузочный модуль графического редактора имеет размер 45 бло
ков и работает под управлением ОС ДВК.
После запуска командой PUN редактор запрашивает имя входного
и выходного файлов. При создании нового файла вместо имени входного
файла нужно нажать клавишу <ВК>. Графические файлы имеют свою
внутреннюю структуру, в которой содержится последовательность ко
манд редактора, необходимая для воспроизведения изображений на экра
не. При указании имени входного файла последовательность команд
автоматически выполняется, т.е. в графическом файле хранится вся исто
рия рисования изображения.
89
После отрисовки изображения или обнуления экрана, в случае созда
ния нового файла, редактор переходит в режим команд. В этом режиме
по экрану можно перемещать курсор (точку пересечения двух прямых на
экране), а также вьmолНJIТЬ команды по построеНИJО изображения.
Перемещение курсора. Клавишами «стрелка вверх», «вниз», «впра
во», «влево» курсор перемещается в соответствующем направлении с ша
гом на 1 или 10 точек. Для смены величины шага перемещения нужно
последовательно нажать клавиши <АР2> и <Н>. При их повторном на
жатии происходит возврат к противоположному шагу перемещения.
Команды редактора. Для выполнения команд редактора необходимо
нажать одну из клавиш алфавитной клавиатуры. При этом дnя некоторых
команд курсор исчезнет с экрана, в нижней строке дисплея появится
поясняющий текст, в ответ на который требуется ввести числовые пара
метры команды. При вводе параметры можно редактировать, используя
клавишу <ЗБ>, удаляющую с экрана последний введенный символ.
Ввод параметров завершается нажатием клавиши <ВК>, они стираются
с экрана и команда немедленно вьmолняется.
90
-
Описание команд rрафи•ескоrо редактора -
М - определить текущую точку в месте нахождения курсора. Ко
манда используется, когда нужно определить начало вывода
текста, рисования векторов, определения центра окружно
сти
D - рисовать лннню от предыдущей текущей точки до места нахож
дения курсора. После отрисовки положение курсора определя
ет новую текущую точку.
S - задать размер матрИЦЬJ букв. По умоJJ1111НИю выбрана матрица
16Х18. Можно установить матрицу произвольного размера
с параметрами, кратными 16Х 18 или 8Х8.
Т - вывести текст. После ввода этой команды курсор исчезает и по
нажатию клавиш алфавитно-цифровой клавиатуры их изобра
жение выводится на экран в матрице, размер которой задан
командой S. При выводе текста действуют следующие управ
ляющие клавиши: <СУ/Т> - конец вывода текста, переход
в режим команд; ЗБ - удаление последнего нарисованного
символа; <ВК> - перевод строки и возврат каретки.
Р - вывести картинку, нарисованную на экране, на печатающее
устройство. При вводе параметра 1 будет напечатано позитив
ное изображение (темные точки на экране будУТ напечатаны
черными точками на бумаге), 2 - негативное изображение
(темные точки на экране печатаются белыми на бумаге).
W - восстановить изображение. Экран гасится и вьmолияются все
команды по отрисовке изображения, содержащиеся в графи
ческом файле.
U удалить из списка последнюю введенную команду.
О определить виртуальное окно. При выводе вырезается прямо
угольник с левым нижним углом в текущей точке.
V определить поле вывода по оси ХО - 399, по оси УО - 279.
Вырезается прямоугольник с левым нижним углом в текущей
точке, в который выводится изображение.
N - залить поле вывода. При вводе параметра
- 1 происходит IDI•
версия экрана (в поле вывода меняется цвет точек на противо
положный) ; О - очистить экран (экран становится черным) ;
1 - залить экран (экран становится белым).
R - усrановить режим вывода. При вводе параметра
- 1 происхо
дит вывод инверсией (пересечение белых точек рисуется чер
ным) ; О - рисование черными точками; 1 - рисование белы
ми точками.
Z
закрасить область одним из 7 типов штриховки.
С нарисовать окружносrь радиуса Р.
А
нарисовать дугу. Нужно ввесrи .три параметра: радиус, угол
от вертикали по часовой стрелке до начальной точки дуги,
угол по часовой стрелке от начальной до конечной точки
дуги.
В
режим автоматического повторения отрисовки изображения из
графического файла.
К
выйти из редактора в команды монитора с сохранением в гра
фическом файле, созданного на экране изображения.
СПИСОК ЛИТЕРАТУРЫ
1. Основы информатики и вычислительной техники/Под ред. А.П. Ер
шова, В.М. Монахова. - М.: Просвещение, 1985.
2. Криниц кии В.А. Алгоритмы вокруг нас. - М.: Наука, 1984.
3. Абрамов С.А. Математические построения и программирование.
-
М.: Наука, 1978.
4. Операционная система СМ ЭВМ РАФОС: Справочник/ЛИ. Валико
ва, Г.В. Вигдорчик, А.Ю. Воробьев и др. - М.: Финансы и статистика,
1984.
5. Фоли Дж., Вэн. Дэм А. Основы интерактивной машинной графики.
В 2-х кн. - М.: Мир, 1985.
6. Брябрин В.М. Программное обеспечение персональных ЭВМ. - М.:
Наука, 1988.
7. Персональные компьютеры единой системы ЭВМ/Под ред.А.П. За
польского. - М.: Финансы и статистика, 1988.
8. Персональные ЭВМ в инженерной практике: СПравочник/Т.Э.Крен
кель, А.М. Коган, А.М. Тараторкин. - М.: Радио и связь, 1989.
9. В мире персональных компьютеров, No 1-5.
-
М.: Радио и связь,
1988 - 1990.
ОГЛАВЛЕНИЕ
Термины и определения ........................... .
Введение .................................... .
Гл а в а 1. Построение алrоритмов для решения 311Д8'1 ••• •• ••
1.1. Понятие алгоритма ..................... .
1.2 . Способы записи и тШIЫ алгоритмов
.......•...
1.3. Алгоритмические языки
................. .
1.4 . Алгоритмы работы с величинами
... ... .... .. .
Вопросы для самоконтроля ............... .
Г л а в а 2. Составление ориJСJJадных программ
.. ,, ....... .
2.1 . ПриlЩИПЫ структурного проrраммирования
..... .
2.2 . Инструментальные средства проrраммирования ... .
2.3 . Сrруктура и особенности применения прИЮiадноrо
проrраммноrообеспечения.................
Вопросы для самоконтроля ............... .
Гл а в а 3. Обработка текстовой и табпИ'IНой информации
... .
3
5
6
6
9
17
20
26
27
27
31
33
37
38
3.1. Общие сведения.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
3.2 . Подготовка текстов проrрамм для микроЭВМ
.
.
.
.
39
3.3 . Проrрамма оформления текстовых документов
.
.
.
45
3.4. Сrруктура базы данных
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
3.5. Проrраммы дЛЯ диалогового режима работы с базой
данных.............. • .
.
.
.
.
.
•.••.
.
.
.
51
Вопросыдпясамоконтроля................ 58
Гл а в а 4. Интерактивная графика на микроЭВМ.
.
.
.
.
.
.
.
.
.
59
4.1 . Общие сведения.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
4.2 . Алгоритмы построения прямых и окружностей
.
.
.
.
60
4.3 . Библиотека проrрамм формирования элементов
изображений.......................... 66
Вопросыдпясамоконтроля................ 69
Гл а в а 5. Прикладные программы ДJJЯ научно-технJRеских рас-
четов ............................. . 69
5.1 . Назначение и условия применения библиотеки для
научно-техническихрасчетов................ 69
5.2 . Состав и функции библиотеки .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
Вопросыдпясамоконтроля................ 73
Г л а в а 6. Издатель-ство на столе
............•..•....
6.1 . Лазерные принтеры и шрифты дпя них
.
•...••.
.
74
6.2 . Тексrовые процессоры и пакеты дпя верстки
.
••.•
75
6.3 . Развитие настольных и~ателъскнх сисrем
.
.
.
.
.
.
•
76
6.4 . Выбор аппараrnых средсrв для НИС
.
.
.
.
.
.
.
.
.
.
.
76
6.5 . Программное обеспечение для НИС
.
.
•.......•
77
6.6 . Шрифты для НИС .
.
.
.
.
.
.
.
•........•.
.
.
.
.
78
6.7 . Перспективы развития
.
.
.
•...............
79
Приложения................................... 80
Списоклитературы............................... 92
Учебное пособие
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ МИкРОЭВМ
В 11-ти КНШ'ЗХ
Абрамов Владимир Абрамович,
Дубр~вШI Владимир Сергеевич
Кн.3
ПРИЮIАдНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Зав. редакцией Н.И. Хрусталева. Редактор И.Е. Якушина. Младший
редактор А.С Сllченкин. ХудоЖЮIК В.В. Гарбу:юв. Художесrвенный
редактор Т.А. Скворцова. Технический редактор ЛМ. Матюши1111.
Корректор Р.К. Косинова.
ИБNo- 8829
Изд. СТД-723. 1 <:даио в набор 17.12 .90 . Подп. в печать 27.05.91.
Формат 84х108 '/э2. Бум. ТJПI. No 2. Гарниrура Пресс-Роман. Печать
высокая. Объем 5,04 усл. печ.л. 5,46 усл. кр.-отт. 5,60 уч.-изд.л.
Тираж 150000 экз. Зак. No 332 . Цена 1 р. 20 к.
Издательсrво "Высшая школа", 101430, Москва, ГСП-4, Неглинная
ул" д. 29/14.
Набрано на наборно-ПЮ11ущих машинах издательсrва.
Отпечатано в Ярославском полиграфкомб1D1ате Госкомпечати
СССР.150049, Ярославль. ул. Свободы, 97.
Программное обеспечение микроЭВМ. В 11 кн. Кн. 3.
П78 Прикладное программное обеспечение: Учеб. пособие для
ПТУ/В.А. Абрамов, В.С. Дубровин; Под ред. В.Ф. lllаньrи
на. - 2-е изд., перераб. и доп.
-
М.: Высш. шк., 1991.
-
94 с.: ил.
ISBN 5-06-001784-2
В третьей книге серии рассмотрены основные прющипы состав
ления и эксплуатации прикладного программного обеспечения
отечественных микроЭВМ. Во втором издании (1-е - 1987 г.) более
подробно представлены понятие алгоритма и способы алгоритмиза
ции прикладных задач, а также новые пакеты прикладных про
грамм, поставляемые с микроЭВМ; описаны разработка приклад
ных программ для реализации машинной графики и библиотека
программ для проведения расчетов на микроЭВМ. Может быть ис
пользовано при профессиональной подготовке рабочих.
п 2405000000 (4307000000) - 325
052 (01) - 91
53-91
ББК 32.97
6Ф7.3
1р.20к.
МНОЕ
ЕНИЕ- В ОДИННАДЦАТИ
КНИГАХ
D СТРУКТУРА и ФУНКЦИОНИРОВАНИЕ МИКРОЭВМ
9 СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ДИАЛОГОВЫЙ ЯЗЫК · ФОКАЛ •
ДИАЛОГОВЫЙ ЯЗЫК · БЕЙСИК·
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ·ФОРТРАН·
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ·ПАСКАЛЬ·
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ •ПЛ /М •
МИКРОЭВМ В СИСТЕМАХ
УПРАВЛЕНИЯ ОБОРУДОВАНИЕМ
КОНТРОЛЬ, НАЛАДКА И ТЕСТИРОВАНИЕ
ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ