Доступ к элементам массива
В отличие от переменных типа 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 лет прошлого столетия. Вычислить среднее количество осадков и отклонение от среднего для каждого года.