Алгоритми та прогами
Додаткові задачі
Задача
"Competition"
Швидкість
польоту ластівки 74 км/год, а горобця – 56 км/год. Хто пролетить більшу
відстань: ластівка за F год чи горобець за G год?
Вхідні
дані
Програма
зчитує з клавіатури 2 цілих числа F та G.
Вихідні
дані
Програма
виводить на екран одне слово:
¤ martlet, якщо більше пролетить
ластівка;
¤ sparrow, якщо переможе горобець;
¤ equally, якщо обидва птахи
пролетять однакову відстань.
Контрольні
приклади
1) F= 4, G= 5
=> martlet
2) F= 7,
G= 10 => sparrow
3)
F= 28, G= 37 => equally
Задача
"Stale"
Злий дракон має N голів. Коли Іван Царевич відтинає
йому одну голову, то на її місці виростає K нових голів. Якщо драконові
відрубати P голів, то скільки голів у нього буде?
Вхідні дані
Програма зчитує з клавіатури натуральні числа N, K,
P (N>=1, K, P>=0)
Програма виводить на екран одне число – нову
кількість голів у дракона.
Контрольний
приклад
Введення: 5
4 3
Виведення: 14
Задача “Perimeter or area”
Задача “Calculation”
Дано числа а, b і k. При введенні k=1 надрукувати менше серед чисел а і b, k=2 знайти більше серед чисел а і b, k=3 обчислити ![]() Контрольні приклади 1) a= 15, b= -26, k= 1 => -26 2) a= 129, b= 17, k= 2 => 129 3) a= 3, b= 4, k= 3 => 5.0 | |
Задача “Coordinate”
Визначити, в якій чверті прямокутної системи координат знаходиться точка з координатами (х, у). Відомо, що точка не лежить ні на осі оХ, ні на осі оY.
Вказівка.
Задача “Triangle”
Комп’ютер зчитує 3 додатних числа a, b, c. З’ясувати, чи можна з них утворити трикутник? Контрольні приклади 1) a= 12, b= 8, c= 10 => true 2) a= 6, b= 15, c= 23 => false Вказівка. Трикутник існує тоді, коли кожна з сторін менша за суму двох інших. |
Задача “Bookstore.py”
У книжковому магазині в розділі “Фантастика” N стелажів по T книг у кожному. Кожна з K шаф дитячої літератури містить на 20 книг більше.
Яких книг у магазині більше: з фантастикою чи дитячою літературою?
Контрольні приклади
1) N= 6, T= 100, K= 3 => 'fantastuka'
2) N= 12, T= 60, K= 11 => 'dutiacha literatyra'
3) N= 7, T= 50, K= 5 => 'porivnu'

