Одномерные массивы. Формирование массива и вывод его элементов
Определение понятия
Массив представляет собой совокупность данных одного типа с общим для всех элементов именем.
Элементы массива пронумерованы, и обращаться к каждому из них можно по номеру. Номера элементов массива иначе называются индексами, а сами элементы массива - индексированными переменными.
a[0] |
a[1] |
a[2] |
a[3] |
a[4] |
… |
a[n] |
0.3 |
- 0.5 |
0.77 |
0.01 |
-5.2 |
… |
0.6 |
Вектор (линейный или одномерный массив) - это пример массива , в котором элементы нумеруются одним индексом.
- В качестве номера (индекса) элемента массива, в общем случае, используется выражение порядкового типа (чаще всего - это целая константа или переменная целого типа: integer, word, byte или shortint)
- При обращении к элементу массива индекс указывается в квадратных скобках. Например, a[10], mass[6].
- Обработка элементов массива производится при изменении индексов элементов. Например, в случае использования выражения следующие переменные удобно применять для просмотра в цикле элементов массива:
- a[i] - всех элементов;
- a[2*i] - элементов, стоящих на четных местах;
- a[2*i-1] - элементов, стоящих на нечетных местах
Описание массива
- Определение переменной как массив без предварительного описания типа массива
var a,b,c: array[1..10] of integer;
var
s : array[0..5] of integer;
k : array[0..5] of integer;
|
Примечание
-
- Описание массива требуется компилятору для выделения памяти под его элементы.
- Переменная определяется как массив посредством служебного слова array (массив). В квадратных скобках указывается диапазон, т. е. нижняя и верхняя граница значения индекса массива. Значение верхней границы не может быть меньше нижней.
- Здесь переменные s и k считаются разных типов. Для обеспечения совместимости необходимо применять описание переменных через предварительное описание типа.
- Если типы массивов идентичны, то в программе один массив может быть присвоен другому. В этом случае значения всех переменных одного массива будет присвоены соответствующим элементам второго массива.
- Над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.
- Предварительное описание типа массива
const n = 5;
type
mas = array[1..n] of integer;
var a : mas;
|
Примечание
-
- Доступ к элементам массива будет осуществляться так: a[1], a[2], a[3], a[4], a[5] (т. е. массив содержит пять элементов).
- Употребление констант (в данном примере n) при описании массива предпочтительно, т. к. в случае изменения размеров массива не нужно будет вносить исправления по всему тексту программы.
- Задание массива типизированной константой
const x : array[0..5] of integer = (1, 2, 3, 4, 5, 6);
|
Примечание
-
- В данном примере не только выделяется память под массив, но и происходит заполнение ячеек данными.
- Элементы массива можно изменять в ходе программы (как и все типизированные константы).
Заполнение массива данными
§ Для заполнения массива данными (и его вывода) чаще всего используется цикл с параметром for
§ Для заполнения массива случайными числами используется функция random и процедура randomize (инициализации генератора случайных чисел). Формат записи такой: random(B - A) + A, где A и B берутся из интервала [A,B)
- Ввод массива с клавиатуры
for i := 1 to n do begin write('a[', i, '] = '); readln(a[i])
end; На экране: a[1] = 1
a[2] = 5
a[3] = 3 a[4] = 0 ... |
- Заполнение массива случайными числами
randomize; for i := 1 to n do a[i] := random(90)+10;
{массив заполняется двузначными числами}
|
Вывод массива
- Вывод в столбец
for i := 1 to n do writeln(a[i]);
|
- Вывод в одну строку через пробел-разделитель
for i := 1 to n do write(a[i], ' ');
|
- Вывод в одну строку c заданием формата
for i := 1 to n do write(a[i]:4);
|
Пример программы на ввод и вывод массива
program array1; var
i:word;
a:array[0..100] of integer;
begin
randomize; for i := 0 to 100 do begin
a[i] := random(100);
{Заполняем массив случайными числами}
writeln('a[', i, '] = ', a[i]) end end. |
Пример программы работы с элементами массива
Постановка задачи. Получить сумму элементов массива, состоящего из 10 целочисленных элементов. Элементы массива вводятся с клавиатуры.
program array2; var
sum:integer;
i:byte;
a:array[0..9] of word;
begin
sum := 0;
for i := 0 to 9 do begin
write('a[', i, '] = ');
readln(a[i]);
sum := sum + a[i]
end; writeln('sum = ', sum) end. |
Пример программы работы с элементами массива
Постановка задачи. Получить среднее арифметическое элементов массива. Элементы массива заполняются случайными числами.
program array3; const
n = 100;
var
sar:real;
sum:integer;
i:byte;
a:array[0..n] of integer;
begin
sum := 0;
randomize; for i := 0 to n do begin
a[i] := random(100);
sum := sum + a[i]
end; sar := sum/n;
writeln('sar = ', sar) end. |