Файл: Брага, В. В. Основы технологии машинной обработки статистической информации [учеб. пособие].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