Инициализация элементов массива

Работа с массивами

Поскольку все элементы массива имеют одинаковый тип, то для обработки элементов используют циклические алгоритмы. Наиболее часто применяется цикл с параметром. При этом параметр цикла используется в качестве индекса элемента массива. Порядок вложенности циклов зависит от порядка массива, так для одномерного массива используется один цикл, для двумерного - два, вложенные один в другой и т. Д

Поскольку каждый элемент массива имеет свой порядковый номер, то к каждому элементу можно обращаться непосредственно, указывая имя массива и в квадратных скобках порядковый номер элемента.

Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле, изменяя при каждой итерации значение индекса.

Инициализация массивов (присвоение начальных значений всем компонентам массивов) осуществляется двумя способами. Первый способ - с использованием типизированных констант, например:

type Mass= Array[1..10] of Real;
const
K: Mass= ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );

При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках:

type Mass3x2= Array[1..3,1..2] of Integer;

const
L: Mass3x2= ( (1, 2) (3, 4) (5, 6) );

Ввод элементов одномерного массива с клавиатуры:

A:array [1..10] of Integer.
For i:=1 to 10 do
begin
Write('Введите A[', i,']');
Read(A[i])
end;

Если необходимо инициализировать массив случайными значениями, то используют генератор случайных чисел.

Randomize;
For i:=1 to 10 do
A[i]:=Random(100);

Процедура Randomize инициализирует встроенный генератор случайных чисел. Функция Random(100) возвращает при каждой итерации случайное число в диапазоне от 0 до значения заданного аргументом (100-1).

Ввод элементов двумерного массива:

B:array [1..20,1..20] of Real.

For i:=1 to 20 do
For i:=1 to 20 do
begin
Write('Введите B[', i,']');
Read(B[i])
end;

Пусть необходимо найти сумму элементов одномерного массива состоящего из 20 элементов действительного типа.

Для решения данной задачи необходимо инициализировать нулевым значением переменную, используемую для хранения суммы. Последовательно вводить с клавиатуры значения элементов массива и добавлять их к этой переменной. Для решения задачи будем использовать один цикл с параметром. Ниже приведена блок программа решения задачи.

Program Example_1;
var
A:array [1..20] of Real;
S: Real;
I:Integer;
Begin
S:=0;
For I:=1 to 20 do
begin
Write('Введите A[', I,']');
Read(A[I]);
S:=S+A[I]
end;
WriteLn ('Результат суммирования... ',S)
End.

Найти сумму отрицательных элементов одномерного массива состоящего из 100 элементов целого типа, порядковый номер которых кратен трём.

Составим алгоритм и программу нахождения суммы элементов одномерного массива.

Для ввода элементов массива используем генератор случайных чисел. В теле цикла введём логический блок решения для определения заданного условия при обработке элементов массива.

Ниже приведена программа решения задачи.

Program Example_2;
var
A:array [1..100] of Integer;
S,I:Integer;
Begin
Randomize;
S:=0;
For I:=1 to 100 do
begin
A[I]:=Random(100) - Random(50);
f (I mod 3=0) and (A[I]<0) then S:=S+A[I]
end;
WriteLn ('Результат суммирования... ',S)
End.

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

Найти произведение положительных элементов одномерного массива состоящего из 100 элементов целого типа.

Составим алгоритм и программу нахождения произведения элементов одномерного массива.

Инициализируем переменную, предназначенную для хранения произведения. Для ввода элементов массива используем генератор случайных чисел. В теле цикла введём логический блок решения для определения заданного условия при обработке элементов массива.

Ниже приведена программа решения задачи.

Program Example_3;
Var
A:array [1..100] of Integer;
S,I:Integer;
Begin
Randomize;
P:=1;
For I:=1 to 100 do
begin
A[I]:=Random(100) - Random(50);
If A[I]>0 then P:=P*A[I]
end;
WriteLn ('Результат произведения... ',P)
End.

Дан двумерный массив, состоящий из элементов целого типа. Размерность массива 20X20. Найти сумму элементов главной и произведение элементов побочной диагоналей.

Для определения элемента, лежащего на главной диагонали, вспомним, что у него номер строки равен номеру столбца. Элемент лежащий на побочной диагонали, может быть определён по равенству - I+J= N+1, где I, J - соответственно индексы строки и столбца, а N - порядок матрицы.

Program Example_4;
Var
A:array [1..20,1..20] of Integer;
S,P,I,J:Integer;
Begin
Randomize;
P:=1; S:=0;
For I:=1 to 20 do
For J:=1 to 20 do
begin
A[I, J]:=Random(100) - Random(50);
If I=J then S:=S+A[I, J];
If I+J=20 then P:=P*A[I, J];
end;
WriteLn ('Результат произведения... ',P);
WriteLn ('Результат суммы... ',S)
End