Файл: Брага, В. В. Основы технологии машинной обработки статистической информации [учеб. пособие].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.10.2024

Просмотров: 143

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В разделе процедур описывается последовательность операций обработки данных. Каждая операция в этом разделе представля­ ется в терминах, имеющих определенный смысл. Этот раздел оди­ наков для всех типов машин.

РАЗДЕЛ ПРОЦЕДУР знает операции, которые должны быть выполнены при решении данной задачи. Наиболее важным элемен­ том раздела процедур является глагол. Глаголы бывают:

арифметические: ВЫЧИСЛИТЬ; ввода—вывода: ЧИТАТЬ, ПИСАТЬ, ОТКРЫТЬ, ЗАКРЫТЬ,

ПРИНЯТЬ, ВЫВЕСТИ; выбора последовательности вычислений — ПЕРЕЙТИ, ВЫПОЛ­

НИТЬ;

. перемещения данных — ПЕРЕМЕСТИТЬ, ПРОСМОТРЕТЬ; прекращение вычислений — ОСТАНОВИТЬ и ряд других. Каждый глагол выполняет в программе одну или несколько

функций. Так, например, глагол ПЕРЕМЕСТИТЬ дает возмож­ ность передать данные с одного поля на другое или несколько дру­ гих полей. (Поле, или зона, — это место (в памяти ЭВМ) хранения определенных данных для дальнейшей обработки или для печати.)

Глаголы ОТКРЫТЬ и ЗАКРЫТЬ соответственно начинают и прекращают операции над массивами, т. е. по команде ОТКРЫТЬ транслятору сообщается, что одни массивы будут использоваться в качестве входных, другие в качестве выходных; по команде ЗА­ КРЫТЬ выполняются операции, завершающие обработку мас­ сивов.

Глаголы ЧИТАТЬ и ПИСАТЬ вводят и выводят логические записи, т. е. по этим командам данные, записанные ранее на ма­ шинные носители, заносятся в оперативную память машины или выводятся из нее.

Программа ввода данных обычно строится так, что после чте­ ния и обработки одной записи возвращаются к чтению следующей записи, и так до тех пор, пока не будут прочитаны и переработаны все записи.

Глагол ОТКРЫТЬ обозначает начало обработки массива или нескольких массивов. Предписание об открытии массивов должно быть сделано раньше предписания ЧИТАТЬ или ПИСАТЬ. Нужно отметить, что каждый массив, упоминаемый в предписании ОТ­ КРЫТЬ, должен быть указан в разделе данных под рубрикой ОМ (описание массивов).

Глаголы ЧИТАТЬ и ПИСАТЬ служат для ввода и вывода за­ писей в машину и из машины.

Глагол ЧИТАТЬ служит для ввода записи из вводимого мас­ сива в оперативную память ЭВМ и делает ее доступной для обра­ ботки, а глагол ПИСАТЬ — для перенесения записи в выводимый массив.

Команды перемещения данных, состоят из глаголов ПЕРЕМЕ­ СТИТЬ и ПРОСМОТРЕТЬ. Глагол ПЕРЕМЕСТИТЬ служит для перемещения данных внутри машины с одного места памяти на

62


другое. Данные в исходном поле при этом сохраняются. При пе­ ремещении должны соблюдаться определенные правила: зоны, в которые происходит перемещение, должны по размерам соответ­ ствовать зонам, из которых происходит перемещение данных. В принимающей зоне можно заменять нули на пробелы, можно поставить десятичные точки и запятые, которые определяют рас­ положение перемещаемого числа.

Для выполнения арифметических операций данные должны быть представлены в цифровом элементарном виде. Данные для

алгебраических операций определяются

с помощью шаблона, и

это означает,

что результат выполнения

операции будет выражен

абсолютными

числами.'

 

Операция ВЫЧИСЛИТЬ производит: сложение чисел с разме­ щением результата в последней операнде., Максимально можно сложить данные десяти операнд. Результатом не может быть опе­

ранда, в которой размещена постоянная

величина (константа):

вычитание нескольких величин из

одного числа

с

размеще­

нием результата, как и при сложении,

в последней

операнде;

умножение двух чисел с определением результата.

Результат

всегда располагается в последней операнде;

 

 

деление одного числа на другое; результат размещается в по­ следней операнде. Остаток от деления в КОБОЛе не может быть использован.

Для всех арифметических операций применяется округление, если, конечно, оно необходимо. Кроме того, возможна проверка делителя на нуль.

КОБОЛ построен на базе английского языка, и запись про­ грамм на КОБОЛе с применением лексики русского языка не­ сколько затруднительна из-за того, что слова КОБОЛа' не скло­ няются и не изменяются по падежам. Но независимо от этих осо­ бенностей программы, написанные на КОБОЛе, в русском варианте могут быть транслированы в язык машины.

