DZM -180 является печатаю щ им устройством со скоростью печата
ния 180 зн/с. Относительно низкая стоимость, надежность работы обусловили ее широкое применение в качестве устройства вы вода для ЭВМ СМ.
Н а передней панели устройства расположены переклю чатели и сигнальные лампочки (рис. 1.24). П одготовка устройства к работе:
1) Включить устройство (наж ать переклю чатель с надписью
«SUPPLY»). Загорается красная лампочка (это автономны й режим работы).
2) Перевести устройство в режим работы с ЭВМ (наж ать переклю чатель с надписью «SEL»). Красная лам почка гаснет.
Загорается зеленая лампочка. Устройство к работе готово.
Окончание работы:
1) Перевести устройство в автономный режим (наж ать пере
клю чатель с надписью «На»), Загорается красная лампочка.
2) О тклю чить устройство (нажать переклю чатель с надписью
«SUPPLY»).
• 1.7. Алфавитно-цифровой терминал
Рассм отрим терминалы V D T («Видеотон») и «Электроника».
Терминалы других типов м огут иметь некоторые отличия (другое расположение клавиатуры, новые функциональные возможности).
П ри работе с ними необходимо предварительно ознакомиться с соответствую щ им руководством.
Алфавитно-цифровой терминал предназначен для ввода — вы во
д а символьной информации. Экран терм инала делится на 16 (или 24) строк по 80 символов в каждой строке.
Н абор символов VD T (см. рис. 1.24):
26 заглавных латинских букв;
31 заглавная русская буква;
10 цифр;
28 специальных знаков.
После включения терм инала в первой позиции первой строки появляется м ерцаю щ ая метка (курсор). Д ля работы с терминалом необходимо знать назначение следующих клавиш.
Клавиш а O F F LIN E. После включения устройства устанавли
вается режим O F F L IN E и на панели загорается индикаторная лампочка «O F F LIN E». Если устройство работает, то при нажатии этой клавиши устройство переходит в режим O F F LIN E. В данном режиме линия связи с ЭВМ отключена. Терминал «Электроника»
не имеет такой клавиш и.
Следую щ ая клавиш а O N LIN E. Н аж атие этой клавиш и пере
водит терминал из режима O F F LIN E в режим ON LINE.
Терминал подклю чается в линии связи с ЭВМ . Загораю тся индикаторные лампочки «ON LIN E» и «DPLX».
Рассмотрим действие клавиш и SH IFT для терм инала VDT и клавиш BP, H P для «Электроники». При совм естном нажатии S H IFT с алфавитно-циф ровым и клавиш ами вы рабаты вается код верхнего знака, изображенного на выбранной клавише. В отж атом состоянии — код нижнего знака. При совместном наж атии алф а
витно-цифровой клавиш и и клавиш и «ВР» вы рабаты вается код верхнего знака (в случае «НР» — код нижнего знака).
Клавиш а «C TR L» для VD T или аналогичная клавиш а «СУ»
для «Электроники» служит для генерирования управляю щ их кодов.
Подробности использования этой клавиш и излагаю тся в гл. 4.
К лавиш а «L IN E F E E D » для VDT или П С для «Электроники».
При нажатии этой клавиш и курсор переводится в первую позицию следующей строки.
К лавиш а «ТАВ» для VDT или аналогичная клавиш а ГТ для
«Электроники». При нажатии клавиши курсор • устанавливается в ближайш ую позицию для тубуляции. О бычно это позиции строки с ном ерами 8 N + 1 . где N = 0 , 1, 2, ... (номера позиций задаю тся аппаратно).
К лавиш а «RO LL» служит для установления и отмены режима
«бегущий экран». П ри записи символа в последню ю позицию последней строки м етка не переходит в первую позицию первой строки, как в случае обычного режима, а вместо этого все строки сдвигаю тся на одну строку вверх, причем первая строка теряется, а на месте последней строки образуется пустая строка. Курсор устанавливается в первую позицию последней строки.
К лавиш а «R E T U R N » для VDT или ВК для «Электроники».
Н аж атие клавиш и «R E T U R N » служит признаком конца строки символов, введенной с терминала (при работе в операционной системе ОС РВ).
П ри нажатии алфавитно-цифровых клавиш вы рабаты вается код, соответствую щ ий данному символу.
П одготовка терминала к работе (VDT):
1) Включить терминал. Загорается лампочка «O F F LIN E» (авто
номный режим работы).
2) Н аж ать клавиш у «ON LINE». Загорается лам почка
«ON LI NE» и D PLX (режим связи с ЭВМ).
3) Н аж ать клавиш у «ROLL». Загорается лам почка «ROLL».
(У становить «Бегущий экран»).
Окончание работы (VDT):
1) Н аж ать клавишу «O FF LINE». Загорается соответствую щ ая лампочка.
2) Выклю чить терминал.
Г л а в а 2
СТРУКТУРА АЛГОРИТМОВ И ПРОГРАММ
• 2.1. Семейства вычислительных алгоритмов
Ниже перечислены и кратко описаны основные семейства алгоритмов, которы е применяю тся в инженерно-технических зада
чах. Каждый алгоритм семейства рассматривается как один-единст- венный вычислительный блок. При таком подходе алгоритм есть отображение входных данных задачи на выходные данные. Как устроено это отображ ение, нас в данный м ом ент не интересует, так же как и вопрос о его реализации на ЭВМ.
М ожно представить, что имеется гипотетический калькулятор, содержащий клавиш и и несколько кнопок, есть возм ож ность ввести в него исходные данные задачи, наж ать одну из клавиш и одну из кнопок и вывести ответ — выходные данные (рис. 2.1). Собствен
но, так и поступаю т, раб отая с калькулятором. М ы не задум ы ваем ся, что, набрав на индикаторе число 0,37, наж ав клавиш у «Ғ»
и кнопку «SIN», м ы заставляем калькулятор вы полнять цепоч
ку действий; нас интересует только ответ 0,36161543 на инди
каторе. К аж дая из упомянутых клавиш отвечает какому-либо семейству алгоритм ов, а кн оп к а— конкретному алгоритму из этого семейства.
Семейство алгоритм ов будем обозначать буквой латинского алфавита и десятичной цифрой, например АЗ, В7, а конкретный алгоритм отм ечать парой буква — цифра. Таким образом , обозначе
ние А5В2 означает: алгоритм В2 из семейства А5.
Ниже, если это специально не оговаривается, входными и вы ход
ными данны ми алгоритм а м огут быть как точные, так и приближен
ные значения решения математической задачи. П оэтом у смысл, придаваемы й выражениям «решение уравнения», «решение системы»
и т. п., долж ен устанавливаться при описании конкретного ал гори тм а семейства. Рассм отрим следующие семейства.
АО. Вычисление элементарных функций. О бычный набор элемен
тарны х функций: sin л', cosx, tgx, arcsinx, arccosx, arctgx, ex, y x , lnx, lgx, \x\, th x дополняется часто встречаю щ имися у = т а х ( х 1;
*2> *»). J = m in(x1, х 2, ..., х„) и некоторы м и дру
гими (см. гл. 12).
Н а вход лю бого б ло
ка АО следует подать
( ВХОДНЫЕ \ \
^ ДАННЫЕ А -X{ ВЫХОДНЫЕ '
1 Д А Н Н Ы Е i
Рис. 2.1
( 2 д I iy ^ ^[~~Д2~1 / и I lv ^ числа из облас™ определения фун- Ч S i - ... у S кции (например, х ^ О для у / х , 1пх,
рис 2 2 lgx), на выходе получается число из области значений функции.
А1. Вычисление специальных функций. Блок семейства А1 пред
ставляет собой полный аналог АО, и только исторически более позднее исследование этих функций закрепило за ними термин
«специальные». К числу специальных функций относятся: интеграль
ный синус Si(x), интегральный косинус Ci(.v), гамма-функция Г(х), функции Бесселя J0(x), J j x ) , K0(x), Ү і (х), модифицированные функции Бесселя А"0(х), ЛГДх), / 0(х), /, (х), интегралы Френеля S^x), С(х), эллиптические интегралы, интеграл вероятности и др.
А2. Вычисление элементарных функций комплексного переменного.
А лгоритм ы семейства А2 для своей работы долж ны им еть на входе комплексное число z. Н а выходе алгоритм выдает комплексное число f ( z ) = u + i v (рис. 2.2), при у = 0 — вещественное число. Ч асто использую тся следующие функции: |z |, Inz, y / z , sinz, cosz и т. n.
АЗ. Аппроксимация функций. Задача приближения заданной функции / ( х ) другой функцией ср(х) из некоторого класса функций реш ается алгоритм ам и семейства АЗ. Входными данными для АЗ являю тся требуемая точность приближения 8 и / ( х ) , заданная либо аналитической ф ормулой, например, / ( х ) = х 2 +
+ sin(arctgx + cosx), 0 < х < 1 , либо таблицей значений
X] 0,0 0,2 0,3 0,4 0,6 0,9 1,0
f ( xj) 1,1 2,0 1,9 0,7 1,4 1,6 0,9
Выходные данные — достигнутая точность приближения 8, и функ
ция ф(х), O ^ x ^ l , которая также мож ет быть представлена в аналитическом или в табличном виде (рис. 2.3).
А4. Интегрирование. В семействе А4 алгоритмы вычисляют определенные интегралы от функций / ( х ) одной или нескольких переменных. Н а вход алгоритмов подаю т точность е, пределы интегрирования, функцию / ( х ) в аналитическом или табличном виде. На выходе получаем число S — приближенное значение
ь
и нтеграла S — j f ( x ) <1х. А лго р и тм ы А4, р ассм атри ваем ы е в книге,
а
решаю т задачу интегрирования методами численного анализа.
Однако существуют на ЭВМ системы аналитических вычислений, которые имею т алгоритмы нахождения аналитических формул для неопределенного интеграла. На входе этих алгоритмов — формула
для / ( х ) , на выходе формула --- - --- --- для Jf ( x ) d x . Поэтому блок А4
£o.ffx) АЗ £ і , У ( х ) ) следует рассматривать как блок, L___J Ч , вычис ля ющий определенные и не-
Рис. 2.3 определенные интегралы.
А5. Суммирование рядов. А лгоритм ы А5 на входе имею т формулы для общего члена ряда: числового д„, функционального а„(х) и точность е суммирования, на выходе получаем приближенное
оо оо
значение S = ап или 5(х) = £ a„(x), S(x) предствляется аналити-
п= 1 п = 1
чески или таблично.
А6. Фурье-анализ. Разложение функции / ( х ) в ряд Фурье в ве
щественной форме 1 00
/ ( х ) — а0 + £ (a„cosnx + bnsinnx), я ^ х ^ я , 2 л — 1
1 * I *
ап= - | f ( x ) c o s n x d x , bn= - j / ( х )s'mnxdx,
^ ~ и ^ — л
или в комплексной форме
/ ( х ) ~ I cneinx, с „ = - ] f ( x ) e ~ inxd x П = - 00 ^ - ГС
составляет предмет Ф урье-анализа. Фурье-анализ леж ит в основе методов решения многих инженерно-технических задач, таких, как выявление скрытых периодичностей в динамических процессах, решение линейных уравнений математической физики м етодом Фурье и т. д. Н а входе алгоритм ов А6 имеем / ( х ) в аналитической или табличной (часто назы ваемой дискретной) форме, на выхо
д е — коэффициенты ряда Фурье. Заметим, что коэффициенты ряда Ф урье— это функция С = С ( р) от целочисленного аргумента. Если п заменить вещественным со, то преобразование функции / ( х ) в С(со) назы ваю т Ф урье-преобразованием. А лгоритм ы А6 выпол
няю т также Фурье-преобразование.
А7. Дифференцирование. Вычислительный блок дифференциро
вания функции одной / ( х ) или нескольких п е р е м е н н ы х /( х ) = /( х 1?
х 2, ..., х„) имеет на входе аналитическую или табличную форму / ( х ) , на выходе — аналитическую или табличную форму производ
ной f i p,)(x). Аналитическое дифференцирование представлено в си
стемах аналитических вычислений на ЭВМ . В этом случае блок А7 дает точную аналитическую формулу для / $ ( х). А лгоритм ы численного дифференцирования А7 на выходе имею т приближенную функцию ф(х) к / $ ( * ) , ф(.х) может иметь как аналитическую, так и табличную формы.
А8. Операции с матрицами и векторами. А лгоритм ы этого семейства реализую т основные операции линейной алгебры. На входе алгоритм ов задаю тся м атрицы и векторы, на выходе имеем результат операции. П рим ерам и таких операций являю тся сумма, произведение матриц, обращ ение м атрицы , скалярное произведение векторов, ортогонализация векторов и т. п.
А9. Решение систем линейных уравнений. Н а входе алгоритмов семейства А9 задаю тся м атри ца системы линейных уравнений
А и вектор правых частей Һ системы уравнений А х = Ь\ на выходе для м атрицы с detA # 0 получаем вектор х— решение системы.
ВО. Собственные значения и векторы. На входе алгоритм ов ВО задается м атрица А, на выходе выдается система собственных векторов eh / = 1 , 2, ..., т, и соответствующ их собственных значений Xh удовлетворяю щ их уравнениям
A e i = Xiei, 1
В1. Линейная оптимизация. Входом канонической задачи линей
ной оптимизации является вектор с = ( с, , с2, ■■■, с„), определяю щ ий скалярное произведение Ф(х) с неизвестным вектором х, у которого координаты Xj ^ 0, г < п,
Ф(х)=(с, х) = с 1х 1 + ... + с пх п.
М атрица А имеет размер т х п , вектор b = (b1, ..., Ьт). Они описы ваю т ограничения типа равенств
А х = Ь.
Н а выходе алгоритмов В1 имеем вектор х, доставляю щ ий ш іпФ (х), либо сообщение о неразреш имости задачи.
В2. Решение линейных интегральных уравнений. И нтегральное уравнение общего типа можно записать следую щим образом:
А х — Хх = Ь.
Входом алгоритмов семейства В2 являю тся функции А (/, .v) — ядро интегрального оператора А
A x (t)= j A(t, s)x(s)ds, t e D l , Do
область интегрирования D0, область значений D {, число X, функция b(t). Выходом В2 является функция x(t) — решение интегрального уравнения - либо информация о неразреш имости или бесчисленном множ естве решений.
ВЗ. Корни полиномов. А лгоритмы семейства ВЗ по входны м данны м — коэффициентам ah 0 — определяю т корни x h
1 полинома
Pn(x) = a0 + a i x + a2x 2+ ... +а„х".
Следует заметить, что до 4-й степени (п ^ 4 ) корни Р„(х) могут вычисляться по коэффициентам аналитически.
В4. Корни нелинейных уравнений. А лгоритмы решения нелиней
ных уравнений В4 на входе имею т нелинейную функцию / ( л ) одной переменной или систему нелинейных функций нескольких переменных f ( x ) = f i ( x l x 2, ■■■, х п), 1 в области D, точность определения корня, на выходе алгоритмы В4 выдаю т корни (один или несколько) уравнений / ( * ) = 0 в области D.
В5. Нелинейная оптимизация. Входные данные алгоритмов В5 — нелинейная функция Ф(х), х = ( х1, ..., х п) и область D переменных
х, где ищется м инимум или максим ум Ф(х). О бласть D может быть задана, например, неравенствами ф ( х ) ^ 0 , и равенст
вами \j/(x) = 0, к. На выходе алгоритм ов — вектор х, доставля
ю щ ий min Ф(л-) или ш ах Ф(х) в области В либо сообщение о неразреш имости задачи.
В6. Решение обыкновенных дифференциальных уравнений, задача Коши. Н а входе алгоритм ов В6 задаю тся вектор-функция f ( x , y i , ..., у„), 1 интервал а ^ х ^ Ь двумя числами а, Һ и началь
ный вектор У 0) = ( уі , у2, J? ). точность б. На выходе — вектор-функция у (х ) = (у1(х), у 2(х), ..., У„(х)), а ^ х ^ Ь,— решение задачи
В7. Решение обыкновенных дифференциальных уравнений, краевые задачи. Входом алгоритм ов В7 являю тся вектор-функция f ( x , у\ , ..., у„), интервал а ^ х ^ Ь , заданный числами а, Ь, вектор-функция , ..., у„), 1 ^ і ^ п . На вы ход е— ^(x) = ( j 1(x), ..., У„(х))— решение краевой задачи
или сообщение о неразреш имости или бесчисленном множестве решений.
В8. Решение уравнений с частными производными. На входе алгоритм ов В8, как и В7, задаю тся функции, описывающие дифференциальное уравнение, например, вида
Здесь / — функция на входе В8. К ром е того, на входе задается область D изменения независимых переменных. Д ля рассм атрива
емого уравнения область D мож ет быть следующая:
где x f, t[ — заданные числа. Входными данны м и алгоритм ов В8 являю тся дополнительны е условия, однозначно определяю щ ие ре
шение и(х, t) уравнения. Обычно это начальные и граничные условия, например
где ф (х), ц о (0 > M i ( * ) — заданные функции на входе алгоритма.
Выходными данными является решение уравнения и(х, t).
Ф , ( У і ( а ) , ..., л (й)) = °»
ФлСрі(*)... Л (* ))= ° » 1
и(х, г0) = ф(х), x o ^ x ^ x j , и(х0, t) = n0(t); и (х { , t) = [il (t), t0 ^ t ^ t i ,
• 2.2. Структура алгоритмов
В гл. 1 определено понятие архитектуры ЭВМ как набора ресурсов ЭВМ , их структура, доступные программисту. П рограм - мист-пользователь мож ет вообщ е не знать, как физически устроена и работает ЭВМ . Э то знает инженер-электронщик. Д ля програм м ирования важна логическая организация машины. П о аналогии с архитектурой ЭВМ можно ввести понятие архитектуры алгоритма.
Архитектура алгоритм а — это набор элементарных вычислитель
ных блоков, их структура и логическая организация, необходимые д ля програм м ирования задачи.
П рограм м ист-пользователь может не знать, как зап р о гр ам м ирован отдельный вычислительный блок и даже какой м етод вычислений заложен в его основу, это должен знать инже
нер-математик. Х отя и не все инженеры-математики м огут ответить на вопрос, по какому алгоритм у вычисляются значения элем ентар
ных функций.
Естественно задать вопрос: что же должен уметь пользователь при построении алгоритма решения задачи и программировании?
П ользователю необходимо уметь:
1) Спроектировать алгоритм м етодом «сверху вниз» — от слож ного к простому, используя готовые (базовые) вычислительные алгоритм ы из семейств, перечисленных в 1.1, и применяя «базовы е логические схемы».
2) Выбрать те вычислительные алгоритмы , которые удовлетво
р яю т требованиям задачи.
3) В случае отсутствия готового вычислительного ал гори тм а необходимо его разработать, запрограм м ировать и вклю чить в состав базовых вычислительных алгоритмов.
4) Наконец, необходимо запрограм м ировать весь алгоритм.
2.2.1. Проектирование алгоритма. П роектирование алгоритм а удобно сопровож дать блок-схемами. В блок-схемах приняты стан
дартны е графические средства, показанные на рис. 2.4. Внутрь графического знака записывается кратко действие алгоритм а,
а в знак «связь» записывается метка, которая обозначает со
единение с другой линией, им е
ющей кружок с такой же м ет
кой. В ром б записываю тся ана
лизируемые условия, а возм ож ные результаты анализа обозначаю тся на выходящ их из ром ба линиях.
И мею тся три базовые логи
ческие схемы, на основании которых можно спроектиро
вать лю бой вычислительный алгоритм.
О
ТО Ч КИ В Х О Д А И В Ы Х О Д А О Б Р А Б О Т К А И Н Ф О Р М А Ц И ЯП Р О В Е Р К А У С Л О В И Я
С В Я З Ь ( И Л И С Л И Я Н И Е )
Рис. 2.4
Рис. 2.5
П о с л е д о в а т е л ь н а я с х е м а (рис. 2.5). С остоит из трех компонентов: входа в вычислительный блок 1, вычислительного блока 2 и выхода из вычислительного блока 2.
А л ь т е р н а т и в н а я с х е м а (рис. 2.6). С остоит из проверки выполнения некоторого условия. Если условие выполняется, то вычисления производятся на блоке 1, если — нет, то на блоке 2.
Заметим, что в схеме один из блоков м ож ет бы ть пустым (не содержит действий).
С х е м а п о в т о р е н и я и л и с х е м а ц и к л а . С остоит из узла слияния, проверки условия и вычислительного блока (рис. 2.7).
В этой схеме после узла слияния происходит проверка условия:
если оно выполняется, то происходят вычисления на блоке,
Рис. 2.6
если — нет, то происходит выход из схемы. Таким образом , вычисления в блоке выполняю тся до тех пор, пока условия не будут выполняться. П оскольку условие проверяется до вычис
лительного блока, возмож но, что действие блока не выполнится ни разу. С другой стороны, если условие всегда выполняется, то вычислительный процесс зацикливается, так как нет возмож ности попасть на выход схемы.
В качестве п р и м ер а п р и ведем блок-схем у а л г о р и т м а с у м м и р о вания кубов целых чисел (рис. 2.8)
N
s = I к \ ft = 1
Ч исло N— входное данное, S— выходное.
Рис. 2.7
Рис. 2.8
П р о е к т и р о в а н и е алгоритм а м етодом
«сверху вниз» на осно
ве базовых логических схем и базовы х алго
ритм ов состоит из следующих шагов. Ис
ходный вычислитель
ный алгоритм пред
ставляется в виде од
ного блока нулевого уровня, на вход кото
рого подаю тся исход
ные данные задачи, на выходе получаю тся выходные данные. Ба
зовыми алгоритмами будем н азы вать те из алгоритм ов описан
ных выше семейств, которые м огут быть реализованы пользователем на его вычислительной машине. Например, совокупностью базовых алгоритмов можно считать алгоритм ы , для которы х представлены в гл. 12 описания ф ортран-программ .
Если задача может быть решена с помощ ью одного базового алго
ритма, то проектирование на этом заканчивается, если— нет, то нуле
вой уровень проекта алгоритма разворачивается в последовательность базовых алгоритмов (рис. 2.9), где вычислительные блоки можно обозначить по принятой схеме: А4А0, В1А1 и т. п. Не помеченные на рис. 2.9 вычислительные блоки отсутствуют среди базовых ал
горитмов и должны быть разработаны пользователем, обозначены в соответствии с принятой схемой и включены в состав базовых.
Таким образом , проект алгоритм а первого уровня состоит в последовательном обращении к базовы м алгоритм ам и не содержит 2-й и 3-й логических схем в своей структуре.
Начиная со второго уровня проекта алгоритм а использую тся все три логические схемы и базовые алгоритмы . Второй уровень представляет собой проекты отсутствующ их алгоритмов на первом уровне (рис. 2.10). Непомеченные блоки второго уровня р азраба
ты ваю тся на следующем, третьем, уровне проекта и т. д. до тех пор, пока на и-м уровне проекта все вычислительные блоки не будут состоять из базовых алгоритмов. А лгоритм ы вычислительной
Рис. 2.9
о * - ч ~ П ЕРВ Ы Й - Т— * и У Р О В Е Н Ь
o ^ Q
с н
А7А0/
ВТОРОЙУ Р О В Е Н ЬРис. 2.10
математики, встречающ иеся в инженерно-технических задачах, про
ектирую тся с пом ощ ью базовы х алгоритм ов с небольш им числом уровней проекта. Конечность этой процедуры (п конечно) следует из условия, что в число базовых алгоритм ов естественно вклю ча
ются арифметические действия над числами (рис. 2 .1 1).
О тличительной чертой нисходящ его проектирования алгоритма является возмож ность контроля его работы с сам ого начала
о—>| + |~х> о-Ц — [>о о-»| X |-x>o»| -f- |>о
Рис. 2.11
проектирования. Э то достигается тем, что неразработанны е вы
числительные блоки заменяю тся так назы ваем ы м и «заглушками».
Заглушки — это блоки, имитирую щ ие вход и выход неразработан
ных блоков (рис. 2.12). Заглушка нужна только для того, чтобы проверить алгоритм определенного уровня.