Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 82
Скачиваний: 0
индексов и скобок. Д л я непрограммиста а б з а ц представ ляется более естественным изображением цикла индек сации, которому он может быть обучен без упоминания
слов индекс, |
цикл |
или гнездо. Некоторые терминальные |
устройства. |
та>к ж е |
как pura M A C H 10, имеют кодовую |
клавишу, которая может быть использована для сигна лизации об абзацах .
Полученный в рассматриваемом примере подфайл FIL'El состоит из выбранных полных записей, следова тельно, аргументом функции SORT может служить имя любого поля внутри записи ф а й л а , относящегося к за
просу. |
И м я |
это может и не оказаться среди имен, |
поме |
|||
ченных |
в р а з д е л е Условие. Например, возможна |
т а к а я |
||||
строка: F I L E 2 = SIRT SS |
LYLBER; в |
этом случае |
файл |
|||
FILE2 строится по порядку номеров социального инди |
||||||
видуального |
страхования. |
З а м е т и м |
т а к ж е , |
что |
FILE2 |
|
в этом примере состоял из полных |
записей |
и |
раздел |
|||
Условие не |
с о д е р ж а л требования какой-либо |
специфиче |
||||
ской выборки элементов данных . |
|
|
|
|||
Р а з д е л |
Выходной ф о р м а т д о л ж е н иметь |
непосред |
||||
ственную и |
простую процедуру построчного |
редактиро |
вания, д л я которой пользователь указывает строку или
начало |
последовательности |
строк, на |
которых д о л ж н ы |
||
быть |
размещены |
различные |
заголовки и данные. Запись |
||
( L I ) |
на |
рис. 4-2 |
означает |
1-ю строку. |
Операция TAB |
принадлежит к функциям процессора запроса . Его ис полнение вызывает табуляцию указанного числа пробе
лов, в нашем случае 20. |
Алфавитно - цифровая информа |
||||
ция, взятая в |
кавычки, |
д о л ж н а быть |
отпечатана |
бук |
|
вально. Таким |
образом, |
цель первого |
ответа |
состоит |
|
в изображении |
слов PROGRAMMER |
L I S T I N G |
на |
1-й |
строке дисплея, начиная с 20-й позиции. Второй ответ С указывает на то, что изображение должно начаться с 3-й строки и занять столько строк (L3F), сколько необходи мо д л я выполнения последующей команды печати. Функ
ция W H O L E |
RECORD означает отсутствие |
выборки |
дан |
|||
ных, |
т. е. что |
и з о б р а ж е н д о л ж е н |
быть весь |
ф а й л |
с |
мет |
кой |
FILE2 с |
использованием для |
каждой |
записи |
|
ранее |
размещенного ф о р м а т а изображения . При этом, естест
венно, необходимо убедиться, что любой аргумент |
(в на |
шем случае FILE2) функции W H O L E RECORD |
ранее |
определен в запросе. В нашем случае это сделано при
описании межзаписной обработки, когда F I L E 2 |
опреде |
лен как операция сортировки по AGE F I L E 1 , |
который |
77
AQT 1, PRIORITY I, FA 1234
R E T R I E V E AND REPORT
OUTPUT D E V I C E
TYP
DATA CONDITIONS
D! (PROCUREMENT ACTION.LT.5)
D2(BUS1NESS TYPE = J)
D3(D2* = K)
|
PROCESSING |
|
|
|
|
|
|
|
|
|
||
|
INTRA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F I L E 1 = D1 AND |
D2 |
|
|
|
|
|
|||
|
|
|
F I L E 2 = ( ~ D I |
AND (D2 OR |
D3) |
|
|
|
||||
|
|
INTER |
|
|
|
|
|
|
|
|
|
|
|
|
|
FOR |
F I L E 1 |
|
|
|
|
|
|
|
|
|
|
|
|
T O T A L L Y |
Dl |
|
|
|
|
|
||
|
|
|
|
S1 = SUM ACTION AMOUNT |
|
|
||||||
|
|
|
FOR |
F I L E 2 |
|
|
|
|
|
|
|
|
|
|
|
F I L E |
3 = SORT DI* |
|
|
|
|
|
|||
|
|
|
FOR |
F I L E |
3, SAME DI* |
|
|
|
|
|||
|
|
|
|
T2=TALLY |
|
|
|
|
|
|
||
|
|
|
|
S2=SUM ACTION AMOUNT |
|
|
||||||
|
|
|
|
PRINT (1) |
|
|
|
|
|
|
||
|
|
Рис. 4-3. Образец запроса 2. |
|
|
|
|
||||||
в свою очередь определяется логической |
функцией |
вну- |
||||||||||
тіризаписной |
обработки. |
|
|
|
|
|
|
|
|
|||
На рис. 4-3 представлен несколько более сложный |
||||||||||||
пример. У к а з а н ы |
три |
типа |
условий. |
Первое |
из |
них |
||||||
PROCUREMENT |
A C T I O N < б |
(при этом |
предполагает |
|||||||||
ся, |
что значения |
PROCUREMENT A C T I O N д л я |
задан |
|||||||||
ного |
типа записи |
закодированы |
как |
числа); |
второе — |
|||||||
BUSINESS |
T Y P E = / . |
третье — BUSINESS |
TYPE = К. |
|||||||||
В действительности, следует ожидать, что значение |
поля |
|||||||||||
данных (ключа или классификатора) |
под |
именем |
PRO |
|||||||||
C U R E M E N T A C T I O N представляет собой |
выражение на |
|||||||||||
естественном |
языке типа |
T E R M I N A T I O N , |
A D D I T I O N A L |
|||||||||
TASK, C H A N G E |
OF SCOPE и т. д. Однако |
из |
сообра |
жений экономии памяти эти термины часто бывает по лезно кодировать целыми числами. К а к показано в этом
примере, |
если |
коды классифицированы и сгруппирова |
ны, они |
могут |
облегчить поиск (предполагается, что все |
поставки с присвоенным кодом менее пяти весьма инте ресуют пользователя) . В нашем примере они представ ляют новый тип контрактов (NEW CONTRACT TYPES) 78
в противоположность модифицированным типам кон
трактов. Внутри записи можно кодировать |
как Имена, |
так и Значения . В любом случае желательно |
разрешить |
пользователю специфицировать или название на естест
венном |
языке, |
или |
код |
Имени или Значения . Это |
требу |
|||||||||||||||||
ет составления таблицы |
перевода |
из естественного |
языка |
|||||||||||||||||||
в код, а если, кроме того, желательно |
получить изобра |
|||||||||||||||||||||
жение на естественном языке с входных |
кодированных |
|||||||||||||||||||||
записей, то |
и ' о б р а т н о й |
таблицы |
перевода. |
|
|
|
||||||||||||||||
|
Внутризаписная |
функция |
|
Обработки |
вызовет |
созда |
||||||||||||||||
ние |
двух |
ф а й л о в : |
одного |
из |
них |
из |
Dl |
Ç]D2, |
а другого |
|||||||||||||
из D2\JD3 |
|
f) |
Dl. |
Другими |
словами, F I L E 1 объединит две |
|||||||||||||||||
поставки |
с кодом, меньшим 5 типа |
|
/ , |
a FILE2 — с .кодом, |
||||||||||||||||||
большим или равным 5, н типом / или |
К. М е ж з а п и с н а я |
|||||||||||||||||||||
обработка состоит в следующем: д л я всех записей |
FIL'El |
|||||||||||||||||||||
производится |
|
подсчет |
|
( T A L L Y ) тех |
записей, |
д л я |
кото |
|||||||||||||||
рых PROCUREMENT A C T I O N меньше |
5 |
(т. е. DJ). |
Ре |
|||||||||||||||||||
зультат подсчета |
(TALLY) |
хранится |
в |
буферной |
памяти |
|||||||||||||||||
с |
меткой |
|
Tl. |
|
Поскольку |
FIL'El |
|
создан |
конъюнкцией |
|||||||||||||
DJ |
Г] D2, |
то очевидно, что TJ содержит |
общее |
число |
за |
|||||||||||||||||
писей |
F I L E 1 , |
|
потому |
что |
к а ж д а я |
|
запись |
удовлетворяет |
||||||||||||||
D1, |
|
в то время как, например, |
T A L L Y по |
D2 д л я |
FLLE2, |
|||||||||||||||||
вообще говоря, не будет подсчетом общего числа |
за |
|||||||||||||||||||||
писей д л я |
FILE2 . Аналогично, д л я |
|
каждой записи |
FILE1 |
||||||||||||||||||
суммируются |
|
значения |
поля |
|
A C T I O N |
A M O U N T , |
а |
эта |
||||||||||||||
сумма |
помещается |
в S1. Д л я |
|
всех |
записей FILE2 |
созда |
||||||||||||||||
ется |
третий |
ф а й л |
с |
|
меткой |
FILE3, |
представляющий |
|||||||||||||||
собой |
сортировку |
SORT |
(FILE2) |
|
по |
PROCUREMENT |
||||||||||||||||
A C T I O N |
(Dl*). |
|
После |
этого |
д л я |
всех записей |
FILE3, |
|||||||||||||||
имеющих одинаковые значения PROCUREMEN T A C T I |
||||||||||||||||||||||
ON, |
производится |
подсчет — T A L L Y |
и |
результат |
поме |
|||||||||||||||||
щается |
в |
Т2, |
|
а |
сумма |
|
соответствующих A C T I O N |
A M O |
||||||||||||||
UNTS |
подсчитывается |
и |
помещается |
в |
S2. |
Функция |
||||||||||||||||
T A L L Y без |
аргумента |
интерпретируется |
как п р и л о ж и м а я |
|||||||||||||||||||
ко всем записям, находящимся под управлением |
опера |
|||||||||||||||||||||
тора FOR, |
в то время |
как |
T A L L Y |
с аргументом в ы р а ж а |
||||||||||||||||||
ет подсчет только тех записей, которые |
удовлетворяют |
|||||||||||||||||||||
аргументу. |
Таким |
образом, |
предыдущее |
высказывание |
||||||||||||||||||
T A L L Y Dl |
|
могло |
бы |
|
быть |
благодаря |
определению |
|||||||||||||||
FILE1 |
просто |
|
T A L L Y . |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Д а л е е |
исполнится |
спецификация |
печати, |
обозначен |
|||||||||||||||||
ная |
(1). |
Это |
|
высказывание |
находится |
в |
разделе |
выход |
ной формат и будет рассмотрено вместе с другими вы сказываниями этого раздела .
79
В |
некоторых языках |
запроса высказывания |
отно |
|||||
сительно ф о р м а т а выходных данных |
перемешаны с вы |
|||||||
сказываниями д л я обработки, однако |
в |
описываемом |
||||||
прототипе в |
целях иллюстрации работы блока обработ |
|||||||
ки в |
чистом |
виде |
эти |
две |
функции |
четко |
разделены. |
|
Более |
того, |
такое |
разделение может |
оказаться |
вполне |
|||
оправданным |
с инженерно-психологической точки зре |
|||||||
ния, потому |
что при продумывании вопросов обработки |
|||||||
информации |
человек |
обычно знает, какие данные и когда |
сн хочет получить, но задумываться об уточнении фор матов не хочет. Следовательно, введение минимальных указаний с меткой, позволяющей вести дальнейшую об
работку, может |
оказаться |
более предпочтительным. |
||
Н а |
принятом |
языке вводится высказывание PRINT (п), |
||
что |
означает, |
что |
данные |
будут напечатаны согласно |
форматному высказыванию, имеющему метку п в разде ле Выходной формат . FILE3 в приведенном примере, во обще говоря, состоит из некоторого числа групп, отсор
тированных но |
равным значениям |
PROCUREMENT |
||
A C T I O N (PROCUREMENT |
A C T I O N |
5, |
PROCURE |
|
M E N T A C T I O N |
6 и т. д . ) . |
Следовательно, |
три послед |
них высказывания следует повторить д л я каждой такой группы. Н а языке формирования документов эти группы различных эквивалентных решений внутри ключа сор
тировки |
называют |
сечениями. Обработка |
высказывания |
|||||
FOR |
FILE2 т а к ж е |
демонстрирует интересную особен |
||||||
ность |
во |
взаимодействии человек — машина . Л ю д и , |
при |
|||||
выкшие |
работать |
над |
составлением |
документов |
или |
|||
использующие их, |
знают, что |
наиболее |
эффективный |
|||||
способ |
классификации |
сечений |
состоит |
в |
предваритель |
ной сортировке файла, собирающей одинаковые ключе
вые значения внутри |
сортируемой |
последовательности. |
||||
Разумеется, |
здравый |
смысл |
подсказывал |
бы |
т а к у ю ж е |
|
процедуру. |
Следовательно, |
в целях увеличения эффек |
||||
тивности обработки естественно |
поместить |
высказыва |
||||
ние FILE3='SORT Dl* |
по классификации |
сечений, хотя |
подсчет можно осуществить без. сортировки с помощью одной только функции T 2 = T A L L Y S A M E Dl*. Э т а про цедура, однако, потребовала бы либо многократных про ходов по файлу FILE2, либо встроенной сортировки д л я функции SAME .
Н а |
рис. |
4-4 изображается в о з м о ж н а я |
форма доку |
||
мента, |
полученная в |
соответствии с выходным |
форматом |
||
(рис. 4-5). |
Ответ без |
метки начинается с |
1-й |
строки за- |
80