1 of 22

Задачі додавання

Нова українська школа

Урок 38

Інформатика 6

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.

2 of 22

Задачі додавання

Існує низка задач, для розв’язування яких необхідно побудувати циклічний алгоритм.

Серед них багато задач на обчислення суми чисел — елементів певної послідовності.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

3 of 22

Задачі додавання

Розгляньте приклад

Складемо програму для розв’язування задачі.

Задача. У перший день осінніх канікул Юля вивчила 5 слів іноземної мови, а кожного наступного дня вивчала на 3 слова більше. Скільки слів Юля вивчила за тиждень канікул?

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

4 of 22

Задачі додавання

Продовження…

Програмний код

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

5 of 22

Задачі додавання

Процес накопичення суми можна порівняти з наповненням кошика:

спочатку порожній, потім додається перший товар, потім другий, третій і т. д..

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

6 of 22

Задачі додавання

Для обчислення суми n членів послідовності виконуються такі дії:

  1. задається початкове значення суми членів послідовності:
  1. у тілі циклу повторюються дії:

S = 0

обчислюється значення наступного доданка А;

значення А додається до суми S.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

7 of 22

Задачі додавання

Розгляньте приклад

Знайдемо суму перших 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

8 of 22

Задачі додавання

Продовження…

Початкове значення суми s = 0. Проаналізуємо значення змінних на кожному кроці виконання циклу for:

i

1

2

3

4

5

s

1

3

6

10

15

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

9 of 22

Задачі додавання

Розгляньте приклад

Знайдемо суму парних чисел у діапазоні від 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 of 22

Задачі додавання

Розгляньте приклад

Знайдемо суму 10 чисел, що вводяться з клавіатури

Програмний код

s = 0

for i in range(10):

a = int(input('Наступне число '))

s = s+a

print('s =', s)

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

11 of 22

Задачі додавання

Якщо значення чисел залежать від їхнього порядкового номера в послідовності, то наступний доданок можна обчислювати за формулою, що виражає цю залежність.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

12 of 22

Задачі додавання

Розгляньте приклад

Знайдемо суму 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

13 of 22

Задачі додавання

Якщо у числовій послідовності кожне наступне число можна обчислити за попереднім за певною формулою,

то до початку циклу потрібно задати початкове значення доданку (значення першого члена послідовності), а в тілі циклу спочатку додавати поточний доданок до суми, потім обчислювати наступний доданок за цією формулою.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

14 of 22

Задачі додавання

Розгляньте приклад

Знайдемо суму 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

15 of 22

Задачі додавання

Розгляньте приклад

Складемо програму для розв’язування задачі.

Задача. Щотижня Юрко отримує n грн на дрібні витрати. Половину витрачає на солодощі, половину зберігає, щоб накопичити на планшет. Яку суму збере Юрко за рік? Чи вистачить її на планшет вартістю х грн?

У цій задачі можна виділити три підзадачі:

  1. визначити кількість грошей, відкладених щотижня;
  1. знайти суму грошей за рік;
  1. порівняти величину суми з ціною планшета.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

16 of 22

Задачі додавання

Продовження…

Програмний код

Результат

Скільки грошей у тиждень? 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

17 of 22

Задачі додавання

Обчислення суми чисел можна реалізовувати не лише в циклі з параметром, а й у циклі з умовою, команду якого ми розглянемо далі.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

18 of 22

Питання для самоперевірки

  1. Який алгоритм обчислення суми п членів послідовності?
  1. Напишіть програму обчислення суми додатних непарних чисел, менших за 100.
  1. Зараз у Чахлика Невмирущого 5 скринь із золотом. Щороку додається ще по m скринь. Складіть програму, яка повідомить, скільки скринь буде через 10 років.

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

19 of 22

Розгадайте ребус

«Ребуси українською» © rebus1.com

Лічильник

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

20 of 22

Домашнє завдання

Проаналізувати

с. 206-211

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

21 of 22

Працюємо за комп’ютером

Сторінка

210-211

© Вивчаємо інформатику teach-inf.com.ua

Розділ 6

§ 32

22 of 22

Дякую за увагу!

Нова українська школа

Урок 38

Інформатика 6

teach-inf.com.ua

за підручником

Бондаренко О.О. та ін.