Подсчитать количество четных чисел в одномерном целочисленном массиве можно, используя следующую программу:
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 <условие>;…