Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.Одномерные массивы и операции их обработки.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
316.42 Кб
Скачать

Нахождение суммы элементов массива

Сумму элементов массива можно подсчитать по формуле SUM=SUM+A[J], первоначально задав SUM=0.

SUM:=0;

For J: = 1 to N do SUM:=SUM+A[J];

Рисунок 2 – Алгоритм нахождения суммы элементов массива

Количество элементов массива можно подсчитать по формуле К=К+1, первоначально задав К=0. Произведение элементов массива можно подсчитать по формуле РR = РR*А[J], первоначально задав РR=1.

PR:=1;

For J:=1 to N do PR:=PR*A[J];

Нахождение элементов массива, удовлетворяющих заданному условию.

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

Рисунок 3 – Алгоритм обработки элементов массива, удовлетворяющих заданному условию

Нахождение количества четных элементов массива

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

Program chet;

Var I,N,К: integer; A:array[1..50] of integer;

Begin

Write(‘Введите количество элементов массива’);

ReadLn(N);

For i:=1 to N do

begin Write(‘A[’,i:2, ‘]=’);

ReadLn(A[i]); end;

К:=0; {переменная, в которой будет храниться количество четных чисел}

For i:=1 to N do if A[i]mod2=0 then К:=К+1;

{проверка на четность}

WriteLn(‘Количество четных чисел:’,К:2);

ReadLn;

End.

Нахождение min (max) элементов массива и их индексов

Поиск в массиве рассмотрим на примере задачи нахождения наименьшего элемента и его индекса. При поиске максимального или минимального элемента первым действием служит поиск первого в массиве элемента, удовлетворяющего условию. Его значение принимается за предполагаемый искомый максимум (минимум). Если элементов, удовлетворяющих условию, в массиве нет, проводить поиск не имеет смысла.

Program min;

Var I,N,NM:integer; M:real;

A:array[1..50] of real;

Begin

Write(‘Введите количество элементов массива’);

ReadLn(N);

For I:=1 to N do

begin

Write(‘A[’,i:2,‘]=’);

ReadLn(A[i]);

end;

M:=A[1]; NM:=1; {переменным, в которых будут храниться минимум и его индекс, присваиваем начальные значения}

For i:=2 to N do

If A[1]<M Then begin M:=A[i]; NM:=i; end;

WriteLn(‘Минимальный элемент:’,М:6:2,‘, его номер:’,NM:2);

ReadLn;

End.

Поиск первого (последнего) по порядку элемента, удовлетворяющего какому-то условию

Для запоминания индекса нужного элемента вводят дополнительную переменную и вначале присваивают ей значение 0. Затем просматривают элементы массива, начиная с первого (последнего) и, встретив элемент, удовлетворяющий условию, присваивают значение индекса элемента упомянутой переменной. Сразу после этого надо прекратить выполнение цикла, что можно сделать с помощью оператора перехода на метку, помечающую следующий за циклом оператор программы (в нижеследующем тексте фрагмента программы 1 – метка).

NOM:= 0;

For J:= 1 to N do

If <условие> then

begin

NOM:= J; goto 1;

end;

1: …

Оператором, помеченным меткой 1, может быть вывод на экран значения NOM. Если оно равно 0, то элементов, удовлетворяющих условию, в массиве нет.

Для решения этой задачи более эффективным является использование цикла с постусловием, так как число повторений заранее не известно:

NOM:=0; J:=0;

Repeat

J:=J+1;

if <условие> then NOM:=J;

Until <условие>;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]