|
Задача “Quadratic.py”
Дано цілі числа a≠0, b і c. Знайти корені квадратного рівняння Контрольні приклади 1) a= 2, b= -13, c= -45 => x1= 9.0, x2= -2.5 2) a= 16, b= -72, c= 81 => x= 2.25 3) a= 12, b= 8, c= 4 => 'rozviazky nemaie' |
Вказівка.
Спочатку потрібно обчислити дискримінант .
Якщо D>0, то 2 корені можна знайти за формулами:
Якщо D=0, то є лише один корінь .
Блок-схема | Алгоритмічна мова | Мова Python |
![]() | якщо <умова> то <серія1> інакше <серія2> все | if <умова> : <серія1> else: <серія2> |
Задача “Task01.py”
Дано число x.
Обчислити .
Контрольні приклади
1) x= 2 => y=50
2) x= 10 => y=9.5
Програма | Пояснення |
print ("Task01") x=int(input('x=')) if x<=6: y=3*x**4+7*x-12 else: y=2.0/(x-6)+9 print ('y=', y) | Виведення фрази 'x=' та зчитування значення змінної x Якщо введене значення x менше або рівне 6 то обчислюємо значення y за 1-ою формулою інакше обчислюємо y за 2-ою формулою Виведення фрази 'y=' та знайденого значення змінної y |
Примітка.
- При записі дробу знаменник (x-6) є складеним виразом, тому обов’язково береться в дужки.
- Для отримання дробового значення відповіді або чисельник, або знаменник повинен бути дробовим числом. Тому чисельник 2 записуємо 2.0.
- Оператор else слід писати на рівні if, а не з відступу.
- Команду print 'y=', y описують на рівні оператора умови. Якщо її описати з відступу (під командою y=2.0/(x-6)+9), то значення змінної y буде виводитись лише одночасно з else, коли умова x<=6 не буде виконуватись.
Іноді умова буває складеною (складається з простих за допомогою операцій або (or) чи і (and)).
Наприклад
- Я отримаю подарунок на день народження або на Різдво.
- Я подивлюсь фільм у кінотеатрі, якщо жанр фільму мене зацікавить і вистачить грошей на квиток.
Задача “Season.py”
Дано номер місяця k. Вивести відповідну пору року.
Контрольні приклади
1) k= 5 => ‘весна’
2) k= 12 => ‘зима’
Програма | Пояснення |
k=int(input('k=')) if (k==1) or (k==2) or (k==12): rez=('winter') if (k==3) or (k==4) or (k==5): rez=('spring') if (k>=6) and (k<=8): rez=('summer') if (k>=9) and (k<=11): rez=('autumn') print (rez) | Виведення фрази 'k=' та зчитування значення змінної k Якщо ввели 1-ий, 2-ий або 12-ий місяць то у змінну rez записуємо 'winter' (зима) Якщо ввели 3-ий, 4-ий або 5-ий місяць то у змінну rez записуємо 'spring' (весна) Якщо номер місяця (k більший або рівний 6) і (менший або рівний 8) то у змінну rez записуємо 'summer' (літо) Якщо номер місяця (k більший або рівний 9) і (менший або рівний 11) то у змінну rez записуємо 'autumn' (літо) Виведення знайденого значення змінної rez |
Примітка. Операція = є операцією присвоєння (надання змінній деякого значення). В умові використовується оператор порівняння == (перевірка, чи дорівнює значення змінної вказаному значенню).
Задача “School.py”
Приклади вхідних та вихідних даних Введення: 3 Введення: 7 Введення: 11 Виведення: School_3 |
Задача “Homework01.py”
Дано число x.
Обчислити
Вказівка. Оператор ≠ мовою Python позначають < > або !=.
Задача “Homework02.py”
Дано номер місяця m. Вивести кількість днів у ньому.
Контрольні приклади
1) m= 1 => k= 31
2) m= 2 => k= 28
Задача “ChessСells.py”
На шаховій дошці задано координати 2-ох клітинок (x1, y1) і (x2, y2), де перша координата – це номер рядка, друга – номер стовпця. Визначити, чи одного кольору задані клітинки. Вивести 1, якщо це правда, 0 – в іншому випадку. Вхідні дані Програма зчитує з клавіатури 4 цілих числа: х1, у1, х2, у2. Вихідні дані Програма виводить на екран одне число – 0 або 1. Приклади вхідних та вихідних даних Введення: 1 1 2 2 Введення: 1 1 1 4 |
Лінійні програми
Задача Apples
У першому ящику було A кг яблук, у другому – на 40 кг більше.
Скільки кілограмів фруктів в обох ящиках?
Контрольні приклади
1) A= 78 => m= 196
2) A= 100 => m= 240
3) A= 691 => m= 1422
Задача Milk
У посудині було L л молока. Пес Барбос випив 2/5 всього молока, а кіт Мурчик – 1/4 решти.
Скільки літрів молока залишилося в посудині?
Контрольні приклади
1) L= 6 => 2.7
2) L= 143 => 64.35
Задача “Flowers.py”
На клумбі росло S тюльпанів, нарцисів та крокусів. Тюльпанів і нарцисів було W, нарцисів та крокусів - Z.
Скільки квітів кожного виду створювали квіткову композицію?
Контрольні приклади
1) S= 200, W= 123, Z= 98 => T= 77, N= 21, K= 102
2) S= 304, W= 201, Z= 164 => T= 103, N= 61, K= 140
Розв’язання
Розглянувши схему, можна помітити, що:
1) Кількість крокусів K можна знайти як різницю загальної кількості квітів S та суми кількостей тюльпанів і нарцисів W.
K= S-W
2) Кількість нарцисів N можна дізнатись як різницю загальної кількості нарцисів і крокусів Z та щойно знайденої кількості крокусів K.
N= Z-K
3) Кількість тюльпанів T обчислимо як різницю загальної кількості квітів S і спільної кількості нарцисів та крокусів Z.
T= S-Z
Програма | Пояснення |
S=input('S=') W=input('W=') Z=input('Z=') K=S-W N=Z-K T=S-Z print 'T=', T print 'N=', N print 'K=', K | Виводимо текст 'S=' і зчитуємо введене значення у змінну S Виводимо текст 'W=' і зчитуємо введене значення у змінну W Виводимо текст 'Z=' і зчитуємо введене значення у змінну Z Знаходимо кількість крокусів K Знаходимо кількість нарцисів N Знаходимо кількість тюльпанів T Виводимо на екран текст 'T=' і значення кількості тюльпанів T Виводимо на екран текст 'N=' і значення кількості нарцисів N Виводимо на екран текст 'K=' і значення кількості крокусів K |
Задача “Cyclists.py”
Два велосипедиста виїхали з двох населених пунктів назустріч один одному. Перший велосипедист їде з швидкістю V км/год, а другий на 2 км/год більше. Відстань між населеними пунктами S км.
Через скільки хвилин велосипедисти зустрінуться?
Контрольні приклади
1) V= 14, S= 60 => t= 120.0
2) V= 15, S= 100 => t= 187.5
Задача “Parallelepiped1.py”
![]() | Довжина прямокутного паралелепіпеда дорівнює L см. Його висота становить R% довжини. А ширина – 3/4 висоти. Обчисліть об’єм прямокутника. Контрольні приклади 1) L= 10, R= 50 => V= 187.5 2) L= 28, R= 25 => V= 1029.0 |
Задача “Broken.py”
Чому дорівнює довжина ламаної?Контрольні приклади
1) W= 20, T= 2 => S= 76.3
2) W= 102, T= 5 => S= 710.3
Ламана складається з трьох ланок. Довжина першої ланки дорівнює W см, що на 3,7 см більше за довжину другої ланки і у T разів менше від довжини третьої. |
Задача “Field.py”
![]() | Поле прямокутної форми має площу S а, його ширина – L м. Обчисліть периметр поля. Примітка. 1 а (ар) = 100 м2 Контрольні приклади 1) S= 50, L= 100 => p= 300.0 2) S= 36, L= 320 => p= 662.5 |
Задача “Road_traffic.py”
З одного населеного пункту одночасно в одному напрямі вирушили велосипедист та легковий автомобіль. Велосипедист їхав зі швидкістю V км/год, а автомобіль – зі швидкістю у P разів більшою.
Якою буде відстань між ними через T год після початку руху?
Контрольні приклади
1) V= 14, P= 6, T= 3 => S= 210.0
2) V= 15.5, P= 4, T= 7 => S= 325.5
Задача “Triangle.py”
Одна сторона трикутника дорівнює A дм, друга – у N разів коротша за першу, а третя – на 12 дм довша за другу.
Знайдіть периметр трикутника.
Контрольні приклади
1) A= 10, N=2 => p= 32.0
2) A= 25, N= 8 => p= 43.25
Задача “Parallelepiped2.py”
Сума довжин усіх ребер прямокутного паралелепіпеда дорівнює W см, два його виміри – A см і B см. Знайдіть третій вимір паралелепіпеда. Контрольні приклади 1) W= 240, A= 15, B= 20 => C= 25 2) W= 234.8, A= 9.6, B= 42 => C= 7.1 |
Задача “Road.py”
Потрібно було відремонтувати n км дороги. За перший місяці полагодили 36%, за другий– m%, а за третій – решту.
Скільки кілометрів дороги відремонтували за третій місяць?
Контрольні приклади
1) n= 1000, m= 25 => s= 390.0
2) n=2354, m= 12 => s= 1224.08
Задача “Calculation.py”
Дано два числа x і y. Обчислити:
Контрольні приклади
1) x= 4, y= 1 => t= 493, z= 18.0
2) x= 3, y= 2 => t= 199, z= 18.6666666667
Завдання | Реалізація мовою Python | Пояснення |
Прочитати числа х та у, які записані в різних рядках Вхід: 23 -56 | x=input() y=input() | Команда input() зчитує введене значення та переходить на наступний рядок |
Прочитати 2 цілих числа х та у, які записані в одному рядку Вхід: 23 -56 |
| input() – зчитування рядка величин split() – розділення величин за ознакою пропуск int – величини будуть перетворюватись у цілочисельний тип |
Прочитати 3 дробових числа х, у та z, які записані в одному рядку Вхід: 23 -56 125 | x, y, z = map (float,input().split()) | float - величини будуть перетворюватись у дробовий тип |
Вивести числа х та у в різних рядках Вивід: 34 67 | print (x) print (y ) | Команда print виводить значення та переходить на наступний рядок |
Вивести числа х та у в одному рядку Вивід: 34 67 | print (x, y) | Команда print виводить через пропуск в одному рядку два значення |
Змінні та константи. Типи даних у програмуванні. Операції над змінними
Змінна та константа
Змінна – в програмуванні це буквене позначення області пам‘яті, в якій зберігається деяке значення.
У Python змінна – це посилання на комірку пам‘яті.
Константа – це величина, яка не змінюється протягом виконання програми.
Приклади констант із життя:
¤ число Пі дорівнює 3,1415926…;
¤ у добі 24 години;
¤ літера “А” не стане іншою буквою.
Типи даних у програмуванні
Тип даних – це набір значень та операцій, які над ними можна виконувати.
Наприклад, числа можна множити або ділити. Але ці операції неможливо виконати над словами чи літерами.
Змінні можуть набувати значень різних типів. Розглянемо деякі стандартні типи мови Python.
Операція присвоєння. Вимоги до імен змінних
Для того, щоб “запам‘ятати” значення досить присвоїти його змінній. Для цього використовується спеціальний оператор присвоєння, який позначається знаком рівності (=).
message = “Hello world!”
n = 12
pi = 3.14159
Слід обирати осмисленні назви змінних. Імена змінних можуть бути довільної довжини, але намагайтесь обирати не занадто короткі та не занадто довгі імена – від цього залежить зручність читання програми.
При заданні імен в Пітоні можна використовувати:
¤ будь-які латинські літери,
¤ цифри (0-9),
¤ знак _ (знак підкреслення).
Знак підкреслення може використовуватись для відділення слів, що утворюють ім‘я змінної. Наприклад, user_name, full_price.
Але назви змінних не можуть:
¤ починатись із цифри,
¤ містити пропуск та специфічні знаки ($, %, &, @, !, …),
¤ набувати значень команд (print, input, …).
Варто пам’ятати, що Python чутливий до регістру (розрізняє великі та малі літери). Змінні X та x – це різні змінні.
Операції над змінними та величинами
УВАГА! У Python 1/2=0, а не 0.5 (числа 1 та 2 – цілі, то й результат має бути цілий). Щоб отримати дробову відповідь, слід одне зі значень (або чисельник, або знаменник) перетворити у дробовий тип командою float.
float(1)/2= 1/float(2)= 0.5
Написання першої програми мовою програмування Python
Для написання та запуску програми потрібно:




