Cтраница 3
Массив чисел обозначается своим идентификатором, первая буква которого указывает на тип его элементов. Отдельные элементы массива определяются идентификатором массива, за которым следует список индексов, заключенных в скобках. [31]
Это данное обрабатывается как любая другая переменная в системе SAIL. В частности, если данное есть массив, то необходимо задать список индексов для выборки нужного элемента массива. [32]
Поскольку операции с массивами сводятся к операциям с их элементами, возникает необходимость идентифицировать отдельные элементы массивов. Чтобы сослаться на некоторый элемент массива, записывают имя массива и заключенный в скобки список индексов, отделяемых запятыми. Например, Х ( 5) означает 5 - й элемент одномерного массива X; А ( 3, 4) - элемент двумерного массива А, находящийся на пересечении 3 - й строки 4-го столбца. [33]
Если в качестве значения объекта выступает некоторое конечное множество чисел или логических значений, то для обозначения каждой компоненты этого объекта используется переменная с индексами. Запись переменной с индексами состоит из идентификатора, за которым следует заключенный в квадратные скобки список индексов, представленный одним или несколькими арифметическими выражениями ( в частном случае просто идентификаторами), разделенными запятыми. [34]
Доступ к элементам массива осуществляется обычным образом с помощью индексов. Для структур ( неоднородных массивов) используется синтаксическая конструкция, состоящая из имени структуры и списка индексов, разделенных точками. [35]
Для указания какой-либо компоненты массива служит переменная с индексами. Запись переменной с индексами состоит из обозначения массива, за которым следует заключенный в квадратные скобки список индексов. Этот список состоит из одного или нескольких арифметических выражений, разделенных запятыми. Число арифметических выражений, называемых индексными, должно быть равно числу граничных пар в описании массива. В ГАЛГОЛе разрешается удаление квадратных скобок с одновременным понижением списка индексов. [36]
Индексация для управления очередью последовательного типа может быть применена и так, как показано на фиг. Как и в предыдущем случае индексации, управляющие слова не закрепляются за блоками памяти, содержащими элементы из очереди, а собираются в отдельный список индексов. Алгоритмы ввода элементов в очередь и вывода их из нее несколько сложнее, поскольку список индексов обычно имеет фиксированную длину. Существует два способа управления списком индексов. Во-первых, всякий раз, когда элемент выводится из очереди, управляющие слова, связанные с остальными элементами очереди, могут смещаться так, чтобы первое слово списка индексов всегда содержало адрес элемента в начале очереди. Во-вторых, можно позволить указателю оборачиваться: когда ячейка в индексном списке заполняется, следующий ввод делается в первую ячейку указателя, поскольку предполагается, что элемент, представляемый первой позицией, уже ушел из очереди. [37]
В фортране предусмотрено два способа структурирования данных: бесструктурное скалярное значение ( простая переменная) и прямоугольный массив значений, элементами которого служат скалярные значения, - элементы массива можно выбирать из него, задавая список индексов. Понятно, что такие структуры фортрана оказываются слишком бедными для решения заданий, связанных с обработкой сложных структур данных. В принципе, однако, любые специфические структуры удается отобразить нч массивы, но такое отображение во многих случаях требует изобретательности и может существенно усложнить решение задания. [38]
Сохранение информации, на каком томе находится отдельный файл, является трудоемкой работой и часто служит источником ошибок. Чтобы облегчить решение этой проблемы, управление данными предусматривает автоматическую каталогизацию файлов. Каталог файлов состоит из списка индексов типа дерева и хранится на устройстве с произвольным доступом. Вместе с последним уровнем дерева хранится информация о типе устройства и номере тома, в котором находится файл, порядковый номер файла. [39]
В эталонном АЛГОЛе допускаются массивы любой размерности. Элементу массива в программе соответствует переменная с индексами. Запись такой переменной кроме идентификатора массива содержит список индексов, заключенный в квадратные ( индексные) скобки. Количество индексов равно размерности массива, а их значения определяют место элемента в массиве. Например, переменная Х [8] соответствует восьмому элементу некоторого массива X, переменная а [3, 5] - элементу, находящемуся на пересечении 3 - й строки и 5-го столбца массива а, если рассматривать его как прямоугольную матрицу. [40]
Согласно первому подходу для пополнения списка активных индексов нужно воспользоваться командой SET INDEX TO. При этом следует иметь в виду, что расширение списка активных индексов может привести к порче последнего из открывавшихся индексов в случае корректировки значений его ключа. [41]
Примеры переменных с индексами: Q [7,2] alii di ] d [ i, / I temp [ A l, i f 2 0 ] В алголе массивы состоят из переменных значений, которые могут ( но не обязаны) изменяться в процессе счета. Эти значения называются элементами массива. Для идентификации элемента употребляется имя массива перед квадратными скобками и список индексов элемента внутри скобок. Программист сам выбирает способ нумерации элементов. Точнее говоря, элементы по каждому измерению нумеруются подряд, но номер первого элемента выбирается произвольно. В определенном месте алгол-программы должно быть описание каждого используемого массива. Описание массива содержит идентификатор этого массива и информацию о границах изменения индексов элементов. [42]
Индексация для управления очередью последовательного типа может быть применена и так, как показано на фиг. Как и в предыдущем случае индексации, управляющие слова не закрепляются за блоками памяти, содержащими элементы из очереди, а собираются в отдельный список индексов. Алгоритмы ввода элементов в очередь и вывода их из нее несколько сложнее, поскольку список индексов обычно имеет фиксированную длину. Существует два способа управления списком индексов. Во-первых, всякий раз, когда элемент выводится из очереди, управляющие слова, связанные с остальными элементами очереди, могут смещаться так, чтобы первое слово списка индексов всегда содержало адрес элемента в начале очереди. Во-вторых, можно позволить указателю оборачиваться: когда ячейка в индексном списке заполняется, следующий ввод делается в первую ячейку указателя, поскольку предполагается, что элемент, представляемый первой позицией, уже ушел из очереди. [43]
Элемент массива называется переменной с индексом. Общий идентификатор всех величин, входящих в состав массива, называется идентификатором массива. Массив обозначается записью, состоящей из идентификатора массива и следующего за - ним заключенного в индексные ( круглые) скобки списка индексов, число которых не превышает семи. Индексы записываются в виде индексных выражений, каждое из которых может иметь одну из следующих форм: а х - - Ь, а х - Ь, а х, х - - Ь, х - Ь, х, Ь, где а и b - целые числа без знака, х-простая переменная целого типа. [44]
Для имен массивов действуют те же соглашения, что и для переменных. Обращение ко всему массиву осуществляется по его имени, а к отдельным элементам - по имени массива, за которым в скобках следует список индексов. [45]