Доступ к элементам массива

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

Index [2]: = 34;

элементу массива Index с индексом 2 (ячейки с номером 2) присваивается значение 34. Наряду с конкретным значением (константой) в качестве индекса может использоваться переменная, например, при поэлементной обработке массива в рамках цикла For…to…do. Так, с помощью фрагмента

for i: = 2 to 7 do

Index [i]: =0;

всем элементам массива Index присваивается значение 0.

Для заполнения массивов используются следующие конструкции:

for i: = 1 to 5 do

Begin

write ('Введите',i, 'e имя:');

readln (Name [i]);

End;

Пример:

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

Program Matrix1;

Const N=10;

Var

I, Sum: Integer;

Matrix: Array[1..N] of Integer;

Begin

for i: = 1 to N do

begin

write('Введите', I, '-й элемент');

read(Matrix[i]);

end;

Sum: = 0

for i: = 1 to N do

Sum: = Sum + Matrix [i];

Writeln('Сумма 10 элементов массива Matrix равна', Sum);

End.

Пример:

Программа, которая обеспечивает ввод с клавиатуры и сохранение в одномерном массиве 25 чисел. Затем формируется запрос на ввод еще одного числа. После ввода данного числа программа проверяет элементы массива на наличие в них числа, равного последнему, введенному, и, если такое число есть, выдает соответствующее сообщение на экран.

Program Matrix2;

Const N = 25;

Var

I, S, R: Integer;

Matrix: Array [1..N] of Integer;

Begin

for i: =1 to N do

begin

writeln('Введите', i, '-й элемент');

read(Matrix [i]);

end;

Writeln ('введите число, поиск которого', 'в массиве хотите осуществить');

Readln(s);

R:=0;

for i: = 1 to N do

begin

if Matrix [i] = s then

begin

R: = R+1;

Writeln ('Обнаружено', R, '-E вхождение числа', S, 'в массив Matrix в позиции', I);

end;

end;

If R < > 0 then Writeln ('Итого число', S, 'встречается в массиве', 'Matrix', R, 'раз')

else

Writeln ('Число', S, 'не встречается в массиве ни разу');

End.

Задачи

1. Ввести массив из n – элементов целых чисел. Определить элементы, которые:

а) являются нечетными числами;

б) кратны 3 и 5;

в) являются удвоенными нечетными числами.

2. Ввести массив из n – элементов целых чисел. Определить элементы, которые:

а) при делении на 5 дают остаток 2;

б) при делении на 7 дают остаток 3;

в) при делении на 3 дают остаток 1.

3. Ввести массив из n – элементов. Определить элементы, удовлетворяющие условию:

а) A[i]<i;

б) A[i]<i2;

в) A[i]>10-i

4. Ввести массив из n – элементов целых чисел. Выяснить, верно ли, что:

а) сумма первой половины матрицы больше суммы второй половины;

б) максимальный элемент матрицы находится в первой половине;

в) матрица симметрична;

г) суммы величин положительных и отрицательных чисел равны.

5. Ввести массив из n – элементов целых чисел. Заменить все отрицательные числа их модулями.

6. Ввести массив из n – элементов целых чисел. Определить повторяющиеся числа.

7. Ввести массив из n – элементов целых чисел. Подсчитать число соседств положительных и отрицательных чисел.

8. Ввести массив из n – элементов целых чисел. Определить позицию и величину минимального и максимального элемента.

9. Ввести два одномерных массива из n – элементов целых чисел. Найти их сумму и разность.

10. Пусть A[1], A[2], … , A[20] – количество осадков в миллиметрах, выпавшее в Москве в течении первых 20 лет прошлого столетия. Вычислить среднее количество осадков и отклонение от среднего для каждого года.