Файл: Зайцев Н.Г. Информационное и математическое обеспечение АСУП.pdf

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

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

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

Добавлен: 15.07.2024

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

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

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

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

Структуры массивов. При анализе возможных структур массивов будем исходить из принятого выше положения, что в массивах находятся записи только циклической структуры. Тогда возможно два случая построения массивов:

1) в массив включены записи только одинаковой структуры; будем называть такие массивы однородными-,

2) в массив включены различные по структуре запи­ си; назовем такой массив разнородным.

Однородные массивы являются наиболее простыми,

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

Однако в том случае, когда размещение разнородных записей используется для выражения каких-либо связей между ними, перегруппировка недопустима. Именно это

иимеет место на практике, что приводит к необходимо­ сти рассмотрения разнородных массивов. Здесь возмож­

но два случая: 1) если ряд записей содержит группу одинаковых данных, то они могут быть вынесены из записей и объединены в одну запись, которая должна сопутствовать группе укороченных записей; 2) располо­ женные совместно разнородные записи показывают взаимосвязь между ними, например входимость.

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

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

42

попала в один подмассив. При разделении на подмассивы запись разбивают на несколько подзаписей, при этом в каждой из них необходимо указывать идентификатор объекта, к которому она относится. При необходимости всегда можно получить полную запись путем группиро­ вания (воссоединения) всех подзаписей. Разделение на подмассивы удобно тогда, когда объекты характеризу­ ются не полным набором элементов, а лишь частью, т. е. массив заполнен лишь частично.

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

2.СТРУКТУРА ЗАПИСЕЙ

ИПРЕДСТАВЛЕНИЕ В НИХ ДАННЫХ

В памяти машины циклическая структура записи выра­ жается в адресно-кодовой форме. Для размещения каж­ дого элемента выделяется столько места, сколько необ­ ходимо, но не больше. Элемент может занимать ячейку, меньше ячейки и больше ячейки. Дискретность адреса­ ции может быть принята равной 1 биту, 1 символу или 1 ячейке. Поэтому для адресации необходимо указывать адрес ячейки Ак, номер дискретной единицы в ячейке а н и количество п занимаемых элементов дискретных еди­ ниц. Совокупность параметров Ah, аи и п будем называть обобщенным адресом. Обратим внимание на то, что при дискретности адресации, равной 1 ячейке, параметр ан теряет смысл, но длину п необходимо указывать.

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

43


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

Структура массива иллюстрируется схемой, представ­ ленной на рис. 3. На этой схеме каждая запись содержит

 

 

 

 

 

шесть элементов

и зани­

Злеме/нт! |

Эле-

 

мает четыре ячейки.

 

 

 

мент/

 

Злс-

ж

При

размещении

в

ЭлемрнтЗ | Элемент4

 

1

записи числа с плаваю­

 

нентб

 

Элемент6

 

щей

запятой

может

быть

Злемьнт! 1

 

Зле-

Ш

указана

только мантисса.

 

мет г

 

 

й

Порядок числа, одинако­

ЗлемьнтЗ

Элемент4

 

"Зле- г

вый для данного элемента

 

Злемьнт 6

нет о

1

во всех записях, указы­

 

 

 

 

 

вают в описании элемен­

 

 

 

 

та.

Естественно,

что

все

 

 

 

1

значения

чисел

во

 

всех

 

 

 

 

 

 

 

 

записях

 

должны

быть

Элемент1

Эле-

1

приведены к данному по­

ме/1/п2

 

 

1 -

рядку.

Это

может

быть

Злек ентЗ 1

Элемент4

 

 

 

 

 

 

 

 

 

 

i

выполнено

при занесении

1 Элементе

 

\

i

числа в массив. Целое

 

 

 

 

 

число указывают в приня­

Рис. 3. Структура массива.

 

той форме, т. е. младший

 

 

 

 

 

разряд находится в самом

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

Одним из значений элемента должно быть «значение не определено». При машинном представлении данных числовые значения элементов выражают в десятичной системе счисления, если в машине есть устройство деся­ тичной арифметики, и в двоичной — если такого устрой­ ства нет. Текстовые значения элементов представляют в виде текста в коде топэ выходного устройства, через которое они обычно выводятся. В частности, вывод мо­ жет осуществляться на алфавитно-цифровое печатающее устройство 1 ли же на телетайп. В первом случае исполь­ зуют код ГОСТ 10859—64, а во втором — принятый в те­ леграфии международный код М-2.

44


Все сказанное относительно размещения и пред­

ставления справедливо также и для одиночных эле­ ментов.

3. ОПИСАНИЕ СТРУКТУР И ЭЛЕМЕНТОВ ДАННЫХ

При подготовке данных должна быть обеспечена:

1)независимость описания данных от программы;

2)независимость представления данных от способов выражения информации в конкретных типах ЦВМ;

3)полнота набора понятий, достаточная для описа­ ния структуры и характеристик данных.

Первое требование определяется фактом использова­ ния одних и тех же данных различными программами,

а

также подготовкой массивов данных

безотносительно

к

каким-либо конкретным применениям.

Ясно, что с этих

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

