9. (П4) Розв'язування задач із використанням циклів¶
Мета роботи¶
Навчитися розв'язувати задачі за допомогою циклів for і while: перебирати діапазони чисел і символи рядка, накопичувати суми й добутки, рахувати кількість подій, керувати ходом циклу через break та повторювати запит даних, доки користувач не введе коректне значення.
Ваші персональні дані¶
Перш ніж почати, випишіть ці значення — вони знадобляться в усіх завданнях.
| Позначення | Звідки береться | Завдання |
|---|---|---|
name |
ваше ім'я латиницею | 3 |
surname |
ваше прізвище латиницею | 3 |
group |
ваша група | усі |
d |
день вашого народження (1–31) | 1, 2, 5 |
m |
місяць вашого народження (1–12) | 2 |
y |
рік вашого народження | 2 |
c |
кількість літер у вашому прізвищі латиницею | 1, 5 |
graph LR
P["Особисті дані<br/>d, m, y, c, name"] --> F["for + range()<br/>завдання 1, 3, 5"]
P --> W["while<br/>завдання 1, 2, 4"]
F --> A["Накопичувачі<br/>та лічильники"]
W --> A
A --> R["Результат<br/>f-рядок"]
style P fill:#339af0,stroke:#333,color:#fff
style F fill:#ffd43b,stroke:#333,color:#000
style W fill:#ff922b,stroke:#333,color:#000
style A fill:#845ef7,stroke:#333,color:#fff
style R fill:#51cf66,stroke:#333,color:#000
Хід роботи¶
Завдання 1. Числовий ряд від дня народження¶
Файл task1.py.
- Задайте в програмі змінні
dіcсвоїми персональними значеннями. -
Циклом
forізrange()виведіть в один рядок усі числа відdдо31включно. Одночасно порахуйте:- скільки чисел вивелося (лічильник);
- їхню суму;
- їхній добуток.
-
Виведіть кількість, суму, добуток і середнє арифметичне (з двома знаками після коми).
- Тим самим циклом окремо порахуйте, скільки серед цих чисел парних, а скільки непарних.
- Напишіть другу версію цієї самої програми через
while(у тому ж файлі, після коментаря# while version) і переконайтеся, що обидві дають однаковий результат. - Останнім блоком виведіть зворотний відлік від
cдо1— цикломforіз від'ємним кроком.
Приклад роботи програми:
Ivan Petrenko, PZ-11
Numbers from 14 to 31: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Count: 18
Sum: 405
Product: 1320509264105545113600000
Average: 22.50
Even: 9, odd: 9
Countdown: 8 7 6 5 4 3 2 1
Завдання 2. Цифри вашої дати народження¶
Файл task2.py.
- Програма запитує в користувача одне ціле число. Перший тестовий запуск — ваша дата народження у форматі
ddmmyyyy(наприклад, для 14 липня 2007 року це14072007). -
Циклом
while(без перетворення числа в рядок) знайдіть:- кількість цифр у числі;
- суму цифр;
- найбільшу та найменшу цифру;
- число, записане у зворотному порядку.
Підказка: остача від ділення на
10дає останню цифру, ділення націло на10прибирає її. -
Виведіть результати окремими рядками.
- Передбачте випадок, коли користувач вводить
0або від'ємне число: програма не повинна зациклюватися.
Приклад роботи програми:
Ivan Petrenko, PZ-11
Enter an integer: 14072007
Digits: 8
Sum of digits: 21
Max digit: 7, min digit: 0
Reversed: 70027041
Завдання 3. Ваше ім'я символ за символом¶
Файл task3.py.
- Задайте змінні
nameіsurnameсвоїми даними латиницею. -
Циклом
forпройдіть по рядкуname + surnameі порахуйте:- голосні (
a,e,i,o,u,y) — перевірку робіть без урахування регістру; - приголосні.
- голосні (
-
Виведіть обидва лічильники й перевірте, що їхня сума дорівнює довжині рядка.
Приклад роботи програми:
Завдання 4. Повторюваний запит із перевіркою¶
Файл task4.py.
- Програма циклом
whileпросить ввести бал за 100-бальною шкалою, доки не буде введено коректне значення — ціле число від0до100. - Для некоректного значення програма пояснює, що саме не так (менше нуля, більше ста), і запитує ще раз. Для виходу з циклу використайте
while Trueразом ізbreak. - Порахуйте, скільки спроб знадобилося, і виведіть це число.
- Після успішного введення програма виводить буквену оцінку (
A–F) за шкалою з практичної роботи 7.
Приклад роботи програми:
Ivan Petrenko, PZ-11
Enter your score (0-100): 120
Score is too big, maximum is 100
Enter your score (0-100): -5
Score cannot be negative
Enter your score (0-100): 87
Accepted after 3 attempts
Grade: B
Завдання 5. Дільники та прості числа¶
Файл task5.py.
- Обчисліть число
n = d * cзі своїх персональних даних. - Циклом знайдіть і виведіть усі дільники числа
n, порахуйте їх кількість та їхню суму. - За допомогою циклу з
breakі гілкиelseпри циклі визначте, чи єnпростим числом. Виведіть зрозумілу відповідь. - Виведіть усі прості числа в діапазоні від
2доn. Кількість знайдених чисел також виведіть.
Приклад роботи програми:
Ivan Petrenko, PZ-11
n = 14 * 8 = 112
Divisors: 1 2 4 7 8 14 16 28 56 112
Divisors count: 10, sum: 248
112 is not prime
Primes up to 112: 2 3 5 7 11 ... 109
Primes count: 29
Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub