Отримання знань
дистанційна підтримка освіти школярів
Програми з функціями та циклами
Задача “Sum_digits.py”
![]() |
Дано цілі числа w і r. За допомогою функції Sum_digits(x) знайти суми цифр даних чисел. Функція для введеного аргументу x повертає знайдену суму цифр. Контрольні приклади 1) w= 547, r= 9678 => k1= 16, k2= 30 2) w=10005, r= 98741 => k1= 6, k2= 29 |
Розв’язання
Нехай маємо деяке число x= 138. Щоб отримати кількість одиниць у числі, потрібно знайти остачу від ділення x на 10. У мові Python остачу від ділення знаходять за допомогою команди %. Тобто 8= 138%10.
Цифру 8 ми знайшли і далі повинні працювати без неї. Щоб із числа 138 отримати число 13, слід 138 націло поділити на 10.
13= 138/10
Тепер працюємо з x= 13. Аналогічно проробимо дії:
13%10 = 3 (друга цифра у числі x)
13/10 = 1 (відкидаємо знайдену цифру 3)
Наше число x стало дорівнювати 1.
1%10 = 1 (третя цифра)
1/10=0 (відкинули знайдену цифру 1)
Число x набуло значення 0. Сенсу працювати далі немає, бо ми вже відділили всі цифри.
Підведемо підсумки:
1) Потрібно працювати до тих пір, поки x>0 (якщо x перетворилося в нуль, то далі працювати немає з чим).
2) У циклі потрібно робити 2 дії:
• знаходити цифру як остачу від ділення числа x на 10 (cifra= x%10);
• змінювати число x, знаходячи цілу частину від ділення x на 10 (x=x/10).
Отже, число x можна “порізати” на цифри за допомогою алгоритму:
поки x>0
пц
cifra= x%10
x=x/10
кц
Повернемось до умови задачі. Нам потрібно знайти суму цифр sym числа x. Зрозуміло, що початкове значення sym= 0 (поки нічого не додавали, сума дорівнює 0). У циклі, знайшовши чергову цифру cifra, слід додати її до суми.
Матимемо:
sym= 0
поки x>0
пц
cifra= x%10
sym= sym+cifra
x=x/10
кц
Розглянемо повністю допоміжний алгоритм та його переклад мовою Python.
Допоміжний алгоритм | Переклад мовою Python |
алг ціл Сума_цифр (ціл x) арг x поч sym= 0 поки x>0 пц cifra= x%10 sym= sym+cifra x=x/10 кц знач= sym кін |
def Sum_digits(x): sym=0 while x>0: cifra=x%10 sym=sym+cifra x=x/10 return sym |
Розглянемо основний алгоритм та його переклад мовою Python.
Основний алгоритм | Переклад мовою Python |
алг Основний (ціл w, r, ціл s1, s2) арг w, r рез s1, s2 поч s1= Сума_цифр(w) s2= Сума_цифр(r) кін |
w=input('w=') r=input('r=') s1= Sum_digits(w) print 's1=', s1 s2= Sum_digits(r) print 's2=', s2 |
Програма матиме вигляд:
def Sum_digits(x):
sym=0
while x>0:
cifra=x%10
sym=sym+cifra
x=x/10
return sym
w= input('w=')
r= input('r=')
s1= Sum_digits(w)
print 's1=', s1
s2= Sum_digits(r)
print 's2=', s2
Задача “Digits.py”
Дано два цілих числа m і n. Знайти для вказаних чисел: 1) кількість цифр, скориставшись функцією Number(x), яка для аргумента x повертає кількість цифр у ньому; 2) добуток парних цифр за допомогою функції Product(x); 3) кількість цифр 7 із використанням функції Digit7(x). |
![]() |
Контрольні приклади
1) m= 129807, n=8555 => k1= 6, k2=4
d1= 0, d2= 8
f1= 1, f2= 0
2) m= 77753, n= 29712468 => k1= 5, k2= 8
d1= 1, d2= 768
f1= 3, f2= 1