Для розв’язування задач на обчислення суми чисел — елементів певної послідовності необхідно побудувати циклічний алгоритм.
Задача. У перший день осінніх канікул Юля вивчила 5 слів іноземної мови, а кожного наступного дня вивчала на 3 слова більше. Скільки слів Юля вивчила за тиждень канікул (рис. 4)?
Рис.4
s = 0 # Початкове значення суми
a = 5 # Кількість слів, що вивчено у 1-й день
# Канікули тривають 7 днів
for i in range(7):
s = s+a # Значення а додається до суми s
a = a+3 # Кількість слів, що буде вивчено наступного дня
print(s)
a = 5 # Кількість слів, що вивчено у 1-й день
# Канікули тривають 7 днів
for i in range(7):
s = s+a # Значення а додається до суми s
a = a+3 # Кількість слів, що буде вивчено наступного дня
print(s)
Процес накопичення суми можна порівняти з наповненням кошика: спочатку
порожній, потім додається перший товар, потім другий, третій і т. д. (рис. 1).
порожній, потім додається перший товар, потім другий, третій і т. д. (рис. 1).
Рис.1
Для обчислення суми n членів послідовності виконуються такі дії:
1) задається початкове значення суми членів послідовності (S = 0);
2) у тілі циклу повторюються дії:
1) задається початкове значення суми членів послідовності (S = 0);
2) у тілі циклу повторюються дії:
- обчислюється значення наступного доданка А;
- значення А додається до суми S.
Приклад:
Знайдемо суму перших 5 натуральних чисел.
s = 0
for i in range(1, 6):
s = s+і
s = 0
for i in range(1, 6):
s = s+і
print('s = ', s) # s = 15
Знайдемо суму парних чисел у діапазоні від 100 до 198:
s = 0
for i in range(100, 200, 2):
s = s+і
print('s = ', s) # s = 7450
for i in range(100, 200, 2):
s = s+і
print('s = ', s) # s = 7450
Знайдемо суму 10 чисел, що вводяться з клавіатури.
s = 0
for i in range(10):
a = int(input('Наступне число'))
s = s+a
print('s = ', s)
s = 0
for i in range(10):
a = int(input('Наступне число'))
s = s+a
print('s = ', s)
Якщо значення чисел залежать від їхнього порядкового номера в послідовності, то наступний доданок можна обчислювати за формулою, що виражає цю залежність.
Приклад:
Знайдемо суму 10 членів послідовності 0, 2, 6, 12, 20, 30, 42… Як нескладно визначити, і-е число в послідовності можна знайти за формулою: ai = i(i+1) (рис. 2).
s = 0
for i in range(10):
a = і*(і+1)
s = s+a
print('s = ', s)
for i in range(10):
a = і*(і+1)
s = s+a
print('s = ', s)
Рис.2
Якщо у числовій послідовності кожне наступне число можна обчислити за попереднім за певною формулою, то до початку циклу потрібно задати початкове значення доданку (значення першого члена послідовності), а в тілі циклу спочатку додавати поточний доданок до суми, потім обчислювати наступний доданок за цією формулою.
Приклад:
Знайдемо суму 10 членів послідовності 1, 2, 4, 8, 16, 32, … Якщо a0 =1, то для одержання наступного доданка попередній треба помножити на 2: ai =2ai–1 (рис.3).
s = 0
а = 1
for i in range(10):
s = s+a
a = 2*а
print('s = ', s)
а = 1
for i in range(10):
s = s+a
a = 2*а
print('s = ', s)
Рис.3
Джерела:
Інформатика : підруч. для 6 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во «Ранок», 2023.