§ 22. Алгоритмы обработки массивов
Ключевые слова:
сумма элементов массива максимальный элемент подсчёт элементов
Сумма элементов массива
Представьте себе, что в массиве записаны зарплаты со-трудников фирмы, и требуется найти общую сумму, которая бу-дет им выплачена. Для этого нужно сложить все числа, которые находятся в массиве.
Для того чтобы накапливать сумму, нужно ввести пере-менную, назовём её summa.
Какое начальное значение нужно записать в переменную summa?
В программе есть переменные summa и x. Запишите оператор, с помощью которого можно добавить значение x к значению summa.
Для решения задачи нужно выполнить перебор элементов массива в цикле. На каждом шаге цикла к значению summa до-бавляется значение очередного элемента массива.
Будем считать, что массив уже заполнен. Тогда сумму его элементов можно найти так:
summa = 0
for i in range(N):
summa += A[i] print(summa)
Покажем, как работает этот алгоритм для массива A:
0 1 2 3 4
5 2 8 3 1
A
Рис. 3.9.
89 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Выполним трассировку («ручную прокрутку») программы. За-пишем в таблице выполняемые команды (операторы) и измене-ние всех переменных (сам массив A при этом не меняется):
1 2 3 4 5 6 7 8 9
10 11
Фоном выделены команды, которые выполняются автома-тически в цикле по переменной: в строке 2 переменной i при-сваивается начальное значение, а в строках 4, 6, 8 и 10 после очередного выполнения цикла значение этой переменной уве-личивается на единицу.
Поскольку массив A не изменяется, сложить все его элемен-ты удобно с помощью такого цикла:
summa = 0 for x in A:
summa += x print( summa )
Заметим, что при этом не нужно хранить размер массива в пе-ременной.
В языке Python есть встроенная функция sum, которая сразу
считает сумму элементов массива, так что задача решается в одну строку:
print( sum(A) )
Для массива на Рис. 3.9 выполните ручную прокрутку программы и определите, какое значение будет выведено:
90 http://kpolyakov.spb.ru
Оператор
|
i
|
summa
|
summa = 0
|
|
0
|
i = 0
|
0
|
|
summa += A[0]
|
|
5
|
i += 1
|
1
|
|
summa += A[1]
|
|
7
|
i += 1
|
2
|
|
summa += A[2]
|
|
15
|
i += 1
|
3
|
|
summa += A[3]
|
|
18
|
i += 1
|
4
|
|
summa += A[4]
|
|
19
|
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
summa = 0 for x in A:
if x % 2 == 0:
summa += x print( summa )
Измените условие отбора в программе из предыдущего задания, так чтобы при обработке массива на Рис. 3.9 в переменной summa получилось число 13.
Напишите фрагмент программы, с помощью которых можно найти в переменной p
а) произведение всех элементов массива;
б) произведение положительных элементов массива. Подумайте, какое должно быть начальное значение переменной p и как она должна изменяться на каждом шаге цикла.
Достарыңызбен бөлісу: |