Одномерные массивы в Паскале
До сих пор вам приходилось взаимодействовать со стандартными разновидностями данных, среди которых были целые и логические. Также глубоко изучали вещественный и символьные разновидности.
Как и всякий алгоритм, можно провести программирование, прибегнув к четырем типам, которые считаются базовыми, то есть основными. Но если вы хотите иметь дело с более многообразным миром программирования, вам потребуются более сложные типы данных. Именно такие конструкции, включающие в себя те или иные скалярные типы, принято причислять к категории структур. Что они собой представляют, читайте далее.
Структура представляет собой составной вариант в данных точках. Это некоторый тип, который базируется на основных скалярных. Если строение структуры не меняется, как таковое, причем на протяжении всего периода, пока действует программа, где она описана, можно причислять, указывая структуру категории статической.
Массив, как единотипная составляющая
Массив, вне всякого сомнения, причисляется к категории наиболее распространенных типов структур. Это совокупность элементов, для которой характерно одно свойство — однородность. Ее реализуют почти во всех вариантах программирования, языках, которая используется на сегодняшний день.
Факт! В составе массивов присутствует ограниченное количество элементов. При этом обратите внимание, что компоненты массива характеризуются использованием одного и того же типа, именуемого базовым.
То, что никогда не меняется в составе массива, так это однородность структуры. В нем могут присутствовать такие элементы, как integer, однотипные составляющие другого плана. Но не стоит думать, якобы компоненты рассматриваемого объекта могут включать в себя только скалярные разновидности.
Есть и другая важная особенность, которая традиционно присуща для массива. Она состоит в том, что можно произвольно обращаться практически к любому его важному компоненту. О чём это говорит? Программа способна получать сразу необходимый элемент, следуя порядковому номеру, то есть индексу.
Достаточно часто встречается такой вариант, как целочисленный тип. Но также возможны такие модификации, как символьные, а также другие, не менее известные логические. Как можно было бы описать массив в языке Паскаль? В этом программном языке происходит задача типа массива, где применяется особое слово array, что фактически и указывает на массив. Посмотрим, как осуществляется объявление этого объекта в программе
Type < имя _ типа >= array [ I ] of T;
Английская буква I указывает здесь на тип индекса, который традиционно присущ массиву. Большая буква Т указывает на конкретную разновидность составляющих массива. Вы имеете возможность описывать одновременно переменные типы массивов, то есть непосредственно в разделе, где описываются переменные. Выглядит это таким образом:
Var a,b: array [ I ] of T;
В большинстве случаев предусматривается небольшой диапазон, позволяющий характеризовать тип индекса. Это касается значений, имеющих место в отношении любого порядкового типа. Допустим, могут иметь место изменения в диапазоне от 1 до 20 в отношении индексов. При этом можно охарактеризовать длину массива pascal, используя следующее выражение:
ord ( I n )- ord ( I 1 )+1.
Есть ещё другой вариант объявления, которая актуален для двух типов:
Type
Vector=array [1..10] of integer;
Stroka=array [0..255] of char;
Здесь обратите внимание, что вектор выступает в варианте массива pascal, где отмечается 10 целых чисел. В то же время в виде массива 256 символов оказывается stroka.
Прибегнув к использованию индекса массива, можно периодически обращаться к тем или иным элементам любого объекта, представляющего из себя массив, как к стандартной переменной. Это означает, что вы можете получить значение рассматриваемого компонента, причислять к нему то или иное значение по отдельности, либо задействовать его выражениях. Как описать переменные, о которых мы говорили с вами ранее? Имеются в виду разновидности vector и stroka:
Var a: vector;
c: stroka;
Впоследствии в программе мы можем делать то же самое, но обратиться к отдельным компонентам массива, среди которых числятся a или c.
Проводим вычисления по индексу массива Паскаль
Важная ремарка касается того, что индекс массива необязательно формировать в явном варианте. В качестве этой роли может выступать выражение, которое соответствует по своим параметрам индексам или задействовать переменную.
Другими словами, у любого программиста есть возможность вычисления индекса. Рассматриваемый нами с вами механизм можно считать достаточно серьезным средством программирования. Но он может провоцировать неблагоприятные явления и влечь за собой распространенную ошибку. Она касается результатов вычислений. В результате наших с вами действий интервала допустимых значений индекса может оказаться за пределами допустимых показателей.
Что это означает на практике? Это говорит о том, что будет осуществляться попытка направиться к элементу, которого по факту не обнаружено.
Приведем распространенный пример такой ошибки:
Program primer _ error ;
Type
vector=array [1..80] of word;
var
n: integer;
a: vector;
begin
n:=45;
a[n*2]:=25;
end .
Как мы можем посмотреть, программа полностью соответствует синтаксическим особенностям языка, а потому система пропускает её. Несмотря на это, как только мы перейдём к стадии выполнения, нам будут выдавать ошибку из-за того, что мы выйдем за пределы массива Pascal.
Если выражение составит N равная 45, при показателе n *2=90 компьютер попытается обращаться к элементу массива под названием a [90]. Проблема будет заключаться в том, что такого элемента не будет в наличии, потому что перед этим был описан массив, размерность которого равна 80.
Можно только надеяться, что качественное программное обеспечение выдаст предупреждение, если производится попытка поиска несуществующих элементов массива. Но не забывайте проверять вероятные выходы как за левую, так и за правую границы массива.
Нельзя исключать необходимость такого подхода, потому что как итог, можно будет получить после подсчета число, расположенное левее границы.
Какой вывод можно сделать на основе вышесказанного? Каждый программист должен проявлять аккуратность, взаимодействуя с индексами массива.
Перечень основных манипуляций
Общеизвестным фактом выступает то, что под определением типа данных следует понимать лимитирование области возможных значений. Также здесь можно подразумевать набор тех или иных операций, которые являются допустимыми в отношении рассматриваемых информационных данных.
Нам удалось определить тип данных, который носит название массива Pascal. Но какие операции можно определять, в качестве таковых? Единственный вариант действий, который является допустимым при взаимодействии с массивом целиком, это присваивание. При этом важным нюансом является то, что это возможно при однотипности массива. К примеру, если в программе указываются две переменные, принадлежащие к одному и тому же типу. Как это выглядит на практике:
Var
a , b : array [1..10] of real ;
Производим ввод данных
Если вам предстоит вводить значение элементов, сначала поменяйте значение индекса, причем делайте это обязательно последовательно. То есть следует переходить от первого и постепенно идти к последнему, введя подходящие для этого элементы.
Чтобы реализовать данные действия с комфортом и без сложностей, надо использовать цикл с тем или иным заданным числом повторений. Такой цикл называется ещё и простым арифметическим. Здесь параметр цикла и играет роль переменной. Она же и есть индекс массива в программном языке Паскаль.
Значение, присущие этим элементам, могут вводиться посредством труда оператора присваивания либо непосредственно с клавиатуры.