Задачі додавання
Нова українська школа
Урок 38
Інформатика 6
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Задачі додавання
Існує низка задач, для розв’язування яких необхідно побудувати циклічний алгоритм.
Серед них багато задач на обчислення суми чисел — елементів певної послідовності.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Складемо програму для розв’язування задачі.
Задача. У перший день осінніх канікул Юля вивчила 5 слів іноземної мови, а кожного наступного дня вивчала на 3 слова більше. Скільки слів Юля вивчила за тиждень канікул?
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Продовження…
Програмний код
s = 0 # Початкове значення суми
a = 5 # Кількість слів, що вивчено у 1-й день
# Канікули тривають 7 днів
for i in range(7):
s = s+a # Значення а додається до суми s
a = a+3
# Кількість слів, що буде вивчено наступного дня
print(s)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Процес накопичення суми можна порівняти з наповненням кошика:
спочатку порожній, потім додається перший товар, потім другий, третій і т. д..
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Для обчислення суми n членів послідовності виконуються такі дії:
S = 0
обчислюється значення наступного доданка А;
значення А додається до суми S.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Знайдемо суму перших 5 натуральних чисел
Програмний код
Результат
1
3
6
10
15
s = 0
for i in range(1, 6):
s = s+i
print(s)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Продовження…
Початкове значення суми s = 0. Проаналізуємо значення змінних на кожному кроці виконання циклу for:
i | 1 | 2 | 3 | 4 | 5 |
s | 1 | 3 | 6 | 10 | 15 |
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Знайдемо суму парних чисел у діапазоні від 100 до 198:
Програмний код
Результат
s = 7450
s = 0
for i in range(100, 200, 2):
s = s+i
print('s =', s)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Знайдемо суму 10 чисел, що вводяться з клавіатури
Програмний код
s = 0
for i in range(10):
a = int(input('Наступне число '))
s = s+a
print('s =', s)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Якщо значення чисел залежать від їхнього порядкового номера в послідовності, то наступний доданок можна обчислювати за формулою, що виражає цю залежність.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Знайдемо суму 10 членів послідовності 0, 2, 6, 12, 20, 30, 42... Як нескладно визначити, i-е число в послідовності можна знайти за формулою: ai = i(i+1)
Програмний код
s = 0
for i in range(10):
a = i*(i+1)
s = s+a
print('s =', s)
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Якщо у числовій послідовності кожне наступне число можна обчислити за попереднім за певною формулою,
то до початку циклу потрібно задати початкове значення доданку (значення першого члена послідовності), а в тілі циклу спочатку додавати поточний доданок до суми, потім обчислювати наступний доданок за цією формулою.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Знайдемо суму 10 членів послідовності 1, 2, 4, 8, 16, 32, ... Якщо а0=1, то для одержання наступного доданка попередній треба помножити на 2: аi=2аі-1
s = 0
a = 1
for i in range(10):
s = s+a
a = 2*a
print('s =', s)
Параметр циклу i | Значення доданка a |
i = 0 | a = 2*1 = 2 |
i = 1 | a = 2*2 = 4 |
i = 2 | a = 2*4 = 8 |
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Розгляньте приклад
Складемо програму для розв’язування задачі.
Задача. Щотижня Юрко отримує n грн на дрібні витрати. Половину витрачає на солодощі, половину зберігає, щоб накопичити на планшет. Яку суму збере Юрко за рік? Чи вистачить її на планшет вартістю х грн?
У цій задачі можна виділити три підзадачі:
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Продовження…
Програмний код
Результат
Скільки грошей у тиждень? 50
Скільки коштує планшет? 1000
Буде накопичено 1300 грн
Вистачить
n = int(input('Скільки грошей у тиждень? '))
price = int(input('Скільки коштує планшет? '))
# Залишається за тиждень після витрат
zalishok = n//2
s = 0
for і in range(52):
s = s+zalishok
print('Буде накопичено', s, 'грн')
if s>=price: print('Вистачить')
else: print('He вистачить')
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Задачі додавання
Обчислення суми чисел можна реалізовувати не лише в циклі з параметром, а й у циклі з умовою, команду якого ми розглянемо далі.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Питання для самоперевірки
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Розгадайте ребус
«Ребуси українською» © rebus1.com
Лічильник
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Домашнє завдання
Проаналізувати
с. 206-211
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Працюємо за комп’ютером
Сторінка
210-211
© Вивчаємо інформатику teach-inf.com.ua
Розділ 6
§ 32
Дякую за увагу!
Нова українська школа
Урок 38
Інформатика 6
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.