Про практикум

Практикум з програмування мовою Python - це збірник задач з програмування, зорієнтований на формування практичних навичок у створенні програм мовою Python.

Задачі збірника систематизовані за основними розділами (в дужках вказані номери задач для кожного розділу):

  1. Змінні і типи даних (1-101)

  2. Розгалуження (102-202)

  3. Цикли (203-303)

  4. Робота з рядками (304-404)

  5. Списки і кортежі (405-505)

  6. Словники і множини (506-606)

  7. Функції (607-707)

  8. Файли і модулі (708-808)

  9. ООП (809-828)

Збірник всього налічує 828 задач.

У кожному із розділів задачі відносно впорядковані за рівнями складності: початковий, середній, високий. Передбачається, що для розв’язування конкретної задачі можна використовувати знання і застосовувати підходи лише з попередніх розділів, хоча це не є обов’язковим.

Окрім задач, у складі збірника:

  • приклади тестових вхiдних i вихiдних даних для кожної задачі;

  • опис підготовки і налаштування середовища програмування мовою Python;

  • поради і трюки, довідкові матеріали, які стануть у нагоді при розв’язуванні задач.

Теоретичною основою для використання практикуму може слугувати навчальний матеріал підручника Путівник мовою програмування Python .

Практикум можна використовувати на уроках інформатики, факультативах і гуртках, навчальних курсах з програмування.


Для вчителів інформатики, учнів, студентів та усіх, хто цікавиться програмуванням, зокрема, мовою програмування Python.

1. Початкові налаштування

1.1. Завантаження Python

Версії інтерпретатора Python для різних операційних систем доступні для безкоштовного завантаження на офіційному сайті Python.

Офіційний сайт Python
Офіційний сайт Python: вибір дистрибутива для вашої операційної системи

Як завантажити і налаштувати роботу Python читайте у Додатку A: Завантаження і встановлення Python.

1.2. Середовище програмування для Python

Для написання програм використовують текстові редактори або інтегровані середовища розробки, які включають в себе різні інструменти для роботи з кодом: засіб для написання коду (текстовий редактор), інтерактивний інтерпретатор, відлагоджувач тощо.

Текстові редактори та інтегровані середовища програмування для Python

IDLE - стандартний редактор Python. Встановлюється разом з Python для користувачів Windows, окремим пакунком для користувачів Linux.

Notepad++ - безкоштовний текстовий редактор початкового коду, який підтримує велику кількість мов, в тому числі і Python. Лише для користувачів Windows.

Visual Studio Code - це легкий, але потужний редактор початкового коду, який розповсюджується безкоштовно і доступний у версіях для платформ Linux, Windows і macOS.

PyScripter - інтегроване середовище розробки для мови програмування Python. Для користувачів Windows. Поширюється безкоштовно.

Wing IDE 101 - вільне інтегроване середовище для Python, розроблене для навчання програмістів-початківців. Для користувачів Linux, Windows і macOS. Поширюється безкоштовно.

Geany - вільний текстовий редактор з базовими елементами інтегрованого середовища розробки, доступний для операційних систем Linux, Windows і macOS.

PyCharm - інтегроване середовище розробки для мови програмування Python. PyCharm є власницьким програмним забезпеченням. Наявна безкоштовна версія Community з усіченим набором можливостей. Для користувачів Linux, Windows і macOS.

Thonny - IDE для вивчення програмування мовою Python. Для користувачів Linux, Windows і macOS.

Mu - редактор коду Python для програмістів-початківців. Для користувачів Linux, Windows і macOS.

Для налаштування деяких вищезгаданих середовищ програмування зверніться до Додатку B: Налаштування середовища програмування.

Для написання програм мовою Python можна використовувати онлайн-середовище repl.it .

1.3. Запуск Python: інтерактивний інтерпретатор

У режимі інтерактивного інтерпретатора команди вводяться у термінальному вікні (консольне вікно, вікно командного рядка) одна за одною і по натисненні клавіші Enter відразу виконуються з відображенням результату виконання.

Щоб відкрити вікно терміналу:

  • натисніть сполучення клавіш Win+R на клавіатурі, введіть команду cmd, натисніть OK (для користувачів Windows);

  • натиcніть сполучення клавіш Ctrl+Alt+T (для користувачів Linux Ubuntu).

У термінальному вікні, що з’явилося, введіть команду (у випадку використання Windows):

python

або (у випадку використання Linux Ubuntu можна вказати версію Python, наприклад, 3.9):

python3.9

Якщо на екрані з’явиться запрошення >>> до введення команд, значить система виявила встановлену версію Python:

Режим інтерактивного інтерпретатора Python у термінальному вікні Windows
Режим інтерактивного інтерпретатора Python у термінальному вікні Windows: запрошення до введення команд
Режим інтерактивного інтерпретатора Python у термінальному вікні Linux Ubuntu
Режим інтерактивного інтерпретатора Python у термінальному вікні Linux Ubuntu: запрошення до введення команд

Введіть в інтерактивному режимі інтерпретатора наступний рядок

print('Hello, Python!')

натисніть Enter і переконайтеся в тому, що на екрані з’явилось повідомлення Hello, Python!:

Режим інтерактивного інтерпретатора Python у термінальному вікні Windows
Режим інтерактивного інтерпретатора Python у термінальному вікні Windows: виведення текстового повідомлення
Щоб вийти з режиму інтерактивного інтерпретатора Python, натисніть Ctrl+Z і Enter у Windows, Ctrl+D у Linux Ubuntu або виконайте команду exit() .

1.4. Робота з файлами Python

Програми, написані на мові Python, зберігають у вигляді текстових файлів з розширенням .py. В текстовому редакторі створіть новий файл і введіть у нього рядок:

print("Hello, Python!")

Збережіть файл з іменем hello.py у каталог python_work, який, наприклад, знаходиться на стільниці вашої операційної системи.

Переконайтеся, що ви зберегли файл як звичайний текст!

Такі файли з кодом програми можна запускати у термінальному вікні.

1.4.1. Запуск програм в терміналі Windows

Відкрийте термінальне вікно (вікно командного рядка): натисніть сполучення клавіш Win+R на клавіатурі, введіть команду cmd, натисніть OK і виконайте команди:

C:\Users>User> cd Desktop (1)
C:\Users>User\Desktop> cd python_work (2)
C:\Users>User\Desktop\python_work> dir (3)
hello.py (4)
C:\Users>User\Desktop\python_work> python hello.py (5)
Hello, Python! (6)
Назва User в записі - це ім’я користувача в операційній системі.
  1. Переходимо у каталог Desktop (Стільниця) з використанням команди cd.

  2. Переходимо у каталог python_work з використанням команди cd.

  3. Читаємо вміст каталогу python_work з використанням команди dir.

  4. Відображення вмісту каталогу (присутній єдиний файл hello.py).

  5. Запускаємо на виконання файл hello.py (ввести python та ім’я файла).

  6. Відображення результату у вікні терміналу.

Для переходу на рівень вгору у дереві каталогів використовують інструкцію cd .. . Для переходу на інший диск використовують команду, що складається з назви диска і вертикальної двокрапки, наприклад, d: .
Щоб закрити вікно терміналу, введіть команду exit і натисніть Enter .

1.4.2. Запуск програм в терміналі Linux Ubuntu

Відкрийте вікно терміналу, натиснувши сполучення клавіш Ctrl+Alt+T, і виконайте команди:

teacher@teacher-VirtualBox:~$ pwd (1)
/home/teacher
teacher@teacher-VirtualBox:~$ ls (2)
Відео      Завантаження      Зображення  Стільниця
Документи  Загальнодоступні  Музика      Шаблони
teacher@teacher-VirtualBox:~$ cd Стільниця (3)
teacher@teacher-VirtualBox:~/Стільниця$
teacher@teacher-VirtualBox:~/Стільниця$ ls (4)
python_work
teacher@teacher-VirtualBox:~/Стільниця$ cd python_work (5)
teacher@teacher-VirtualBox:~/Стільниця/python_work$ ls (6)
hello.py
teacher@teacher-VirtualBox:~/Стільниця/python_work$ python3.9 hello.py (7)
Hello, World! (8)
teacher@teacher-VirtualBox:~/Стільниця/python_work$ cd .. (9)
teacher@teacher-VirtualBox:~/Стільниця$ cd ~ (10)
teacher@teacher-VirtualBox:~$
  1. Дізнаємося поточне розташування з використанням команди pwd (після запуску терміналу поточний каталог - домашній каталог користувача).

  2. Читаємо вміст поточного каталогу teacher з використанням команди ls.

  3. Переходимо у каталог Стільниця з використанням команди cd.

  4. Читаємо вміст каталогу Стільниця (всередині каталог python_work).

  5. Переходимо у каталог python_work з використанням команди cd.

  6. Читаємо вміст каталогу python_work (всередині файл hello.py).

  7. Запускаємо на виконання файл hello.py (ввести назву інтерпретатора разом із версією python3.9 та ім’я файла).

  8. Відображення результату у вікні терміналу.

  9. Переходимо на рівень вгору в дереві каталогів з використанням інструкції cd ...

  10. Відразу переходимо у домашній каталог користувача з використанням інструкції cd ˜.

Назва teacher@teacher-VirtualBox у записі - це, відповідно, ім’я користувача в операційній системі і назва комп’ютера, розділені символом @.
Щоб закрити вікно терміналу, введіть команду exit і натисніть Enter .

1.5. Виправлення помилок

В процесі написання і виконання програм можуть з’являтися різноманітні помилки. У таких випадках інтерпретатор Python сам повідомляє про помилку.

Наприклад, коли ми введемо в режимі інтерактивного інтерпретатора інструкцію '19' + 81, з’явиться таке повідомлення:

>>> '19' + 81
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Введена інструкція некоректна для Python, тому він вказав назву помилки і номер рядка, в якому вона виникла, зупинивши виконання програми.

У Python, у разі появи помилки генерується виняток, який повідомляє про зміст помилки. В даному випадку, згенерований виняток TypeError повідомляє про несумісність типів під час додавання числа і рядка, іншими словами, рядок можна об’єднувати лише з рядком.

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

Основні помилки, що можуть виникнути при написанні програм на Python і шляхи їх виправлення можна переглянути у Додатку D: Код не працює: типові помилки.

2. Задачі

При розв’язуванні задач варто дотримутиватись PEP8 (Python Enhanced Proposal - розширена пропозиція Python) - рекомендацій по написанню коду на Python.
Для перевірки власного коду для вимог PEP8 можна використовувати онлайн-сервіс PEP8 online check .

2.1. Змінні і типи даних

У даному розділі розглядаються прості типи даних в лінійних алгоритмах - алгоритмах, у яких команди виконуються в порядку їх запису, тобто послідовно в часі одна за одною від початку до кінця.
  1. Напишіть програму, яка отримує три цілих числа, введені з клавіатури (кожне число вводиться на окремому рядку), і друкує на екрані їх суму, добуток, результат піднесення першого числа до степеня різниці другого і третього чисел.


Вхідні дані:

2
3
6

Вихідні дані:

11
36
0.125

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка приймає ціле число n і обчислює значення виразу n + nn + nnn.


Вхідні дані:

5
3
1

Вихідні дані:

615
369
123

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка отримує такі дані: ім’я, вік, хобі, введені з клавіатури (вводяться на окремих рядках), і друкує на екрані одним повідомленням повну інформацію на основі введених даних.


Вхідні дані:

Lord Voldemort
72
Magic

Вихідні дані:

My name is Lord Voldemort. I am 72 and my hobby is Magic.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка зчитує довжину основи та висоту прямокутного трикутника (цілі числа), обчислює площу і друкує її значення на екрані у відформатованому вигляді (два символи після десяткової крапки). Кожен параметр вводиться на окремому рядку.


Вхідні дані:

3
4

Вихідні дані:

6.00

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка зчитує ціле число, і друкує попереднє та наступне числа відносно введеного.


Вхідні дані:

179

Вихідні дані:

The next number for the number 179 is 180.
The previous number for the number 179 is 178.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Вводиться ціле додатне число. Надрукуйте останню цифру числа.


Вхідні дані:

179
40
101

Вихідні дані:

9
0
1

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка друкує на екрані наступне повідомлення: Hello, Starlink subscriber! Your current balance is 125.56 UAH. Назва стільникової мережі і значення балансу вводиться з клавіатури.


Вхідні дані:

Starlink
4425

Вихідні дані:

Hello, Starlink subscriber! Your current balance is 4425.0 UAH.

Розділ: Змінні і типи даних | Рівень складності: початковий

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


Вхідні дані:

Gordon
Freeman

Вихідні дані:

Hello, Freeman Gordon!

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка вітає користувача, виводячи слово Hello, введене ім’я і розділові знаки за зразком (дивитися приклади вхідних і вихідних даних). Програма повинна зчитувати в рядкову змінну значення і виводити відповідне вітання. Зверніть увагу, що після коми повинен обов’язково стояти пропуск, а перед знаком оклику пропуску немає. Операцією конкатенації (об’єднанням) рядків (+) користуватися не можна.


Вхідні дані:

Alex

Вихідні дані:

Hello, Alex!

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Вводиться ціле невід’ємне число n (n ≤ 100). Виведіть 2n.


Вхідні дані:

10
12
5

Вихідні дані:

1024
4096
32

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Дано двоцифрове число. Знайдіть число десятків у ньому.


Вхідні дані:

42
67
81

Вихідні дані:

4
6
8

Розділ: Змінні і типи даних | Рівень складності: початковий

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


Вхідні дані:

10000000
1000
12003

Вихідні дані:

10,000,000
1,000
12,003

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка отримує значення радіуса кола (дробове число) від користувача та обчислює площу круга і довжину колу. Виведення результату відбувається з трьома символами після десяткової крапки. Значення числа Пі округлити до сотих.


Вхідні дані:

5

Вихідні дані:

78.540
31.400

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для запису і розв’язування виразу (a + b) * (a + b), де a і b - натуральні цілі числа.


Вхідні дані:

4
3

Вихідні дані:

(4 + 3) * (4 + 3) = 49

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для перетворення висоти (вказується окремо у футах (1 фут = 30,48 см) і дюймах (1 дюйм = 2,54 см) у сантиметри.


Вхідні дані:

Feet: 10
Inches: 5

Вихідні дані:

Your height is: 318 cm.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для перетворення відстані (вказана у футах) у дюйми (1 фут = 12 дюймів), ярди (1 фут = 0,333333333 ярда) і милі (1 фут = 0,000189393939 милі).


Вхідні дані:

Input distance in feet: 22

Вихідні дані:

The distance in inches is 264 inches.
The distance in yards is 7.333 yards.
The distance in miles is 0.004 miles.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, щоб отримати ASCII значення введеного з клавіатури символа.


Вхідні дані:

G
w
+

Вихідні дані:

71
119
43

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, щоб вивести символ за введеним ASCII значенням.


Вхідні дані:

97
121
55

Вихідні дані:

a
y
7

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Користувач вводить значення чисел a і b з клавіатури. Напишіть програму для друку дії додавання і результату обчислення як у вихідних даних.


Вхідні дані:

30
20

Вихідні дані:

30 + 20 = 50

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка зчитує значення двох змінних a і b, потім змінює їх значення місцями (тобто в змінній a має бути записано те, що раніше зберігалося в b, а в змінній b записано те, що раніше зберігалося в a). Потім виведіть значення змінних. Виконайте подане завдання без використання третьої змінної. У якому порядку значення змінних були введені, у тому ж порядку повинні і виводитися.


Вхідні дані:

34
190

Вихідні дані:

190
34

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для друку дробових чисел у форматі до 2 десяткових знаків.


Вхідні дані:

3.1415926
1.4567
5.8

Вихідні дані:

3.14
1.46
5.80

Розділ: Змінні і типи даних | Рівень складності: початковий

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


Вхідні дані:

125
20
12805

Вихідні дані:

00125
00020
12805

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, щоб надрукувати цілі числа із справа, якщо введене число має у своєму записі менше 7 розрядів.


Вхідні дані:

23
1400231
-16

Вихідні дані:

23*****
1400231
-16****

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для форматування числа з відсотком.


Вхідні дані:

0.05
0.245
1

Вихідні дані:

5.00%
24.50%
100.00%

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка отримує три цифри і друкує їх суму. Кожна цифра вводиться на окремому рядку.


Вхідні дані:

1
3
5

Вихідні дані:

9

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, щоб конвертувати усі введені користувачем одиниці часу (дні, години, хвилини, секунди) в загальну кількість секунд.


Вхідні дані:

Days: 1
Hours: 16
Minutes: 25
Seconds: 50

Вихідні дані:

The amounts of seconds: 145550.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Необхідно певну суму грошей залишити на банківському рахунку, щоб отримувати відсотки по закінченню певного часу. Наприклад, через 10 років ви хотіли б отримати 10 000 доларів США на власному рахунку. Скільки потрібно внести грошей на депозит сьогодні, щоб це сталося? Для розв’язування цієї задачі можна використовувати формулу p = f/(1+r)*n, де p - це поточна сума, яку потрібно внести сьогодні, f - майбутнє значення, яке ви хочете отримати (у нашому випадку становить 10 000 доларів США), r - річна відсоткова ставка, n - кількість років перебування грошей на рахунку.


Вхідні дані:

Enter the desired future value: 10000
Enter the annual interest rate: 0.05
Enter the number of years the money will grow: 10

Вихідні дані:

You will need to deposit this amount: 6139.13.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка обчислює значення a + aa + aaa + aaaa із заданою цифрою як цілочисельне значення a.


Вхідні дані:

9
1
3

Вихідні дані:

11106
1234
3702

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Вивести на екран три цілих числа в один рядок через пропуск у порядку, зворотному введенню чисел.


Вхідні дані:

4
12
-7

Вихідні дані:

-7 12 4

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Обчисліть n181 і виведіть на екран обчислене значення. Значення n - ціле число, яке вводиться з клавіатури.


Вхідні дані:

2

Вихідні дані:

3064991081731777716716694054300618367237478244367204352

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Дано два цілих додатних числа a і b, які не перевищують 1000. Обчисліть і виведіть гіпотенузу трикутника із заданими катетами.


Вхідні дані:

10
18

Вихідні дані:

20.591260281974

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Вводяться три додатних числа - довжини сторін трикутника. Обчисліть площу трикутника за формулою Герона.


Вхідні дані:

3
4
5

Вихідні дані:

6.0

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка виконує усі арифметичні дії і піднесення до степеня з двома змінними a і b в такому порядку: додавання, віднімання, множення, ділення, піднесення до степеня.


Вхідні дані:

15
2

Вихідні дані:

17
13
30
7.5
225

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Цілі числа a і b вводяться користувачем. Напишіть програму для обчислення значення математичного виразу (45 + a - 11) / (b - 5)3.


Вхідні дані:

5
10

Вихідні дані:

0.312

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка обчислює суму, різницю, добуток, частку двох чисел, піднесення до степеня, розділяючи результати, записані в один рядок, символом &.


Вхідні дані:

6
3

Вихідні дані:

9&3&18&2.0&216

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка виводить результат ділення цілих змінних a / b і b / a з роздільником ∗∗∗ у форматі 9 знакових позицій і 5 знаків після десяткової крапки відповідно.


Вхідні дані:

10
3

Вихідні дані:

  3.33333***  0.30000

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для виведення такого повідомлення на екран: Points: 145, 67, 111. Довільні цілі числа вводить користувач з клавіатури і їх значення підставляються у повідомлення автоматично.


Вхідні дані:

145
67
111

Вихідні дані:

Points: 145, 67, 111.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для перетворення значення введеного користувачем з клавіатури (як відомо, вводиться текстовий рядок) у дійсне і ціле число.


Вхідні дані:

345.89012

Вихідні дані:

345.89012
345

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Введіть з клавіатури в окремих рядках різні типи величин: ціле число, текстовий рядок, дійсне число. Виведіть інформацію про типи введених даних.


Вхідні дані:

20
Python
14.7

Вихідні дані:

<class 'int'>
<class 'str'>
<class 'float'>

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Перетворіть введене з клавіатури ціле число у дробове і виведіть його на екран з трьома знаками після десяткової крапки.


Вхідні дані:

144
5
0

Вихідні дані:

144.000
5.000
0.000

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Перетворіть введене з клавіатури дробове число у ціле і виведіть його на екран.


Вхідні дані:

8.3
4.6
2.86

Вихідні дані:

8
4
2

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Перевірте приналежність до типу int таких величин як ціле число, текстовий рядок, дробове число.


Вхідні дані:

12
Guido van Rossum
19.56

Вихідні дані:

True
False
False

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму для друку повідомлення: «Значення змінної назва змінної дорівнює значення змінної, а її тип тип змінної.» Значення змінної вводять з клавіатури і у повідомленні виводиться у лапках.


Вхідні дані:

45  # рядок
45  # ціле число
45  # дійсне число

Вихідні дані:

Value of a is "45", and its type <class 'str'>.
Value of b is "45", and its type <class 'int'>.
Value of c is "45.0", and its type <class 'float'>.

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Припускаючи, що немає затримок, відстань, яку автомобіль долає, можна розрахувати за такою формулою: Відстань = Швидкість · Час. Значення швидкості автомобіля вводиться користувачем з клавіатури (у км/год). Напишіть програму, яка виведе на екран значення відстані у кілометрах, яку пройде автомобіль через 6, 10, 15 годин відповідно.


Вхідні дані:

70

Вихідні дані:

420
700
1050

Розділ: Змінні і типи даних | Рівень складності: початковий

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


Вхідні дані:

150
0.3

Вихідні дані:

105.0

Розділ: Змінні і типи даних | Рівень складності: початковий

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


Вхідні дані:

12
-2
54

Вихідні дані:

54
-2

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Визначити, яку платню одержить на фірмі сумісник за виконану роботу, якщо йому нараховано s гривень, а податок становить p. Значення платні і податку (у %) вводяться користувачем.


Вхідні дані:

100
20

Вихідні дані:

80.0

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Сашко, зазвичай, спить вночі a годин і влаштовує собі вдень тиху годину на b хвилин. Визначте, скільки всього хвилин Сашко спить на добу.


Вхідні дані:

8
45

Вихідні дані:

525

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Напишіть програму, яка отримує від користувача два числа a і b і виводить значення виразу ab.


Вхідні дані:

2
8

Вихідні дані:

256

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Троє друзів отримали в кафе рахунок на суму n гривень, який вони вирішили розділити порівну. Скільки повинен заплатити кожен з них, якщо чайові складають 10% від суми рахунку?


Вхідні дані:

46.70
122.50
25.20

Вихідні дані:

17.12
44.92
9.24

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Дано відстань n в метрах. Знайти кількість повних кілометрів в ній.


Вхідні дані:

1737
100
384400000

Вихідні дані:

1
0
384400

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Внесок в банк склав n гривень. Через рік банк нараховує вкладнику a відсотків від суми вкладу. Скільки грошей буде на рахунку через рік?


Вхідні дані:

1000
8

Вихідні дані:

1080.0

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. Знайдіть модуль значення y, де

y = (a / b)x + (a(x+1)) / (b(x)).

Введення здійснюється в такому порядку: a, b, x.


Вхідні дані:

1
-1
5

Вихідні дані:

2.0

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. В магазині канцелярських товарів Дарина купила a олівців, b ручок та c фломастерів. Відомо, що ціна ручки на 2 гривні більша ціни на олівець і на 7 гривень менша ціни на фломастера. Так само відомо, що вартість олівця становить d гривень. Користувачем вводяться по порядку в окремих рядках кількість олівців, ручок, фломастерів і ціна одного олівця. Необхідно обчислити загальну вартість покупки.


Вхідні дані:

1
2
2
3

Вихідні дані:

37

Розділ: Змінні і типи даних | Рівень складності: початковий

  1. n студентів беруть k яблук і розподіляють між собою порівну. Решта фруктів залишається в кошику. Скільки яблук отримає кожен студент? Скільки яблук залишиться в кошику? Програма зчитує числа n і k і друкує на екрані дві відповіді на поставлені вище запитання.


Вхідні дані:

6
50

Вихідні дані:

8
2

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Дано натуральне число. Знайдіть цифру, що стоїть в розряді десятків в десятковому записі числа (друга цифра, якщо рахувати з кінця запису).


Вхідні дані:

1981
158
5

Вихідні дані:

8
5
0

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Мама спекла пиріг з яблуками, в якому було 60% яблук, а решта - тісто. При цьому 30% тіста становили яйця і цукор, решта - борошно. Вся маса пирога дорівнює m кг. Яка маса борошна в пирозі в грамах?


Вхідні дані:

1.2
1
1.5

Вихідні дані:

336.0
280.0
420.0

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Знайти кількість відрізків b, розміщених на відрізку a, і довжину незайнятої частини на відрізку a. Користувачем вводиться довжина відрізка a, а потім довжина відрізка b на окремих рядках. Відповідь виводиться в одному рядку: кількість відрізків b і довжина незайнятої частини відрізка a.


Вхідні дані:

121
11

Вихідні дані:

11 0

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Вводиться додатне ціле трицифрове число. Знайти суму цифр числа.


Вхідні дані:

153
123
565

Вихідні дані:

9
6
16

Розділ: Змінні і типи даних | Рівень складності: середній

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


Вхідні дані:

450

Вихідні дані:

7
30

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Оленка дізналася, що їй для сну треба t хвилин. На відміну від Тетяни, Оленка лягає спати після опівночі в h годин і m хвилин. Допоможіть Оленці визначити, на який час їй поставити будильник, щоб він продзвенів рівно через t хвилин після того, як вона ляже спати. В окремомих рядках вводяться значення t, h і m відповідно. Гарантується, що Оленка повинна прокинутися в той же день, що і заснути. Програма повинна виводити час, на який потрібно поставити будильник: в першому рядку години, в другому - хвилини.


Вхідні дані:

430
1
40

Вихідні дані:

8
50

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Напишіть програму для перетворення введених секунд у кількість днів, годин, хвилин та секунд.


Вхідні дані:

6785
456789
86401

Вихідні дані:

0 day(s), 1 hour(s), 53 minute(s), 5 second(s).
5 day(s), 6 hour(s), 53 minute(s), 9 second(s).
1 day(s), 0 hour(s), 0 minute(s), 1 second(s).

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Враховуючи ціле число n - кількість хвилин, що пройшли з опівночі, - скільки годин і хвилин відображаються на екрані 24-годинного цифрового годинника? Програма повинна друкувати два числа: кількість годин (від 0 до 23) і кількість хвилин (від 0 до 59). Наприклад, якщо n = 150, то після опівночі пройшло 150 хвилин, тобто зараз 2:30 ранку. Так що програма повинна друкувати 2 30.


Вхідні дані:

150
25
440

Вихідні дані:

2 30
0 25
7 20

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Вводиться додатне дійсне число, надрукуйте його дробову частину.


Вхідні дані:

17.9
1.066
0.01

Вихідні дані:

0.9
0.066
0.01

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Автомобіль може проїхати відстань n кілометрів за день. Скільки днів пройде для проїзду маршруту довжиною m кілометрів? Програма отримує два цілих додатних числа: n і m.


Вхідні дані:

600
625

Вихідні дані:

2

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Вводиться число n, необхідно «відрізати« від нього k останніх цифр. Наприклад, при n = 123456 і k = 3 відповідь повинна бути 123.


Вхідні дані:

456712
2

Вихідні дані:

4567

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Книга коштує a гривень і b копійок. Визначте, скільки гривень і копійок потрібно заплатити за n книг. Значення вводяться користувачем у порядку a, b, n на окремих рядках, а сума до сплати в одному рядку через пропуск: кількість гривень і копійок відповідно.


Вхідні дані:

10
15
2

Вихідні дані:

20 30

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Вводиться цифра 0 або 1, необхідно вивести 1 або 0 відповідно, не використовуючи конструкцію розгалуження.


Вхідні дані:

0
1

Вихідні дані:

1
0

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Задане число n записали 100 разів поспіль і потім піднесли до квадрату. Що вийшло?


Вхідні дані:

1
2

Вихідні дані:

123456790123456790123...987654321
493827160493827160493...950617284

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Напишіть програму сумування перших n натуральних чисел. Результатом має бути ціле число.


Вхідні дані:

100
15
99

Вихідні дані:

5050
120
4950

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Напишіть програму для обчислення координат середини відрізка.


Вхідні дані:

x1: 3
y1: 5
x2: 10
y2: -4

Вихідні дані:

The midpoint's x value is: 6.5
The midpoint's y value is: 0.5

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Напишіть програму, щоб перетворити ціле число в бінарне (двійкове). Передбачте зберігання провідних нулів у двійковому записі.


Вхідні дані:

389
65
2

Вихідні дані:

110000101
01000001
00000010

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Напишіть програму для перетворення десяткового числа у шістнадцяткове.


Вхідні дані:

266
55
450

Вихідні дані:

10a
37
1c2

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Число n10 записали чотири рази поспіль, де n - ціле число, яке вводить користувач. З числа, що вийшло, обчислили корінь степеня 10. Скільки вийшло?


Вхідні дані:

181
3
45

Вихідні дані:

1437734104.8509512
94.868424673903
5665164.353073757

Розділ: Змінні і типи даних | Рівень складності: середній

  1. За правилами числа округлюються до найближчого цілого числа, а якщо дробова частина числа дорівнює 0.5, то число округляється вгору. Дано невід’ємне число a, яке необхідно округлити за цими правилами. Зверніть увагу, що функція round() не годиться для цього завдання! Використовувати розгалуження, цикли, математичний модуль math не можна.


Вхідні дані:

2.5
5.4
56.87

Вихідні дані:

3
5
57

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Припустимо, учнівські канікули тривали кілька днів. Напишіть програму, на вхід якої подається кількість днів, а на екран виводиться у відформатованому вигляді (вирівнювання за лівим краєм, ширина поля: 10 знаків) загальна тривалість канікул у годинах, хвилинах, секундах.


Вхідні дані:

15

Вихідні дані:

360        hours
21600      minutes
1296000    seconds

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Виконайте перетворення значення температури у градусах Цельсія (С) для інших температурних шкал: Фаренгейта (F) і Кельвіна (K). Програма повинна відображати еквівалентну температуру у градусах Фаренгейта (F = 32 + 9/5 * C) і у градусах Кельвіна (K = C + 273,15).


Вхідні дані:

25

Вихідні дані:

25 Celsius = 77.000 Fahrenheit = 298.150 Kelvin

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Отримати реверсний (в зворотному порядку) запис введеного користувачем трицифрового числа.


Вхідні дані:

184

Вихідні дані:

481

Розділ: Змінні і типи даних | Рівень складності: середній

  1. Школа вирішила замінити парти у трьох кабінетах. Кожна парта розрахована на двох учнів. Враховуючи кількість учнів у кожному класі, надрукуйте найменшу можливу кількість парт, які треба придбати. Програма повинна прочитати три цілих числа: кількість учнів в кожному з трьох класів a, b та c відповідно.


Вхідні дані:

20
21
22

Вихідні дані:

32

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Дано п’ятизначне десяткове число. Побудуйте нове десяткове число за наступними правилами. Необхідно обчислити два числа, з яких перше - це сума першої, третьої та п’ятої цифр і друге число - це сума другої і четвертої цифр введеного числа. Відповідь - це отримані два числа, які записуються один за одним в одному рядку.


Вхідні дані:

12345
44444
11111

Вихідні дані:

96
128
32

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Дано ціле число n. Виведіть наступне за ним парне число.


Вхідні дані:

7
10
11

Вихідні дані:

8
12
12

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Електронний годинник показує час в форматі h: mm: ss, тобто спочатку записується кількість годин (число від 0 до 23, потім обов’язково двозначна кількість хвилин, потім обов’язково двозначна кількість секунд. Кількість хвилин і секунд при необхідності доповнюються до двозначного числа нулями. З початку доби минуло n секунд. Виведіть, що покаже годинник.


Вхідні дані:

3602
4556789
4568

Вихідні дані:

1:00:02
17:46:29
1:16:08

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Дано два моменти часу в межах однієї доби. Для кожного моменту вказано години, хвилини і секунди. Відомо, що другий момент часу настав не раніше першого. Визначте скільки секунд пройшло між двома моментами часу. Програма на вхід отримує шість цілих чисел в окремих рядках. Перші три цілих числа відповідають годинам, хвилинам і секундам першого моменту, наступні три числа відповідають другому моменту. Години задаються числом від 0 до 23 включно. Хвилини і секунди - від 0 до 59.


Вхідні дані:

1
1
1
2
2
2

Вихідні дані:

3661

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Равлик повзе по вертикальній жердині висотою h метрів, піднімаючись за день на a метрів, а за ніч спускаючись на b метрів. На який день равлик доповзе до вершини жердини? Дані вводяться у порядку h, a, b.


Вхідні дані:

10
3
2

Вихідні дані:

8

Розділ: Змінні і типи даних | Рівень складності: високий

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


Вхідні дані:

2002

Вихідні дані:

1

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Напишіть програму, яка зчитує два цілих числа a і b і виводить найбільше значення з них. Числа - цілі від 1 до 1000. При розв’язуванні задачі можна користуватися тільки цілочисельними арифметичними операціями. Не можна користуватися розгалуженнями, циклами, функціями.


Вхідні дані:

8
5

Вихідні дані:

8

Розділ: Змінні і типи даних | Рівень складності: високий

  1. У цьому завданні необхідно перевірити, чи ділиться число a на число b без остачі і вивести YES або NO. Використовувати можна тільки арифметичні операції, використання будь-яких видів розгалужень, функцій заборонено.


Вхідні дані:

10
5

Вихідні дані:

YES

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Напишіть програму для розрахунку суми цифр у 4-цифровому цілому числі, яке вводиться користувачем.


Вхідні дані:

4273
1221
3355

Вихідні дані:

16
6
16

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Напишіть програму для сортування трьох цілих чисел без використання умовних виразів і циклів.


Вхідні дані:

1
8
5

Вихідні дані:

1 5 8

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Необхідно перевезти n книг. Для транспортування можна використовувати коробки, які вміщають m книг кожна. Порахуйте, яку кількість коробок необхідно використати для перевезення всіх книг за один раз. Користувачем вводиться два цілих числа n і m, а програма виводить одне ціле число - мінімальну кількість коробок.


Вхідні дані:

40
15

Вихідні дані:

3

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Напишіть програму, яка по даному числу n від 1 до 9 виводить на екран n пінгвінів. Зображення одного пінгвіна має розмір 5 × 9 символів, між двома сусідніми пінгвінами також є порожній (з пропусків) стовпець. Дозволяється вивести порожній стовпець після останнього пінгвіна. Для спрощення малювання скопіюйте пінгвіна з прикладу в середовище розробки.


Вхідні дані:

3

Вихідні дані:

    _~_       _~_       _~_
   (o o)     (o o)     (o o)
  /  V  \   /  V  \   /  V  \
 /(  _  )\ /(  _  )\ /(  _  )\
   ^^ ^^     ^^ ^^     ^^ ^^

Розділ: Змінні і типи даних | Рівень складності: високий

  1. В деякій школі заняття починаються о 9:00. Тривалість уроку - 45 хвилин, після 1-го, 3-го, 5-го і т. д. уроків перерва 5 хвилин, а після 2-го, 4-го, 6-го і т. д. - 15 хвилин. Вводиться номер уроку (число від 1 до 10). Визначте, коли закінчується зазначений урок, а саме, виведіть два цілих числа: час закінчення уроку в годинах і хвилинах.


Вхідні дані:

3
4
5

Вихідні дані:

11 35
12 25
13 25

Розділ: Змінні і типи даних | Рівень складності: високий

  1. У годиннику сіла батарейка, і вони стали йти вдвічі повільніше. Коли на годиннику було x1 годин y1 хвилин, правильний час був a1 годин b1 хвилин. Скільки часу буде насправді, коли годинник в наступний раз покаже x2 годин y2 хвилин? Програма отримує на вхід числа x1, y1, a1, b1, x2, y2 в зазначеному порядку. Всі числа цілі. Числа x1, a1, x2 - від 0 до 23, числа y1, b1, y2 - від 0 до 59. Виведіть два числа a2 і b2, що визначають скільки буде часу насправді, коли на годиннику буде x2 годин y2 хвилин.


Вхідні дані:

12
34
10
34
12
35

Вихідні дані:

10 36

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Вводиться додатне дійсне число a. Виведіть його першу цифру після десяткового дробу. При розв’язуванні цього завдання не можна користуватися умовною конструкцією і циклом.


Вхідні дані:

4.65
12.06
12.46

Вихідні дані:

6
0
4

Розділ: Змінні і типи даних | Рівень складності: високий

  1. З початку доби минуло h годин, m хвилин, s секунд (0 < h < 12, 0 < m < 60, 0 < s < 60). За даними числами h, m, s визначте кут (в градусах), на який повернулаcь годинникова стрілка з початку доби і виведіть його у вигляді дійсного числа. При розв’язуванні цього завдання не можна користуватися умовними конструкціями і циклами.


Вхідні дані:

2
10
45

Вихідні дані:

65.375

Розділ: Змінні і типи даних | Рівень складності: високий

  1. З початку доби годинникова стрілка повернулася на кут a градусів. Визначте на який кут повернулась хвилинна стрілка з початку останньої години. Вхідні і вихідні дані - дійсні числа. При розв’язуванні цього завдання не можна користуватися умовними конструкціями і циклами.


Вхідні дані:

190
170
370

Вихідні дані:

120.0
240.0
120.0

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Відомо, що батько старший за сина на n років, а син молодший батька в m разів. Визначте, скільки років батькові і скільки років синові. Вхідні дані такі, що вік батька і вік сина є цілими числами. Програма має вивести два числа, розділені пропуском: вік батька і вік сина.


Вхідні дані:

20
5

Вихідні дані:

25 5

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Дано прямокутник з розмірами a x b мм. Скільки квадратів зі стороною c мм можна відрізати від нього? Вхідні дані такі, що сторони прямокутника і квадрата є цілими числами. Програма повинна вивести одне число: кількість квадратів, які можна відрізати від даного прямокутника.


Вхідні дані:

5
4
2

Вихідні дані:

4

Розділ: Змінні і типи даних | Рівень складності: високий

  1. У книзі на одній сторінці поміщається k рядків. Таким чином, на 1-й сторінці друкуються рядки з 1-го по k-й, на другій сторінці - з (k + 1)-й по (2 * k)-й і т. д. Напишіть програму, на вхід якої подається кількість рядків k на сторінці і номер рядка n в тексті, по якому визначається номер сторінки, на якій буде надрукований цей рядок, і порядковий номер цього рядка на сторінці.


Вхідні дані:

20
25

Вихідні дані:

2 5

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Потрібно підрахувати, на скільки раніше буде закінчуватися k-й урок, якщо всі перерви скоротити на 5 хвилин. Вводиться одне натуральне число k, не більше 7. Необхідно вивести одне натуральне число - час у хвилинах.


Вхідні дані:

2
3
5

Вихідні дані:

5
10
20

Розділ: Змінні і типи даних | Рівень складності: високий

  1. Ви придбали товар на певну суму s. Скільки купюр різного номіналу треба віддати продавцю, якщо починати платити з найбільших? У вас є 1, 2, 5, 10, 100, 500 гривень.


Вхідні дані:

534
1245
12

Вихідні дані:

1 (500), 0 (100), 3 (10), 0 (5), 4 (1)
2 (500), 2 (100), 4 (10), 1 (5), 0 (1)
0 (500), 0 (100), 1 (10), 0 (5), 2 (1)

Розділ: Змінні і типи даних | Рівень складності: високий

2.2. Розгалуження

Даний розділ містить задачі, розв’язування яких передбачає використання алгоритмів з розгалуженням - алгоритмів, у яких, залежно від виконання деякої умови, виконується одна або інша послідовність команд.
  1. Напишіть програму, в якій користувач вводить пароль і якщо він співпадає із наперед визначеним паролем для цього користувача, то виводиться повідомлення Password accepted.. У іншому випадку повідомлення буде Sorry, that is the wrong password..


Вхідні дані:

starlink
12345

Вихідні дані:

Password accepted.
Sorry, that is the wrong password.

Розділ: Розгалуження | Рівень складності: початковий

  1. Користувачем вводиться два імені. Використовуючи конструкцію розгалуження програма повинна вивести імена в алфавітному порядку.


Вхідні дані:

Guido van Rossum
Dennis Ritchie

Вихідні дані:

Dennis Ritchie
Guido van Rossum

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, яка виводить назви введених чисел. Користувач вводить ціле число. Якщо це число або 1 або 2 або 3, то виводиться повідомлення - назва числа, відповідно, One, Two, Three. В усіх інших випадках виводиться слово Unknown.


Вхідні дані:

20
1
2
3

Вихідні дані:

Unknown
One
Two
Three

Розділ: Розгалуження | Рівень складності: початковий

  1. Користувач вводить дві різних англійські літери в окремих рядках. Напишіть програму, яка виводить повідомлення про місце розташування однієї літери відносно іншої у алфавіті.


Вхідні дані:

z
a

Вихідні дані:

z is not less than a

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, в якій користувач вводить значення температури, і, якщо це значення менше або дорівнює 0 градусів Цельсія, необхідно вивести повідомлення A cold, isn’t it?. Якщо ж температура становить більше 0 і менше 10 градусів Цельсія повідомлення буде Cool., у інших випадках Nice weather we’re having..


Вхідні дані:

12.5
-5
9

Вихідні дані:

Nice weather we're having.
A cold, isn't it?
Cool.

Розділ: Розгалуження | Рівень складності: початковий

  1. У чемпіонаті з футболу команді за виграш дається 3 очка, за програш - 0, за нічию - 1. Відомо кількість очок, отриманих командою за гру. Вивести результат гри у вигляді відповідних слів: «виграш», «програш» або «нічия».


Вхідні дані:

3
1
0

Вихідні дані:

win
draw
lose

Розділ: Розгалуження | Рівень складності: початковий

  1. Відомі дві швидкості: одна в кілометрах за годину, інша - в метрах за секунду. Яка з швидкостей більше?


Вхідні дані:

60
18

Вихідні дані:

18

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано радіус кола і сторона квадрата (дійсні числа). У якої фігури площа більше?


Вхідні дані:

2.5
3.5
3.6
7.5

Вихідні дані:

Circle
Square

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано маси і об’єми двох тіл, виготовлених з різних матеріалів (дійсні числа). Матеріал якого з тіл має більшу густину? Введення величин відбувається у такому порядку: m1, v1, m2, v2.


Вхідні дані:

2
3.5
1.5
2.3

Вихідні дані:

1.5 2.3

Розділ: Розгалуження | Рівень складності: початковий

  1. Серед учнів школи проводилося тестування з трьох предметів, по кожному з яких учні отримали певну кількість балів (цілі числа). Напишіть програму, яку можуть використати учні для обчислення їхнього середнього балу трьох тестів і виведення середнього значення. Окрім того, необхідно передбачити виведення повідомлення Congratulations! That is a great average!, якщо середній бал більший ніж 95.


Вхідні дані:

143
112
135

Вихідні дані:

130.00
Congratulations! That is a great average!

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, на вхід якої подається два цілих числа - вік Сашка і вік Тетянки. Програма має вивести повідомлення про те, хто є старшим серед них.


Вхідні дані:

17
22

Вихідні дані:

Tatyana is the eldest.

Розділ: Розгалуження | Рівень складності: початковий

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


Вхідні дані:

2
2

Вихідні дані:

0

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, щоб перевірити, чи є введене число додатним, від’ємним або це нуль.


Вхідні дані:

7
-5.6
0

Вихідні дані:

It is positive number
It is a negative number
It is Zero

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, яка зчитує два цілих числа a і b (від 1 до 1000) та виводить найбільше значення з них.


Вхідні дані:

12
3

Вихідні дані:

12

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, яка друкує Yes, якщо вводяться рядки yes або YES або Yes, у інших випадках друкує No.


Вхідні дані:

yes
YES
definitely

Вихідні дані:

Yes
Yes
No

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано три цілих числа. Визначте, скільки серед них збігаються. Програма повинна вивести одне з чисел: 3 (якщо усі однакові), 2 (якщо два однакові) або 0 (якщо усі числа різні).


Вхідні дані:

5
5
5

Вихідні дані:

3

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, яка визначає поведінку космічного апарата, що стартує на екваторі, залежно від його початкової швидкості v, заданої у км/с (дійсні числа). Як ви знаєте з уроків фізики, тут можливі чотири випадки: при v < 7,8 км/с апарат впаде на поверхню Землі; при 7,8 ≤ v < 11,2 км/с апарат стане супутником Землі; при 11,2 ≤ v < 16,4 км/с апарат стане супутником Сонця; при v ≥ 16,4 км/с космічний апарат покине Сонячну систему.


Вхідні дані:

12.5
22.56
8.3

Вихідні дані:

The device became a satellite of the Sun.
The device left the Solar system.
The device became a satellite of the Earth.

Розділ: Розгалуження | Рівень складності: початковий

  1. В університеті використовується наступна шкала для інтерпретації результатів тестування студентів: 90 балів і вище (A), 80-89 (B), 70-79 (C), 60-69 (D), нижче 60 (F). Напишіть програму, яка дозволить студенту ввести тестовий бал, а потім відобразити оцінку для цього балу.


Вхідні дані:

95
48
74

Вихідні дані:

Your grade is A.
Your grade is F.
Your grade is C.

Розділ: Розгалуження | Рівень складності: початковий

  1. Автомобіль подолав відстань s км через населений пункт за t хв. Визначити, чи не порушив водій правил дорожнього руху, якщо швидкість автомобіля при цьому не повинна перевищувати 60 км/год.


Вхідні дані:

3
3
4
1

Вихідні дані:

Traffic rules are executed.
Traffic rules are not met.

Розділ: Розгалуження | Рівень складності: початковий

  1. Користувач вводить значення температури t у градусах Цельсія. Напишіть програму, яка виводить назву стану, у якому знаходиться вода при цій температурі за нормальних умов.


Вхідні дані:

-10.5
25
120

Вихідні дані:

ice
water
water vapor

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано п’ять цілих чисел a, b, c, d, e. Визначити, скільки з них додатних.


Вхідні дані:

3
-2
5
0
-1

Вихідні дані:

2

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано ціле число a. Знайти значення виразу: a/(|a|-10). Врахувати у програмі випадок, коли відбувається ділення на нуль.


Вхідні дані:

10
20
-10

Вихідні дані:

Division by zero!
2.0
Division by zero!

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, яка запитує користувача номер в діапазоні від 1 до 7. Програма повинна відображати відповідний день тижня, де 1 - це понеділок, а 7 - неділя. Програма має враховувати варіант, коли користувач вводить номер, що знаходиться за межами діапазону від 1 до 7.


Вхідні дані:

5
10
2

Вихідні дані:

Friday
There is no such day of the week.
Tuesday

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, яка просить користувача ввести вік людини (ціле число). Програма повинна вивести повідомлення про те, чи є особа немовлям, дитиною, підлітком або дорослим за такими правилами: якщо людині 1 рік або менше, він або вона є немовлям, якщо особа старше 1 року, але молодше 13 років, вона є дитиною, якщо особа не молодше 13 років, але молодше 20 років, вона є підлітком і якщо особа віком старше 20 років, вона є дорослою.


Вхідні дані:

3
14
1
25

Вихідні дані:

You are a child.
You are a teenager.
You are an infant.
You are an adult.

Розділ: Розгалуження | Рівень складності: початковий

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


Вхідні дані:

8
10
12

Вихідні дані:

VIII
X
You entered a number without the range.

Розділ: Розгалуження | Рівень складності: початковий

  1. Дату 2 жовтня 2020 р. будемо називати «магічною», оскільки, коли вона записана у форматі 02.10.20, добуток значень дня і місяця дорівнюють значенню року. Напишіть програму, яка запропонує користувачеві ввести день, місяць і рік (лише останні дві цифри) у числовій формі. Програмі слід вивести повідомлення про те, що введена дата є «магічною». В іншому випадку має бути повідомлення, що це звичайна дата.


Вхідні дані:

02
10
20

Вихідні дані:

The date is magic!

Розділ: Розгалуження | Рівень складності: початковий

  1. Червоний, зелений та синій кольори відомі як основні кольори колірної моделі RGB. При змішуванні червоного та зеленого кольорів, отримується жовтий, при змішуванні синього і зеленого - блакитний, а при змішуванні синього і червоного – пурпуровий колір. Напишіть програму, яка запропонує користувачеві ввести назви двох основних кольорів для змішування. Якщо користувач вводить щось інше, ніж «червоний», «синій» або «зелений», програма повинна виводити повідомлення про відсутність такої палітри. В іншому випадку програма повинна відображати назву кольору, що утворився.


Вхідні дані:

blue
red

Вихідні дані:

Magenta

Розділ: Розгалуження | Рівень складності: початковий

  1. Книжковий інтернет-магазин має книжковий клуб, який нараховує бали своїм клієнтам на основі кількості книг, що купуються щомісяця (бали можна використати як знижку при черговому придбанні книги). Бали нараховуються таким чином: якщо клієнт купує менше 2 книг, він отримує 0 балів; якщо клієнт купує від 2 книг до 4 книг, він отримує 5 балів; якщо клієнт купує від 4 книг і до 6 книг, він заробляє 15 балів; якщо клієнт купує від 6 книг до 8 книг, він заробляє 30 балів; якщо клієнт купує 8 і більше книг, він заробляє 60 балів. Напишіть програму, яка просить користувача ввести кількість книг, які він придбав у цьому місяці, і відображає кількість отриманих балів.


Вхідні дані:

6
9
1

Вихідні дані:

You earned 30 points.
You earned 60 points.
You earned 0 points.

Розділ: Розгалуження | Рівень складності: початковий

  1. Компанія-виробник програмного забезпечення у сфері інформаційної безпеки реалізує один комплект програм за 2700 гривень. Якщо відбувається купівля декількох одиниць товару, працює система знижок: 10-19 одиниць товару - 10%, 20-49 - 20%, 50-99 - 30%, 100 або більше - 40%. Напишіть програму, яка отримує від користувача ціле число - кількість придбаних комплектів програмного забезпечення і виводить повідомлення про суму знижки (якщо така є) та загальну суму при купівлі зі знижкою.


Вхідні дані:

26
3
110

Вихідні дані:

The amount of discount is 20%, total amount of the purchase after the discount is UAH 56160.0
The amount of discount is 0%, total amount of the purchase after the discount is UAH 8100
The amount of discount is 40%, total amount of the purchase after the discount is UAH 178200.0

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму, на вхід якої подається назва місяця, а програма виводить кількість днів у ньому. Врахуйте те, що місяць «Лютий» може мати 28 або 29 днів.


Вхідні дані:

September
February
August

Вихідні дані:

September has 30 days in it.
February has 28 or 29 days in it.
August has 31 days in it.

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано ціле число n (1 ≤ n ≤ 4), яке визначає пору року: весна, літо, осінь, зима. За вказаним значенням n необхідно надрукувати перелік місяців, які відносяться до цієї пори року.


Вхідні дані:

1
4
5

Вихідні дані:

March, April, May
December, January, February
Incorrect data!

Розділ: Розгалуження | Рівень складності: початковий

  1. Залежно від розміру суми, розмір податку з неї розраховується за такою схемою: якщо сума не перевищує деяку величину a, то податок не вираховується; якщо сума більша за a, але не перевищує b, то податок становить 10%; якщо сума більша за b, але не перевищує c, то податок становить 25%; якщо сума більша c, то податок становить 50%. Визначити, який податок (дійсне число) буде вираховано із суми розміром s. Дані (цілі числа) вводяться в такому порядку: a, b, c, s.


Вхідні дані:

1000
500
700
3200

Вихідні дані:

1600.0

Розділ: Розгалуження | Рівень складності: початковий

  1. Напишіть програму виведення текстового варіанта шкільних оцінок: 1, 2, 3 (початковий рівень - initial level), 4, 5, 6 (середній рівень - average level), 7, 8, 9 (достатній рівень - sufficient level), 10, 11, 12 (високий рівень - high level).


Вхідні дані:

7
10
15

Вихідні дані:

sufficient level
high level
level is absent

Розділ: Розгалуження | Рівень складності: початковий

  1. Розробіть програму для виведення інформації про операційну систему, яка встановлена на комп’ютері користувачa, при введенні відповідного номера: 1 - Window, 2 - Linux, 3 - MacOS. Передбачте у роботі програми ситуації, коли користувач вводить інший номер, відмінний від наведених, або програма на вхід отримує порожній рядок.


Вхідні дані:

2

5

Вихідні дані:

Linux
You did not enter a number. Program has completed work.
We could not determine your operating system.

Розділ: Розгалуження | Рівень складності: початковий

  1. Подорожуючи на автомобілі, ви заїхали на автозаправну станцію. До наступної заправки 200 кілометрів. Напишіть програму, яка буде визначати, чи потрібно вам заправлятися або ж можна почекати до наступної станції. Програма повинна запитати: який розмір вашого бензобаку в літрах; скільки пального в бензобаку (у відсотках); скільки кілометрів проходить автомобіль на одному літрі палива. Результатом роботи програми має бути інформація про кількість кілометрів, які ще можна проїхати і почекати до наступної автозаправної станції, або негайно заправитись.


Вхідні дані:

60
30
8

Вихідні дані:

You can drive another 144.0 kilometers.
Next refueling after 200 kilometers.
FILL IN NOW!

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано натуральне число. Визначити, чи закінчується воно цифрою 5.


Вхідні дані:

12395
123

Вихідні дані:

True
False

Розділ: Розгалуження | Рівень складності: початковий

  1. Дано три цілих числа. Необхідно надрукувати ті з них, які є парними.


Вхідні дані:

4
5
6

Вихідні дані:

4
6

Розділ: Розгалуження | Рівень складності: початковий

  1. Перевірити, чи належить число, введене з клавіатури, інтервалу (-5, 3).


Вхідні дані:

4
2
3

Вихідні дані:

False
True
False

Розділ: Розгалуження | Рівень складності: початковий

  1. Визначити, чи є число а дільником числа b або, навпаки, число b дільником числа a.


Вхідні дані:

6
3
3
2

Вихідні дані:

True
False

Розділ: Розгалуження | Рівень складності: початковий

  1. Перевести число, введене користувачем, у байти або кілобайти в залежності від його вибору. Користувач вводить значення у мегабайтах і, відповідно, вводить напрямок переведення: B (у байти) або KB (у кілобайти).


Вхідні дані:

1024
B
1024
KB

Вихідні дані:

1024 MB = 1073741824 B
1024 MB = 1048576 KB

Розділ: Розгалуження | Рівень складності: початковий

  1. Визначте назву геометричної фігури за введеною кількістю її сторін. Програма повинна підтримувати фігури від 3 до 6 сторін. Якщо введена кількість сторін поза межами цього діапазону, програма повинна відображати відповідне повідомлення.


Вхідні дані:

2
3
4
5
6

Вихідні дані:

That number of sides is not supported by this program.
That's a triangle.
That's a quadrilateral.
That's a pentagon.
That's a hexagon.

Розділ: Розгалуження | Рівень складності: середній

  1. Ігрове поле рулетки поділено на номери від 0 до 36, які мають чорний, червоний або зелений кольори. Номер 0 має зелений колір, для номерів від 1 до 10, непарні номери - червоні, а парні - чорні. Непарні номери від 11 до 18 - чорні, а парні номери - червоні. Непарні номери від 19 до 28 - червоні, а парні номери - чорні. Непарні номери від 29 до 36 - чорні, а парні номери - червоні. Напишіть програму, яка отримує номер (число від 0 до 36) та показує, чи є номер зеленим, червоним або чорним. Програма повинна враховувати варіант, якщо користувач вводить номер, який знаходиться за межами діапазону від 0 до 36.


Вхідні дані:

24
34
10
42

Вихідні дані:

Black
Red
Black
The bet will not play!

Розділ: Розгалуження | Рівень складності: середній

  1. На станції ремонту автомобілів працює кілька працівників. Якщо який-небудь працівник працює понад 40 годин на тиждень, він отримує в 1,5 рази більше від звичайної погодинної оплати. Розробіть програму, яка розраховує заробітну плату працівника, включаючи оплату за додаткові години. Програма отримує на вхід два цілих числа - кількість робочих годин і ставку погодинної оплати.


Вхідні дані:

45
15

Вихідні дані:

712.50

Розділ: Розгалуження | Рівень складності: середній

  1. Напишіть програму для знаходження коренів квадратного рівняння a*x2 + b*x + c = 0. Користувач вводить значення коефіцієнтів a, b, c. У вхідних даних наведено три пари вхідних значень коефіцієнтів, а у вихідних даних - відповідні повідомлення про кількість коренів або їх відсутність.


Вхідні дані:

8
4
2
3.6
10
-3
2
4
2

Вихідні дані:

No roots.
0.27 and -3.05
-1.00

Розділ: Розгалуження | Рівень складності: середній

  1. Дано дві точки: A (x1, y1) і B (x2, y2). Напишіть програму, яка визначає, яка із точок знаходиться далі від початку координат.


Вхідні дані:

1
2
3
2
4
4
4
4

Вихідні дані:

B
The distance is the same

Розділ: Розгалуження | Рівень складності: середній

  1. Вводяться координати (x, y) точки A і радіус кола (r). Визначити, чи належить дана точка колу, якщо його центр знаходиться в початку координат.


Вхідні дані:

3
4
5
-2
5
3

Вихідні дані:

The point belongs to the circle
The point is outside the circle

Розділ: Розгалуження | Рівень складності: середній

  1. Дано натуральное число. Визначити, чи закінчується число парною цифрою.


Вхідні дані:

1234
35

Вихідні дані:

True
False

Розділ: Розгалуження | Рівень складності: середній

  1. Дано трицифрове число. Визначити, чи рівний квадрат суми цифр числа сумі кубів його цифр.


Вхідні дані:

123
210
150

Вихідні дані:

True
True
False

Розділ: Розгалуження | Рівень складності: середній

  1. Розробіть програму-резюме, яка за введеними початковими даними і порядковим номером виводить таку інформацію: 1 - прізвище, 2 - ім’я, 3 - вік, 4 - хобі, 5 - номер телефону.


Вхідні дані:

Brendan
Eich
57
programmer
4567231
4

Вихідні дані:

Programmer

Розділ: Розгалуження | Рівень складності: середній

  1. Дано ціле число k (1 ≤ k ≤ 365). Визначити, яким буде k-й день року: вихідним (субота або неділя) або робочим, якщо 1 січня - понеділок.


Вхідні дані:

5
7
56

Вихідні дані:

working day
day off
day off

Розділ: Розгалуження | Рівень складності: середній

  1. Прямокутник на площині, зі сторонами, паралельними координатним осям, заданий координатами лівої верхньої і правої нижньої своїх вершин. Також дані координати точки. Усі координати - цілі числа. Визначити, чи належить вказана точка заданому прямокутнику.


Вхідні дані:

1
7
10
2
3
3

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: середній

  1. Визначити чверть координатної площини, якій належить точка A з координатами (x1, y1). Відомо, що координати не рівні нулю і є цілими числами.


Вхідні дані:

2
-4
-4
3

Вихідні дані:

IV
II

Розділ: Розгалуження | Рівень складності: середній

  1. Визначити, чи увійде в конверт з внутрішніми розмірами a і b мм прямокутна листівка з розмірами с і d мм. Для розміщення листівки в конверті необхідний проміжок в 1 мм з кожної сторони. Значення сторін листівки і конверту - цілі числа.


Вхідні дані:

5
6
4
5

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: середній

  1. Розробити програму-довідник, яка за введеним значенням радіуса r пропронуватиме користувачу допомогу в обчисленні n (номер послуги): 1 - довжини кола, 2 - площі круга, 3 - об’єму кулі, 4 - площі поверхні кулі. Дані вводять в такому порядку: r, n.


Вхідні дані:

8
2

Вихідні дані:

200.96

Розділ: Розгалуження | Рівень складності: середній

  1. Напишіть програму, щоб визначити, чи задане ціле число (вводиться користувачем) парне або непарне.


Вхідні дані:

2
5
11

Вихідні дані:

True
False
False

Розділ: Розгалуження | Рівень складності: середній

  1. Дано дійсне число n, що містить два знака до десяткової точки і два після неї. Необхідно отримати нове число, помінявши в числі цілу і дробову частини.


Вхідні дані:

10
5
11
5

Вихідні дані:

2
1

Розділ: Розгалуження | Рівень складності: середній

  1. Дано двоцифрове число. Визначити, чи є сума його цифр двоцифровим числом.


Вхідні дані:

55
19
15

Вихідні дані:

True
True
False

Розділ: Розгалуження | Рівень складності: середній

  1. Дано двоцифрове число. Визначити, яка з його цифр більше: перша (вивести 1) або друга (вивести 2), або цифри рівні (вивести =).


Вхідні дані:

45
85
22

Вихідні дані:

2
1
=

Розділ: Розгалуження | Рівень складності: середній

  1. Дано натуральне число n (1 ≤ n ≤ 9999), що визначає вартість товару в копійках. Подайте вартість у гривнях і копійках. Якщо у результаті виходить 0 копійок, то замість цього значення необхідно записати порожній рядок.


Вхідні дані:

160
1200
2356

Вихідні дані:

1 60
12
23 56

Розділ: Розгалуження | Рівень складності: середній

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


Вхідні дані:

1998
3
2018
2

Вихідні дані:

19

Розділ: Розгалуження | Рівень складності: середній

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


Вхідні дані:

500
20
8

Вихідні дані:

500, Grigory Skovoroda
20, Ivan Franko
No bill.

Розділ: Розгалуження | Рівень складності: середній

  1. Уявіть будинок, побудований у футуристичному стилі, в якому є трикутні, прямокутні і круглі кімнати. Щоб швидко обчислити площу житлового приміщення, потрібно написати програму, на вхід якої подаються тип кімнати (трикутник (triangle), прямокутник (rectangle), коло (circle)) та відповідні параметри, за допомогою яких можна обчислити площу кімнати вказаної форми. Зверніть увагу, що кількість параметрів для обчислення площі для різних фігур є різною. Для числа Пі використовуйте значення 3.14.


Вхідні дані:

triangle
3
4
5

Вихідні дані:

6.0

Розділ: Розгалуження | Рівень складності: середній

  1. Напишіть програму для розрахунку індексу маси тіла, який обчислюється за формулою: індекс = маса / ( зріст * зріст). Користувач вводить значення зросту (у метрах) і маси (у кілограмах), а програма обчислює індекс маси тіла і виводить відповідне повідомлення: underweight (мала маса, індекс менше 18.5), normal weight (нормальна маса, індекс 18.5-24.9), overweight (надмірна маса, індекс більше 24.9).


Вхідні дані:

1.79
88
1.90
85

Вихідні дані:

Your body mass index is: 27.46 , that is overweight.
Your body mass index is: 23.55 , that is normal weight.

Розділ: Розгалуження | Рівень складності: середній

  1. Напишіть програму простого калькулятора, яка зчитує введені користувачем три рядки: перше число, друге число і арифметичну дію, після чого застосовує введену дію до введених числах і виводить результат. Калькулятор повинен підтримувати такі арифметичні дії як: +, -, /, *, mod (залишок від ділення), pow (піднесення до степеня), div (цілочисельне ділення). Якщо виконується ділення і друге число дорівнює 0, необхідно виводити рядок Division by 0!. Введені числа є дійсними.


Вхідні дані:

2.0
3.0
pow
12.5
0.5
+
4.5
0.0
/

Вихідні дані:

8.0
13.0
Division by 0!

Розділ: Розгалуження | Рівень складності: середній

  1. Дано два натуральних числа n і m. Якщо одне з них ділиться на інше без остачі, виведіть 1, інакше виведіть будь-яке інше ціле число.


Вхідні дані:

3
6

Вихідні дані:

1

Розділ: Розгалуження | Рівень складності: середній

  1. Дано натуральне число. Визначити, чи є воно двоцифровим.


Вхідні дані:

1
55
123

Вихідні дані:

False
True
False

Розділ: Розгалуження | Рівень складності: середній

  1. Дано трицифрове ціле число. Визначити суму першої і останньої цифр числа і порівняти її із значенням другої цифри числа. Відповідно вивести повідомлення: >, < і =.


Вхідні дані:

122
121
263

Вихідні дані:

>
=
<

Розділ: Розгалуження | Рівень складності: середній

  1. Напишіть програму, у яку вводяться трицифрове ціле число і цифра. Необхідно визначити, чи входить у число введена цифра.


Вхідні дані:

125
2

Вихідні дані:

True

Розділ: Розгалуження | Рівень складності: середній

  1. Дано трицифрове ціле число. Визначити кількість однакових цифр у записі числа і вивести значення цієї кількості.


Вхідні дані:

155
111
478

Вихідні дані:

2
3
0

Розділ: Розгалуження | Рівень складності: середній

  1. Трикутник на координатній площині заданий цілочисельними координатами своїх вершин, які не лежать на одній прямій. Користувач вводить координати трьох вершин трикутника (три пари чисел), а програма, відповідно, має вивести Yes або No на питання, чи є трикутник прямокутним.


Вхідні дані:

1
7
7
7
1
1

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: середній

  1. Напишіть програму, яка отримує на вхід ціле число, і виводить True, якщо передане значення потрапляє в інтервал (-15,12] ∪ (14,17) ∪ [19, + ∞) і False в іншому випадку. Зверніть увагу на різні дужки, які використовуються для позначення інтервалів.


Вхідні дані:

25
-19
12

Вихідні дані:

True
False
True

Розділ: Розгалуження | Рівень складності: середній

  1. За рейтинговою системою оцінка визначається таким чином: якщо сумарний бал учня становить не менш як 90% від максимального, то виставляється оцінка 12, якщо не нижче за 70%, то виставляється оцінка 8, якщо ж не нижче за 50%, то оцінка 5, у інших випадках - оцінка 2. Визначте оцінку учня, якщо він набрав n балів, а максимальне значення сумарного балу становить m.


Вхідні дані:

70
100

Вихідні дані:

8

Розділ: Розгалуження | Рівень складності: середній

  1. Потрібно визначити, чи є даний рік високосним. Нагадаємо, що високосними роками вважаються ті роки, порядковий номер яких або кратний 4, але при цьому не кратний 100, або кратний 400 (наприклад, 2000-й рік був високосним, а 2100-й буде невисокосним роком). Програма повинна коректно працювати на числах 1900 ≤ n ≤ 3000. Виведіть Leap year. в разі, якщо рік є високосним, і Ordinary year. у протилежному випадку.


Вхідні дані:

2001
2019
2020

Вихідні дані:

Ordinary year.
Ordinary year.
Leap year.

Розділ: Розгалуження | Рівень складності: високий

  1. Дано чотирицифрове число. Визначити, чи дорівнює сума двох перших його цифр сумі двох його останніх цифр.


Вхідні дані:

1423
2356
1102

Вихідні дані:

True
False
True

Розділ: Розгалуження | Рівень складності: високий

  1. Дано чотирицифрове число. Замінити усі парні цифри числа на символ * і вивести число.


Вхідні дані:

2358
2227
1353

Вихідні дані:

*35*
***7
1353

Розділ: Розгалуження | Рівень складності: високий

  1. Дано натуральне число n (n ≤ 9999). З’ясувати, чи різні усі чотири цифри цього числа (з урахуванням чотирьох цифр). Наприклад, в числі 5623 усі цифри різні, в числі 0012 - ні.


Вхідні дані:

1234
1981

Вихідні дані:

True
False

Розділ: Розгалуження | Рівень складності: високий

  1. Робота світлофора для пішоходів запрограмована таким чином: на початку кожної години протягом трьох хвилин горить зелений сигнал, потім протягом двох хвилин - червоний, а потім протягом трьох хвилин - знову зелений і т. д. Дано ціле число t, що означає час в хвилинах, що минув від початку чергової години. Визначити, сигнал якого кольору горить для пішоходів в цей момент.


Вхідні дані:

25
23
26

Вихідні дані:

green
red
green

Розділ: Розгалуження | Рівень складності: високий

  1. Робота світлофора для водіїв запрограмована таким чином: на початку кожної години протягом трьох хвилин горить зелений сигнал, потім протягом однієї хвилини - жовтий, потім протягом двох хвилин - червоний, а далі протягом трьох хвилин - знову зелений і т. д. Дано ціле число t, що позначає час у хвилинах, що минув з початку чергової години. Визначити, сигнал якого кольору горить для водіїв в цей момент.


Вхідні дані:

4
3
5

Вихідні дані:

yellow
green
red

Розділ: Розгалуження | Рівень складності: високий

  1. Дано чотирицифрове число. Перевірте, чи є воно паліндромом. Паліндромом називається число, слово або текст, які однаково читаються зліва направо і справа наліво. Наприклад, в нашому випадку, числами-паліндромами будуть: 1221, 4444, 9119 і т. д. Приклади інших цілих чисел-паліндромів, що не відносяться до розв’язуваної задачі: 2, 454, 33, 91219 і т. д.


Вхідні дані:

4556
8118

Вихідні дані:

False
True

Розділ: Розгалуження | Рівень складності: високий

  1. Дано однобайтове десяткове число (у межах 128-255). Перевірити, чи є двійкове подання десяткового числа паліндромом, з урахуванням зберігання старших нулів у двійковому поданні. Приклад таких десяткових чисел: 102 (у двійковому форматі 01100110), 129 (у двійковому вигляді 10000001) і т. д.


Вхідні дані:

231
255
178

Вихідні дані:

True
True
False

Розділ: Розгалуження | Рівень складності: високий

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


Вхідні дані:

28
2
2020
31
12
2017
5
7
2019

Вихідні дані:

29.2.2020
1.1.2018
6.7.2019

Розділ: Розгалуження | Рівень складності: високий

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


Вхідні дані:

1
3
2018
1
1
2017
1
8
2018

Вихідні дані:

28.2.2018
31.12.2016
31.7.2018

Розділ: Розгалуження | Рівень складності: високий

  1. Плитка шоколаду має вигляд прямокутника, розділеного на n × m частинок. Плитку шоколаду можна один раз розламати по прямій на дві частини. Визначте, чи можна таким чином відламати від плитки шоколаду шматок, що складається рівно з k частин. Програма отримує на вхід три числа: n, m, k і повинна вивести Yes або No.


Вхідні дані:

5
7
1

Вихідні дані:

No

Розділ: Розгалуження | Рівень складності: високий

  1. Дано три цілих числа. Упорядкуйте їх у порядку зростання. Програма повинна зчитувати три числа a, b, c. Далі програма повинна змінювати їх значення так, щоб стали виконані умови a ≤ b ≤ c. Резельтатом роботи програми буде виведення трійки чисел a, b, c в одному рядку. При розв’язуванні задачі не можна використовувати додаткові змінні, тобто єдиною допустимою операцією присвоювання є обмін значень двох змінних типу (a, b) = (b, a).


Вхідні дані:

25
78
4

Вихідні дані:

4 25 78

Розділ: Розгалуження | Рівень складності: високий

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


Вхідні дані:

4
2
3

Вихідні дані:

6

Розділ: Розгалуження | Рівень складності: високий

  1. Визначити максимальну і мінімальну цифри із введеного трицифрового числа і вивести цифри в одному рядку через пропуск. Якщо цифри однакові, то вивести лише одну цифру.


Вхідні дані:

184
244
111

Вихідні дані:

8 1
4 2
1

Розділ: Розгалуження | Рівень складності: високий

  1. Провайдер здійснює підключення до Інтернету за таким тарифним планом. Щомісячна абонентська плата становить a гривень, і в цю абонентську плату включено b гігабайт трафіку. Невитрачені гігабайти в кінці місяця «згорають». Якщо трафік перевищує b гігабайт, то кожен гігабайт трафіку понад передплачених коштує с гривень. Відомо, що за минулий місяць один з абонентів витратив d гігабайт трафіку. Визначте, у скільки обійшовся йому доступ в Інтернет в минулому місяці (вважаючи, в тому числі і абонентську плату)? Вводяться чотири натуральних числа a, b, c, d. Всі числа не перевищують 100. Виведіть одне число - суму (у гривнях), яку абонент повинен заплатити за Інтернет.


Вхідні дані:

150
10
12
15

Вихідні дані:

210

Розділ: Розгалуження | Рівень складності: високий

  1. Напишіть програму, у якій до введеного числа додаються написи: «гривень» (hryven), «гривня» (hryvnia), «гривні» (hryvni), згідно з правилами українського правопису.


Вхідні дані:

10001
516
2022

Вихідні дані:

10001 hryvnia
516 hryven
2022 hryvni

Розділ: Розгалуження | Рівень складності: високий

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


Вхідні дані:

2
55
14

Вихідні дані:

55
2
14

Розділ: Розгалуження | Рівень складності: високий

  1. За багато років ув’язнення в’язень замку Іф зробив у стіні прямокутний отвір розміром d × e. Замок Іф побудований із цегли, розміром a × b × c. Визначте, чи зможе в’язень викидати цеглини в море через цей отвір (сторони цегли є паралельними сторонам отвору). Програма отримує на вхід числа a, b, c, d, e і повинна вивести слово Yes або No.


Вхідні дані:

1
1
1
1
1

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: високий

  1. Шаховий офіцер («слон») ходить по діагоналі. Дано дві різні клітинки шахової дошки, визначте, чи може офіцер потрапити з першої клітини на другу за один хід. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і номер рядка спочатку для першої клітинки, потім для другої клітинки. Програма повинна вивести Yes, якщо з першої клітинки ходом офіцера можна потрапити в другу або No в іншому випадку.


Вхідні дані:

3
7
4
5

Вихідні дані:

No

Розділ: Розгалуження | Рівень складності: високий

  1. Шахова тура ходить по горизонталі або вертикалі. Дано дві різні клітинки шахової дошки, визначте, чи може тура потрапити з першої клітинки на другу за один хід. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і номер рядка спочатку для першої клітинки, потім для другої клітинки. Програма повинна вивести Yes, якщо з першої клітинки ходом тури можна потрапити в другу або No в іншому випадку.


Вхідні дані:

2
2
4
4

Вихідні дані:

No

Розділ: Розгалуження | Рівень складності: високий

  1. Шаховий кінь ходить літерою «Г» - на дві клітини по вертикалі в будь-якому напрямку і на одну клітинку по горизонталі, або навпаки. Дано дві різні клітинки шахової дошки, визначте, чи може кінь потрапити з першої клітинки на другу за один хід. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і номер рядка спочатку для першої клітинки, потім для другої клітинки. Програма повинна вивести Yes, якщо з першої клітинки ходом коня можна потрапити в другу або No в іншому випадку.


Вхідні дані:

5
5
3
6

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: високий

  1. Шаховий ферзь («королева») ходить по діагоналі, горизонталі або вертикалі. Дано дві різні клітинки шахової дошки, визначте, чи може ферзь потрапити з першої клітинки на другу за один хід. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і номер рядка спочатку для першої клітинки, потім для другої клітинки. Програма повинна вивести Yes, якщо з першої клітинки ходом ферзя можна потрапити в другу або No в іншому випадку.


Вхідні дані:

3
6
8
1

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: високий

  1. Шаховий король ходить по горизонталі, вертикалі і діагоналі, але тільки на 1 клітинку. Дано дві різні клітинки шахової дошки, визначте, чи може король потрапити з першої клітинки на другу за один хід. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і номер рядка спочатку для першої клітинки, потім для другої клітинки. Програма повинна вивести Yes, якщо з першої клітинки ходом короля можна потрапити в другу або No в іншому випадку.


Вхідні дані:

1
1
3
3

Вихідні дані:

No

Розділ: Розгалуження | Рівень складності: високий

  1. Задані дві клітини шахової дошки. Якщо вони зафарбовані в один колір, то виведіть слово Yes, а якщо в різні кольори - No. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і номер рядка спочатку для першої клітинки, потім для другої клітинки.


Вхідні дані:

1
2
2
2

Вихідні дані:

No

Розділ: Розгалуження | Рівень складності: високий

  1. Дано три сторони трикутника a, b, c. Визначте тип трикутника із заданими сторонами. Виведіть одне з чотирьох слів: rectangular для прямокутного трикутника, acute для гострокутного трикутника, obtuse для тупокутного трикутника або impossible, якщо трикутника з такими сторонами не існує.


Вхідні дані:

4
5
6

Вихідні дані:

acute

Розділ: Розгалуження | Рівень складності: високий

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


Вхідні дані:

156012
122005
045090

Вихідні дані:

Ordinary
Happy
Happy

Розділ: Розгалуження | Рівень складності: високий

  1. У будинку кілька під’їздів. У кожному під’їзді однакова кількість квартир. Квартири нумеруються підряд, починаючи з одиниці. Чи може в деякому під’їзді перша квартира мати номер x, а остання - номер y? Вводяться два натуральних числа x і y (x ≤ y), що не перевищують 10000. Виведіть слово Yes, якщо таке можливо, і No у протилежному випадку.


Вхідні дані:

111
15

Вихідні дані:

Yes

Розділ: Розгалуження | Рівень складності: високий

  1. Для даного числа n < 100 необхідно закінчити фразу «На лузі пасеться…​» одним з можливих продовжень: n корів, n корова, n корови, правильно обравши закінчення. Вводиться натуральне число. Програма повинна вивести введене число n і одне зі слів: koriv, korova або korovy. Між числом і словом повинен стояти один пропуск.


Вхідні дані:

5
23
51

Вихідні дані:

5 koriv
23 korovy
51 korova

Розділ: Розгалуження | Рівень складності: високий

  1. Дано натуральне число n (0 ≤ n ≤ 1000), яке визначає період піврозпаду радіоактивних атомів, визначений у роках. Необхідно вивести значення періоду піврозпаду, додавши до цього числа відповідно «рік» (rik), «роки» (roku), «років» (rokiv).


Вхідні дані:

34
21
45

Вихідні дані:

34 roku
21 rik
45 rokiv

Розділ: Розгалуження | Рівень складності: високий

2.3. Цикли

Даний розділ містить задачі, розв’язування яких передбачає використання алгоритмів з повторенням (циклів) - алгоритмів, у яких виконання однієї й тієї ж послідовності команд повторюється, поки виконується деяка заздалегідь установлена умова. Ситуація, при якій виконання циклу ніколи не закінчується, називається зацикленням. Слід розробляти алгоритми, що не допускають таких ситуацій, або передбачають можливість виходу із циклу.
  1. Виведіть повідомлення Hello, Python! на екран n разів (n - ціле число, яке вводить користувач).


Вхідні дані:

3

Вихідні дані:

Hello, Python!
Hello, Python!
Hello, Python!

Розділ: Цикли | Рівень складності: початковий

  1. Дано два цілих числа a і b (a ≤ b). Виведіть всі числа від a до b включно.


Вхідні дані:

1
12

Вихідні дані:

1 2 3 4 5 6 7 8 9 10 11 12

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму-таймер зворотного відліку, яка запитує у користувача кількість секунд n, з якої слід починати відлік.


Вхідні дані:

5

Вихідні дані:

5
4
3
2
1
Start!

Розділ: Цикли | Рівень складності: початковий

  1. Користувач вводить кількість навчальних предметів n, а потім, відповідно, оцінки учня з n навчальних предметів. Визначте середню оцінку.


Вхідні дані:

5
10
11
9
8
10

Вихідні дані:

9.60

Розділ: Цикли | Рівень складності: початковий

  1. Надрукувати у рядку m разів число n. Числа m і n - цілі числа, які вводить користувач у порядку n, m.


Вхідні дані:

10
5

Вихідні дані:

10 10 10 10 10

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для виведення усіх цілих чисел від 20 до n включно (n > 20), де n - ціле число, яке вводить користувач.


Вхідні дані:

25

Вихідні дані:

20
21
22
23
24
25

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для друку цілих чисел від n до 0 із виведенням біля кожного числа кількості символів #, що дорівнює значенню числа.


Вхідні дані:

6

Вихідні дані:

6 ######
5 #####
4 ####
3 ###
2 ##
1 #

Розділ: Цикли | Рівень складності: початковий

  1. Визначити суму всіх чисел від 1 до n (1 ≤ n ≤ 100).


Вхідні дані:

100
16
1

Вихідні дані:

5050
136
1

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для побудови шаблону як у вихідних даних за введеним значенням n.


Вхідні дані:

9

Вихідні дані:

1
22
333
4444
55555
666666
7777777
88888888
999999999

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для побудови шаблону як у вихідних даних за введеним значенням n.


Вхідні дані:

5

Вихідні дані:

*****
****
***
**
*

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для побудови шаблону як у вихідних даних за введеним значенням n.


Вхідні дані:

5

Вихідні дані:

##
# #
#  #
#   #
#    #

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму, яка підраховує додатні і від’ємні числа, а також нулі, введені користувачем, і виводить їхню кількість в один рядок з одним пропуском між ними.


Вхідні дані:

5
12
-45
0
14
0

Вихідні дані:

2 1 2

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму, яка друкує в дному рядку через пропуск усі парні числа від 1 до n (1 < n ≤ 100, n - ціле число, яке вводить користувач). Використайте оператор continue.


Вхідні дані:

2
10
7

Вихідні дані:

2
2 4 6 8 10
2 4 6

Розділ: Цикли | Рівень складності: початковий

  1. Надрукувати всі непарні двоцифрові числа, у яких остання цифра дорівнює n - ціле число, яке вводить користувач.


Вхідні дані:

5
1
0

Вихідні дані:

15 25 35 45 55 65 75 85 95
11 21 31 41 51 61 71 81 91
10 20 30 40 50 60 70 80 90

Розділ: Цикли | Рівень складності: початковий

  1. Надрукувати всі цілі числа від a до b включно, кратні деякому числу c. Числа a, b, c - цілі числа, які вводить користувач.


Вхідні дані:

20
50
3

Вихідні дані:

21 24 27 30 33 36 39 42 45 48

Розділ: Цикли | Рівень складності: початковий

  1. Дано натуральне ціле додатнє число n. Визначити кількість цифр в ньому.


Вхідні дані:

12367832
142
0

Вихідні дані:

8
3
1

Розділ: Цикли | Рівень складності: початковий

  1. Надрукувати квадрати усіх цілих чисел від 1 до n включно (значення n вводиться з клавіатури користувачем).


Вхідні дані:

10

Вихідні дані:

1
4
9
16
25
36
49
64
81
100

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для друку чисел від 0 до n включно і виведення в один рядок через один пропуск (n - ціле число, яке вводить користувач).


Вхідні дані:

9
3
15

Вихідні дані:

0 1 2 3 4 5 6 7 8 9
0 1 2 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Розділ: Цикли | Рівень складності: початковий

  1. Надрукувати таблицю відповідності між масою у фунтах і масою в кілограмах для значень n фунтів (1 фунт = 453 г) у вигляді таблиці.


Вхідні дані:

5

Вихідні дані:

1     0.45
2     0.91
3     1.36
4     1.81
5     2.27

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму, яка друкує цілі числа від 1 до n (1 < n ≤ 1000) з такою умовою: для чисел кратних 3 виводить *3* замість числа, для чисел кратних 5 друкує *5*, а для чисел, які кратні 3 і 5 одночасно, повідомлення буде *35*.


Вхідні дані:

15

Вихідні дані:

1
2
*3*
4
*5*
*3*
7
8
*3*
*5*
11
*3*
13
14
*35*

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму, яка зчитує цілі числа, введені користувачем, по одному числу n в рядку. Для кожного введеного числа необхідно перевірити: якщо число менше 10, то пропускаємо це число; якщо число більше 100, то припиняємо зчитувати числа; в інших випадках вивести це число в окремому рядку.


Вхідні дані:

15
4
11
123

Вихідні дані:

15
11

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для знаходження тих чисел із діапазону 1 ≤ n ≤ 1000 (число n вводить користувач), які кратні 7 і 5, і виведення таких чисел в один рядок.


Вхідні дані:

1

Вихідні дані:

35 70 105 140 175 210 245 280 315 350 385 420 455 490 525 560 595 630 665 700 735 770 805 840 875 910 945 980

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для створення таблиці множення (від 1 до 10) для введеного цілого числа n.


Вхідні дані:

3

Вихідні дані:

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30

Розділ: Цикли | Рівень складності: початковий

  1. Знайти суму 12 + 22 + 32 + …​ + n2 при заданому користувачем значенні цілого числа n.


Вхідні дані:

3
2
6

Вихідні дані:

14
5
91

Розділ: Цикли | Рівень складності: початковий

  1. При заданому користувачем значенні цілого числа n ≥ 2 обчислити вираз 1 × 2 + 2 × 3 + …​ + (n - 1) × n.


Вхідні дані:

6
5
3

Вихідні дані:

70
40
8

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму для обчислення виразу 1/2 + 2/3 + 3/4 + …​ + n/(n + 1) із заданим n, яке вводить користувач (n > 0).


Вхідні дані:

5
10
3

Вихідні дані:

3.55
7.98
1.92

Розділ: Цикли | Рівень складності: початковий

  1. Визначити суму всіх трицифрових чисел, які діляться націло на n, де n - ціле число, яке вводить користувач.


Вхідні дані:

125
440
600
1000

Вихідні дані:

3500
1320
600
0

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму, в якій користувач вводить цілі числа. Якщо буде введено ціле число n, програма має завершити своє виконання повідомленням Done. Спочатку користувач вводить число n, а потім решту чисел.


Вхідні дані:

5
67
112
14
5

Вихідні дані:

Done

Розділ: Цикли | Рівень складності: початковий

  1. Пароль доступу до комп’ютера зберігається у змінній n - ціле число, яке вводить користувач. Напишіть програму, яка запитує пароль в користувача. У разі введення користувачем неправильного пароля на екран має виводитися повідомлення Error, після чого дії повинні повторюватися до введення правильного значення. При успішній аутентифікації в ситемі має з’явитися повідомлення Done.


Вхідні дані:

12345

Вихідні дані:

111
Error
45
Error
12345
Done

Розділ: Цикли | Рівень складності: початковий

  1. Дано n чисел. Визначте, скільки з них дорівнюють нулю, і виведіть цю кількість. Спочатку вводиться число n, потім вводиться рівно n цілих чисел.


Вхідні дані:

4
0
23
11
0

Вихідні дані:

2

Розділ: Цикли | Рівень складності: початковий

  1. Дано n цілих чисел. Кожне число вводиться в окремому рядку. Обчисліть суму чисел.


Вхідні дані:

10
0
1
2
3
4
5
6
7
8
9

Вихідні дані:

45

Розділ: Цикли | Рівень складності: початковий

  1. Система відслідковування помилок в комп’ютерній програмі збирає помилки щодня протягом n днів. Напишіть програму, яка знаходить загальну кількість помилок, зібраних протягом n днів. Користувач вводить кількість днів роботи системи відслідковування помилок n і вводить кількість помилок m щодня (n і m - цілі числа).


Вхідні дані:

6
45
101
67
43
21
0

Вихідні дані:

277

Розділ: Цикли | Рівень складності: початковий

  1. Біг на біговій доріжці дозволяє спалювати n калорій за хвилину. Напишіть програму, щоб відобразити кількість калорій, спалених протягом 10, 15, 20, 25 і 30 хвилин.


Вхідні дані:

4.2

Вихідні дані:

42.0
63.0
84.0
105.0
126.0

Розділ: Цикли | Рівень складності: початковий

  1. Напишіть програму, яка виводить таблицю цілих значень температури не більше t (t ≥ 0) в градусах Цельсія (C) і відповідні значення за шкалою Фаренгейта (F) (F = 9*C/5 + 32).


Вхідні дані:

10

Вихідні дані:

0 	 32.00
1 	 33.80
2 	 35.60
3 	 37.40
4 	 39.20
5 	 41.00
6 	 42.80
7 	 44.60
8 	 46.40
9 	 48.20
10 	 50.00

Розділ: Цикли | Рівень складності: початковий

  1. Припускаючи, що рівень океану зараз зростає приблизно на n міліметрів на рік. Напишіть програму, яка відображатиме значення щорічного росту рівня океану протягом наступних m років.


Вхідні дані:

1.6
5

Вихідні дані:

1 	  1.60
2 	  3.20
3 	  4.80
4 	  6.40
5 	  8.00

Розділ: Цикли | Рівень складності: початковий

  1. Надрукувати таблицю значень 1, 2, …​ n доларів США у переведенні на гривні за поточним курсом k (значення курсу вводиться з клавіатури).


Вхідні дані:

5
27.85

Вихідні дані:

1 	 27.85
2 	 55.70
3 	 83.55
4 	 111.40
5 	 139.25

Розділ: Цикли | Рівень складності: початковий

  1. Намалювати сходинки як у вихідних даних, використовуючи символи пропуску і решітки #, коли на вхід програми подається ціле число n - кількість сходинок.


Вхідні дані:

4

Вихідні дані:

   #
  ##
 ###
####

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму для побудови шаблону як у вихідних даних за введеними значеннями n і m.


Вхідні дані:

6
3

Вихідні дані:

0 	0 	0
1 	1 	1
2 	2 	2
3 	3 	3
4 	4 	4
5 	5 	5
6 	6 	6

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму для побудови шаблону як у вихідних даних за введеним значенням n.


Вхідні дані:

7

Вихідні дані:

1 	2 	3 	4 	5 	6 	7
2 	3 	4 	5 	6 	7
3 	4 	5 	6 	7
4 	5 	6 	7
5 	6 	7
6 	7
7

Розділ: Цикли | Рівень складності: середній

  1. Дано два цілих числа a і b. Виведіть всі числа від a до b включно, в порядку зростання, якщо a < b, або в порядку спадання у іншому випадку.


Вхідні дані:

12
1

Вихідні дані:

12 11 10 9 8 7 6 5 4 3 2 1

Розділ: Цикли | Рівень складності: середній

  1. Дано n чисел. Перше число на вході n, після чого задано n цілих чисел. Необхідно порахувати кількість нулів серед введених користувачем чисел.


Вхідні дані:

6
2
0
9
4
0
5

Вихідні дані:

2

Розділ: Цикли | Рівень складності: середній

  1. Надрукувати усі двоцифрові числа, сума квадратів цифр яких ділиться на n націло. Число n - ціле число, яке вводить користувач.


Вхідні дані:

100

Вихідні дані:

59 68 69 78 79 86 87 88 89 95 96 97 98 99 100

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму, яка друкує усі непарні числа з інтервалу [1, b], де b - ціле число, яке вводить користувач. Не можна використовувати конструкцію розгалуження.


Вхідні дані:

15
8

Вихідні дані:

51 3 5 7 9 11 13 15
1 3 5 7

Розділ: Цикли | Рівень складності: середній

  1. За даним цілим додатнім числом n обчисліть n! - значення факторіалу цього числа.


Вхідні дані:

3
4
1

Вихідні дані:

6
24
1

Розділ: Цикли | Рівень складності: середній

  1. Дано ціле число n, яке вводить користувач. Необхідно обчислити значення виразу 1! +2! +3! + …​ + n!.


Вхідні дані:

3
4
5

Вихідні дані:

9
33
152

Розділ: Цикли | Рівень складності: середній

  1. Користувач вводить n-цифрове ціле число. Необхідно вивести числа, утворені із введеного, відкиданням останньої цифри з кожного попереднього числа.


Вхідні дані:

138945

Вихідні дані:

13894
1389
138
13
1

Розділ: Цикли | Рівень складності: середній

  1. Програма отримує на вхід послідовність цілих невід’ємних чисел, кожне число вводиться в окремому рядку. Послідовність завершується числом 0, при зчитуванні якого програма повинна закінчити свою роботу і вивести кількість членів послідовності (не рахуючи завершального числа 0).


Вхідні дані:

8
4
6
0

Вихідні дані:

3

Розділ: Цикли | Рівень складності: середній

  1. Визначте суму усіх елементів послідовності, яка завершується числом 0. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення).


Вхідні дані:

2
5
3
0

Вихідні дані:

10

Розділ: Цикли | Рівень складності: середній

  1. Визначте середнє значення всіх елементів послідовності, яка завершується числом 0. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення).


Вхідні дані:

3
4
5
0

Вихідні дані:

4.0

Розділ: Цикли | Рівень складності: середній

  1. Визначте кількість парних елементів в послідовності, яка завершується числом 0. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використвоується як ознака її закінчення).


Вхідні дані:

3
6
9
8
0

Вихідні дані:

2

Розділ: Цикли | Рівень складності: середній

  1. Послідовність складається з натуральних чисел і завершується числом 0. Визначте значення найбільшого елемента послідовності. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення).


Вхідні дані:

5
3
8
0

Вихідні дані:

8

Розділ: Цикли | Рівень складності: середній

  1. Автогонщик в перший день ралі проїхав d км. Кожен наступний день він збільшував пробіг на 10% від пробігу попереднього дня. Через скільки днів автоспортивних змагань сумарний пробіг автомобіля за всі дні перевищить t км і яке значення сумарного пробігу? Введення даних користувачем відбувається в порядку: d, t.


Вхідні дані:

10
200

Вихідні дані:

211.14 km, 33 days

Розділ: Цикли | Рівень складності: середній

  1. Визначити кількість трицифрових чисел, сума цифр яких дорівнює деякому цілому значенню n, яке вводить користувач.


Вхідні дані:

27
2
20

Вихідні дані:

1
3
36

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму, яка виводить усі трицифрові числа, сума цифр яких дорівнює деякому значенню n, яке вводить користувач.


Вхідні дані:

4

Вихідні дані:

112
121
130
202
211
220
301
310
400

Розділ: Цикли | Рівень складності: середній

  1. Дано ціле число n. З чисел 1, 4, 9, 16, 25, …​ надрукувати ті, які не перевищують n.


Вхідні дані:

25

Вихідні дані:

1
4
9
16
25

Розділ: Цикли | Рівень складності: середній

  1. Для обчислення числа Пі можна використовувати наступне наближення (ряд Лейбніца): Pi = 4/1 - 4/3 + 4/5 - 4/7 + .... Обчисліть перші n членів цього ряду.


Вхідні дані:

10

Вихідні дані:

3.0418396189294032

Розділ: Цикли | Рівень складності: середній

  1. Дано цілі числа a і b. Знайти їх добуток, не використовуючи операцію множення.


Вхідні дані:

7
3

Вихідні дані:

21

Розділ: Цикли | Рівень складності: середній

  1. Дано цілі числа a і b. Обчислити ab, не використовуючи операцію піднесення до степеня.


Вхідні дані:

4
2

Вихідні дані:

16

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму, яка зчитує числа (по одному в рядку) до тих пір, поки сума введених чисел не буде дорівнювати 0 і відразу після цього виводить суму квадратів всіх введених чисел. Гарантується, що в якийсь момент сума введених чисел дорівнюватиме 0, після цього зчитування продовжувати не потрібно.


Вхідні дані:

2
-4
6
-17
12
10
-9

Вихідні дані:

670

Розділ: Цикли | Рівень складності: середній

  1. Одноклітинна амеба кожні 3 години ділиться на 2 клітини. Визначити, скільки клітин буде через t годин, якщо спочатку була одна амеба.


Вхідні дані:

6
9
24

Вихідні дані:

4
8
256

Розділ: Цикли | Рівень складності: середній

  1. Учні 5 класу вели щоденники спостереження за погодою і щодня записували денну температуру. Знайдіть найнижчу температуру за весь час спостережень. Якщо температура знижувалась нижче -15 градусів, необхідно вивести Yes, у протилежному випадку No. Програма отримує на вхід кількість днів, протягом яких проводилося спостереження n (1 ≤ n ≤ 31), потім для кожного дня вводиться температура.


Вхідні дані:

3
-20
2
-18

Вихідні дані:

-20
Yes

Розділ: Цикли | Рівень складності: середній

  1. Старшокласники брали участь у вікторині з інформатики. Необхідно було відповісти на 20 питань. Переможцем вікторини вважається учасник, який правильно відповів на найбільшу кількість запитань. На скільки питань переможець відповів правильно? Якщо є учасники вікторини, які не змогли дати правильну відповідь ні на одне із запитань, виведіть Yes, інакше виведіть No. Гарантується, що є учасники, які правильно відповіли хоча б на одне запитання. Программа отримує на вхід число учасників вікторини n (1 ≤ n ≤ 50), потім для кожного учасника вводиться кількість питань, на які отримано правильну відповідь.


Вхідні дані:

5
10
15
7
0
16

Вихідні дані:

16
Yes

Розділ: Цикли | Рівень складності: середній

  1. Камера спостереження реєструє в автоматичному режимі швидкість проїжджаючих повз неї автомобілів, округляючи значення швидкості до цілих чисел. Необхідно визначити середню зареєстровану швидкість всіх автомобілів. Якщо швидкість хоча б одного автомобіля була більше 60 км/год, виведіть Yes, інакше виведіть No. Програма отримує на вхід число зафіксованих автомобілів n (1 ≤ n ≤ 30), потім вказуються їх швидкості. Значення швидкості не може бути менше 1 і більше 300. Програма повинна спочатку вивести середню швидкість з точністю до одного знака після десяткової крапки, потім Yes або No.


Вхідні дані:

3
50
45
65

Вихідні дані:

53.3
Yes

Розділ: Цикли | Рівень складності: середній

  1. Камера спостереження реєструє в автоматичному режимі швидкість проїжджаючих повз неї автомобілів, округляючи значення швидкості до цілих чисел. Необхідно визначити: різницю максимальної і мінімальної швидкостей автомобілів; кількість автомобілів, швидкість яких не перевищувала 30 км/год. Програма отримує на вхід число зафіксованих автомобілів n (1 ≤ n ≤ 30), потім вказуються їх швидкості. Значення швидкості не може бути менше 1 і більше 300. Програма повинна спочатку вивести різницю максимальної та мінімальної швидкостей автомобілів, потім кількість автомобілів, швидкість яких не перевищувала 30 км/год.


Вхідні дані:

3
15
25
140

Вихідні дані:

125
2

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму, яка виводить двовимірну квадратну таблицю n x n чисел (n - ціле число, яке вводить користувач). По головній діагоналі таблиці (від лівого верхнього значення до нижнього правого значення) мають розміщуватися 0, вище головної діагоналі розміщуються 1, а нижче - -1. Для гарного відображення таблиці при виведенні її значень використовуйте символ табуляції \t.


Вхідні дані:

5

Вихідні дані:

0	1	1	1	1
-1	0	1	1	1
-1	-1	0	1	1
-1	-1	-1	0	1
-1	-1	-1	-1	0

Розділ: Цикли | Рівень складності: середній

  1. За даним натуральним числом n (n ≤ 9) виведіть драбинку з n сходинок як у вихідних даних, n-а сходинка складається з чисел від 1 до n без пропусків.


Вхідні дані:

5

Вихідні дані:

1
12
123
1234
12345

Розділ: Цикли | Рівень складності: середній

  1. Напишіть програму, на вхід якої безперервно (у циклі) подаються введені користувачем дані. При введенні будь-яких даних, окрім цілих числел, виводиться повідомлення про помилку за допомогою генерування винятку ValueError. Як тільки ввели ціле число, виводиться повідомлення True і відбувається вихід з програми.


Вхідні дані:

Python
2.5
@
42

Вихідні дані:

This is not a integer number. Try again...
This is not a integer number. Try again...
This is not a integer number. Try again...
True

Розділ: Цикли | Рівень складності: середній

  1. Дано натуральне число n. Визначити, чи є воно автоморфним числом. Примітка. Автоморфне число - число, квадрат якого рівний останнім розрядами квадрата цього числа: 5 - 25, 6 - 36, 25 - 625.


Вхідні дані:

9376
26

Вихідні дані:

True
False

Розділ: Цикли | Рівень складності: високий

  1. Дано натуральне число n. Надрукуйте всі n-значні непарні натуральні числа в порядку спадання.


Вхідні дані:

1
2

Вихідні дані:

9 7 5 3 1
99 97 95 93 91 89 87 85 83 81 79 77 75 73 71 69 67 65 63 61 59 57 55 53 51 49 47 45 43 41 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11

Розділ: Цикли | Рівень складності: високий

  1. Дано два натуральних числа a і b. Розробити програму для визначення найбільшого спільного дільника (НСД) заданих чисел. Використайте алгоритм Евкліда .


Вхідні дані:

8
2

Вихідні дані:

2

Розділ: Цикли | Рівень складності: високий

  1. Напишіть програму, яка допомагає знайти число (НСК - найменше спільне кратне) двох чисел. Програма повинна зчитувати два додатних цілих числа a і b (кожне число вводиться на окремому рядку) і виводити найменше число, яке ділиться на обидва цих числа без залишку. НСК(a, b) = |ab| / НСД(a, b), де НСД(a, b) - найбільший спільний дільник чисел a, b.


Вхідні дані:

8
5

Вихідні дані:

40

Розділ: Цикли | Рівень складності: високий

  1. Дано цілі числа a і b (a > b). Визначити результати цілочисельного ділення a на b і залишку від ділення a на b, не використовуючи стандартні операції цілочисельного ділення і залишку від ділення. Результати необхідно вивести в одному рядку, спочатку результат цілочисельного ділення, а потім залишок від ділення, розділені одним пропуском.


Вхідні дані:

16
5

Вихідні дані:

3 1

Розділ: Цикли | Рівень складності: високий

  1. Дано натуральне число n. Визначити, чи є різниця його максимальної та мінімальної цифр парним числом.


Вхідні дані:

2134389
1234

Вихідні дані:

True
False

Розділ: Цикли | Рівень складності: високий

  1. Є монотонна послідовність, в якій кожне натуральне число k зустрічається рівно k разів: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, .... За введеним натуральним числом n виведіть перші n членів цієї послідовності.


Вхідні дані:

5

Вихідні дані:

1 2 2 3 3

Розділ: Цикли | Рівень складності: високий

  1. Написати програму для обчислення суми цифр цілого числа n. Програма має враховувати, що на вхід може подаватися ціле від’ємне число.


Вхідні дані:

-123
1
412098

Вихідні дані:

6
1
24

Розділ: Цикли | Рівень складності: високий

  1. Внесок на депозитний рахунок у банку становить d гривень. Щорічно він збільшується на r відсотків, після чого дробова частина копійок відкидається. Визначте, через скільки років внесок складе не менше b гривень. Програма отримує на вхід три натуральних числа: d, r, b.


Вхідні дані:

1000
14
2500

Вихідні дані:

7

Розділ: Цикли | Рівень складності: високий

  1. Напишіть програму для отримання рядка Фібоначчі від 0 до n, де n - ціле число. Послідовність Фібоначчі - це серія чисел 0, 1, 1, 2, 3, 5, 8, 13, 21, .... Кожне наступне число знайдено шляхом додавання двох номерів перед ним.


Вхідні дані:

50

Вихідні дані:

1 1 2 3 5 8 13 21 34

Розділ: Цикли | Рівень складності: високий

  1. За введеним користувачем цілим числом n визначте n-е число Фібоначчі.


Вхідні дані:

9
3
5

Вихідні дані:

34
2
5

Розділ: Цикли | Рівень складності: високий

  1. Дано натуральне число n. Визначте, яким за рахунком числом Фібоначчі воно є. Якщо n не є числом Фібоначчі, виведіть значення -1.


Вхідні дані:

11
8

Вихідні дані:

-1
6

Розділ: Цикли | Рівень складності: високий

  1. Послідовність складається з натуральних чисел і завершується числом 0. Визначте, скільки елементів цієї послідовності більше попереднього елемента. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення).


Вхідні дані:

4
3
6
8
0

Вихідні дані:

2

Розділ: Цикли | Рівень складності: високий

  1. Послідовність складається з цілих чисел і закінчується номером 0. Визначте, скільки елементів цієї послідовності більше наступного елемента. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення). Гарантується, що послідовність містить як мінімум два числа.


Вхідні дані:

2
9
1
4
3
0

Вихідні дані:

2

Розділ: Цикли | Рівень складності: високий

  1. Послідовність складається з натуральних чисел і завершується числом 0. Визначте, скільки елементів цієї послідовності рівні її найбільшому елементу. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення).


Вхідні дані:

3
8
10
2
10
7
0

Вихідні дані:

2

Розділ: Цикли | Рівень складності: високий

  1. Послідовність складається з різних натуральних чисел і завершується числом 0. Визначте значення другого за величиною елемента в цій послідовності. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення). Гарантується, що в послідовності є хоча б два елементи.


Вхідні дані:

1
4
3
2
0

Вихідні дані:

3

Розділ: Цикли | Рівень складності: високий

  1. Послідовність складається з натуральних чисел і завершується числом 0. Визначте індекс найбільшого елемента послідовності. Якщо найбільших елементів декілька, виведіть індекс першого з них. Нумерація елементів починається з нуля. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення).


Вхідні дані:

4
2
6
9
5
0

Вихідні дані:

3

Розділ: Цикли | Рівень складності: високий

  1. Дано послідовність ненульових цілих чисел, яка завершується нулем (саме число 0 в послідовність не входить, а використовується як ознака її закінчення). Необхідно обчислити скільки разів в цій послідовності змінюється знак (наприклад, в послідовності 10, -4, 12, 56, -4 знак змінюється 3 рази).


Вхідні дані:

-5
-3
10
6
-4
7
-1
0

Вихідні дані:

4

Розділ: Цикли | Рівень складності: високий

  1. Дано послідовність натуральних чисел, що завершується числом 0. Визначте найбільше число елементів цієї послідовності, що йдуть підряд один за одним, і дорівнюють один одному. Вводиться послідовність цілих чисел, що закінчується числом 0 (саме число 0 в послідовність не входить, а використовується як ознака її закінчення). Додаткове завдання: виведіть найбільш повторюваний елемент послідовності.


Вхідні дані:

1
5
5
4
3
9
9
9
7
0

Вихідні дані:

3

Розділ: Цикли | Рівень складності: високий

  1. Скласти програму для графічного зображення подільності чисел від 1 до n (значення n вводиться з клавіатури). У кожному рядку треба надрукувати чергове число і стільки символів +, скільки є дільників у цього числа.


Вхідні дані:

5

Вихідні дані:

1+
2++
3++
4+++
5++

Розділ: Цикли | Рівень складності: високий

  1. Дано натуральне число n. Визначити номер деякої заданої цифри d в ньому, відраховуючи від кінця числа. Якщо такої цифри немає, відповіддю має бути число 0; якщо таких цифр в числі кілька, повинен бути визначений номер позиції найправішої з них.


Вхідні дані:

1233572
3

Вихідні дані:

4

Розділ: Цикли | Рівень складності: високий

  1. Вводиться ціле число n. Вивести число, зворотне по порядку складових його цифр.


Вхідні дані:

125
123456789
1

Вихідні дані:

521
987654321
1

Розділ: Цикли | Рівень складності: високий

  1. Назвемо число паліндромом, якщо воно не змінюється при перестановці його цифр у зворотному порядку. Напишіть програму, яка за введеним користувачем числом n (1 ≤ n ≤ 100000) виводить числа-паліндроми, які не перевищують n.


Вхідні дані:

50

Вихідні дані:

1
2
3
4
5
6
7
8
9
11
22
33
44

Розділ: Цикли | Рівень складності: високий

  1. Назвемо число паліндромом, якщо воно не змінюється при перестановці його цифр у зворотному порядку. Напишіть програму, яка за введеною користувачем кількістю n (1 ≤ n ≤ 100000) виводить кількість таких чисел-паліндромів, які не перевищують n.


Вхідні дані:

1
50
10

Вихідні дані:

1
13
9

Розділ: Цикли | Рівень складності: високий

  1. Дано два чотирицифрових числа a і b. Виведіть усі чотирицифрові числа на відрізку від a до b, які є паліндромами (читаються однаково як зліва направо, так і справа наліво).


Вхідні дані:

1400
2200

Вихідні дані:

1441
1551
1661
1771
1881
1991
2002
2112

Розділ: Цикли | Рівень складності: високий

  1. Вводяться два чотирицифрових числа a і b. Виведіть у порядку зростання всі чотирицифрові числа в інтервалі від a до b, запис яких містить тільки три однакові цифри.


Вхідні дані:

1400
1600

Вихідні дані:

1411
1444
1511
1555

Розділ: Цикли | Рівень складності: високий

  1. Для настільної гри використовуються картки з номерами від 1 до n. Одна картка загубилася. Знайдіть її, знаючи номери решти карток. Користувач вводить ціле число n, далі n-1 номери решти карток (різні числа від 1 до n). Програма повинна вивести номер втраченої картки.


Вхідні дані:

5
3
4
1
5

Вихідні дані:

2

Розділ: Цикли | Рівень складності: високий

  1. Оленка вчиться ділити з залишком. Вона взяла деяке число, розділила його на 2 і відкинула залишок. Те, що вийшло, розділила на 3 та знову відкинула залишок. Отримане число вона розділила на 4, відкинула залишок і отримала число k. Яке число могла вибрати Оленка спочатку? Вводиться натуральне число k, що не перевершує 1000. Необхідно вивести усі можливі числа, які могла б вибрати спочатку Оленка, за зростанням, розділяючи їх пропусками.


Вхідні дані:

1

Вихідні дані:

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

Розділ: Цикли | Рівень складності: високий

  1. Скільки всього натуральних чисел складаються з не менш ніж a цифр і не більше, ніж b цифр? Вводяться два довільних натуральних числа a і b в окремих рядках. Виведіть одне число: кількість чисел, що володіють зазначеними властивостями.


Вхідні дані:

1
2
1
1

Вихідні дані:

99
9

Розділ: Цикли | Рівень складності: високий

  1. Дано натуральне число n (n ≤ 1000). Скласти програму для перевірки чи ділиться ціле число на кожну з його цифр без залишку. Надрукувати такі числа в інтервалі від 10 до n в порядку зростання, через пропуск.


Вхідні дані:

100
40
20

Вихідні дані:

11 12 15 22 24 33 36 44 48 55 66 77 88 99
11 12 15 22 24 33 36
11 12 15

Розділ: Цикли | Рівень складності: високий

  1. В одній країні використовуються грошові купюри номіналом в 1, 2, 4, 8, 16, 32 і 64. Дано натуральне число n. Якою найменшою кількістю таких грошових знаків можна виплатити суму n (вказати кількість кожної з використовуваних для виплати купюр)? Передбачається, що є досить велика кількість купюр всіх номіналів.


Вхідні дані:

165

Вихідні дані:

2 (64)
1 (32)
1 (4)
1 (1)

Розділ: Цикли | Рівень складності: високий

  1. Задумали два натуральних числа x і y (x, y ≤ 1000). Щоб відгадати ці числа, називають суму цих чисел a і їх добуток b. Відгадайте ці числа і виведіть їх в порядку зростання, розділяючи пропуском.


Вхідні дані:

12
20
6
8

Вихідні дані:

2 10
2 4

Розділ: Цикли | Рівень складності: високий

  1. Надрукувати всі непарні числа з інтервалу [a, b] (a ≥ b). Розглянути варіант програми без використання інструкції розгалуження.


Вхідні дані:

10
1

Вихідні дані:

9 7 5 3 1

Розділ: Цикли | Рівень складності: високий

  1. Надрукувати всі парні числа з інтервалу [a, b] (a ≤ b). Розглянути варіант програми без використання інструкції розгалуження.


Вхідні дані:

1
20

Вихідні дані:

2 4 6 8 10 12 14 16 18 20

Розділ: Цикли | Рівень складності: високий

2.4. Робота з рядками

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


Вхідні дані:

My favourite language is Python

Вихідні дані:

MY FAVOURITE LANGUAGE IS PYTHON
my favourite language is python

Розділ: Робота з рядками | Рівень складності: початковий

  1. Скласти програму, яка запитує назву баскетбольної команди і повторює її на екрані зі словами: This is a champion!.


Вхідні дані:

Atlanta Hawks

Вихідні дані:

Atlanta Hawks! This is a champion!

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка виводить на екран рядок з 5-ти копій останніх двох символів введеного користувачем рядка (довжина введеного рядка повинна бути не менше 2).


Вхідні дані:

emu
lion

Вихідні дані:

mumumumumu
ononononon

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано натуральне число. Знайти число, утворене з вхідного приписуванням до нього такого ж числа.


Вхідні дані:

125
6
1

Вихідні дані:

125125
66
11

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано натуральне число. Знайти число, що отримується при прочитанні його цифр справа наліво.


Вхідні дані:

98
10010010
1235

Вихідні дані:

89
01001001
5321

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано рядок. Змініть регістр символів в цьому рядку так, щоб перша буква кожного слова була великою, а інші літери - малими.


Вхідні дані:

A scandal in Bohemia
The adventure of the Blue Carbuncle
The Boscombe valley mystery

Вихідні дані:

A Scandal In Bohemia
The Adventure Of The Blue Carbuncle
The Boscombe Valley Mystery

Розділ: Робота з рядками | Рівень складності: початковий

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


Вхідні дані:

45
1
0

Вихідні дані:

2452
212
202

Розділ: Робота з рядками | Рівень складності: початковий

  1. Користувач вводить рядок і набір символів. Напишіть програму, яка перевіряє чи починається рядок із зазначених символів.


Вхідні дані:

wireless router
route

Вихідні дані:

False

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано рядок. Визначити порядковий номер першої вказаної букви. Якщо такої літери немає, вивести нуль.


Вхідні дані:

euro
r

Вихідні дані:

3

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано слово. З’ясуйте, чи слово починається і закінчується на одну і ту ж букву? Регістр літер не враховувати.


Вхідні дані:

Africa
Oceania

Вихідні дані:

True
False

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка отримує три рядки: прізвище, ім’я і по батькові особи, а потім виводить на екран ініціали та прізвище.


Вхідні дані:

Hansson
David
Heinemeier

Вихідні дані:

D.H.Hansson

Розділ: Робота з рядками | Рівень складності: початковий

  1. Скласти програму, яка визначає, який з двох введених рядків довший і друкує його. Якщо рядки рівні, вивести повідомлення equally.


Вхідні дані:

Linus
Guido

Вихідні дані:

equally

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано натуральне число. Знайти число, що отримується з вхідного перестановкою його першої та останньої цифр. Врахувати випадок введення одноцифрового числа.


Вхідні дані:

1467
5
11
12

Вихідні дані:

7461
5
11
21

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано два слова. Скласти програму, яка визначає, чи перше слово починається на ту ж букву, на яку закінчується друге слово.


Вхідні дані:

Python
Ruby

Вихідні дані:

False

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано натуральне число. Знайти число, що отримується видаленням з вхідного усіх зазначених цифр.


Вхідні дані:

34547
4

Вихідні дані:

357

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка зчитує значення a і b і виводить вірш, в якому замість a і b використовуються ці значення.


Вхідні дані:

A
B

Вихідні дані:

A and B sat in the tree.
A had fallen, B was stolen.
What's remaining in the tree?

Розділ: Робота з рядками | Рівень складності: початковий

  1. Користувач вводить рядок, в якому можуть бути пристуні пропуски. Визначити, чи є рядок паліндромом, тобто таким, який однаково читається як справа наліво, так і зліва направо. Для літер регістр не враховувати. Приклади рядків-паліндромів: racecar, 10201, Ada, Never odd or even.


Вхідні дані:

Ada
Able was I ere I saw Elba
10501
Origin

Вихідні дані:

True
True
True
False

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано два рядки, що можуть містити пропуски. Виведіть слово Yes, якщо перший рядок є підрядком другого рядка або слово No в іншому випадку.


Вхідні дані:

Lords of the World
But who shall dwell in these worlds if they be inhabited? Are we or they Lords of the World? And how are all things made for man?

Вихідні дані:

Yes

Розділ: Робота з рядками | Рівень складності: початковий

  1. З клавіатури вводиться два цілих числа a і b. Напишіть програму, яка порівнює ці числа і в залежності від результату порівняння виводить на екран потрібний вираз, наприклад: 3 < 5 або 3 = 3 або 3 > 2. Команду print для виведення результату дозволяється використовувати лише один раз.


Вхідні дані:

10
15

Вихідні дані:

10 < 15

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, щоб перевірити, з яких символів складається рядок, введений користувачем: лише з цифр, лише з букв, або з букв і цифр.


Вхідні дані:

abc
Street122
23

Вихідні дані:

Your message includes letters only.
Your message includes numbers and letters.
Your message includes numbers only.

Розділ: Робота з рядками | Рівень складності: початковий

  1. Для введеного єдиного символу, перевірте, чи є він цифрою. Під час розв’язування задачі не можна використовувати функції для роботи з рядками. Програма повинна вивести слово Yes, якщо символ є цифрою, або слово No.


Вхідні дані:

7
A
h

Вихідні дані:

Yes
No
No

Розділ: Робота з рядками | Рівень складності: початковий

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


Вхідні дані:

liopping
shst

Вихідні дані:

shopping list

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано рядок. Замініть у цьому рядку всі цифри 4 на слово Four.


Вхідні дані:

4 Christmases
Fantastic 4
The Nutcracker and the 4 Realms

Вихідні дані:

Four Christmases
Fantastic Four
The Nutcracker and the Four Realms

Розділ: Робота з рядками | Рівень складності: початковий

  1. Дано рядок. Замініть у цьому рядку усі входження певної літери англійського алфавіту, яку вводить користувач у нижньому регістрі, на відповідну літеру у верхньому регістрі. Спочатку вводиться літера, а потім рядок, у якому треба виконати заміну.


Вхідні дані:

a
"Curiouser and curiouser!" cried Alice (she was so much surprised that for the moment she quite forgot how to speak good English).

Вихідні дані:

"Curiouser And curiouser!" cried Alice (she wAs so much surprised thAt for the moment she quite forgot how to speAk good English).

Розділ: Робота з рядками | Рівень складності: початковий

  1. Користувач вводить рядок, у якому чергуються цифри та інші символи. На початку і у кінці рядка цифри відсутні. Напишіть програму, яка друкує усі символи введеного рядка у тому ж порядку, але без цифр.


Вхідні дані:

H1e2l3l4o5w6o7r8l9d
i1m3p4o9r0t4 6t7h8i9s

Вихідні дані:

Helloworld
import this

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, щоб у введеному користувачем рядку виконати обмін місцями першого та останнього символів.


Вхідні дані:

Hong Kong
Antarctica

Вихідні дані:

gong KonH
antarcticA

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка змінює регістр введеного єдиного символу, тобто переводить великі літери у малі, а малі - у великі, інші символи не змінює.


Вхідні дані:

a
F
5

Вихідні дані:

A
f
5

Розділ: Робота з рядками | Рівень складності: початковий

  1. Вводиться додатне ціле трицифрове число. Знайти суму цифр числа. Операціями ділення націло і остача від ділення користуватися не можна.


Вхідні дані:

179

Вихідні дані:

17

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка виводить перше слово у рядку. Слово - це послідовність непробільних символів, обмежена пропусками або межами рядка. Вхідний рядок містить довільну послідовність символів. Програма повинна вивести перше слово цього рядка.


Вхідні дані:

Stranger Things

Вихідні дані:

Stranger

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка виводить останнє слово у рядку. Слово – це послідовність непробільних символів, обмежена пропусками або межами рядка. Вхідний рядок містить довільну послідовність символів. Програма повинна вивести останнє слово цього рядка.


Вхідні дані:

Holmes & Watson

Вихідні дані:

Watson

Розділ: Робота з рядками | Рівень складності: початковий

  1. Напишіть програму, яка по введеному числу n від 1 до 9 виводить на екран n пінгвінів з відповідним номером - число від 1 до n. Зображення одного пінгвіна має розмір 5 x 9 символів, між двома сусідніми пінгвінами також є порожній (з пропусків) стовпець. Дозволяється вивести порожній стовпець після останнього пінгвіна. Для спрощення малювання скопіюйте пінгвіна із вихідних даних. Врахуйте, що виведення на екран виконується порядково, а не «попінгвінно».


Вхідні дані:

4

Вихідні дані:

   _~_        _~_        _~_        _~_
  (o o)      (o o)      (o o)      (o o)
 /  V  \    /  V  \    /  V  \    /  V  \
/(  1  )\  /(  2  )\  /(  3  )\  /(  4  )\
  ^^ ^^      ^^ ^^      ^^ ^^      ^^ ^^

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок, який, можливо, містить пропуски. «Витягніть» з цього рядка всі символи, які є цифрами і складіть з них новий рядок.


Вхідні дані:

3+3=6
2 * 3 = 6

Вихідні дані:

336
236

Розділ: Робота з рядками | Рівень складності: середній

  1. Для доступу до власного акаунту на сайті соціальної мережі користувач ввів логін і пароль. Так як була увімкнена двофакторна авторизація, на його телефон прийшло повідомлення з рядком цифр та інформацією як отримати код доступу. У повідомленні йшлося: «Кожну цифру, яка більша 5, необхідно націло розділити на 2, а потім з утвореної послідовності цифр видалити усі парні числа». Який код повинен ввести користувач для успішної авторизації? Напишіть програму, на вхід якої вводиться рядок цифр із повідомлення, а програма повинна надрукувати правильний код доступу.


Вхідні дані:

5763
1977

Вихідні дані:

33
33

Розділ: Робота з рядками | Рівень складності: середній

  1. Виведіть усі символи ASCII з кодами від n (n > 32) до m (m < 127) і їх коди в наступному вигляді: «символ код».


Вхідні дані:

101
106

Вихідні дані:

e 101
f 102
g 103
h 104
i 105
j 106

Розділ: Робота з рядками | Рівень складності: середній

  1. У рядку є кілька слів, розділених одним або декількома пропусками. Потрібно прибрати з тексту зайві пропуски: два і більше пропусків поспіль, а також всі пропуски на початку і в кінці рядка. На вхід програмі подається рядок, що складається не більше ніж з 255 символів. Надрукувати новий рядок.


Вхідні дані:

   Beyond the green     swelling hills of the     Mittel Land rose mighty slopes of forest    up    to the lofty steeps of the Carpathians    themselves

Вихідні дані:

Beyond the green swelling hills of the Mittel Land rose mighty slopes of forest up to the lofty steeps of the Carpathians themselves

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано вираз, який має один з наступних виглядів: 'A+B', 'A-B' або 'A*B', де A і B - цілі числа від 0 до 1000000000. Визначте значення цього виразу.


Вхідні дані:

3*3
50-49
33+16

Вихідні дані:

9
1
49

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок, який, можливо, містить пропуски. Переведіть усі символи цього рядка в нижній регістр.


Вхідні дані:

Hearts of Three, by Jack London

Вихідні дані:

hearts of three, by jack london

Розділ: Робота з рядками | Рівень складності: середній

  1. Виведіть поспіль, без пропусків, усі символи, що лежать в таблиці ASCII між двома заданими символами. Програма отримує на вхід два символу, кожен в окремому рядку і повинна вивести рядок, що починається першим із заданих символів і закінчується другим.


Вхідні дані:

A
F
0
9

Вихідні дані:

ABCDEF
0123456789

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок, що складається з слів, розділених пропусками. Визначте кількість слів у рядку.


Вхідні дані:

Events happened very rapidly with Francis Morgan that late spring morning

Вихідні дані:

11

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок. Визначити число пропусків в ньому.


Вхідні дані:

After his hunger and thirst were satisfied, Robinson thought he would try to find another dwelling place

Вихідні дані:

16

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму для друку таблиці індексів і значень символів у введеному користувачем рядку.


Вхідні дані:

Ruby

Вихідні дані:

0 R
1 u
2 b
3 y

Розділ: Робота з рядками | Рівень складності: середній

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


Вхідні дані:

It was early on a fine summer's day, near the end of the eighteenth century, when a young man, of genteel appearance, journeying towards the north-east of Scotland
36

Вихідні дані:

IT WAS EARLY ON A FINE SUMMER'S DAY, near the end of the eighteenth century, when a young man, of genteel appearance, journeying towards the north-east of Scotland

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму, щоб отримати рядок із введеного користувачем рядка, де всі входження першого символа у рядку змінилися на рядок *HIDE*, за винятком першого.


Вхідні дані:

Endless clouds drifted back and forth, blotting out the RED SUN

Вихідні дані:

Endl*HIDE*ss clouds drift*HIDE*d back and forth, blotting out th*HIDE* R*HIDE*D SUN

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму для розрахунку довжини рядка без використання функції len().


Вхідні дані:

pythonguide.pp.ua

Вихідні дані:

17

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму, яка по введеному числу n від 1 до 9 виводить на екран n прапорців з відповідними номерами. Зображення одного прапорця має розмір 4 x 4 символи, між двома сусідніми прапорцями також є порожній (з пропусків) стовпець. Дозволяється вивести порожній стовпець після останнього прапорця. Усередині кожного прапорця повинен бути записаний його номер - число від 1 до n.


Вхідні дані:

3

Вихідні дані:

+___ +___ +___
|1 / |2 / |3 /
|__\ |__\ |__\
|    |    |

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок, що складається з рівно двох слів, розділених пропуском. Надрукуйте новий рядок, у якому позиції першого та другого слова змінені (друге слово друкується спочатку). У завданні не можна використовувати цикли і вказівку «якщо».


Вхідні дані:

Linux Ubuntu
Richard Stallman

Вихідні дані:

Ubuntu Linux
Stallman Richard

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму, яка отримує рядок і обчислює кількість цифр і букв у ньому.


Вхідні дані:

Andromeda, M 31, NGC 224

Вихідні дані:

Letters 13
Digits 5

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано послідовність символів, що має вигляд p1*p2*...*pn, де pn - цифра. Обчисліть значення виразу.


Вхідні дані:

2*5*7

Вихідні дані:

70

Розділ: Робота з рядками | Рівень складності: середній

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


Вхідні дані:

Poirot shook his head energetically. He was now arranging his moustache with exquisite care.
w

Вихідні дані:

3

Розділ: Робота з рядками | Рівень складності: середній

  1. Користувач вводить рядок і певний номер n символа у ньому. Напишіть програму для видалення n-го символу з не порожнього рядка. Цикли і вказівку «якщо» для розв’язування задачі використовувати не можна.


Вхідні дані:

Poirot stopped for a moment, and gazed sorrowfully over the beautiful expanse of park, still glittering with morning dew.
27

Вихідні дані:

Poirot stopped for a moment and gazed sorrowfully over the beautiful expanse of park, still glittering with morning dew.

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму для перевірки чи є введена літера голосною або приголосною.


Вхідні дані:

F
e

Вихідні дані:

F is a consonant
e is a vowel

Розділ: Робота з рядками | Рівень складності: середній

  1. Вводиться додатне дійсне число, надрукуйте його першу цифру справа від десяткової точки.


Вхідні дані:

1.79
100.89
6.045

Вихідні дані:

7
8
0

Розділ: Робота з рядками | Рівень складності: середній

  1. При заданому користувачем значенні цілого числа n ≥ 2 обчислити суму 1 x 2 + 2 x 3 + ... + (n - 1) x n. Відповідь виведіть у вигляді обчисленого виразу і його значення в точності, як показано у вихідних даних.


Вхідні дані:

2
4

Вихідні дані:

1*2=2
1*2+2*3+3*4=20

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму для видалення символів, які мають непарні значення індексів у введеному користувачем рядку.


Вхідні дані:

monkey
kangaroo

Вихідні дані:

mne
knao

Розділ: Робота з рядками | Рівень складності: середній

  1. Користувач вводить рядок одноцифрових чисел без пропусків. Напишіть програму для обчислення суми цих чисел.


Вхідні дані:

1239
88
01

Вихідні дані:

15
16
1

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму, яка зчитує рядок, введений користувачем, що містить дату у формі mm/dd/yyyy. Програма має вивести на екран дату у вигляді Місяць Число, Рік.


Вхідні дані:

12/29/2022
03/04/2025

Вихідні дані:

December 29, 2022
March 04, 2025

Розділ: Робота з рядками | Рівень складності: середній

  1. Вводиться рядок. Необхідно видалити з нього всі пропуски. Після цього визначити, чи є він паліндромом, тобто однаково пишеться як зліва направо, так і справа наліво. Програма має вивести Yes, якщо слово є паліндромом, або No у протилежному випадку.


Вхідні дані:

123          621
Never     odd   or        even

Вихідні дані:

No
Yes

Розділ: Робота з рядками | Рівень складності: середній

  1. Код Морзе - це код, в якому кожна буква алфавіту (наприклад, англійського), кожна цифра та різні знаки пунктуації представляються набором крапок і дефісів. Напишіть програму, яка перетворює рядок, введений користувачем, в код Морзе (таблицю значення кодів Морзе знайдіть в Інтернеті).


Вхідні дані:

W
9
,
Python
:)

Вихідні дані:

.--
----.
--..--
.--.-.--....----.
---...-.--.-

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму, яка зчитує рядок, введений користувачем, та визначає у ньому: кількість великих літер, кількість малих літер, кількість символів пропуску.


Вхідні дані:

By Red Flower Bagheera meant fire, only no creature in the jungle will call fire by its proper name.

Вихідні дані:

Upper 4
Lower 76
Spaces 18

Розділ: Робота з рядками | Рівень складності: середній

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


Вхідні дані:

_max
123var
myClass#2

Вихідні дані:

Yes
No
No

Розділ: Робота з рядками | Рівень складності: середній

  1. Вводиться рядок. Потрібно видалити з нього повторювані символи і всі пропуски.


Вхідні дані:

aa
a a b b c dd e

Вихідні дані:

a
abcde

Розділ: Робота з рядками | Рівень складності: середній

  1. Користувач вводить рядок, у якому містяться слова, знаки пунктуації, причому усі слова записуються разом і перша літера кожного слова є великою. Напишіть програму, яка виводить рядок, у якому введені слова розділені пропусками.


Вхідні дані:

TheOldSeaDogAtTheAdmiralBenbow

Вихідні дані:

The Old Sea Dog At The Admiral Benbow

Розділ: Робота з рядками | Рівень складності: середній

  1. Знайти у рядку зазначений підрядок і замінити його на новий. Рядок, підрядок для заміни та новий рядок вводить користувач. Розгляньте випадок заміни усіх підрядків. Також необхідно врахувати випадок відсутності підрядка, який необхідно замінити (вивести is impossible).


Вхідні дані:

12 45 32 567 32 109
32
0
12 45 32 567 32 109
33
-1

Вихідні дані:

12 45 0 567 0 109
is impossible

Розділ: Робота з рядками | Рівень складності: середній

  1. Напишіть програму, яка дає користувачеві можливість вводити рядок і відображає символ, який найчастіше з’являється у рядку та кількість його входжень. Якщо у рядку є кілька таких символів, необхідно врахувати лише перший з них.


Вхідні дані:

Black Dog Appears and Disappears
I Go to Bristol

Вихідні дані:

a 5
пропуск 3

Розділ: Робота з рядками | Рівень складності: середній

  1. Користувач вводить рядок і певний символ. Напишіть програму, яка друкує місця розташування (індекси) першої та останньої появи введеного символа. Якщо символ зустрічається лише один раз, то виведіть його індекс. Якщо символ не зустрічається, надрукуйте missing. У цьому завданні не можна використовувати цикли.


Вхідні дані:

9965 GNU
6
9965 GNU
9
9965 GNU
N
9965 GNU
A

Вихідні дані:

2
0 1
6
missing

Розділ: Робота з рядками | Рівень складності: середній

  1. Користувач вводить рядок і певний символ. Напишіть програму, яка друкує індекс розташування другої появи введеного символа у рядку. Якщо рядок містить введений символ лише один раз, то надрукуйте -1, а якщо рядок не містить шуканого символа, то надрукуйте -2.


Вхідні дані:

The morning's sun rose clear and resplendent, touching the foamy waves into a network of ruby-tinted light.
s

Вихідні дані:

14

Розділ: Робота з рядками | Рівень складності: середній

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


Вхідні дані:

We left in pretty good time, and came after nightfall to Klausenburgh. Here I stopped for the night at the Hotel Royale.
u

Вихідні дані:

We left in pretty good time, and came after nightfall to Klargh. Here I stopped for the night at the Hotel Royale.

Розділ: Робота з рядками | Рівень складності: середній

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


Вхідні дані:

In the centre of the room, clamped to an upright easel, stood the full-length portrait of a young man of extraordinary personal beauty, and in front of it, some little distance away, was sitting the artist himself, Basil Hallward, whose sudden disappearance some years ago caused, at the time, such public excitement and gave rise to so many strange conjectures.
m

Вихідні дані:

24 337

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок нулів та одиниць. Напишіть програму для знаходження найдовшої неперервної послідовності нулів у рядку.


Вхідні дані:

1001
100001001010
1000001

Вихідні дані:

2
4
5

Розділ: Робота з рядками | Рівень складності: середній

  1. Вводиться рядок. Необхідно визначити в ньому відсотки малих і великих букв.


Вхідні дані:

Hello, Guido!

Вихідні дані:

61.54
15.38

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано два слова. Складіть програму, що визначає чи можна чи ні з букв слова A скласти слово B. Програма має враховувати регістр літер введених слів.


Вхідні дані:

Python
not
Ruby
Buy

Вихідні дані:

Yes
No

Розділ: Робота з рядками | Рівень складності: середній

  1. В операційній системі Windows шлях до файлу складається з імені логічного диска і назв каталогів, в яких знаходиться цей файл. Частини шляху розділені знаками \ (зворотний слеш). Потрібно розбити заданий шлях до файлу на частини - ім’я диска і назви каталогів. Програма повинна вивести ім’я диска і назви всіх каталогів, що становлять шлях. Кожен елемент виводиться в окремому рядку. Використовувати модулі не можна.


Вхідні дані:

C:\Python36\python.exe

Вихідні дані:

C:
Python36
python.exe

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок і символ, який зустрічається у рядку принаймні два рази. Напишіть програму, яка надрукує новий рядок (на основі введеного користувачем), у якому послідовність символів, що містяться між першою і останньою появою введеного символа, буде записана у зворотному порядку.


Вхідні дані:

Complex is better than complicated.
a

Вихідні дані:

Complex is better thacilpmoc nated.

Розділ: Робота з рядками | Рівень складності: середній

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


Вхідні дані:

There should be one-- and preferably only one --obvious way to do it.
n

Вихідні дані:

There should be one-- aNd preferably oNly one --obvious way to do it.

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано рядок. Розріжте його на дві «рівні» частини (якщо довжина рядка непарна, помістіть центральний символ у першу частину, так що перша частина міститиме на один символ більше, ніж друга частина). Тепер надрукуйте новий рядок, у якому перша та друга половини обмінялися місцями (не використовуйте вказівку «якщо» для цього завдання).


Вхідні дані:

country
town

Вихідні дані:

trycoun
wnto

Розділ: Робота з рядками | Рівень складності: середній

  1. Дано послідовність символів довжини n (n ≥ 1). Перевірити баланс круглих дужок в цьому виразі (кожна відкита дужка має свою закриту дужку). Наприклад, при введенні виразу (()) () програма повинна повідомити про правильність розстановки дужок (True), а при введенні виразу ((()) - про неправильність (False). Напишіть програму, яка може перевіряти баланс дужок в арифметичних виразах, тексті і т. д.


Вхідні дані:

(3y + 21)(12 - (x + 5))
(61x + 15(y + 2)

Вихідні дані:

True
False

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано рядок, що складається з n цифр (тобто одноцифрових чисел), між якими стоїть n-1 знаків операцій, кожна з яких може бути або +, або -. Обчисліть значення цього виразу. Програма має надрукувати результат обчислення цього виразу.


Вхідні дані:

5-3+1
6+3-2

Вихідні дані:

3
7

Розділ: Робота з рядками | Рівень складності: високий

  1. Капітан Флінт закопав скарб на Острові скарбів. Він залишив опис, як знайти скарб. Опис складається з рядків виду: North 5, де перше слово - одне з North, South, East, West, а друге число - кількість кроків, яку потрібно пройти в цьому напрямку. Напишіть програму, яка за описом шляху до скарбу визначає точні координати скарбу, вважаючи, що початок координат знаходиться на початку шляху, вісь OX спрямована на схід, вісь OY - на північ. Програма отримує на вхід послідовність рядків зазначеного виду, а введення завершується рядком зі словом Treasure!. Програма має вивести два цілих числа в один рядок з пропуском між ними - координати скарбу.


Вхідні дані:

North 5
East 3
South 1
Treasure!

Вихідні дані:

3 4

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму, на вхід якої даються чотири числа a, b, c і d, кожне у своєму рядку. Програма повинна вивести фрагмент таблиці множення для всіх чисел відрізка [a; b] на всі числа відрізка [c; d]. Числа a, b, c і d є натуральними і не перевищують 10, a ≤ b, c ≤ d. Дотримуйтесь формату виведення як у вихідних даних. Для поділу елементів всередині рядка використовуйте \t - символ табуляції. Зауважте, що лівим стовпчиком і верхнім рядком виводяться самі числа із заданих відрізків.


Вхідні дані:

1
4
2
5

Вихідні дані:

	2	3	4	5
1	2	3	4	5
2	4	6	8	10
3	6	9	12	15
4	8	12	16	20

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму для друку літери A за допомогою введеного користувачем символа.


Вхідні дані:

*

Вихідні дані:

  ***
 *   *
 *   *
 *****
 *   *
 *   *
 *   *

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму для друку літери M за допомогою введеного користувачем символа.


Вхідні дані:

%

Вихідні дані:

 %   %
 %   %
 %% %%
 % % %
 %   %
 %   %
 %   %

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано рядок, що є параграфом в тексті. Текст необхідно відформатувати так, щоб довжина кожного рядка не перевищувала числа m, слова при цьому не розривати. На вхід програмі спочатку подається число m (0 < m ≤ 255). У наступному рядку знаходиться вхідний текст. Довжина слів в ньому не перевищує m, слова розділені рівно одним пропуском. Виведіть розбиття цього тексту на рядки довжиною не більше ніж m символів (слово переноситься на наступний рядок тільки якщо в поточному рядку його розмістити вже неможливо). Новий рядок не повинен починатися з пропуску.


Вхідні дані:

10
The Wonderful Wizard of Oz

Вихідні дані:

The
Wonderful
Wizard of
Oz

Розділ: Робота з рядками | Рівень складності: високий

  1. Послідовності із символів 0 і 1 називаються бінарними. Вони широко застосовуються в інформатиці. Одне з незручностей бінарних послідовностей – їх важко запам’ятовувати. Для вирішення цієї проблеми був запропонований такий спосіб їх стиснення: переглядаючи послідовність зліва направо, виконується заміна 1 на a, 01 на b, 001 на c, ..., 00000000000000000000000001 на z. Напишіть програму, яка допоможе автоматизувати такий процес заміни.


Вхідні дані:

1111
1001101
10000101

Вихідні дані:

aaaa
acab
aeb

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму, яка зчитує рядок, кодує її запропонованим алгоритмом і виводить закодовану послідовність. Кодування повинно враховувати регістр символів. Правила кодування: групи однакових символів початкового рядка замінюються на цей символ і кількість його повторень в цій позиції рядка. Наприклад: рядок aaaabbbсaa кодується в a4b3с1a2.


Вхідні дані:

aaaabbbcaa
abc
Hello

Вихідні дані:

a4b3c1a2
a1b1c1
H1e1l2o1

Розділ: Робота з рядками | Рівень складності: високий

  1. На вхід програми подається два рядка A і B, що складаються з малих букв англійського алфавіту. Виведіть кількість входжень рядка B в рядок A.


Вхідні дані:

aaaa
a
ababada
abc
abababa
aba

Вихідні дані:

4
0
3

Розділ: Робота з рядками | Рівень складності: високий

  1. Користувач вводить рядок цифр без пропусків. Необхідно написати програму, яка «розіб’є» це число на трійки цифр справа наліво комами. Якщо число містить менше трьох цифр, то воно виводиться без змін.


Вхідні дані:

4567
123
2348906

Вихідні дані:

4,567
123
2,348,906

Розділ: Робота з рядками | Рівень складності: високий

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


Вхідні дані:

NASA
Mars
Webb

Вихідні дані:

1
3
2

Розділ: Робота з рядками | Рівень складності: високий

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


Вхідні дані:

District 9 (2009) - IMDb 8
Reviews 1301 user | 478 critic | Popularity 511
R | 1h 52min | Sci-Fi, Thriller | 13 August 2009 (Ukraine)

Вихідні дані:

9, 2009, 8
1301, 478, 511
1, 52, 13, 2009

Розділ: Робота з рядками | Рівень складності: високий

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


Вхідні дані:

The Lord of the Rings: The Two Towers (Adventure, Drama, Fantasy) [2002].
The Matrix (Action, Sci-Fi) [1999].
WALL-E (Animation, Adventure, Family) [2008].

Вихідні дані:

Adventure
Matrix
Animation

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму, яка переводить ціле число N (1 ≤ |N| < 1000000000) з системи числення з основою K (2 ≤ K ≤ 36) в систему числення з основою M (2 ≤ M ≤ 36). Перший вхідний рядок містить запис числа N в системі числення з основою K. Другий рядок містить числа K і M, розділені пропуском. Програма повинна вивести запис числа N в системі числення з основою M.


Вхідні дані:

125
8 16
CD6
16 3
-AB
16 10

Вихідні дані:

55
11111201
-171

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано текст і відомо, що він шифрується наступним чином. Спочатку визначається кількість букв k в найдовшому слові (словом називається безперервна послідовність англійських букв, слова один від одного відокремлюються будь-якими іншими символами, довжина слова не перевищує 20 символів). Потім кожна англійська літера замінюється на букву, що стоїть в алфавіті на k букв раніше (алфавіт вважається циклічним, тобто перед буквою A стоїть буква Z). Інші символи залишаються незмінними. Малі літери при цьому залишаються малими, а великі - великими. Розшифруйте введений текст.


Вхідні дані:

Njzxwxgd Bpihjbdid, rgtpidg du iwt Gjqn egdvgpbbxcv apcvjpvt.

Вихідні дані:

Yukihiro Matsumoto, creator of the Ruby programming language.

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано рядок, який, можливо, містить пропуски. Визначте кількість слів у цьому рядку. Слово - це кілька поспіль букв англійського алфавіту (як великих, так і малих). При розв’язуванні цього завдання не можна користуватися списками.


Вхідні дані:

Do you play any sports? Yes, I like to play basketball.

Вихідні дані:

10

Розділ: Робота з рядками | Рівень складності: високий

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


Вхідні дані:

He lives in house number 4.
Now is better than never.
Tom Tells the Truth.

Вихідні дані:

He 2
is 2
Tom 3

Розділ: Робота з рядками | Рівень складності: високий

  1. Шифр Цезаря полягає в заміні кожного символу вхідного рядка на символ, що знаходиться на кілька позицій ліворуч або праворуч його в алфавіті. Напишіть програму, яка шифрує текст шифром Цезаря. Використовуваний алфавіт - пропуск і малі літери англійського алфавіту. На першому рядку вказується зміщення шифрування: ціле число. Додатне число відповідає зміщенню вправо. На другому рядку вказується непорожній рядок-фраза для шифрування. Результатом роботи програми має бути записана зашифрована послідовність.


Вхідні дані:

3
i am caesar
26
abc
1
Python

Вихідні дані:

lcdpcfdhvdu
abc
qzuipo

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму, яка переводить натуральне число N (1 ≤ N ≤ 3999) з римської системи числення в десяткову. Вхідний рядок містить число N, записане в римській системі числення. Програма повинна вивести десятковий запис числа N.


Вхідні дані:

MMMCMXCIX
IV
XXI

Вихідні дані:

3999
4
21

Розділ: Робота з рядками | Рівень складності: високий

  1. Кодування довжин послідовностей - це базовий алгоритм стиснення даних. Реалізуйте один з найпростіших його варіантів. На вхід алгоритму подається рядок, що містить символи англійського алфавіту. Цей рядок розбивається на групи однакових символів, що йдуть підряд («серії»). Кожна серія характеризується символом і кількістю повторень. Саме ця інформація і записується в код: спочатку пишеться довжина серії повторюваних символів, потім сам символ. У серій довжиною в один символ кількість повторень не записується.


Вхідні дані:

aaabccccCCaB
aabcccddffffffffff

Вихідні дані:

3ab4c2CaB
2ab3c2d10f

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано рядок, який може містити пропуски. Визначте, чи є цей рядок паліндромом, за умови, що великі і малі літери не розрізняються, а всі символи, які не є буквами, повинні бути пропущені. Виведіть слово Yes, якщо слово є паліндромом і слово No, якщо ні. Довжина вхідного рядка може бути до 100000 символів. При виконанні цього завдання не можна використовувати списки.


Вхідні дані:

Was.it.a.rat.I.saw?
Rio-de-Janeiro!
a+b=b+a

Вихідні дані:

Yes
No
Yes

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано рядок, що містить одне або більше цілих чисел від 0 до 1000000000, розділених знаками + або -. Розрахуйте значення цього виразу.


Вхідні дані:

12-5+3
26-14+2-1
7-0+3

Вихідні дані:

10
13
10

Розділ: Робота з рядками | Рівень складності: високий

  1. Дано рядок, який може міститити пропуски. Визначте, яка буква англійського алфавіту (або які букви) в цьому рядку зустрічається найчастіше. Великі і малі літери вважаються однаковими, а інші символи, які не є буквами, не враховуються. Програма повинна вивести в першому рядку всі букви, які зустрічаються найчастіше в заданому рядку. Виводити букви необхідно у верхньому регістрі, в алфавітному порядку (додатково), без пропусків. У другому рядку виведіть єдине число - скільки разів у цьому рядку зустрічаються ці літери. При виконанні цього завдання не можна користуватися вкладеними циклами. Вхідний рядок повинен оброблятися за один прохід.


Вхідні дані:

Project Gutenberg EBook of The jungle book, by Rudyard Kipling

Вихідні дані:

EO
6

Розділ: Робота з рядками | Рівень складності: високий

  1. У мережі Інтернет кожному комп’ютері присвоюється IP-адреса (чотирьохбайтовий код, який прийнято записувати у вигляді чотирьох чисел, кожне з яких може приймати значення від 0 до 255 і між якими ставлять крапку). Ось приклади правильних IP-адрес: 192.168.0.1, 255.0.255.255, 10.10.0.2. Програма отримує на вхід рядок з довільних символів і якщо цей рядок є коректним записом IP-адреси, виведіть Yes, інакше виведіть No.


Вхідні дані:

C.E.R.N
192.168.0.200
256.0.0.255

Вихідні дані:

No
Yes
No

Розділ: Робота з рядками | Рівень складності: високий

  1. Напишіть програму, яка визначає, чи є у введеному рядку десяткові цифри, і виводить найбільше число, яке можна скласти з цих цифр. Провідних нулів у числі бути не повинно (за винятком числа 0, запис якого містить рівно одну цифру). Гарантовано, що у рядку є принаймні одна цифра. Вхідний рядок містить довільні символи. Програма повинна вивести найбільше число, яке можна скласти з присутніх в рядку десяткових цифр.


Вхідні дані:

Release Date: July 27, 2008
Last Updated: February 22, 2018

Вихідні дані:

872200
822210

Розділ: Робота з рядками | Рівень складності: високий

2.5. Списки і кортежі

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


Вхідні дані:

7 2 1 0 4 2 5
7 2 1 0 4 2

Вихідні дані:

0 4 2 5
0 4 2

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Створіть список на основі введеної послідовності цілих чисел і надрукуйте його елементи таким чином: два останні елементи переміщені з кінця в початок списку без зміни їх початкового порядку.


Вхідні дані:

4 10 2 9 4 7 3

Вихідні дані:

7 3 4 10 2 9 4

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Збережіть назви мов світу, які вводяться в одному рядку через пропуск, у списку. Простежте за тим, щоб елементи у списку не зберігались в алфавітному порядку. Відсортуйте список в алфавітному порядку і виведіть його елементи в рядку через пропуск.


Вхідні дані:

Ukrainian French Bulgarian Norwegian Latvian

Вихідні дані:

Bulgarian French Latvian Norwegian Ukrainian

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Збережіть назви мов світу, які вводяться в одному рядку через пропуск, у списку. Простежте за тим, щоб елементи у списку не зберігались в алфавітному порядку. Відсортуйте список в порядку протилежному алфавітному і виведіть його елементи в рядку через пропуск.


Вхідні дані:

Ukrainian French Bulgarian Norwegian Latvian

Вихідні дані:

Ukrainian Norwegian Latvian French Bulgarian

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Збережіть назви мов світу, які вводяться в одному рядку через пропуск, у списку. Виведіть елементи списку в зворотному порядку в рядку через пропуск.


Вхідні дані:

Ukrainian French Bulgarian Norwegian Latvian

Вихідні дані:

Latvian Norwegian Bulgarian French Ukrainian

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Виведіть елементи даного списку в зворотному порядку, не змінюючи сам список.


Вхідні дані:

2 6 1 7 9

Вихідні дані:

9 7 1 6 2

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Виведіть всі елементи списку з парними індексами. Вводиться список чисел. Всі числа списку знаходяться на одному рядку.


Вхідні дані:

1 2 3 4 5

Вихідні дані:

1 3 5

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму, яка роздруковує лише ті елементи введеного списку, що менше введеного значення n. Список містить унікальні значення.


Вхідні дані:

2 7 11 3 8 90 144 15 5
94

Вихідні дані:

2 7 11 3 8 90 15 5

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Виведіть всі парні елементи списку. Вводиться список чисел. Всі числа списку знаходяться на одному рядку.


Вхідні дані:

1 2 2 3 3 3 4 4 4 4

Вихідні дані:

2 2 4 4 4 4

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Знайдіть кількість додатних елементів у введеному списку. Вводиться список чисел. Всі числа списку знаходяться на одному рядку.


Вхідні дані:

2 -4 5 6 -3

Вихідні дані:

3

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Виведіть всі елементи списку з непарними індексами. Вводиться список чисел, елементи якого розділені комами без пропусків. Всі числа списку знаходяться на одному рядку. Необхідно вивести список в одному рядку і елементи списку мають бути розділені комами без пропусків.


Вхідні дані:

1,2,3,4,5,6,7,8,9

Вихідні дані:

1,3,5,7,9

Розділ: Списки і кортежі | Рівень складності: початковий

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


Вхідні дані:

4 5 6 6 6 5 4 4 7 4

Вихідні дані:

7

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Вводиться список чисел. Всі числа списку знаходяться в одному рядку. Обчисліть, скільки у списку різних елементів, не змінюючи самого списку.


Вхідні дані:

5 7 7 9 12

Вихідні дані:

4

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для доступу до індексу цілочисельних елементів списку. Числа списку вводяться на одному рядку через пропуск.


Вхідні дані:

3 44 6 8 9 12 7

Вихідні дані:

0 3
1 44
2 6
3 8
4 9
5 12
6 7

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Вводиться список чисел. Всі числа списку знаходяться в одному рядку. Не змінюючи його і не використовуючи додаткові списки, визначте, яке число в цьому списку зустрічається найчастіше. Якщо таких чисел декілька, виведіть будь-яке з них.


Вхідні дані:

1 0 0 1 0 0 1 1 0
2 4 6 9 9 2 3 2 4

Вихідні дані:

0
2

Розділ: Списки і кортежі | Рівень складності: початковий

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


Вхідні дані:

5 8 0 2 9 4 1

Вихідні дані:

8 2 9

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Вводиться список цілих чисел в одному рядку через пропуск. Надрукуйте кількість елементів, які є за значенням більші за обох їх сусідів. Перший і останній елементи списку не слід розглядати, оскільки вони не мають двох сусідів.


Вхідні дані:

1 2 1
1 3 2 4 2
1 2 3

Вихідні дані:

1
2
0

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму, яка отримує повне ім’я файлу від користувача та друкує на екрані розширення отриманого файлу.


Вхідні дані:

test.cpp

Вихідні дані:

cpp

Розділ: Списки і кортежі | Рівень складності: початковий

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


Вхідні дані:

1 5 9 5 2 8

Вихідні дані:

30

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Визначте, скільки різних слів у введеному рядку.


Вхідні дані:

New Delhi New York Paris Prague Reykjavik
Happy New Year Happy New Year May we all have a vision now and then Of a world where every neighbor is a friend

Вихідні дані:

6
19

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму, яка отримує два цілих числа в одному рядку через пропуск і виводить ці числа аналогічним чином, помінявши їх місцями.


Вхідні дані:

101 56

Вихідні дані:

56 101

Розділ: Списки і кортежі | Рівень складності: початковий

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


Вхідні дані:

12.567
0.75

Вихідні дані:

12 567
0 75

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Створіть програму, яка отримує на вхід послідовність цілих чисел, і друкує на екрані: найменше число у списку, найбільше число у списку, кількість чисел у списку, середнє значення елементів у списку.


Вхідні дані:

1 3 7 5

Вихідні дані:

1
7
4
4.0

Розділ: Списки і кортежі | Рівень складності: початковий

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


Вхідні дані:

7, 9, 12, 4

Вихідні дані:

[7, 9, 12, 4]
(7, 9, 12, 4)

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для підрахунку кількості днів, в яких температура була не нижче, ніж середня температура за весь період. У першому рядку вводиться список показників температури на кожен день. У рядку виведення одне число - кількість днів, які відповідають умові.


Вхідні дані:

-3 -1 0 2 6 8 12 15

Вихідні дані:

4

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для підрахунку кількості цілих чисел n, які вводяться користувачем (значення вводяться через пропуск в одному рядку, число n вводиться у новому рядку).


Вхідні дані:

2 5 8 19 7
5
2 6 7 8 9 9 2 3
9

Вихідні дані:

1
2

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для друкування всіх парних чисел із введеного списку чисел у тому ж порядку і припиніть друк, якщо у списку буде число n або нуль. Значення списку вводяться через пропуск в одному рядку, число n вводиться у новому рядку.


Вхідні дані:

1 8 9 0 4 2 5 6
2

Вихідні дані:

8

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму, щоб перевірити, чи певне ціле число n перевищує всі елементи цілочисельного списку. Значення списку вводяться через пропуск в одному рядку, число n вводиться у новому рядку.


Вхідні дані:

4 67 109 25 44 12
99

Вихідні дані:

False

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Цілі числа (додатні і від’ємні) вводяться через пропуск в одному рядку. Напишіть програму для друку списку лише із введених додатних чисел.


Вхідні дані:

0 9 -4 6 8 -15 4

Вихідні дані:

[9, 6, 8, 4]

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для отримання частини рядка URL, що позначає назву ресурсу.


Вхідні дані:

https://www.namesite.com/folder/index.html

Вихідні дані:

index.html

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для отримання найменшого цілого числа зі списку. Значення списку вводяться через пропуск в одному рядку.


Вхідні дані:

87 6 25 7 105 23 56

Вихідні дані:

6

Розділ: Списки і кортежі | Рівень складності: початковий

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


Вхідні дані:

20 56 14 9 1 15

Вихідні дані:

9

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть програму для перетворення списку декількох цілих чисел у єдине ціле число. Значення списку вводяться через пропуск в одному рядку.


Вхідні дані:

1 7 9 4

Вихідні дані:

1794

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Написати програму, яка обчислює середнє арифметичне елементів списку. Середнім арифметичним кількох чисел називається їх сума, поділена на їх кількість. Результат округлити до двох знаків після десяткової крапки.


Вхідні дані:

3 5 1 8 4

Вихідні дані:

4.20

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Напишіть простий інтерпретатор математичного виразу. На вхід подається рядок з виразом, що складається з двох чисел (0 ≤ a, b ≤ 1000), об’єднаних бінарним оператором: a operator b, де замість operator можуть використовуватися такі слова: plus, minus, multiply, divide для, відповідно, додавання, віднімання, множення і цілочисельного ділення. Результат обчислення - рядок, що містить ціле число.


Вхідні дані:

20 plus 7
15 minus 9
144 multiply 2
49 divide 7

Вихідні дані:

27
6
288
7

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Знайти відстань між двома точками із заданими координатами (x1, y1, x2, y2) в 2-вимірному просторі. Значення координат є цілими числами. Результат округлити до двох знаків після десяткової крапки.


Вхідні дані:

2 3 -7 4

Вихідні дані:

9.06

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Дано список цілих чисел. Визначте елемент у списку з найбільшим значенням. Надрукувати значення найбільшого елемента, а потім номер індексу. Якщо найбільший елемент не є унікальним, надрукуйте індекс першого входження найбільшого елемента.


Вхідні дані:

2 5 10 0 4 7 11 5 8

Вихідні дані:

11 6

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Дано послідовність цілих чисел. Визначте, у відсортованому за зростанням списку, кількість елементів, що не повторюються один за одним.


Вхідні дані:

1 9 10 3 7 5 2 2 3 0 4 5 6

Вихідні дані:

10

Розділ: Списки і кортежі | Рівень складності: початковий

  1. Циклічно посуньте елементи списку вправо (0-вий елемент переходить на місце 1-го, 1-ий на місце 2-го, ..., останній елемент переходить на місце 0-го). Вводиться список чисел. Всі числа списку знаходяться на одному рядку.


Вхідні дані:

2 0 2 5
6
1 2 3

Вихідні дані:

5 2 0 2
6
3 1 2

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка приймає послідовність слів, розділених комами і без пропусків в якості введення, і друкує послідовність слів, розділених комами, після сортування за алфавітом.


Вхідні дані:

one,moment,please

Вихідні дані:

moment,one,please

Розділ: Списки і кортежі | Рівень складності: середній

  1. Для введеної послідовності унікальних цілих чисел, поміняйте місцями мінімальний та максимальний елементи цієї послідовності. Надрукуйте отриманий список.


Вхідні дані:

1 9 12 5 3 8

Вихідні дані:

12 9 1 5 3 8

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано список чисел, підрахуйте, скільки пар елементів мають однакове значення (рівні). Будь-які два елементи, що дорівнюють один одному, слід вважати рівно один раз.


Вхідні дані:

1 2 2 2 3 3 4
4 5 5 8 10 12 3 3
1 5 2 8 9 5

Вихідні дані:

4
2
1

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка приймає послідовність рядків (порожній рядок для завершення програми) як вхідний рядок і друкує рядки у верхньому регістрі.


Вхідні дані:

python
ruby
go
 

Вихідні дані:

PYTHON
RUBY
GO

Розділ: Списки і кортежі | Рівень складності: середній

  1. Для введеної послідовності цілих чисел обміняйте сусідні елементи у парах (A[0] з A[1], A[2] з A[3] і т. д.). Надрукуйте отриманий список. Якщо в списку є непарне число елементів, залиште останній елемент на місці.


Вхідні дані:

1 4 5 3 7
4 2 10 5
2

Вихідні дані:

4 1 3 5 7
2 4 5 10
2

Розділ: Списки і кортежі | Рівень складності: середній

  1. Для списку цілих чисел знайдіть і надрукуйте елементи, які з’являються у списку лише один раз. Елементи повинні бути роздруковані у тому порядку, в якому вони перебувають у вхідному списку.


Вхідні дані:

5 3 1 6 5 8 0 12
1 45 23 45 90 1 0

Вихідні дані:

3 1 6 8 0 12
23 90 0

Розділ: Списки і кортежі | Рівень складності: середній

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


Вхідні дані:

1 -2 -3 5 6 -3 7 8

Вихідні дані:

-2 -3
5 6
7 8

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка зчитує числа (по одному в рядку) до тих пір, поки сума введених чисел не буде дорівнює 0 і відразу після цього виводить суму квадратів всіх чисел. Гарантується, що в якийсь момент сума введених чисел дорівнюватиме 0, після цього зчитування продовжувати не потрібно.


Вхідні дані:

2
3
-6
1

Вихідні дані:

50

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму для обчислення добутку цілих чисел (без використання циклу for), які вводяться через пропуск користувачем в одному рядку.


Вхідні дані:

2 5 3

Вихідні дані:

30

Розділ: Списки і кортежі | Рівень складності: середній

  1. Написати програму, яка приймає на вхід послідовність з цілих чисел, після чого друкує значення всіх її елементів, піднесені до квадрату.


Вхідні дані:

1 2 3 4 5 6 7 8 9

Вихідні дані:

1 4 9 16 25 36 49 64 81

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму для друку елементів певного цілочисельного списку після видалення з нього парних чисел. Значення списку вводяться через пропуск в одному рядку.


Вхідні дані:

3 44 6 8 9 12 7

Вихідні дані:

[3, 9, 7]

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано дві цілочисельні послідовності, елементи яких розділені пропуском і комою. Напишіть програму, яка повертає послідовність, що містить лише елементи, які є загальними між введеними послідовностями (без дублікатів). Переконайтеся, що ваша програма працює на двох послідовностях різних розмірів.


Вхідні дані:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13

Вихідні дані:

1 2 3 5 8 13

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка приймає послідовність 4-цифрових двійкових чисел, розділених комами, і друкує числа, які ділиться на 5 без остачі, в рядку і розділені комами.


Вхідні дані:

0100,0011,1010,1001,1100

Вихідні дані:

1010

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму для знаходження медіани з трьох введених цілих чисел. Числа вводяться в одному рядку через пропуск.


Вхідні дані:

25 50 11
1 9 7

Вихідні дані:

25
7

Розділ: Списки і кортежі | Рівень складності: середній

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


Вхідні дані:

4, 3, 2019

Вихідні дані:

4/3/2019

Розділ: Списки і кортежі | Рівень складності: середній

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


Вхідні дані:

165 163 160 160 157 157 155 154
160

Вихідні дані:

5

Розділ: Списки і кортежі | Рівень складності: середній

  1. Вводиться список цілих чисел. Всі числа списку знаходяться на одному рядку. У списку всі елементи різні. Поміняйте місцями мінімальний і максимальний елементи цього списку.


Вхідні дані:

5 6 8 1 4 9 12

Вихідні дані:

5 6 8 12 4 9 1

Розділ: Списки і кортежі | Рівень складності: середній

  1. Ви вирішили написати перетворювач коду на Python в код на Java. Так як на Java прийнятий стандарт найменування CamelCase, то ви вирішили навчитися перетворювати імена з underscore в цей формат. Стиль underscore характеризується тим, що слова в імені пишуться маленькими літерами і розділяються між собою символом підкреслення _. Стиль CamelCase означає, що кожне слово пишеться з великої літери і роздільників між словами немає. Отже, вводиться один рядок, що містить ім’я, записане в форматі underscore. Програма виводить рядок, що містить ім’я в форматі CamelCase.


Вхідні дані:

my_class
c

Вихідні дані:

MyClass
C

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка обчислює частку студентів, які отримали оцінку A. Використовується п’ятибальна система оцінювання з оцінками A, B, C, D, F. Вводиться рядок, в якому через пропуск записані оцінки студентів. Оцінок завжди не менш однієї. Виводиться дробове число з рівно двома знаками після коми.


Вхідні дані:

A B A A B C A D F
A A A A A
A F
B B C B F F B C F

Вихідні дані:

0.44
1.00
0.50
0.00

Розділ: Списки і кортежі | Рівень складності: середній

  1. У якийсь момент вам набридло використовувати імена файлів з пропусками і ви вирішили написати програму, яка перейменовує всі файли, що містять пропуски в імена, у яких групи прогалин замінено на символ підкреслення _. Програма отримує один рядок, що містить довільні символи, в тому числі і пропуски, і виводить правильну назву із символом підкреслення замість пропусків.


Вхідні дані:

my file.txt
string     with        multi spaces
single

Вихідні дані:

my_file.txt
string_with_multi_spaces
single

Розділ: Списки і кортежі | Рівень складності: середній

  1. На вхід програми подається деякий текст в одному рядку з пропусками. Необхідно знайти у тексті слово під певним номером (наприклад, п’яте слово за рахунком) і вивести на екран його першу букву.


Вхідні дані:

Now is better than never
3

Вихідні дані:

b

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано список з чисел та індекс елемента в списку k. Видаліть зі списку елемент з індексом k, зсунувши вліво всі елементи, що стоять правіше елемента з індексом k. Програма отримує на вхід список, потім число k. Програма повинна здійснювати зміщення безпосередньо в списку, а не робити це при виведенні елементів. Також не можна використовувати додатковий список.


Вхідні дані:

5 7 9 0 3 11
3

Вихідні дані:

5 7 9 3 11

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано список цілих чисел, число k і значення c. Необхідно вставити у список на позицію з індексом k елемент, рівний c, зсунувши всі елементи вправо. Вставку необхідно здійснювати у самому списку, не роблячи цього при виведенні і не створюючи додаткового списку. Вводиться список чисел. Всі числа списку знаходяться на одному рядку. У наступному рядку вводяться два цілих числа.


Вхідні дані:

9 4 6 2 0 7 14
3 0

Вихідні дані:

9 4 6 0 2 0 7 14

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму для перетворення двійкового числа в десяткове число.


Вхідні дані:

1001
101010111
10000

Вихідні дані:

9
343
16

Розділ: Списки і кортежі | Рівень складності: середній

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


Вхідні дані:

2 5 8 9 4 78 7 1

Вихідні дані:

[2, 5, 9, 4, 78, 7, 1]
[2, 5, 4, 78, 7, 1]
[2, 5, 78, 7, 1]
[2, 5, 7, 1]
[2, 5, 1]
[2, 5]
[5]
[]

Розділ: Списки і кортежі | Рівень складності: середній

  1. Необхідно зчитати рядок з цифр, розділених пропусками, і зберегти кожну цифру у список. Створіть копію списку із впорядкованими елементами у зворотному порядку. Виведіть число, яке утворюється об’єднанням елементів нового списку.


Вхідні дані:

1 4 8 3 9 5

Вихідні дані:

593841

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано послідовність цілих чисел, яка вводиться в рядку через пропуск. Визначте два найменших елемента послідовності. Вони можуть бути як рівні між собою (обидва бути мінімальними), так і відрізнятися.


Вхідні дані:

14 3 40 56 42 43 89 69 64 72 5 44 11 25

Вихідні дані:

5 3

Розділ: Списки і кортежі | Рівень складності: середній

  1. Розташувати додатні і від’ємні числа введеної послідовності цілих чисел на початку списку і у кінці списку відповідно (за спаданням). Числа, рівні нулю, ігнорувати. Вивести на екран результуючий список.


Вхідні дані:

1 3 -5 0 10 -2 12 45 7 0 9 -4 -11 15 22 3

Вихідні дані:

45 22 15 12 10 9 7 3 3 1 -2 -4 -5 -11

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано список слів. Напишіть програму, яка виконає заміну останніх трьох символів слів, що мають певну довжину, на певний символ. Користувач відповідно вводить наступні дані: кількість слів у списку, довжину слів, які будуть редагуватися, символ заміни останніх тьох символів і сам список слів (кожне слово в окремому рядку). Гарантовано, що довжина слів у списку щонайменше 3 символи.


Вхідні дані:

4
5
%
writer
painter
programmer
scientist

Вихідні дані:

['wri%', 'pain%', 'program%', 'scient%']

Розділ: Списки і кортежі | Рівень складності: середній

  1. Користувач вводить два цілих додатних числа n і m. Напишіть програму, яка створює двовимірний масив розміром n x m і заповнює його символами . і * у шаховому порядку (як у вихідних даних). Лівий верхній кут повинен мати символ ..


Вхідні дані:

6 8

Вихідні дані:

. * . * . * . *
* . * . * . * .
. * . * . * . *
* . * . * . * .
. * . * . * . *
* . * . * . * .

Розділ: Списки і кортежі | Рівень складності: середній

  1. Вводиться непарне натуральне число n. Напишіть програму, яка створює зображення сніжинки за допомогою двовимірного масиву розміром n x n. Заповніть кожен елемент символом .. Потім заповніть середній рядок, середній стовпець і діагоналі символом *. Розділяйте символи одним пропуском.


Вхідні дані:

7

Вихідні дані:

* . . * . . *
. * . * . * .
. . * * * . .
* * * * * * *
. . * * * . .
. * . * . * .
* . . * . . *

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка приймає на вхід список чисел в одному рядку і виводить на екран в один рядок значення, які повторюються в ньому більш ніж один раз. Виведені числа не повинні повторюватися, порядок їх виведення маж бути за зростанням.


Вхідні дані:

5 8 1 3 5 2 1 3 0
2 2 4 4 4 1

Вихідні дані:

1 3 5
2 4

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка приймає 2 цілих числа, a і b і генерує двовимірний масив. Значення елемента в i-му рядку і j-му стовпці масиву має бути i * j (i = 0,1...,a-1; j = 0,1..., b-1).


Вхідні дані:

3 5

Вихідні дані:

[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]

Розділ: Списки і кортежі | Рівень складності: середній

  1. Для введеної послідовності цілих чисел, вивести їх у списку так, щоб парні елементи розташовувалися на початку списку, а непарні - в кінці.


Вхідні дані:

2 5 7 8 9 10 12 32 5

Вихідні дані:

32 12 10 8 2 5 7 9 5

Розділ: Списки і кортежі | Рівень складності: середній

  1. Напишіть програму, яка обчислює суму на банківському рахунку на основі журналу транзакцій. Формат журналу транзакцій відображається наступним чином:

D 100
W 200

де D – покласти на депозит ціле значення суми, а W - вилучити. Введення транзакцій завершується порожнім рядком.


Вхідні дані:

D 100
W 200
D 300
D 350
W 200
D 150
 

Вихідні дані:

500

Розділ: Списки і кортежі | Рівень складності: середній

  1. Робот може рухатися, починаючи від початкової точки (0, 0), вгору, вниз, вліво та вправо за допомогою кроків, наприклад:

UP 5
DOWN 3
LEFT 3
RIGHT 2

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


Вхідні дані:

UP 5
DOWN 3
LEFT 3
RIGHT 2
 

Вихідні дані:

2

Розділ: Списки і кортежі | Рівень складності: середній

  1. Дано список назв міст світу, перерахованих в рядку через кому. Сформуйте з елементів списку повідомлення, у якому перед останнім елементом буде вставлено слово and так, як у вихідних даних. Програма має працювати з будь-якими списками, які мають довільну довжину, відмінну від нуля.


Вхідні дані:

Budapest, Rome, Istanbul, Sydney, Kyiv, Hong Kong
Kyiv, Hong Kong
Budapest

Вихідні дані:

Budapest, Rome, Istanbul, Sydney, Kyiv and Hong Kong
Kyiv and Hong Kong
Budapest

Розділ: Списки і кортежі | Рівень складності: середній

  1. У рядку через кому перераховані слова. Сформувати з цих слів новий рядок. Слова мають бути відсортовані за спаданням (від Z до A) без урахування регістру і записані через пропуск.


Вхідні дані:

horse, cat, parrot, goldfish, dog

Вихідні дані:

parrot horse goldfish dog cat

Розділ: Списки і кортежі | Рівень складності: високий

  1. Дано послідовність цілих чисел, які записані в одному рядку через пропуск. Утворіть і надрукуйте голову (перший елемент) і хвіст (усі інші елементи) вказаної послідовності не використовуючи цикли і зрізи. Довжина послідовності може бути довільною.


Вхідні дані:

2 10 15 9 3 6 7 11

Вихідні дані:

2
10 15 9 3 6 7 11

Розділ: Списки і кортежі | Рівень складності: високий

  1. Напишіть програму, яка виводить частину послідовності 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5... (число повторюється стільки разів, чому дорівнює). На вхід програми передається невід’ємне ціле число n - стільки елементів послідовності повинна надрукувати програма. На виході очікується послідовність чисел, записаних через пропуск в один рядок.


Вхідні дані:

8

Вихідні дані:

1 2 2 3 3 3 4 4

Розділ: Списки і кортежі | Рівень складності: високий

  1. Виведіть таблицю розміром n × n, заповнену числами від 1 до n2 по спіралі, що виходить з лівого верхнього кута і закрученою за годинниковою стрілкою.


Вхідні дані:

4

Вихідні дані:

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

Розділ: Списки і кортежі | Рівень складності: високий

  1. Суть завдання та ж, що і у задачі Шифр Цезаря, з однією відмінністю: кодуються символи з інтервалу 1F600-1F64F таблиці символів Unicode. Використовується кодування UTF-8. Для всіх символів зсув один і той же. Зсув циклічний, тобто, якщо до останнього символу алфавіту застосувати одиничний зсув, то він заміниться на перший символ, і навпаки. Напишіть програму, яка шифрує текст шифром Цезаря. На першому рядку вказується використовуваний зсув шифрування: ціле число. Додатне число відповідає зсуву вправо. На другому рядку вказується непорожня фраза для шифрування. Не звертайте уваги, якщо у вас відображаються прямокутники замість деяких символів. Це означає, що ваш шрифт не містить цих символів. Програма має вивести єдиний рядок, в якій записана зашифрована послідовність.


Вхідні дані:

2
😍😎😏

Вихідні дані:

😏😐😑

Розділ: Списки і кортежі | Рівень складності: високий

  1. Використовуючи поняття списку, напишіть програму, яка створює 3D масив елементів a x b x c, кожен з яких має значення 0. Значення a, b, c вводяться в одному рядку через пропуск.


Вхідні дані:

2 3 3
4 4 4

Вихідні дані:

[[[0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0]]]
[[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]

Розділ: Списки і кортежі | Рівень складності: високий

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


Вхідні дані:

1 3 5 6 10
5

Вихідні дані:

13 6 9 15 7
5

Розділ: Списки і кортежі | Рівень складності: високий

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


Вхідні дані:

ab aaab ba baaaaa a aba

Вихідні дані:

a, ab, ba, aba, aaab, baaaaa.

Розділ: Списки і кортежі | Рівень складності: високий

  1. Вводяться n рядків. Визначити найдовший рядок і вивести його номер на екран. Якщо найдовших рядків кілька, то вивести номери всіх таких рядків.


Вхідні дані:

5
Thames
Amazon
Nile
Yangtze
Dnieper

Вихідні дані:

4
5

Розділ: Списки і кортежі | Рівень складності: високий

  1. Дано список з n (1 ≤ n ≤ 100000) цілих чисел і число k (|k| < 100000). Циклічно посуньте список на |k| елементів вправо, якщо k - додатне і вліво, якщо від’ємне число. Програма отримує на вхід список цілих чисел, потім число k. Рішення повинно мати складність O(n), тобто не повинно залежати від k. Додатковим списком користуватися не можна.


Вхідні дані:

5 3 7 4 6
3
7 4 6 5 3
-3

Вихідні дані:

7 4 6 5 3
5 3 7 4 6

Розділ: Списки і кортежі | Рівень складності: високий

  1. Користувач вводить ціле число n і видаляє одну цифру числа так, щоб число що утворилось, було максимально можливим. Наприклад, якщо число, яке ввели 432, то необхідно видалити цифру 2, яка стоїть на 3 місці, щоб отримати максимально можливе число 43. Напишіть програму, яка знайде максимально можливе число, яке можна отримати після видалення однієї цифри.


Вхідні дані:

432
239
101

Вихідні дані:

43
39
11

Розділ: Списки і кортежі | Рівень складності: високий

  1. Вводиться рядок слів, розділених пропусками. Знайти найдовше слово і вивести його на екран. Розглянути випадок, коли найдовших неоднакових слів може бути кілька.


Вхідні дані:

Sparse is better than dense
Readability counts
Long time Pythoneer Tim Peters succinctly channels the BDFL's guiding principles for Python's design into 20 aphorisms

Вихідні дані:

Sparse better
Readability
succinctly principles

Розділ: Списки і кортежі | Рівень складності: високий

  1. В один ряд поставили n кеглів, пронумерувавши їх зліва направо числами від 1 до n. Потім в цей ряд кинули k куль, при цьому i-та куля збила всі кеглі з номерами від m до h включно. Визначте, які кеглі залишилися стояти на місці. Програма отримує на вхід кількість кеглів n і кількість кидків k. Далі йде k пар чисел m, h, при цьому 1 ≤ m ≤ h ≤ n ≤ 100. Програма повинна вивести послідовність з n символів, де j-й символ є I, якщо j-та кегля залишилася стояти, або ., якщо j-та кегля була збита.


Вхідні дані:

10 3
8 10
2 5
3 6

Вихідні дані:

I.....I...

Розділ: Списки і кортежі | Рівень складності: високий

  1. Дано список цілих чисел. Потрібно стиснути його, перемістивши всі ненульові елементи в ліву частину списку, не змінюючи їх порядок, а всі нулі - в праву частину. Порядок ненульових елементів змінювати не можна, додатковий список використовувати не можна, завдання потрібно виконати за один прохід по списку. Роздрукуйте отриманий список.


Вхідні дані:

6 0 3 0 5 0 0 4

Вихідні дані:

6 3 5 4 0 0 0 0

Розділ: Списки і кортежі | Рівень складності: високий

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


Вхідні дані:

      The   Zen     of     Python

Вихідні дані:

The Zen of Python

Розділ: Списки і кортежі | Рівень складності: високий

  1. Напишіть програму, яка приймає на вхід список чисел і число (в окремих рядках), після чого виводить всі позиції через пропуск, на яких це число зустрічається в переданому списку (позиції у списку нумеруються з 1). Позиції повинні бути виведені в порядку зростання. Якщо число не знайдено в списку, потрібно вивести рядок None (без лапок, з великої літери).


Вхідні дані:

5 7 3 4 9 8 4 7 4
4

Вихідні дані:

4 7 9

Розділ: Списки і кортежі | Рівень складності: високий

  1. Напишіть програму, яка знаходить усі позиції входження підрядка B у рядок A. На першому рядку міститься вхідний рядок, на другому рядку введення вказаний підрядок, позиції якого потрібно знайти. Рядки складаються з символів англійського алфавіту. Програма має вивести позиції входження підрядка B у рядок A (індексація починається з 1), розділені пропуском або число -1 в разі, коли підрядок не знайдено.


Вхідні дані:

abacabadaba
aba
abc
d

Вихідні дані:

0 4 8
-1

Розділ: Списки і кортежі | Рівень складності: високий

  1. Кодування довжин послідовностей - це базовий алгоритм стиснення даних. Реалізуйте алгоритм дешифрування (декодування) рядків, закодованих за допомогою одного з найпростіших варіантів кодування довжин послідовностей. На вхід алгоритму подається рядок, що містить цифри і символи англійського алфавіту. Цей рядок розбивається на так звані серії (послідовності), які кодуються парою число-символ або просто символ (в такому випадку число вважається рівним одиниці). Результат повинен містити ці серії в тому ж порядку, що вони і зустрічаються в заданому рядку, при цьому кожна серія розгортається в послідовність символів відповідної довжини. Наприклад, закодований рядок 3ab4c2CaB розбивається на серії 3a b 4c 2C a B, після чого, перетворюючи серії, отримуємо початковий розкодований рядок aaabccccCCaB.


Вхідні дані:

3ab4c2CaB
10a3b2c4DFj5h

Вихідні дані:

aaabccccCCaB
aaaaaaaaaabbbccDDDDFjhhhhh

Розділ: Списки і кортежі | Рівень складності: високий

  1. Напишіть програму, яка отримує на вхід чотирьохзначне додатне десяткове число та генерує з цифр цього числа мінімально можливе чотирьохзначне число та максимально можливе чотирьохзначне число. У першому рядку задано одне чотирьохзначне число. Виведіть у другому рядку два числа - найменше чотирьохзначне число та найбільше чотирьохзначне число, які можна отримати з цифр даного числа. Числа розділяйте одним пропуском.


Вхідні дані:

1390
1010
5173

Вихідні дані:

1039 9310
1001 1100
1357 7531

Розділ: Списки і кортежі | Рівень складності: високий

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


Вхідні дані:

1 2 3,2 1 3,4 0 1

Вихідні дані:

[[1, 2, 3], [2, 1, 3], [4, 0, 1]]
[[4, 0, 1], [2, 1, 3], [1, 2, 3]]

Розділ: Списки і кортежі | Рівень складності: високий

  1. У трьох автобусах розсадили дітей так, що їх кількість в різних автобусах різна. Яку найменшу кількість дітей потрібно пересадити, щоб у кожному автобусі їх було порівно? У першому рядку задано три натуральних числа, не більших за 100 - кількість дітей у першому, другому та третьому автобусах. Виведіть одне число - найменшу кількість дітей, яких потрібно пересадити. Якщо це зробити не можливо, то виведіть NO SOLUTIONS.


Вхідні дані:

9 10 10
2 5 8

Вихідні дані:

NO SOLUTIONS
3

Розділ: Списки і кортежі | Рівень складності: високий

  1. Напишіть програму, яка знайде максимально можливе число, яке можна отримати після видалення однієї цифри. Перший рядок містить одне ціле число n (10 ≤ n ≤ 2025). Виведіть у другому рядку максимально можливе число, яке можна отримати після видалення однієї цифри.


Вхідні дані:

4378
1095
2000

Вихідні дані:

478
195
200

Розділ: Списки і кортежі | Рівень складності: високий

  1. У римській системі числення для позначення чисел використовуються наступні символи (праворуч записані числа, яким вони відповідають в десятковій системі числення):

I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000

Будемо використовувати варіант, в якому числа 4, 9, 40, 90, 400 і 900 записуються як віднімання з більшого числа меншого: IV, IX, XL, XC, CD і CM, відповідно. Напишіть програму, яка переводить число з римської в десяткову систему числення. Користувач вводить рядок, що містить число, закодоване в римській системі числення. Гарантується, що число менше 4000. Програма має вивести рядок, що містить число в десятковій системі числення, відповідне введеному.


Вхідні дані:

MCMLXXXI
XXI
IV

Вихідні дані:

1981
21
4

Розділ: Списки і кортежі | Рівень складності: високий

  1. Анаграма - переставлення літер у слові, завдяки чому утворюється нове значення слова. Напишіть програму, яка перевіряє, чи є два введених слова анаграмами. Програма повинна вивести True в разі, якщо введені слова є анаграмами, і False в інших випадках. Слово може складатися тільки з англійських символів. Регістр букв не повинен впливати на відповідь.


Вхідні дані:

restful
fluster
forty-five
over-fifty
anagram
naganra

Вихідні дані:

True
True
False

Розділ: Списки і кортежі | Рівень складності: високий

  1. Магічний квадрат - це квадратна таблиця n x n, заповнена цілими числами таким чином, що сума чисел у кожному рядку, кожному стовпчику і на обох діагоналях однакова. Напишіть програму, яка отримує послідовність чисел у форматі як у вхідних даних, з яких утворюється двовимірна таблиця (список списків) цілочисельних елементів і перевірте чи є вона магічним квадратом. Програма має вивести True чи False відповідно.


Вхідні дані:

1 2 3,4 5 6,7 8 9
4 9 2,3 5 7,8 1 6
7 12 1 14,2 13 8 11,16 3 10 5,9 6 15 4
23 28 21,22 24 26,27 20 25
16 23 17,78 32 21,17 16 15
4 3 8,9 5 1,2 7 6

Вихідні дані:

False
True
True
True
False
True

Розділ: Списки і кортежі | Рівень складності: високий

2.6. Словники і множини

У даному розділі розглядаються задачі на використання словників і множин.
  1. Створіть словник з інформацією про пошукові системи, в якому ключі – назви пошукових систем, а значення – частка їхнього використання у світі на даний момент (дійсне число). Надрукуйте елементи словника як у вихідних даних. Елементи у словнику невпорядковані.


Вхідні дані:

Немає

Вихідні дані:

Yahoo!: 2.09
Google: 90.15
Bing: 3.23
Baidu: 2.2

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник зі списками добрих справ на сьогодні і на завтра. Надрукуйте із словника добрі справи, які плануєш зробити сьогодні і взавтра.


Вхідні дані:

Немає

Вихідні дані:

today:
Make a compliment to a friend
Call your grandparents
Embrace parents
tomorrow:
Feed the birds in the park
Give unnecessary things to those who need them
Smile

Розділ: Словники і множини | Рівень складності: початковий

  1. Припустимо, що у нас є словник, в якому ключі є ідентифікаторами, а значення – іменами користувачів. Напишіть програму, яка виводить вітальне повідомлення користувачу на основі його ідентифікатора. Якщо ідентифікатор відсутній у словнику, виводиться вітання для усіх користувачів.


Вхідні дані:

232
550
190
500

Вихідні дані:

Hi, Alice!
Hi, Bob!
Hi, Jack!
Hi, to all!

Розділ: Словники і множини | Рівень складності: початковий

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


Вхідні дані:

Немає

Вихідні дані:

Equipment:
3 key
1 mace
24 gold coin
1 lantern
10 stone
Total number of things: 39

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму для сортування за зростанням (за алфавітом) словника за ключами. Словник зберігає пари ключ-значення у вигляді «назва фільму: рік релізу». Інформація виводиться як у вихідних даних: сортування має бути проведено за назвами фільмів.


Вхідні дані:

Немає

Вихідні дані:

('Avengers: Endgame', 2019) ('Guardians of the Galaxy', 2014) ('Iron Man', 2008) ('Thor', 2011)

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму для сортування за спаданням (порядок, зворотний алфавітному) словника за ключами. Словник зберігає пари ключ-значення у вигляді «країна: столиця». Інформація виводиться як у вихідних даних: сортування має бути проведено за назвами країн.


Вхідні дані:

Немає

Вихідні дані:

[('Ukraine', 'Kyiv'), ('France', 'Paris'), ('Denmark', 'Copenhagen'), ('China', 'Beijing'), ('Canada', 'Ottawa')]

Розділ: Словники і множини | Рівень складності: початковий

  1. Надрукуйте елементи словника, де ключі - це числа від 1 до n (обидва числа включно), а значення - квадрати ключів. n – ціле число, яке вводить користувач.


Вхідні дані:

15

Вихідні дані:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225}

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник, в кому ключі – назви днів тижня, а значення - цілі числа, що позначають порядковий номер дня тижня від 0 до 6. Надрукуйте назву дня за введеним порядковим номером дня. Якщо введений номер виходить за межі, програма жодних повідомлень не друкує і не повідомляє про помилку.


Вхідні дані:

3
0

Вихідні дані:

Wednesday
Sunday

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник у якому ключами є назви жанрів комп’ютерних ігор, а значеннями - назва конкретної гри даного жанру. Виведіть вміст словника як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

simulations: Euro Track Simulator
adventure: Myst
rts: Kingdom Two Crowns
action: Grand Theft Auto
sports: FIFA

Розділ: Словники і множини | Рівень складності: початковий

  1. Дано словник, у якому ключами є назви платних застосунків для платформи Android, а значеннями - їх ціна (дійсне число, два знаки після десяткової крапки). Надрукуйте із словника через кому з пропуском максимальну і мінімальну ціни для застосунків.


Вхідні дані:

Немає

Вихідні дані:

179.99, 5.0

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму для створення словника із введеного рядка символів для підрахунку кількості символів.


Вхідні дані:

Lorem ipsum dolor sit amet

Вихідні дані:

{'L': 1, 'o': 3, 'r': 2, 'e': 2, 'm': 3, ' ': 4, 'i': 2, 'p': 1, 's': 2, 'u': 1, 'd': 1, 'l': 1, 't': 2, 'a': 1}

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник, у якому ключі - імена відомих програмістів, а значення - їхні дати народження у форматі dd/mm/yyyy. Напишіть програму, яка за введеним ім’ям відомого інформатика друкує його дату народження або у відсутності такого - відповідне повідомлення як у вихідних даних.


Вхідні дані:

Ada Lovelace
Jack Dorsey

Вихідні дані:

Ada Lovelace's birthday is 10/12/1815.
Sadly, we don't have Jack Dorsey's birthday.

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник, що містить назви продуктів в уявному холодильнику. Найменування їжі будуть ключами, а відповідне значення кожного продукту харчування має бути значенням-рядком, що описує їжу. Після введення користувачем назви продукту, виведіть повідомлення про наявність або відсутність його у холодильнику.


Вхідні дані:

butter
milk

Вихідні дані:

butter is a dairy product with high butterfat content
milk wasn't found in the fridge

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму, яка приймає рядок символів, і обчислює кількість букв і цифр.


Вхідні дані:

Project Gutenberg offers over 59,000 free eBooks

Вихідні дані:

LETTERS 36
DIGITS 5

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму, яка приймає рядок символів, і обчислює кількість великих та малих літер.


Вхідні дані:

The quick brown FOX jumps over a lazy DOG

Вихідні дані:

UPPER CASE 7
LOWER CASE 26

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник із даними про студентів: ключі - імена студентів, значення - бали для кожного. Програма повинна визначити середній бал і вивести імена студентів, чий бал вище середнього.


Вхідні дані:

Немає

Вихідні дані:

Alex
Barbara

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму для підрахунку кількості символів (символьної частоти) у введеному рядку.


Вхідні дані:

google

Вихідні дані:

g 2
o 2
l 1
e 1

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть англо-німецький словник з назвою e2g і виведіть його вміст на екран.


Вхідні дані:

Немає

Вихідні дані:

stork: storch
hawk: falke
woodpecker: specht
owl: eule

Розділ: Словники і множини | Рівень складності: початковий

  1. Словники можуть використовуватися для моделювання справжнього словника. Оберіть кілька термінів з програмування (або із іншої області), які ви знаєте на цей момент. Використайте ці слова як ключі словника, а їх визначення - як значення. Виведіть кожне слово і його визначення у спеціально відформатованому вигляді як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

variable
	a symbolic name associated with a value and whose associated value may be changed
type
	is a classification of data which tells the compiler or interpreter how the programmer intends to use the data
program
	a collection of instructions that performs a specific task when executed by a computer

Розділ: Словники і множини | Рівень складності: початковий

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


Вхідні дані:

Немає

Вихідні дані:

The Amazon runs through South America.
The Odra runs through Central Europe.
The Ganges runs through South Asia.

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть словник з назвами мов програмування (ключі) та іменами розробників цих мов (значення). Виведіть по черзі для усіх елементів словника повідомлення як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

My favorite programming language is JavaSript. It was created by Brendan Eich.
My favorite programming language is Python. It was created by Guido van Rossum.
My favorite programming language is Ruby. It was created by Yukihiro Matsumoto.
My favorite programming language is PHP. It was created by Rasmus Lerdorf.

Розділ: Словники і множини | Рівень складності: початковий

  1. Використайте словник для виведення представлення букви, яку вводить користувач, у символах азбуки Морзе. Передбачте у програмі обробку малих і великих букв.


Вхідні дані:

D
f

Вихідні дані:

-..
..-.

Розділ: Словники і множини | Рівень складності: початковий

  1. Створіть кілька словників, імена яких - це клички домашніх тварин. У кожному словнику збережіть інформацію про вид домашнього улюбленця та ім’я власника. Збережіть словники в списку з ім’ям pets. Виведіть повідомленя як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

Jim is the owner of a pet - a cat.
Alex is the owner of a pet - a dog.
Elena is the owner of a pet - a parrot.

Розділ: Словники і множини | Рівень складності: початковий

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


Вхідні дані:

Немає

Вихідні дані:

Rome:
	Country: Italy
	Population: 2868000 people
	Fact: Rome is one of the oldest cities in the world, the capital of Ancient Rome. Therefore, Rome is often called the "eternal city".
Canberra:
	Country: Australia
	Population: 381448 people
	Fact: The design of Canberra was based on the concept of a garden city, which includes significant areas of natural vegetation, which earned for Canberra the title of "bush capital" (translated from the English "forest capital").
Toronto:
	Country: Canada
	Population: 2503281 people
	Fact: In the world of professional sports, the city is the most famous hockey team of Toronto Maple Leafs. The city holds the nickname of the "hockey universe center".

Розділ: Словники і множини | Рівень складності: початковий

  1. Створити словник, у кому ключами є назви команд Національної баскетбольної асоціації (NBA) у північній Америці, а значеннями - списки, на зразок, [Всього ігор, Перемог, Нічиїх, Поразок, Всього очок]. Значення списку - це цілі числа, які обираються довільно. Надрукуйте інформацію про кожну команду як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

BOSTON CELTICS 3 2 0 1 8
NEW YORK KNICKS 10 3 3 4 19
INDIANA PACERS 4 2 2 0 11
MIAMI HEAT 12 2 5 5 9
ATLANTA HAWKS 5 2 2 1 10
CHICAGO BULLS 25 10 9 6 38

Розділ: Словники і множини | Рівень складності: початковий

  1. Дано місяць і рік для двох дат (наприклад, 12.2014 і 6.2019). Користувач вводить ще одну дату (місяць і рік). Визначити, чи належить третя дата діапазону від першої дати до другої включно. Результатом роботи програми має бути повідомлення YES або NO.


Вхідні дані:

2018
5

Вихідні дані:

YES

Розділ: Словники і множини | Рівень складності: початковий

  1. Написати програму, в якій зберігаються дані про товари, їх кількість і ціну. При запуску програми ця інформація виводиться на екран. Далі користувачеві має пропонуватися вводити номера товарів і їх нову кількість. Введення даних має завершуватися, якщо користувач вводить обумовлений символ (наприклад, нуль). Після цього всі дані про товари повинні знову виводитися на екран. Якщо номер товару відсутній, необхідно вивести відповідне повідомлення як у вихідних даних.


Вхідні дані:

9
product missing
2
10
0

Вихідні дані:

1 Core-i3-4330 9 4500
2 Core i5-4670K 3 8500
3 AMD FX-6300 6 3700
4 Pentium G3220 8 2100
5 Core i5-3450 5 6400
1 Core-i3-4330 9 4500
2 Core i5-4670K 10 8500
3 AMD FX-6300 6 3700
4 Pentium G3220 8 2100
5 Core i5-3450 5 6400

Розділ: Словники і множини | Рівень складності: початковий

  1. Дано словник, в якому ключі - імена та прізвища, записані через пропуск, відомих розробників мов програмування, а значення - назви мов програмування. Надрукуйте назву мови за введеним ім’ям або прізвищем її розробника.


Вхідні дані:

Gosling
Dennis

Вихідні дані:

Java
C

Розділ: Словники і множини | Рівень складності: початковий

  1. Змоделюйте аркуш елетронної таблиці на основі словника. Створіть порожній словник для зберігання значень комірок аркушу електронної таблиці. Заповніть словник кількома значеннями: в одному рядку вводиться адреса комірки у форматі A1, де A - назва стовпця, 1 - номер рядка, і, через пропуск, значення, яке необхідно зберегти в комірці. Надрукуйте «комірки» словника з їхніми значеннями.


Вхідні дані:

A1 300
B1 2050
B2 Python

Вихідні дані:

('A', '1') 300
('B', '1') 2050
('B', '2') Python

Розділ: Словники і множини | Рівень складності: початковий

  1. Напишіть програму для видалення дублікатів зі списку цілих чисел.


Вхідні дані:

10 5 11 2 3 5 8 9 3 4 2

Вихідні дані:

2 3 4 5 8 9 10 11

Розділ: Словники і множини | Рівень складності: середній

  1. Даний список цілих чисел. Визначте кількість різних значень.


Вхідні дані:

1 3 4 5 6 5 1 9

Вихідні дані:

6

Розділ: Словники і множини | Рівень складності: середній

  1. Дано список словників. Кожен словники має 2 пари елементів: ключ name і значення імені студента, ключ points і значення - список балів з різних дисциплін (цілі двоцифрові числа). Надрукуйте найменші значення балів, отримані кожним студентом, в один рядок з пропуском.


Вхідні дані:

Немає

Вихідні дані:

45 60 30 49

Розділ: Словники і множини | Рівень складності: середній

  1. Дано два списки чисел. Порахуйте, скільки унікальних цифр міститься в обох з них.


Вхідні дані:

1 6 3 5 6
10 12 6 5 1 4

Вихідні дані:

3

Розділ: Словники і множини | Рівень складності: середній

  1. Дано два словники, в яких ключами є малі букви латинського алфавіту, а значеннями - цілі числа. В першому словнику можуть зустрічатися ключі чи значення, які присутні в другому словнику, або навпаки. Наприклад, вміст словників може бути наступний: a = {'x' : 1, 'y' : 2, 'z' : 3}, b = {'w' : 10, 'x' : 11, 'y' : 2}. Надрукуйте спільні ключі для обох словників в одному рядку через пропуск.


Вхідні дані:

Немає

Вихідні дані:

y x

Розділ: Словники і множини | Рівень складності: середній

  1. Дано два словники, в яких ключами є малі букви латинського алфавіту, а значеннями - цілі числа. В першому словнику можуть зустрічатися ключі чи значення, які присутні в другому словнику, або навпаки. Наприклад, вміст словників може бути наступний: a = {'x' : 1, 'y' : 2, 'z' : 3}, b = {'w' : 10, 'x' : 11, 'y' : 2}. Надрукуйте ключі, які присутні в першому словнику, але яких немає в другому, в одному рядку через пропуск.


Вхідні дані:

Немає

Вихідні дані:

z

Розділ: Словники і множини | Рівень складності: середній

  1. Дано два словники, в яких ключами є малі букви латинського алфавіту, а значеннями - цілі числа. В першому словнику можуть зустрічатися ключі чи значення, які присутні в другому словнику, або навпаки. Наприклад, вміст словників може бути наступний: a = {'x' : 1, 'y' : 2, 'z' : 3}, b = {'w' : 10, 'x' : 11, 'y' : 2}. Надрукуйте спільні пари «ключ-значення» для обох словників у форматі як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

('y', 2)

Розділ: Словники і множини | Рівень складності: середній

  1. Дано три словники, в яких ключами є малі букви латинського алфавіту, а значеннями - цілі числа. Ключі у всіх словниках – різні, їх є по 3 в кожному словнику. Об’єднайте всі три словники в один і виведіть його вміст. Підказка. скористайтеся оператором **, що використовується для об’єднання довільної кількості словників (Python 3.5+).


Вхідні дані:

Немає

Вихідні дані:

{'x': 1, 'y': 2, 'z': 3, 'w': 10, 'f': 11, 'g': 2, 'n': 10, 'm': 11, 'e': 2}

Розділ: Словники і множини | Рівень складності: середній

  1. Напишіть програму для обчислення частоти слів у введеному рядку. Виведення має бути у порядку, що зворотний буквенно-цифровому порядку.


Вхідні дані:

The five boxing wizards jump quickly

Вихідні дані:

wizards: 1
quickly: 1
jump: 1
five: 1
boxing: 1
The: 1

Розділ: Словники і множини | Рівень складності: середній

  1. Напишіть програму, яка підраховує і роздруковує кількість появ кожного символу у введеному рядку.


Вхідні дані:

abcabcdfghj

Вихідні дані:

a, 2
b, 2
c, 2
d, 1
f, 1
g, 1
h, 1
j, 1

Розділ: Словники і множини | Рівень складності: середній

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


Вхідні дані:

Немає

Вихідні дані:

10.75 FB
612.78 AAPL

Розділ: Словники і множини | Рівень складності: середній

  1. Створіть словник, який відображає ідентифікатори акцій на біржі. Ключами словника є ідентифікатори акцій, а значеннями - дійсні числа - ціни акцій. Надрукуйте ціни акцій та ідентифікатори у порядку зростання ціни.


Вхідні дані:

Немає

Вихідні дані:

10.75 FB
37.2 HPQ
45.23 ACME
205.55 IBM
612.78 AAPL

Розділ: Словники і множини | Рівень складності: середній

  1. Створіть словник, який відображає ідентифікатори акцій на біржі. Ключами словника є ідентифікатори акцій, а значеннями - дійсні числа - ціни акцій. На основі цього словника створіть програмно словник, який містить значення цін акцій, які більше якогось введеного цілого значення n, і виведіть елементи другого словника.


Вхідні дані:

200

Вихідні дані:

AAPL 612.78
IBM 205.55

Розділ: Словники і множини | Рівень складності: середній

  1. Створіть словник, який відображає ідентифікатори акцій на біржі. Ключами словника є ідентифікатори акцій, а значеннями - дійсні числа - ціни акцій. На основі цього словника створіть програмно словник із значеннями акцій технологічних компаній.


Вхідні дані:

Немає

Вихідні дані:

AAPL 612.78
IBM 205.55
HPQ 37.2

Розділ: Словники і множини | Рівень складності: середній

  1. В рядку записаний текст. Словом вважається послідовність непробільних символів, які йдуть підряд, слова розділені одним або більшим числом пропуском або символами кінця рядка. Для кожного слова з цього тексту підрахуйте, скільки разів воно зустрічалося в цьому тексті раніше.


Вхідні дані:

var list set tuple list tuple tuple dict var

Вихідні дані:

0 0 0 0 1 1 2 0 1

Розділ: Словники і множини | Рівень складності: середній

  1. Напишіть програму для сортування за зростанням словника за значеннями. Словник зберігає пари ключ-значення у вигляді «країна: столиця». Інформація виводиться як у вихідних даних: сортування має бути проведено за назвами столиць. Примітка. При використанні метода sorted, можна застосувати як ключ лямбда-функцію на зразок key=lambda x: x[1].


Вхідні дані:

Немає

Вихідні дані:

[('China', 'Beijing'), ('Denmark', 'Copenhagen'), ('Ukraine', 'Kyiv'), ('Canada', 'Ottawa'), ('France', 'Paris')]

Розділ: Словники і множини | Рівень складності: середній

  1. Напишіть програму для сортування за спаданням словника за значеннями. Словник зберігає пари ключ-значення у вигляді «країна: столиця». Інформація виводиться як у вихідних даних: сортування має бути проведено за назвами столиць у порядку, протилежному алфавітному. Примітка. При використанні метода sorted, можна застосувати як ключ лямбда-функцію на зразок key=lambda x: x[1].


Вхідні дані:

Немає

Вихідні дані:

[('France', 'Paris'), ('Canada', 'Ottawa'), ('Ukraine', 'Kyiv'), ('Denmark', 'Copenhagen'), ('China', 'Beijing')]

Розділ: Словники і множини | Рівень складності: середній

  1. Дано словник, у якому ключами є назви 10 карпатських вершин, а значеннями - їх висота у метрах. Елементи у словнику невпорядковані. Напишіть програму для виведення висоти трьох найвищих гір. Примітка. При використанні метода sorted, можна застосувати як ключ лямбда-функцію на зразок key=lambda x: x[1].


Вхідні дані:

Немає

Вихідні дані:

Hoverla: 2061 m
Brebenescul: 2032 m
Pip Ivan Chernogirsky (Chorna gora): 2028 m

Розділ: Словники і множини | Рівень складності: середній

  1. Дано словник, в якому ключами назви країн-чемпіонів світу з футболу, а значеннями - список років, в які вони ставали чемпіонами. Елементи у словнику і у списку невпорядковані. Напишіть програму для впорядкування значень років в алфавітному порядку і виведення словника.


Вхідні дані:

Немає

Вихідні дані:

{'Brazil': [1958, 1962, 1970, 1994, 2002], 'England': [1966], 'Italy': [1934, 1938, 1982, 2006], 'Spain': [2010], 'Germany': [1954, 1974, 1990, 2014], 'France': [1998, 2018], 'Uruguay': [1930, 1950], 'Argentina': [1978, 1986]}

Розділ: Словники і множини | Рівень складності: середній

  1. Дано словник, в якому ключами є ідентифікатори абітурієнтів у форматі S x: літера S, пропуски, x - порядковий номер абітурієнта, а значеннями - список назв навчальних предметів, з яких абітурієнт буде здавати екзамен. Напишіть програму для друку створеного словника і словника, в якому видалені пропуски із ключів.


Вхідні дані:

Немає

Вихідні дані:

{'S  001': ['Math', 'Computer Science'], 'S   002': ['Math', 'English'], 'S   003': ['Philosophy', 'English', 'Physical training']}
{'S001': ['Math', 'Computer Science'], 'S002': ['Math', 'English'], 'S003': ['Philosophy', 'English', 'Physical training']}

Розділ: Словники і множини | Рівень складності: середній

  1. Дано словник, у якому ключами є назви фруктів, а значеннями - список значень у вигляді [Білки (г), Жири (г), Вуглеводи (г), Ккал/100 г]. Елементи у словнику невпорядковані. Напишіть програму для виведення номера елемента, ключа і значення елемента у словнику як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

1 Apricots   0.9 0 10.5 46
2 Grape      0.4 0 17.5 69
3 Orange     0.9 0 8.4 38
4 Ananas     0.4 0 11.8 48
5 Apples     0.4 0 11.3 46
6 Pear       0.4 0 10.7 42
7 Kiwi       0.8 0 8.1 47

Розділ: Словники і множини | Рівень складності: середній

  1. Дано словник, що складається з пар слів. Кожне слово є синонімом до парного йому слова. Всі слова в словнику різні. Для даного слова визначте його синонім. Програма отримує на вхід кількість пар синонімів n. Далі йде n рядків, кожен рядок містить рівно два слова-синоніми. Після цього вводиться одне слово. Програма повинна вивести синонім до даного слова.


Вхідні дані:

3
Solar Heliac
Day Daytime
Arrive Occur
Heliac

Вихідні дані:

Solar

Розділ: Словники і множини | Рівень складності: середній

  1. У вхідному рядку записана послідовність чисел через пропуск. Для кожного числа виведіть слово YES (в окремому рядку), якщо це число раніше зустрічалося в послідовності або NO, якщо не зустрічалося. Вводиться список чисел. Всі числа списку знаходяться на одному рядку. Для зберігання значень використайте словник.


Вхідні дані:

4 6 1 8 4 9 0 1

Вихідні дані:

NO
NO
NO
NO
YES
NO
NO
YES

Розділ: Словники і множини | Рівень складності: середній

  1. Вводиться кількість слів у словнику. Словник складається з пар слів. Кожне слово є синонімом іншого слова. Всі слова в словнику різні. Після введення словника вводиться ще одне слово. Знайти синонім для нього.


Вхідні дані:

3
amazing extraordinary
beautiful magnificent
delicious savory
extraordinary

Вихідні дані:

amazing

Розділ: Словники і множини | Рівень складності: середній

  1. На вхід програми подається послідовність чисел від 1 до 9, що закінчується нулем. Всього буде введено не більше 100000 чисел. Підрахуйте в цій послідовності кількість одиниць, кількість двійок, кількість трійок і т. д. і надрукуйте результат. У вихідних даних завжди має бути 9 чисел.


Вхідні дані:

1 1 4 1 5 8 6 3 5 1 0

Вихідні дані:

4 0 1 1 2 1 0 1 0

Розділ: Словники і множини | Рівень складності: середній

  1. Дано текст англійською мовою. Крім англійських букв, в ньому можуть зустрічатися пропуски і розділові знаки. Надрукуйте відомості про те, скільки яких букв зустрічається в цьому тексті (вивести 26 чисел). При підрахунку великі та малі літери не розрізняються.


Вхідні дані:

Hello world!

Вихідні дані:

0 0 0 1 1 0 0 1 0 0 0 3 0 0 2 0 0 1 0 0 0 0 1 0 0 0

Розділ: Словники і множини | Рівень складності: середній

  1. Потрібно написати програму, яка здійснює перетворення з однієї одиниці вимірювання довжини в інші. Повинні підтримуватись

милі (1 mile = 1609 m)
ярди (1 yard = 0.9144 m)
фути (1 foot = 30.48 cm)
дюйми (1 inch = 2.54 cm)
кілометри (1 km = 1000 m)
метри (m)
сантиметри (1 cm = 0.01 m)
міліметри (1 mm = 0.001 m)

Використовуйте саме зазначені в формулюванні завдання одиниці виміру з вказаною точністю. Вводиться один рядок з фразою такого виду

<number> <unit_from> in <unit_to>

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


Вхідні дані:

15.5 foot in mile
15.5 mile in km
15.5 mile in inch

Вихідні дані:

2.94e-03
2.49e+01
9.82e+05

Розділ: Словники і множини | Рівень складності: середній

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


Вхідні дані:

1 4 5 0 2 4
1 6 9 10

Вихідні дані:

duplicate list
is unique sequence

Розділ: Словники і множини | Рівень складності: середній

  1. Вводиться текст в одному рядку. Для кожного слова тексту підрахуйте кількість його входжень перед ним.


Вхідні дані:

one two one two three two four three

Вихідні дані:

0 0 1 1 0 2 0 1

Розділ: Словники і множини | Рівень складності: середній

  1. Вводяться n рядків зі скороченими назвами країн і повними назвами міст кожної країни, після цього вводяться m рядків з назвами міст. Напишіть програму, яка для кожного міста друкує скорочену назву країну, в якій місто знаходиться.


Вхідні дані:

5
UA Kyiv Zhytomyr Ternopil Dnipro
JP Tokyo Osaka Kyoto
CA Montreal Toronto Ottawa
USA Boston Pittsburgh Washington Seattle
UK London Edinburgh Cardiff Belfast
3
Seattle
London
Kyiv

Вихідні дані:

USA
UK
UA

Розділ: Словники і множини | Рівень складності: середній

  1. У першому рядку вводиться кількість рядків, потім задаються самі рядки слів, розділених пропусками. Виведіть слово, яке у рядках зустрічається найчастіше. Якщо таких слів декілька, надрукуйте те, що розміщується вище в алфавітному порядку.


Вхідні дані:

2
apple orange banana
banana orange

Вихідні дані:

banana

Розділ: Словники і множини | Рівень складності: середній

  1. Напишіть програму для підрахунку повторюваних символів у введеному рядку.


Вхідні дані:

the quick brown fox jumps over the lazy dog

Вихідні дані:

t 2
h 2
e 3
  8
u 2
r 2
o 4

Розділ: Словники і множини | Рівень складності: середній

  1. Дано дві послідовності цілих чисел. Надрукуйте числа, які присутні в обох послідовностях.


Вхідні дані:

1 5 8 0 2 9
8 3 6 7 1

Вихідні дані:

8 1

Розділ: Словники і множини | Рівень складності: середній

  1. Дано дві послідовності цілих чисел. Надрукуйте нову послідовність, яка об’єднує числа, що присутні в обох послідовностях, без дублікатів.


Вхідні дані:

1 5 8 0 2 9
8 3 6 7 1

Вихідні дані:

0 1 2 3 5 6 7 8 9

Розділ: Словники і множини | Рівень складності: середній

  1. Дано список значень різних типів даних. Створіть словник із значеннями списку як ключами, і назвами відповідного типу даних як значеннями словника. У словнику можуть бути присутні дані одного типу. Надрукуйте вміст словника як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

<class 'int'> 1952 1000000
<class 'float'> 10.45 5.5
<class 'complex'> (2+3j)
<class 'bool'> False
<class 'str'> pythonguide.pp.ua
<class 'tuple'> (1, -6)
<class 'list'> [3, 15]
<class 'dict'> {'Class C': ['Volkswagen Golf', 'Ford Focus'], 'Class F': ['Audi A8', 'Bentley', 'Maybach'], 'E': ['Toyota Camry']} {}
<class 'NoneType'> None

Розділ: Словники і множини | Рівень складності: середній

  1. Дано послідовність цілих чисел. Для кожного числа надрукуйте слово YES (в окремому рядку), якщо це число вже зустрічалось в послідовності, і надрукуйте NO, якщо воно ще не було виявлено. Для зберігання значень використайте множину


Вхідні дані:

1 4 5 2 10 15 4 10 3

Вихідні дані:

NO
NO
NO
NO
NO
NO
YES
YES
NO

Розділ: Словники і множини | Рівень складності: середній

  1. Напишіть програму, яка зможе підрахувати слова у введеному рядку, розділені пропуском і вивести отриману статистику: для кожного унікального слова обчислити число його повторень (без урахування регістру), слова не повинні повторюватися, порядок слів довільний.


Вхідні дані:

a bb acD bb abc ac BCD a

Вихідні дані:

a 2
bb 2
acd 1
abc 1
ac 1
bcd 1

Розділ: Словники і множини | Рівень складності: високий

  1. Напишіть програму, яка приймає на вхід список ігор футбольних команд з результатом матчу і виводить зведену таблицю результатів всіх матчів. За перемогу команді нараховується 3 очки, за поразку - 0, за нічию - 1. Формат введення наступний: у першому рядку вказано ціле число n - кількість завершених ігор. Після цього йде n рядків, в яких записані результати гри в наступному форматі:

1_команда;забито_1_командою;2_команда;забито_2_командою

Результати виведення програми необхідно оформити наступним чином:

Команда: Всього_ігор Перемог Нічиїх Поразок Всього_очок

Конкретний приклад введення-виведення наведено у вхідних і вихідних даних. Порядок виведення команд довільний.


Вхідні дані:

4
Ukraine;2;France;1
Italy;1;Germany;3
France;0;Italy;0
Germany;2;Ukraine;0

Вихідні дані:

Ukraine: 2 1 0 1 3
France: 2 0 1 1 1
Italy: 2 0 1 1 1
Germany: 2 2 0 0 6

Розділ: Словники і множини | Рівень складності: високий

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


Вхідні дані:

2 5 8 11 10 9
11 3 7 6 8 5

Вихідні дані:

5 8 11

Розділ: Словники і множини | Рівень складності: високий

  1. Напишіть програму, яка вміє шифрувати і розшифровувати використовуючи шифр підстановки. Програма приймає на вхід два рядки однакової довжини, у першому рядку записані символи початкового алфавіту, у другому рядку - символи кінцевого алфавіту (шифр підстановки), після чого йде рядок, який потрібно зашифрувати переданим шифром підстановки, і ще один рядок, який потрібно розшифрувати. Нехай, наприклад, на вхід програми передано:

abcd
*d%#
abacabadaba
#*%*d*%

Це означає, що символ a вхідного повідомлення замінюється на символ * в шифрі, b замінюється на d, c - на % і d - на #. Потрібно зашифрувати рядок abacabadaba і розшифрувати рядок #*%*d*% за допомогою цього шифру. Отримуємо наступні рядки, які і передаємо на виведення програми:

*d*%*d*#*d*
dacabac

Вхідні дані:

abcd
1234
ababcdcd
44332211

Вихідні дані:

12123434
ddccbbaa

Розділ: Словники і множини | Рівень складності: високий

  1. Дано ціле число n, за яким слідують n рядків тексту. Надрукуйте кількість різних слів, які з’являються у тексті. Для цього ми визначаємо, що слово - це послідовність символів, що не містить пропусків. Слова розділені одним або декількома пропусками або символами нового рядка. Знаки пунктуації є частиною слова в цьому визначенні.


Вхідні дані:

3
A fool is a person who thinks he's smarter than me.
Yet wolves are more noble sheep, it is difficult for them to imagine their life without the latter. And the sheep?! It's shame to say!
Only when he left the chariot, everyone understood that it was a coachman.

Вихідні дані:

43

Розділ: Словники і множини | Рівень складності: високий

  1. Дано список цілих чисел, який може містити до 100000 чисел. Визначте, скільки в ньому зустрічається різних чисел.


Вхідні дані:

2 5 7 7 9 0 3 4
3 3 4 4 5 1

Вихідні дані:

7
4

Розділ: Словники і множини | Рівень складності: високий

  1. Дано послідовність слів, розділених комами. Надрукуйте унікальні слова у лексикографічному порядку як у вихідних даних.


Вхідні дані:

abc,abc,bac,aca

Вихідні дані:

abc,aca,bac

Розділ: Словники і множини | Рівень складності: високий

  1. Напишіть програму для пошуку загальних елементів з двох введених рядків слів.


Вхідні дані:

Red Green Orange White
Black Green White Pink

Вихідні дані:

White Green

Розділ: Словники і множини | Рівень складності: високий

  1. Напишіть програму для пошуку загальних елементів з двох введених рядків слів.


Вхідні дані:

Немає

Вихідні дані:

('jacket', 2200.56)
('boots', 1179.99)
('trousers', 843.38)

Розділ: Словники і множини | Рівень складності: високий

  1. Дано дві послідовності цілих чисел. Необхідно надрукувати обидві послідовності з числами, які відсутні в іншій послідовності.


Вхідні дані:

1 3 4 5 8 9 12
3 4 7 8 12

Вихідні дані:

1 5 9
7

Розділ: Словники і множини | Рівень складності: високий

  1. Дано рядок тексту, в якому слова розділені пррпусками. Надрукуйте всі слова, які зустрічаються в тексті, та їхні частоти як у вихідних даних.


Вхідні дані:

one two three one four five seven ten seven one

Вихідні дані:

('one', 3) ('four', 1) ('seven', 2) ('ten', 1) ('three', 1) ('two', 1) ('five', 1)

Розділ: Словники і множини | Рівень складності: високий

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


Вхідні дані:

3 5 8
5 2 3

Вихідні дані:

2

Розділ: Словники і множини | Рівень складності: високий

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


Вхідні дані:

4 6 8 9
1 9 3 6

Вихідні дані:

6 9

Розділ: Словники і множини | Рівень складності: високий

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


Вхідні дані:

4 6 10 14 6 9 10 11

Вихідні дані:

6 10

Розділ: Словники і множини | Рівень складності: високий

  1. Дано рядок слів, розділених пропусками. Надрукуйте довжину найдовшого слова.


Вхідні дані:

aaa aaaaa aa a aaaaa

Вихідні дані:

5

Розділ: Словники і множини | Рівень складності: високий

  1. Дано список країн і міст кожної країни. Потім подані назви міст. Для кожного міста вкажіть, в якій країні воно знаходиться. Програма отримує на вхід кількість країн n. Далі йде n рядків, кожен рядок починається з назви країни, потім йдуть назви міст цієї країни. У наступному рядку записано число m, далі йдуть m запитів - назви якихось m міст, перерахованих вище. Для кожного із запиту виведіть назву країни, в якій знаходиться дане місто.


Вхідні дані:

2
Ukraine Kyiv Kharkiv Lviv
England London Liverpool Manchester Bristol
3
Kyiv
London
Lviv

Вихідні дані:

Ukraine
England
Ukraine

Розділ: Словники і множини | Рівень складності: високий

  1. Користувачем вводяться наступні дані: у першому рядку міститься кількість рядків n, а потім - вводяться n рядків слів. Надрукуйте слово, яке в тексті зустрічається найчастіше. Якщо таких слів є декілька, надрукуйте слово, яке в алфавітному порядку розташоване раніше.


Вхідні дані:

3
editor detective baker scientist
singer teacher
teacher scientist

Вихідні дані:

scientist

Розділ: Словники і множини | Рівень складності: високий

  1. Напишіть програму, яка виводить число в стилі LCD-калькулятора. На вхід програми подається послідовність цифр, яку потрібно вивести на екран в спеціальному стилі. Розмір всіх цифр 4 символу в ширину і 7 символів у висоту. Між цифрами повинен бути один порожній стовпець. Перед першою цифрою не повинно бути пропусків. Виведені цифри повинні бути обведені рамочкою, в кутах якої знаходиться символ x, горизонтальна лінія створюється з символу -, а вертикальна - з символу вертикальної риски |. Користувач вводить рядок - послідовність цифр, а програма має вивести 9 рядків, що містять цифри, записані в зазначеному форматі.


Вхідні дані:

0123456789
123
4

Вихідні дані:

x--------------------------------------------------x
| --        --   --        --   --   --   --   --  |
||  |    |    |    | |  | |    |       | |  | |  | |
||  |    |    |    | |  | |    |       | |  | |  | |
|           --   --   --   --   --        --   --  |
||  |    | |       |    |    | |  |    | |  |    | |
||  |    | |       |    |    | |  |    | |  |    | |
| --        --   --        --   --        --   --  |
x--------------------------------------------------x
x---------------x
|      --   --  |
|   |    |    | |
|   |    |    | |
|      --   --  |
|   | |       | |
|   | |       | |
|      --   --  |
x---------------x
x-----x
|     |
||  | |
||  | |
| --  |
|   | |
|   | |
|     |
x-----x

Розділ: Словники і множини | Рівень складності: високий

  1. Комп’ютерний вірус атакував файлову систему суперкомп’ютера і пошкодив контроль прав доступу до файлів. Для кожного файлу є відомий набір операцій, які можуть бути застосовані до нього: писати (W), читати (R), виконати (X). Перший рядок містить число n - кількість файлів, що містяться у файловій системі. Наступні n рядків містять імена файлів і дозволені операції з ними, розділені пропусками. Наступний рядок містить ціле число m - кількість операцій з файлами. В наступних m рядках записані операції, які виконуються над файлами. До одного файлу можна звертатися багато разів. Для кожного запиту програма повинна надрукувати OK, якщо запитана операція з файлом є можливою, або Access denied, якщо операцію виконати неможливо.


Вхідні дані:

4
helloworld.py R X
pinglog W R
scripts R
goodluck X W R
5
read scripts
write helloworld.py
execute scripts
read pinglog
write pinglog

Вихідні дані:

OK
Access denied
Access denied
OK
OK

Розділ: Словники і множини | Рівень складності: високий

  1. На шаховій дошці стоїть кінь. Відзначте положення коня на дошці і всі клітинки, які б’є кінь. Клітинку, де стоїть кінь, відзначте буквою K, клітинки, які б’є кінь, відзначте символами *, решта клітинок заповніть крапками. Програма отримує на вхід координати коня на шаховій дошці в шаховій нотації, тобто, у вигляді e2, де спочатку записується номер стовпця (буква від a до h, зліва направо), потім номер рядка (цифра від 1 до 8, знизу догори). Виведіть на екран зображення шахової дошки як у вихідних даних.


Вхідні дані:

e4

Вихідні дані:

. . . . . . . .
. . . . . . . .
. . . * . * . .
. . * . . . * .
. . . . K . . .
. . * . . . * .
. . . * . * . .
. . . . . . . .

Розділ: Словники і множини | Рівень складності: високий

  1. На шаховій дошці стоїть ферзь. Відзначте положення ферзя на дошці і всі клітинки, які б’є ферзь. Клітинку, де стоїть ферзь, відзначте буквою Q, клітинки, які б’є ферзь, відзначте символами *, решта клітинок заповніть крапками. Програма отримує на вхід координати ферзя на шаховій дошці в шаховій нотації, тобто, у вигляді e2, де спочатку записується номер стовпця (буква від a до h, зліва направо), потім номер рядка (цифра від 1 до 8, знизу догори). Виведіть на екран зображення шахової дошки як у вихідних даних.


Вхідні дані:

f3

Вихідні дані:

* . . . . * . .
. * . . . * . .
. . * . . * . .
. . . * . * . *
. . . . * * * .
* * * * * Q * *
. . . . * * * .
. . . * . * . *

Розділ: Словники і множини | Рівень складності: високий

  1. На шаховій дошці стоїть слон. Відзначте положення слона на дошці і всі клітинки, які б’є слон. Клітинку, де стоїть слон, відзначте буквою B, клітинки, які б’є слон, відзначте символами *, решта клітинок заповніть крапками. Програма отримує на вхід координати слона на шаховій дошці в шаховій нотації, тобто, у вигляді e2, де спочатку записується номер стовпця (буква від a до h, зліва направо), потім номер рядка (цифра від 1 до 8, знизу догори). Виведіть на екран зображення шахової дошки як у вихідних даних.


Вхідні дані:

g4

Вихідні дані:

. . * . . . . .
. . . * . . . .
. . . . * . . .
. . . . . * . *
. . . . . . B .
. . . . . * . *
. . . . * . . .
. . . * . . . .

Розділ: Словники і множини | Рівень складності: високий

  1. На шаховій дошці стоїть тура. Відзначте положення тури на дошці і всі клітинки, які б’є тура. Клітинку, де стоїть тура, відзначте буквою R, клітинки, які б’є тура, відзначте символами *, решта клітинок заповніть крапками. Програма отримує на вхід координати тури на шаховій дошці в шаховій нотації, тобто, у вигляді e2, де спочатку записується номер стовпця (буква від a до h, зліва направо), потім номер рядка (цифра від 1 до 8, знизу догори). Виведіть на екран зображення шахової дошки як у вихідних даних.


Вхідні дані:

h5

Вихідні дані:

. . . . . . . *
. . . . . . . *
. . . . . . . *
* * * * * * * R
. . . . . . . *
. . . . . . . *
. . . . . . . *
. . . . . . . *

Розділ: Словники і множини | Рівень складності: високий

  1. На шаховій дошці стоїть король. Відзначте положення короля на дошці і всі клітинки, які б’є король. Клітинку, де стоїть король, відзначте буквою K, клітинки, які б’є король, відзначте символами *, решта клітинок заповніть крапками. Програма отримує на вхід координати короля на шаховій дошці в шаховій нотації, тобто, у вигляді e2, де спочатку записується номер стовпця (буква від a до h, зліва направо), потім номер рядка (цифра від 1 до 8, знизу догори). Виведіть на екран зображення шахової дошки як у вихідних даних.


Вхідні дані:

c5

Вихідні дані:

. . . . . . . .
. . . . . . . .
. * * * . . . .
. * K * . . . .
. * * * . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

Розділ: Словники і множини | Рівень складності: високий

  1. Програма отримує на вхід координати певної клітинки на шаховій дошці в шаховій нотації, тобто, у вигляді e2, де спочатку записується номер стовпця (буква від a до h, зліва направо), потім номер рядка (цифра від 1 до 8, знизу догори). Виведіть на екран зображення шахової дошки, в якому вказаний колір клітинки: B (чорний колір) або W (білий колір).


Вхідні дані:

b6

Вихідні дані:

. . . . . . . .
. . . . . . . .
. B . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

Розділ: Словники і множини | Рівень складності: високий

  1. Двоє друзів вирішили здійснити влітку сходження в гори Карпати. Кожен з них зібрав свій рюкзак речей. Перевірте, які речі присутні в обох рюкзаках друзів, які є лише в першому рюкзаку, але не має в другому і, навпаки, є в другому і відсутні в першому. Дано два словники, у яких ключами є назви речей, а значеннями - кількості речей. Надрукуйте назви речей і їх кількості, які пристутні в обох рюкзаках друзів, лише в першому рюкзаку і лише в другому рюкзаку.


Вхідні дані:

Немає

Вихідні дані:

In both:
first aid kit 1
lighter 2
sunglasses 1
trousers 2
hygienic set 1
flashlight 1
footwear 2
socks 3
sleeping bag 1

Only in the first:
water jacket 1
cap 1
dishes 2
woolen gloves 1
tent 1

Only in the other:
batteries 4
poncho 1
t-shirts 3

Розділ: Словники і множини | Рівень складності: високий

  1. У римській системі числення для позначення чисел використовуються наступні символи (праворуч записані числа, яким вони відповідають в десятковій системі числення):

I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000

Будемо використовувати варіант, в якому числа 4, 9, 40, 90, 400 і 900 записуються як віднімання від більшого числа меншого: IV, IX, XL, XC, CD і CM, відповідно. Напишіть програму, яка за введеним натуральним числом n (0 < n < 4000) виведе рядок, що містить число, закодоване в римській системі числення.


Вхідні дані:

2022
11
1

Вихідні дані:

MMXXII
XI
I

Розділ: Словники і множини | Рівень складності: високий

  1. На вхід програми подається рядок, що містить слова, розділені пропуском. Програма повинна вивести статистику довжин слів в отриманому рядку, від меншої довжини слова до більшої. Словом вважається послідовність довільних символів, оточена пропусками або межами рядка. Зауважте, що розділові знаки також відносяться до слова. Користувач вводить один рядок, що містить послідовності англійських символів і знаків пунктуації, розділені пропуском. Для кожної довжини слова, що зустрічається в заданому рядку, потрібно вказати кількість слів з такою довжиною у форматі «довжина: кількість». Статистика повинна виводитися в порядку збільшення довжини.


Вхідні дані:

Errors should never pass silently.

Вихідні дані:

4: 1
5: 1
6: 2
9: 1

Розділ: Словники і множини | Рівень складності: високий

  1. На вхід програми подається рядок, який містить одне ціле число n - кількість англійських слів у англійсько-латинському словнику, за якими йдуть n перекладів цих слів. Кожен запис міститься в окремому рядку, що містить перше англійське слово, потім дефіс, оточений пропусками, а потім розділений комами список з перекладами цього англійського слова на латинській мові. Всі слова складаються лише з англійських літер. Переклади сортуються в лексикографічному порядку. Порядок англійських слів у словнику також лексикографічний. Надрукуйте відповідний латинсько-англійський словник у тому ж форматі (кількість слів та їхні переклади). Зокрема, першим у рядку слів має бути лексикографічно мінімальний переклад латинського слова, потім другого в цьому порядку і т. д. Англійські слова в кожному рядку також слід сортувати лексикографічно.


Вхідні дані:

3
apple - malum, pomum, popula
fruit - baca, bacca, popum
punishment - malum, multa

Вихідні дані:

7
baca - fruit
bacca - fruit
malum - apple, punishment
multa - punishment
pomum - apple
popula - apple
popum - fruit

Розділ: Словники і множини | Рівень складності: високий

  1. Дано текст в рядку. Виведіть слово, яке в цьому тексті зустрічається найчастіше. Якщо таких слів кілька, виведіть те, яке менше в лексикографічному порядку.


Вхідні дані:

Tokyo Seoul London Sofia Tokyo Sydney London

Вихідні дані:

London

Розділ: Словники і множини | Рівень складності: високий

  1. Кожен з n школярів деякої школи знає m мов. Визначте, які мови знають всі школярі і мови, які знає хоча б один з школярів. Перший рядок вхідних даних містить кількість школярів n. Далі йде n чисел m, після кожного з чисел йде m рядків, що містять назви мов, які знає i-й школяр. Довжина назв мов не перевищує 1000 символів, кількість різних мов не більше 1000 (1 ≤ n ≤ 1000, 1 ≤ m ≤ 500). У першому рядку виведіть кількість мов, які знають усі школярі. Починаючи з другого рядка - список таких мов. Потім - кількість мов, які знає хоча б один школяр, на наступних рядках - список таких мов.


Вхідні дані:

3
3
Ukrainian
English
Polish
2
Ukrainian
English
1
English

Вихідні дані:

1
English
3
English
Polish
Ukrainian

Розділ: Словники і множини | Рівень складності: високий

  1. Напишіть програму, яка для двох послідовностей, що складаються з натуральних чисел, що не перевершують n, буде визначати, які числа зустрічаються в кожній з послідовностей, а які з чисел від 1 до n - в жодній з них. Спочатку на вхід програмі подається число n (1 ≤ n ≤ 255). У другому рядку вхідних даних знаходяться елементи першої послідовності, у третьому рядку - елементи другої послідовності. Виведіть у першому рядку в порядку зростання без повторень числа, які зустрічаються в кожній з послідовностей, а у другому рядку - в порядку зростання числа від 1 до 255, які не зустрічаються в жодній з них.


Вхідні дані:

7
3 2 4 5 2
2 7 4 3 4 2

Вихідні дані:

2 3 4
1 6

Розділ: Словники і множини | Рівень складності: високий

  1. Вчителька задала Оленці домашнє завдання - в заданому тексті розставити наголоси в словах, після чого доручила Сашку перевірити це домашнє завдання. Сашко дуже погано знайомий з цією темою, тому він знайшов словник, в якому зазначено, як ставляться наголоси в словах. На жаль, в цьому словнику присутні не всі слова. Сашко вирішив, що в словах, яких немає в словнику, він буде вважати, що Оленка поставила наголоси правильно, якщо в цьому слові Оленкою поставлений рівно один наголос. Виявилося, що в деяких словах наголос може бути поставлений більше, ніж одним способом. Сашко вирішив, що в цьому випадку якщо те, як Оленка поставила наголос, відповідає одному з наведених в словнику варіантів, він буде зараховувати це як правильне розставлення наголосів, а якщо не відповідає, то як помилку.

    1. Дано словник, яким користувався Сашко і домашнє завдання, здане Оленкою. Ваше завдання - визначити кількість помилок, яку в цьому завданні нарахує Сашко.

    2. Вводиться спочатку число n - кількість слів у словнику (0 ≤ n ≤ 20000).

    3. Далі йде n рядків зі словами із словника. Кожне слово складається не більше ніж з 30 символів. Всі слова складаються з маленьких і великих латинських букв. У кожному слові велика одна буква - та, на яку потрапляє наголос. Слова в словнику розташовані в алфавітному порядку. Якщо є кілька можливостей розстановки наголосів в одному й тому самому слові, то ці варіанти в словнику йдуть в довільному порядку.

    4. Далі йде вправа, виконана Оленкою. Вправа є рядком тексту, сумарним обсягом не більше 300000 символів. Рядок складається з слів, які розділяються між собою рівно одним пропуском. Довжина кожного слова не перевищує 30 символів. Всі слова складаються з маленьких і великих латинських букв (великими позначені ті букви, над якими Оленка поставила наголос). Оленка могла помилково в якомусь слові поставити більше одного наголосу або не поставити наголоси зовсім.

    5. Виведіть кількість помилок в тексті, що написала Оленка, які знайде Сашко.

    6. Примітки.

      1. В слові cannot, відповідно до словника можливо два варіанти розстановки наголосів. Ці варіанти в словнику можуть бути перераховані в будь-якому порядку (тобто як спочатку cAnnot, а потім cannOt, так і навпаки). Дві помилки, вчинені Оленкою - це слова be (наголос взагалі не поставлено) і fouNd (наголос поставлено неправильно). Слово thE відсутнє в словнику, але оскільки в ньому Оленка поставила рівно один наголос, є правильним.

      2. Неправильно розставлені наголоси у всіх словах, крім The (воно відсутнє в словнику, в ньому поставлено рівно один наголос). В інших словах або ударні всі букви (в слові PAGE), або не поставлено жодного наголосу.


Вхідні дані:

4
cAnnot
cannOt
fOund
pAge
thE pAge cAnnot be found

Вихідні дані:

2

Розділ: Словники і множини | Рівень складності: високий

  1. Вводиться число n, за яким слідують n рядків тексту. Напишіть програму, яка друкує всі слова, що зустрічаються в тексті, по одному на рядок, і їхню кількість входжень у текст. Слова повинні бути відсортовані в порядку спадання відповідно до їх кількості, і всі слова при однаковому числі входжень у текст повинні бути надруковані в лексикографічному порядку. Вказівка. Після того, як ви створите словник усіх слів, вам захочеться впорядкувати його по частоті слова. Бажаного можна домогтися, якщо створити список, елементами якого будуть кортежі з двох елементів: частота зустрічальності слова і саме слово. Наприклад, [(2, 'hi'), (1, 'what'), (3, 'is')]. Тоді стандартне сортування буде сортувати список кортежів, при цьому кортежі порівнюються по першому елементу, а якщо ці елементи рівні - то по другому.


Вхідні дані:

9
hi
hi
what is your name
my name is bond
james bond
my name is damme
van damme
claude van damme
jean claude van damme

Вихідні дані:

damme 4
is 3
name 3
van 3
bond 2
claude 2
hi 2
my 2
james 1
jean 1
what 1
your 1

Розділ: Словники і множини | Рівень складності: високий

  1. Сашко і Оленка грають в гру. Сашко загадав натуральне число від 1 до n. Оленка намагається вгадати це число, для цього вона називає деякі послідовності натуральних чисел. Сашко відповідає Оленці YES, якщо серед названих нею чисел є задумане або NO в іншому випадку. Після декількох заданих питань Оленка заплуталася в тому, які питання вона задавала і які відповіді отримала і просить вас допомогти їй визначити, які числа міг задумати Сашко. Перший рядок вхідних даних містить число n - найбільше число, яке міг загадати Сашко. Далі йдуть рядки, які містять питання Оленки. Кожен рядок представляє собою набір чисел, розділених пропусками. Після кожного рядка з питанням йде відповідь Сашка: YES або NO. Нарешті, останній рядок вхідних даних містить одне слово HELP. Ви повинні вивести (через пропуск, в порядку зростання) всі числа, які міг задумати Сашко.


Вхідні дані:

12
1 2 3 5 7 9
YES
3 7 9 11 12
NO
HELP

Вихідні дані:

1 2 5

Розділ: Словники і множини | Рівень складності: високий

  1. Сашко і Оленка продовжують грати в гру, але Сашко почав шахраювати. На кожне з питань Оленки він вибирає такий варіант відповіді YES або NO, щоб послідовність можливих задуманих чисел залишалася якомога більшою. Наприклад, якщо Сашко задумав число від 1 до 5, а Оленка запитала про числа 1 і 2, то Сашко відповість NO, а якщо Оленка запитає про 1, 2, 3, то Сашко відповість YES. Якщо ж Оленка в своєму питанні перераховує рівно половину з задуманих чисел, то Сашко завжди відповідає NO. Нарешті, Сашко при відповіді враховує всі попередні питання Оленки і свої відповіді на них, тобто множина можливих задуманих чисел зменшується. Вам дано послідовність питань Оленки. Наведіть відповіді Сашка на них. Перший рядок вхідних даних містить число n - найбільше число, яке міг загадати Сашко. Далі йдуть рядки, які містять питання Оленки. Кожен рядок представляє собою набір чисел, розділених пропусками. Останній рядок вхідних даних містить одне слово HELP. Для кожного питання Оленки виведіть відповідь Сашка на це питання. Після цього виведіть (через пропуск, в порядку зростання) всі числа, які міг би загадати Сашко після відповіді на всі питання Оленки.


Вхідні дані:

8
1 2 3 5 6
2 3 7 8
HELP

Вихідні дані:

YES
NO
1 5 6

Розділ: Словники і множини | Рівень складності: високий

2.7. Функції

Даний розділ містить задачі, які рекомендується розв’язувати за допомогою функцій.
  1. Напишіть функцію, яка отримує ім’я і друкує вітальне повідомлення.


Вхідні дані:

Alex

Вихідні дані:

Hello, Alex

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

I love coding
3

Вихідні дані:

I love codingI love codingI love coding

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для обчислення суми двох цілих чисел.


Вхідні дані:

2 5

Вихідні дані:

7

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для перетворення цілого числа в рядок.


Вхідні дані:

8

Вихідні дані:

'8'

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

5
Java
2
Java

Вихідні дані:

Java
Ja

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для визначення більшого з двох цілих чисел без використання вбудованої функції max(). Якщо числа рівні, то вивести повідомлення equal.


Вхідні дані:

12 56
11 4
3 3

Вихідні дані:

56
11
equal

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для визначення найбільшого з трьох цілих чисел з використанянм вбудованої функції max().


Вхідні дані:

1 2 2
12 8 35
1 1 1

Вихідні дані:

2
35
1

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка перевіряє, чи існує трикутник із введеними сторонами a, b, c.


Вхідні дані:

2 2 1
1 2 4

Вихідні дані:

True
False

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка отримує два слова, об’єднує їх за допомогою пропуску і друкує результат об’єднання.


Вхідні дані:

Hello
World

Вихідні дані:

Hello World

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка отримує 3 аргументи: перші 2 - числа, третій - операція (+, -, *, /), яка повинна бути проведена над ними. У випадку невідомої операції, функція повертає рядок Unknown operation. Результатом має бути дійсне число з двома знаками після десяткової крапки.


Вхідні дані:

3
8
+

Вихідні дані:

11.00

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка перевіряє, чи подана послідовність порожня чи ні.


Вхідні дані:

Різні типи послідовностей (список, кортеж, словник)

Вихідні дані:

True чи False

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

list
Is empty

Вихідні дані:

Is list
Is empty

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для перевірки того, чи введена літера є голосною чи приголосною.


Вхідні дані:

c
e

Вихідні дані:

False
True

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для створення позначок тегів HTML навколо введених рядків. Функція отримує назву тега HTML і рядок, який необхідно помістити у відповідні теги.


Вхідні дані:

strong Python

Вихідні дані:

<strong>Python</strong>

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка приймає два слова в якості вхідних даних, і надрукуйте найдовше слово. Якщо слова мають однакову довжину, то функція повинна надрукувати слова в окремих рядках.


Вхідні дані:

five three

Вихідні дані:

three

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка повертає назву пори року для введеного значення номера місяця.


Вхідні дані:

6
2
9
3
15

Вихідні дані:

summer
winter
autumn
spring
unknown

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка повертає зі списку найменше і найбільше числа.


Вхідні дані:

61 9 -5 23 15 44 31 10 -14 7 8

Вихідні дані:

(-14, 44)

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для вставки рядка всередину іншого рядка.


Вхідні дані:

[] Python
<<>> HTML
qwerty 123

Вихідні дані:

[Python]
<<HTML>>
qwe123rty

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для перетворення літер введеного рядка у великі, якщо він містить принаймні n великих літер в перших m символах. Спочатку вводиться сам рядок, а в з нового рядка - числа n і m.


Вхідні дані:

Python
1 3
Ruby
2 2

Вихідні дані:

PYTHON
Ruby

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для створення гістограми (наприклад, у вигляді *) із заданого списку цілих чисел як у вихідних даних. Формат введення списку чисел як у вхідних даних.


Вхідні дані:

2,7,1,4,2,3,9,3

Вихідні дані:

**
*******
*
****
**
***
*********
***

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка приймає ціле число і друкує інформацію про парність чи непарність числа.


Вхідні дані:

2
9

Вихідні дані:

True
False

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для друку парних чисел із заданої послідовності цілих чисел.


Вхідні дані:

32 4 7 9 11 13 15 8

Вихідні дані:

32 4 8

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для підрахунку суми всіх елементів у списку цілих чисел.


Вхідні дані:

1 10 4 8 11 5 2

Вихідні дані:

41

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для підрахунку добутку усіх елементів у списку цілих чисел.


Вхідні дані:

1 10 4 8 11 5 2

Вихідні дані:

35200

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для створення і друку словника, в якому ключі - цілі числа від 1 до n включно, а значення - квадрати цих чисел.


Вхідні дані:

10

Вихідні дані:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для створення і друку списку, в якому значення - квадрати цілих чисел від 1 до n включно.


Вхідні дані:

5

Вихідні дані:

[1, 4, 9, 16, 25]

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

6

Вихідні дані:

(1, 4, 9, 16, 25, 36)

Розділ: Функції | Рівень складності: початковий

  1. Python має вбудовану функцію __doc__ для друку документації для всіх вбудованих функцій. Наприклад, для доступу до документації функції abs(), слід використати такий запис: print(input.__doc__). Напишіть функцію для обчислення квадрата цілого числа. В тілі функції додайте багаторядковий коментар про те, що робить функція. Викличте функцію і перегляньте її документацію.


Вхідні дані:

9

Вихідні дані:

81
Return the square value of the input number.
    The input number must be integer.
 

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

5 16 72 29 11 217 112

Вихідні дані:

[5, 112]

Розділ: Функції | Рівень складності: початковий

  1. Напишіть програму, і створіть в ній дві функції. Перша з них - приймає послідовність цілих чисел і повертає список. Друга - повертає новий список, що містить всі елементи першого списку без дублікатів.


Вхідні дані:

5 16 5 29 11 217 11

Вихідні дані:

[5, 11, 16, 217, 29]

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка отримує рядок слів, розділених пропуском. Надрукуйте рядок слів у звороному порядку.


Вхідні дані:

one two three

Вихідні дані:

three two one

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка приймає послідовність цілих чисел та ціле число n, що вводяться на окремих рядках. Функція повертає True, якщо вказане число знаходиться всередині списку, або False у протилежному випадку.


Вхідні дані:

3 6 9 10 23 14
23

Вихідні дані:

True

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

Python Ruby C Go Java JavaScript

Вихідні дані:

Python, Ruby, C, Go, Java, JavaScript

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для визначення суми трьох цілих чисел. Якщо будь-які два значення однакові, необхідно вивести нуль.


Вхідні дані:

1 2 3
1 2 2

Вихідні дані:

6
0

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для перевірки наявності одного списку у іншому списку. Cписки містять принаймні по одному елементу.


Вхідні дані:

2 6 8 4 9 1
4 9
2 6 8 4 9 1
9 4

Вихідні дані:

True
False

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

one-two-three-four-five-six-seven

Вихідні дані:

five-four-one-seven-six-three-two

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, щоб вилучити певні символи із введеного рядка. Спочатку вводиться початковий рядок, а далі з нового рядка символи, які необхідно вилучити з початкового рядка. Результатом має бути новий рядок без вилучених символів.


Вхідні дані:

I did, did I?
d?

Вихідні дані:

I i, i I

Розділ: Функції | Рівень складності: початковий

  1. Дано два дійсних числа x і y. Напишіть функцію для перевірки, чи належить точка з координатами (x, y) квадрату (включаючи його межу), що має розміри 2 х 2 клітинки і розташований в початку системи координат. Якщо точка належить квадрату, виведіть слово YES, інакше виведіть слово NO. Функція не повинна містити інструкцію «якщо».


Вхідні дані:

2
-1
1
1

Вихідні дані:

NO
YES

Розділ: Функції | Рівень складності: початковий

  1. Дано два дійсних числа x і y. Напишіть функцію для перевірки, чи належить точка з координатами (x, y) ромбу (включаючи його межу), що має розміри 1 х 1 клітинки і розташований в початку системи координат. Якщо точка належить ромбу, виведіть слово YES, інакше виведіть слово NO. Функція не повинна містити інструкцію «якщо».


Вхідні дані:

1
1
-0.6
0.3

Вихідні дані:

NO
YES

Розділ: Функції | Рівень складності: початковий

  1. Дано п’ять дійсних чисел: x, y, xc, yc, r. Напишіть функцію для перевірки, чи належить точка (x, y) колу з центром (xc, yc) і радіусом r. Якщо точка належить колу, виведіть слово YES, інакше виведіть слово NO. Функція не повинна містити інструкцію «якщо».


Вхідні дані:

0
0
2
2
3
1
1
4
5
3

Вихідні дані:

YES
NO

Розділ: Функції | Рівень складності: початковий

  1. Надрукуйте найменше з трьох введених чисел без використання вбудованої функції min(). Для цього напишіть першу функцію, яка повертає найменше число з двох заданих. У другій функції реалізуйте використання першої функції для визначення найменшого значення серед трьох чисел.


Вхідні дані:

5 8 11
12 12 24
1 1 1

Вихідні дані:

5
12
1

Розділ: Функції | Рівень складності: початковий

  1. Дано чотири дійсних числа: x1, y1, x2, y2. Напишіть функцію distance(x1, y1, x2, y2), яка обчислює відстань між точкою (x1, y1) і (x2, y2). Введіть чотири дійсних числа і виведіть результат роботи цієї функції.


Вхідні дані:

0
0
1
1

Вихідні дані:

1.41421

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка отримує рядок і обчислює кількість великих та нижніх букв в ньому і друкує результат як у вихідних даних - спочатку кількість великих, а потім кількість малих літер.


Вхідні дані:

Was it a car or a cat I saw?

Вихідні дані:

2
17

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для підрахунку входжень кожного слова в певному реченні.


Вхідні дані:

the quick brown fox jumps over the lazy dog

Вихідні дані:

{'the': 2, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'lazy': 1, 'dog': 1}

Розділ: Функції | Рівень складності: початковий

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


Вхідні дані:

Barbara
Alex56
Alex56
Barbara
0

Вихідні дані:

1 1
2 2
3 2
4 2
5 2
0

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка друкує усі слова із списку, довжина яких перевищує n.


Вхідні дані:

Denmark England Estonia France Greece Romania Ukraine
6

Вихідні дані:

Denmark England Estonia Romania Ukraine

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію, яка приймає два списки та повертає True, якщо у них є щонайменше один спільний елемент.


Вхідні дані:

1 2 3 4 5
6 7 8 9 0
1 two three four five 6 seven 8 9 ten
five hundred

Вихідні дані:

False
True

Розділ: Функції | Рівень складності: початковий

  1. Напишіть функцію для визначення, чи рік високосний чи ні.


Вхідні дані:

2023
2020

Вихідні дані:

False
True

Розділ: Функції | Рівень складності: середній

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


Вхідні дані:

jived fox nymph grabs quick waltz

Вихідні дані:

Jived Fox Nymph Grabs Quick Waltz

Розділ: Функції | Рівень складності: середній

  1. Вкладник розмістив суму розміром n грн. в банку. Визначте, яку суму отримає вкладник через m років, якщо відсоткова ставка складає p% в рік. Дані вводяться в порядку n, p, m як у вхідних даних.


Вхідні дані:

5000
18
2

Вихідні дані:

6800.00

Розділ: Функції | Рівень складності: середній

  1. Дано дійсне додатне число a і ціле число n, яке може набувати додатних і від’ємних значень. Напишіть функцію для обчислення an. Стандартною функцією піднесення до степеня і оператором ** користуватися не можна.


Вхідні дані:

2
1
2
-1

Вихідні дані:

2.0
0.5

Розділ: Функції | Рівень складності: середній

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


Вхідні дані:

22 22 24 49 72 98 101 82 51 40 36 24

Вихідні дані:

(621.0, 51.75, (101.0, 'July'), (22.0, 'January'))

Розділ: Функції | Рівень складності: середній

  1. Написати функцію для перевірки правильності введеної дати. Функція приймає 3 аргументи - день, місяць та рік і повертає True, якщо така дата є в календарі, і False в протилежному випадку.


Вхідні дані:

04
03
2029
33
11
2019

Вихідні дані:

True
False

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для перевірки, чи є число ідеальним чи ні. Примітка. У теорії чисел ідеальне число - це додатне ціле число, яке дорівнює сумі власних додатних дільників, тобто сумі додатних дільників, виключаючи саме число. Відповідно, ідеальне число - це число, що дорівнює половині суми всіх додатних дільників (включаючи саме число). Наприклад: перше ідеальне число - 6, оскільки 1, 2 і 3 - це правильні додатні дільники, а 1 + 2 + 3 = 6. Відповідно, число 6 дорівнює половині суми всіх його додатних дільників: (1 + 2 + 3 + 6) / 2 = 6. Наступне ідеальне число - 28 = 1 + 2 + 4 + 7 + 14. Далі ідуть ідеальні числа 496 і 8128.


Вхідні дані:

6
28
25

Вихідні дані:

True
True
False

Розділ: Функції | Рівень складності: середній

  1. На стадіоні є три категорії місць для сидіння: місця класу A коштують a грошових одиниць, місця класу B коштують b грошових одиниць, а місця класу C - c грошових одиниць. Напишіть першу функцію, яка запитує скільки продано квитків на кожний клас місць, і другу функцію, яка відображає суму отриманого доходу від продажу квитків на кожен клас окремо і загалом. Формати введення і виведення такі, як у вхідних і вихідних даних.


Вхідні дані:

A
20.50
45
B
15.75
30
C
10.55
15

Вихідні дані:

({'A': 922.5, 'B': 472.5, 'C': 158.25}, 1553.25)

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію, яка отримує послідовність балів (цілі числа) і повертає буквенну інтерпретацію числових балів на основі наступної шкали оцінок:

90-100 - A
80-89 - B
70-79 - C
60-69 - D
Нижче 60 - F

Вхідні дані:

60 80 64 45 35 87 90 95 91 64 78

Вихідні дані:

{'A': [90, 95, 91], 'B': [80, 87], 'C': [78], 'D': [60, 64, 64], 'F': [45, 35]}

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію, яка перевіряє, чи рядок є паліндром чи ні. Регістр літер, пропуски і знаки пунктуації не враховувати. Примітка. Паліндром - це слово, фраза або послідовність, яка читається так само як зліва направо, так і справа наліво.


Вхідні дані:

Level
No 'x' in Nixon
"Was it a car or a cat I saw?"
A man, a plan, a canal, Panama!
palindrome

Вихідні дані:

True
True
True
True
False

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для сортування рядка в алфавітному порядку без врахування регістру літер.


Вхідні дані:

JavaScript
Python

Вихідні дані:

aaciJprStv
hnoPty

Розділ: Функції | Рівень складності: середній

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


Вхідні дані:

Ruby

Вихідні дані:

yuRb

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для сортування рядка слів, розділених пропусками, за довжиною слів в порядку зростання.


Вхідні дані:

Ruby Python Go JavaScript Java

Вихідні дані:

Go Java Ruby Python JavaScript

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для сортування рядка слів, розділених пропусками, за довжиною слів в порядку зменшення.


Вхідні дані:

Ruby Python Go JavaScript Java

Вихідні дані:

JavaScript Python Java Ruby Go

Розділ: Функції | Рівень складності: середній

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


Вхідні дані:

1 4 0 12 4 5
24 1 2 10 8

Вихідні дані:

0 1 1 2 4 4 5 8 10 12 24

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію, яка створює комбінацію двох послідовностей таким чином як у вихідних даних.


Вхідні дані:

1 2 3 4 5
a b c d e

Вихідні дані:

1 a 2 b 3 c 4 d 5 e

Розділ: Функції | Рівень складності: середній

  1. Дано список кортежів, кожен з яких містить два значення: назва фільму (рядок) і рейтинг (дійсне число). Напишіть функцію(ї) для сортування кортежів в порядку зростання рейтингу.


Вхідні дані:

Список із кортежів

Вихідні дані:

[('Captain Marvel', 7.0), ('Aladdin', 7.4), ('Toy Story 4', 8.2), ('Avengers: Endgame', 8.7)]

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для обчислення факторіала заданого числа.


Вхідні дані:

5

Вихідні дані:

120

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для перевертання кожного слова у введеному тексті.


Вхідні дані:

poT tops
oN ,nomel on nolem

Вихідні дані:

Top spot
No lemon, no melon

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для перевірки, чи є даний рядок анаграмою іншого рядка. Букви початкового рядка використовуються одноразово і враховується регістр літер. Примітка. Анаграма - переставлення літер у слові, завдяки чому утворюється нове значення слова.


Вхідні дані:

eleven plus two
twelve plus one
I am Lord Voldemort
tom marVoLo rIddle
Forty five
over fifty

Вихідні дані:

True
True
False

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для знаходження кількість повторень елементів у послідовності, які вводяться через кому в один рядок, і виведіть список пар «елемент- кількість повторень» в порядку спадання кількості повторень як у вихідних даних.


Вхідні дані:

1,2,3,4,3,3,2,4,5,6,1,2,3,4,6,1,2,3,4,6,6

Вихідні дані:

[(3, 5), (2, 4), (4, 4), (6, 4), (1, 3), (5, 1)]

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для перевірки чи є послідовність цілих чисел арифметичною прогресією чи ні. Примітка. У математиці арифметична прогресія або арифметична послідовність - це послідовність чисел, в якій різниця між послідовними членами є постійною. Наприклад, послідовність 5, 7, 9, 11, 13, 15,... є арифметичною прогресією із загальною різницею 2.


Вхідні дані:

5 7 9 11
5 7 10 12

Вихідні дані:

True
False

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для перевірки чи є послідовність чисел геометричної прогресією чи ні. Примітка. У математиці геометрична прогресія або геометрична послідовність є послідовністю чисел, де кожний елемент після першого знайдений шляхом множення попереднього на фіксовану, ненульову кількість, що називається загальним співвідношенням. Наприклад, послідовність 2, 6, 18, 54,... є геометричною прогресією з загальним співвідношенням 3. Аналогічно, 10, 5, 2.5, 1.25,... є геометричною послідовністю з загальним співвідношенням 1/2.


Вхідні дані:

2 6 18 54
10 5 2.5 1.25
5 8 9 11

Вихідні дані:

True
True
False

Розділ: Функції | Рівень складності: середній

  1. Напишіть лямбда-функцію для визначення кореня квадратного з цілого числа.


Вхідні дані:

25
2

Вихідні дані:

5.00
1.41

Розділ: Функції | Рівень складності: середній

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


Вхідні дані:

12
4

Вихідні дані:

1728
64

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію, яка виконує ділення двох цілих чисел (числа вводяться в одному рядку через пропуск.). Необхідно написати програму, яка запускає цю функцію, і, у разі помилки (ділення на нуль), генерується виняток ZeroDivisionError і виводить його ім’я як у вихідних даних. В разі успішної дії ділення, має виводитись результат і повідомлення OK. У будь-якому випадку в кінці роботи програми виводиться повідомлення Done.


Вхідні дані:

10 4
5 0

Вихідні дані:

2.5
OK
Done
ZeroDivisionError
Done

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію, яка приймає три рядки в якості аргументів: start_message, error_message, end_message. Функція повинна запитувати у користувача введення до тих пір, поки не буде введено ціле число (рядок, який конвертується функцією int без помилок). Перед першим запитом введення повинен бути виведене значення start_message, після кожного помилкового введення потрібно виводити значення рядка error_message і при вдалому введенні потрібно вивести рядок end_message і повернути отримане ціле число з функції. Кожне повідомлення повинно знаходитися на окремому рядку. Гарантовано, що в якийсь момент користувачем буде введено ціле число.


Вхідні дані:

Input int number:
five
Wrong value. Input int number:
5

Вихідні дані:

5
Thank you.

Розділ: Функції | Рівень складності: середній

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


Вхідні дані:

45 67 23 45 111 67 12 55

Вихідні дані:

45 67 23 111 12 55

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для отримання всіх можливих двозначних комбінації літер із рядка цифр (від 1 до 9). Для розв’язування задачі використайте словник: string_maps = {'1': 'abc', '2': 'def', '3': 'ghi', '4': 'jkl', '5': 'mno', '6': 'pqrs', '7': 'tuv', '8': 'wxy', '9': 'z'}.


Вхідні дані:

12
11

Вихідні дані:

['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf']
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для виконання рядка, що містить код Python. Реалізуйте функцію разом із конструкцією try/except, яка має відпрацювати як у вихідних даних.


Вхідні дані:

print('Hello, World!')
print(36+51)
print(2 + 'a')

Вихідні дані:

Hello, World!
Successfully
Done
87
Successfully
Done
Not fulfilled
Done

Розділ: Функції | Рівень складності: середній

  1. Напишіть функцію для перевірки, чи є рядок «панграмою» чи ні. Примітка. Панграма - фраза, вислів або текст в якому присутні всі літери абетки принаймні по одному разу. Наприклад: «How vexingly quick daft zebras jump» (30 літер), «The five boxing wizards jump quickly» (31 літера), «Cwm fjord bank glyphs vext quiz» (26 літер), «The quick brown fox jumps over the lazy dog» (35 літер).


Вхідні дані:

Cwm fjord bank glyphs vext quiz
How vexingly quick daft zebras jump
Mr Jock, TV quiz PhD, bags few lynx

Вихідні дані:

True
True
True

Розділ: Функції | Рівень складності: високий

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


Вхідні дані:

triangle
1 0 1
circle
5
rectangle
2 7
triangle
2 2 1

Вихідні дані:

triangle does not exist
78.50
14.00
0.97

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію, яка виводить перші n рядків трикутника Паскаля. Примітка. Трикутник Паскаля - це арифметична та геометрична фігура, описана Блезом Паскалем. Ряди трикутника Паскаля умовно пронумеровані згори, починаючи з нульового. Кожне число в кожному ряді одержуємо, додавши два числа, розміщені вгорі (зліва і справа). Якщо зліва або справа немає числа, підставляємо нуль на його місце.


Вхідні дані:

5

Вихідні дані:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію для вирішення класичної давньої китайської головоломки: дано кількість голів n та лап m серед курчат та кроликів на фермі. Скільки курчат і кроликів на фермі?


Вхідні дані:

5 12
3 4

Вихідні дані:

4 1
NO SOLUTIONS! NO SOLUTIONS!

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію для створення всіх можливих перестановок елементів з послідовності різних цілих чисел.


Вхідні дані:

1 2 3

Вихідні дані:

[[3, 2, 1], [2, 3, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [1, 2, 3]]

Розділ: Функції | Рівень складності: високий

  1. Напишіть програму, яка друкує наступний день для певної дати як у вихідних даних у форматі рррр-мм-дд. Напишіть окремі функції для обробки даних, які вводить користувач і використайте їх у програмі.


Вхідні дані:

31 8 2019
28 2 2020

Вихідні дані:

2019-9-1
2020-2-29

Розділ: Функції | Рівень складності: високий

  1. Напишіть програму, яка друкує попередній день для певної дати як у вихідних даних у форматі рррр-мм-дд. Напишіть окремі функції для обробки даних, які вводить користувач і використайте їх у програмі.


Вхідні дані:

1 3 2019
1 1 2020
1 9 2019

Вихідні дані:

2019-2-28
2019-12-31
2019-8-31

Розділ: Функції | Рівень складності: високий

  1. Магічний квадрат - це квадратна таблиця n x n, заповнена цілими числами таким чином, що сума чисел у кожному рядку, кожному стовпчику і на обох діагоналях однакова. Напишіть функцію, яка отримує послідовність чисел у форматі як у вхідних даних, з яких утворюється двовимірна таблиця (список списків) цілочисельних елементів і перевірте чи є вона магічним квадратом. Результатом має бути True чи False відповідно.


Вхідні дані:

1 2 3,4 5 6,7 8 9
4 9 2,3 5 7,8 1 6
7 12 1 14,2 13 8 11,16 3 10 5,9 6 15 4
23 28 21,22 24 26,27 20 25
16 23 17,78 32 21,17 16 15
4 3 8,9 5 1,2 7 6

Вихідні дані:

False
True
True
True
False
True

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію для перетворення кольору у форматі RGB у колір HSV. Користувач вводить три числа в одному рядку через пропуск - значення для червоного, зеленого та синього кольорів відповідно (значення кожного з чисел знаходяться в межах від 0 до 255 включно). Функція отримує ці три числа і виводить значення кольору у форматі HSV з форматуванням як у вихідних даних. Примітка. Колірна модель RGB (червоний, зелений, синій) зберігає окремі значення для червоного, зеленого та синього кольорів. Колірна модель HSV (відтінок, насиченість, значення), також відома як HSB (відтінок, насиченість, яскравість), часто використовується художниками, тому що часто природніше думати про кольори з точки зору тону та насиченості, ніж з точки зору поєднання компонентів кольору.


Вхідні дані:

0 220 0
45 101 116

Вихідні дані:

120° 100.0% 86.3%
193° 61.2% 45.5%

Розділ: Функції | Рівень складності: високий

  1. Напишіть рекурсивну функцію, яка обчислює суму цілих чисел a і b. З арифметичних операцій використовується тільки додавання одиниці і віднімання одиниці.


Вхідні дані:

2
9
2
-5
3
0

Вихідні дані:

11
-3
3

Розділ: Функції | Рівень складності: високий

  1. Напишіть рекурсивну функцію для обчислення суми списку цілих чисел.


Вхідні дані:

1 4 7 90 45 23 16

Вихідні дані:

186

Розділ: Функції | Рівень складності: високий

  1. Дано послідовність чисел, що завершується числом 0 (саме число 0 в послідовність не входить, а служить як ознака її закінчення). Напишіть рекурсивну функцію, яка обчислює суму всіх цих чисел, не використовуючи цикл.


Вхідні дані:

3
7
4
1
0

Вихідні дані:

15

Розділ: Функції | Рівень складності: високий

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

f(n) = 0, якщо n = 0
f(n) = 1, якщо n = 1
f(n) = f(n-1) + f(n-2), якщо n > 1

Напишіть функцію для друку n елементів послідовності f(n) через кому в одному рядку. Примітка. Послідовність Фібоначчі - це послідовність чисел, де наступне число у послідовності є сумою попередніх двох чисел: 1, 1, 2, 3, 5, 8, 13,....


Вхідні дані:

7

Вихідні дані:

1 1 2 3 5 8 13

Розділ: Функції | Рівень складності: високий

  1. Дано послідовність цілих чисел, що закінчується числом 0. Напишіть рекурсивну функцію, яка друкує цю послідовність в зворотному порядку. При розв’язуванні цього завдання не можна користуватися списками.


Вхідні дані:

4
2
7
0

Вихідні дані:

0
7
2
4

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію для обчислення результату піднесення числа a до степеня b, які вводяться в одному рядку через пропуск (a і b - цілі числа). Використайте рекурентне співідношення: an= a * a(n-1). Використовувати цикли і вбудовану функцію pow() не можна.


Вхідні дані:

9 2
3 6
2 0

Вихідні дані:

81
729
1

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію, яка для заданого натурального числа n (n > 0) генерує послідовність чисел, описану в гіпотезі Коллатц: якщо n парне, то ділимо його навпіл, якщо непарне, то множимо на 3 і додаємо 1. З підсумком обчислення знову проробляємо цю операцію до тих пір, поки в результаті не отримаємо число 1. Наприклад, для числа n = 17 послідовність обчислень виглядає наступним чином: 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.


Вхідні дані:

17
5
2

Вихідні дані:

17 52 26 13 40 20 10 5 16 8 4 2 1
5 16 8 4 2 1
2 1

Розділ: Функції | Рівень складності: високий

  1. Ханойська вежа - одна з широко відомих головоломок, умова якої полягає в наступному: є три стержня (пронумеруємо їх числами 1, 2 і 3). На першому стержні знаходиться n кілець з радіусами від 1 до n. Кільця відсортовані по радіусу, і найбільше кільце лежить нижче всіх. Вам потрібно знайти і записати алгоритм перенесення всіх n кілець з першого стержня на третій за такими правилами: за один хід можна переносити тільки одне кільце; не можна класти більше кільце на менше. Програма повинна вивести на екран найкоротшу послідовність дій, необхідну для того, щоб перенести всі кільця з першого стержня на третій. Користувач вводить рядок, що містить додатне ціле число n. Програма має вивести порядок дій для вирішення головоломки. Кожна дія записується на окремому рядку. Дія записується в форматі «номер стержня, з якого знімаємо кільце» - «номер стержня, на який надягаємо кільце».


Вхідні дані:

2

Вихідні дані:

1 - 2
1 - 3
2 - 3

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію, яка з послідовності додатних цілих чисел складає мінімальне і максимальне числа як у вихідних даних.


Вхідні дані:

2 0 509 23
45 0 14 8 1

Вихідні дані:

('2023509', '5092320')
('1014458', '8451410')

Розділ: Функції | Рівень складності: високий

  1. Напишіть функцію для перетворення цілого числа в десятковій системі числення в рядок в будь-якій системі числення. В першому рядку вводиться число в десятковій нотації, через пропуск вказується основа системи числення, в якій необхідно число представити.


Вхідні дані:

1981 16
23 3
43 2

Вихідні дані:

7BD
212
101011

Розділ: Функції | Рівень складності: високий

  1. У римській системі числення для позначення чисел використовуються наступні символи (праворуч записані числа, яким вони відповідають в десятковій системі числення):

I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000

Будемо використовувати варіант, в якому числа 4, 9, 40, 90, 400 і 900 записуються як віднімання від більшого числа меншого: IV, IX, XL, XC, CD і CM, відповідно. Напишіть функцію у програмі, яка переводить число з римської в десяткову систему числення. На вхід програми подається рядок, що містить число, закодоване в римській системі числення. Гарантується, що число менше 4000. Необхідно надрукувати рядок, що містить число в десятковій системі числення, відповідне введеному.


Вхідні дані:

MCMLXXXI
XX
IX

Вихідні дані:

1981
20
9

Розділ: Функції | Рівень складності: високий

  1. Напишіть програму, яка шифрує повідомлення з використанням шифру Цезаря. Шифр Цезаря полягає в заміні кожного літерного символу вхідного рядка на символ, що знаходиться на кілька позицій ліворуч або праворуч його в алфавіті. На першому рядку вказується зсув шифрування: ціле число. Додатне число відповідає зсуву праворуч. На другому рядку вказується непорожній рядок-фраза для шифрування. Результатом роботи програми має бути надрукована зашифрована послідовність. Нелітерні символи мають виводитись без змін і програма має зберігати регістр: великі літери після змін мають лишатись великими, маленькі літери після змін мають лишатись маленькими. Для розв’язування задачі напишіть дві функції: функцію валідації ключа шифрування і функцію шифрування шифром Цезаря.


Вхідні дані:

key: 13
plaintext: HELLO
key: 12
plaintext: world, say hello!
key: -2
plaintext: azy
key: 1 2

Вихідні дані:

ciphertext: URYYB
ciphertext: iadxp, emk tqxxa!
ciphertext: yxw
key invalid

Розділ: Функції | Рівень складності: високий

  1. Напишіть програму, яка шифрує повідомлення за допомогою шифру Віженера. Шифр Віженера є покращеним варіантом шифру Цезаря. Шифрування у ньому відбувається шляхом використання послідовності ключів (або ключового слова). Наприклад, якби сам Віженер хотів конфіденційно сказати комусь HELLO із використанням ключового слова, наприклад, ABC, він би зашифрував H за допомогою ключа 0 (тобто A), E - за допомогою ключа 1 (тобто B), а першу букву L - за допомогою ключа 2 (тобто C). На цьому етапі в нього б закінчились букви у ключовому слові, і тому він знову використав би частину ключового слова, щоб зашифрувати другу L ключем 0 (тобто A), а букву O - ключем 1 (тобто B). Отже, він написав би HELLO як HFNLP. Ключ шифру key має складатись виключно з літерних символів і застосовувати шифр Віженера потрібно виключно до літерних символів. Інші символи (цифри, спеціальні символи, пробіли, пунктуаційні знаки тощо) мають виводитись без змін. Для розв’язування задачі напишіть дві функції: функцію валідації ключа шифрування і функцію шифрування шифром Віженера.


Вхідні дані:

key: baz
plaintext: BaRFoo
key: a12

Вихідні дані:

ciphertext: CaQGon
key invalid

Розділ: Функції | Рівень складності: високий

  1. У кожної кредитної картки є номер, який надрукований на ній, а також інший номер, вбудований у магнітну стрічку із зворотного боку картки. Цей номер також зберігається у певній базі даних для того, щоб коли вашою карткою розраховуються за покупку, банк знав, з якого рахунку cписувати гроші. У світі багато людей з кредитними картками, і тому ці номери доволі великі: American Express використовує номери із 15 розрядів, MasterCard - з 16, Visa - з 13 або 16. Ці розряди - десяткові (від 0 до 9). Номери кредитних карт мають певну структуру. Номери карток American Express починаються з 34 чи 37; номери карт MasterCard починаються з 51, 52, 53, 54 чи 55 (формально, вони можуть починатись і з деяких інших чисел, але ми не звертатимемо на це уваги в межах нашої задачі); номери карт Visa починаються з 4. Також номери карт мають вбудовану у них контрольну суму, що обраховується за допомогою математичної формули. Тож яка це секретна формула? Більшість карток використовують алгоритм, створений Гансом Петером Луном з IBM (Алгоритм Луна ). Відповідно до цього алгоритму, ви можете перевірити, чи номер кредитної картки є синтаксично коректним, наступним чином. Рядки довжиною 1 або менше не є дійсними. Пропуски дозволені для введення, але їх необхідно видалити перед перевіркою. Усі інші нецифрові символи заборонені.

Приклад 1: дійсний номер кредитної картки
4539 1488 0343 6467
Перший крок алгоритму Луна - це подвоєння кожної другої цифри, починаючи справа:
4_3_ 1_8_ 0_4_ 6_6_
Якщо подвоєння числа є числом, що перевищує 9, необхідно відняти 9 від добутку.
Результати нашого подвоєння, розставлені на свої місця:
8569 2478 0383 3437
Далі необхідно підсумувати всі цифри:
8+5+6+9+2+4+7+8+0+3+8+3+3+4+3+7 = 80
Якщо сума націло ділиться на 10, то число дійсне. Цей номер дійсний!
Приклад 2: недійсний номер кредитної картки
8273 1232 7352 0569
Подвоєння кожної другої цифри, починаючи справа
7253 2262 5312 0539
Сума цифр
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
57 націло не ділиться на 10, тому це число недійсне.

Напишіть функцію(ї) для валідації номера кредитної картки за алгоритмом Луна і виведення приналежності картки для трьох компаній (American Express, MasterCard, Visa) як у вихідних даних. У разі некоректності номера або невідповідності переліченим компаніям, вивести повідомлення INVALID.


Вхідні дані:

4003600000000014
5105105105105100
378282246310005
4111111111111113

Вихідні дані:

Visa
MasterCard
American Express
INVALID

Розділ: Функції | Рівень складності: високий

  1. Реалізуйте програму, яка буде емулювати роботу з просторами імен. Необхідно реалізувати підтримку створення просторів імен і додавання в них змінних. У цьому завданні у кожного простору імен є унікальний текстовий ідентифікатор - його ім’я. Програмі на вхід подаються такі запити:

create <namespace> <parent> - створити новий простір імен з ім'ям <namespace> всередині простору <parent>

add <namespace> <var> - додати в простір <namespace> змінну <var>

get <namespace> <var> - отримати ім'я простору, з якого буде взята змінна <var> при запиті з простору <namespace>, або None, якщо такого простору не існує

Розглянемо набір запитів

add global a
create foo global
add foo b
create bar foo
add bar a

Структура просторів імен описана даними запитами буде еквівалентна структурі просторів імен, створеної при виконанні даного коду

a = 0
def foo():
  b = 1
  def bar():
    a = 2

В основному тілі програми ми оголошуємо змінну a, тим самим додаючи її в простір global. Далі ми оголошуємо функцію foo, що тягне за собою створення локального для неї простору імен всередині простору global. У нашому випадку, це описується командою create foo global. Далі ми оголошуємо всередині функції foo функцію bar, тим самим створюючи простір bar всередині простору foo, і додаємо в bar змінну a. Додамо запити get до наших запитів

get foo a
get foo c
get bar a
get bar b

Уявімо як це могло б виглядати в коді

a = 0
def foo ():
  b = 1
  get(a)
  get(c)
  def bar ():
    a = 2
    get(a)
    get(b)

Результатом запиту get буде ім’я простору, з якого буде взята потрібна змінна. Наприклад, результатом запиту get foo a буде global, тому що в просторі foo не оголошена змінна a, але в просторі global, всередині якого знаходиться простір foo, вона оголошена. Аналогічно, результатом запиту get bar b буде foo, а результатом роботи get bar a буде bar. Результатом get foo c буде None, тому що ні в просторі foo, ні в його зовнішньому просторі global не була оголошена змінна с.

Більш формально,

результатом роботи get <namespace> <var> є <namespace>, якщо в просторі <namespace> була оголошена змінна <var>

get <parent> <var> - результат запиту до простору, всередині якого було створено простір <namespace>, якщо змінна не була оголошена

None, якщо не існує <parent>, тобто, <namespace> - це global

У першому рядку дано число n (1 ≤ n ≤ 100) - кількість запитів. У кожному з наступних n рядків дано по одному запиту. Запити виконуються в порядку, в якому вони дані у вхідних даних. Імена простору імен і імена змінних являють собою рядки довжини не більше 10, що складаються з малих латинських букв. Для кожного запиту get виведіть в окремому рядку його результат.


Вхідні дані:

9
add global a
create foo global
add foo b
get foo a
get foo c
create bar foo
add bar a
get bar a
get bar b

Вихідні дані:

global
None
bar
foo

Розділ: Функції | Рівень складності: високий

2.8. Файли і модулі

У даному розділі розглядаються задачі, в яких передбачається робота з файлами і використання модулів.
  1. Напишіть програму, щоб отримати версію Python, яку ви використовуєте: рядок, що містить номер версії інтерпретатора Python плюс додаткову інформацію про номер збірки та використаний компілятор. Цей рядок відображається під час запуску інтерактивного інтерпретатора. Використайте модуль sys.


Вхідні дані:

Немає

Вихідні дані:

3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для виведення опису вбудованої функції Python. Імпортуйте модуль pydoc для розв’язування поставленої задачі. Для прикладу, роздрукуйте опис функції pow().


Вхідні дані:

Немає

Вихідні дані:

Equivalent to x**y (with two arguments) or x**y % z (with three arguments)

Some types, such as ints, are able to use a more efficient algorithm when
invoked using the three argument form.

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для друку інформації про модуль, наприклад, про math. Примітка. Спочатку модуль необхідно імпортувати.


Вхідні дані:

Немає

Вихідні дані:

Список методів модуля

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, щоб отримати назву, платформу та інформацію про випуск операційної системи. Використайте імпорт модулів platform і os.


Вхідні дані:

Немає

Вихідні дані:

nt
Windows
10

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, яка друкує значення системного часу. Використайте модуль time.


Вхідні дані:

Немає

Вихідні дані:

Fri Jul 26 19:02:02 2019

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, щоб відобразити поточні дату й час як у вихідних даних. Використайте модуль datetime.


Вхідні дані:

Немає

Вихідні дані:

2018-08-05 18:39:04

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, яка друкує поточне ім’я користувача в системі. Використайте модуль os.


Вхідні дані:

Немає

Вихідні дані:

user

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для друку календаря певного місяця у році. Використайте модуль calendar.


Вхідні дані:

2019
3

Вихідні дані:

     March 2019
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Розділ: Файли і модулі | Рівень складності: початковий

  1. Обчисліть n! і надрукуйте обчислене значення. Використайте модуль math.


Вхідні дані:

15

Вихідні дані:

1307674368000

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для обчислення найбільшого спільного дільника (GCD) з двох натуральних чисел. Використайте модуль math.


Вхідні дані:

144
64

Вихідні дані:

16

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму python, щоб отримати шлях і ім’я файла, який наразі виконується. Використайте модуль os.


Вхідні дані:

Немає

Вихідні дані:

C:\Python36\wc.py

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, яка створює список файлів з поточного каталогу, використовуючи символи підстановки. Використайте модуль glob.


Вхідні дані:

1*.*
??.py

Вихідні дані:

['1234.py']
['f1.py']

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для перевірки існування файла в поточному каталозі. Використайте модуль os.


Вхідні дані:

my.py
input.txt

Вихідні дані:

False
True

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для отримання списку усіх файлів і каталогів у поточному каталозі. Використайте модуль os.


Вхідні дані:

Немає

Вихідні дані:

Список файлів і каталогів в поточному каталозі

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, яка визначає обсяг об’єкта в байтах. Використайте модуль sys.


Вхідні дані:

Python

Вихідні дані:

55 bytes

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для друку характеристик числових типів Python. Використайте модуль os.


Вхідні дані:

Немає

Вихідні дані:

Значення числових типів

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для перемішування та друку введеної послідовності. Використайте модуль random.


Вхідні дані:

Yellow Pink Green Red Black White

Вихідні дані:

Pink Yellow White Green Black Red

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, щоб надрукувати на екрані вміст вказаного файла, розміщеного в поточному каталозі.


Вхідні дані:

Файл input.txt з вмістом
Python
Ruby
C++
C
Java

Вихідні дані:

Python
Ruby
C++
C
Java

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для підрахунку кількості кожного символу у текстовому файлі без врахування регістру літер, використавши модуль collections. Для гарного друку використайте модуль pprint.


Вхідні дані:

input.txt

Вихідні дані:

Counter({'\n': 4,
         'y': 2,
         'c': 2,
         '+': 2,
         'a': 2,
         'p': 1,
         't': 1,
         'h': 1,
         'o': 1,
         'n': 1,
         'r': 1,
         'u': 1,
         'b': 1,
         'j': 1,
         'v': 1})

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть функцію, яка друкує випадкове ціле число від n до m включно.


Вхідні дані:

1
1000

Вихідні дані:

338

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для розрахунку відстані між двома точками земної кулі (у прикладі обчислюється відстань між Пекіном і Києвом), використовуючи широту та довготу, які подані в десяткових градусах (дані візьміть із сайту dateandtime.info ). Використайте формулу для визначення відстані: відстань = 6371.032 × arccos(sin(x1) × sin(x2) + cos(x1) × cos(x2) × cos(y1 - y2)), де значення 6371,032 - це середній радіус Землі у кілометрах. Врахуйте, що тригонометричні функції Python імпортуються з модуля math і працюють з радіанами.


Вхідні дані:

Input coordinates of two points.
Starting latitude: 39.9075000
Ending longitude: 116.3972300
Starting latitude: 50.4546600
Ending longitude: 30.5238000

Вихідні дані:

The distance is 6449.78 km.

Розділ: Файли і модулі | Рівень складності: початковий

  1. Дано додатне дійсне число n. Виведіть його дробову і цілу частину. Використайте модуль math.


Вхідні дані:

7.9
5.8

Вихідні дані:

(0.9000000000000004, 7.0)
(0.7999999999999998, 5.0)

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму, яка форматує текст, показаний у вихідних даних, із шириною n. Використайте модуль textwrap.


Вхідні дані:

35

Вихідні дані:

Python is a widely used high-level,
general-purpose, interpreted,
dynamic programming language. Its
design philosophy emphasizes code
readability, and its syntax allows
programmers to express concepts in
fewer lines of code than possible
in languages such as C++ or Java.

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для зчитування файла рядок за рядком та зберігання рядків у списку.


Вхідні дані:

Файл input.txt з вмістом
Python
Ruby
C++
C
Java
GO

Вихідні дані:

['Python\n', 'Ruby\n', 'C++\n', 'C\n', 'Java\n', 'GO']

Розділ: Файли і модулі | Рівень складності: початковий

  1. Напишіть програму для підрахунку кількості рядків у текстовому файлі.


Вхідні дані:

Файл input.txt з вмістом
Python
Ruby
C++
C
Java
GO

Вихідні дані:

6

Розділ: Файли і модулі | Рівень складності: початковий

  1. У вхідному файлі записана один текстовий рядок, який може містити пропуски. Запишіть цей рядок в зворотному порядку у інший файл.


Вхідні дані:

Файл input.txt з вмістом
hello world

Вихідні дані:

Файл output.txt з вмістом
dlrow olleh

Розділ: Файли і модулі | Рівень складності: початковий

  1. У вхідному файлі записано два цілих числа, які можуть бути розділені пропусками і кінцями рядків. Виведіть у вихідний файл їх суму.


Вхідні дані:

Файл input.txt з вмістом
  2

 2

Вихідні дані:

Файл output.txt з вмістом
4

Розділ: Файли і модулі | Рівень складності: середній

  1. Запишіть рядки вхідного файла в зворотному порядку у інший файл. Останній рядок вхідного файлу обов’язково закінчується символом \n.


Вхідні дані:

Файл input.txt з вмістом
Python
Java
C++
C
Ruby

Вихідні дані:

Файл output.txt з вмістом
Ruby
C
C++
Java
Python

Розділ: Файли і модулі | Рівень складності: середній

  1. Запишіть увесь вміст вхідного файла в зворотному порядку у інший файл. Останній рядок вхідного файлу обов’язково закінчується символом \n.


Вхідні дані:

Файл input.txt з вмістом
Python
Java
C++
C
Ruby

Вихідні дані:

Файл output.txt з вмістом
ybuR
C
++C
avaJ
nohtyP

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для перевірки, чи містить введений рядок усі літери англійського алфавіту. Використайте модуль string, для отримання рядкових констант.


Вхідні дані:

The quick brown fox jumps over the lazy dog

Вихідні дані:

True

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму, яка відкриває вказаний текстовий файл, а потім відображає список всіх унікальних слів, знайдених у файлі.


Вхідні дані:

input.txt

Вихідні дані:

Список унікальних слів з файлу input.txt

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для обчислення найменшого спільного кратного (LCM) двох натуральних чисел. Використайте модуль fractions.


Вхідні дані:

15 17

Вихідні дані:

255

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для друку дати й часу на поточний момент у різних форматах як у вихідних даних. Використайте модулі time і datetime.


Вхідні дані:

Немає

Вихідні дані:

Current date and time: 2019-07-26 21:00:41.004061
Current year: 2019
Month of year: July
Week number of the year: 29
Weekday of the week: 5
Day of year: 207
Day of the month: 26
Day of week: Friday

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для сортування словника пар «будівля-висота» за значеннями і ключами (в порядку зростання і спадання). Використайте модуль operator.


Вхідні дані:

Немає

Вихідні дані:

[('Burj Khalifa', 828), ('Shanghai Tower', 632), ('Abraj Al Bait', 601)]
[('Abraj Al Bait', 601), ('Shanghai Tower', 632), ('Burj Khalifa', 828)]
[('Abraj Al Bait', 601), ('Burj Khalifa', 828), ('Shanghai Tower', 632)]
[('Shanghai Tower', 632), ('Burj Khalifa', 828), ('Abraj Al Bait', 601)]

Розділ: Файли і модулі | Рівень складності: середній

  1. Один з астрологів визначає щасливі і нещасливі дні так: він записує підряд число, номер місяця і рік. В отриманому числі додає всі цифри, в новому отриманому числі знову додає всі цифри і так далі, доки чергова сума цифр не стане однозначним числом. Це число і характеризує щасливість дня. Дата зберігається в форматі ррррммдд у файлі. Збережіть рядок, який містить одне число, що визначає щасливість дати, у інший файл.


Вхідні дані:

Файл input.txt з вмістом
20000101

Вихідні дані:

Файл output.txt з вмістом
4

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для перевірки правильності пароля, введеного користувачем. Пароль має задовільняти таким вимогам:

Не менше 1 букви з проміжку [a-z] та 1 букви з порміжку [A-Z].
Принаймні 1 число з проміжку [0-9].
Не менше 1 символу з [$#@].
Мінімальна довжина 8 символів.
Максимальна довжина 12 символів.

Використайте модуль re.


Вхідні дані:

12$FGasEr9
qwerty
45Da#0

Вихідні дані:

Valid
Invalid
Invalid

Розділ: Файли і модулі | Рівень складності: середній

  1. За правилами числа округлюються до найближчого цілого числа, а якщо дробова частина числа дорівнює 0.5, то число округляється вгору. Дано невід’ємне число x, яке необхідно округлити за цими правилами. Зверніть увагу, що функція round() не підходить для цього завдання! Використайте функції ceil() і floor() з математичного модуля math.


Вхідні дані:

3.4
10.6

Вихідні дані:

3
11

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для отримання списку лише файлів в поточному каталозі.


Вхідні дані:

Немає

Вихідні дані:

Список файлів в поточному каталозі

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму, щоб отримати аргументи командного рядка (ім’я скрипту, кількість аргументів, аргументи), передані сценарію. Використайте модуль sys.


Вхідні дані:

C:\Python36>python f1.py one two 3 four 5 6

Вихідні дані:

Name/path of the script: f1.py
Number of arguments: 7
Arguments list: ['f1.py', 'one', 'two', '3', 'four', '5', '6']

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для зчитування випадкового рядка з текстового файла.


Вхідні дані:

Файл input.txt з вмістом
Python
Ruby
C++
C
Java
GO

Вихідні дані:

Java

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для друку випадкової вибірки слів із текстового файла. Кількість слів має бути також випадковою в межах кількості рядків у файлі. Слова зберігаються у файлі на окремих рядках.


Вхідні дані:

Файл input.txt з вмістом
Python
Ruby
C++
C
Java

Вихідні дані:

Java
Python
C++

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для розрахунку кількості днів між двома датами, використовуючи модуль datetime.


Вхідні дані:

2018
8
1
2019
3
4

Вихідні дані:

215

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для сортування файлів певного типу за датою в поточному каталозі. Тип файла вводиться у форматі як у вхідних даних.


Вхідні дані:

*.py

Вихідні дані:

exercises.py
namespace.py
some_module.py
1234.py
locales_print.py
bottle.py

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть функцію для перевірки правильності введеної дати. Функція приймає 3 аргументи - день, місяць та рік і повертає True, якщо така дата є в календарі, і False в протилежному випадку. Використайте модуль datetime і конструкцію try/except.


Вхідні дані:

04
03
2029
33
11
2019

Вихідні дані:

True
False

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму, щоб отримати дату/час створення та зміни файла в поточному каталозі. Використайте модулі os і time.


Вхідні дані:

input.txt

Вихідні дані:

Last modified: Fri Jul 26 16:56:10 2019
Created: Tue Nov 13 17:05:54 2018

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для генерації всіх перестановок списку як у вихідних даних. Використайте модуль itertools.


Вхідні дані:

1 4 5

Вихідні дані:

[(1, 4, 5), (1, 5, 4), (4, 1, 5), (4, 5, 1), (5, 1, 4), (5, 4, 1)]

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму, яка обчислює і друкує час виконання (у секундах) для деякого фрагменту коду на Python, наприклад, для сумування чисел від 1 до n. Використайте модуль time.


Вхідні дані:

1000000

Вихідні дані:

Required time to calculate sum of 1 to 1000000 (sum = 500000500000) is:    0.044 seconds.

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть функцію для читання перших n рядків файлу.


Вхідні дані:

input.txt
2

Вихідні дані:

['Python\n', 'Ruby\n']

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть функцію для додавання до текстового файла рядка в кінець файла і виведення вмісту файла.


Вхідні дані:

input.txt
GO

Вихідні дані:

Python
Ruby
C++
C
Java
GO

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для зчитування останніх n рядків файла.


Вхідні дані:

input.txt
3

Вихідні дані:

C
Java
GO

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть функцію для підрахунку частоти слів у файлі.


Вхідні дані:

input.txt

Вихідні дані:

{'Python': 1, 'Ruby': 1, 'C++': 1, 'C': 1, 'Java': 1, 'GO': 1}

Розділ: Файли і модулі | Рівень складності: середній

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


Вхідні дані:

input.txt

Вихідні дані:

45

Розділ: Файли і модулі | Рівень складності: середній

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


Вхідні дані:

input.txt

Вихідні дані:

7.78

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для запису послідовності у текстовий файл і зчитування її з файлу.


Вхідні дані:

Python Ruby C++ C Java Go JavaScript

Вихідні дані:

Python
Ruby
C++
C
Java
Go
JavaScript

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть програму для копіювання вмісту тектового файлу в інший текстовий файл.


Вхідні дані:

input.txt
output.txt

Вихідні дані:

Немає

Розділ: Файли і модулі | Рівень складності: середній

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


Вхідні дані:

input.txt
46221213
input.txt
12345678

Вихідні дані:

found
not found

Розділ: Файли і модулі | Рівень складності: середній

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


Вхідні дані:

input.txt

Вихідні дані:

1 : Python
2 : Ruby
3 : C++
4 : C
5 : Java
6 : GO

Розділ: Файли і модулі | Рівень складності: середній

  1. Визначте, чи є у вхідному файлі символ n. Запишіть слово YES або NO у вихідний файл. Вхідний файл може бути дуже великим, тому зчитувати файл потрібно посимвольно.


Вхідні дані:

Файл input.txt з вмістом
Cимвол n, який шукається

Вихідні дані:

Файл output.txt з вмістом YES чи NO

Розділ: Файли і модулі | Рівень складності: середній

  1. Дано відомості про найпопулярніші виші серед абітурієнтів за кількістю заяв від вступників. Напишіть функцію, яка записує цю інформацію порядково у текстовий файл у форматі «назва вишу, кількість заяв від вступників». Спочатку користувач вказує ім’я файла і кількість вишів n, після чого вводяться дані як у вхідних даних.


Вхідні дані:

rating.txt
3
Kyiv National Taras Shevchenko University
42354
Lviv Ivan Franko National University
37380
National Technical University of Ukraine "Igor Sikorsky Kiev Polytechnic Institute"
36371

Вихідні дані:

Файл rating.txt з вмістом
Kyiv National Taras Shevchenko University, 42354
Lviv Ivan Franko National University, 37380
National Technical University of Ukraine "Igor Sikorsky Kiev Polytechnic Institute", 36371

Розділ: Файли і модулі | Рівень складності: середній

  1. Напишіть функцію, яка обробляє винятки IOError, які виникають при відкритті файла.


Вхідні дані:

input.txt
123456.py

Вихідні дані:

OK
Done
Caught the I/O error
Done

Розділ: Файли і модулі | Рівень складності: середній

  1. Ціна товару позначена в гривнях з точністю до копійок, тобто дійсним числом з двома цифрами після десяткової крапки. Запишіть у дві цілочисельні змінні вартість товару у вигляді цілого числа гривень і цілого числа копійок і виведіть їх. При вирішенні цього завдання не можна користуватися умовними інструкціями і циклами. Примітка. При роботі з числами з плаваючою крапкою (тобто float) в результаті обчислень можна отримати не зовсім той результат, на який очікуємо, наприклад

number = 0.1 + 0.1 + 0.1
print(number)  # 0.30000000000000004

Тому для розв’язування поданої задачі використайте вбудований у Python модуль decimal.


Вхідні дані:

24.45
3.5
102.55

Вихідні дані:

24 45
3 50
102 55

Розділ: Файли і модулі | Рівень складності: високий

  1. Зчитайте рядки у вхідному файлі і запишіть у вихідний файл ті рядки, які є найдовшими у вхідному файлі, не змінюючи їх порядок.


Вхідні дані:

Файл input.txt з вмістом
Three
Thirty eight
Seven
Six
Thirty three

Вихідні дані:

Файл output.txt з вмістом
Thirty eight
Thirty three

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть функцію для зчитування рядків з текстового файла і видалення у зчитаних рядках символів нового рядка \n.


Вхідні дані:

input.txt

Вихідні дані:

['Python', 'Ruby', 'C++', 'C', 'Java', 'GO']

Розділ: Файли і модулі | Рівень складності: високий

  1. Створіть дві функції: перша генерує n випадкових цифр для лотереї з діапазону від 0 до 9 включно, а друга функція отримує згенеровані цифри і записує у файл на окремих рядках.


Вхідні дані:

lottery.txt
5

Вихідні дані:

Файл lottery.txt з вмістом
3
5
1
3
7

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму, яка визначає розмір файла в поточному каталозі і друкує значення в байтах. Якщо файла із вказаним ім’ям немає, генерується виняток.


Вхідні дані:

f1.py
input.txt
14.py

Вихідні дані:

f1.py 39737 Bytes
input.txt 6 Bytes
TypeError: not file

Розділ: Файли і модулі | Рівень складності: високий

  1. Кодування довжин послідовностей - це базовий алгоритм стиснення даних. Реалізуйте найпростіший його варіант. На вхід алгоритму подається рядок, що містить символи латинського алфавіту. Цей рядок розбивається на групи однакових символів, що йдуть підряд («серії»). Кожна серія характеризується періодичним символом і кількістю повторень. Саме ця інформація і записується в код: спочатку пишеться довжина серії повторюваних символів, потім сам символ. У серій довжиною в один символ кількість повторень будемо опускати. Наприклад, розглянемо рядок aaabccccCCaB. Розкладемо його на серії: aaa b cccc CC a B. Після чого закодуємо серії і отримаємо підсумковий рядок, який і будемо вважати результатом роботи алгоритму: 3ab4c2CaB. Для розв’язування задачі використайте модуль itertools.


Вхідні дані:

aaabccccCCaB

Вихідні дані:

3ab4c2CaB

Розділ: Файли і модулі | Рівень складності: високий

  1. У текстовому файлі порядково записані адреси електронної пошти у форматі user@company.com. Напишіть функцію, яка друкує імена користувача і компанії вказаної адреси електронної пошти. Використайте модуль re.


Вхідні дані:

input.txt

Вихідні дані:

[('sddret1996', 'gmail'), ('protuas', 'yahoo'), ('gendalf15', 'gmail')]

Розділ: Файли і модулі | Рівень складності: високий

  1. У текстовому файлі записаний текст, в якому зустрічаються адреси електронної пошти у форматі user@company.com. Напишіть функцію, яка шукає усі адреси електронної пошти у тексті файла. Використайте модуль re.


Вхідні дані:

input.txt

Вихідні дані:

{'alex99@gmail.com', 'gethamg19@gmail.com', 'neera@gmail.com'}

Розділ: Файли і модулі | Рівень складності: високий

  1. Місяцю з n днів відповідає лінійна таблиця елементів, в якій робочий день позначено 1, а неробочий - 0. Скласти алгоритм, який підраховує: кількість тижнів в місяці; кількість робочих днів в кожному з тижнів місяця. Примітка. Тижнем будемо називати довільну не порожню множину одиниць між двома послідовними нулями або обмежену нулем праворуч (якщо місяць починається з робочого дня), або обмежену нулем ліворуч (якщо місяць не закінчується робочим днем). У вхідному файлі перший рядок містить ціле n - кількість днів, а в наступному рядку n чисел, які визначають робочі і неробочі дні (1 ≤ n ≤ 1000000). У вихідному файлі у першому рядку виведіть одне число k, яке визначає кількість тижнів, в наступному рядку k чисел, які визначають кількість робочих днів.


Вхідні дані:

Файл input.txt з вмістом
5
1 1 0 1 0

Вихідні дані:

Файл output.txt з вмістом
2
2 1

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть функцію, яка записує у текстовий файл рядок випадкових цілих чисел. Кожне випадкове число повинно бути в діапазоні від 1 до 1000. Користувач вказує n - кількість випадкових чисел, які файл буде зберігати.


Вхідні дані:

output.txt
3

Вихідні дані:

Файл output.txt має містити 3 випадкові числа з діапазону від 1 до 1000 включно

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для гри «Вгадай число». Комп’ютер випадковим чином «загадує» число із певного, наперед заданого, діапазону, а користувач має його відгадати.


Вхідні дані:

Guess the number: 45
Guess the number: 89

Вихідні дані:

My number is more
Congratulations! Number guessed!

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для розрахунку вашого віку в поточному році для введеної дати народження. Використайте модуль datetime.


Вхідні дані:

1981
4
3

Вихідні дані:

38

Розділ: Файли і модулі | Рівень складності: високий

  1. У вхідному файлі записаний текст. Словом вважається послідовність непробільних символів, що йдуть підряд, слова розділені одним або більшим числом пропусків або символами кінця рядка. Визначте, скільки різних слів міститься в цьому тексті.


Вхідні дані:

Вхідний файл input.txt з вмістом
She sells sea shells on the sea shore;
The shells that she sells are sea shells I'm sure.
So if she sells sea shells on the sea shore,
I'm sure that the shells are sea shore shells.

Вихідні дані:

19

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для знаходження у текстовому файлі найдовшого слова.


Вхідні дані:

Вхідний файл input.txt з вмістом
Python
Ruby
C++
C
Java
GO

Вихідні дані:

Python

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для створення паролів, яка дозволяє створювати k паролів довжини n з цифр та малих і велих англійських букв. На вхід програми дані вводяться в порядку n і k.


Вхідні дані:

5
3

Вихідні дані:

KdSsv
5u8nF
YQjG2

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для визначення різниці часу між двома датами: вказаною (минулою чи майбутньою) і поточною. Використайте модуль datetime. Дата вказується у двох рядках: у першому - Рік Місяць День, у другому - Години Хвилини Секунди. Усі значення вводяться через пропуск як у вхідних даних.


Вхідні дані:

2020 7 26
22 04 00

Вихідні дані:

365 days, 23 hours, 59 minutes, 54 seconds

Розділ: Файли і модулі | Рівень складності: високий

  1. Дано два текстові файли: в першому записані в рядках назви мов програмування, а у іншому на відповідних рядках - рейтинги цих мов у відсотках. Напишіть програму для об’єднання кожного рядка з першого файлу з відповідним рядком у другому файлі. Об’єднанані рядки необхідно вивести на екран і, водночас, в такому вигляді як у вихідних даних, записати у третій текстовий файл.


Вхідні дані:

input.txt
output.txt
rating.txt

Вихідні дані:

Python 10.9
Ruby 2.9
C++ 6.5
C 1.6
Java 17.8
GO 1.8

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для сортування даних про студентів, які записані у рядках файла через кому і пропуск у форматі: ім’я (рядок), вік (ціле число), зріст (дійсне число, два символи після десяткової крапки). Виконайте сортування за зростом в порядку зростання. Використайте модуль operator.


Вхідні дані:

input.txt

Вихідні дані:

[('Alex', '17', '179.50'), ('Tom', '19', '180.10'), ('John', '20', '181.00')]

Розділ: Файли і модулі | Рівень складності: високий

  1. Відомості про учня, записані у файлі input.txt, складаються з його прізвища і назви класу (рік навчання і буква без пропуску), а також оцінок, отриманих за семестр, у форматі: Прізвище Клас Оцінки. Число оцінок в різних класах може бути різним. Запишіть у файл output.txt прізвища тих учнів, середній бал яких більше, ніж 6.


Вхідні дані:

Вхідний файл input.txt з вмістом
Barnes 9A 4 5 7 2 3 2
Davidson 10A 7 7 5
Clifford 11B 11 10 8 9 7
Ramacey 8A 5 6 6 5
White 7A 8 5 5 8 9
Porter 11A 11 8
Dean 10B 3 4 5 4 5
Gate 11A 6 5 3 4 3 5

Вихідні дані:

Вихідний файл output.txt з вмістом
Davidson
Clifford
White
Porter
 

Розділ: Файли і модулі | Рівень складності: високий

  1. У вхідному файлі записаний текст. Словом вважається послідовність непробільних символів, що йдуть підряд, слова розділені одним або більшим числом пропусків або символами кінця рядка. Для кожного слова з цього тексту підрахуйте, скільки разів воно зустрічалося в цьому тексті раніше.


Вхідні дані:

Вхідний файл input.txt з вмістом
She sells sea shells on the sea shore;
The shells that she sells are sea shells I'm sure.
So if she sells sea shells on the sea shore,
I'm sure that the shells are sea shore shells.

Вихідні дані:

0 0 0 0 0 0 1 0 0 1 0 0 1 0 2 2 0 0 0 0 1 2 3 3 1 1 4 0 1 0 1 2 4 1 5 0 0

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть функцію, яка вибирає випадкове слово з переліку слів із словника SOWPODS (sowpods.txt ). Кожен рядок у файлі містить одне слово.


Вхідні дані:

sowpods.txt

Вихідні дані:

MACAHUBA

Розділ: Файли і модулі | Рівень складності: високий

  1. Деякий банк хоче впровадити систему управління рахунками клієнтів, що підтримує такі операції:

Поповнення рахунку клієнта.
Зняття грошей з рахунку.
Запит залишку коштів на рахунку.
Переказ грошей між рахунками клієнтів.
Нарахування відсотків всім клієнтам.

Вам необхідно реалізувати таку систему. Клієнти банку ідентифікуються іменами (унікальний рядок, що не містить пропусків). Спочатку у банку немає жодного клієнта. Як тільки для клієнта проводиться операція поповнення рахунку, зняття або переказу грошей, йому заводиться рахунок з нульовим балансом. Всі подальші операції проводяться тільки з цим рахунком. Сума на рахунку може бути як додатною, так і від’ємною, при цьому завжди є цілим числом. Вхідний файл містить послідовність операцій. Можливі такі операції:

DEPOSIT name sum - зарахувати суму sum на рахунок клієнта name. Якщо у клієнта немає рахунку, то рахунок створюється.

WITHDRAW name sum - зняти кошти sum з рахунку клієнта name. Якщо у клієнта немає рахунку, то рахунок створюється.

BALANCE name - дізнатися залишок коштів на рахунку клієнта name.

TRANSFER name1 name2 sum - перевести суму sum з рахунку клієнта name1 на рахунок клієнта name2. Якщо у будь-якого клієнта немає рахунку, то йому створюється рахунок.

INCOME p - нарахувати всім клієнтам, у яких відкриті рахунки, p% від суми на рахунку. Відсотки нараховуються тільки клієнтам з додатним залишком на рахунку, якщо у клієнта залишок від’ємний, то його рахунок не змінюється. Після нарахування відсотків сума на рахунку залишається цілою, тобто нараховується тільки ціле число грошових одиниць. Дробова частина нарахованих відсотків відкидається.

Для кожного запиту BALANCE програма повинна вивести залишок на рахунку даного клієнта. Якщо ж у клієнта із запитуваним ім’ям не відкритий рахунок в банку, виведіть ERROR.


Вхідні дані:

Вхідний файл input.txt з вмістом
DEPOSIT Sasha 100
INCOME 5
BALANCE Sasha
TRANSFER Sasha Elena 50
WITHDRAW Elena 100
BALANCE Elena
BALANCE Iryna

Вихідні дані:

105
-50
ERROR

Розділ: Файли і модулі | Рівень складності: високий

  1. Як відомо, в США президент обирається не прямим голосуванням, а шляхом дворівневого голосування. Спочатку проводяться вибори в кожному штаті і визначається переможець виборів в даному штаті. Потім проводяться державні вибори: на цих виборах кожен штат має певну кількість голосів - число вибірників від цього штату. На практиці, всі виборці від штату голосують відповідно до результатів голосування в межах штату, тобто на заключній стадії виборів в голосуванні беруть участь штати, що мають різне число голосів. Вам відомо за кого проголосував кожен штат і скільки голосів було віддано даними штатом. Підведіть підсумки виборів: для кожного з учасника голосування визначте число відданих за нього голосів. Кожен рядок вхідного файлу містить прізвище кандидата, за якого віддають голоси виборці цього штату, потім через пропуск йде кількість голосів, які віддали за цього кандидата. Виведіть прізвища всіх кандидатів в лексикографічному порядку, потім, через пропуск, кількість відданих за них голосів.


Вхідні дані:

Вхідний файл input.txt з текстом
Biden 10
Biden 5
Trump 9
Trump 8
Biden 1

Вихідні дані:

Biden 16
Trump 17

Розділ: Файли і модулі | Рівень складності: високий

  1. Дано базу даних про продажі деякого інтернет-магазину. Кожен рядок вхідного файлу є записом виду Покупець Товар Кількість, де Покупець - ім’я покупця (рядок без пропусків), Товар - назва товару (рядок без пропусків), Кількість - кількість придбаних одиниць товару. Створіть список всіх покупців, а для кожного покупця підрахуйте кількість придбаних ним одиниць кожного виду товарів. Вводяться відомості про покупки в зазначеному форматі як у вхідних даних. Виведіть список всіх покупців в лексикографічному порядку, після імені кожного покупця виведіть двокрапка, потім виведіть список назв всіх придбаних даними покупцем товарів в лексикографічному порядку, після назви кожного товару виведіть кількість одиниць товару, придбаних даними покупцем. Інформація про кожен товар виводиться в окремому рядку.


Вхідні дані:

Вхідний файл input.txt з текстом
Sasha paper 10
Iryna pens 5
Sasha marker 3
Sasha paper 7
Iryna envelope 20
Sasha envelope 5

Вихідні дані:

Iryna:
envelope 20
pens 5
Sasha:
envelope 5
marker 3
paper 17

Розділ: Файли і модулі | Рівень складності: високий

  1. Дано текст у файлі. Виведіть всі слова, що зустрічаються в тексті, по одному на кожен рядок. Слова повинні бути відсортовані за спаданням їх кількості появи в тексті, а при однаковій частоті появи - в лексикографічному порядку. Примітка. Після того, як ви створите словник усіх слів, вам захочеться впорядкувати його по частоті слова. Бажаного можна домогтися, якщо створити список, елементами якого будуть кортежі з двох елементів: частота зустрічальності слова і саме слово. Наприклад, [(2, 'hi'), (1, 'what'), (3, 'is')]. Тоді стандартне сортування буде сортувати список кортежів, при цьому кортежі порівнюються по першому елементу, а якщо ці елементи рівні - то по другому.


Вхідні дані:

Вхідний файл input.txt з текстом
hi
hi
what is your name
my name is bond
james bond
my name is damme
van damme
claude van damme
jean claude van damme

Вихідні дані:

damme
is
name
van
bond
claude
hi
my
james
jean
what
your

Розділ: Файли і модулі | Рівень складності: високий

  1. «Камінь, ножиці, папір» - популярна гра руками, відома в багатьох країнах і часто використовується для жеребкування. Напишіть програму, яка визначає переможця у грі комп’ютера та людини, за наступним алгоритмом:

1. Комп’ютер «загадує» ціле випадкове число в діапазоні від 0 до 2.
2. Гравець робить свій вибір, уводячи число 0, 1 або 2.
3. Виводиться повідомлення про вибір комп’ютера та вибір гравця.
4. За правилами гри визначається переможець.
5. Виводиться повідомлення про перемогу або нічию.

Вхідні дані:

0 stone
1 scissors
2 paper
0-1-2 -> 2
Сontinue? (y/n) y
0-1-2 -> 1
Сontinue? (y/n) n

Вихідні дані:

Computer chose paper
draw
Computer chose paper
you won!
Thanks for game!

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму, яка зчитує вміст текстового файлу, підраховує кількість появи кожного слова (неперервний рядок символів) у файлі і записує в інший файл як у вихідних даних.


Вхідні дані:

Текстовий файл input.txt з довільним текстом

Вихідні дані:

Текстовий файл output.txt з подібним змістом
you 2
don't 1
know 1
about 2
me 1
without 2

Розділ: Файли і модулі | Рівень складності: високий

  1. Вам запропонували створити програму, яка допоможе у перевірці робіт теоретичного іспиту з правил дорожнього руху. Іспит складається з 20 варіантів запитань, в кожному з яких відповідями є лише одне значення із списку: A, B, C, D. Програма повинна прочитати відповіді студента на кожне з 20 питань з текстового файлу (відповіді розташовуються на окремих рядках). Після того, як відповіді були прочитані з файлу, програма повинна відображати повідомлення про те, чи студент пройшов іспит чи не пройшов його (необхідно правильно відповісти на 15 з 20 питань, щоб скласти іспит). Після цього має відображатися загальна кількість правильних відповідей на запитання, кількість неправильних відповідей та список із зазначенням номерів запитань, на які відповідь була неправильною.


Вхідні дані:

input1.txt
input2.txt

Вихідні дані:

You failed
Correctly answerd question is 7
Incorrectly answerd question is 13
Wrong answers 2 3 5 8 9 10 11 12 13 14 17 18 19
You passed
Correctly answerd question is 17
Incorrectly answerd question is 3
Wrong answers 7 13 19

Розділ: Файли і модулі | Рівень складності: високий

  1. В олімпіаді з інформатики брало участь кілька осіб. Переможцем олімпіади стає людина, яка набрала найбільше балів. Переможці визначаються незалежно по кожному класу. Визначте кількість балів, яку набрав переможець в кожному класі. Гарантується, що в кожному класі був хоча б один учасник. Інформація про результати олімпіади записана у файлі, кожен рядок якого має вигляд: прізвище ім’я клас бал. Прізвище та ім’я - текстові рядки, що не містять пропусків. Клас - одне з трьох чисел 9, 10, 11. Бал - ціле число від 0 до 100. У інший файл запишіть три числа в одному рядку через пропуск: бали переможця олімпіади з 9 класу, з 10 класу, з 11 класу.


Вхідні дані:

Файл input.txt з вмістом
Albert Einstein 9 90
Ernest Rutherford 10 91
Lev Landau 11 92
Enrico Fermi 9 93

Вихідні дані:

Файл output.txt з вмістом
93 91 92

Розділ: Файли і модулі | Рівень складності: високий

  1. В олімпіаді з інформатики брало участь кілька осіб. Гарантується, що в кожному класі був хоча б один учасник. Визначте і запишіть у файл середні бали учасників олімпіади в 9 класі, в 10 класі, в 11 класі. Інформація про результати олімпіади записана у файлі, кожен рядок якого має вигляд: прізвище ім’я клас бал. Прізвище та ім’я - текстові рядки, що не містять пропусків. Клас - одне з трьох чисел 9, 10, 11. Бал - ціле число від 0 до 100.


Вхідні дані:

Файл input.txt з вмістом
Albert Einstein 9 90
Ernest Rutherford 10 91
Lev Landau 11 92
Enrico Fermi 9 93

Вихідні дані:

Файл output.txt з вмістом
91.5 91.0 92.0

Розділ: Файли і модулі | Рівень складності: високий

  1. В олімпіаді з інформатики брало участь кілька осіб. Визначте кількість школярів, які стали переможцями в кожному класі. Переможцями оголошуються всі, хто набрав найбільшу кількість балів по даному класу. Гарантується, що в кожному класі був хоча б один учасник. Запишіть у файл три числа в одному рядку через пропуск: кількість переможців олімпіади з 9 класу, з 10 класу, з 11 класу.


Вхідні дані:

Файл input.txt з вмістом
Albert Einstein 9 90
Niels Bohr 9 93
Ernest Rutherford 10 91
Lev Landau 11 92
Enrico Fermi 9 93
Ivan Puluj 10 91

Вихідні дані:

Файл output.txt з вмістом
2 2 1

Розділ: Файли і модулі | Рівень складності: високий

  1. В олімпіаді з інформатики брало участь кілька осіб. Залік в олімпіаді проводиться без поділу на класи. Запишіть у файл прізвище та ім’я переможця олімпіади. Якщо таких декілька - виведіть тільки їх кількість.


Вхідні дані:

Файл input.txt з вмістом
Albert Einstein 9 92
Niels Bohr 9 93
Ernest Rutherford 10 95
Lev Landau 11 92
Enrico Fermi 9 95
Ivan Puluj 10 91

Вихідні дані:

Файл output.txt з вмістом
2

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму, яка зчитує вміст двох текстових файлів і друкує списки слів, які задовільняють наступним умовам: які з’являються в обох файлах; які з’являються у першому файлі, але не в другому; які з’являються у другому файлі, але не у першому; які з’являються в першому або другому файлі, але не в обох одночасно.


Вхідні дані:

input.txt
output.txt

Вихідні дані:

In both files: список слів, що з’являються в обох файлах
Appear in the first file but not the second: список слів, які з'являються у першому файлі, але не в другому
Appear in the second file but not the first file: список слів, які з'являються у другому файлі, але не у першому
Appear in either the first or second file but not both: список слів, які з'являються в першому або другому файлі, але не в обох одночасно

Розділ: Файли і модулі | Рівень складності: високий

  1. Дано файл з таблицею у форматі TSV (значення, розділені табуляцією) з інформацією про зріст школярів різних класів. Напишіть програму, яка прочитає цей файл і підрахує для кожного класу середній зріст учня. Файл складається з набору рядків, кожна з яких представляє собою три поля: Клас Прізвище Зріст. Клас позначається тільки числом. Літери в назві класу не використовуються. Номер класу може бути від 1 до 11 включно. У тексті прізвища немає пропусків, а в якості зросту використовується ціле число, але при підрахунку середнього потрібно обчислити значення у вигляді дійсного числа. Виводити інформацію про середнє значення зросту слід в порядку зростання номера класу (для класів з першого по одинадцятий). Якщо про якийсь клас немає інформації, необхідно вивести навпроти нього «тире» як у вихідних даних.


Вхідні дані:

Вхідний файл input.txt з таблицею у форматі TSV (значення, розділені табуляцією) з трьома полями: Клас Прізвище Зріст

Вихідні дані:

1 124.75
2 129.33
3 134.44
4 139.00
5 144.88
6 155.75
7 164.00
8 165.90
9 170.20
10 170.50

Розділ: Файли і модулі | Рівень складності: високий

  1. Зашифруйте текст у текстовому файлі шифром Цезаря, при цьому символи першого рядка файла повинні циклічно зміщуватися на 1, другого рядка - на 2, третього рядка - на три і т. д. У кожному рядку містяться різні символи, які можуть бути розділені пропусками. Шифрувати потрібно тільки великі і малі букви латинського алфавіту. Програма повинна записати шифровані рядки у інший файл.


Вхідні дані:

Файл input.txt з вмістом
Success consists of going from failure to failure without loss of enthusiasm
You miss 100% of the shots you do not take
It is not the strongest of the species that survives, nor the most intelligent, but the one most responsive to change
Fall seven times and stand up eight
There are no shortcuts to any place worth going

Вихідні дані:

Файл output.txt з вмістом
Tvddftt dpotjtut pg hpjoh gspn gbjmvsf up gbjmvsf xjuipvu mptt pg fouivtjbtn
Aqw okuu 100% qh vjg ujqvu aqw fq pqv vcmg
Lw lv qrw wkh vwurqjhvw ri wkh vshflhv wkdw vxuylyhv, qru wkh prvw lqwhooljhqw, exw wkh rqh prvw uhvsrqvlyh wr fkdqjh
Jepp wizir xmqiw erh wxerh yt imklx
Ymjwj fwj st xmtwyhzyx yt fsd uqfhj btwym ltnsl

Розділ: Файли і модулі | Рівень складності: високий

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


Вхідні дані:

Файл input.txt з текстом

Вихідні дані:

a: ask
b: be
c: come call
d: do
f: find feel
g: get go give
h: have
k: know
l: look leave
m: make
s: say see seem
t: take think tell
u: use
w: want work

Розділ: Файли і модулі | Рівень складності: високий

  1. При обробці тексту часто потрібно «почистити» текст перед тим, як робити з ним якісь інші дії. Наприклад, якщо ви хочете підрахувати кількість входжень слів в тексті, для спрощення завдання перед початком підрахунку можна подбати про те, щоб весь текст був записаний в нижньому регістрі (або у верхньому) і з нього були вилучені всі знаки пунктуації. Також можна розбити текст на послідовності слів. Виконайте таку нормалізацію тексту на прикладі тексту з першої частини першого розділу книги «Дон Кіхот» Мігеля де Сервантеса Сааведри, який можна звантажити із проекту gutenberg.org . Для виконання завдання, спочатку завантажте текстовий файл, що містить текст книги, далі скопіюйте із завантаженого файла перший розділ у новий файл з назвою quixote.txt. Прочитайте дані із текстового файла quixote.txt і потурбуйтеся про те, щоб всі символи були приведені до одного регістру, видаліть всі знаки пунктуації і запишіть слова по одному на рядок у інший текстовий файл з ім’ям quixote_clean.txt.


Вхідні дані:

Вхідний файл quixote.txt з початковим текстом

Вихідні дані:

Вихідний файл quixote_clean.txt з нормалізованим текстом

Розділ: Файли і модулі | Рівень складності: високий

  1. Необхідно підрахувати кількість входжень слів в тексті першої частини першого розділу книги «Дон Кіхот» Мігеля де Сервантеса Сааведри, який можна звантажити із проекту gutenberg.org . Для спрощення завдання, скористайтеся чистим файлом quixote_clean.txt з попереднього завдання. Використайте словник для підрахунку входжень кожного слова, а потім виведіть слова і кількості входжень (5 пар), які зустрічаються в тексті найчастіше і найменшу кількість разів у форматі як у вихідних даних.


Вхідні дані:

Вхідний файл quixote_clean.txt з нормалізованим текстом

Вихідні дані:

Most common words:
('of', 88)
('and', 79)
('the', 70)
('he', 68)
('to', 65)

Least common words:
('treats', 1)
('pursuits', 1)
('donquixote', 1)
('manchain', 1)
('desire', 1)

Розділ: Файли і модулі | Рівень складності: високий

  1. У вхідному файлі задано 5 цілих чисел як у вхідних даних. Зчитайте ці числа з файлу, і запишіть один рядок - результат аналізу у інший файл, згідно наступних умов:

якщо однакові 5 чисел, то вивести «Impossible», інакше
якщо однакові 4, то вивести «Four of a Kind», інакше
якщо однакові 3 и 2, то вивести «Full House», інакше
якщо є 5 послідовних, то вивести «Straight», інакше
якщо однакові 3, то вивести «Three of a Kind», інакше
якщо однакові 2 і 2, то вивести «Two Pairs», інакше
якщо однакові 2, то вивести «One Pair», інакше
вивести «Nothing».

Вхідні дані:

1 3 9 3 2
1 5 5 4 4
10 11 12 13 1

Вихідні дані:

One Pair
Two Pairs
Nothing

Розділ: Файли і модулі | Рівень складності: високий

  1. Аналіз файлів - невід’ємна частина роботи з ними. Іноді виникає необхідність підрахувати кількість рядків або слів в тексті. З цим завданням ефективно справляється команда wc в Linux. Звернувшись до man-сторінки утиліти wc, ви побачите, що ключі командного рядка вирішують наступні завдання. З ключем -c утиліта підраховує байти у файлі, а з ключем -m вона підраховує символи (деякі символи Unicode можуть складатися з двох і більше байтів). Ключі -l і -w, відповідно, обчислюють кількість рядків і кільість слів. Крім того, якщо файл заданий, утиліта читає і обробляє файл, а при його відсутності, використовується stdin (стандартне введення в консолі). Напишіть свою версію утиліти wc, щоб реалізувати окремо як підрахунок байтів, символів, рядків і слів при читанні з файлів і стандартного введення. Формат використання утиліти в консолі наступний: python утиліта.py файл ключі або python утиліта.py ключі. У випадку використання стандратного введення, щоб завершити введення, використовуйте сполучення клавіш Ctrl+D або Ctrl+Z.


Вхідні дані:

C:\Python36>python wc.py input.txt -l -w –c
C:\Python36>python wc.py -l -w -c
Python
Ruby
^Z

Вихідні дані:

File has 1386 characters
File has 279 words
File has 93 lines
File has 12 characters
File has 2 words
File has 2 lines

Розділ: Файли і модулі | Рівень складності: високий

  1. Напишіть програму для гри «Вгадай слово». Програма зчитує із файла формату json слова і їх означення і пропонує користувачу прочитати означення, щоб відгадати слово. Користувач може обрати 4 варіанти: відгадати літеру, записати слово повністю, використати підказку (відкриється одна літера) або вийти з програми. Якщо не обирати вихід з програми, програма виконується до відгадування всього слова і в кінці виводить кількість використаних підказок.


Демонстрація роботи програми:

Гра «Відгадай слово»
Гра «Відгадай слово»

Розділ: Файли і модулі | Рівень складності: високий

2.9. ООП

У даному розділі розглядаються задачі, які розв’язуються методами об’єктно-орієнтованого програмування (ООП) - методу програмування, заснованого на поданні програми у вигляді сукупності взаємодіючих об’єктів, кожен з яких є екземпляром певного класу, а класи є членами певної ієрархії наслідування.
  1. Напишіть клас з назвою Circle для обчислення площі круга за введеним радіусом. Клас Circle має містити метод, який обчислює площу круга.


Вхідні дані:

3

Вихідні дані:

28.26

Розділ: ООП | Рівень складності: початковий

  1. Напишіть клас під назвою Rectangle для визначення площі прямокутника за введеними довжиною та шириною сторін. Клас прямокутника має містити метод, який обчислює площу прямокутника.


Вхідні дані:

2
3

Вихідні дані:

6

Розділ: ООП | Рівень складності: початковий

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


Вхідні дані:

8

Вихідні дані:

200.96
50.24

Розділ: ООП | Рівень складності: початковий

  1. Напишіть клас, який має як мінімум два методи: перший - отримати рядок з вводу консолі, другий - друкувати рядок у верхньому регістрі.


Вхідні дані:

python

Вихідні дані:

PYTHON

Розділ: ООП | Рівень складності: початковий

  1. Змоделюйте роботу онлайн-магазину.

    1. Напишіть клас з ім’ям Shop(). Метод __init__() класу Shop() повинен містити два атрибути: shop_name і store_type. Створіть метод describe_shop(), який виводить два атрибути, і метод open_shop(), який виводить повідомлення про те, що онлайн-магазин відкритий. Створіть на основі класу екземпляр з ім’ям store. Виведіть два атрибути окремо, потім викличте обидва методи.

    2. Створіть ще один екземпляр класу, викличте для нього метод describe_shop().

    3. Додайте атрибут number_of_units зі значенням за замовчуванням 0; він представляє кількість видів товару у магазині. Виведіть значення number_of_units, а потім змініть number_of_units і виведіть знову для store.

    4. Додайте метод з ім’ям set_number_of_units(), що дозволяє задати кількість видів товару. Викличте метод з новим числом, знову виведіть значення. Додайте метод з ім’ям increment_number_of_units(), який збільшує кількість видів товару на задану величину. Викличте цей метод для store.

    5. Напишіть клас Discount(), що успадковує від класу Shop(). Додайте атрибут з ім’ям discount_products для зберігання списку товарів, на які встановлена знижка. Напишіть метод get_discounts_ptoducts, який виводить цей список. Створіть екземпляр store_discount і викличте цей метод.

    6. Додатково. Збережіть код класу Shop() у модулі. Створіть окремий файл, що імпортує клас Shop(). Створіть екземпляр all_store і викличте один з методів Shop(), щоб перевірити, що команда import працює вірно.

У вихідних даних наведений можливий варіант результатів виконання завдань.


Вхідні дані:

Немає

Вихідні дані:

a)
Rozetka
ishop
Rozetka
ishop
3000000
The store is open.
b)
ITbox
ishop
20000
c)
3000000
3000001
d)
Rozetka
ishop
3900000
Rozetka
ishop
3901200
e)
motherboards
solid state drives
monitors

Розділ: ООП | Рівень складності: середній

  1. Напишіть клас Bank для опису простих операції з вашим банківським рахунком: покласти на рахунок, зняти з рахунку, переглянути рахунок. При створенні екземпляру класу, екземпляр отримує атрибут __balance з певним значенням. Клас повинен містити методи для додавання коштів на рахунок і знімання з рахунку, за умови, що на рахунку достатньо коштів.


Вхідні дані:

Немає

Вихідні дані:

I open a bank account
I deposit to your account:
5000
On the account: 5000.00
I withdraw from your bank account:
4200
On the account: 800.00
I open a bank account
I deposit to your account:
1000
On the account: 1000.00
I withdraw from your bank account:
1200
Error: not enough money
On the account: 1000.00

Розділ: ООП | Рівень складності: середній

  1. Змоделюйте облік користувачів на сайті.

    1. Створіть клас з ім’ям User. Створіть два атрибути first_name і last_name, а потім ще кілька атрибутів, які зазвичай зберігаються у профілі користувача. Напишіть метод describe_user який виводить повне ім’я користувача. Створіть ще один метод greeting_user() для виведення персонального вітання для користувача. Викличте обидва методи для користувача.

    2. Додайте атрибут login_attempts (спроби входу в обліковий запис) у клас User. Напишіть метод increment_login_attempts(), що збільшує значення login_attempts на 1. Напишіть інший метод з ім’ям reset_login_attempts(), обнуляє значення login_attempts. Створіть екземпляр класу User і викличте increment_login_attempts() кілька разів. Виведіть значення login_attempts, щоб переконатися у тому, що значення було змінено правильно, а потім викличте reset_login_attempts(). Знову виведіть login_attempts і переконайтеся у тому, що значення обнулилося.

    3. Адміністратор - особливий різновид користувача. Напишіть клас з ім’ям Admin, що успадковує від класу User. Додайте атрибут privileges для зберігання списку рядків виду «Allowed to add message», «Allowed to delete users», «Allowed to ban users» і т. д. Напишіть метод show_privileges() для виведення набору привілеїв адміністратора. Створіть екземпляр класу Admin і викличте метод.

    4. Напишіть клас Privileges. Клас повинен містити всього один атрибут privileges зі списком, який треба забрати із класу Admin. Водночас, необхідно перемістити метод show_privileges() у клас Privileges із класу Admin. Створіть екземпляр priv як атрибут класу Admin. Створіть новий екземпляр класу Admin і використайте метод для виведення списку привілеїв.

    5. Додатково. Збережіть клас User в одному модулі, а класи Privileges і Admin у іншому модулі. В окремому файлі створіть екземпляр класу Admin і викличте метод show_privileges(), щоб перевірити, що все працює вірно.

У вихідних даних наведений можливий варіант результатів виконання завдань.


Вхідні дані:

Немає

Вихідні дані:

a)
Bilbo Baggins
Hello, Bilbo Baggins
b)
3
0
c), d)
Allowed to add message
Allowed to delete users
Allowed to ban users

Розділ: ООП | Рівень складності: середній

  1. Напишіть клас Coin, який описує монету, яку можна підкидати. При створенні екземпляру класу, екземпляр отримує атрибут __sideup зі значенням heads або tails. У класі визначте метод toss, який випадково визначає результат підкидання монети - орел чи решка. Створіть екземпляр класу і виведіть на екран n підкидань монети.


Вхідні дані:

3

Вихідні дані:

Tails
Heads
Tails

Розділ: ООП | Рівень складності: середній

  1. Напишіть клас Car, який надає для створених екземплярів такі атрибути даних автомобіля: марку виготовлення автомобіля, модель автомобіля, рік автомобіля, швидкість (початкове значення 0). Клас також повинен мати наступні методи: accelerate (метод повинен щоразу додавати 5 до значення атрибуту даних про швидкість), brake (метод повинен віднімати 5 від значення атрибута даних швидкості кожного разу, коли він викликається), get_speed (метод повинен повернути поточну швидкість). Створіть екземпляр класу Car і викличте метод accelerate п’ять разів. Після кожного виклику методу accelerate отримайте поточну швидкість автомобіля і надрукуйте її значення. Потім викличте метод brake п’ять разів. Після кожного виклику методу brake отримайте поточну швидкість автомобіля та надрукуйте її значення.


Вхідні дані:

Немає

Вихідні дані:

Characteristics of the car:
Citroen c3 2018
Car accelerates:
Current speed: 5
Current speed: 10
Current speed: 15
Current speed: 20
Current speed: 25
Car slows down:
Current speed: 20
Current speed: 15
Current speed: 10
Current speed: 5
Current speed: 0
Car stopped

Розділ: ООП | Рівень складності: середній

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

class MoneyBox:
    def __init__(self, capacity):
        # Конструктор з аргументом - місткість скарбнички

    def can_add(self, v):
        # True, якщо можна додати v монет, False інакше

    def add(self, v):
        # Покласти v монет в скарбничку

При створенні скарбнички, число монет в ній дорівнює 0. Врахуйте, що метод add(self, v) буде викликатися лише тоді, якщо can_add(self, v) повертає True. Дані вводиться користувачем в такому порядку: n - місткість скарбнички, m - скільки монет поклали в скарбничку, k - кількість монет, які хочуть покласти в скарбничку. Результатом має бути одне з двох значень: True чи False.


Вхідні дані:

10
6
3
10
6
5

Вихідні дані:

True
False

Розділ: ООП | Рівень складності: середній

  1. Напишіть клас Dog, який має три атрибути класу: mammal (ссавець), nature (характер) і breed (порода), та два атрибути ексземпляра: name (кличка) і age (вік). Створіть екземпляри трьох нових собак, кожна з яких різного віку. Визначте у класі Dog метод для виведення значень атрибутів екземпляру - імені та віку конкретної собаки. За потреби, додайте кілька інших методів, які визначають поведінку собаки (подавання голосу тощо). Напишіть кілька класів, які унаслідуються від батьківського класу Dog, що описують конкретні породи собак. Визначте для цих класів атрибути nature і breed відповідно, включіть у класи по одному методу, що визначає поведінку конкретної породи собаки. Створіть батьківський клас Pets, що створює список ваших домашніх улюбленців. У підсумку, надрукуйте інформацію про ваших домашніх тварин, на зразок, як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

I have 3 dogs.
Toby is 4. Kind Golden Retriever breed dog.
Charlie is 6. Tireless Jack Russell Terrier breed dog.
Rocky is 7. Obedient ordinary breed dog.
And they're all mammals, of course.

Розділ: ООП | Рівень складності: високий

  1. Дано послідовність цілих чисел. Необхідно її обробити і вивести на екран суму першої п’ятірки чисел із цієї послідовності, потім суму другої п’ятірки, і т. д. Але послідовність не дається відразу загалом. З плином часу до вас надходять її послідовні частини. Наприклад, спочатку перші три елементи, потім наступні шість, потім наступні два і т. д. Реалізуйте клас Buffer, який буде накопичувати в собі елементи послідовності і виводити суму п’ятірок послідовних елементів у міру їх накопичення. Однією з вимог до класу є те, що він не повинен зберігати в собі більше елементів, ніж йому дійсно необхідно, тобто, він не повинен зберігати елементи, які вже увійшли в п’ятірку, для якої була виведена сума. Клас повинен мати наступний вигляд

class Buffer:
    def __init__(self):
        # конструктор без аргументів
    
    def add(self, *a):
        # додати наступну частину послідовності

    def get_current_part(self):
        # повернути збережені в поточний момент часу елементи послідовності в порядку, в якому вони були додані

Зверніть увагу, що під час виконання методу add виводити суму п’ятірок може знадобитися кілька разів до тих пір, поки в буфері не залишиться менше п’яти елементів.


Вхідні дані:

1 2 3
4 5 6
7 8 9 10
1 1 1 1 1 1 1 1 1 1 1

Вихідні дані:

[1, 2, 3]
15
[6]
40
[]
5
5
[1]

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас-виняток, на основі вбудованого в Python класу ValueError(). Клас буде представляти перевірку певного імені на основі його довжини. Якщо довжина введеного імені є меншою 10, то має генеруватися виняток як у вихідних даних. У інших випадках нічого не виводиться.


Вхідні дані:

Eyjafjallajökul
Etna

Вихідні дані:

 
NameTooShortError: Etna

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас Animal, який при створенні екземпляру надає йому атрибут виду тварини species. Клас має містити метод, який виводить інформацію про вид тварини, і метод, який виводить характерний звук для даного виду тварини. Створіть два класи Dog і Cat, які успадковуються від класу Animal (є підкласами для Animal). У кожному з підкласів реалізуйте виклик конструктора надкласу з передачею йому назви виду тварини. Також, у підкласах реалізуйте методи, які перевизначають метод надкласу для відтворення характерного звуку для конкретного виду тварини. Визначте окрему функцію show_animal_info, яка приймає об’єкт (екземпляр класу) як аргумент і викликає його методи show_species і make_sound, якщо це тварина, а інакше - виводиться відповідне повідомлення як у вихідних даних.


Вхідні дані:

Немає

Вихідні дані:

I'm an - ordinary animal
Grrr!
I'm an - dog
Woof! Woof!
I'm an - cat
Meow!
Book this is not an animal!

Розділ: ООП | Рівень складності: високий

  1. Визначте спеціальний клас винятку, який приймає рядок повідомлення про помилку як атрибут. Випробуйте роботу класу на винятку «ділення на нуль», використайте конструкцію try/except як у вихідних даних.


Вхідні дані:

8
4
3
0

Вихідні дані:

2.0
OK
Done
division by zero
Done

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас для реалізації функціоналу вбудованої функції pow(x, n).


Вхідні дані:

2
-3
2
6
81
0

Вихідні дані:

0.125
64
1

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас для перетворення десяткового числа в число в римській системі числення.


Вхідні дані:

111
99
25

Вихідні дані:

XCIX
CXI
XXV

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас для перетворення числа в римській системі числення у десяткове число.


Вхідні дані:

MMCMLXXVI
LLL
IX

Вихідні дані:

2976
150
9

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас, який визначає правильність розстановки рядка дужок (, ), {, }, [ та ]. Ці дужки повинні бути розташованими у правильному порядку, наприклад порядок () і () [] {} правильний, але [), ({[)] і {{{ є неправильними порядками.


Вхідні дані:

(){}[]
()[{)}
()

Вихідні дані:

True
False
True

Розділ: ООП | Рівень складності: високий

  1. Напишіть клас, щоб отримати всі можливі унікальні підмножини зі списку цілих чисел.


Вхідні дані:

1 2 3

Вихідні дані:

[[], [3], [2], [2, 3], [1], [1, 3], [1, 2], [1, 2, 3]]

Розділ: ООП | Рівень складності: високий

3. Поради і трюки Python

У таблиці наведені кілька корисних порад і трюків Python, які можна використати при розв’язуванні задач.
Таблиця "Поради і трюки Python"
# Порада або трюк Код Результат Розділи

1

Зміна двох значень змінних
 
 
 

x, y = 15, 30
print(x, y)
x, y = y, x
print(x, y)
15 30
30 15

Змінні і типи даних

2

Множинне присвоювання за умови меншої кількості змінних, порівняно із кількістю значень

a, *b, c = 'Hello', 2, 0, 2, 9, 'year!'
print(a)
print(b)
print(c)
Hello
[2, 0, 2, 9]
year!

Змінні і типи даних, Списки

3

«Перевертання рядка»
 

s = 'Amore, Roma.'
print(s[::-1])
.amoR ,eromA

Робота з рядками

4

Друк n рядків
 
 
 

n = 3
s = 'Go!'
print(s * n)
Go!Go!Go!

Робота з рядками

5

Введення декількох цілочисельних значень в одному рядку через пропуск і доступ до їхніх значень

a, b, c = map(int, input().split())
print(a)
print(b)
print(c)
1 8 5
1
8
5

Списки

6

Об’єднання списків різної довжини без обходу елементів у циклі

data = [[1, 2, 3], [4, 5], [6], [7, 8, 9]]
print(sum(data, []))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Списки

7

Друк елементів списку без обходу елементів в ньому

items = [1, 10, 7, 4, 5, 9]
print(*items)
1 10 7 4 5 9

Списки

8

Отримання першого найчастішого елемента числового списку

data = [3, 3, 3, 4, 2, 2, 3, 1, 4, 4, 4]
print(max(data, key = data.count))
3

Списки

9

Зберігання усіх n значень списку в n змінних
 

a = [1, 2, 3]
x, y, z = a
print(x, y, z)
1 2 3

Списки

10

Доступ до елементів з однаковими індексами двох списків, однакових за довжиною
 
 

one = ['Black Mirror', 'Bandersnatch', 'Aquaman', 'Glass', 'Bird Box']
two = [7.5, 7.5, 8.6, 6.7]
for x, y in zip(one, two):
    print(x, y)
Black Mirror 7.5
Bandersnatch 7.5
Aquaman 8.6
Glass 6.7

Списки

11

Включення списків
 
 
 
 
 

#list = [expression for value in collection if condition]
even_squares = [x * x for x in range(10) if not x % 2]
print(even_squares)
[0, 4, 16, 36, 64]

Списки

12

Сортування списку за зростанням
 
 

data = [6, 0, 3, 5, 2, 8]
data.sort()
print(data)
[0, 2, 3, 5, 6, 8]

Списки

13

Сортування списку за спаданням
 
 

data = [6, 0, 3, 5, 2, 8]
data.sort(reverse=True)
print(data)
[8, 6, 5, 3, 2, 0]

Списки

14

Сортування цілочисельних елементів списку

numbers = [5, 4, 9, 26, 1, 0, 12]
print(sorted(numbers, key=int))
[0, 1, 4, 5, 9, 12, 26]

Списки

15

Способи виведення елементів списку в рядок
 
 
 

data = [1, 'teacher', 'developer', 'python']
print(' '.join(str(i) for i in data))
print(*data, sep=' ')
1 teacher developer python
1 teacher developer python

Списки

16

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

programmers = ['James Gosling' ,'Bjarne Stroustrup', 'Larry Wall', 'Dennis Ritchie']
print(sorted(sorted(programmers), key=str.lower))
['Bjarne Stroustrup', 'Dennis Ritchie', 'James Gosling', 'Larry Wall']

Списки

17

Сортування рядків як елементів списку за довжиною рядків
 
 
 
 

programmers = ['James Gosling' ,'Bjarne Stroustrup', 'Larry Wall', 'Dennis Ritchie']
print(sorted(sorted(programmers), key=len))
['Larry Wall', 'James Gosling', 'Dennis Ritchie', 'Bjarne Stroustrup']

Списки

18

Сортування рядків як елементів списку (прізвищ за алфавітом)
 
 
 
 

programmers = ['James Gosling' ,'Bjarne Stroustrup', 'Larry Wall', 'Dennis Ritchie']
print(sorted(programmers, key=lambda name: name.split()[-1].lower()))
['James Gosling', 'Dennis Ritchie', 'Bjarne Stroustrup', 'Larry Wall']

Списки, Функції

19

Створення єдиного рядка з усіх елементів списку, які є рядками

s = ['My', 'name', 'is', 'Sasha']
print(' '.join(s))
My name is Sasha

Списки

20

Створення єдиного рядка з усіх елементів списку, серед яких є числові дані

s = ['I\'m', 38, 'years', 'old']
print(' '.join(map(str, s)))
I'm 39 years old

Списки

21

Генерування кортежів з двох елементів (індексу елемента і самого елемента) для колекцій (рядків, списків, словників)

rocket = [3, 2, 1, '0', 'Start!']
for i, value in enumerate(rocket):
    print(i, ':', value)
0 : 3
1 : 2
2 : 1
3 : 0
4 : Start!

Списки

22

Генерування кортежів з двох елементів (індексу елемента і самого елемента) для колекцій (рядків, списків, словників), починаючи з конкретного значення індексу

status = ['Newbie', 'Peeked', 'Activist', 'Frequently', 'Soul of the company', 'Living here', 'Veteran', 'Legend']
for i, value in enumerate(status, 1):
    print(i, value)
1 Newbie
2 Peeked
3 Activist
4 Frequently
5 Soul of the company
6 Living here
7 Veteran
8 Legend

Списки

23

Видалення повторюваних елементів зі списку і зберігання елементів, що залишилися, у рядок

data = [3, 3, 2, 2, 3, 1]
unique = set(data)
print(' '.join(map(str, unique)))
1 2 3

Списки, Множини

24

Сортування по довільним елементам вкладених списків з використанням функції
 

lang = [['Python', 1990], ['Java', 1995],['Ruby', 1993],['C++', 1979]]
def sort_key(row):
    return row[1]
lang.sort(key=sort_key)
print(lang)
[['C++', 1979], ['Python', 1990], ['Ruby', 1993], ['Java', 1995]]

Списки, Функції

25

Повертання функцією декількох значень
 
 

def x():
    return 1, 2, 3, 4
a, b, c, d = x()
print(a, b, c, d)
1 2 3 4

Функції

26

«Видобування» аргументів функції
 
 
 
 
 

def myfunc(x, y, z):
    print(x, y, z)
tuple_vec = (1, 0, 1)
dict_vec = {'x': 1, 'y': 0, 'z': 1}
myfunc(*tuple_vec)
myfunc(**dict_vec)
1 0 1
1 0 1

Словники, Кортежі, Функції

27

Створення словників з ключових слів та їх значень
 
 
 
 
 

capital = dict(Germany='Berlin', Spain='Madrid', Ukraine='Kyiv', year=2019)
print(capital)
{'Germany': 'Berlin', 'Spain': 'Madrid', 'Ukraine': 'Kyiv', 'year': 2019}

Словники

28

Створення словника з двох пов’язаних послідовностей
 
 
 
 

games = ['quests', 'logic', 'simulators', 'strategies']
downloads = (1023, 456, 177, 2051)
print(dict(zip(games, downloads)))
{'quests': 1023, 'logic': 456, 'simulators': 177, 'strategies': 2051}

Списки і кортежі, Словники

29

Об’єднання двох словників
 
 
 

x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}
z = {**x, **y}
print(z)
{'a': 1, 'b': 3, 'c': 4}

Словники

30

Включення словників
 
 
 
 
 
 

m = {'A' + str(x): x for x in range(10)}
print(m)
{'A0': 0, 'A1': 1, 'A2': 2, 'A3': 3, 'A4': 4, 'A5': 5, 'A6': 6, 'A7': 7, 'A8': 8, 'A9': 9}

Словники

31

Виведення значень за замовчуванням для відсутнього ключа у словнику
 
 
 

currency = {'British': 'pound', 'Japan': 'yen', 'United States': 'dollar',}
print(currency.get('Swiss'))
print(currency.get('Swiss', 'franc'))
None
franc

Словники

32

Сортування пар «ключ-значення» словника за зростанням його ключів

d = {2: 3, 1: 89, 4: 5, 3: 0}
print(dict(sorted(d.items())))
{1: 89, 2: 3, 3: 0, 4: 5}

Словники

33

Сортування пар «ключ-значення» словника за зростанням його значень
 

lang = {'Python': 1990, 'Java': 1995, 'Ruby': 1993, 'C++': 1979}
print(sorted(lang.items(), key=lambda x: x[1]))
[('C++', 1979), ('Python', 1990), ('Ruby', 1993), ('Java', 1995)]

Словники, Функції

34

Сортування ключів словника за зростанням його значень
 

fruits = {'apple': 40, 'cherry': 35, 'grape': 50, 'mango': 20,}
print(sorted(fruits, key=fruits.get))
['mango', 'cherry', 'apple', 'grape']

Списки, Словники

35

Сортування списку кортежів за останнім елементом кортежу
 
 
 
 
 

imdb = [('Avengers: Endgame', 8.7), ('Aladdin', 7.4), ('Toy Story 4', 8.2), ('Captain Marvel', 7.0)]
print(sorted(imdb, key=lambda last: last[-1]))
[('Captain Marvel', 7.0), ('Aladdin', 7.4), ('Toy Story 4', 8.2), ('Avengers: Endgame', 8.7)]

Списки і кортежі, Функції

Додаток A: Завантаження і встановлення Python

A.1. для Windows

Для встановлення Python, виконайте наступні дії:

Для операційної системи Windows XP остання підтримувана версія Python 3.4.3.
  1. З’ясуйте розрядність вашої операційної системи.

  2. Перейдіть на сайт https://www.python.org/downloads/ .

  3. Оберіть версію Python.

  4. Завантажте файл з розширенням .exe відповідної розрядності.

  5. Встановіть Python:

    1. відзначте рекомендований параметр Install launcher for all users

    2. не забудьте встановити прапорець Add Python 3.x to PATH (це полегшить правильне налаштування системи)

    3. оберіть варіант налаштування установки Customize installation

    4. вкажіть каталог установки C:\PythonX (де X - номер версії)

Встановлення Python 3.9 (64-bit) для Windows
Встановлення Python 3.9 (64-bit) для Windows

Перевіримо, чи Python успішно був встановлений на комп’ютер.

Для цього натисніть сполучення клавіш Win+R на клавіатурі, введіть команду cmd і натисніть OK. У консольному вікні, що з’явилося, введіть команду python --version і натисніть Enter:

> python --version
Python 3.9.0

Якщо ви отримали схожий результат, то Python відповідної версії успішно встановлений у вашій системі.

A.2. для Linux Ubuntu

У Linux-системи Python вже включений за замовчуванням. Перевіримо встановлену версію мови. Натисніть сполучення клавіш Ctrl+Alt+T на клавіатурі для виклику термінального вікна, введіть наступну команду і перегляньте результати її виконання:

$ python3 --version
Python 3.8.2

Якщо необхідно встановити іншу версію, наприклад, Python 3.9, виконайте в термінальному вікні наступні команди:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.9

Для запуску в термінальному сеансі інтерактивного режиму конкретної версії інтерпретатора, наприклад, Python 3.9, введіть команду:

python3.9

Додаток B: Налаштування середовища програмування

B.1. IDLE

Після встановлення Python у системі Windows інтерпретатор Python з’явиться у списку програм кнопки Пуск. Один з елементів у групі програм має назву IDLE - це інтегроване середовище, яке відразу готове для роботи (більшість налаштувань вже виконано за замовчуванням).

Для встановлення IDLE у Linux Ubuntu для конкретної версії Python 3 слід виконати команду, на зразок:

sudo apt install idle-python3.9
Для запуску IDLE через термінал Linux Ubuntu використовуйте команду, на зразок idle-python3.9.
Інтегроване середовище IDLE
Інтегроване середовище IDLE у Linux Ubuntu: інтерактивний режим інтерпретатора і робота з файлами

B.2. Notepad++

Завантажте текстовий редактор з офіційного сайту Notepad++ і встановіть програму стандартним способом. Виконайте початкові налаштування для вашої версії інтерпретатора Python, переглянувши анімацію.

Notepad++ як IDE для Python у Windows
Notepad++ як IDE для Python у Windows

Для запуску ваших програм використовуйте команду Плагіни  NppExec  Execute…​ або клавішу F6.

B.3. Visual Studio Code

Завантажте IDE з офіційного сайту Visual Studio Code і встановіть стандартним способом для вашої операційної системи. Для зручного запуску коду на Python у Visual Studio Code можна встановити розширення, представлені в анімації.

Visual Studio Code для Python у Windows
Visual Studio Code для Python у Windows

Для запуску ваших програм використовуйте сполучення клавіш Ctrl+Alt+N.

B.4. PyScripter

Завантажте IDE із офіційного сайту PyScripter (оберіть розрядність, що відповідає розрядності інтерпретатора Python, встановленого на вашому комп’ютері) і встановіть програму. Виконайте початкові налаштування, переглянувши анімацію.

PyScripter для Python у Windows
PyScripter для Python у Windows

Для запуску ваших програм використовуйте сполучення клавіш Ctrl+F9.

B.5. Wing IDE 101

Завантажте IDE із офіційного сайту Wing IDE 101 і встановіть програму стандартним способом для вашої операційної системи. Виконайте початкові налаштування, переглянувши анімацію.

Wing IDE 101 для Python у Windows
Wing IDE 101 для Python у Windows

Для запуску програм використовуйте сполучення клавіш Ctrl+Alt+V.

B.6. Geany

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

Geany для Python у Windows
Geany для Python у Windows

Якщо ви використовуєте Linux Ubuntu, відкрийте вікно терміналу сполученням клавіш Ctrl+Alt+T і виконайте послідовно команди для встановлення Geany:

sudo add-apt-repository ppa:geany-dev/ppa
sudo apt update
sudo apt install geany

Для запуску редактора Geany, в термінальному вікні виконайте команду

geany

і вкажіть для Geany встановлену на комп’ютері версію Python, як показано в анімації.

Geany для Python у Linux Ubuntu
Geany для Python у Linux Ubuntu

Для запуску програм використовуйте клавішу F5.

B.7. PyCharm

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

PyCharm для Python у Windows
PyCharm для Python у Windows

Додаток C: Довідкові таблиці

C.1. Зарезервовані слова Python

Таблиця "Зарезервовані слова Python"

False

class

finally

is

return

None

continue

for

lambda

try

True

def

from

nonlocal

while

and

del

global

not

with

as

elif

if

or

yield

assert

else

import

pass

break

C.2. Пріоритет операторів

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

(вирази...), [вирази...], {ключ: значення...}, {вирази...}

Вираз в дужках, створення або включення списку/словника/множини

x[індекс], x[індекс:індекс], x(аргументи…​), x.атрибут

Індекс, зріз, виклик функції, посилання на атрибут

**

Піднесення до степеня

+x, -x, ~x

Знаки «+» і «-», бітове НІ

*, /, //, %

Множення, ділення з плаваючою крапкою, цілочисельне ділення, остача від ділення

+, -

Додавання, віднімання

<<, >>

Бітові зсуви

&

Бітове І

|

Бітове АБО

^

Бітове виключення АБО

in, not in, is, is not, <, <=, >, >=, !=, ==

Перевірка на приналежність і рівність

not x

Булеве (логічне) НІ

and

Булеве (логічне) І

or

Булеве (логічне) АБО

if ... else

Умовний вираз

lambda

Лямбда-вираз

C.3. Таблиці істинності

Оператор and
Вираз Результат

True and True

True

True and False

False

False and True

False

False and False

False

Оператор or
Вираз Результат

True or True

True

True or False

True

False or True

True

False or False

False

Оператор not
Вираз Результат

not True

False

not False

True

C.4. Стандартні функції Python

Розширений список стандартних функцій Python і приклади їх використання можна переглянути на офіційному сайті документації Python або на programiz.com .
Таблиця "Стандартні функції Python"
Виклик функції Опис

help(х)

Документація об’єкта x

dir(obj)

Список імен/атрибутів об’єкта obj в алфавітному порядку

type(x)

Тип об’єкта x

id(x)

Ідентифікатор (адреса в пам’яті) об’єкта x

print(x)

Виведення x на екран або запис у текстовий файл

open(file, mode)

Відкриття файла file в одному із режимів mode і повертання відповідного файлового об’єкта

input(x)

Зчитування і повертання рядка x вхідних даних

x.format()

Відформатоване подання рядка x, яке контролюється специфікатором формату

hash(x)

Значення хеш-функції об’єкта x

int(x)

Перетворення об’єкта x в ціле число

float(x)

Перетворення об’єкта x в дійсне (дробове) число

str(x)

Перетворення об’єкта x в рядок

chr(х)

Повертає символ (у вигляді рядка), чия позиція коду для Юнікод дорівнює зазначеному цілому х. Аргумент повинен розташовуватися в межах від 0 до 1,114,111 (0x10FFFF), в іншому випадку порушується виняток ValueError

ord(х)

Повертає для зазначеного Юнікод-символу ціле число, що представляє його позицію коду

round(x)

Найближче ціле число до числа x

abs(x)

Абсолютне значення x

pow(a, b)

Піднесення числа a до степеня b

min(х)

Мінімальний елемент в ітерованому x

max(х)

Максимальний елемент в ітерованому x

sum(х)

Сума елементів в ітерованому x

len(х)

Довжина ітерованого x (кількість елементів в x)

sorted(х)

Новий ітерований об’єкт, що містить елементи x у відсортованому порядку

reversed(х)

Новий ітерований об’єкт, що містить елементи x в зворотному порядку

tuple(х)

Новий кортеж tuple, створений з елементів x

list(х)

Новий список list, створений з елементів x

set(х)

Нова множина set, створена із елементів x

range(i, j)

Новий ітерований об’єкт, який містить числа від i до j-1 (стандартне значення i - 0)

C.5. Модулі Python

Перед використанням функцій модуля необхідно його імпортувати таким чином: import назва_модуля .
Для використання функцій модуля необхідно використовувати такий запис: назва_модуля.назва_функції .

C.5.1. math

Таблиця "Математичні функції і константи"
Виклик функції/константи Опис/значення

math.sin(x)

Синус x (представлений у радіанах)

math.cos(x)

Косинус x (представлений у радіанах)

math.radians(x)

Перетворення x (в градусах) у радіани

math.degrees(x)

Перетворення x (в радіанах) у градуси

math.exp(x)

Експонентна функція x (ex)

math.sqrt(x)

Квадратний корінь x

math.factorial(x)

Факторіал цілого числа x

math.e

2.718281828459045

math.pi

3.141592653589793

C.5.2. string

Таблиця "Атрибути та їх значення модуля string"
Атрибут Значення

ascii_letters

'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

ascii_lowercase

'abcdefghijklmnopqrstuvwxyz'

ascii_uppercase

'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

digits

'0123456789'

hexdigits

'0123456789abcdefABCDEF'

octdigits

'01234567'

punctuation

'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

printable

'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%!\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

whitespace

' \t\n\r\x0b\x0c'

C.5.3. random

Таблиця "Функції для генерування псевдовипадкових чисел"
Виклик функції Опис

random.randrange(start, stop, step)

Випадкове ціле число із діапазону від start до stop

random.randint(A, B)

Випадкове ціле число N (A <= N <= B)

random.choice(sequence)

Випадковий елемент непорожньої послідовності sequence

random.sample(population, k)

Cписок довжиною k із послідовності population

random.random()

Випадкове число від 0 до 1

C.6. Методи

C.6.1. Рядкові величини

Розширений список методів рядкових величин і приклади їх використання можна переглянути на programiz.com .
Таблиця "Методи рядків"
Метод Призначення

s.capitalize()

Повертає копію рядка s, роблячи першу букву у верхньому регістрі

s.lower()

Повертає копію рядка s із символами у нижньому регістрі

s.swapcase()

Повертає копію рядка s, в якій кожна буква матиме протилежний регістр

s.title()

Повертає копію рядка s, в якій кожне нове слово починається з великої літери

s.upper()

Повертає копію рядка s із символами у верхньому регістрі

s.count(x)

Для рядка s повертає кількість входжень в нього зазначеного підрядка x

s.find(x)

Повертає найменший індекс з рядка s, за яким знаходиться початок зазначеного підрядка x (якщо підрядок x не знайдено, повертає -1)

s.index(x)

Повертає найменший індекс з рядка s, за яким знаходиться початок зазначеного підрядка x (якщо підрядок не знайдено, створюється виняток ValueError)

s.rfind(x)

Повертає найбільший індекс з рядка s, за яким знаходиться початок зазначеного підрядка x (якщо підрядок x не знайдено, повертає -1)

s.rindex(x)

Повертає найбільший індекс з рядка s, за яким знаходиться початок зазначеного підрядка x (якщо підрядок не знайдено, створюється виняток ValueError)

s.replace(a, b)

Повертає копію рядка s, де всі входження підрядка a у рядок s замінюються підрядком b

s.startswith(x)

Повертає True, якщо рядок s починається з вказаного префіксу x (якщо ні, то повертає False)

s.endswith(x)

Повертає True, якщо рядок s закінчується вказаним префіксом x (якщо ні, то повертає False)

s.join(x)

Повертає рядок, складений з елементів ітеративного об’єкта x з розділювачами s

s.lstrip(chars)

повертає копію рядка s, на початку якого видалені символм chars

s.rstrip(chars)

повертає копію рядка s, наприкінці якого видалені символм chars

s.strip(chars)

повертає копію рядка s, на початку і у кінці якого видалені символм chars

s.split(char)

Розділення рядка s по розділювачу char і зберігання у список

s.center(width, fill)

Повертає відцентрований рядок, по краях якого стоїть символ fill (пропуск за замовчуванням)

s.ljust(width, fillchar)

Робить довжину рядка s не меншою width, в разі потреби заповнюючи останні символи символом fillchar

s.rjust(width, fillchar)

Робить довжину рядка s не меншою width, в разі потреби заповнюючи перші символи символом fillchar

s.isalnum()

Чи складається рядок s з букв і цифр?

s.isalpha()

Чи складається рядок s з букв?

s.isdigit()

Чи складається рядок s з цифр?

s.istitle()

Чи починаються слова в рядку s з великої букви?

s.isupper()

Чи складається рядок s із символів у верхньому регістрі?

s.islower()

Чи складається рядок s із символів у нижньому регістрі?

C.6.2. Списки

Розширений список методів списків і приклади їх використання можна переглянути на programiz.com .
Таблиця "Методи списків"
Метод Призначення

list.append(x)

Додає елемент x в кінець списку list

list.extend(L)

Розширює список list, додаючи у кінець всі елементи списку L

list.insert(i, x)

Вставляє у списку list на i-ий елемент значення x

list.remove(x)

Видаляє перший елемент у списку list, який має значення x; ValueError, якщо такого елемента не існує

list.pop(i)

Видаляє із списку list i-ий елемент і повертає його; якщо індекс не вказано, видаляється останній елемент

list.index(x, start, end)

Повертає положення у списку list першого елемента зі значенням x (при цьому пошук ведеться від start до end)

list.count(x)

Повертає кількість елементів із списку list зі значенням x

list.sort(reverse=False)

Сортує елементи списку list; якщо необов’язковий параметр reverse має значення True, список сортується в зворотному порядку

list.reverse()

Розвертає список list

list.copy()

Поверхнева копія списку list

list.clear()

Очищає список list

C.6.3. Словники

Розширений список методів словників і приклади їх використання можна переглянути на programiz.com .
Таблиця "Методи словників"
Метод Призначення

dict.clear()

Очистити словник dict

dict.copy()

Повертає копію словника dict

dict.fromkeys(seq, value=None)

Cтворює словник dict з ключами з послідовності seq і значенням value (за замовчуванням None)

dict.get(key, default=None)

Повертає значення ключа із словника dict, але якщо ключ відсутній, не створює виняток, а повертає default (за замовчуванням None)

dict.items()

Повертає пари (ключ, значення) із словника dict у вигляді списку кортежів [(key1, value1), (key2, value2), ...]

dict.keys()

Повертає ключі словника dict

dict.pop(key, default)

Видаляє ключ і повертає значення словника dict; якщо ключ відсутній, повертає default (якщо default відсутній - створює виняток KeyError)

dict.popitem()

Видаляє і повертає пару (ключ, значення) словника dict; якщо словник порожній, створює виняток KeyError (пам’ятайте, що словники невпорядковані)

dict.setdefault(key, default=None)

Повертає значення ключа словника dict, але якщо він відсутній, не створює виняток, а створює ключ із значенням default (за замовчуванням None)

dict.update(other)

Оновлює словник dict, додаючи пари (ключ, значення) із other; існуючі ключі перезаписуються (повертає None)

dict.values()

Повертає значення із словника dict у вигляді списку [value1, value2, ...]

Додаток D: Код не працює: типові помилки

Мій код на Python не працює: слідуйте за стрілками, щоб знайти ймовірну причину проблеми
Мій код на Python не працює: слідуйте за стрілками, щоб знайти ймовірну причину проблеми (клікабельне зображення)