Урок 16
Одномерные массивы.
Урок 6. Одномерные массивы целых чисел
Интерактивные тесты
Ссылки на ресурсы ЕК ЦОР
демонстрация «Описание и ввод значений в массив в программе на Паскале» (126153)
демонстрация «Цикл с параметром в алгоритме обработки массива» (126791)
Ссылки на ресурсы ФЦИОР:
Ссылки на свободно распространяемое программное обеспечение:
Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные (логически однородные) элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве.
Массив - совокупность однотипных данных, хранящихся в последовательных ячейках памяти и имеющих общее имя.
Данные в ячейках называются элементами массива. Все элементы пронумерованы по порядку, и этот номер называется индексом элемента массива.
Все элементы массива имеют один и тот же тип. Сам массив при этом имеет имя - одно для всех элементов. Для обращения к конкретному элементу массива необходимо указать имя массива и (в квадратных скобках) индекс элемента.
Простейший вид массива - одномерный массив.
А - имя массива, числа в клетках таблицы - элементы массива.
В записи А [ 3 ] = -8 :
A - имя массива,
3 - номер элемента массива (индекс),
А [ 3 ] - обозначение третьего элемента массива,
-8 - значение третьего элемента массива.
Массив называется регулярным типом, потому что в нем объединены логически однородные элементы, упорядоченные по индексам, определяющим положение каждого элемента в массиве. Количество размерностей (индексов, координат), необходимых для обращения к элементу массива, является ключевой характеристикой массива.
Размер массива - общее число элементов массива. Размер массива задается при описании типа массива. Если одномерный массив "=" array [n1 .. n2] of <Тип>, то его размер равен n2 - n1 + 1. Размер многомерного массива равен произведению размеров образующих его одномерных массивов.
! Количество элементов массива должно быть фиксированным, то есть определяться при трансляции программы.
Описание (объявление) массива.
Одномерный массив.
В разделе переменных Var <имя массива> : Array [<тип индекса>] of <тип элементов>;
В разделе описания типов Type <имя типа> = Array [<тип индекса>] of <тип элементов> ; Var <имя массива> : <имя типа>;
В разделе констант Const <имя массива> : Array [<тип индекса>] of <тип элементов> = (<список элементов>);
Например, 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 A [ i ] := <выражение>;
Ввод массива с клавиатуры оператором Read.
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 .. n] of 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 (F) Do
Begin {Считываем очередную строку}
Init3 (А); {Обращение к процедуре заполнения массива}
Print ( A ); {Обращение к процедуре вывода}
Readln ( F );
End;
Close ( F ); Readln;
End.
Вывод одномерного массива
Вывод линейного массива
В строку
For i := 1 to n do Write (a [ i ],' ');
В столбец
For i :=1 to n do Writeln (a [ i ]);
Массивы относятся к структурам прямого доступа. Это означает, что возможно напрямую (не перебирая предварительно все предшествующие компоненты) обратиться к любой интересующей нас компоненте массива.
![](https://www.google.com/images/icons/product/drive-32.png)
Домашнее задание: §2.2