Файл: Брага, В. В. Основы технологии машинной обработки статистической информации [учеб. пособие].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.10.2024
Просмотров: 133
Скачиваний: 0
пы с одинаковыми признаками. Так, операция «сложение» в за висимости от модификации изменяется от 10 до 17, операция «вы читание» от 20 до 27, операция «умножение» — от 30 до 37, опера ция «деление» — от 40 до 47. При проставлении этих команд во вто ром знаке ставится одна из модификаций (М-0, 1, 2, 3, 4, 5, б, 7). В этом случае всегда выполняется одна и та же операция, напри мер сложение, но в различных вариантах.
Код модификации означает, остается ли результат операции в арифметическом устройстве или посылается в ячейку а<і.
Характер выполнения сложения при некоторых значениях M приведен в следующей таблице:
Значение M Код команды Содержание выполняемой работы
0 |
+ |
10 |
а, |
а2 |
В |
АУ |
ничего |
нет. |
Содержимое |
ячейки |
at |
|||||
|
|
|
|
|
|
складывается |
с |
содержимым |
ячейки |
я а |
||||||
|
|
|
|
|
|
и результат |
посылается |
в ячейку а 2 |
|
|||||||
1 |
+11 |
й, |
а2 |
В АУ |
ничего |
нет. |
Содержимое |
ячейки |
о, |
|||||||
|
|
|
|
|
|
складывается |
с |
содержимым |
ячейки |
а2 |
||||||
|
|
|
|
|
|
и результат |
остается в АУ |
|
|
|
||||||
2 |
+ |
12 |
в, |
а2 |
В |
АУ |
есть |
какое-то |
число. |
К |
числу, |
на |
||||
|
|
|
|
|
|
ходящемуся |
в АУ, |
прибавляется содер |
||||||||
|
|
|
|
|
|
жимое ячейки |
а,; |
|
результат |
|
посылается |
|||||
|
|
|
|
|
|
в ячейку |
а2 |
|
|
|
|
|
|
|
|
|
3 |
+ |
13 |
а, |
0 |
В |
АУ |
есть |
какое-то |
число. К |
числу, нахо |
||||||
|
|
|
|
|
|
дящемуся |
в |
АУ, |
прибавляется |
содержи |
||||||
|
|
|
|
|
|
мое |
ячейки |
а,; |
результат |
остается в |
АУ |
Как можно заметить, модификацию М-0 и М-1 используют тог да, когда в АУ нет никаких данных, а М-2 и М-3 тогда, когда в АУ есть какие-то числа, полученные в результате предыдущих вы
числений. |
Такие же |
функции выполняют |
М-0, М-1, |
М-2, М-3, |
М-4 и т. |
д. и при выполнении других арифметических |
операций, |
||
а также |
сравнения. |
Модификация команд |
увеличивает |
гибкость |
программирования, позволяет составить программу с меньшим чис лом команд. Рассмотрим порядок выполнения некоторых операций в машине.
Арифметические |
операции |
выполняются в машине с модифика |
||||||
циями; коды операций при этом следующие: |
|
|||||||
+ 10, |
+11, |
+12, |
+13, |
+14, |
+15, +16, |
+17 |
— с л о ж е н и е |
|
+20, |
+21, |
+22, |
+23, |
+24, +25, +26, +27 — вычитание |
||||
+30, |
+31, |
+32, |
+33, |
+34, |
+35, |
+36, |
+37 |
— умножение |
+40, |
+41, |
+42, |
+43, |
+44, |
+45, |
+46, |
+47 |
— деление |
При выполнении арифметических .операций можно предусмот реть различные варианты: результат может пересылаться в ячейку
44
по второму адресу, оставаться в АУ, направляться в другую ячей
ку. Рассмотрим выполнение таких операций на |
примерах. |
||||||||
П р и м е р ы . |
|
1. Сложить |
число |
103, |
находящееся |
в ячейке |
|||
0127, с числом 87, находящимся |
в ячейке |
0252; результат |
оставить |
||||||
в АУ. Сложение выполнится по следующей команде: |
|
||||||||
В результате |
выполнения этой |
|
|
|
|
||||
команды число 103 сложится с |
коп |
|
|
||||||
числом |
87 и результат 190 оста |
а, |
ай |
||||||
нется в АУ, где над результатом |
|
|
|
|
|||||
можно |
будет выполнять дальней |
+11 |
0127 |
0252 |
|||||
шие |
операции |
(например, умно |
|||||||
жить |
|
на число, |
находящееся |
в |
|
|
|
|
|
другой |
ячейке). |
|
|
|
|
|
|
|
|
2. |
Сложить |
число 103, находящееся в ячейке |
0127, с числом 87, |
находящимся в ячейке 0252; результат направить в ячейку 0252.
Сложение |
выполнится по следующей команде: |
|
|
|
|
|||
|
|
|
В результате |
|
выполнения этой |
|||
коп |
|
|
команды число |
190 запишется в |
||||
|
|
ячейку |
0252, при |
этом находив |
||||
|
|
|
||||||
|
|
|
шееся там до этого число |
87 по- |
||||
+ 10 |
0127 |
0252 |
гасится. |
Таким |
|
образом, |
выпол |
|
|
|
|
нение команды с |
|
модификациями |
|||
|
|
|
М-0,2 |
стирает |
находящееся в |
|||
ячейке иг первоначальное число |
(при этом имеется |
в виду, что оно |
||||||
в дальнейшем не понадобится) |
и записывает в него |
результат опе |
||||||
рации. |
|
|
|
|
|
|
|
|
3. Сложить число 103, находящееся в ячейке 0127, с числом 87, |
||||||||
находящимся в ячейке |
0252; результат |
записать |
|
в |
ячейку |
1273. |
Для выполнения этой операции необходимы две команды: первая
команда |
обеспечит |
сложение чисел и запоминание результата в |
|
АУ, вторая обеспечит пересылку его из АУ в ячейку 1273. |
|||
коп |
|
|
Пояснения |
|
|
|
|
+ 11 |
0127 |
0252 |
ßi + ß2 ; результат в АУ |
+ 12 |
0 |
1273 |
Результат из АУ поступает в ячейку |
|
|
|
1273 |
Остальные арифметические операции выполняются аналогично сложению. В любом случае результат операций может быть остав лен в АУ, послан в ячейку или новую ячейку. Следует иметь в виду, что числа, помещенные в ячейку памяти, хранятся там по стоянно. Если число посылается из ячейки в АУ или в другую ячейку, то все равно оно остается в первоначальной ячейке и может использоваться многократно. Погасить число в ячейке или в АУ можно только засылкой в него нового числа или нуля.
4. Рассмотрим составление программы, где используются все арифметические операции.
45
Необходимо |
вычислить значение |
«у» |
по формуле |
у— *х |
_' |
|||||
Результат записать в ячейку |
«у». |
|
|
|
|
|||||
Эту |
формулу раскладываем |
на |
элементарные операции: |
1) |
||||||
2) ах |
+ |
в; 3) |
ex; |
4)ex—d; |
5) |
(ах |
+ в) |
: (ex — d ) . |
Составим |
|
манду |
на каждую |
операцию: |
|
|
|
|
|
|
rf .
ах;
ко
Номер |
А |
«1 |
а? |
|
|
|
Пояснения |
|
|
|
|
команды |
|
|
|
|
|
|
|||||
1 |
+31 |
< а > |
|
Умножаем „ах"; |
результат оставляем |
в АУ |
|||||
|
|
|
|
(М-1), так |
как |
к нему следующей |
коман |
||||
|
|
|
|
дой надо |
прибавить |
„в" |
|
|
|
||
2 |
+ 12 |
<«> |
ч |
Складываем |
содержимое АУ „ах" с числом |
||||||
|
|
|
|
„в" |
(М-2); |
результат |
(ах + |
в) |
направляем |
||
|
|
|
|
в |
свободную ячейку |
„ч", |
так |
как |
в АУ |
||
|
|
|
|
надо производить другие |
действия |
|
3 |
+31 |
<Се^> |
<СХ^> |
4 |
+ 2 2 |
0 |
k |
5 |
+ 4 1 |
г |
k |
6 |
+12 |
0 |
У |
Умножаем „ех"; результат оставляем в АУ (М-1), так как из него следующей командой надо вычесть „d"
Вычитаем из содержимого АУ „ех" число „d"; результат (ех — d) засылаем в сво бодную ячейку „k"
Делим содержимое ячейки „г" (ах + в) на содержимое ячейки „k" (ex -- d); результат деления остается в АУ
Посылаем |
результат деления |
ах + в |
|
ех — d |
|||
из АУ в |
ячейку „у" |
||
|
Рассмотрим выполнение некоторых команд операций управле
ния. |
|
Операция безусловного перехода. |
Обычно в машине все коман |
ды выполняются поочередно. Но в |
некоторых случаях требуется |
нарушить естественный порядок выполнения команд и, предполо жим, после 10-й команды выполнять не 11-ю, а 57-ю. Такой пере ход обеспечивается командой безусловного перехода, которая обо значается цифровым кодом «—30». Если после 10-й команды по
ставить код |
команды «—30», то естественный порядок выполне |
||||
ния |
команд |
всегда |
будет |
нарушен. Команда имеет |
следующий |
вид: |
-30 |
00 а, |
а2 . |
По этой команде управление |
передается |
команде, хранящейся в ячейке а\, а результат предыдущей опе рации записывают в ячейку а%
Вторая команда безусловного перехода —31 00 а, а2 озна-
46
чает переход к стандартной подпрограмме. (Стандартная подпро грамма— это заранее составленный участок программы на стан дартные вычисления, используемый в разных программах). По этой команде управление передается команде с адресом а.\, в ячейку а,2 заносится адрес исполненной команды перехода к под программе. Команда перехода к подпрограмме используется для передачи управления из любого места программы какому-либо ее участку с последующим возвращением (после исполнения этого участка) к команде, перед которой был совершен переход.
При разработке статистических задач применяются стандарт ные подпрограммы сортировки, проверки по шифрам строк, печати, ввода данных, перевода данных из одной системы счисления в дру гую, вычисления процентов, темпов, средних и т. д. Стандартные программы составлены заранее и размещены в определенных ячей ках памяти. При выполнении основной программы постоянно обра
щаются |
к стандартным |
подпрограммам по команде безусловного |
||||
перехода. |
|
|
|
|
|
|
|
|
Основная программа |
|
|||
|
|
Номера ячеек, |
в кото- |
А |
а, |
а а |
|
|
рых хранятся |
команды |
|
|
|
|
|
0001 |
|
|
|
|
|
|
0002 |
|
|
|
|
|
|
0003 |
|
|
|
|
|
|
0004 |
|
|
|
|
|
Стандартная |
0005 |
|
|
|
|
|
программа |
. 0006 |
|
|
|
|
0057 |
|
0007 |
|
|
|
|
|
0008 |
|
|
|
|
|
0058 |
|
0009 |
|
|
|
|
0059 |
|
0010 |
|
|
|
|
0060 |
|
ООП |
|
—31 |
0057 |
0063 |
0061 |
|
:—^0012 |
|
|
|
|
0062 |
|
0013 |
|
|
|
|
0063 |
- 3 0 0012 0000 |
0014 |
|
|
|
|
На схеме показано, что основная программа начинает выпол няться с команд, помещенных в ячейках 0001—0010, затем по ко манде безусловного перехода «—31» происходит обращение к стан дартной подпрограмме, расположенной в "ячейках 0057—0063, и затем снова выполняется основная программа, начиная с команды, размещенной в ячейке 0012.
Операции условной передачи управления (условного перехода).
Эти операции также изменяют естественный порядок выполнения команд, но не всегда, а в зависимости от некоторых условий. На пример, после выполнения какой-то команды результат может быть положительным или отрицательным, больше, меньше или равным какому-то заданному числу или равным нулю. В зависимости от этих условий дальнейшие вычисления производятся по-разному, т. е. программа при этом как бы разветвляется, и продолжение ре шения возможно только по одному из этих путей. Такие программы называются ветвящимися.
47
Имеются следующие команды условного перехода:
«—32» |
— |
п о |
знаку; |
|
«—33» |
по переполнению; |
|||
«—34» |
по нулю; |
|||
«—35» |
— |
по |
ключу; |
|
«—37» |
— |
по |
несовпадению. |
|
Покажем— |
выполнение операций условного перехода по |
|||
нулю на |
блок-схеме. Например, вводится в машину первичный от |
|||
|
— |
|
|
чет, где имеются контрольные суммы. Машина подсчитывает про граммным путем показатели отчета и сравнивает их с контроль
ными суммами. Если они равны, |
то |
значит документ |
правильный |
|||||
и путем выполнения операции условного перехода |
по нулю « 34» |
|||||||
машина переходит к выполнению основной программы; |
если нет, то |
|||||||
выполняется другая ветвь программы, которая печатает |
неправиль |
|||||||
|
— |
|||||||
ные данные в протоколе расхождений. Вот как можно |
изобразить |
|||||||
блок-схемой этот пример: |
|
|
|
|
|
|
|
|
Сравнение контрольных |
сумм |
|
|
|
||||
отчета |
( выполняется |
с |
помощью |
|
|
|
||
команд |
условного |
перехода |
по |
|
|
|
|
|
нулю "-J4 ") |
|
|
|
|
|
|
|
|
. КонтрольныеуѵуммьіФО |
Контрольные\суммы•= |
Û |
|
|
||||
Печать протокола |
|
Переход к |
выполнению |
|
|
|||
расхождений |
|
|
шовной |
программы |
счета |
|
||
Рис. 4. Схема |
выполнения |
операций |
условного |
перехода |
|
|||
|
|
по |
нулю |
|
|
|
|
|
Команды условного перехода позволяют осуществить широкий логический и арифметический контроль обрабатываемой информа ции. С помощью этой операции кроме сравнения контрольных сумм можно выполнять сортировку информации, проверить логическую увязку отдельных показателей, а также границы их значений. В этом случае все обнаруженные машиной ошибки будут напеча таны в протоколе расхождений, на основании которого в машину будут внесены изменения. Исправленные данные должны быть за несены в ячейки памяти машины вместо неверной информации, ко торая при этом гасится. Исправления вводятся при помощи пер фокарт и перфолент.
Циклические |
программы. |
Отдельные команды могут выпол |
няться в машине |
с большим |
числом повгорений. Такие программы, |
в которых отдельные команды или группы команд многократно по вторяются, называются циклическими. Операция управления цик лом имеет цифровое обозначение «—20» и часто применяется при программировании статистических задач. Допустим, в ячейках ЗУ расположены данные о численности работающих на ряде предприяятий, входящих в одно министерство. Предположим, таких пред-
48