Для решения многих прикладных задач нужно анализировать значения величин, хранящихся в таблицах, сортировать данные, подводить итоги. Представьте, что, зная результаты зрительской онлайн-оценки нового фильма, вам нужно вычислить среднее значение оценок и определить количество зрителей, которые поставили наивысшую оценку. Решение таких задач основано на типовых алгоритмах обработки массивов, предусматривающих последовательный перебор элементов массива и выполнение определенных действий с каждым элементом.
задачи обработки массивов
Среди многообразия задач обработки массивов можно выделить следующие основные типы (рис. 34.1):

Обработка элементов массива выполняется в циклах, где параметром цикла является индекс. Рассмотрим способы решения таких задач на примере обработки числового одномерного массива АП-N].
Задачи на изменение значений элементов массива
Замена значений всех элементов массива
Алгоритм решения задачи: последовательно перебрать все элементы массива, и значение очередного элемента изменить по определенному правилу (рис. 34.2). Например, изменить знак элементов на противоположный, задать всем элементам нулевые значения, увеличить значения всех элементов на определенную величину.
Удвоить значения элементов массива A[1..N].


Замена значений элементов массива, удовлетворяющих условию
Алгоритм решения задачи: последовательно перебрать все элементы массива; если текущий элемент соответствует некоторому условию, его значение изменить по определенному правилу (рис. 34.3).
В условии может проверяться значение элемента массива или его индекса на кратность некоторому числу, положительность, равенство нулю и т. п.
Отрицательные элементы массива A[1..N] заменить числом 25.


задачи на поиск в массиве элемента с заданным свойством
определение количества элементов с заданным свойством
Алгоритм решения задачи: последовательно перебрать все элементы массива; если очередной элемент соответствует некоторому условию, значение счетчика увеличивается на 1.

Определение наибольшего (наименьшего) элемента массива
Алгоритм решения задачи: предположить, что наибольшим является первый элемент массива, после чего последовательно перебрать элементы массива, начиная со второго; если очередной элемент больше найденного ранее максимального, его значение запомнить как максимальное. Часто кроме значения наибольшего элемента нужно найти и его индекс.
Определить индекс наибольшего числа в массиве A[1..N].

Определение номера первого элемента массива, значение которого соответствует условию
Алгоритм решения задачи: увеличивать индекс i до тех пор, пока элемент с индексом i не будет удовлетворять данному условию или величина i не превысит размерность массива. Если после выхода из цикла i > N, это означает, что в массиве не найден элемент, значение которого соответствует условию.
Определить номер первого элемента массива A[1..N], значение которого равно Р (рис. 34.4).

Задачи на нахождение суммы (произведения) элементов
Найти произведение всех элементов массива A[1..N].

вопросы для самопроверки
1. Массив А[1..5] заполнен числами 3, 8, 5, 7, 6. Выполните действия с элементами массива:

2. Дан массив А[1..5]. Запишите операторы для реализации действий:
а) ввести с клавиатуры значения элементов массива;
б) найти произведение элементов массива;
в) найти минимальный элемент массива;
г) найти количество положительных элементов массива.
3. Составьте программу для решения задачи: «Массив Numbers[1..50] заполнен случайными числами в пределах от 1 до 100. Определить, сколько элементов массива отличаются от последнего элемента».
Упражнение 34
В магазине обслужили за день N (N < 200) покупателей, каждый из которых потратил на покупки не больше K (K< 500) гривен. Определить дневную прибыль магазина и среднюю сумму потребительского чека. Найти количество покупателей, которые потратили на покупки сумму, превышающую средний чек за день.
1) Создайте новый проект. Измените значение свойства Caption формы, разместите на форме компоненты и настройте их свойства в соответствии с рисунком. Текстовое поле Edit1 предназначено для ввода количества покупателей; список ListBox1 — для вывода значений элементов массива; список ListBox2 — для вывода результатов вычислений.
2) Опишите переменные, необходимые для решения задачи, как глобальные, так как областью видимости для них являются процедуры обработки события обеих кнопок:

3) Свойству Columns элемента управления ListBoxI задайте значение 4. Создайте процедуру обработки события для кнопки Заполнить массив.

4) Создайте процедуру обработки события для кнопки Вычислить дневную прибыль. Результаты вычисления выведите в поле списка ListBox2.

5) Создайте процедуру обработки события для кнопки Найти количество чеков. Запишите операторы для нахождения количества элементов массива, значения которых больше среднего значения. Результаты вычислений выведите в поле списка ListBox2.
6) Проверьте работу программы. Сохраните проект в папке Упражнение 34. Завершите работу за компьютером.
Компьютерное тестирование
Выполните тестовое задание 34 с автоматической проверкой на сайте interactive.ranok.com.ua.
Это материал из учебника Информатика 9 класс Бондаренко