Организация ввода данных и вывода их из ЭВМ — одна из са­ мых сложных работ. Для организации этой работы вместе с глаго­ лами ввода и вывода употребляется понятие (артикль) или за­ пись. При обработке данных этот термин означает один элемент или несколько сгруппированных элементов.

 

 

Запись

 

 

9999

99999

999

9999

99999

элемент

элемент

элемент

элемент-

элемент

Примером могут служить данные об объеме продукции, о зара­ ботной плате работающего и т. д. Все данные документа, относя­ щиеся к одному работающему, и будут составлять содержание од­ ной записи. С одного документа, заполненного на работающих, допустим на одном предприятии, формируется массив записей. Та-

ва


ким образом, если в задаче участвует несколько видов документов, создается несколько массивов записей. Массив — последователь­ ность связанных общим отношением артиклей, записанных на об­ щий носитель информации. Массив может быть двух типов: мас­

сив, содержащий

одинаковые

артикли одной

и той же длины и

структуры и массив, составленный из артиклей

переменной длины

и различной структуры.

 

 

Программирование на алгоритмическом языке КОБОЛ рассмот-

трим на примере

конкретной

задачи. Прежде

всего программист

описывает массивы и составляет блок-схему к задаче.

1. Описание массивов. Имеется два массива данных: M l и М2.

В каждом из этих массивов содержится некоторое количество за­ писей определенной структуры. Массив M l состоит из записей (ЗАП 1), содержащих следующие данные:

NI7P

 

 

НАЗВ

 

 

 

 

 

С О —

НЗ

I I I I I I I I 1 I I I I I I I I I I I I I I I 1 I I I I I I I I I I I 1.

где № ПР — шифр продукта

(четырехзначный) ;

 

НАЗВ —наименование продукта

(20 знаков) ;

 

 

СО — остаток на начало периода разработки

(6 знаков);

 

НЗ — нормативные запасы

(6 знаков).

 

 

Массив М2 состоит из записей

(ЗАП 2), содержащих

следующие

данные:

 

 

 

 

 

 

 

 

 

п

 

 

 

 

 

 

 

 

 

 

 

 

NI1P1

 

 

 

 

 

К

 

 

 

Р

I

I

I

I

I

 

I

I

I

I

I

I .

где №

ПР 1 — шифр продукта

(четырехзначный) ;

 

 

К — количество

(5 знаков);

 

 

 

 

 

П — отличительная

отметка

прихода

]

 

 

(Р — отличительная

 

 

 

 

 

} 1 знак.

 

отметка

расхода

)

 

2.

Составление

блок-схемы.

 

Блок-схема

составляется по зара­

нее составленной схеме описания задачи. Предположим, в нашей

схеме заданы такие

условия:

 

 

 

 

1.

Если № ПР и № ПР1 не совпадают, перейти к печати ошибки.

2.

Если в записи

ЗАП2 — код П

(приход),

сделать

сложение:

СО +

К = Н О .

 

 

 

 

 

3. Если в записи

ЗАП2 — код Р

(расход),

сделать

вычитание:

с о -

к = н о ,

 

 

 

 

 

где НО — новый остаток.

 

 

 

 

4.

Если НО НЗ, печатать

«недостача».

 

 

5.

Если НО ^ НЗ, создать

новый

массив МЗ, состоящий из за­

писей т-ипа ЗАП1 (назвать эти записи ЗАП 3).

 

Структура

записи ЗАП 3:

 

 

NnP2

НАЗВ ПР2

НО

Н32

