Урок 16

Одномерные массивы.

Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные (логически однородные) элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве.

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

Данные в ячейках называются элементами массива. Все элементы пронумерованы по порядку, и этот номер называется индексом элемента массива.

Все элементы массива имеют один и тот же тип. Сам массив при этом имеет имя - одно для всех элементов. Для обращения к конкретному элементу массива необходимо указать имя массива и (в квадратных скобках) индекс элемента.

Простейший вид массива - одномерный массив.

А - имя массива, числа в клетках таблицы - элементы массива.

В записи А [ 3 ] = -8 :

Массив называется регулярным типом, потому что в нем объединены логически однородные элементы, упорядоченные по индексам, определяющим положение каждого элемента в массиве. Количество размерностей (индексов, координат), необходимых для обращения к элементу массива, является ключевой характеристикой массива.

Размер массива - общее число элементов массива. Размер массива задается при описании типа массива. Если одномерный массив "=" array [n1 .. n2]  of  <Тип>, то его размер равен n2 - n1 + 1. Размер многомерного массива равен произведению размеров образующих его одномерных массивов.

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

Описание (объявление) массива.

Одномерный массив.

Например, 1) Var  A : array [1 .. 10] of  integer;

                      2) Type

                                     Mas = array [1 .. 10]  of  integer;

                           Var  A : Mas;

                        3) Const  N=5;

                             A : Array  [1 .. N]  of   integer = (-8,0,4,1,3);

Способы заполнения одномерных массивов

For i := 1  to  n  do  Read ( A [ i ] );

3. Ввод массива оператором случайных чисел Random на интервале

[ a ; b ]

For i :=1  to n do A [ i ] := Random (b-a+1)+a;

( a ; b )

For i :=1  to n do A [ i ] := Random (b-a)+a;

4. Ввод массива в разделе констант (производится вместе с объявлением). Например:

Const  N=5;

      A : Array [1 .. N]  of  integer = (-8, 0, 4, 1, 3);

5. Способ заполнения массива − чтение значений элементов из файла. Можно заранее создать ти­пизированный файл одномерных массивов (например, по тридцать элементов), а затем считывать из него сразу целый массив. Воспользуемся текстовым файлом, так как его создавать намного удобнее. Пусть в файле записано несколько строк, а в каждой из них по 30 целых чисел. Тогда вся программа может быть такой:

Program Example_91;

Const n=30; {Количество элементов массива}

        Type myarray = Array [1 .. nof  Integer;

Var    a : myarray;

            F :  text;

Procedure Init3 (Var m : myarray); {Процедура заполнения (инициализации) массива}

Var i : Integer;

Begin

             For i := 1  To  n Do Read ( f, m [ i ]) {Чтение из файла очередного числа}

End;

Procedure Print (m : myarray);  {Процедура вывода (распечатки) массива}  {Вывод массива}

Var i : Integer;

Begin

           For i := 1 To n Do Write (m [ i ] : 3);  {Вывод i-гo элемента}

            Writeln;

End;

Begin {Связываем файловую переменную с файлом на диске}

           Assign (F, 'путь\имя файла');

           Reset ( F ); {Открываем файл для чтения}

            While  Not   EOf  (FDo

             Begin {Считываем очередную строку}

                          Init3 (А); {Обращение к процедуре заполнения массива}

                          Print ( A ); {Обращение к процедуре вывода}

                           Readln ( F );

             End;

              Close ( F ); Readln;

End.

Вывод одномерного массива

В строку

For  := 1  to  n  do  Write (a [ i ],'  ');

В столбец

For i :=1  to  n  do  Writeln (a [ i ]);

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

массив.pdf

    Домашнее задание: §2.2