Второе требование определяется тем, что представ­ ление данных в массивах должно соответствовать их пониманию человеком. Действительно, данные даже в одной машине могут быть представлены в разных кодах, например в коде М-2 и в коде ГОСТ 10859—64, занимать различное число двоичных разрядов для представления отдельного символа, например 6, 7, 8 и т. п. Поэтому для описания необходимо выбрать стандартную форму представления данных, соответствующую их выражению в печатном виде.

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

45


В связи с этими требованиями целесообразно в общих чертах определить характеристики массивов данных, используемых в АСУП. Массивы представляют собой повторяющиеся последовательности элементов, относя­ щиеся к отдельным объектам. Групп таких объектов, характеризуемых различными последовательностями, может быть любое число. Каждый из элементов имеет определенную область своих значений — количественных (числовых) или качественных (словесных). В человече­ ской деятельности эти массивы отображаются в форме двумерных таблиц, строками которых являются объекты, а позициями — соответствующие последовательности по­ казателей. Числовые элементы относятся к классу раци­ ональных чисел, а словесные значения представляют текст, при этом для общности совокупность нескольких обычных слов считается за одно слово.

Средства описания данных можно разбить на три группы:

базисные понятия, определяющие совокупность аль­ тернатив представления данных;

групповые понятия, позволяющие эффективно описы­ вать группу параметров данных, описываемых целой совокупностью базисных понятий;

вспомогательные понятия, предназначаемые для выра­ жения необязательных, но полезных, аспектов описания данных.

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

В описании массивов данных целесообразно разли­ чать понятия, предназначенные для:

1) выражения структуры данных и организации их группировки;

2) описания характеристик того или иного элемента. Так, в языке «Кобол» к первой группе относятся по­ нятия: «массив», «блок», «запись», «элемент данных»,

46

«группа элементов», «уровень», «индекс». «Элемент данных» — наименьшая единица данных, квант инфор­ мации, с которым оперирует программа как с неделимым целым (во всяком случае, в рамках данного описания). Упорядоченная совокупность элементов, относящихся к одному объекту, образует «запись». Совокупность же записей о родственных объектах составляет «массив». Эти три понятия являются базисными при организа­ ции структуры данных. Вместе они позволяют упоря­ дочить и сгруппировать массивы данных, характерных для АСУП.

При большом количестве элементов и наличии оди­ наковых групп данных для успешного использования массивов необходимо ввести промежуточные единицы группировки. Действительно, в практической деятельности человек обычно оперирует группами элементов. В связи с этим использование понятий «группа элементов» и «уровень» становится необходимым. «Группа элементов» представляет совокупность элементов, связанных между собой по каким-либо признакам, и позволяет оперировать всеми ими одновременно. Соотношение между различ­ ными группами элементов задается расположением их по уровням. Понятие «индекс» дает возможность опре­ делить совокупность одинаковых элементов, позволяя различать их по номеру (индексу).

Понятие «блок» является вспомогательным и исполь­ зуется для ускорения обмена информацией с внешними накопителями. В ЦВМ на магнитных лентах применение понятия «блок» позволяет значительно ускорить время обработки данных и поэтому целесообразно.

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

Запись описывают по ее отдельным составляющим. Элемент или группу элементов описывают при помощи следующих понятий: «уровень», «наименование данных», «класс», «размер», «использование», «со знаком», «точ­ ка», «шаблон», «синхронизирован», «выравнен», «устра­ нение нулей», «пробел», «значение».

47


«Уровень» совместно с «наименованием данных» идентифицирует отдельную группу данных, и указание этих понятий является обязательным. Значения данных могут быть как числовыми, так и словесными. Для ука­ зания их типа и служит понятие «класс». Различаются три класса: буквенный, числовой, буквенно-числовой. Однако автор полагает, что буквенный класс является частным случаем буквенно-числового. Без указания класса даже при условии различения значений по составу знаков нельзя обойтись, так как возможны случаи, когда значе­ ние, состоящее из одних цифр, должно рассматриваться как словесное, например тип станка 1205.

При помощи понятия «размер» указывают длину каждого элемента, что необходимо для распределения памяти. Длину указывают числом печатных знаков, при этом берут максимальное значение этого числа среди всех элементов разных групп данных, если все они опи­ сываются одной данной статьей. Понятие «использова­ ние» носит вспомогательный характер и оказывается полезным, в некоторых случаях несколько ускоряя рабо­ ту программы. Понятие «со знаком» используют для указания знака числовых элементов. Однако его приме­ нение определяется структурой конкретных транслято­ ров. Поскольку все числовые значения в массивах дан­ ных представлены со знаком, при вводе и выводе знак «+ » опускается, поэтому понятие «со знаком» можно не применять. Порядок чисел указывают посредством поня­ тия «точка». Указывают место точки по отношению к правому краю величины, что, по сути дела, равносиль­ но указанию порядка числа. Для целых чисел это поня­ тие пропускается.

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

Правила использования всех этий понятий определя­ ются правилами языка «Кобол». Если же программа пишется на другом языке или непосредственно в машин­ ных кодах, то все понятия можно выразить с соответст-

46

Входной

документ i -й

Входной

документ

2-й

Входной

документ

т

Входной

массив

т

Основной

массив

1-й

Основной

массив

2-й

Основной

массив л-й

Подмассив

Задача

Выходной

Выходной

2-й

2-я

массив

документ

 

 

2-й

2-й

 

 

------------------■

 

Рис. 4. Общая схема организации массивов.