I I I I 1 I I I I I I I I I I [ I I I I I I I I 1 I I 1 I I 1 I I I I I 1

64


где

ПР2 — шифр продукта нового

остатка (четырехзнач­

 

 

ный) ;

 

 

НАЗВ

ПР 2 — наименование продукта

(20 знаков);

 

НО

— новый остаток (6 знаков) ;

 

Н32

—нормативный запас (6 знаков).

Последовательность машинной обработки можно представить в виде блок-схемы (рис. 8).

Рассмотрим каждый блок блок-схемы (нумерация нижеследую­ щих пунктов соответствует нумерации блоков на рис. 8).

Ввод

данных

Р-2

Ордіаноб

М1

и М2

10

 

X

 

да

 

 

Сложение

 

Исследование

на

р.з

11

 

конец

массива

 

 

 

 

со+к=но

 

нет

 

 

 

 

Вычитание

Сравнение

 

 

РА

12

НПР и NI1P1

 

 

НЗ-НО^Д

 

 

I E

 

 

 

 

Печать

 

Сравнение кода

ti

 

 

13

" ~

 

 

 

 

 

"недостача

 

 

 

 

 

 

t

Вычитание

 

 

 

14

Печать

СО-к-'НО

 

 

 

ошидки

 

 

 

 

 

 

 

I

 

 

 

 

Создание

нового

Сравнение НО с Из

 

 

15

 

 

 

 

 

 

массива

МЗ

 

Л

 

 

 

 

 

 

Передать

 

 

 

 

 

 

Передать

 

 

 

 

 

 

НАЗВ-*НАЗвПР2

 

 

 

 

 

Передать

 

 

 

 

 

 

из-*

нзг

 

 

 

 

 

 

Рис. 8. Блок-схема машинной обработки

1.

Массивы M l и

М2 вводятся в

оперативное

запоминающее

устройство (ОЗУ) ЭВМ с магнитных

лент или

магнитных

дисков.

2.

Осуществляется

проверка, весь

массив

M l

и М2

введен

в ОЗУ или нет; если «да», управление передается блоку 10, а если «нет» — блоку 3.

3.

Происходит

сравнение

шифров продуктов в массивах

M l

и М2; в случае неравенства

осуществляется

печать

ошибки

по

блоку

14, а в случае равенства управление передается

блоку 4.

 

4.

Этот блок

определяет

тип введенного

данного «количе-

* о

 

 

 

 

 

65

О З а к а з № 321


ство». Если «количество» имеет код П (приход), то управление

передается блоку 11, в противном случае — блоку

5.

 

 

5.

В этом блоке производится

вычисление нового остатка

(НО)

6.

После того, как вычислен

новый остаток,

он

сравнивается

с нормативным запасом

(НЗ) и затем

в зависимости

от результата

сравнения управление .передается блоку 12 или блоку 7.

 

7—9. Шифр продукта N ПР1, наименование продукта НАЗВ,

величина

нормативного

запаса НЗ из

массива

M l

перемещается в

массив МЗ.

 

 

 

 

 

 

 

10.

По

этому блоку

выполняется

команда

«Останов»

(конец

задачи).

 

 

 

 

 

 

 

 

11.

Сложение остатка

на начало периода разработки СО

(мас­

с и в а м ! )

с количеством

К (массива М2) и получение суммы или

нового остатка НО, после чего осуществляется

переход на блок 15

12.В этом йлоке находят разность между нормативным за­ пасом НЗ и новым остатком НО; когда результат отрицательный, осуществляется переход к блоку 13.

13.Печатается слово «недостача».

14.Печатается ошибка.

15.Формируется новый массив МЗ.

Программа к этой задаче на языке КОБОЛ имеет следующий вид:

РАЗДЕЛ ИДЕНТИФИКАЦИИ . ПРОГРАММА. РАСЧЕТ.

АВТОР. ПЕТРОВ.

ДАТА-НАПИСАНИЯ. НОЯБРЬ 1972 ГОДА. РАЗДЕЛ ОБОРУДОВАНИЯ.

СЕКЦИЯ КОНФИГУРАЦИИ. РАБОЧАЯ-МАШИНА. МИНСК-32. МАШИНА-ТРАНСЛЯТОР. МИНСК-32. СЕКЦИЯ ВВОДА-ВЫВОДА. УПРАВЛЕНИЕ МАССИВАМИ.

ВЫБРАТЬ МАССИВ-1 НАЗНАЧИТЬ МЛ КОД МАССИВА МІ. ВЫБРАТЬ МАССИВ-2 НАЗНАЧИТЬ МЛ КОД МАССИВА М2. ВЫБРАТЬ МАССИВ-ПЕЧАТИ НАЗНАЧИТЬ ПУ.

ВЫБРАТЬ МАССИВ-3 НАЗНАЧИТЬ МЛ КОД МАССИВА МЗ. УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ.

ПРИМЕНИТЬ

СТАНДАРТНАЯ

МОДИФИКАЦИЯ

ДЛЯ M l .

ПРИМЕНИТЬ

СТАНДАРТНАЯ

МОДИФИКАЦИЯ

ДЛЯ

М2.

ПРИМЕНИТЬ

СТАНДАРТНАЯ

МОДИФИКАЦИЯ

ДЛЯ

МЗ:

РАЗДЕЛ ДАННЫХ. СЕКЦИЯ МАССИВОВ.

ОМ M l ЗАПИСЬ ДАННЫХ ЗАП 1

БЛОК С О Д Е Р Ж И Т 10 ЗАПИСЕЙ МЕТКА ЗАПИСИ СТАНДАРТНАЯ.

01ЗАП1.

02 N ПР ШАБЛОН 9 (4).

02 НАЗВ ШАБЛОН X (20).