Алгоритмы обработки массивов

Содержание

Слайд 2

Алгоритмы обработки массивов

Алгоритмы обработки массивов

Слайд 3

Сумма элементов массива

Представьте себе, что в массиве записаны зарплаты сотрудников фирмы, и

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

Для того чтобы накапливать сумму, нужно ввести переменную, назовём её sum.

Слайд 4

Сумма элементов массива

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

Сумма элементов массива Для решения задачи нужно выполнить перебор элементов массива в
На каждом шаге цикла к значению sum добавляется значение очередного элемента массива.

Будем считать, что массив уже заполнен. Тогда сумму его элементов можно найти так:

Слайд 5

Сумма элементов массива

Покажем, как работает этот алгоритм для массива A:

Выполним «ручную прокрутку»

Сумма элементов массива Покажем, как работает этот алгоритм для массива A: Выполним
программы. Запишем в таблице выполняемые команды и изменение всех переменных:

Слайд 6

Поиск элементов массива, удовлетворяющих условию

Во многих задачах нужно найти в массиве все

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

Для подсчёта событий используется переменная-счётчик, назовём её count. Перед началом цикла в счётчик записывается ноль (ни одного нужного события не произошло).
Если на очередном шаге цикла произошло нужное событие, значение счётчика увеличивается на единицу.

Слайд 7

Поиск элементов массива, удовлетворяющих условию

Подсчитаем количество чётных элементов массива (элементов с чётными

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

Поэтому условие «элемент A[i] – чётный» можно сформулировать иначе: «остаток от деления A[i] на 2 равен нулю»:

Слайд 8

Поиск элементов массива, удовлетворяющих условию

Теперь можно написать полный цикл:

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

Слайд 9

Поиск элементов массива, удовлетворяющих условию

В массиве записан рост каждого члена баскетбольной команды

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

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

Обратите внимание, что в теле условного оператора находятся две команды, поэтому в программе на языке Паскаль они заключаются в «операторные скобки» – ключевые слова begin и end.

Слайд 10

Поиск элементов массива, удовлетворяющих условию

Поиск элементов массива, удовлетворяющих условию

Слайд 11

Поиск максимального элемента

Поиск максимального элемента

Слайд 12

Поиск максимального элемента в массиве

Представьте себе, что вы по очереди заходите в

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

Слайд 13

Поиск максимального элемента в массиве

Для хранения максимального элемента выделим в памяти целочисленную

Поиск максимального элемента в массиве Для хранения максимального элемента выделим в памяти
переменную M. Будем в цикле просматривать все элементы массива один за другим.

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

Слайд 14

Поиск максимального элемента в массиве

Во-первых, можно записать в переменную M значение, заведомо

Поиск максимального элемента в массиве Во-первых, можно записать в переменную M значение,
меньшее, чем любой из элементов массива.
Например, если в массиве записаны натуральные числа, можно записать в M ноль.

Если же содержимое массива неизвестно, можно сразу записать в M значение A[1] (сразу взять первый арбуз), а цикл перебора начать со второго элемента:

Слайд 15

Поиск максимального элемента в массиве

Поиск максимального элемента в массиве

Слайд 16

Поиск максимального элемента в массиве

По номеру элемента i можно всегда определить его

Поиск максимального элемента в массиве По номеру элемента i можно всегда определить
значение, оно равно A[i]. Поэтому достаточно хранить только номер максимального элемента nMax, тогда его значение равно A[nMax]:

Слайд 17

Выводы:

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

Выводы: Для вычисления сумму элементов массива используется дополнительная переменная, в которой накапливается
Начальное значение этой переменной равно нулю. Для добавления к сумме
очередного элемента массива A[i] используют оператор вида
sum:= sum + A[i]
При вычислении произведения начальное значение дополнительной переменной должно быть равно 1.
Для подсчёта количества элементов, удовлетворяющих условию, нужно использовать переменную-счётчик. Начальное значение счётчика должно быть равно нулю. При обнаружении очередного нужного элемента счётчик увеличивается на 1:
count:= count + 1
При поиске максимального значения в массиве используют вспомогательную переменную, в которой хранится максимальное из всех уже просмотренных значений. Сначала в эту переменную записывают значение первого элемента массива, а затем просматривают все элементы, начиная со второго.