- натиснути File, Save As… або Ctrl+S;
- обрати шлях до своєї папки;
- ввести назву програми англійською мовою і вказати розширення py, наприклад task.py;

- натиснути кнопку Зберегти.
6. Запустити програму на виконання (Ctrl+F5).
Пошук найбільшого та найменшого серед кількох значень
Задача “Min.py”
Дано цілі числа a, b, c і d. Знайти найменше серед них.
Контрольні приклади
1) a= 12, b=35, c= 0, d= -2 => min= -2
2) a= -12, b=140, c= -700, d= 41 => min= -700
Розв’язання
Порівнювати відразу 4 числа складно. Якщо всі числа - різні, то потрібно буде прописати 4 складені умови:
якщо (a<b) і (a<c) і (a<d)
то min=a
все
якщо (b<a) і (b<c) і (b<d)
то min=b
все
якщо (c<a) і (c<b) і (c<d)
то min=c
все
якщо (d<a) і (d<b) і (d<c)
то min=d
все
Якщо ж серед даних чотирьох чисел є однакові, то умови значно ускладняються.
Спробуємо іншу ідею: по черзі розглядатимемо пари чисел та шукатимемо серед них найменше.
Розглянемо перший контрольний приклад: a= 12, b=35, c= 0, d= -2.
1 крок. Розглядаємо пару a= 12, b=35. Оскільки 12<35, то min=12.
2 крок. Порівнюємо знайдене значення min=12 із наступним числом c=0. 0<12, тому min=0.
3 крок. Нове значення min=0 порівнюємо з 4-им числом d= -2. Оскільки -2<0, то min= -2.
Для розв’язання задачі таким способом потрібно просто вміти знаходити менше серед 2-ох чисел і послідовно застосовувати його до пар заданих значень.
Розглянемо допоміжний алгоритм знаходження меншого серед 2-ох значень та його переклад мовою Python.
Допоміжний алгоритм | Програма мовою Python |
алг ціл Менше2 (ціл x, y) арг x, y поч якщо x<y то m=x інакше m=y все знач= m кін | def Menshe2(x,y): if x<y: m=x else: m=y return m |
Основний алгоритм та його переклад мовою Python матиме вигляд:
Основний алгоритм | Програма мовою Python |
алг Менше4 (ціл a, b, c, d, ціл min) арг a, b, c, d рез min поч min= Менше2(a, b) min= Менше2(min, c) min= Менше2(min, d) кін | a=input(‘a=’) b=input(‘b=’) c=input(‘c=’) d=input(‘d=’) min= Menshe2(a,b) min= Menshe2(min,c) min= Menshe 2(min,d) print 'min=', min |
Задача “Min2.py”
Дано кількість чисел N і самі числа. Знайти найменше серед них.
Контрольний приклад
N=5
12
-96
7
23
-104
min= -104
Розв’язання
Розв’язання задачі аналогічне попередній. Але, оскільки дано N чисел, то потрібно організувати цикл, який буде повторюватись разів (i<=N). У циклі будемо зчитувати чергове число x і порівнювати його з поточним значенням min.
Перед циклом слід задати початкове значення змінної min. Якщо шукають найменше число, то за початкове значення навпаки беруть дуже велике число і в процесі роботи програми його поступово зменшують.
Візьмемо, наприклад, min= 1000000. Але тоді вхідні числа не повинні будуть перевищувати задане значення.
Розглянемо основний алгоритм та його переклад мовою Python.
Попередньо введемо позначення:
N – кількість чисел
i – лічильник по числах
x – поточне значення числа
Основний алгоритм | Програма мовою Python |
алг Менше_серед_N (ціл N) арг N рез min поч ціл i, x min=1000000 i=1 поки i<=N пц чит (x) min=Менше2(min, x) i=i+1 кц кін | N=input(‘N=’) min=1000000 i=1 while i<=N: x=input() min= Menshe2(min,x) i=i+1 print 'min=', min |