книги из ГПНТБ / Караваев, Н. И. Электронные цифровые вычислительные машины и программирование учеб. пособие
.pdf- 220 -
обращения к СП. В остальных случаях вычисляется c t q ОС j а вычисления в основной программе продолжаются с команды сле дующей сразу за командой обращения к СП.
Перед обращением к СП вывода на печать необходимо за помнить в свободной ячейке не только содержимое третьего регистра модификации, но и первого, так как обе регистра используются в этой СП. При выходе из СП содержимое обоих регистров необходимо восстановить.
Зсе стандартные подпрограммы закоммутированы в дЗУ C3LBM-1 и хранятвя там в действительных адресах.
5 7.9. ПРОГРАММИРОВАНИЕ В УСЛОВНЫХ И ДЕЙСТВИТЕЛЬНЫХ АДРЕСАХ
После того как алгоритм решения задачи разработан и де
тализирован, |
приступают к непосредственному программирова |
нию, то-есть |
к записи алгоритма в виде последовательности |
элементарных |
операций. |
В процессе составления программы необходимо решить два вопроса:
- распределение памяти между числовым материалом зада чи /установление адресов команд, исходных данных, промежу точных и окончательных результатов вычислений/;
- непосредственное программирование, т . е . установление необходимой последовательности операций и составление ко манд самой программы.
Эти вопросы являются взаимосвязанными: нельзя распреде лить память, не зная заранее количества команд программы, и нельзя составить программу, не зная адресов исходных дан ных и результатов счёта.
Чтобы разрешить это противоречие, сначала составляют программу в условных адресах. Под условными адресами пони мается некоторая цифровая, буквенная или буквенно-цифровая
- 221 -
нумерация ячеек памяти машины, не связанная с их истинной нумерацией. После того как программа в условных адресах составлена, она составляется в действительных адресах, для этого все условные адреса заменяются конкретными численны ми значениями.
В качестве условных адресов могут использоваться сле
дующие |
обозначения: |
|
|
|
|
|
|
|
||||
- К + 0 |
, К + |
1, |
К + 2 |
или £ |
+ |
0, £ |
+ |
1 . . . - |
но |
|||
мера ячеек для команд программы; |
|
|
|
|
|
|
||||||
- |
а + |
0, |
а + |
1 . . . . или в + |
0, в + |
1 . . . . |
- |
номера |
яче |
|||
ек для исходных данных; |
|
|
|
|
|
|
||||||
- |
с |
+ |
0, |
с + |
1 |
номера |
рабочих |
ячеек; |
|
|
||
- |
в |
+ |
0, |
|
1 |
номера |
ячеек, |
хранящих |
вспомога |
|||
тельные |
|
константы; |
|
|
|
|
|
|
|
|
||
- d + 0, d-+ |
1 |
номера |
ячеек |
для окончательных |
ре |
|||||||
зультатов. |
|
|
|
|
|
|
|
|
|
|
||
Необходимо иметь |
ввиду, что |
номера |
ячеек |
- |
восьмерич |
|||||||
ные числа. |
|
|
|
|
|
|
|
|
|
|
Указанные обозначения не являются стандартными, приме няются и другие буквы при обозначении условных адресов.
Программирование в условных адресах удобно тем, что оно не связывает программиста с действительными адресами ячеек памяти, поскольку отмеченные группы ячеек не связаны между собой и количество ячеек в каждой группе неограничено. Эта особенность позволяет вносить изменение в отдель ные участки программы без существенных изменений её других участков.
После составления программы в условных адресах опреде
ляется количество |
ячеек, |
входящих |
в массивы К, a,c,e,d , |
и распределяется |
память. |
Последнее |
осуществляется с учётом |
рабочих ячеек, занимаемых при работе стандартных подпрограмм /ячейки с 20 ООО по 20 027/.
Распределив память, переходят к составлению рабочей программы в действительных адресах. Для этого буквы К, а,
с е d каждого условного адреса заменяются конкретны-
- 222 -
ми числовыми значениями.
Затем программа уже в действительных адресах аиписьа-ы.и.- ся на бланке.
На программном бланке^форма которого для СЗцВМ-1 при водится на стр.223? в графе "Номер ячейки" записывается пяти разрядный восьмеричный адрес ячейки ЗУ, причём признак ад реса " : " записывается перед адресом в этой же графе.
Графа "Пр.числа" отведена для записи признака числа, в качестве которого используется один из следующих индексов
клавиш СТА-2М: |
|
|
||
/ |
- |
команда; |
|
|
? |
- |
восьмеричная константа; |
|
|
= |
- |
линейное десятичное |
число /масштаб |
10^/', |
Э - |
линейное десятичное |
число /масштаб |
2 ^/\ |
|
") - |
градусная величина /градусы, минуты, секунды и до |
|||
|
|
ли секунд/*, |
|
|
( |
- |
градусная величина /градусы, минуты и доли минут/; |
||
J |
- |
время /часы, минуты, секунды и доли |
секунд/; |
|
9 |
- |
двоично-десятичное |
число; |
|
е |
- |
номер задачи. |
|
|
|
Информация о содержимом каждой ячейки |
ОЗУ обязательно |
должна сопровождаться одним из вышеуказанных признаков, а
заканчиваться |
точкой. |
|
Команда на |
бланке записывается следующим |
образом: |
в графу "КОП" - |
код операции /две восьмеричные |
цифры/, |
вграфу "ГГМ" - признак модификации /одна восьмеричная циф ра/,
вграфу "Адрес" - адресная часть команды /пять восьмеричных цифр/.
Восьмеричные константы, линейные десятичные числа, градусные и временные величины записываются, начиная со старших разрядов, следующим образом:
вграфу "КОП" - три цифры,-
вграфу "ПМ" - две цифры,
вграфу "Адрес" - остальные цифры /шесть для восьмеричных и пять для десятичных чисел/.
|
|
|
|
- |
223 |
- |
|
|
|
|
|
|
|
ПРОГРАММНЫЙ БЛАНК СЭЦВМ-1 |
|
||||
|
Номер |
Пр. |
+ |
КОП |
ИМ |
Адрес |
Пояснение |
|
|
|
ячейки |
числа |
— |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
: |
20110 |
/ |
|
10 |
3 |
15064. |
Команда |
|
|
: |
20111 |
/ |
|
37 |
3 |
37777. |
Команда |
|
|
|
2 |
|
|
121 |
37 |
140667. |
Восьмеричная |
||
: |
20123 |
? |
+ |
||||||
|
4 |
|
|
|
|
|
|
константа |
|
|
5 |
л |
- |
159 |
15 |
49431. |
Десятичное |
число |
|
: |
20126 |
||||||||
|
7 |
|
|
|
|
|
|
M-10l v J |
|
|
0 |
э |
|
137 |
85 |
36495. |
Десятичное |
число |
|
: |
20131 |
+ |
|||||||
|
2 |
|
|
|
|
|
|
М- 2 о В |
|
|
3 |
|
|
|
|
|
|
|
|
|
4 |
|
+ |
019 |
39 |
21117. |
19° |
39 ' 2 Г , 11? |
|
: |
20135 |
) |
|||||||
: |
20136 |
( |
+ |
019 |
39 |
21117. |
19° |
3 9 ; 21 И ? |
|
|
7 |
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
+ |
123 |
54 |
75 |
12n |
3 5 m 4 7 f |
5 |
: |
20143 |
X |
|||||||
|
4 |
|
|
012 |
|
|
Задача W 012 |
||
: |
20025 |
|
+ |
|
|
||||
|
6 |
|
|
|
|
|
|
|
|
7
0
1
2
3
4
5
6
7 |
i |
|
- 224 -
Номер задачи записывается в графу "КОП" трехразрядным десятичным числом.
Примеры различной информации, предназначенной для за писи в соответствующие ячейки ОЗУ, приведены на программном бланке СЭЦВМ-1 на стр.223.
Таким образом,в зависимости от сложности решаемого ал горитма программирование осуществляется либо в действитель ных адресах, либо в условных с дальнейшим преобразованием последних в действительные после распределения памяти ма шины.
При программировании надо всегда стремиться к макси мальному сокращению объема памяти, занимаемой программой и числовым материалом задачи. Сокращение объёма программы до стигается рациональным выбором порядка вычислений. Кроме того, с целью экономии в качестве рабочих ячеек надо приме нять ячейки, содержащие ранее использованные результаты.
При разработке программ решения задач на ЭЦВМ, как пра вило, стремятся обеспечить:
1. Массовость программы, т . е . пригодность её для при менения к определенному типу задач при различных числовых значениях параметров и исходных данных.
2. Цикличность программы, заключающуюся в многократ ном периодическом повторении вычислений по всей программе, или по её участку и в обеспечении малым ч/слом команд вы полнения большого числа операций.
3.Краткость программы за счёт исключения излишних дей
ствий и |
экономного |
использования |
адресов памяти. |
4. Возобновляемость, или восстанавливаемость програм |
|||
мы, т . е . |
такое её |
построение, при |
котором программу можно |
прерывать в любой момент >времени, затем начинать вычисле ния сначала.
5. Максимальное использование в программе ранее сос тавленных стандартных подпрограмм, а также оформление от дельных кусков данной программы в виде так называемых под программ.
Г Л А В А УШ
ОРГАНИЗАЦИЯ РЕШЕНИЯ ЗАДАЧ НА С ЭЦВМ-1
» 8 . 1 . ОСНОВНЫЕ ЭТАПЫ РЕШЕНИЯ ЗАДАЧИ НА ЭЦВМ
Решение задач с использованием ЭЦВМ представляет собой сложный процесс, состоящий из ряда этапов. Рассмотрим те этапы, с.которыми сталкивается инженер, прежде чем довести решение технической задачи с помощью ЭЦВМ до числовых вели чин.
1. Определение целей исследования и постановка задачи. Данный этап является отправным для дальнейшего решения за дачи. Постановка целей исследования может выполняться лишь специалистами-исследователями, занимающимися разработкой конкретных научных, технических, экономических и других про блем. Цели исследования, условия и гипотезы, при которых оно проводится, а также требования к его окончательному резуль тату обычно дают возможность сформулировать постановку за дачи, которая заключается в детальном иаучении существа рас сматриваемого физического явления или объекта и определении конечной цели исследования.
2. Построение математической модели или математическая формулировка задачи состоит в описании фиаических процессов
и объектов на удобном математическом |
языке. В процессе |
это |
го этапа принимаются различные допущения и упрощения, |
не |
|
оказывающие существенного влияния на |
изучаемый процесс, |
вво |
дятся обозначения, выбираются системы координат, осуществля ется математизация физического явления или объекта, например, вывод дифференциальных уравнений или получение каких-либо других математических зависимостей. Короче говоря, на этом
|
- |
226 |
- |
|
|
этапе |
устанавливается в окончательном виде |
те |
нормули и |
||
математические зависимости, |
которые подлежат |
решению. |
|||
5 . |
Зыбор численного |
метода. Численные |
математические |
методы, являющиеся предметом особой области математики-вы числительной математики, позволяют свести решение самых разнообразных задач к последовательному выполнению четырех арифметических действий. Для решения одной и той ле задачи можно подобрать несколько различных методов. На этом этапе рассматриваются все возможные численные методы решения и выбирается тот из них, который наилучшим образом обеспечи вает выполнение требований поставленной задачи.
4 . Разработка алгоритма решения задачи /алгоритмиза ция задачи/. В процессе выполнения этого этапа разрабаты вается алгоритм решения, т . е . устанавливается необходимая последовательность.арифметических и логических действий, с помощью которых может быть реализован выбранный численный метод. Обычно алгоритмов решения может быть несколько. По этому предварительно анализируются несколькочвозмолных ва риантов алгоритмов. Затем выбирается тот из них, который обеспечивает наиболее эффективное использование машины. Характерная особенность этого этапа состоит в том, что ал горитм разрабатывается пока в общем, универсальном виде. При этом для его записи используете; такой язык, который наглядно отображает структуру алгоритма в целом, независи мо от конкретного типа машины, на которое в дальнейшем бу дет решаться задача.
5. Перевод исходного алгоритма на язык конкретной машины. Цель этого этапа-непосредственное составление про граммы. В процессе данного этапа исходный алгоритм, разра ботанный на первом этапе программирования, предварительно детализируется и преобразовывается таким образом, чтобы в нем учитывалась как специфика решения задач на машинах во обще, так и особенности конкретной машины, на которой бу дет решаться задача.
Такой преобразованный алгоритм принято называть логи-
- 227 -
ческой схемой программы. После разработки логическое схекы
программы общий алгоритм решения |
задачи записывается в ви |
де последовательности конкретных |
элементарных опервци", |
которые может исполнять данная машина. Последовательный пе речень этих операций и составляет собственно программу ре
шения задачи. Необходимо заметить, что составление |
програм |
мы представляет собой исключительрго трудоёмкий и сложный |
|
процесс. Он является источником большого количества |
ошибок |
и поэтому требует от исполнителя напряженного |
внимания. Ка |
|
чество |
его выполнения определяется мастерством |
программист г- |
о . |
Подготовка составленной программы для |
ввода Б £ца<! |
заключается в переносе программы с помощью перфорационного аппарата с бланков на перфоленту или на перфокарты.
Выполнение перфорирования является технической работой, требующей большой внимательности во избежание внесения оши бок в программу.
7. Отладка программы. Вероятность ошибки при ручном программировании настолько велика, что большинство программ при первом их опробовании не обеспечивает решения задачи.
Для окончательного обнаружения ошибок и проверки програмуы используется ЗиБМ . На ней осуществляют контроль правильности функционирования программы, заключающийся в сравнении числовых результатов, выдаваемых машиной, с чис ловыми результатами, полученными при контрольном ручном
просчёте |
одного |
из |
вариантов |
исходных данных. |
Отладка - |
завершающий этап |
в |
разработке |
программ1 ;. |
|
|
8. |
Решение |
задачи на машине. Содержание |
этого этапа |
ясно из его названия. Непосредственное решение задачи на машине обычно не требует использования программиста высо кой квалификации. Эта работа может быть поручена менее квалифицированному исполнителю, так как порядок, работы на машине при решении задачи описывается в инструкции к про грамме. Обработка результатов вычислений, как правило, в е -
- 228 -
дётся тем лицом, в интересах которого решалась задача. Из перечисленных этапов решения задачи на ЭцВМ этапы
1,2 и 3 непосредственного отношения к программированию не имеют, а этапы 4 и 5 рассмотрены в предыдущих главах, поэ тому в настоящей главе будут рассмотрены только последние три этапа.
для удобства рассмотрения последних трёх этапов реше ния задачи на СЭЦВМ-1 в следующем параграфе даётся описание
пульта |
управления этой машины. |
|
|
S 8.2. ПУЛЫ УПРАВЛЕНИЯ МАШИНЫ СЭЦВМ-1. РАБОТА ЗА |
|||
|
|
ПУЛЬТОМ |
|
Пульт управления /ПУ/ |
предназначен для пуска |
и оста |
|
нова |
машины, контроля за |
её функционированием, |
обеспечения |
ручного управления при наладке и контроле и визуального кон троля за вводимой с пульта управления информацией.
На лицевой панели ПУ /рис. 8 . 1 / расположены: - клавиатура ручного ввода,
-клавиатура управления,
-цифровая индикация,
-световое табло,
-панель наладки и контроля.
Клавиатура ручного ввода содержит 14 клави!" следующего назначения:
- " - " - знак /нажимается перед набором отрицательного числа/;
- "О", " 1 " , " 2 " , " 3 " , " 4 й , " 5 " , " б " , " 7 " , " в " , и 9 " - для набора цифровой информации;
-"Пр" /правильно/ - обозначение правильно набранного числа при вводе информации с-ПУ /нажимается после набора числа/;
-"Нпр" /неправильно/ - исключение записи в память ма шины ошибочно набранного числа /нажимается в случае обнару жения ошибки при наборе числа на клавиатуре/;
|
СНК |
ост |
ост |
О С Т |
N |
ЧКС/10 У М |
|
|
|
ЭВМ |
ПРОГР |
3N |
ЗАДАЧИ |
очисти |
|||
|
ПУСК |
РСИ |
AV |
|
Д З У |
О З У |
Г С |
|
|
ЭВМ |
|
ОЗУ |
|||||
ЦИФРОВОЙ ИНДИКАТОР |
К л У |
ввод |
С П |
Р1 |
ПЕЧАТЬ |
вывол |
У С |
Р 2 |
СТА |
|
СТА |
|
СВЕТОВОЕ ТАБЛО
О |
1 |
2 |
3 |
К |
Шпр 5 |
6 |
7 |
8 |
9 |
КЛАВИАТУРА РУЧНОГО ВВОЛА
СВрос |
очисти Э В М В |
В О Д В Ы В О Д |
РЕВЕРС |
|
|||
|
ооооооооооооо |
||
Пр |
ОЗУ пзк пуск ост М |
СТА СП Р{ ПЕЧАТЬ СТА УС |
П СП |
|
КЛАВИАТУРА УПРАВЛЕНИЯ |
|
|
|
|
|
|
4 4 4 . 4 4- 4 . + 4 4 ,4- 4- 4 - 4 4 4 4 4 т |
ост.сп пчсксл |
||
+ 4 + 4- 4 . 4 4 +-.4 4- 4 4 4 + |
+ |
|||||||
0ТКП33-зг-31л30-29-2еЛ27-2б"25^24"23"22 |
2I"20-IQ |
1в-1?Ч6 (5Ч4-13 1 П П 0 9~0— 7 |
6 - 5 —к |
9~2~ |
КЗНАКЗн. |
|||
ЧМН СРАВК ЛЧ АДРЕС АДРЕС ОПРОС OTKfl |
ОСТАН БПОКиООвЬШ |
л/ |
|
I Д РИС |
Прм |
коп |
0 Л Н 0 1 С А Т И0 «ЕПРЕМдао |
|
аа |
я •* |
, |
4 + + + + + f + + -l- + 4 4 - ^ + 4 |
+ 4 4 |
||||
# 4 - 4 + |
+ + + 4 + 4 + + + |
|||||||
слож -зьписъмоЗУатхл отдаете» сик |
зм ослм чш кои коп'ц—)5/,')'2_Ц_10л9_6~"Т ^ б - 5 ~ k~^T~ 2 ~ 1^2~ Г^Э ~йА~Ъ~~ Т |
ИСПОЛНЕНИЕ КОМ«ЧД |
|
КО М А ИДА |
|
ПАНЕЛЬ НАЛАДКИ И КОНТРОЛЯ |
РИС.8.1. |
ЛИЦЕВАЯ ПАНЕЛЬ ПУЛЬТА УПРАВЛЕНИЯ СЭЦВМ-1. |