Массивы в Паскале — это место хранения информационных данных и при этом все хранимые величины обладают собственным индексом, позволяющим выполнить обращение к ней.
Введение
Когда программа использует большое число информационных данных одного типа, то для удобства работы с этой информацией применяются массивы. Массив представляется набором ячеек памяти, хранящих информацию одного типа. Имеется только одно имя переменной, которое соотносится с этим массивом, а чтобы обратиться к информации, находящейся в определённой ячейке, нужно указать её индекс, который является её порядковым номером в массиве. Следует ещё раз заметить, что индекс ячейки массива — это не информация, хранящаяся в ней, а лишь указатель на их местоположение. Операции с массивами в программе выполняются путём указания имени переменной, которая связана с участком памяти, отведённым для массива. Подведём итоги. Массив выступает поименованной группой данных одного типа, которые хранятся в поочерёдном наборе ячеек памяти. В любой ячейке находится один элемент массива. Элементы имеют порядковые номера, которые могут начинаться и не с единицы и порядковый номер компонента массива именуется его индексом. У различных массивов типы, хранящихся в них информационных данных, могут быть разными. К примеру, у одного массива данными могут быть числа типа integer, а у другого тоже числа, но типа real. Индексами компонентов массивов, как правило, являются целые числа, но возможно и применение символов или других типов данных. То есть в качестве индекса допускается применять тип, в котором определяется дискретный набор величин, и все эти величины возможно сосчитать в порядке очерёдности. Индексация может выполняться константами и переменными, а также при помощи выражений, итог расчётов по которым даст величину нужного типа. Если индекс массива способен принимать все разрешённые значения заданного допустимого типа, то когда выполняется описание массива можно задавать имя типа, а не границы допустимых значений индекса. В этом случае в качестве индексных границ будут использованы начальное и конечное значения описанного индексного типа. Кроме того, граничные значения индексации возможно задавать при посредстве ранее определённых констант.
Индекс массива
Как указывалось выше, индексом является нумерация компонента массива, то есть индекс является величиной порядкового типа, которая определяется как тип индекса указанного массива. Достаточно часто индекс имеет тип целого числа (ìnteger, word или byte), но бывает и тип логики или символа. В языке Паскаль тип массива определяется с применением словесной формулировки array (что означает массив), и в программе он может быть объявлен так:
Type = array [ I ] of T;
Здесь I является типом индекса массива, T является типом его компонентов. Возможно сразу описать переменные типа массив, то есть в подразделе, где описываются переменные:
Var a,b: array [ I ] of T;
Как правило, тип индекса сопровождается некими границами допустимых значений выбранного порядкового типа: I 1 .. I n. К примеру, границами индекса может быть диапазон от единицы до двадцати или от «а» до «n». При том, что размеры массива в Паскале определяются так:
ord ( I n )- ord ( I 1 )+1.
Приведём пример объявления двух типов: vector как массив в Паскале из десяти целочисленных элементов и stroka как массив, состоящий из двухсот пятидесяти шести символьных значений:
Type
Vector=array [1..10] of ìnteger;
Stroka=array [0..255] of char;
При помощи индекса массива имеется возможность обратиться к каждому компоненту любых массивов, как к выбранной переменной. Также возможно выбирать значение выбранного компонента, назначать для него нужные значения, применять его в формулах. Приведём описание переменных типа vector и stroka^
Var a: vector;
c: stroka;
Затем в программе можно выполнять обращение к нужным компонентам массива а или с. К примеру, таким образом:
a [5]:=23; c [1]:=' w '; a [7]:= a [5]*2; wrìteln ( c [1], c [3]).
Индексацию массива в Паскале возможно задать и в неявной форме. Определить индекс массива возможно при помощи переменной или выражения, которое соответствует типу индекса. Это означает, что индекс может быть вычислен. Такой инструментарий является мощнейшим средством при программировании. Но вместе с тем он может быть источником ошибок. Если итог расчётов индекса выйдет за пределы его допустимых границ, то это будет воспринято как обращение к компоненту, которого нет. Эта типовая ошибка имеет название «выход за границы массива».
Массивы в Паскале
До задания массива, нужно заранее выполнить объявление типа массива в подразделе, где описываются типы. Задать массив в Паскале возможно разными методами:
Рисунок 1. Программа. Автор24 — интернет-биржа студенческих работ
Обратиться к нужному компоненту массива возможно, указав имя переменной массива и указав индекс компонента в квадратных скобках. Одномерный массив простой по своей организации и является линейной структурой.
Рисунок 2. Программа. Автор24 — интернет-биржа студенческих работ
В данном примере выполняется выделение памяти для массива из одиннадцати символов. Они получают индексацию от единицы до одиннадцати. При выполнении данной программы, пользователю необходимо ввести одиннадцать каких-либо символов (к примеру, e,r,h,l,u,y,b,4,5,6,7,0), которые будут записаны в память. Текущая величина переменной I в цикле for применяется как индекс массива. Во втором цикле for выполняется вывод информации на дисплей. Функция sìzeof, обращённая к наименованию массива или наименованию его типа, выполняет возврат числа байт, которое отводится для массива.
Приведём пример программы на Паскале, которая приводит к ошибке массива.
Рисунок 3. Программа. Автор24 — интернет-биржа студенческих работ
В этом примере программа выдерживает правила синтаксиса Паскаля, и программа трансляции обработает её. Но при её запуске на компьютере появится ошибка ухода за границы массива Паскаля. Когда n будет равно сорока пяти, вычисление произведения n *2 даст результат девяносто, компьютер попытается сделать обращение к компоненту массива a [90], которого не существует, так как размер массива равен восьмидесяти.