1. ІНФОРМАТИКА
Профільний рівень
підручник для 10 класу
закладів загальної середньої освіти
Харків
Видавництво «Ранок»
2018
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
3. Шановні десятикласники та десятикласниці!
За п’ять років ви опанували базові знання та сформували компетенції, має-
те первинні навички практичної роботи з багатьма програмними засобами. Ви
досягли певного рівня інформаційної культури і здатні самостійно оволодівати
сучасними інформаційними технологіями. Та інформатика — дуже динамічна
наука. Її подальші напрямки й темпи розвитку значною мірою визначатимуть-
ся рівнем підготовки людей, які мають ґрунтовні знання в цій галузі. Імовір-
но, багатьох із вас, адже ви вивчатимете інформатику на профільному рівні
і, сподіваємося, в майбутньому пов’яжете з нею свою професійну діяльність.
У 10 класі ви будете працювати з новими програмними засобами. Ви занури-
теся у світ статистики, фінансових розрахунків, інфографіки; навчитеся авто-
матизувати процес оформлення текстового документа, створювати та опрацьо-
вувати графічні зображення у векторному та растровому графічних редакторах.
Під час опанування курсу багато навчального часу приділяється мовам
програмування та структуруванню даних. Пропонований підручник — серед
перших, де вивчаються основи об’єктно-орієнтованого програмування. Оволо-
діння основами алгоритмізації і програмування здійснюється на основі мови
Python і середовища програмування IDLE.
Бажаємо вам успіхів,
авторський колектив
Підручник, який ви тримаєте в руках, — ваш надійний помічник. У ньо-
му ви знайдете завдання для самостійного виконання — виконуйте їх на
комп’ютері з натхненням, повторюйте теоретичний матеріал і викладайте
основні положення на папері.
Описи практичних робіт, запропонованих до курсу інформатики, ви знайде-
те на сайті «Інтерактивне навчання» (interactive.ranok.com.ua).
Скориставшись цим посиланням, ви також зможете пройти комп’ютерне
тестування з автоматичною перевіркою результату.
Різнорівневі питання для перевірки знань і завдання для самостійного ви-
конання відповідають рівням навчальних досягнень:
— початковий і середній рівні
— достатній рівень
— високий рівень
У тексті використано також позначки:
— означення, висновок
— питання на повторення
— зверніть увагу
— цікаво знати
— завдання для виконання та обговорення в парах або групах
— вправи для домашнього виконання
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
4. Розділ 14
1. СтруктураіспособивиконанняпроектівмовоюPython
1.1.Класифікаціяіскладовімовпрограмування
Із якими мовами програмування ви ознайомилися в попередніх
класах? Які задачі розв’язували за їх допомогою?
Історію комп’ютерних наук до певної міри можна подати
як історію мов програмування, початок розвитку яких при-
падає на XIX ст., коли англійський учений Чарльз Беббідж
розробив механічну обчислювальну машину. Програму для
неї, як вам відомо, написала леді Ада Лавлейс. Мови програ-
мування в сучасному розумінні фактично почали розвивати-
ся з появою електронних обчислювальних машин.
Мова програмування (англ. Programming language) —
це штучна мова, створена для розробки програм, які
призначено для виконання на комп’ютері.
Комп’ютерна програма (англ. Computer Program) —
це послідовність команд (інструкцій), що забезпечує
реалізацію на комп’ютері конкретного алгоритму.
Команда (інструкція) — це вказівка, що визначає, яку
дію (операцію) слід виконувати.
Сьогодні можна нарахувати понад 2 тис. різних мов про-
грамування та їх модифікацій, проте лише окремі набули
широкого визнання. Усі мови програмування можна умовно
класифікувати за деякими основними ознаками (рис. 1).
Мови програмування
Спеціалізовані
Універсальні
За орієнтацією
на клас задач
Мови високого рівня
Мови низького рівня
За ступенем залежності
від апаратних засобів
Об’єктно-орієнтовані
Непроцедурні
Процедурні
За принципами
програмування
Рис. 1. Класифікація мов програмування
Ада Августа Лавлейс, дочка лор-
да Байрона, розробила перші
програми для аналітичної ма-
шини Беббіджа, заклавши тим
самим теоретичні основи про-
грамування. На її честь названо
мову програмування ADA.
Розділ1.МОВАПРОГРАМУВАННЯ
ТАСТРУКТУРИДАНИХ
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
5. 51.1. Класифікація...
• За ступенем залежності від апаратних засобів розрізня-
ють мови програмування низького і високого рівнів.
Мови програмування низького рівня (машинно-орієнто-
вані) — мови, у яких команди та дані враховують архітек-
туру комп’ютера. Такі мови орієнтовані на конкретний тип
комп’ютера і враховують його особливості.
Практично кожний тип комп’ютера мав власну мову про-
грамування низького рівня. Одна й та сама програма не мог-
ла виконуватися на комп’ютері іншого типу, що суттєво об-
межувало можливість обміну програмами.
Програми для перших ЕОМ розробляли саме «машин-
ними» мовами. Це був складний процес, тому невдовзі
з’явилися мови символьного кодування. Команди пода-
валися вже не двійковим кодом, а символами. Перетво-
рення символьного коду в машинні команди здійснюєть-
ся автоматично.
Зазвичай команди сучасних мов програмування записують
англійськими літерами з використанням символів, які містять-
ся на клавіатурі. Але в комп’ютері зберігаються й виконуються
команди, які подано фізичними сигналами (наприклад, двома
рівнями остаточної магнітної індукції, двома значеннями елект-
ричної напруги, наявністю та відсутністю світлового променя
тощо). Значення фізичних сигналів ототожнюються з матема-
тичними значеннями 0 і 1, тобто двійковими символами.
Програми, що подано сукупністю 0 і 1, називають машин-
ними, або машинним кодом. Він указує, яку саме дію слід
виконати процесору.
Використовуються різні структури команд. Найчастіше ко-
манди складаються з операційної та адресної частин. В опе-
раційній частині зазначається яку дію (операцію) слід вико-
нати, а в адресній — виконати над якими даними (приклад).
У нашому випадку код А3 може бути операційною частиною
й означати, наприклад, операцію Додати, а В7 і С5 — адресною
частиною, яка визначає місце збереження даних, над якими
слід виконати операцію.
Уже на перших етапах розвитку обчислювальної техніки
почалося розроблення мов, доступних для широкого кола ко-
ристувачів і не пов’язаних із конкретним комп’ютером. Пер-
шою мовою високого рівня, яка набула визнання програмі-
стів, була Fortran.
Процес розроблення програм дещо полегшився, коли до
мов символьного кодування почали включати макрокоманди,
що реалізуються послідовністю з кількох машинних команд.
До різновидів мов символьного кодування належать мови
асемблера й автокода.
Мови програмування високого рівня (машинно-незалеж-
ні) — мови, на яких програми можуть використовуватися на
комп’ютерах різних типів і які більш доступні людині, ніж
мови низького рівня.
На різних етапах розвитку
комп’ютерної техніки популяр-
ністю користувалися різні мови
програмування.
Вагомий внесок у розвиток тео-
рії мов програмування зробила
Катерина Логвинівна Ющенко.
Вона написала перші програми
для першої ЕОМ, створеної
у НАН України під керівництвом
С. О. Лебедєва.
Приклад.
Спрощено команду двійковим
або шістнадцятковим кодом
можна записати так:
10100011 10110111 11000101
або
А3 В7 С5
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
6. Розділ 16
•• За принципами програмування розрізняють процедурні,
непроцедурні мови та мови об’єктно-орієнтованого про-
грамування.
Процедурні мови ґрунтуються на описі послідовної змі-
ни стану комп’ютера, тобто значення комірок пам’яті, стану
процесора й інших пристроїв. Вони маніпулюють даними
в покроковому режимі, використовуючи послідовні інструк-
ції. У процедурних мовах витримано чітку структуризацію
програм, тому їх ще називають мовами структурного про-
грамування. До таких мов належать Fortran, Algol, Pascal,
BASIC тощо.
Процедурні мови повністю задовольняють потреби розроб
лення невеликих програм і програм середньої складності.
Але на початку 80-х років XX ст. обсяг і складність програм
досягли рівня, який вимагав нових концептуальних підходів
до програмування.
Непроцедурні мови є ефективними для програмування по-
шуку даних у великих обсягах, а також для програмування
задач, процес розв’язування яких неможливо описати точно
(переклад, розпізнавання образів). У цих мовах саму проце-
дуру пошуку розв’язку вбудовано в інтерпретатор мови. До
таких мов належать мови функціонального і логічного про-
грамування.
Наприкінці ХХ ст. було презентовано нову методику про-
грамування, що отримала назву об’єктно-орієнтованого про-
грамування (ООП). Тобто почали розвиватися мови, що міс-
тять конструкції, які дають змогу визначати об’єкти, що на-
лежать класам і мають властивості роботи з абстрактними
типами даних. До таких мов належать C++, Java, C#, Python
та ін. Нині мови ООП практично витіснили з ринку профе-
сійного програмування процедурні мови.
•• За орієнтацією на клас задач мови програмування поді-
ляють на універсальні та спеціалізовані.
Універсальні мови призначені для розв’язування широкого
класу задач. До таких мов належать PL/1, Algol, Pascal, C тощо.
Особливим класом універсальних мов є візуальні середовища
програмування: VisualBasic, Delphi й ін.
Спеціалізовані мови враховують специфіку предметної га-
лузі. На цей час існують десятки спеціалізованих мов програ-
мування, наприклад, мови веб-програмування, мови скриптів
тощо. Мова скриптів використовується для створення неве-
ликих допоміжних програм, мова Javascript — для створення
динамічних об’єктів на веб-сторінках. Мови розмітки міс-
тять шаблони та засоби опису вмісту, структури й формату
електронних документів, наприклад мова HTML забезпечує
розмітку гіпертекстового документа. Мови для роботи з база-
ми даних забезпечують створення й супровід баз даних.
Зазначимо, що не всі з перелічених мов у класичному
розумінні є мовами програмування. Так, мова HTML є мовою
розмітки гіпертексту, але її також часто помилково назива-
ють мовою програмування.
День програміста святкують
у 256-й день року (у високос-
ний рік це 12 вересня, а в не-
високосний — 13 вересня). Як
ви думаєте, чому обрано саме
цей день?
Вибір пояснюється тим, що це
число символічне, воно тісно
пов’язане з комп’ютерами, але
не асоціюється з конкретними
особами чи кодами спеціаль-
ностей. Число 256 відповідає
кількості символів, які можна
подати за допомогою одного
байта.
Першою мовою високого рів-
ня, яка набула широкого визна-
ння серед програмістів світу,
була Fortran. Її було розроб
лено корпорацією IBM (США)
у 1954 році. Мова Fortran на-
ближена до мови алгебри та
орієнтована на розв’язування
обчислювальних задач.
У 1960 році групою вчених
різних країн створено мову
Algol-60, теж орієнтовану на
розв’язування обчислювальних
задач.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
7. 71.1. Класифікація...
Починаючи з 60-х років XX ст. розвиток мов програмуван-
ня відбувається як шляхом спеціалізації, так і шляхом уні-
версалізації.
Однією з перших спеціалізованих мов була мова COBOL,
розроблена в США 1961 року й орієнтована на розв’язування
економічних задач. Згодом з’явилися десятки різних спе-
ціалізованих мов, наприклад, Simula — мова моделювання,
LISP — мова для інформаційно-логічних задач, RPG — мова
для розв’язування навчальних задач тощо.
Будь-яка мова програмування високого рівня, як і будь-
яка інша мова, має основні складові (рис. 2): алфавіт, син-
таксис, семантику.
Рис. 2. Основні складові мови програмування
Складові мови програмування
Набір символів, із яких
утворюються команди про-
грами й інші конструкції
мови.
Кожна мова має власний
алфавіт. Але більшість із
них містить англійські літе-
ри, цифри, знаки арифме-
тичних операцій (+, *, –, /),
знаки відношень (більше,
дорівнює й ін.), синтаксич-
ні знаки (крапка, крапка
з комою тощо)
Алфавіт
Сукупність правил запису
команд та інших конструк-
цій мови.
Порушення правил синтак-
сису виявляється автома-
тично, про що програміст
отримує повідомлення
Синтаксис
Сукупність правил тлу-
мачення та виконання
конструкцій мови програ-
мування.
Наприклад, два коди, на-
ведені далі, мають однако-
ву логіку (виконують одна-
кові дії), результати їх ви-
конання теж однакові. Але
семантично коди різні:
i = 0; while (i5) {i++;}
та
i = 0; do {i++;} while (i=4)
Семантика
Мова програмування має словник — певну кількість слів,
правила вживання яких визначено певною мовою і які мають
строго визначене призначення. Такі слова називають зарезер-
вованими (ключовими), наприклад, for, input, if, print.
Найкращий спосіб у чомусь ро-
зібратися до кінця — це спробу-
вати навчити цього комп’ютер.
Дональд Ервін Кнут
Запитання для перевірки знань
1 Що таке мова програмування?
2 Які мови називають машинно-орієнтованими?
3 Які мови називають мовами програмування
високого рівня?
4 За якими ознаками класифікують мови про-
грамування?
5 Як класифікуються мови програмування за
орієнтацією на клас задач?
6 Як класифікуються мови програмування за
принципами програмування?
7 Чому виникла потреба в об’єктно-орієнто-
ваному програмуванні?
8 Назвіть основні складові мов програмування.
9 Поясніть на прикладах сутність синтаксису
мови програмування.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
8. Розділ 18
1.2. Призначення і склад середовища
програмування
Які середовища програмування ви використовували в попе
редніх класах? Назвіть їх переваги й недоліки.
Для зручної розробки програм існують спеціальні засоби їх
створення, — середовища (системи) програмування, які забез-
печують весь цикл роботи з програмою — від її розроблення
до виконання й отримання необхідних результатів.
Середовище програмування — це комплекс про-
грамних засобів, які призначено для автоматизації
процесу підготовки та виконання програм користувача.
Розглянемо основні складові середовища програмування
(рис. 1).
Рис. 1. Складові середовища програмування
Середовище
програмування
Мова програмування
Редактор зв’язків
Бібліотека підпрограмТранслятор
Редактор тексту
Налагоджувач
Для свідомого розуміння призначення складових середови-
ща програмування опишемо етапи процесу розробки програ-
ми, пов’язані з використанням комп’ютера.
Етап 1
Уводимо текст розробленої програми, яку називають початковим кодом,
у комп’ютер і зберігаємо в пам’яті. Для цього середовище програмування має ре-
дактор тексту, який забезпечує введення й редагування початкового коду.
Етап 2
Після введення програми та виправлення помилок, які могли статися під час уведення,
здійснюється перетворення програми з мови програмування високого рівня у двійко-
вий код.
Таке перетворення здійснюється за допомогою транслятора програм.
Розрізняють два типи трансляторів: компілятори й інтерпретатори.
У процесі інтерпретації з початкового програмного коду послідовно кожна коман-
да (інструкція) перетворюється у двійковий код і відразу виконується, — на екрані
висвітлюється результат її виконання. Після завершення виконання однієї коман-
ди виконується наступна і так до останньої команди. Але результат перетворення
не зберігається, і кожного запуску програма починається спочатку.
У процесі компіляції здійснюється перетворення всього тексту програмного коду
у двійковий код. Отриману після компіляції програму називають об’єктним модулем.
Така програма ще не готова до виконання.
Вважається, що першим при-
строєм із програмним керу-
ванням був ткацький верстат,
побудований Жозефом Марі
Жаккаром у 1804 році. Верстат
здійснив революцію в ткацькій
промисловості: Жаккар віднай-
шов можливість за допомогою
перфокарт програмувати візе-
рунки на тканинах.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
9. 91.2. Призначення і склад...
Початковий код зазвичай містить посилання на інші модулі (підпрограми), які містять-
ся в бібліотеці підпрограм (наприклад, модуль обчислення квадратного кореня). Таким
чином, до програмного модуля потрібно додати коди необхідних підпрограм, щоб під-
готувати програму для виконання.
Компільовані програми виконуються швидше за інтерпретовані. Режим інтерпретації
потребує додаткової основної пам’яті, оскільки інтерпретатор повинен увесь час збе-
рігатися разом із кодом. Але інтерпретація в роботі зручніша. Особливо для програ-
містів, які лише починають працювати з середовищем програмування, оскільки кон-
тролюється результат кожної команди.
Етап 3
Після компіляції редактор зв’язків «склеює» окремі двійкові модулі в єдину програму,
яка називається програмою, що виконується, і яка вже призначена для виконання.
Цей процес (етапи 1–3) подано схемою (рис. 2).
Початковий
код програми
Об’єктний
модуль
Редактор
зв’язків
Бібліотека
підпрограм
Програма, що
виконується
Компі-
лятор
Рис. 2. Процес опрацювання початкового коду програми
Для подальшого виконання програмного коду, що виконується, компілятор не по-
трібен. Отже, після компіляції програма подана двійковими символами 1 і 0.
Етап 4
Отримана програма, що виконується, не гарантує, що немає логічних помилок. Вона
може виконуватися, але результат виконання може бути неправильним. Тож потріб-
но здійснити тестування (випробування) програми на предмет виявлення й усунення
в ній логічних помилок.
Тестування — досить відповідальний етап. У великих ІТ-компаніях над розроблен-
ням програм, які називають проектами, працюють десятки й навіть сотні програмі
стів різних напрямків. Одні з них розробляють проекти, інші займаються тестуван-
ням програм, економічним обґрунтуванням тощо.
На цьому етапі застосовується налагоджувач програм, який дає змогу покроково
аналізувати програму. Налагоджувач дозволяє виконувати трасирування програми,
встановлювати й видаляти контрольні точки в програмах, умову призупинення ви-
конання програми тощо.
Описаний процес розробки програм є класичним для
процедурних мов програмування. Для програм, розроб
лених мовою ООП, є відмінності. Їх сутність полягає
в тому, що після компіляції отримується не машинний,
а проміжний код, так званий байт-код. За допомогою
спеціального програмного забезпечення він потім пере-
творюється на машинний.
Такий підхід зумовлений тим, що в Інтернеті вільно пе-
реміщуються дані та програми (аплети — невеликі програ-
ми, призначені для передавання через Інтернет і виконання
Байт-код — це проміжний код
між початковим кодом і кодом,
що виконується.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
10. Розділ 110
в браузері, сумісному з мовою програмування). Їх потрібно
захистити від вірусів та інших шкідливих програм, а також
реалізувати переносимість програм.
Під переносимістю розуміють можливість завантажен-
ня й виконання аплета на комп’ютерах із будь-яким типом
процесора, будь-якою операційною системою та браузером,
що під’єднані до Інтернету. Саме ці проблеми й дозволяє
розв’язати байт-код.
Зрозуміло, що використання будь-якого проміжного коду,
у тому числі й байт-коду, знижує швидкість виконання про-
грам і потребує додаткових апаратних засобів. Утім, ці втра-
ти незначні порівняно з отриманим виграшем. Якби ООП-
програма одразу компілювалася в машинний код, то для
кожного комп’ютера зі своїм типом процесора необхідно було
б мати окрему версію тієї самої програми, що економічно
вкрай невигідно.
Інколи використовуються так звані динамічні компілято-
ри. Їх сутність полягає в тому, що байт-код компілюється
в машинний код не весь одразу, а окремими фрагментами,
у міру необхідності. Інші частини коду можуть виконуватися
в режимі інтерпретації. Цим самим досягається висока ефек-
тивність роботи з кодом.
Середовища (системи) програмування часто іменуються
за назвою мови, яка в них реалізується, наприклад середо-
вище Pascal, середовище Delphi. Інколи назва середовища
містить префікс, який вказує на розробника середовища:
назва середовища Turbo-C означає, що її розробником є фір-
ма Borland.
Нині все частіше використовуються інтегровані середовища
програмування, які забезпечують роботу з кількома мовами.
Такими середовищами є, наприклад, IntelliJ IDEA, Eclipse. Варі-
ант Ultimate Edition середовища IDEA забезпечує роботу з мова-
ми програмування Java, PHP, Python.
Деякі середовища підтримують як режим інтерпретації,
так і режим компіляції програм.
Далі в процесі опису мови програмування Python ми буде-
мо застосовувати середовище IDLE.
Аплет переносить окремі функ-
ції із сервера до клієнта.
У разі клацання посилання, що
містить аплет, він автоматично
завантажується на комп’ютер
і запускається в браузері.
Потребу в розробці мов ООП
із використанням байт-коду на
початку 1990-х років зумовле-
но розвитком виробництва по-
бутових приладів зі вбудова-
ними контролерами на різних
типах процесорів.
Спочатку виникла потреба
в програмах і компіляторах
для кожного типу процесора.
Та розробка компілятора ви-
явилася справою доволі до-
рогою. Так з’явилася ідея ство-
рити мову для розробки коду,
придатного для виконання на
будь-якому типі процесора.
За рік виникла потреба в мові,
яку можна було б викорис-
товувати на будь-якому типі
процесора. Це було зумовлене
розвитком Всесвітньої павути-
ни й Інтернету, які об’єднали
різні типи комп’ютерів із різ-
ними процесорами й ОС.
Запитання для перевірки знань
1 Для чого призначено середовища програму-
вання?
2 Назвіть складові середовища програмування.
3 Які функції виконує редактор тексту?
4 Поясніть сутність інтерпретації програм.
5 Які переваги та дефекти мають компілятори
й інтерпретатори програм?
6 Для чого призначено редактор зв’язку?
7 Які основні дії виконуються в процесі налаго-
дження програм?
8 Назвіть сучасні інтегровані середовища про-
грамування.
9 Що називають об’єктним кодом?
1010 Які особливості мають середовища об’єктно-
орієнтованого програмування?
11 Для чого застосовують байт-код?
12 Які переваги мають інтегровані середовища
програмування?
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
11. 111.3. Основні можливості...
1.3. Основні можливості мови Python
і структура проекту
Яку методику програмування підтримує мова, яку ви
вивчали? Чи користувалися ви об’єктно-орієнтованими
мовами програмування?
Матеріал нашого підручника зорієнтовано на роботу з
мовою програмування Python*, яка підтримує об’єктно-
орієнтований і процедурний методи програмування з інтер-
претацією команд (інструкцій).
Мова Python підтримується всіма операційними системами
і дозволяє розв’язувати складні математичні задачі, створю-
вати графічні зображення, розробляти веб-сайти, працювати
з реляційними базами даних.
Мова Python має потужну стандартну бібліотеку, яку кори
стувач може розширювати власними бібліотеками й бібліотеками
інших користувачів. Наприклад, розширення .NumPy містить
реалізацію різноманітних математичних обчислень, модуль
tkinter дає змогу реалізувати графічний інтерфейс користувача.
Програми можуть розроблятися в консольному режимі
(такі програми мають розширення .py) і з графічним інтер-
фейсом (програми мають розширення .pyw).
Програма мовою Python — це звичайний текстовий файл,
інструкції (команди) якого виконуються інтерпретатором для
кожного рядка. Під час першого запуску програми створю-
ється байт-код, який зберігається у файлі з розширенням
.pyw. Якщо після цього програма не змінювалася, то в про-
цесі наступних її запусків буде виконуватися байт-код.
Усі дані мови, у тому числі прості типи даних (числа, рядки)
є об’єктами. У змінній зберігається не сам об’єкт, а посилання
на нього, тобто адреса пам’яті, у якій зберігається об’єкт.
Структура проекту мовою Python складається з окре-
мих модулів. Модуль — це будь-який файл із програм-
ним кодом. Кількість таких модулів не обмежена. Один
модуль може бути вкладений в інший модуль, тобто за-
стосовується багатоієрархічна структура модулів. Модулі
можуть групуватися в пакети.
Модулі можуть розроблятися самим програмістом, а мо-
жуть використовуватися вже наявні в стандартній бібліотеці
мови. Один із модулів є головним, з нього запускається про-
ект на виконання.
Щоб запустити один модуль з іншого, перший необхідно
під’єднати до останнього (імпортувати).
* Мова програмування Python розповсюджується вільно за посилан-
ням: http://python.org Наразі існують дві версії Python — 2.х (за-
старіла) та 3.х (перспективна), які не сумісні між собою. У цьому
підручнику наведені приклади, розглянуті у версії 3.4.
Мова Python підтримує ди-
намічну типізацію даних. Це
означає, що оголошувати типи
даних не потрібно, мова само-
стійно слідкує та визначає їх
тип на основі їх зовнішнього
вигляду. Автоматично звільняє
ться пам’ять для тих даних, які
стають непотрібними.
Програму мовою Python мож-
на створювати й редагувати за
допомогою будь-якого редак-
тора, наприклад, Notepad++,
Eclipse, PythonWin та ін.
Нідерландський програміст Гві-
до ван Россум — щирий при-
хильник скетч-серіалу «Літаю-
чий цирк Монті Пайтона» (англ.
Monty Python’s Flying Circus). На
честь цієї програми він назвав
створену ним мову програму-
вання — Python.
Існують версії для Linux,
Windows, MacOS.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
12. Розділ 112
На рис. 1 подано варіант структури проекту мовою Python.
a1.py a2.py
a3.py
Головний
файл
програми
Модулі
a4.py
Модулі
стандартної
бібліотеки
Рис. 1. Варіант структури проекту мовою Python
Оскільки ми розглядатимемо лише найпростіші навчальні
проекти, то далі їх можемо називати просто програмами.
Наведена структура програми складається з чотирьох фай-
лів: a1.py, a2.py, a3.py, a4.py, які розробляє програміст, а також
модулів стандартної бібліотеки мови Python. Файл a1.py є го-
ловним, із нього запускається програма. Цей файл, так само
як і інші три модулі, складається з інструкцій мови Python.
Фактично це звичайні текстові файли, які нами будуть роз-
роблятися в середовищі IDLE.
Файли a2.py, a3.py і a4.py самостійно не запускаються. Файл
a2.py запускається з головного файла. Але для запуску його
слід спочатку імпортувати у файл a1.py. Файли a3.py і a4.py
запускаються з файла a2.py, але для цього їх також слід ім-
портувати у файл a2.py. Із файлів a3.py і a4.py запускаються
модулі стандартної бібліотеки, які також потрібно імпортува-
ти у ці файли.
Із рис. 1 видно, що мова Python реалізує багатоієрархічну
структуру вкладеності модулів. Але в підручнику буде засто-
совуватися найпростіша архітектура програми, яка містить
лише головний файл, та програму, яка містить головний
файл і модулі стандартної бібліотеки (рис. 2).
У такій архітектурі модулі стандартної бібліотеки імпор-
туються безпосередньо в головний файл програми. Реально
програмний модуль може складатися не тільки з інструкцій
мови Python, а й зі змінних, функцій і класів (рис. 3).
В ООП мовою Python використовуються класи і методи (осно-
ви описано нижче). Із рис. 3 видно, що модуль може імпорту-
вати інші модулі, які написано не тільки мовою Python, але
й мовою С. Він також може бути імпортований в інші модулі.
Рис. 2. Найпростіша структура
програми мовою Python
Модулі
стандартної
бібліотеки
Головний
файл
програми
Рис. 3. Структура проекту модуля
мовою Python
Інші
модулі
мовою
Python
або С
Інші
модулі
мовою
Python
або С
Змінні
Змінні
Функції
Модулі
Класи
Змінні
Методи
Запитання для перевірки знань
1 Якими операційними системами підтримуєть-
ся мова Python?
2 Яке розширення мають файли програм, які
створено в консольному режимі?
3 Назвіть основні переваги мови Python.
4 Який тип трансляції застосовується у Python?
5 Із якими мовами може інтегруватися мова
Python?
6 Що називають динамічною типізацією даних?
7 Поясніть структуру проекту мовою Python.
8 Яку структуру може мати модуль мовою
Python?
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
13. 131.4. Режими виконання...
1.4. Режими виконання програмного коду
в середовищі IDLE
У середовищі IDLE програмний код мовою Python можна
виконувати в інтерактивному режимі та режимі виконання
файлів програм.
1.4.1. Виконання програмного коду в інтерактивному режимі
Пригадайте, який вид трансляції програми використову
вався вами у 8 і 9 класах. Які, на вашу думку, його переваги
й недоліки?
В інтерактивному режимі результати виконання інструк-
цій користувача виводяться одразу після їх уведення. Тобто
вводиться перша інструкція, яка одразу виконується, потім
уводиться друга інструкція і т. д.
Розглянемо способи запуску інтерактивного режиму робо-
ти інтерпретатора IDLE.
•• За допомогою командного рядка ОС Windows (щоб його
відкрити, слід клацнути правою кнопкою миші кнопку
Пуск і виконати команду Командний рядок). До командно-
го рядка слід увести команду python.
Відкриється вікно, яке зображене на рис. 1.
Рис. 1. Вікно інтерпретатора, яке відкрите за допомогою командного рядка, версія Python3.4
•• Із робочого стола. Якщо ярлик мови Python розміщено на
робочому столі, то слід клацнути цей ярлик.
•• Із головного вікна середовища програмування IDLE. Для
цього слід виконати команди:
Пуск → Усі програми → Python3.х* → IDLE (Python3.хGUI —
32 біт). Відкриється вікно, яке зображене на рис. 2.
Саме цей спосіб запуску застосовуватиметься нами далі.
Розглянемо порядок виконання найпростішої програми мо-
вою Python в інтерактивному режимі (рис. 2).
* Замість «х» укажіть номер версії Python, що встановлено на вашо-
му комп’ютері — 3.4 або 3.6.
Інтерактивний режим доцільно
використовувати на етапі ви-
вчення синтаксису мови, коли
необхідно переконатися в пра-
вильності виконання окремих
інструкцій після їх уведення.
А також для тестування коду,
що зберігається у файлах.
Мова Python розповсюджується
вільно на підставі ліцензії GNU
General Public License.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
14. Розділ 114
РЕР8 — стиль написання програм мовою Python. Цей
документ описує угоду про те, як писати код для мови
Python. Це список рекомендацій, яких добровільно до-
тримуються Python програмісти.
Рис. 2. Вікно інтерпретатора, яке відкрито в середовищі IDLE
Припустимо, що програма повинна містити
повідомлення про стилі програмування та по-
бажання успіхів. Цю програму можна подати
в такому вигляді:
#Починаємо вивчати мову Python
print (Python підтримує ООП
і процедурний стиль) #повідомлення
print (Найбільших успіхів) #побажання
Тут знак # — це коментар, який жодним
чином не впливає на роботу інтерпретатора
(все, що пишеться після нього, не виконуєть-
ся). Він може бути розташований як на почат-
ку рядка програми, так і наприкінці кожної
команди.
Команда print забезпечує виведення на
екран повідомлення, що міститься в круглих
дужках у подвійних лапках.
Хід виконання
1. Для введення програми запускаємо ін-
терпретатор мови Python середовища IDLE.
2. Одразу після знака запрошення ()
уводимо перший рядок програми (#Починаємо
вивчати мову Python) і натискаємо клавішу Enter.
3. Знак запрошення з'явиться на наступно-
му рядку, після якого уводимо команду друго-
го рядка програми (print (Python підтримує ООП
і процедурний стиль) #повідомлення і натискає-
мо клавішу Enter.
4. Система виведе повідомлення Python під-
тримує ООП і процедурний стиль, а в наступному
рядку з'явиться знак запрошення, після якого
уводимо print (Найбільших успіхів) #побажання.
Динаміку описаного процесу введення
та виконання програми в інтерактивному ре-
жимі зображено на рис. 3.
Рис. 3. Перша програма мовою Python (результат роботи)
Приклад
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
15. 151.4. Режими виконання...
Після знаку запрошення () не повинно бути пробілів (але
є невеличкий відступ для кращого сприйняття), інакше ви-
даватиметься повідомлення про синтаксичну помилку.
Команди відокремлюються крапкою з комою (;), якщо
в одному рядку уводяться дві або більше команд.
Кожну команду рекомендується вводити в окремому ряд-
ку, але команди можна розміщувати й у кількох рядках. На-
приклад, команду x=130+82+45 можна розмістити у два рядки
за такими варіантами:
x = 130 + 82 x = (130 + 82
+ 45
або
+ 45)
У мові Python відсутні спеціальні засоби для виділення
блоків, наприклад фігурні дужки або конструкція begin…end.
Якщо команда містить блок, то кожна команда блока мовою
Python відокремлюється від початку рядка спеціальним від-
ступом чотирма пробілами. Якщо кількість пробілів різна,
інтерпретатор видає повідомлення про фатальну помилку.
Щоб завершити роботу інтерактивного режиму, необхідно
натиснути сполучення клавіш Ctrl+Z.
Після того як Гвідо ван Россум
розробив мову Python (при-
близно у 1991 році), він виклав
її в Інтернет. Мова Python спо-
добалася програмістам і поча-
ла вільно поширюватися.
Таким чином, до розробки
приєдналося вже співтовари-
ство програмістів.
У середньому кожні два чи
2,5 роки з’являється нова вер-
сія мови.
Запитання для перевірки знань
1 Для чого застосовується коментар у програм-
ному коді?
2 Яке позначення має знак запрошення в інтер-
активному режимі?
3 Як завершується робота інтерпретатора в ін-
терактивному режимі?
4 Які переваги має інтерактивний режим вико-
нання програмного коду?
5 Як можна запустити інтерактивний режим ін-
терпретатора IDLE?
6 Поясніть сутність інтерактивного режиму.
7 Як правильно увести кілька команд в одному
рядку?
8 Як оформлюється блок команд у мові Python?
Завдання для самостійного виконання
1 Запустіть інтерактивний режим роботи IDLE
за допомогою командного рядка ОС Windows.
2 Запустіть інтерактивний режим інтерпре-
татора IDLE з головного вікна середовища
програмування IDLE.
3 Розробіть і виконайте програмний код
в інтерактивному режимі, який виводить на
екран два речення:
У мові Python застосовується байт-код.
Python забезпечує високу компактність і на-
очність програмного коду.
4 Розробіть і виконайте програмний код, який
в інтерактивному режимі виводить таке по-
відомлення: Python підтримує процедурні
і об’єктно-орієнтовні методи програмування.
5 Розробіть і виконайте програмний код в ін-
терактивному режимі для виведення пові-
домлення: Python має високий рейтинг
із використанням коментаря.
6 Обчисліть значення виразу
p = 123 / 4 + 45 * 3 – 66 * (3 + 87) в інтер-
активному режимі.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
16. Розділ 116
1.4.2.Виконанняфайлівпрограмногокоду
Інтерактивний режим роботи інтерпретатора забезпечує
простоту і наочність у роботі програміста. Чому не можна
обмежитися лише цим режимом?
Інтерактивний режим роботи є досить зручним. Але про-
грамний код, який уводиться в інтерактивному режимі, не
зберігається: він зникає одразу після того, як інтерпретатор
мови Python його виконає. Для повторного виконання про-
грамного коду потрібно увести код заново, що є суттєвим не-
доліком інтерактивного режиму.
Програмні коди необхідно зберігати у файлах, які, як
раніше зазначалося, називають модулями. Файли моду-
лів — це програми, які називають також сценаріями, хоча
між ними є невелика різниця. Ім’я файла може не місти-
ти розширення. Але якщо передбачається імпортувати про-
грамний код з інших файлів, то ім’я файла має містити
розширення .py.
Файл програмного коду інтерпретатор може виконувати
необмежену кількість разів.
Після запуску коду на виконання інтерпретатор виконує
послідовно одну інструкцію за іншою в порядку їх розташу-
вання й видає результат на екран монітора. Якщо в програм-
ному коді буде виявлено синтаксичну помилку, відповідне по-
відомлення виводиться на екран.
Розглянемо порядок створення файла найпростішого про-
грамного коду на прикладі.
Способи запуску файла про-
грамного коду на виконання:
• із командного рядка сере-
довища програмування;
• клацанням ярлика файла;
• за допомогою користува-
цького інтерфейсу середо-
вища IDLE.
Припустимо, що потрібно створити файл
із кодом, який виконує складання чисел 65
і 279 та множення числа 21 на число 15.
1. Запускаємо середовище програмування IDLE
(Python3.x 32-bit). У відкритому вікні Python3.x
Shell виконуємо команду File → New File.
2. У вікно Untitled, яке відкрилося, уводимо
програму так, як зображено на рис. 1.
Останньою в програмі є команда input(). На-
разі ця команда відіграє допоміжну роль. За
її допомогою результат виконання програми
буде відображатися на екрані доти, доки не
буде натиснуто клавішу Enter.
Можливо, що без цієї команди результат
відображатиметься досить короткий час, і ми
не зможемо його побачити.
Рис. 1. Програма додавання і множення двох чисел
Приклад
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
17. 171.4. Режими виконання...
3. Зберігаємо програму за допомогою
команди File → Save As… У результаті від-
криється вікно Збереження файлу (рис. 2).
Звертаємо увагу на те, що за замов-
чуванням пропонується зберегти файл
у папці Python3 диску C*. Далі всі файли
програм зберігатимемо саме в ній. Інакше
необхідно змінити ім’я папки та місце її
розташування.
Уводимо ім’я prog_02 (без розширен-
ня .py, оскільки на цьому етапі вивчення
мови Python не передбачає імпортування
файлів), і натискаємо кнопку Зберегти.
Файл буде збережено.
Рис. 2. Вікно Збереження файлу
Виконувати програму можна різними способами.
• Якщо програму відкрито в додатковому вікні Python3.4.3
Shell, то достатньо виконати команди Run → Run Module
(або натиснути клавішу F5). Результат виконання про-
грами зображено на рис. 3.
Далі будемо користуватися командою Run → Run Module.
Рис. 3. Результат виконання програми додавання і множення чисел
• Якщо програму створено раніше, її можна** виклика-
ти у вікно Python3.4.3 Shell, виконавши команду File →
→ Open…
Виконати програму, створену раніше, можна також по-
двійним клацанням імені відповідного файла у папці
* Цей варіант збереження пропонується за замовчуванням.
** Відкрити в середовищі Python3.x IDLE у вікні Python3.x Shell.
Нині Python — одна з найпо-
пулярніших мов програмування,
яка охоплює нові сфери застосу-
вання. Останні 5 років входить
до п’ятірки найзатребуваніших
технологій.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
18. Розділ 118
C:Python34. Але в цьому випадку останньою командою про-
грами обов’язково повинна бути input(). Інакше результат її
виконання можна не побачити.
Зазначимо, що за замовчуванням у Python 3 для кодування
команд здійснюється код UTF-8, який буде використовувати-
ся далі.
Для застосування іншого коду необхідно в першому або
другому рядку програми вказати назву коду за допомогою
інструкції: # –*– coding: код –*–.
Наприклад, для коду Windows 1251 інструкція матиме та-
кий зміст: # –*– coding: cp1251 –*–.
Запитання для перевірки знань
1 Як можна запустити на виконання файл про-
грамного коду?
2 Як можна викликати на екран файл програм-
ного коду?
3 Наведіть приклад найпростішого програмного
коду мовою Python.
4 Як зберегти файл програмного коду?
5 Які вади має інтерактивний режим
інтерпретатора?
6 Чому доцільно зберігати програмний код
у файлі?
7 Для чого в програмному коді останньою за-
значається команда input()?
Завдання для самостійного виконання
1 Складіть програму для обчислення значен-
ня виразу 2.3 + 106 * 4 і збережіть її у файлі
з іменем f_01. Виконайте програму і пере-
конайтеся, що отриманий результат є пра-
вильним.
2 Завантажте середовище IDLE, викличте ство-
рену в пункті 1 програму з файла f_01, за-
мініть у програмі операцію множення чис-
ла 106 на 4 на операцію ділення. Збережіть
програму в тому самому файлі. Виконайте
програму та переконайтеся, що отриманий
результат є правильним.
3 Складіть програму для обчислення площі
трикутника за значеннями його сторін. Збе-
режіть програму у файлі f_02. Виконайте
програму та доведіть, що отриманий резуль-
тат є правильним.
4 Викличте програму, що зберігається у файлі
f_02. Внесіть до неї такі зміни, щоб обчис-
лювалася площа прямокутного трикутника
за значеннями його катетів.
5 У коло радіусом r вписано правильний три-
кутник. Розробіть програму визначення
площі кола, яку не зайнято трикутником.
Збережіть програму у файлі f_03. Виконайте
програму та доведіть, що вона функціонує
правильно.
6 У правильний трикутник зі стороною а впи-
сано коло. Розробіть програму визначення
площі трикутника, яку не зайнято колом.
Збережіть програму у файлі f_04. Виконайте
програму та доведіть, що вона функціонує
правильно.
7 Дізнайтеся в Інтернеті про відстань по шосе
між містами Хмельницький і Вінниця. Розро-
біть проект визначення орієнтовного часу
прибуття автобуса до Вінниці, який починає
рух із Хмельницького о 8.30.
8 Знайдіть в Інтернеті відомості про найнижчу
та найвищу температуру в Києві у лютому за
останні 5 років. Розробіть проект визначен-
ня різниці між цими показниками.
Мову Python відрізняє швид-
кість і простота скриптів. Разом
із набором доступних бібліотек
для роботи з мережами і фай-
лами це робить її незамінним
помічником системного адміні-
стратора.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
19. 192.1. Основні елементи...
2. Оператори, вирази і засоби опрацювання чисел
Мова Python має багато вбудованих типів даних, які буде
описано в наступних розділах. У цьому розділі наводиться
лише їх перелік, для того щоб свідомо розуміти необхідність
перетворення одного типу даних на інший у процесі програ-
мування арифметичних та інших типів виразів.
2.1. Основні елементи мови Python
Пригадайте елементи мови програмування, яку ви вивчали.
Чи всі символи клавіатури комп’ютера ви використовували
в процесі введення програм?
Будь-яка конструкція мови програмування створюється
з алфавіту. Алфавіт мови Python містить символи, що розта-
шовані на клавіатурі комп’ютера (рис. 1).
Із символів алфавіту створюються лексеми (token).
Лексема — це мінімальна одиниця мови, яка має пев-
не самостійне значення і яку розуміє транслятор. Якщо
транслятор її не розуміє, то видається повідомлення
про помилку в програмі. За замовчуванням символи ко-
дуються в системі UTF-8.
Розрізняють такі види лексем:
•• ключові (зарезервовані) слова (keywords);
•• ідентифікатори (identifiers);
•• літерали (константи);
•• операції;
•• знаки пунктуації.
У мові Python використовується кілька десятків ключо-
вих (зарезервованих) слів (наприклад, int, list, input, print, float
тощо). З їх призначенням будемо знайомитися поступово,
у міру потреби в їх застосуванні.
Ідентифікатори (імена) використовуються для позначення
змінних, функцій, які створює програміст, та інших об’єктів.
Ідентифікатор змінної може складатися з латинських літер,
цифр і знака підкреслення. Першим символом імені не може
бути цифра або знак підкреслення.
У редакторі IDLE правильні імена змінних висвічуються
чорним кольором. Якщо ім’я змінної відображається іншим
кольором, його необхідно замінити. Однакові імена з літерами
на різних регістрах сприймаються як різні імена. Наприклад,
ідентифікатори ster і Ster є різними іменами.
Імена змінних використовуються для доступу до даних.
Дані в мові Python подано у формі об’єктів. Тобто об’єкт — це
ділянка пам’яті з певним значенням і можливими операціями
його опрацювання. Кожний об’єкт має свій тип, наприклад
int(ціле число), str(рядок) та ін.
Рис. 1. Алфавіт мови Python
Алфавіт мови Python
великі й малі літери
латиниці та кирилиці
знаки операцій: + – *
= |
символи підкреслення
(_) і пробілу
спеціальні символи:
# ^ $ та ін.
синтаксичні знаки та
обмежувачі: . , '
( ) [ ] { }
цифри
Ключові слова мови, назви функ
цій та вбудованих у мову об’єктів
забороняється використовува-
ти як імена змінних. Наприклад,
ідентифікатори змінних dush,
cosm_1 і Ftr_2 є правильними,
а ідентифікатори 2beta, rnt-sd,
_fok, int — неправильними.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
20. Розділ 120
У мові Python існують базові об’єктні типи (вбудовані в мову)
і ті, що розробляються користувачем засобами самої мови або
іншими засобами.
Зазначимо, що змінні зберігають не сам об’єкт, а посилан-
ня на об’єкт, тобто адресу об’єкта в пам’яті комп’ютера.
Об’єкт може бути літералом (константою). У табл. 1 наве-
дено найчастіше вживані базові типи об’єктів та приклади їх
літералів. Детальніше вони описані в розділі 4.
Таблиця 1. Найчастіше вживані вбудовані типи об’єктів
Тип об’єкта Приклад літерала
Цілі числа (int) 45, 365
Дійсні числа (float) 36.5, 213.75
Рядки (str) 'Python', процесор
Логічні дані (bool) true, false
Списки (list) [40, [3, 'монітор'], 32]
Словники (dict) {'айфон': 'сон', 'doc': 'nm'}
Кортежі (tuple) (5, 'sp', 31, 'M')
Множини (set) set('abc'), {'a', 'b', 'c'}
Як уже зазначалося, у мові Python застосовується динаміч-
на типізація змінних. Це означає, що не потрібно оголошувати
типи змінних, як це робиться в багатьох мовах програмуван-
ня, оскільки їхній тип визначається автоматично в процесі
присвоювання їм значень. Цей тип визначається значенням,
розташованим праворуч від оператора присвоювання, який по-
значається знаком (=) (приклад 1).
В одному рядку можна присвоїти однакові значення кіль-
ком змінним, наприклад:
x = y = z = 441 #змінні x, y, z мають тип int і значення 441
Ще раз зазначимо, що після виконання оператора присвою
вання в змінній зберігається не сам об’єкт, а лише посилан-
ня на нього, тобто адреса ділянки пам’яті, у якій зберігається
об’єкт. Тому слід бути досить уважним під час запису групових
операцій. Розглянемо такий фрагмент програми (приклад 2).
Із прикладу 2 видно, що створюється ніби два об’єкти (x і y)
типу list, але вони мають одну й ту саму адресу пам’яті, тобто
реально створюється один об’єкт, значення якого виводиться
двічі. Для підтвердження цього змінимо значення нульово-
го елемента об’єкта y (нумерація елементів у списку почи-
нається з нуля) і перевіримо значення об’єктів (приклад 3).
Із прикладу 3 видно, що ми змінили тільки значення y[0],
а фактично об’єкти мають однакові значення, оскільки
реально і x і y мають однакову адресу, тобто є одним об’єктом.
Щоб отримати два об’єкти x і y, необхідно виконати при-
своювання окремо для кожного з них, наприклад:
x = [21, 807]
y = [21, 807]
Python використовують багато
відомих кампаній у всьому сві-
ті. Серед них Google, Facebook,
Yahoo, NASA, Dropbox, IBM,
Red Hat, Pinterest.
Приклад 1.
x_1 = 87 #змінна х_1
має тип int і значення 87
x_2 = 21.45 #змінна х_2
має тип float і значення 21.45
s_1 = 'проект' #змінна s_1
має тип str і значення «проект»
s_2 = байт #змінна s_2
має тип str і значення «байт»
Приклад 2.
x = y = [7, 15] #створюється
ніби два об’єкти
x, y #виведення
значень x і y
([7,15], [7,15]) #двічі виво-
дяться значення одного об’єкта
Приклад 3.
y[0] = 50 #зміна значен-
ня нульового елемента об’єкта y
x, y #виведення
значень x і y
([50, 15], [50, 15]) #значення x і y
однакові, хоча х не змінювали
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
21. 212.1. Основні елементи...
Для перевірки, чи посилаються дві змінні на один і той
самий об’єкт, використовується оператор is. Якщо змінні по-
силаються на один об’єкт, то оператор повертає значення True,
інакше — значення False (приклад 4).
Одним оператором присвоювання можна присвоїти різ-
ні значення кільком змінним.
У такому разі змінні та значення відокремлюються комою,
наприклад:
x_1, x_2, x_3 = 13, 105, 27
x_1, x_2, x_3
(13, 105, 27)
Кількість елементів ліворуч і праворуч від оператора при-
своювання має бути однакова, інакше буде видано повідом-
лення про синтаксичну помилку.
Наприклад, помилку буде видано для такої інструкції:
x, y, z = (2, 44, 50, 65)
Позбавитися цього явища можна за допомогою символу
«зірочка» (*), який розміщується перед однією зі змінних.
У такому разі ця змінна містить список з усіх зайвих зна-
чень (приклад 5).
Приклад 4.
x = y = [60, 90] #змінні x і y
посилаються на один об’єкт
x is y
True
x = [23, 20] #змінні x і y
посилаються на різні об’єкти
y = [23, 20]
x is y
False
Приклад 5.
x_1, x_2, *x_3 = (46, 7, 21, 14)
#змінна x_3 набуде значень 21 і 14
x_1, x_2, x_3
(46, 7, [21, 14])
x_1, *x_2, x_3 = (4, 7, 33, 17)
#змінна x_2 набуде значень 7 і 33
x_1, x_2, x_3
(4, [7, 33], 17)
Запитання для перевірки знань
1 Яким ідентифікатором позначаються цілі числа?
2 Яким ідентифікатором позначаються дійсні
числа?
3 Які базові типи даних використовуються най-
частіше?
4 Сформулюйте правило запису ідентифікаторів
змінних.
5 Що зберігається в змінних?
6 Поясніть сутність динамічної типізації змінних.
7 Для чого призначений оператор is?
8 Поясніть сутність поняття «посилання на об’єкт».
9 Як можна одним оператором присвоїти різні
значення кільком об’єктам?
10 Що називають лексемою?
11 Які існують види лексем?
Завдання для самостійного виконання
1 Виявіть помилки в записі ідентифікаторів
змінних: ac_1, 2ba, x–1, –z_1.
2 Змінним x, y, z присвойте одним операто-
ром присвоювання, відповідно, такі значен-
ня: 3, 37, 45.
3 Доведіть, що після виконання операторів:
a1 = [5, 20]
a2 = [5, 20]
змінні будуть посилатися на різні об’єкти.
4 Визначте значення змінних a_1, a_2 і a_3
після виконання оператора:
a_1, *a_2, a_3 = (1, 6, 2, 3, 4, 5)
і доведіть, що отриманий результат є пра-
вильним.
5 Визначте, як реагуватиме середовище про-
грамування на спробу виконати оператор:
a, b, c, d = (100, 61, 55).
6 Одним оператором присвойте змінним такі
значення: x = 33, 21, 2; y = 7; z = 66.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
22. Розділ 122
2.2. Поняття про перетворення типів даних
Чому, на вашу думку, виникає потреба в перетворенні типів
даних? Чи доводилося вам стикатися з цією проблемою під
час розв’язування математичних задач?
Одна й та сама змінна в процесі виконання коду може по-
силатися на об’єкти з різними типами даних. Наприклад, пі
сля виконання двох інструкцій:
x_1 = принтер #змінна x_1 посилається на тип str
x_1 = 3.8 #тепер змінна x_1 посилається на
тип float
Змінна x_1 спочатку посилається на тип str, потім — на
тип float.
Для визначення останнього типу даних, на який посилаєть-
ся змінна, призначена функція type (ім’я змінної) (приклад 1).
Отже, тип даних — це характеристика об’єкта, а не змінної.
Змінна містить тільки посилання на об’єкт.
Для кожного конкретного типу даних існує строго визна-
чений набір операцій, які можуть виконуватися над ним.
Наприклад, для даних типу int і float можна виконувати
арифметичні операції. Спроба виконати, наприклад, операцію
додавання цілого числа та рядка:
43 + 25
приведе до виведення повідомлення про синтаксичну по
милку.
Для перетворення одного типу даних на інший у мові
Python застосовуються спеціальні функції.
Розглянемо основні функції перетворення одного типу да-
них на інший.
bool([об’єкт]) — перетворення об’єкта на логічний тип (при-
клад 2).
Із прикладу видно, що функція bool повертає значення False
у випадку, якщо об’єкт дорівнює нулю або порожній, інак-
ше — значення True.
int([об’єкт [,система числення]]) — перетворення об’єкта на
ціле число. Система числення, у якій подається об’єкт, може
бути десятковою, вісімковою, шістнадцятковою. За замовчу-
ванням — десяткова система (приклад 3).
float(ціле число або рядок) — перетворення цілого числа або
рядка на число дійсного типу (приклад 4).
str(об’єкт) — перетворення об’єкта на рядок (приклад 5).
list(послідовність) — перетворення елементів послідовності
на список (приклад 6).
Приклад 1.
x_2 = 300
type(x_2) #визначення
типу змінної x_2
class ‹int› #змінна x_2
посилається на тип int
Приклад 2.
bool(0), bool(1), bool([4,6]),
bool(), bool(файл)
(False, True, True, False, True)
Приклад 3.
int(13.5), int(71), int(A, 16),
int(71, 8)
(13, 71, 10, 57)
(пояснення: значення функції
int(71, 8) має двійкове значення
111001, що еквівалентно 57)
Приклад 4.
float(25), float(13.75)
(25.0, 13.75)
Приклад 5.
str(149), str([21, 16, 35]),
str({x :10})
('149', '[21, 16, 35]', {'x'10})
Приклад 6.
list(2468) #перетворен-
ня рядка
['2', '4', '6', '8'] #список
list((2,4,6,8)) #перетворен-
ня кортежу
[2, 4, 6, 8] #список
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
23. 232.2. Поняття про...
На рис. 1 зображено найпростішу програму додавання двох
чисел із перетворенням типу str на тип int, яку збережено
з іменем prog_03.
Рис. 1. Програма додавання чисел із перетворенням типу str на тип int
За замовчуванням ці змінні мають тип str, тому їм потрібно
встановити відповідний тип.
Після запуску програми на екрані з’явиться запрошення
на введення значення змінної x. Уведемо, наприклад, число 26
і натиснемо клавішу Enter. З’явиться таке саме запрошення
для введення значення змінної y. Уведемо, наприклад, число
9 і натиснемо Enter. У результаті отримаємо результат 35.
Після того як змінні в програмі вже не потрібні, їх можна
видалити за допомогою функції del. Спроба використати змінні
х або y після виконання такого фрагмента (приклад 7) при-
зведе до видачі повідомлення про помилку, оскільки змінну
x видалено (автоматичним збирачем сміття в Python).
Приклад 7.
x = 10; x; y = 20; y
10
20
del x, y
x
Запитання для перевірки знань
1 Яка функція призначена для визначення типу
даних?
2 Які операції можуть виконуватися над даними
типу int?
3 Для чого призначено функцію bool?
4 На скільки типів даних може посилатися змін-
на в програмі?
5 Як можна видалити з програми непотрібні
імена змінних?
6 Який результат буде отримано після виконан-
ня інструкції int(D, 16)?
7 Змініть інструкцію 77 * '89' так, щоб її
було правильно виконано.
Завдання для самостійного виконання
1 Визначте тип змінної sk_1 після виконання
двох інструкцій:
s = Python
s = 21
2 Визначте, який буде отримано результат пі-
сля виконання інструкцій:
int(41.5), int(60), int(F, 16)
3 Визначте результат виконання інструкції:
list(40, 22, 5, 66)
Доведіть, що в інструкції немає помилок.
4 Запишіть і виконайте інструкцію перетворен-
ня вісімкового числа 47 на десяткове. Дове-
діть, що інструкцію виконано правильно.
5 Запишіть і виконайте інструкцію перетворен-
ня слова «процесор» на логічний тип. Дове-
діть, що інструкцію виконано правильно.
6 Складіть і виконайте програму додавання
чисел 37 і 29.7. Доведіть, що програму вико-
нано правильно.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
24. Розділ 124
2.3. Оператори і вирази
Пригадайте, які операції над числами використовували
ви в процесі програмування у 8 і 9 класах. Які для цього
застосовувалися оператори?
Операції над об’єктами виконуються за допомогою від-
повідних операторів. Об’єкти, над якими виконуються опе-
рації, називають операндами. Кожний оператор може вико-
нувати операції над строго визначеними для нього типами
операндів.
Залежно від типу об’єктів, над якими виконуються опера-
ції, оператори групуються в арифметичні, логічні, порівняння,
присвоювання й ін.
Арифметичні оператори призначені для виконання операцій
над числами. Якщо операція виконується над цілим і дійсним
числами, то ціле число буде спочатку перетворене на дійсний
тип, а потім виконуватиметься операція над дійсними числа-
ми. Результатом операції в цьому випадку буде число дійс
ного типу. Результатом операції ділення завжди буде число
дійсного типу.
Окрім звичайних арифметичних операцій, у мові Python та-
кож застосовуються такі операції (табл. 1).
Таблиця 1. Деякі операції у мові Python
Операція Позначка Приклад
Цілочислове ділення
(без остачі)
//
У результаті виконання операції 10.0 // 3.0
отримаємо результат 3.0
Ділення за модулем
(остача від ділення)
%
У результаті виконання операції 10 % 3.0
отримаємо результат 1.0
Піднесення до степеня **
У результаті виконання операції 10 ** 2
отримаємо результат 100
У мові Python використовуються арифметичні оператори
з присвоюванням (табл. 2).
Таблиця 2. Арифметичні оператори з присвоюванням
Оператор Позначка Приклад
Збільшення значення змінної
на вказану величину
+= x += 8 (еквівалентно x = x + 8)
Зменшення значення змінної
на вказану величину
–= x –= 8 (еквівалентно x = x – 8)
Множення значення змінної
на вказану величину
*= x *= 8 (еквівалентно x = x * 8)
Ділення значення змінної
на вказану величину
/= x /= 8 (еквівалентно x = x / 8)
До арифметичних операторів
належать такі загальновідомі
оператори:
•• додавання (+)
•• віднімання (–)
•• множення (*)
•• ділення (/)
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
25. 252.3. Оператори і вирази
Один із варіантів імпортування можна реалізувати за до-
помогою інструкції: from decimal import Decimal. Наприклад,
можна виконати такі інструкції:
from decimal import Decimal #імпортування
Decimal(1.123) – Decimal(0.5) #виконання операції
Decimal('0.623') #результат
Оператори порівняння порівнюють значення об’єкта, який
розташовано ліворуч від оператора, зі значенням об’єкта,
який розташовано праворуч від цього оператора. Якщо
умова виконується, повертається значення True, інакше —
False.
Склад, позначення та приклади використання операторів
наведено в табл. 3.
Таблиця 3. Оператори порівняння
Позначення Назва Пояснення Приклад
== Дорівнює
Якщо значення операндів однакові, повертається
значення True, інакше — False
23 == 40
False
!= Не дорівнює
Якщо значення операндів не однакові, повертається
значення True, інакше — False
!= 13
True
Більше
Якщо значення операнда зліва більше за значення
справа, повертається значення True, інакше —
False
5 204
False
Менше
Якщо значення операнда зліва менше за значення
справа, повертається значення True, інакше —
False
5 204
True
=
Більше або
дорівнює
Якщо значення операнда зліва більше або дорівнює
правому, повертається значення True, інакше —
False
17 = 17
True
=
Менше або
дорівнює
Якщо значення операнда зліва менше або дорівнює
правому, повертається значення True, інакше —
False
43 = 17
False
У мові Python використовуються такі логічні оператори:
not (ні), or (або), and (і). Вони виконуються над даними логіч-
ного типу, які мають два значення: True (істинне) і False (хибне).
Результати виконання цих операторів наведені в табл. 4.
Таблиця 4. Результати виконання логічних операторів
X Y not x x or y x and y
False False True False False
True False False True False
False True True True False
True True False True True
Із табл. 4 видно, що оператор not є унарним, тобто діє лише
для одного операнда. Результатом його виконання є значення,
протилежне значенню операнда x. Результатом виконання опе-
ратора or є значення False лише в тому випадку, коли обидва
Для точного виконання опера-
цій над числами в мові Python
призначений модуль decimal,
у якому є функція Decimal.
Цей модуль слід імпортувати до
коду програми. Можна імпорту-
вати модуль або його частину,
наприклад, окрему функцію.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
26. Розділ 126
операнди мають значення False. У всіх інших випадках отри-
мується значення True.
Результатом виконання оператора and є значення True лише
у випадку, коли обидва операнди мають значення True. У всіх
інших випадках отримується значення False.
Оператори над послідовностями виконують операції над
списками, кортежами та рядками.
Далі роз’яснено сутність та наведено приклади виконання
операцій над рядками (табл. 5) (операції над іншими типами
послідовностей описано в розділі 4).
Таблиця 5. Операції над рядками
Операція Позначення Приклад
Об’єднання
(призначене для з’єднання
послідовностей)
+
У результаті виконання операції над рядками
послі + довність отримаємо результат послідовність
Повторення
(призначене для повторення
послідовності задану кількість
разів)
*
ав * 5
'ававававав'
Перевірка на входження
послідовностей одна
до іншої
in
Якщо одна послідовність входить до іншої, видається
значення True, інакше — False. Приклад:
виконання in Результатом виконання операції
True
оператор in Результатом виконання операції
False
Перевірка на невходження
однієї послідовності до іншої
not in
Якщо одна послідовність входить до іншої, видається
повідомлення False, інакше — True. Приклад:
байт not in біт
True
байт not in байт і біт
False
Над рядками можуть виконуватися також дві операції
з присвоюванням (табл. 6).
Таблиця 6. Операції з присвоюванням
Операція Позначення Приклад
Об’єднання з присвоюванням +=
s = арифме; s += тичні; print(s)
арифметичні
Повторення задану кількість
разів
*=
s = пр; s *= 6; s
'прпрпрпрпрпр'
Оператори використовуються у виразах. Поняття виразу
в програмуванні аналогічне поняттю виразу в математиці.
Вираз мовою програмування складається з операндів, опе-
раторів і круглих дужок та визначає порядок виконання опе-
рацій над даними. Операнди виразу — це змінні, константи,
функції, методи. Найпростіший вираз складається з одного
операнда, наприклад, константи або змінної.
Python дуже популярна для
написання серверної частини
веб-сайтів для мобільних і веб-
застосунків та побудови різно-
манітних сервісів.
Python входить до трійки най-
більш значущих мов у сфері
машинного навчання й аналізу
великих обсягів даних. Як уні-
версальна мова Python має
застосування практично скрізь,
навіть в ігровій індустрії.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
27. 272.3. Оператори і вирази
Залежно від типу операндів і операцій, що використо-
вуються у виразі, розрізняють вирази:
• арифметичні (результат арифметичного типу);
• логічні (результат логічного типу);
• рядкові (результат рядкового типу).
Для кожного типу операцій існують чіткі правила їх запи-
су та виконання, з якими ми будемо знайомитися поступово
в процесі їх використання.
Наведемо основні правила для арифметичних виразів.
• Не можна застосовувати підрядкові
й надрядкові символи. Наприклад, вираз
2.5*(a–b2
) є неправильним.
Його слід записати так: 2.5*(a–b*b).
• Не можна записувати дві або більше опе-
рацій безпосередньо одна за одною. На-
приклад, вираз a*–b є некоректним.
Його слід записати так: a*(–b).
• Кожній дужці, що відкривається, у ви-
разі має відповідати дужка, що закриває-
ться.
• Типи операндів виразу мають бути узго-
джені. Якщо автоматично вони не узго-
джуються, слід використати засоби пе-
ретворення типів, що вже були описані
раніше.
Операції в арифметичному виразі виконуються з урахуван-
ням їх пріоритету, а операції, що мають однаковий пріори-
тет, — у порядку їх запису, тобто зліва направо.
Для мови Python існує вели-
ка кількість бібліотек для на-
укових досліджень, серед яких
NumPy, ScPy, Matplotlib.
Запитання для перевірки знань
1 Який тип даних отримується після виконання
операції ділення?
2 Який тип результату отримується після ціло-
числового ділення?
3 Поясніть сутність арифметичних операторів
із присвоюванням.
4 Які існують типи операторів?
5 У чому полягає сутність ділення за модулем?
6 Поясніть сутність оператора !=.
7 Як виконується логічний оператор and?
8 Поясніть сутність оператора or.
9 Які операції виконуються над рядками?
10 Поясніть сутність операції повторення рядків.
11 Наведіть приклад перевірки входження одно-
го рядка до іншого.
12 Наведіть приклад використання оператора
повторення з присвоюванням.
Завдання для самостійного виконання
1 Дано два числа. Виконайте їх цілочислове
ділення та ділення за модулем.
2 Дано два числа. Виконайте їх додавання
та множення з використанням відповід-
них арифметичних операторів із прис-
воюванням.
3 Дано два числа. Виконайте їх порівняння на
рівність і перевірте, чи більше перше число
за друге.
4 Виконайте об’єднання рядків слів опрацю
і вання.
5 Складіть найпростіший код перевірки вхо-
дження рядка Чемпіонат України в рядок
Чемпіонат України з футболу.
6 Складіть найпростіший код з’єднання рядків
зменшення значення і змінної з викори-
станням оператора об’єднання з присвою-
ванням.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
28. Розділ 128
2.4. Модулі, функції і методи для опрацювання
числових даних
Пригадайте, які функції опрацювання числових даних ви
використовували у 8 і 9 класах. Чи доводилося вам самостійно
розробляти функції опрацювання чисел?
У мові Python використовуються цілі числа (тип int), дійсні
(тип float) і комплексні (тут не розглядаються). Якщо в ариф-
метичній операції використовуються різні типи чисел, то чис-
ла типу int автоматично перетворюються на тип float, і резуль-
тат отримується типу float.
Далі будуть розглядатися операції лише в десятковій си
стемі числення.
Для роботи з числами можуть застосовуватися вбудова-
ні у мову Python функції, основні з яких наведено в табл. 1.
Таблиця 1. Основні функції для роботи з числами
Функція Призначення Приклад
int([об’єкт]) Перетворює об’єкт на ціле число
int(8.7), int(57)
(8, 57)
float([число або рядок])
Перетворює ціле число або рядок на
дійсне число
float(23), float(11.7)
(23.00, 11.7)
round(число[,кількість
знаків після коми]))
Повертає найближче ціле, якщо кіль-
кість знаків не вказана, а також кількість
знаків після коми, якщо вона вказана
round(0.47), round(45.347, 1)
(0, 45.3)
abs(число) Повертає абсолютне значення
abs(22), abs (–66)
(22, 66)
pow(число,степінь) Повертає число в степені
pow(10, 2), pow (2, 4)
(100, 16)
max(числа через кому) Повертає максимальне значення
max(9, 4, 7), max(5, 9.7, 3)
(9, 9.7)
min(числа через кому) Повертає мінімальне значення
min(21, 5, 19), min(7, 2.5, 6)
(5, 2.5)
sum([числа],початкове
значення)
Повертає суму чисел. Якщо вказане
початкове значення, то воно додається
до суми
sum([4, 5, 7]), sum([12, 3], 33)
(16, 48)
Усі типи даних мови Python є класами. Класи містять мето-
ди. Метод — це програма, яка виконує ту чи іншу функцію.
Метод викликається для конкретного об’єкта. Для його викли-
ку спочатку вказується об’єкт, потім крапка, за якою слідує
ім’я метода: об’єкт.ім’я методу.
Кожний клас підтримує свої методи.
Модуль math, який містить стандартні константи та функції,
використовують для роботи з числами. Для роботи з констан-
тами та функціями необхідно імпортувати його в програму за
допомогою інструкції import math.
Числа можуть подаватися
в десятковій, двійковій, вісім-
ковій і шістнадцятковій систе-
мах числення. У процесі вико-
нання арифметичних операцій
над числами в різних системах
числення вони автоматично
перетворюються на десяткову
систему числення.
Модуль math містить константи:
число pi:
import math
math.pi
3.14159265389793
число e:
math.e
2.718281828459045
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
29. 292.4. Модулі, функції...
Найуживаніші функції модуля math наведено в табл. 2.
Таблиця 2. Найчастіше вживані функції модуля math
Функція Призначення Приклади
sqrt() Корінь квадратний
math.sqrt(85)
9.219544457292887
log10()
Логарифм
десятковий
math.log10(15)
1.1760912590556813
ceil()
Найближче більше
ціле
math.ceil(3.213)
4
floor()
Найближче менше
ціле
math.floor(6.79)
6
pow(число,
степінь)
Підносить число
до степеня
math.pow(8, 3)
512.0
fmod() Остача від ділення
math.fmod(35, 3)
2.0
factorial() Факторіал числа
math.factorial(4)
24
Модуль random містить функції, які генерують випадкові
числа. На початку використання функцій необхідно цей модуль
імпортувати в програму за допомогою команди import random.
У табл. 3 наведено найуживаніші з них.
Таблиця 3. Деякі функції модуля random
Функція Призначення Приклад
random()
Генерує випадкове число від 0.0 до 1.0
[0.0, 1.0) 1.0 не включено до діапазону
import random
random.random()
0.4632200164843052
uniform(початок,кінець)
Генерує дійсне випадкове число в діапазоні від
«початок» до «кінець». 1.0 включено до діапазону
random.uniform(3, 9)
4.951275580428769
randint(початок,кінець)
Генерує ціле випадкове число в діапазоні від «по-
чаток» до «кінець». 1.0 не включено до діапазону
random.randint(3, 8)
7
сhoice(послідовність)
Вибирає з послідовності (рядка, списку або
кортежу) випадковий елемент
random.choice(«Python»)
'h'
Модуль math містить:
• стандартні тригонометричні
функції: (sin(), cos(), tan());
• обернені тригонометричні
функції: asin(), acos(), atan();
• функцію перетворення радіанів
на градуси degrees();
• функцію перетворення градусів
на радіани radians();
• функцію експоненти exp().
Пам’ятайте, що для виконання
наведених у таблиці прикладів
спочатку необхідно імпортува-
ти модуль math за допомогою
команди import math.
Запитання для перевірки знань
1 У яких системах числення можуть подаватися
числа?
2 Для чого призначено функцію float?
3 Для чого призначено модуль math?
4 Для чого призначено функцію pow?
5 Для чого призначено модуль random?
6 Наведіть приклад використання функції round.
7 Яку структуру має функція sum?
Завдання для самостійного виконання
1 Визначте максимальне та мінімальне число
в послідовності: 38, 20, 5, 40, 13.
2 Початкове значення суми дорівнює 14. До-
дайте до неї такі числа: 23, 50, 37, 13.
3 Визначте випадкове число в послідовності:
23, 40, 29, 33, 17.
4 Обчисліть суму факторіалів чисел 5 і 7.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
30. Розділ 130
3. Реалізаціябазовихалгоритмічнихконструкцій
3.1.Реалізаціяалгоритмівізрозгалуженням
Відомо, що існує три базові структури алгоритмів: слідування,
розгалуження та повторення. Пригадайте, якими операторами
мови ви, можливо, реалізовували розгалуження й повторення.
В алгоритмах із розгалуженням залежно від умови вико-
нуються ті чи інші інструкції.
Існують три типи розгалуження: одноальтернативне (не-
повне галуження), двоальтернативне (повне галуження) і ба-
гатоальтернативне (вибір, варіант).
• Одноальтернативне розгалуження
Графічну схему одноальтернативного розгалуження зобра-
жено на рис. 1.
Одноальтернативне розгалуження виконується так. Пере-
віряється Умова, і якщо вона істинна (True), то виконується
Оператор 1. Інакше буде виконуватися оператор, який розта-
шовано безпосередньо за оператором розгалуження.
У мові Python цей тип розгалуження реалізується операто-
ром умовного переходу в неповній формі:
if логічний вираз:
блок S
У наведеному фрагменті (приклад 1) умовою є логічний ви-
раз x4. Якщо він має значення True, то обчислюється зна-
чення виразу y = 2 * x + 5, потім — виразу z = y + x * x. Після
завершення їх обчислення буде виконуватися оператор, який
розташовано безпосередньо за оператором умовного переходу.
Якщо ж логічний вираз x4 має значення False, вказані ви-
рази не обчислюються, а управління буде одразу передано опе-
ратору, що слідує за оператором умовного переходу.
Звернемо увагу на те, що в наведеному прикладі в операто-
рі умовного переходу міститься блок із двох операторів, який
починається після чотирьох пробілів.
Рис. 1. Графічна схема
одноальтернативного розгалуження
True
False
Оператор 1
Умова
Приклад 1.
І варіант запису:
if x 4:
y = 2 * x + 5;
z = y + x * x
ІІ варіант запису:
if x 4:
y = 2 * x + 5; z = y + x * x
В один рядок 2 оператори запи-
сують через «;».
Приклад 2.
У банк покладено 5000 грн під
20 % річних. Якщо гроші зніма-
ються раніше зазначеного терміну,
відсотки не нараховуються. Програ-
му обчислення реальної суми, яку
отримано через k днів, зображено
на рис. 2.
Примітка. У змінній s спочатку
зберігається початкова сума вкладу,
а потім сума, яку отримано з банку.
Рис. 2. Код обчислення суми вкладу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
31. 313.1. Реалізація алгоритмів...
• Двоальтернативне розгалуження
Графічну схему двоальтернативного розгалуження зобра-
жено на рис. 3.
Двоальтернативне розгалуження виконується так: переві-
ряється Умова і, якщо вона має значення True, то виконується
Оператор 1. Інакше виконується Оператор 2.
У мові Python цей тип розгалуження реалізується операто-
ром такої структури:
if логічний вираз:
блок s1
else:
блок s2
Звернемо увагу на те, що безпосередньо за ключовими сло-
вами if і else може слідувати один оператор або блок опера-
торів. Нагадаємо, оператори блоків починаються від початку
рядка через чотири пробіли.
• Багатоальтернативне розгалуження
У цьому типі розгалуження реалізується розгалуження
з багатьма варіантами вибору. Графічну схему розгалуження
з трьома можливими варіантами зображено на рис. 6.
Рис. 3. Графічна схема
двоальтернативного розгалуження
TrueFalse
Оператор 2 Оператор 1
Умова
Приклад 3.
if x==10:
y = Python
print (y=, y)
else:
y = Pascal
print (y=, y)
У цьому прикладі, якщо значення змінної x
дорівнює 10, виводиться повідомлення Python,
інакше — Pascal.
Приклад 4.
Довжина сторони квадрата дорівнює
a, радіус кола — r. Чи можна у квадрат
уписати коло?
Програму розв’язування задачі наведе-
но на рис. 4.
Рис. 4. Код визначення можливості вписати коло у квадрат
Приклад 5.
Із м. Києва до м. Чернігова на велосипеді
о 8.00 виїхав Василь й рухався 5,3 год. Потім
о 9.00 виїхав Микола і рухався за тим самим
маршрутом 4,2 год. Хто з велосипедистів при-
був до Чернігова першим?
Програму розв’язування задачі наведено на
рис. 5.
Рис. 5. Код визначення першого велосипедиста
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
32. Розділ 132
Вираз B повинен мати ціле значення. Якщо його значення
дорівнює одиниці, виконується Оператор 1, якщо вираз має
значення два, виконується Оператор 2, а якщо три — Опера-
тор 3. Після виконання одного з цих операторів виконується
Оператор, що міститься після оператора багатоальтернативного
розгалуження.
У випадку якщо вираз В не дорівнює жодному з переліче-
них значень, одразу виконується Оператор (рис. 6).
У мові Python розгалуження за багатьма варіантами вибору
реалізується оператором такої структури:
if вираз == значення_1:
блок_1
elif вираз == значення_2:
блок_2
…
elif вираз == значення_N:
блок_N
else:
блок_N+1
Отже, кожне значення виразу має бути унікальним кон-
стантним виразом. Значення виразу порівнюється з кожним
значенням в операторах elif у порядку їх розташування. Якщо
певне значення вираз збігається зі значенням оператора elif, то
виконується той блок операторів, що розташований безпосе-
редньо за цим оператором. Якщо значення вираз не збігається
з жодним значенням в операторах elif, виконується блок N+1.
Приклад 6.
Призерами чемпіонату України
з футболу є команди: 1 — «Динамо»,
2 — «Шахтар», 3 — «Зоря». За но-
мером призера необхідно визначити
назву команди.
Програму розв’язування задачі
зображено на рис. 7.
Рис. 7. Код визначення призера
Рис. 6. Графічна схема
розгалуження з трьома
варіантами вибору
3
2
1
Оператор
Аналіз
виразу В
Оператор
1
Оператор
2
Оператор
3
Запитання для перевірки знань
1 Які існують типи розгалужень алгоритмів?
2 Яким оператором мови Python реалізується
одноальтернативне розгалуження?
3 Сформулюйте сутність двоальтернативного
розгалуження.
4 Які помилки є в записі оператора:
if x = 3
y = 2, p = y = y * 4.1
5 Наведіть задачу, для розв’язання якої викори-
стовується двоальтернативне розгалуження.
6 Запишіть структуру оператора двоальтерна-
тивного розгалуження.
7 Поясніть на прикладі сутність багатоальтерна-
тивного розгалуження.
8 Чи можна будь-який алгоритм розгалуження
реалізувати тільки оператором одноальтерна-
тивного розгалуження? Наведіть приклад.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
33. 333.2. Вкладені оператори...
Завдання для самостійного виконання
1 Оклад працівника або працівниці дорівнює s
грн. За якісне й дострокове виконання зав-
дання нараховується премія в розмірі 50 %
окладу. Розробіть програму визначення ре-
альної заробітної платні.
2 Дано два дійсних числа. Розробіть програму,
за допомогою якої менше число замінюєть-
ся нулем, а більше — одиницею.
3 Дано ціле число n. Розробіть програму, за
допомогою якої це число збільшується на 7,
якщо воно більше 15, і зменшується на 5,
якщо воно менше або дорівнює 15.
4 Тренерка формує команду для гри в баскетбол
з учениць, які на зріст не нижчі ніж 180 см.
Розробіть програму визначення, чи потрапить
у цю команду дівчина зростом h см?
5 Дано рівносторонній трикутник зі сторо-
ною b. Розробіть програму визначення, чи
можна в трикутник уписати коло з радіусом r.
6 Відомі три найкращі результати учнівства
школи в стрибках у довжину. Розробіть про-
граму, за допомогою якої за результатами
стрибків визначаються прізвища учнів.
7 У п’ятницю в 9 класі такі уроки: 1 — історія,
2 — математика, 3 — географія, 4 — інфор-
матика, 5 — фізкультура. Розробіть програ-
му, за допомогою якої визначається назва
предмета за його номером у розкладі.
8 Знайдіть в Інтернеті та складіть список із
п’яти найбільших міст України. Розробіть про-
граму, за допомогою якої визначається назва
міста за його номером у цьому списку.
3.2. Вкладеніоператориумовногопереходу
На практиці трапляються випадки, коли виконання або не
виконання події залежить не від однієї умови, а від кількох.
Пригадайте такі випадки. Як, на вашу думку, можна їх реа
лізувати операторами умовного переходу?
Вкладені оператори умовного переходу — це опе-
ратори умовного переходу, які входять до складу ін-
ших операторів умовного переходу.
Існують різні конструкції вкладених операторів. Один із
варіантів конструкції вкладених операторів умовного переходу
подано на графічній схемі (рис. 1).
Рис. 1. Графічна схема алгоритму зі вкладеним умовним переходом
True
True
False
False
Оператор 1 Оператор 2 Оператор 3
Умова
Умова
Розробники мови Python є при-
хильниками певної філософії
програмування, яку називають
«The Zen of Python» («Дзен Пай-
тона»). Її текст можна отримати
в інтерпретаторі Python за до-
помогою команди import this
(лише один раз за сесію).
Автором цієї філософії вважає-
ться Тім Пейтерс.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
34. Розділ 134
Розглянемо на прикладі алгоритм обчислення виразу
ax, якщо x0 i a≥0;
y= 2ax, якщо x0 i a0;
2, якщо x≤0.
На рис. 2 зображено фрагмент схеми алгоритму, що реалі-
зує вираз ax, якщо x0 i a≥0.
Рис. 2. Графічна схема алгоритму обчислення значення виразу
True
True
False
False
у=2 у=2ах у=ах
x0
а≥0
Мовою Python цей алгоритм можна реалізувати так:
If x 0: #перший оператор if
If a = 0: #другий оператор if
y = a * x
else: #для другого оператора if
y = 2 * a * x
else: #для першого оператора if
y = 2
Алгоритм, наведений на рис. 2, реалізується програмою,
яку зображено на рис. 3.
Рис. 3. Код обчислення значення арифметичного виразу
Текст філософії «The Zen
of Python» («Дзен Пайтона»)
• Гарне краще за потворне.
• Явне краще за неявне.
• Просте краще за складне.
• Складне краще за заплутане.
• Плоске краще за вкладене.
• Розріджене краще за щільне.
• Легкість читання має значення.
• Особливі випадки не є на-
стільки особливими, щоб
порушувати правила. Хоча
практичність є важливішою
за бездоганність.
• Помилки ніколи не повинні
проходити непомітно. Якщо
їх приховування не прописа-
но явно.
• Зустрівши неоднозначність,
опирайтеся спокусі вгадати.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
35. 353.2. Вкладені оператори...
Інший варіант конструкції з вкладеними операторами умов-
ного переходу подано на рис. 4.
Рис. 4. Графічна схема алгоритму зі вкладеним умовним
переходом
True
True
False
False
Оператор 1 Оператор 2 Оператор 3
Умова
Умова
Розглянемо ще один приклад застосування конструкції зі
вкладеними операторами умовного переходу для розв’язування
задачі.
Python використовується для
розв’язування великої кількос-
ті як наукових, так і бізнес-
завдань.
У науковій сфері мову Python
широко використовують захід-
ні вчені-непрограмісти (матема-
тики, фізики, біологи) завдяки
простоті вивчення та наявності
популярних додаткових потуж-
них бібліотек.
Приклад.
За рейтингом УЄФА футбольні команди роз-
ташовано так: «Реал», «Барселона», «Баварія»,
«Челсі», «Атлетіко», «Бенфіка», «Шальке-04»,
«Порту», «Арсенал», «Манчестер». На рис. 5
наведено програму, яка за номером команди
визначає країну.
Наведено один із варіантів виконання про-
грами:
Рис. 5. Код визначення назви країни
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
36. Розділ 136
Запитання для перевірки знань
1 Поясніть сутність вкладеного оператора
умовного переходу.
2 Накресліть графічну схему алгоритму зі вкла-
деним умовним переходом.
3 Поясніть правило запису блоку операторів
у вкладеному операторі умовного переходу.
4 Наведіть приклад алгоритму, що реалізується
за допомогою вкладеного оператора умовно-
го переходу.
5 Проаналізуйте порядок виконання алгоритму
(див. рис. 2) для випадку х0, а0.
6 Проаналізуйте порядок виконання коду (див.
рис. 3), якщо вводяться такі значення: а=0,
х=0.
Завдання для самостійного виконання
1 Дано три дійсних числа a, b, c. Якщо abc,
кожне число збільшується вдвічі, інакше —
кожне число зменшується на одиницю. Роз-
робіть програму реалізації цього завдання.
2 Дано три сторони трикутника. Розробіть
програму, за допомогою якої визначається,
чи є цей трикутник прямокутним.
3 Дано три сторони трикутника. Розробіть
програму для визначення, чи є цей трикут-
ник рівнобедреним.
4 Літак вилітає за розкладом із Києва в Мюн-
хен, якщо швидкість вітру в Києві менше v,
а хмарність у Мюнхені не менше h. Розро-
біть програму для визначення, чи вилетить
літак за розкладом.
5 Шкільна команда шахістів із трьох учнів по-
трапляє до фінальних міських змагань у ви-
падку, якщо у відбірних змаганнях кожен
учень набере не менше 5 очок. Розробіть
програму, за допомогою якої визначається,
чи потрапить команда до фінальних зма-
гань, якщо перший учень набрав a очок,
другий — b очок і третій — c очок.
6 У Всеукраїнській учнівській олімпіаді з ін-
форматики з однієї школи беруть участь два
учні. Щоб потрапити до української коман-
ди для участі в міжнародній олімпіаді, по-
трібно набрати не менше k балів. Перший
учень набрав a балів, а другий — b балів.
Розробіть програму, за допомогою якої ви-
значаються всі варіанти потрапляння до цієї
команди учнів школи.
7 Перед останнім туром чемпіонату Украї-
ни з футболу склалася така ситуація. Щоб
команда «Динамо» (Київ) стала чемпіоном,
їй потрібно виграти в команди «Ворскла»,
і щоб «Шахтар» водночас програв «Дніпру».
Розробіть алгоритм зі вкладеним умовним
оператором визначення, чи стане «Динамо»
чемпіоном.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
37. 373.3. Реалізація циклічних...
3.3. Реалізація циклічнихалгоритмів
Пригадате, яку алгоритмічну структуру називають
повторенням (циклом), які існують види циклів.
Для запису алгоритмів із повторенням (циклів) мовою
Python використовують два види операторів циклу: з параме-
тром та з умовою.
3.3.1. Цикли з параметрами
Повторення (цикл) — це алгоритмічна структура, за допо-
могою якої та сама послідовність дій виконується багаторазо-
во для різних значень змінних.
Серію інструкцій, які виконуються багаторазово під час
виконання циклу, називають тілом циклу.
У циклах із параметром (циклах зі змінною циклу) кіль-
кість повторень інструкцій тіла циклу заздалегідь відома.
Існують різні варіанти циклів із параметрами. Структуру
одного з них зображено на рис. 1. Тут змінна i — це параметр
циклу (змінна циклу). Блок Оператор є тілом циклу. У бло-
ці може бути одна інструкція або кілька. Змінна n містить
кінцеве значення змінної циклу, а змінна а — її початкове
значення.
На рис. 2 наведено фрагмент блок-схеми циклічного ал-
горитму для отримання таблиці множення на 8. Результат
множення чисел від 1 до 10 на 8 отримується у змінній p й
одразу виводиться. У цьому алгоритмі тілом циклу є інструк-
ції p=8*i, Виведення p, i=i+1, які виконуються 10 разів (можна
записати скорочено і+=1). Інструкція i=1 виконує підготовку до
реалізації інструкцій тіла циклу, а за допомогою інструкції i≤10
здійснюється перевірка завершення їх виконання.
Як бачимо, у цій схемі змінна і виконує функцію лічиль-
ника циклів. Як тільки значення цієї змінної стане біль-
ше 10, виконання циклу завершується. Такий принцип реа-
лізації циклів із параметром застосовується в багатьох мовах
програмування, у тому числі найсучасніших.
У мові Python теж застосовується змінна циклу, але її
значення послідовно вибираються зі значень об’єкта.
Цикли з параметром у мові Python реалізуються операто-
ром циклу for (для), який має таку загальну структуру:
for змінна циклу in об’єкт:
блок інструкцій тіла циклу
[ else:
блок інструкцій # виконується, якщо
не використовується
оператор break
]
так
Оператор
i=a
i=i+1
i≤n
ні
Рис. 1. Фрагмент графічної
схеми циклу з параметром
так
p=8*i
i=1
i=i+1
i≤10
ні
Виведення р
Рис. 2. Фрагмент графічної
схеми циклічного алгоритму
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
38. Розділ 138
де:
об’єкт — може бути рядок, список, словник та інші типи
даних, які підтримують реалізацію циклу. Тип об’єкта про-
граміст може також створити самостійно;
змінна циклу — поточне значення об’єкта. Початкове її
значення — це перший елемент об’єкта. У другому циклі ця
змінна набуде значення другого елемента об’єкта і так далі
до останнього.
Блок інструкцій тіла циклу буде виконуватися до тих пір,
доки змінна циклу послідовно не набуде усіх значень, що міс-
тяться в об’єкті. Наприклад, якщо об’єктом є квадрат, сторони
якого набувають таких значень: 2, 5, 9, 10, то цикл буде ви-
конуватися 4 рази для значень змінної циклу 2, 5, 9 і 10.
Найпростіша структура оператора for така:
for змінна циклу in об'єкт:
блок інструкцій тіла циклу
Розглянемо, як виконується оператор циклу.
Крок 1
На початку виконання циклу змінна циклу набуває значення першого еле-
мента об’єкта. Оператор in генерує логічне значення True, і виконується
блок інструкцій тіла циклу.
Крок 2
На цьому кроці змінна циклу набуде значення другого елемента об’єкта
й також буде генеруватися значення True, у результаті чого буде виконано
блок інструкцій тіла циклу.
Крок 3
Після того як усі елементи об’єкта будуть перебрані, оператор in згенерує
значення False, блок інструкцій тіла циклу не виконається, а управління
буде передано першій інструкції, що розташована безпосередньо за бло-
ком інструкцій тіла циклу.
Інструкції у квадратних дужках
є необов’язковими. Якщо всере-
дині циклу не використовується
оператор break (із ним ми по-
знайомимося пізніше), то після
завершення циклу виконувати-
меться блок інструкцій, що міс-
титься після слова else.
Розробити програму реалізації алгоритму
отримання таблиці множення на 8.
Блок-схему алгоритму отримання таблиці
множення на 8 зображено на рис. 2, а програ-
му його реалізації — на рис. 3.
У цьому прикладі застосовується функція
range(). Загальна структура цієї функції така:
range ([початок,] кінець [, крок ])
Як бачимо, обов’язковим є лише параметр
кінець. Саме така структура оператора вико-
ристана в наведеному прикладі. За допомогою
функції range(10) формується діапазон чисел
від 0 до 10, тому змінна циклу спочатку на-
буде значення нуль. Але нам не потрібно мно-
жити число 8 на нуль. Тому значення змінної
i одразу збільшується на одиницю (i = i+1).
Після виконання трьох інструкцій тіла циклу
змінна i набуде чергового значення функції
range(), тобто значення одиниці, яке наступ-
ним оператором збільшується на одиницю,
у результаті чого число 8 буде помножене
на 2. Цей процес повторюється до отримання
результату 8*10.
Рис. 3. Код множення чисел на 8
Приклад 1
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
39. 393.3. Реалізація циклічних...
Приклад 2.
У банк клієнт поклав
10000 грн під 20 % річних.
Визначити суму вкладу за
кожний із п’яти років. Про-
граму реалізації цього завдан-
ня зображено на рис. 4.
Рис. 4. Код обчислення суми вкладу
Приклад 3.
Дано рядок символів. Програму
виведення кожного символу з ряд-
ка через один пробіл і підрахунку
в ньому кількості символів зображено
на рис. 5.
У цьому прикладі об’єктом у струк-
турі оператора for є рядок. Змінна
циклу s послідовно набуває значень,
починаючи з букви м до букви р. Ар-
гумент end= в операторі print забез-
печує виведення символів рядка через
пробіл в одному рядку.
Рис. 5. Код обчислення кількості букв у рядку
Результат виконання програми має такий вигляд:
Приклад 4.
У заданій послідовності
комп’ютерних термінів під-
рахувати кількість конкрет-
ного терміна й вивести його
стільки разів, скільки він по-
вторюється.
На рис. 6 наведено код, за
допомогою якого в заданій
послідовності виводиться сло-
во «біт» і підраховується його
кількість.
Результат виконання про-
грами має такий вигляд:
Рис. 6. Код обчислення кількості заданих слів
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
40. Розділ 140
У циклах з умовою кількість виконання інструкцій тіла
циклу заздалегідь невідома: вона завершується після досяг-
нення певної умови.
• Цикли з передумовою
Графічну схему циклу з передумовою зображено на рис. 7.
Блок Оператор — це одна або кілька інструкцій тіла циклу,
які виконуються доти, доки умова має значення True (гілка
Так). Умова виконання інструкцій тіла циклу перевіряється
перед початком їх виконання. Це означає, що оператори тіла
циклу можуть бути не виконані жодного разу.
У мові Python цикли з передумовою реалізуються опе-
ратором while, який має таку структуру:
початкове значення
while умова):
блок інструкцій тіла циклу
зміна початкового значення
[ else:
інструкції, які не виконуються,
якщо не використовується оператор break
]
Тут умова — це вираз, який має значення True або False.
3.3.2. Циклизумовою
так
Оператор
Умова
ні
Рис. 7. Графічна схема циклу
з передумовою
Існує два види циклів з умо-
вою: цикли з передумовою
і цикли з післяумовою.
Приклад 5.
Автомобіль рухаюється зі швид-
кістю v км/год і раптом гальмує. За
першу секунду його швидкість падає
на 10 км/год, а за кожну наступну
секунду — зменшується на 10 км/год
від значення за попередню секунду.
Через скільки секунд він зупиниться?
На рис. 8 наведено код програми
моделювання процесу гальмування.
Тут змінна k — це кількість секунд
гальмування, змінна y — значення
швидкості гальмування автомобіля
за поточну секунду.
Рис. 8. Код обчислення часу гальмування автомобіля
Приклад 6.
Мінімальна кількість розрядів (n)
для адресації k байт пам’яті визначає-
ться нерівністю 2n
k.
Програму визначення кількості
розрядів зображено на рис. 9.
Рис. 9. Код визначення кількості розрядів
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
41. 413.3. Реалізація циклічних...
• Цикли з післяумовою
Графічну схему циклу з післяумовою зображено на рис. 10.
У таких алгоритмах спочатку виконуються оператори тіла
циклу, а потім перевіряється умова. Якщо умова має значення
True (Так), виконання операторів тіла циклу продовжується.
Як тільки умова набуде значення False (Ні), виконання опе-
раторів тіла циклу припиняється й управління передаєть-
ся першому оператору, розташованому за оператором циклу.
У мові Python відсутній оператор, який безпосередньо реалі-
зує такий варіант циклу.
У мові Python цикли з післяумовою можна реалізувати
такою конструкцією оператора while:
while True :
блок інструкцій тіла циклу
if умова : break
так
Оператор
Умова
ні
Рис. 10. Графічна схема циклу
з післяумовою
Приклад 7.
Батискаф заглиблюється в океан. За пер-
шу хвилину батискаф заглиблюється на 10 м,
а за кожну наступну хвилину він заглиб-
люється на 10 % менше, ніж за попередню
хвилину. Через скільки хвилин батискаф до-
сягне глибини 100 м?
Програмний код моделювання процесу за-
глиблення батискафа зображено на рис. 11.
Тут k — кількість хвилин заглиблення, h —
заглиблення за поточну хвилину, H — поточне
значення глибини заглиблення. Оператор break
здійснює переривання виконання циклу.
Рис. 11. Код моделювання процесу заглиблення батискафа
Приклад 8.
У банк покладено 10 000 грн
під 15 % річних. Кожного
року з рахунка знімається
800 грн. Через скільки ро-
ків сума вкладу перевищить
14 000 грн? Програмний код
розв’язання подано на рис. 12.
На екран буде виведено: Через
5 років.
Тут s — поточна сума вкла-
ду, k — кількість років вкладу.
Рис. 12. Код обчислення кількості років вкладу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
42. Розділ 142
Оператори continue і break застосовуються всередині опера-
торів тіла циклу та призначені для їх переривання.
• Оператор continue перериває цикл і повертає управління
на початок циклу. Це дозволяє перейти до наступної іте-
рації циклу до завершення виконання всіх інструкцій
усередині циклу.
На рис. 13 зображено програму виведення усіх парних чи-
сел від 6 до 30, окрім чисел у діапазоні від 13 до 25 включно.
Рис. 13. Код із використанням оператора continue
• Оператор break здійснює переривання та вихід із циклу
навіть у тому випадку, коли всі ітерації ще не виконані.
Цей оператор уже використовувався в розглянутих рані-
ше прикладах.
На рис. 14 зображено ще один приклад програми
з використанням оператора break. У ньому використовує-
ться нескінченний цикл уведення чисел та обчислення їх
суми. Але цикл переривається, якщо буде уведено слово
«кінець».
Рис. 14. Код із використанням оператора continue
3.3.4. Вкладеніцикли
Циклічні алгоритми, розглянуті раніше, не містять у собі
інших циклів, тому їх називають простими циклами.
Вкладеними називають цикли, що містяться в іншому
циклі.
Цикл, що входить до складу іншого циклу, назива-
ють внутрішнім, а цикл, який містить інший цикл, —
зовнішнім.
3.3.3. Операториcontinueіbreak
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
43. 433.3. Реалізація циклічних...
На рис. 15 наведено приклад блок-схеми алгоритму
зі вкладеним циклом, у якому обчислюються площі 30 пря-
мокутників, сторони яких набувають таких значень:
a = 3, 4, 5, 6, 7;
b = 2, 4, 6, 8, 10, 12.
Код програми, що реалізує цей алгоритм, зображено на
рис. 16.
Рис. 16. Код обчислення площ прямокутників
так
a≤7
так
b≤12
ні
Початок
Кінець
Виведення
S
a=3
b=2
S=a*b
b=b+2
a=a+1
ні
Рис. 15. Графічна схема алгоритму
зі вкладеним циклом
Завдання для самостійного виконання
1 Розробіть код обчислення суми для чисел:
2, 7, 21, 9, 33, 13.
2 Розробіть код, обчислення суми непарних
чисел, що більші 7, але менші 25.
3 Розробіть код обчислення суми чисел нату-
рального ряду, максимальне значення якого
не перевищує 7.
4 Перший член геометричної прогресії 6, а її
знаменник — 0.5. Розробіть код обчислення
значень членів прогресії, більших 0.6, і ви-
значення номера останнього члена прогре-
сії, що підсумовується.
5 Дано куб, сторони якого набувають п’ять
значень:
3, 4.5, 6, 7.5, 9.
Розробіть код визначення об’єму для кожно-
го з них.
6 Радіус першої кулі дорівнює 2 см, а раді-
ус кожної наступної збільшується на 0.5 см.
Розробіть код для визначення бокових по-
верхонь перших шести куль.
7 Відомо результати плавання вільним стилем
на дистанції 50 м п’яти учнів кожного з трьох
10 класів школи. Розробіть код, за допомо-
гою якого визначається середній час запливу
учнями кожного класу.
8 У банк покладено S грн під N відсотків річних.
Розробіть код, за допомогою якого визначаєть-
ся кількість років, через які сума вкладу буде
не менше N грн.
Запитання для перевірки знань
1 Які існують види циклічних алгоритмів?
2 Поясніть на прикладі сутність параметра і тіла циклу.
3 Для чого призначено оператор break; оператор continue?
4 Накресліть графічну схему циклу з параметром.
5 Яку структуру має оператор циклу for?
6 Яку структуру має оператор циклу з передумовою?
7 Наведіть приклад вкладеного циклу.
8 Як у мові Python можна реалізувати цикл із післяумовою?
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
44. Розділ 144
4. Вбудовані типи даних та їх опрацювання
У будь-якій мові програмування дані поділяють на дві
основні групи: прості (скалярні) та структуровані.
У мові програмування Python також існує поділ на змінюва-
ні (mutable) та незмінювані (inmutable) типи даних. Структуро-
вані дані поділяють на лінійні, табличні й ієрархічні.
У лінійній структурі адреса елемента даних однозначно ви-
значається його номером (індексом) у цій структурі. Лінійними
структурами є рядкові типи даних і всі типи послідовностей.
У табличних структурах адреса елемента даних визначається
кількома індексами. Наприклад, у двовимірних масивах його
адреса визначається номером рядка й номером стовпця.
В ієрархічних структурах адреса кожного елемента визна-
чається маршрутом доступу від вершини структури до цього
елемента.
Далі розглянемо ті структури даних, які передбачені навчаль-
ною програмою для 10 класу, решта вивчається в 11 класі.
4.1. Списки, стеки, черги
Ви неодноразово використовували в повсякденному житті
термін «список». Спробуйте дати йому означення. Чи
доводилося використовувати його в мові програмування, яку
ви вивчали раніше?
4.1.1. Структура списків і операції над ними
Список у мові Python — це впорядкована колекція*
об’єктів будь-якого типу у квадратних дужках, які від-
окремлюються один від одного комою.
У прикладі 1 об’єктами списку є числа, рядки та список.
У списках можна змінювати значення його елементів,
збільшувати та зменшувати кількість елементів, здійснювати
пошук потрібних елементів і впорядковувати його елементи.
Отже, список є об’єктом, що змінюється, тобто належить до
змінюваних типів даних. Самі списки можуть бути вкладені
в об’єкти інших типів.
Список є одним з основних типів даних. Він викори
стовується в мові Python частіше за інші.
На основі списків у програмі можна створювати та
опрацьовувати структури даних довільної складності.
Далі розглянемо лише основні операції, якими є, напри-
клад, звернення до елемента за його індексом, отримання зрі-
зу, конкатенація, повторення, перевірка на входження й ін.
* Змінювана впорядкована колекція (тобто індексована послідовність).
У мові програмування Python
лінійні й табличні структури
вбудовані в саму мову, що сут-
тєво полегшує та спрощує ко-
ристувачу роботу з ними.
Приклад 1.
[5, файл, w, 21, [1, 2, 3]].
Списки деякою мірою нагаду-
ють динамічні масиви вказів-
ників, але в масивах значення
елементів можуть бути лише
одного типу. Мова Python
має значну кількість операцій,
функцій і методів опрацювання
списків.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
45. 454.1. Списки, стеки, черги
Списки можуть бути одновимірними і багатовимірними.
Розглянемо спочатку одновимірні списки. Позиція елемента
в списку задається індексом, який починається з нуля.
Списки можна створювати простим переліченням елементів
списку в квадратних дужках (приклад 2).
Розглянемо операції, які можна виконувати над списками.
Щоб звернутися до
елемента списку, необхідно
у квадратних дужках
зазначити індекс
елемента
a_1 = [7, 20, миша]
a_1[2]
'миша'
# виведення другого елемента
Значення елементів списку
можна змінювати шляхом
присвоювання їм нових
значень
b_1 = [21, 11, 17, 24]
b_1 [2] = 15
b_1
[21, 11, 15, 24]
# зміна значення другого елемента
# виведення списку
Елементи списку можна
присвоїти кільком
змінним
Якщо елементів списку
більше кількості змінних,
зайві елементи можна
присвоїти одній змінній,
поміченій зірочкою
x1, x2, x3 = [3, 7, 5]
x1, x2, x3
(3, 7, 5)
x1, *x2, x3 = [1, 3, 7, 5]
x1, x2, x3
(1, [3, 7], 5)
# елементи списку присвоюються
# 3 змінним
# виведення значень змінних
# змінній x2 присвоюються два
# значення: 3 і 7
# виведення значень змінних
Операція зрізу (виділення
елементів) має формат:
ім’я списку [початок:
кінець: крок]. Усі параметри
є необов’язковими
a = [1, 2, 3, 4, 5, 6]
a[1:4]
[2, 3, 4]
# виділення елементів з 1 до 3
# включно
Списки можна об’єднувати a1 = [1, 2, 3, 4]
a2 = [5, 6, 7]
a1 + a2
[1, 2, 3, 4, 5, 6, 7]
# об’єднання списків
4.1.2. Функції і методи опрацювання списків
Розглянемо основні функції опрацювання списків на прикладах.
Перетворити рядок
у список можна за
допомогою функції list()
list(процесор)
['п', 'р', 'о', 'ц', 'е', 'с', 'о', 'р']
# перетворення рядка в список
Отримати кількість
елементів у списку можна
за допомогою функції len()
a = [1, 4, 6,8]
len(a)
4
# довжина списку
Приклад 2.
al_1 = [файл, 21, 13, 5]
al_1
['файл', 21, 13, '5']
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
46. Розділ 146
Отримати список із випад-
ковими числами з іншого
списку можна за допомо-
гою функції sample (послі-
довність, кількість елементів)
з модуля random
import random
random.sample(range(51), 6)
[48, 11, 46, 3, 21, 0]
# імпортування модуля random
# шість випадкових чисел
# у діапазоні 0–51
Перетворити список у рядок
можна різними засобами.
Найпростіший із них —
використання функції str
a1 = [file1, 25, file2, 21]
str(a1)
['file1', 25, 'file2', 21]
# список
# перетворення списку в рядок
Максимальне та мінімальне
значення в списку можна
знайти за допомогою, відпо-
відно; функцій max() і min()
a1 = [44, 20, 3, 17, 25, 16]
max(a1), min(a1)
(44, 3)
# виведення максимального
# та мінімального елементів
Для отримання випадково-
го елемента зі списку слід
імпортувати модуль random
і скористатися функцією
choice (послідовність) або
функцією sample (послідов-
ність, кількість елементів)
import random
random.choice(a, ab, c,
ca, f])
'ab'
# імпортування модуля random
# виведення випадкового елемента
Розглянемо основні методи опрацювання списків на прикладах.
Метод append(об’єкт) —
додає один об’єкт у кінець
списку
a1 = [1, as, 2]
a1.append(bmv)
a1
[1, 'as', 2, 'bmv']
# список
# додавання елемента bmv
# у кінець списку
# виведення списку
Метод extend(послідов
ність) — додає елемен-
ти послідовності в кінець
списку
a1 = [1, 2, web]
a1.extend(file, 7)
a1
[1, 2, 'web', 'f', 'i', 'l',
'e', ',', ' ', '7']
# список
# додавання елементів у список
# виведення списку
Метод insert(індекс,
об’єкт) — вставляє один
об’єкт у вказану позицію
списку
a1 = [3, vin, 5]
a1.insert(1, file)
a1
[3, 'file', 'vin', 5]
# список
# додавання в 1 позицію списку
# елемента
# виведення списку
Метод pop(індекс) —
видаляє елемент зі списку
за вказаним індексом.
Видалити елемент зі списку
можна також за допомогою
оператора del список[індекс]
b1 = [7, com, 5]
b1.pop(2)
5
b1
[7, 'com']
del b1[1]
[7]
# список
# виведення видаленого елемента
# виведення списку після видалення
# елемента
# видалення елемента зі списку за
індексом
# виведення списку після
видалення елемента
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
47. 474.1. Списки, стеки, черги
Метод remove(значення) —
видаляє зі списку перший
елемент, який містить вка-
зане значення
a1 = [3, 5, lad, 7, lad]
a1.remove (lad); a1
[3, 5, 7, 'lad']
# видалення елемента lad із другої
# позиції
Метод clear() — видаляє
зі списку всі елементи
b1 = [5, 11, 8, 7, 20]
b1.clear(); b1
[]
Метод index(значення [,
початок [,кінець]]) — повер-
тає індекс елемента, який
має вказане значення. За
замовчуванням параметрів
початок і кінець пошук еле-
мента буде виконуватися від
початку до кінця списку
b1 = [10, 7, 55, 16, 8, 20]
b1.index(16)
3
# виведення індексу елемента
# зі значенням 16
Метод count(значення) —
використовується для визна-
чення кількості елементів
зі вказаним значенням.
Якщо елемент відсутній
у списку, повертається
значення 0
c1 = [7, 13, 14, 7, 7, 5]
c1.count(7)
3
# виведення кількості елементів
# зі значенням 7
Сортування елементів списку
реалізується за допомогою
методу sort(), який має таку
загальну структуру: sort([key
= None][,reverse = False]).
Як бачимо, параметри є
необов’язковими. За замовчу-
ванням сортування викону-
ється за зростанням значень
елементів з урахуванням
регістра. Для сортування
за зменшенням слід указа-
ти другий параметр таким:
reverse=True:
Зазначимо, що метод sort()
перетворює старий список
у новий
a1 = [17, 100, 20, 3, 8,
16, 25]
a1.sort(reverse=True)
a1
[100, 25, 20, 17, 16, 8, 3]
# список
# сортування в порядку зменшення
# значень
# виведення впорядкованого списку
Метод sorted(послідовність
[,key=None][,reverse =
False]) — призначений для
сортування списку та збере-
ження старого
b1 = [39, 16, 21, 7, 23, 15]
sorted(b1)
[7, 15, 16, 21, 23, 39]
b1
[39, 16, 21, 7, 23, 15]
# початковий список
# повернення впорядкованого
списку
# повернення початкового списку
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
48. Розділ 148
Стек — це виділена область оперативної пам’яті.
Стек працює в порядку LIFO (Last In, First Out), тобто
останній доданий у стек фрагмент пам’яті буде першим у чер-
зі на вихід зі стеку. Кожного разу, коли функція оголошує
нову змінну, вона додається в стек. А коли ця змінна стає
неактуальною (наприклад, коли функція припиняє роботу),
вона автоматично видаляється зі стеку і область пам’яті стає
доступною для інших стекових змінних.
Стек часто використовується для організації виклику під-
програм і повернення в основну програму. Для точки основ-
ної програми, з якої здійснюється звернення до підпрограми,
у стеку запам’ятовується адреса основної програми, до якої
слід повернутися після завершення підпрограми.
Під час кожного звернення до підпрограми в стек додають-
ся нові адреси повернення. Після кожного завершення підпро-
грами зі стеку знімається адреса повернення в основну програ-
му. Ураховуючи те, що звернення до підпрограм виконується
досить часто, стек здебільшого реалізується на апаратному
рівні, а не програмному.
Програмно стек реалізується на основі списку або масиву.
Якщо використовується масив, то потрібно визначати його
розмір, щоб за потреби мати достатньо комірок. Неправильне
визначення розміру масиву може призвести до помилок у роботі
програми або до неефективного використання пам’яті.
У списку для кожного елемента відводиться блок пам’яті, об-
сяг якого повинен бути достатній для збереження значення еле-
мента та посилання на попередній і наступний елементи стеку.
Для роботи зі стеком застосовуються такі визначені для
списків методи:
• append() — для додавання нового елемента в стек;
• pop() — для вибірки елемента із вершини стеку (верши-
ною стеку називають останній уведений елемент).
Приклад 3.
stack = [2, 5, 7] # створення списку
stack.append(12) # додавання у вершину стеку числа 12
stack # виклик стеку
[2, 5, 7, 12] # значення елементів стеку
stack.pop() # вибір елемента із вершини стеку
12 # видалений елемент
stack # виклик стеку
[2, 5, 7] # значення елементів стеку
stack.pop() # вибір елемента із вершини стеку
7 # видалений елемент
У мові Python стек програм-
но реалізується здебільшого
на основі списку.
Реалізація стеку на основі
масиву простіша й потребує
меншого обсягу пам’яті, але
необхідно заздалегідь знати
розмір масиву.
Реалізація стеку на основі
списку надійніша, але потре-
бує більшого обсягу пам’яті.
Робота зі стеком у програму-
ванні деякою мірою нагадує
роботу зі стосом книжок: на
першу книжку кладеться дру-
га, на другу — третя, на тре-
тю — четверта і так далі. Щоб
узяти першу книжку, покладе-
ну в стос, необхідно зняти спо-
чатку четверту, потім третю,
далі другу і, нарешті, першу.
4.1.3. Стек і черга
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
49. 494.1. Списки, стеки, черги...
Черга в програмуванні — це структура даних, що
працює за принципом «перший прийшов — перший
пішов».
Чергу можна порівняти, наприклад, із чергою в залізничну
касу: перший клієнт біля каси обслуговується першим. Еле-
мент, що додається до черги, опиняється в її кінці, а елемент,
який видаляється із черги, перебуває на її початку.
У мові Python для роботи з чергою також використовуються
списки (приклад 4).
4.1.4. Багатовимірні списки
У багатовимірних (або вкладених) списках кожна група
елементів списку береться у квадратні дужки. Двовимірний
список можна створити, наприклад, так:
a1 = [[1, 2, 3], [4, файл, s], [5, 6, 7]]
Але для наочності краще записувати так:
a1 = [
[1, 2, 3],
[4, файл, s],
[5, 6, 7]]
a1
[[1, 2, 3], [4, 'файл', 's'], [5, 6, 7]]
Для звернення до елемента багатовимірного списку слід
у квадратних дужках указати всі його індекси. Наприклад,
звернутися до першого елемента першої групи двовимірного
списку можна так:
a1[1][1]
'файл'
Звертатися до всіх або частини елементів списку можна
за допомогою операторів циклу for і while, а також функції
range(), яка розглядалася раніше. Наприклад, за допомогою
оператора циклу for до них можна звернутися так:
b1 = [файл, 5, 25, ц]
for і in b1: print (і, end= ) # натиснути Enter двічі
файл, 5, 25, ц
У генераторах списку разом з операторами циклу можуть
використовуватися умовні й інші оператори, що дозволяє ви-
конувати складні перетворення списків. Якщо вираз розмі-
щується всередині не квадратних, а круглих дужок, то буде
повертатися не список, а значення певного виразу. Такі кон-
струкції у мові Python називають виразами-генераторами.
Виконаємо, наприклад, підсумовування парних чисел:
a1 = [6, 5, 2, 1, 8]
sum ((i for i in a1 if i % 2 == 0))
16 # сума нульового, другого і четвертого елементів
Приклад 4.
zherg = [Олег, Олена, Ліда]
zherg.append(Сашко)
zherg.append(Ліза)
zherg
['Олег', 'Олена', 'Ліда', 'Сашко', 'Ліза']
zherg.pop(0)
'Олег'
zherg
['Олена', 'Ліда', 'Сашко', 'Ліза']
За допомогою операторів циклу
можна не тільки отримати зна-
чення його елементів, а й зміни-
ти значення кожного з них або
окремих елементів. Такі дії мож-
на виконувати різними спосо-
бами, у тому числі за допомогою
так званих генераторів списку.
Для їх реалізації оператор циклу
розміщується всередині списку:
a1 = [2, 3, 8, 5]
a1 = [i * 3 for i in a1]
print(a1)
У цьому фрагменті коду кожнен
елемент списку множиться на 3.
У результаті отримаємо значен-
ня списку:
[6, 9, 24, 15]
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
50. Розділ 150
4.1.5. Приклади програм опрацювання списків
Приклад 6.
Дано два списки: [Python розробив, 1991] і [Гвидо ван]. Розробити програму, за допомогою
якої отримується рядок: Мову Python розробив у 1991 році Гвидо Ван Россум. Один із варіантів
програми, що реалізує це завдання, зображено на рис. 2.
Рис. 2. Програма об’єднання списків і перетворення списку в рядок
Далі наведено результат виконання програми:
Приклад 5.
У списку [27, 3, 12, 22, 37, 8] знайти максимальний елемент, вилучити елемент на другій по-
зиції, упорядкувати новий список у порядку збільшення значень його елементів зі збереженням
попереднього списку, вставити в нього на четверту позицію число 5, потім замінити значення
першого елемента на число 10.
Програму, що реалізує це завдання, зображено на рис. 1.
Рис. 1. Програма опрацювання списку
Далі наведено результат виконання програми:
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
51. 51
Запитання для перевірки знань
1 Що називають списком?
2 Як створюється список?
3 Як можна замінити значення елемента
списку?
4 Як здійснюється об’єднання списків?
5 Для чого призначена функція list()?
6 Як перетворюється список у рядок?
7 Як можна отримати випадкові елементи з ін-
шого списку?
8 Для чого призначений метод append()?
9 Поясніть сутність методу insert().
10 Для чого призначений метод remove()?
11 Поясніть, як виконується сортування елемен-
тів списку.
Завдання для самостійного виконання
1 Дано список [13, 19, 11, 7, 18]. Вилучте еле-
мент на першій позиції і після цього знайдіть
максимальний елемент.
2 Дано список міст України [Херсон, Жи-
томир, Ужгород, Харків]. Уставте місто
Луцьк на другу позицію і після цього відсор-
туйте список.
3 Дано список [9, 2, 5, 6]. Замініть число на
першій позиції числом 12. Відсортуйте новий
список зі збереженням старого.
4 Дано список [В. Глушков, вчений України].
Внесіть у нього зміни, щоб отримати такий
список [В. Глушков — великий, вчений
України]. Перетворіть список на рядок.
5 Дано два списки: [Мова, Pascal] і [— це
мова, процедурного програмування].
Об’єднай-те списки в один і перетворіть його
на рядок.
6 Дано список [5, 7, 8, 12, 4]. Обчисліть суму
елементів, значення яких більші 5.
Приклад 7.
У послідовності [4, 6, 13, 9, 5, 16, 11] знайти числа, більші 6, збільшити їх удвічі, вивести
на екран і обчислити їх суму.
Варіант програми, що реалізує це завдання, зображено на рис. 3.
Рис. 3. Програма збільшення та обчислення суми чисел, більших 6
Далі наведено результат виконання програми:
4.1. Списки, стеки, черги...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
52. Розділ 152
4.2. Кортежі, діапазони, множини
Ви вже знайомі з деякими структурами даних, зокрема із
списками. Які, на вашу думку, ще структури даних доцільно
підтримувати сучасним мовам програмування?
Кортеж — це незмінна впорядкована колекція об’єктів
будь-якого типу в круглих дужках (або без них), які від-
окремлюються один від одного комою.
Кортежі схожі на списки, але відрізняються від них
тим, що кортежі є незмінними послідовностями і замість
квадратних дужок застосовуються звичайні дужки.
У мові Python кортеж (англ. tuple) відрізняється від
списку тим, що елементи кортежу після його створення
не можна змінювати жодним чином.
Кортежі підтримують функції len(), min(), max(), методи index()
і count(), сутність яких розглядалася в процесі опису списків.
Діапазон — це незмінна послідовність цілих чисел
із початковим, кінцевим значеннями і кроком їх зміни.
Для створення діапазону призначена функція range() такої
структури:
range([початок,] кінець[, крок ])
Як бачимо, обов’язковим є лише параметр кінець. За за-
мовчуванням значення параметра початок дорівнює нулю,
а крок — одиниці.
Множина — це невпорядкована колекція унікальних
(тих, що не повторюються) об’єктів будь якого типу.
Існує два типи множин: змінна (set) і незмінна (frozenset()).
Множина змінного типу створюється за допомогою вбудованої
функції set, генераторів множин, літералів множин та інших.
Ця функція дозволяє також перетворювати послідовність
у множину:
set(монітор) # перетворення рядка
в множину
{'і', 'т', 'м', 'н', 'о', 'р'}
set([5, 8, 4, 8, 2, 4, 7]) # перетворення списку
в множину
{8, 2, 4, 5, 7}
set() # пуста множина може бути
set() задана тільки так
Діапазони підтримують доступ
до елемента за його індек-
сом, отримання зрізу, перевір-
ку на входження і невходжен-
ня, функції len(), max(), min(),
методи index() і count().
Множини в мові Python ство-
рюються абсолютно випадковим
чином, згодом вони все одно
розташуються у випадковому
порядку.
Кортеж у математиці — упоряд-
кована та скінченна сукупність
елементів (нескінченний кор-
теж називається сімейством).
Кількість елементів у кортежі
визначає його довжину. Напри-
клад, кортеж із двох елементів
(тобто довжини 2) називають
двійкою, із трьох елементів —
трійкою і т. д. Кортеж із n еле-
ментів називають n-кою.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
53. 534.2. Кортежі, діапазони...
Для виконання операцій над множинами в мові Python
існують різні оператори, функції і методи.
Метод union() — призначений
для об’єднання множин в одну
a = set([3, 5, 7])
a.union(set([7, 9, 11]))
{3, 5, 7, 9, 11}
# множина а
# об’єднання 2 множин
# результат об'єднання записується у
множину а
Метод add() — додає елемент
до множини
b = set([1, 2, 3])
b.add(4)
b
{1, 2, 3, 4}
# множина b
# додавання у множину b значення 4
# виведення множини
Функція len() — визначає
кількість елементів
у множині
len(set([4, 5, 7, 9, 10]))
5
# визначення кількості елементів
# у множині
Метод a.update(b) — додає
елементи множини b
до множини a
a = set([1, 2])
a.update(set([5, 6, 7]))
a
{1, 2, 5, 6, 7}
# множина а
# додавання множини до множини а
# виведення нової множини
Оператор in — перевіряє наяв-
ність елемента в множині.
Повертає значення True, якщо
множина містить елемент,
інакше — значення False
a = set([1, 2, 3, 4, 5])
3 in a, 6 in a
(True, False)
# множина а
# перевірка наявності в множині
# чисел 3 і 6
Оператор перевірки на рівність
(==) — повертає значення True,
якщо множини рівні, інак-
ше — значення False
set([1, 2, 3]) ==
set([3, 4, 5])
False
# перевірка на рівність двох множин
Метод discard(елемент) —
видаляє з множини елемент,
якщо його значення міститься
в множині
a = set([1, 2, 3, 4, 5])
a.discard(2)
a
{1, 3, 4, 5}
# множина а
# видалення елемента зі значенням 2
# виведення нової множини
Метод remove() — видаляє
елемент зі множини та по-
вертає KeyError, якщо такого
елемента не існує
a = set([0, 1, 4, 81]
remove(6)
Keyerror
# множина а
# видалення елемента зі значенням 6
# такого елемента не існує
Мова Python підтримує також генератор множин, синтак-
сис якого схожий на синтаксис генератора списку, але вираз
береться не у квадратні дужки, а у фігурні:
{a * 2 for a in [2, 3, 4, 3, 4]}
{4, 6, 8}
Із використанням кортежів (приклад 1–4), діапазонів (при-
клади 5–7), множин (приклад 8) можна ознайомитися на сайті
interactive.ranok.com.ua
Запитання для перевірки знань
1 Що називають діапазоном?
2 Що називають множиною?
3 Як створити кортеж?
4 Як створити діапазон?
5 Як перетворити діапазон на кортеж?
6 Як перетворити список на множину?
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
54. Розділ 154
4.3. Словники. Функції, операції і методи
опрацювання словників
Згадайте, як за терміном (словом) знаходили відповідний по-
яснювальний текст або його переклад.
Словник у мові Python реалізований у вигляді хеш-
таблиці — невпорядкована колекція об’єктів будь-якого
типу, доступ до яких здійснюється не за допомогою ін-
дексу, а за допомогою ключа.
Для зручності можна уявити словник як невпорядковану
множину пар виду ключ і значення. Пари розділяються ко-
мами, весь словник перебуває у фігурних {} дужках.
Словники можна створювати різними способами.
•• Використати функцію dict(). Ця функція має чотири
формати. Нижче наведено два основні формати:
1) dict (ключ1=значення1, …, ключN=значенняN):
a1 = dict(a2=5, a3=7, a4=8) # створення словника
a1 # виведення словника
{'a4': 8, 'a3': 7, 'a2': 5}
2) dict (словник) :
b1 = dict({b2: 5, b3: 7, b4: 8}) # створення словника
b1 # виведення словника
{'b3': 7, 'b2': 5, 'b4': 8}
•• Указати всі елементи словника всередині фігурних дужок:
a1 = {a2: 5, a3: 7, a4: 8} # створення словника
a1 # виведення словника
{'a4': 8, 'a3': 7, 'a2': 5}
Цей спосіб застосовується найчастіше. Щоб створити
порожній словник, можна використати функцію dict():
a0 = dict() # створення пустого словника
a0 # виведення словника
{}
або
a0 = {} # створення пустого словника
a0 # виведення словника
{}
•• Об’єднати два списки в список кортежів можна за до-
помогою функції zip(). Створимо два списки, об’єднаємо
їх у список кортежу, а потім створимо словник:
a1 = [m, n] # список із ключами
a2 = [3, 6] # список зі значеннями
list(zip(a1, a2)) # створення списку кортежу
[('m', 3), ('n', 6)]
a3 = dict(zip(a1, a2)) # створення словника
a3 # виведення словника
{'n': 6, 'm': 3}
Ключем може бути будь-який
незмінний тип даних, напри-
клад число, рядок або кор-
теж, тобто будь-який об'єкт із
незмінюваним типом. Значен-
ня елементів словника можна
змінювати. Словники не є по-
слідовностями, тому такі за-
гальні операції, як отримання
зрізу, конкатенації та інші вони
не підтримують.
Хеш-таблиця — структура
даних, яка реалізує інтерфейс
асоціативного масиву. Вона до-
зволяє зберігати пари (ключ,
значення) і здійснювати три опе-
рації: операцію додавання нової
пари, операцію пошуку та опе-
рацію видалення за ключем.
Під час хешування може статися,
що різні значення ключів пере-
творюються в однаковий двійко-
вий код. Такі випадки називають
колізією. Існують різні алгорит-
ми боротьби з колізією. Один із
найнадійніших — так званий ал-
горитм відкритої адресації.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
55. 554.3. Словники. Функції...
Ознайомимося з аспектами створення словника на прикладах.
Щоб звернутися до елемента
словника, потрібно вказати
його ключ (число, рядок або
кортеж) у квадратних дужках.
Якщо елемент зі вказаним
ключем у словнику відсутній,
генерується виняток KeyError
a = {2: файл, n: пам’ять,
(1, 3): процесор}
a[2], a[n], a[(1, 3)]
('файл', 'пам’ять', 'процесор')
# словник
# звернення до елементів
словника
Перевірити наявність ключа
у словнику можна за
допомогою оператора in.
Якщо ключ у словнику є,
генерується значення True,
інакше — False
a = {1: as, kl: 5}
kl in a
True
# словник
# перевірка наявності
у словнику ключа kl
Метод get(ключ) повертає
значення, яке відповідає
ключу. Якщо ключ відсутній,
повертається значення None
a = {p: 21, 37: байт, sk:
біт}
a.get(p), a.get(sk), a.get(38)
(21, біт, None)
# словник
# повернення значень словника
# елемента з ключем 38 немає
Змінити елемент словника або
додати новий елемент можна за
допомогою його ключа
a = {b: 25, c: 100}
a[b] = 300
a[2] = astra
a
{2:'astra', 'c': 100, 'b': 300}
# словник а
# зміна значення, що має
ключ b
# додавання нового елемента
# виведення оновленого слов-
ника
За допомогою функції len()
у словнику можна визначити
кількість ключів
a = {1: один, 2: два, 3:
три}
len (a)
3
# словник а
# визначення кількості ключів
у словнику
За допомогою оператора del
можна видалити елемент зі
словника, вказавши його
ключ у квадратних дужках
a = {sd: система, sf:
принтер, sh: 25}
del a[sf]
a
{'sd': 'система', 'sh': 25}
# словник а
# видалення елемента з клю-
чем sf
# виведення нового словника
Метод discard (елемент) вида-
ляє з множини елемент, якщо
його значення міститься в
множині
a = set([1, 2, 3, 4, 5])
a.discard(2)
a
{1, 3, 4, 5}
Метод keys() повертає об’єкт із
ключами словника; його мож-
на використати для виведення
всіх елементів словника за до-
помогою оператора циклу for.
a = {x:1, y:2, z:3}
for i in a.keys(): print(({0} : {1}).
format(i, a[i]), end= )
(y:2) (z:3) (x:1)
Звернемо увагу на те, що елементи словника виведені
в довільному порядку. Це зумовлене тим, що словники
є невпорядкованими структурами. Якщо потрібно ви-
вести елементи словника впорядкованими за значенням
ключа, то слід отримати список ключів, а потім скори
статися функцією sorted().
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
56. Розділ 156
Запитання для перевірки знань
1 Який тип даних називають словником?
2 Як оголошуються словники?
3 Як можна звернутися до елемента словника?
4 За допомогою якого оператора перевіряється
наявність ключа в словнику?
5 Як можна видалити елемент зі словника?
6 Наведіть приклад використання генератора
словника.
Завдання для самостійного виконання
1 Ринкова ціна на посібники у гривнях така:
з інформатики — 45, географії — 53, істо-
рії — 40, хімії — 47. Складіть програму ви-
значення мінімальної і максимальної ціни по-
сібників і ціну посібника з хімії.
2 Створіть словник, об’єктами якого є номери
потягів і міста, до яких вони слідують: 23 —
Львів, 7 — Одеса, 15 — Харків. Додайте до
словника два потяги: 37 — Херсон, 29 —
Полтава і вилучіть потяг 15 — Харків.
Метод update() додає елемен-
ти в словник. Одна з найпро-
стіших структур методу така:
update (словник)
x = {1:a, 2:b}
x.update({3:c, 4:d})
x
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
# словник x
# додавання у словник нових
елементів
# виведення нового словника
Метод values() повертає об’єкт
dict_values, який містить усі
значення словника
x = {a: 1, b: 2}
x.values()
dict_values([1, 2])
list(x.values())
[1, 2]
# об’єкт dict_values ()
# отримано список значень
Метод pop(ключ [, значення за
замовчуванням]) вилучає зі
словника елемент зі вказаним
ключем і повертає його значен-
ня. Якщо ключ у словнику від-
сутній, то повертається значен-
ня другого параметра, а якщо
відсутній ключ і не вказаний
другий параметр, то генерується
виняток KeyError
x = {a: 5, b: 6, c: 7}
x.pop(b), x.pop(d, 8)
(6, 8)
x
{'c': 7, 'a': 5}
# словник х
# видалення елементів з указани-
ми ключами
# виведення нового словника
Мова Python підтримує також генератор словників, синтак-
сис якого схожий на синтаксис генератора списку, але вираз
заключається не у квадратні, а у фігурні дужки всередині
виразу перед циклом for (приклад 2).
Із прикладами створення програм опрацю-
вання словників можна ознайомитися на сайті
interactive.ranok.com.ua
Приклад 2.
x = [a, b, c]
values = [5, 6, 7]
{m: n for (m, n) in zip(x, values)}
{'c': 7, 'a': 5, 'b': 6}
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
57. 574.4. Масиви
Приклад 1.
Найпростішим способом створення масиву
є перелічення у квадратних дужках значень
його елементів праворуч від оператора присвою-
вання. Наприклад, у результаті виконання опе-
ратора a = [5, 9, 3, 12] елементи масиву з іменем
а набудуть таких значень: a[0]=5, a[1]=9, a[2]=3,
a[3]=12. Зверніть увагу, що нумерація елементів
у масивах мови Python починається з нуля.
4.4. Масиви
Для розв’язування математичних та інших задач у кожній
мові програмування досить часто використовують масиви. У
мові Python вони досить подібні до вбудованого в мову струк-
турованого типу «списки», але з обмеженням на тип даних і
розмір кожного елемента.
Масив — це структурований тип даних, усі елементи
якого мають лише один тип, наприклад int, char та ін.
Структура масиву може бути одновимірною (лінійною), двови-
мірною (табличною) та багатовимірною. Доступ до елементів ма-
сиву отримується відповідно за одним або кількома індексами.
У мові Python масиви визначено в модулі array, який міс-
тить величезну кількість методів і функцій їх опрацювання.
Таким чином користувачу не потрібно розробляти масиви,
слід просто знати, як їх використовувати.
Далі розглянемо та опишемо класичні засоби опрацювання
масивів.
4.4.1. Одновимірні масиви
Чи можна назвати перелік навчальних предметів
у 10 класі масивом? Наведіть приклади масивів, із якими
вам доводилося стикатися в процесі вивчення географії.
Які операції ви виконували над цими масивами?
Загальну структуру одновимірного масиву можна позначи-
ти так: x[0], x[1], x[2], …, x[n-1], x[n]. У квадратних дужках зазна-
чено індекси (номери позицій) елементів у масиві. Індексами
елементів масивів можуть бути дані будь-якого типу, у тому
числі вирази, але найчастіше ними є цілі числа.
Будь-якому елементу масиву можна надати нове значення
за допомогою оператора присвоювання, наприклад, mas[4]=5 —
четвертому елементу одновимірного масиву mas присвоєно
значення 5 (це можливо лише у випадку, коли елемент із цим
індексом уже існував, інакше — помилка).
Створити масив у мові Python можна різними способами,
наприклад, можна вводити значення елементів із клавіатури,
обчислювати значення за певною формулою та присвоювати
їх елементам масиву й ін.
Розглянемо створення, введення та виведення елементів
у масивах на прикладах.
У мові Python із масивами можна
працювати й без модуля array.
Власне модуль array використо-
вується досить рідко, у випадках
коли потрібно досягти високої
швидкості роботи. В інших ви-
падках масив типу array краще
замінити іншими типами даних:
списками, кортежами, рядками.
Найчастіше для представлення
масиву в Python використовують-
ся списки.
Одновимірний масив — це ну-
мерована послідовність одно-
типних елементів. Такий масив
можна уявити, наприклад, як
таблицю, що містить один рядок
або стовпець.
Він є динамічним — ви можете
змінювати його довжину, до-
давати або видаляти елементи
й ін. Щоб зберігати групу одно-
типних об’єктів у Python, опти-
мально використовувати тип
даних list(список).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
58. Розділ 158
Приклад 2.
На рис. 1 наведено програмний код створення масиву, елементами якого є рядки. Елементи
масиву за допомогою оператора циклу виводяться на екран.
Рис. 1. Створення масиву в процесі його оголошення
Приклад 3.
На рис. 2 зображено програмний код, у якому циклічно обчислюються значення виразу, кож-
не з яких присвоюється елементу масиву. Після створення масиву елементи виводяться на екран.
Рис. 2. Створення масиву шляхом обчислення значень його елементів
Приклад 4.
На рис. 3 зображено програмний код, у якому масив створюється шляхом уведення значень
його елементів із клавіатури. Після введення масиву обчислюється загальна сума й середнє
значення елементів масиву.
Рис. 3. Уведення масиву з клавіатури та обчислення середнього значення
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
59. 594.4. Масиви
Запитання для перевірки знань
1 Що називають масивом?
2 Які існують структури масивів?
3 Як можна звернутися до окремого елемента
масиву?
4 Яку структуру має одновимірний масив?
5 Якими способами можна створити одновимір-
ний масив?
6 Назвіть порядок створення масиву шляхом
уведення даних.
Завдання для самостійного виконання
1 Створіть масив, елементами якого є рядки:
'звук', 'колонка', 'кодування', 'модель'. Виведіть
масив на екран.
2 Створіть масив, елементами якого є цілі чис-
ла: 21, 40, 53, 17, 33, що вводяться з клавіату-
ри. Виведіть масив на екран.
3 Створіть масив, елементами якого є 10 ви-
падкових чисел у діапазоні від 4 до 10. Ви-
ведіть масив на екран.
4 Створіть масив, елементами якого є 5 пер-
ших членів арифметичної прогресії. Перший
член 3, а різниця 4. Виведіть масив на екран.
5 Створіть масив із семи випадкових чи-
сел у діапазоні від 2 до 6 обчисліть суму
елементів.
6 Обчисліть середнє значення масиву, елемен-
тами якого є перші шість членів геометрич-
ної прогресії. Перший член 3, знаменник 2.
4.4.2. Двовимірні масиви
Пригадайте, з якими двовимірними масивами ви стикалися під
час вивчення хімії. Які операції ви виконували в цих масивах?
Двовимірний масив, так само як і одновимірний, може
містити елементи будь-якого типу, але лише одного. Масив
складається з фіксованої кількості рядків і стовпців. У побу-
ті масиви часто називають таблицями, а в математиці — ма-
трицями. Елементи двовимірного масиву беруться у квадрат-
ні дужки, елементи кожного рядка також беруться у ква-
дратні дужки, які відокремлюються комою. Усередині рядка
елементи також відокремлюються комою. Подання аналога
двовимірного масива в Python найкраще реалізується за до-
помогою списка списків (тип даних list, кожен елемент якого
також типу list).
Двовимірний масив — це не-
нумерована послідовність одно-
типних елементів, кожен із яких
визначається двома індексами.
Такий масив можна подати, на-
приклад, як таблицю, що містить
n рядків і m стовпців.
Приклад 5.
На рис. 4 наведено масив цілих чисел із трьома ряд-
ками й чотирма стовпцями.
У мові Python нумерація рядків і стовпців почина-
ється з нуля. Масив, який наведено на рис. 4, матиме
такий вигляд:
[[34, 23, 6, 9], [35, 11, 54, 23], [15, 40, 3, 44]].
Для наочності краще подати його таким чином:
[[34, 23, 6, 9],
[35, 11, 54, 23],
[15, 40, 3, 44]].
Рядки
Стовпці
0 1 2 3
0 34 23 6 9
1 35 11 54 23
2 15 40 3 44
Рис. 4. Масив цілих чисел
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
60. Розділ 160
Звернення до елемента масиву здійснюється за формою:
ім’я масиву[номер рядка][номер стовпця] (приклад 6).
Над елементами двовимірних масивів можуть виконуватися
ті самі операції, що й над елементами одновимірних масивів.
• Обчислення загальної суми й середнього значення
елементів масиву.
Обчислити суму значень елементів масиву можна різними
способами. Але найчастіше застосовується алгоритм «нако-
пичення», за яким до початкового значення суми додається
елемент, розташований у нульовому рядку нульового стовп-
ця. Потім до отриманої суми поступово додається решта еле-
ментів стовпців нульового рядка, здійснюється перехід на на-
ступний рядок, виконуються аналогічні дії і т. д.
• Обчислення суми значень елементів кожного рядка
й загальної суми масиву
Сума значень елементів рядків двовимірного масиву об-
числюють так само, як і для одновимірного. Після завер-
шення обчислення суми елементів одного рядка здійснює-
ться перехід до обчислення суми елементів наступного
рядка.
• Обчислення кількості заданого елемента в масиві
Алгоритм обчислення кількості заданого елемента у дво-
вимірному масиві відрізняється від аналогічного алгоритму
для одновимірного масиву лише тим, що пошук елемента
виконується не в одному, а в кількох рядках.
Приклад 6.
mas = [[34, 23 ,6 ,9],
[35, 11, 54, 23],[15 ,40, 3, 44]]
mas [1][2]
54.
Із прикладами 7–9 можна озна-
йомитися на сайті interactive.
ranok.com.ua.
Тут використано прямокут-
ні масиви (кількість стовпців у
кожному рядку однакова). Деякі
мови, наприклад Java, підтри-
мують масиви з різною кількіс-
тю стовпців у рядках, — їх на-
зивають нерегулярними. Крім
того, підтримуються динамічні
масиви — кількість стовпців
і рядків визначається в процесі
виконання програми.
Запитання для перевірки знань
1 Як у мові Python нумеруються рядки та стовп-
ці двовимірного масиву?
2 Який тип можуть мати елементи двовимірного
масиву?
3 Як здійснюється звернення до елементів дво-
вимірного масиву?
4 Які операції можуть виконуватися над елемен-
тами двовимірного масиву?
5 Сформулюйте алгоритм обчислення загальної
суми двовимірного масиву.
6 Поясніть алгоритм пошуку максимального еле-
мента двовимірного масиву.
Завдання для самостійного виконання
1 Із двовимірного масиву [['команда','файл','біт'],
['смартфон','миша','байт']] виведіть на екран
перший елемент нульового рядка та другий
елемент першого рядка.
2 У двовимірному масиві [[5, 3, 12],[13, 7, 7],
[21, 6, 8]] визначте загальну суму його чисел.
3 У двовимірному масиві [[34, 11, 23, 19],
[18, 19, 37, 51],[77, 20, 35, 55]] визначте мінімаль-
ний елемент у кожному рядку.
4 У двовимірному масиві [[77, 32, 23 ,3],
[44, 21, 23, 9], [80, 5, 2, 4]] визначте рядок із мі-
німальною сумою його чисел.
5 Знайдіть в Інтернеті п’ять кращих футболь-
них команд України за 2015, 2016 і 2017
роки. Створіть двовимірний масив, еле-
ментами якого є назви цих команд. Ви-
значте, скільки разів у ньому є команда
«Дніпро».
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
61. 614.5. Вказівники
4.5. Вказівники
Вказівники мають фундаментальне значення в будь-якій
мові програмування.
Вказівник — це тип даних, який використовується для
зберігання адрес змінних і об’єктів.
Адреса містить номери комірок пам’яті або спеціальне зна-
чення (часто нульове), яке свідчить про те, що звернення до
комірки пам’яті не може бути виконано. Якщо вказівник міс-
тить будь-яку адресу, то кажуть, що він посилається на від-
повідний об’єкт.
Сутність і принципи використання вказівників у типізо-
ваних мовах програмування (Pascal, Java, C++ та ін.) майже
ідентичні.
У мовах із динамічною типізацією даних, якою є мова
Python, наявна суттєва відмінність — змінні не оголо-
шуються, а вказівник присвоюється об’єктам. Вказів-
ники не мають типу, тип мають об’єкти, на які вони
посилаються.
Пояснимо сутність вказівників мови Python на прикладі.
У змінній зберігається не сам
об’єкт, а посилання на нього,
тобто адреса пам’яті, у якій
зберігається об’єкт.
Приклад.
Припустимо, що для обчислення уводиться
вираз 8**3. Спочатку в комірки пам’яті зано-
сяться значення 8 і 3, потім обчислюється ви-
раз 8**3 і значення 512 також буде збережено
в комірці. Це значення буде виведено на екран
і зміст усіх цих комірок буде стерто. Отже, у
мові Python автоматично збирається сміття,
тобто пам’ять звільняється від усього, що не
використовується.
Щоб зберегти об’єкт у пам’яті, потріб-
но встановити на нього вказівник. Як уже
зазначалося, іменування об’єктів реалізує-
ться за допомогою оператора присвоюван-
ня (наприклад, zmk = 21). Водночас літерал
21 створює в пам’яті об’єкт типу int(), а zmk
є вказівником на цей об’єкт.
Таким чином, 21 — це реально існуючий
об’єкт зі власними атрибутами, а zmk — вка-
зівник на нього.
Якщо після цього виконати zmk = ’21’, то
буде створено об’єкт str(‘21’), на який посилає-
ться вказівник zmk, а попередній об’єкт 21
буде видалено з пам’яті.
Розпізнати тип об’єкта, на який посилає-
ться цей вказівник, можна за допомогою
функції type(zmk).
Запитання для перевірки знань
1 Дайте означення вказівника мови програму-
вання.
2 Поясніть сутність вказівника мови Python.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
62. Розділ 162
5. Функції користувача та модулі мови Python
5.1. Функції
Пригадаємо, що в алгоритмізації часто застосовуються
допоміжні алгоритми, які в мовах програмування реалізуються
підпрограмами. Які види підпрограм ви вивчали у 8 і 9 класах?
У багатьох мовах програмування підпрограми оформлюються
у вигляді функцій і процедур. У мові Python вони реалізуються
лише за допомогою функцій.
Користувацька функція — це невеликий, логічно за-
вершений програмний код, до якого можна звертатися
багаторазово з різних місць основної програми.
У процесі кожного звернення до функції вона виконує одні
й ті самі дії над різними значеннями даних і повертає отри-
мане значення до основної програми. Наприклад, функція об-
числення суми членів арифметичної прогресії під час кожного
звернення до неї може обчислювати суму її членів із різними
значеннями різниці та кількості членів прогресії.
Сутність програми з двома функціями пояснюється схемою
(рис. 1).
Рис. 1. Приклад структури програми з двома функціями
Звернення
до Функції_1
Звернення
до Функції_1
Звернення
до Функції_2
Результат
Результат
Результат
Інструкція_1
Інструкція_4
Інструкція_7
Інструкція_2
Інструкція_5
Інструкція_8
ФУНКЦІЯ_1
ФУНКЦІЯ_2
Інструкція_9
Інструкція_3
Інструкція_6
Інструкція_10
Інструкція_11
Як бачимо, основна програма містить 11 інструкцій.
Звернення до першої функції виконується двічі: перший раз
з інструкції_2, другий — з інструкції_8. До другої функції
звернення виконується один раз — з інструкції_5. Після того
У мові Python існує чимало
вбудованих функцій, які вже
нами неодноразово викорис-
товувалися, наприклад, del(),
len(). Ці функції не потрібно
розробляти — їх слід правиль-
но використовувати; їх може
створювати і сам програміст.
Такі функції називають корис-
тувацькими.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
63. 635.1. Функції
як завершується виконання кожної функції, результат повер-
тається до основної програми в інструкції, що розташовані за
інструкцією виклику.
Функції — це універсальний засіб структурування про-
грам, вони дають змогу розбити складну програму на
окремі частини, можуть викликатися у виразах і засто-
совуватися в умовних інструкціях if та інструкціях циклу
while.
Використання функцій позбавляє необхідності вставляти
до основної програми копії блоків одного й того самого про-
грамного коду. За рахунок цього зменшується загальний обсяг
програми і, відповідно, зменшується обсяг пам’яті, потрібної
для її збереження. Окрім цього, зменшуються трудовитрати
програміста. Наприклад, якщо необхідно змінити інструк-
цію, то вона змінюється лише один раз у самій функції,
а не в багатьох місцях основної програми.
Користувацькі функції оголошуються (визначаються) за до-
помогою інструкції def, яка має таку структуру:
def ім’я функції ([параметри]):
тіло функції
[returnрезультат]
Як бачимо, існують функції з параметрами і без параметрів.
Ім’я функції — це звичайний унікальний ідентифікатор
латинськими буквами. Ім’я функції складається з малих
символів.
Тіло функції — це сукупність інструкцій, які реалізують
певне завдання, наприклад, інструкції обчислення середнього
значення списку чисел.
Параметри — це імена об’єктів (змінних, списків тощо),
які отримують конкретні значення (атрибути) під час звер-
нення до функцій. Параметри відокремлюються один від од-
ного комою. Якщо функція не має параметрів, зазначаються
лише порожні круглі дужки.
Якщо тіло функції не містить інструкцій, слід розмістити
оператор pass, який жодних дій не виконує. Наприклад:
def funkt_1:
pass
Оголошення функцій визначається зазвичай на початку
програми, одразу після імпортування необхідних модулів.
Інструкція return повертає резуль-
тат виконання функції в основну
програму. Інструкції, що розта-
шовані в тілі функції після return,
не виконуються. Якщо інструкцію
return не зазначено, повертається
значення None.
Усі інструкції тіла функції від-
окремлюються зліва однако-
вою кількістю пробілів (бажано
дотримуватися чотирьох про-
білів). Кінцем функції є перша
інструкція, яка має меншу кіль-
кість пробілів.
Приклад 1.
На рис. 2 наведено програмний код, у якому
оголошено дві функції: функція без парамет-
рів — funct_03 і функція з двома параметрами
x і y — funct_04. Звернення до функції funct_03
здійснюється один раз, а до функції funct_04 —
двічі. Після звернення до функції funct_03
виконується множення числа 2.3 на число 3.5
і виведення отриманого результату на екран. Да-
лі управління передаватиме в основну про-
граму інструкції a, b = 2, 3, у результаті чого
змінна a набуде значення 2, змінна b —
значення 3.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
64. Розділ 164
Рис. 2. Програма з двома функціями
У результаті першого звернення до функції
funct_04 параметр x набуде значення 2, а пара-
метр y — значення 3. У функції funct_04 є опе-
ратор return, тому отриманий результат повертає-
ться в програму, що її викликала, і виводиться
на екран. Потім змінна x набуває значення 3,
а змінна y — 4.
У процесі другого звернення до функ-
ції funct_04 змінній x передається значен-
ня 3, а змінній y — 4. Отриманий результат
повертається в основну програму й виводиться
на екран.
Результат виконання програми наведено на
рис. 3.
Рис. 3. Виконання програми з двома функціями
Змінні поділяються на локальні та глобальні.
Локальні змінні — це змінні, які оголошені всередині
функції. У вже розглянутому прикладі у функції funct_03 ло-
кальною змінною є y, а у функції funtc_04 — змінні x, y і z.
Локальні змінні доступні тільки програмному коду всередині
функції. Вони існують тільки під час виконання функції.
Глобальні змінні — це змінні, які оголошені в основній
програмі, тобто за межами функції. Вони доступні в будь-
якій частині програми, у тому числі всередині функції.
Локальні та глобальні змінні можуть мати однакові імена.
Але операції над локальними змінними всередині функцій
не впливають на значення однойменних глобальних змінних.
Однак для запобігання плутанині краще не користуватися од-
наковими іменами локальних і глобальних змінних.
Якщо у функції обчислюється значення виразу x + y та ці
об’єкти є числами, то буде виконано їх додавання, а якщо
об’єктами є рядки — їх конкатенація. Якщо у функції обчис-
люється значення виразу x * y і ці об’єкти є числами, то буде
виконано їх множення, а якщо один із них число, а другий —
рядок, то повторення рядка.
Отже, у мові Python саме об’єкти визначають синтаксичну
сутність операцій, які будуть виконуватися над ними.
Явище, коли синтаксична сутність операцій залежить
від типу об’єктів, які опрацьовуються, називають полі-
морфізмом.
Одна й та сама функція може
виконувати різні дії над об’єк-
тами. Яка конкретно дія буде
виконуватися, залежить від
типу об’єктів, над якими вико-
нуються відповідні операції.
Поліморфізм є одним із фун-
даментальних понять об’єктно-
орієнтованого програмування.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
65. 655.1. Функції
Поліморфними є фактично всі операції у мові Python,
а також відповідні функції. Інтерпретатор мови сам перевіряє
сумісність типів об’єктів. Якщо виявиться, що вони несумісні,
видає повідомлення про синтаксичну помилку.
Параметрам функцій можна передавати не лише значення
літералів, змінних, а й значення кортежів, списків, словників.
Якщо параметрам функції передаються значення словника,
то в інструкції звернення до функції перед її іменем ставлять
два символи зірочка (**). А якщо списку або кортежу, то одну
зірочку. Одночасно можна передавати параметрам функції зна-
чення різних типів.
Інструкція def у процесі оголошення функції створює
об’єкт, який має тип function, і зберігає посилання
на цей об’єкт в ідентифікаторі, яким є ім’я функції. Це
посилання на функцію можна зберегти в іншій змінній.
Приклад 2.
На рис. 4 зображено про-
граму, у якій параметрам
функції передаються зна-
чення кортежів і списків.
У результаті виконання
програми отримаємо:
3.0
6.0 Рис. 4. Програма з передаванням функції значень кортежів і списків
Приклад 3.
На рис. 5 зображено програму, у якій під час першого звернення до функції параметрам
передаються значення словника, а під час другого звернення — значення кортежу та словника.
Рис. 5. Програма з передаванням функції значень словника й кортежу
Результат виконання програми наведено на рис. 6.
Рис. 6. Виконання програми з передаванням функції значень словника й кортежу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
66. Розділ 166
Приклад 4.
На рис. 7 зображено програму зі зверненням до функції за допомогою змінної.
Рис. 7. Програма з посиланням на функцію за допомогою змінної
Структуру виведення та можливі значення виконання програми наведено на рис 8.
Рис. 8. Виконання програми з посиланням на функцію за допомогою змінної
Запитання для перевірки знань
1 Які функції називають користувацькими?
2 Що називають тілом функції?
3 Яка різниця між аргументами й параметрами?
4 Чи завжди функції мови Python мають тіло
функції?
5 Для чого застосовується оператор pass?
6 Поясніть сутність звернення до функції
із основної програми.
7 Які переваги надає використання функції
у програмуванні?
8 Яку роль виконує інструкція return у тілі
функції?
9 Поясніть різницю між локальними та глобаль-
ними змінними.
10 Поясніть сутність поліморфізму.
Завдання для самостійного виконання
1 Складіть програму з використанням функції
без параметрів для обчислення об’єму конуса.
2 Складіть програму з використанням функцій
із параметрами для обчислення двох різних
за розміром прямокутних трикутників із відо-
мими значеннями їх катетів і обчисліть площі
кола з відомим радіусом.
3 Кубик із цифрами від 1 до 6 підкидають п’ять
разів. Складіть програму обчислення серед-
нього значення цих чисел із використанням
функції з параметрами.
4 Складіть програму обчислення значення
виразу a*b-c/d із використанням функції
з параметрами для значень списку [3, 5, 2, 7]
і кортежу (4, 1, 5, 6).
5 Генеруються три цілі випадкові числа в діапа-
зоні від 3 до 7. Складіть програму з викори-
станням функції з параметрами для обчислен-
ня суми квадратів цих чисел.
6 З’ясуйте в Інтернеті, через які області Украї-
ни протікає Дніпро, та знайдіть їх площі.
Складіть програму визначення областей із
максимальною та мінімальною площами. Об-
числіть середню площу. Використайте функції
з параметрами.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
67. 675.1. Функції
5.1.2. Розширені можливості функцій
Який, на вашу думку, недолік мають уже описані користу-
вацькі функції? Чи відомо вам про випадок, коли кількість
параметрів і аргументів була неоднаковою?
Пригадаємо, що в розглянутих прикладах кількість параме-
трів в оголошенні функції і кількість аргументів у інструкції
звернення була однаковою. Водночас значення першого аргу-
менту передається першому параметру функції, значення дру-
гого аргументу — другому параметру.
Наприклад, якщо оголошено функцію def sum(x, y):
def sum(x, y):
return x + y,
і виконується до неї звернення: sum(a, b), то значення аргу-
менту а передається параметру x, а значення b — параметру y.
Такий варіант є основним (класичним), і застосовується
в багатьох мовах програмування. Разом із тим, можливості
функцій мови Python значно ширші за можливості класичних
функцій.
У випадку 1) функція може бути реалізована за умови, що
значення деяким параметрам присвоєне в процесі оголошення
функції.
Якщо оголошено функцію def sum(x, y=5):
def sum(x, y=5):
return x + y,
то до неї можна звернутися так: sum(a). До того ж параметр
x набуде значення a, параметр y — значення 5.
Параметри, яким присвоюються значення в процесі оголо-
шення функції, називають необов’язковими. Необов’язкові па-
раметри повинні розміщуватися після обов’язкових.
Приклад 5.
На рис. 9 зображено програму з функцією
обов’язкових і необов’язкових параметрів.
Під час першого звернення до функції чис-
ло 8 передається тільки параметру x (пара-
метр y матиме значення 3). Під час другого
звернення параметр x набуде значення 27,
а параметр y — значення 4, незважаючи на те,
що в оголошенні функції йому присвоєно зна-
чення 3. У результаті виконання програми
отримаємо числа: 2.0 і 3.0.
Рис. 9. Програма з обов’язковими й необов’язковими параметрами функції
Зокрема мова Python дає змогу:
• в інструкції звернення до
функції мати меншу кількість
аргументів, аніж кількість па-
раметрів, зазначених у процесі
оголошення функції;
• передавати параметрам зна-
чення аргументів не послідов-
но, а в довільному порядку;
• використовувати змінну кіль-
кість параметрів у функції;
• під час оголошення не вказува-
ти ідентифікатор функції.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
68. Розділ 168
Розглянемо функції, у яких параметрам можна переда-
вати довільну кількість значень аргументів. Для того щоб
параметри могли набувати довільної кількості аргументів,
їх у оголошенні функції необхідно вказувати з символом
зірочка (*).
В одній функції можна використовувати комбінації різних
параметрів: звичайні (обов’язкові) параметри, необов’язкові
(параметри за замовчуванням) і параметри зі змінною кіль-
кістю аргументів.
У другому випадку в інструкції звернен-
ня до функції вказуються ті самі ідентифі-
катори аргументів, що й ідентифікатори па-
раметрів, а також присвоюються відповідні
їм значення.
Наприклад, у фрагменті програми:
def ant(x, y):
return x * y
print(ant(y=7, x=5))
параметр при x набуде значення 5, а пара-
метр при y — значення 7. Такий варіант до-
цільно використовувати, якщо функція має
кілька необов’язкових параметрів.
Приклад 6.
На рис. 10 зображено програму з фун-
кцією, параметр якої може набувати до-
вільної кількості аргументів. У цій про-
грамі в процесі першого звернення до фун-
кції параметр x набуває двох значень: 9 і 6,
а в процесі другого звернення — чотирьох
значень: 3, 4, 7, 10. У результаті виконан-
ня програми після першого звернення до
функції отримаємо значення 20, а після
другого — 29.
Рис. 10. Програма з функцією зі змінною кількістю аргументів
Приклад 7.
Програму з такою функцією зображено на
рис. 11.
У процесі першого звернення до функції па-
раметр при x набуває значення 7, параметр при
y за замовчуванням має значення 4, а параметр
при z — значення 0. Тому інструкція s=s+i в опе-
раторі циклу не виконується.
У процесі другого звернення до функції па-
раметр при x набуває значення 5, параметр при
y — значення 8, а параметр при z — двох зна-
чень: 9 і 12. Таким чином, вираз s=s+i викону-
ється двічі: для значення змінної при i, яка до-
рівнює 9 і 12. У результаті виконання програми
отримаємо значення 15 і 42.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
69. 695.1. Функції
Значення, що повертається, — це вираз, результат ви-
конання якого повертається функцією. Це значення мож-
на зберегти в змінній або передати як параметр у іншу
функцію.
Мова Python реалізує анонімні функції, які ще називають
лямбда-функціями. Ці функції не мають імені. Вони ого-
лошуються за допомогою ключового слова lambda за такою
структурою:
lambda [параметр1 [,…,параметрN]]:
значення, що повертається
Анонімні функції викликаються так само, як і звичайні
функції. Вони можуть бути з параметрами та без параметрів.
Як і у звичайних функціях, деякі параметри анонімних фун-
кцій можуть бути необов’язковими.
Рис. 11. Програма, функція якої має комбінацію параметрів
Приклад 8.
На рис. 12 зображено програму з анонімними функціями.
Рис. 12. Програма з анонімними функціями
У результаті виконання програми отримаємо такі результати (рис. 13):
44,
53.9,
6.83.
Рис. 13. Виконання програми з анонімними функціями
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
70. Розділ 170
5.2. Рекурсивні функції
У 8 і 9 класах ви вже ознайомилися з терміном рекурсія.
Спробуйте сформолювати означення рекурсії.
Рекурсія (від латин. recursio — повернення) у широкому розу-
мінні — це опис або зображення об’єкта (процесу, явища) через
самого себе. Рекурсія застосовується в різних галузях людської
діяльності, найчастіше — в математиці й інформатиці.
У лінгвістиці рекурсією називають можливість мови
породжувати нові мовні конструкції на основі попе-
редньої (приклад 1).
Класичним прикладом рекурсії в математиці є визначення
чисел Фібоначчі, кожне з яких обчислюється як сума двох
найближчих попередніх чисел, починаючи з числа, розташова-
ного на третій позиції (n2), тобто таких, які обчислюються за
допомогою формули f(n) = f(n–2) + f(n–1), де n2. Ці числа мають
такі значення: 1, 1, 2, 3, 5, 8, 13, 21…
Запитання для перевірки знань
1 Як передаються значення аргументів необов’яз-
ковим параметрам?
2 Як у функції розміщуються необов’язкові та
обов’язкові параметри?
3 Які функції називають анонімними?
4 Як оголошують анонімні функції?
5 Як реалізується передавання параметрам у до-
вільному порядку значення аргументів?
6 Як можна реалізувати передавання парамет-
рам довільної кількості значень аргументів?
7 Поясніть порядок використання у функції ком-
бінації різних параметрів.
Завдання для самостійного виконання
1 Складіть програму обчислення значення ви-
разу a * b2 – 2 * a, якщо a b і виразу a / b,
якщо a = b із використанням функції з од-
ним обов’язковим та одним необов’язковим
параметрами.
2 Складіть програму з використанням однієї
функції зі змінною кількістю аргументів для об-
числення сум чисел 1, 3, 5, 7, 9 і 6, 8, 10.
3 Складіть програму з використанням анонімних
функцій без параметрів і з параметрами для
обчислення значень виразів 3 / 7 + 5 * 8 / 3,
2 * x + x / y і (3 * x + 5) / (y – 2) для відомих
значень x і y.
4 Функція має три параметри: обов’язковий,
необов’язковий, зі змінною кількістю аргумен-
тів. Складіть програму обчислення добутку чи-
сел 3 на 7 і добутку чисел 4, 6, 7, 9, 10.
5 У змаганнях із підняття гирі від 10-А класу бе-
руть участь 5 учнів, а від 10-Б класу — 4 учні.
Відомо скільки разів підняв гирю кожен учень.
Розробіть програму визначення різниці піднят-
тя гирі учнями обох класів.
6 Прибуток від двох фірм Кагарлицького ра-
йону Київської області постійний і складає,
відповідно, 10 і 15 млн грн на рік. Ще від
двох фірм цього району прибуток визначає-
ться наприкінці року. Постійний прибуток
також мають дві фірми Обухівського району
Київської області й становить, відповідно, 9
і 17 млн грн на рік, а від однієї фірми прибу-
ток визначається наприкінці року. Розробіть
програму обчислення загального прибутку
фірмами з кожного району. Виберіть і об-
ґрунтуйте раціональний варіант програмного
коду.
Приклад 1.
Речення «Тип об’єктів визначає син-
таксичний смисл оператора» може
бути розширено до такого: «Сашко
зрозумів, що тип об’єктів визначає
синтаксичний смисл оператора»,
а останнє речення розширено до
такого: «Тепер Катря знає, що Сашко
зрозумів, що тип об’єктів визначає
синтаксичний смисл оператора».
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
71. 715.2. Рекурсивні функції
Як бачимо з прикладу 2, на кроці 4 знайдено опорне зна-
чення функції f(3), яке дорівнює 2, а потім у зворотному по-
рядку слід виконати відповідні дії, тобто
2 + 1 = 3;
3 + 2 = 5;
5 + 3 = 8.
Рекурсія в інформатиці — це спосіб організації обчис-
лювального процесу, за яким програма в процесі вико-
нання звертається сама до себе з різними значеннями
вхідних параметрів. Цей процес може бути нескінчен-
ним, тому для переривання цього процесу в програмі
повинна бути умова його переривання.
У стеку спочатку запам’ятовуються всі дії, що виконують-
ся до моменту обчислення опорного значення, а потім у зво-
ротному порядку вони виконуються.
Наприклад, якщо рекурсивна функція обчислює числа
Фібоначчі, то запам’ятовуються всі дії f(n) = f(n–2) + f(n–1) до
тих пір, поки не буде знайдене опорне значення, а потім у зво-
ротному порядку виконується обчислення.
Отже, для обчислення рекурсивних функцій потрібен стек
і виконання щонайменше удвічі більше операцій, ніж, напри-
клад, у процесі використання рекурентних обчислень.
Пригадаємо, що рекурентне обчислення значення функції
на кожному кроці здійснюється через її значення на поперед
ньому кроці.
Уже відомий вам алгоритм рекурентного обчислення ви-
разу y = xn
можна подати так:
Крок 1 Увести n, x
Крок 2 y = 1
Крок 3 i = 1
Крок 4 y *= x
Крок 5 i += i
Крок 6 Якщо i = n, то п. 4, інакше п. 7
Крок 7 Виведення y
Крок 8 Кінець
Приклад 2.
Щоб знайти значення числа
на шостій позиції (число 8),
потрібно спочатку запам’ятати
виконання таких дій:
1) f(6) = f(5) + f(4);
2) f(5) = f(4) + f(3);
3) f(4) = f(3) + f(2);
4) f(3) = f(2) + f(1).
Програми обчислення рекур-
сій оформлюються у вигляді
підпрограм (у мові Python —
функцій). Реалізація таких
функцій заснована на струк-
турі даних, що називають
стеком.
У наведенному алгоритмі після
того, як вираз i=n на кроці 6
набуде значення False, вико-
нання алгоритму завершується
і змінна y міститиме результат
обчислення.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
72. Розділ 172
Для рекурсивного обчислення значення xn
(n — додатне
ціле, x — може бути дійсне) необхідно обчислити значення xn-1
,
оскільки xn
= xn-1
∙ x. У свою чергу, для обчислення xn-1
по-
трібно обчислити xn-2
, оскільки xn-1
=xn-2
∙ x і т. д. Процес обчис-
лення припиняється після обчислення x0
, оскільки воно має
значення 1.
Усі ці дії запам’ятовуються в стеку. Але отримано не
результат, а лише опорне значення функції. Для отримання
кінцевого значення функції потрібно реалізувати зворотний
процес обчислення, що міститься в стеку.
Приклад 3.
Розглянемо сутність рекурсії на прикладі обчислення значення виразу xn
. Програму його об-
числення зображено на рис. 1.
Рис. 1. Програма обчислення значення виразу xn
Опишемо порядок виконання програми.
1. В основній програмі уводяться числа x і n.
Припустимо, що уведені значення x=2 і n=3. Пі-
сля цього здійснюється звернення до функції st
із параметрами st(2, 3). У результаті в стеку ви-
діляється перший блок пам’яті (вершина стеку)
й управління передається умовному оператору.
Оскільки на цьому етапі вираз n -= 0 набуває
значення False, то виконується гілка else. Тут
у виразі st(x, n–1)*x робиться спроба обчислити
значення st(2, 2), тобто виконується звернення до
самої функції st із новими значеннями параме-
трів. Тому обчислення переривається.
2. Другий раз звернення до функції st ви-
конується з параметрами st(2, 2). У стеку також
виділяється наступний блок пам’яті, а в умов-
ному операторі також виконується гілка else
і робиться спроба обчислити значення функції
st із параметрами st(2, 1).
3. Третій раз звернення до функції st вико-
нується з параметрами st(2, 1). У стеку також
виділяється блок пам’яті й знову виконується
гілка else з параметрами st(2, 0).
4. Четвертий раз виклик функції виконуєть-
ся з параметрами st(2, 0). У стеку виділяється
четвертий блок пам’яті, але виконується гілка
then, а функція st набуває значення 1. У ре-
зультаті функція st більше не викликається
і здійснюється повернення в основну програму,
яка викликала цю функцію.
5. Далі зі стеку вибирають опорне значення
st(2, 0), яке дорівнює одиниці, оскільки в стеку
реалізується принцип «останній прийшов —
перший вийшов».
6. На цьому кроці обчислюється значення
st(2, 1), яке дорівнює 2, потім значення st(2, 2),
яке дорівнює 4, нарешті — st(2, 3), яке дорів-
нює 8. Це значення повертається в основну
програму.
Динаміку описаного процесу «заглиблення»
й виходу зі стеку для описаного прикладу на-
ведено в таблиці (с. 73).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
73. 735.2. Рекурсивні функції
Класичним варіантом
рекурсивної функції є
обчислення факторіалу
заданого числа n, яке ви-
конується за формулою
n! = n * (n–1)!, якщо n0,
і n! = 1, якщо n=0.
Програму обчислення
факторіалу наведено на
рис. 2.
Рекурсія є складним процесом, який вимагає додаткової
пам’яті та часу її реалізації. Тому частіше використовується
рекурентне обчислення. Однак без рекурсії інколи обійтися до-
сить складно, оскільки без неї алгоритм має заплутану логіку.
Рівень рекурсії Рекурсивне «заглиблення» Рекурсивне повернення
0 Виклик st(2, 3) ↓ →→Вихід st = 8
1 st(2, 3) = st(2, 2)*2 ↓ ↑ st(2, 3) = 2*4 ( 8)
2 st(2, 2) = st(2, 1)*2 ↓ ↑ st(2, 2) = 2*2 (4)
3 st(2, 1) = st(2, 0)*2 ↓ ↑ st(2, 1) = 1*2 (2)
4 st(2, 0) = 1 →→ →
Приклад 4.
Дано два цілі додатні числа. Розробити
програму обчислення найбільшого спільно-
го дільника з використанням рекурсивної
функції.
Програма знаходження найбільшого спільно-
го дільника двох цілих чисел без використання
рекурсивних підпрограм уже розглядалася ра-
ніше. Розв’язання задачі засноване на викори-
станні алгоритму Евкліда. Програму реалізації
цього алгоритму з використанням рекурсив-
ної функції зображено на рис. 3. Функція
має ім’я nod, а числа, для яких обчислюєть-
ся найбільший спільний дільник, позначені
змінними a і b.
Рис. 3. Програма обчислення найбільшого спільного дільника
Рис. 2. Програма обчислення факторіалу з використанням рекурсивної функції
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
74. Розділ 174
Запитання для перевірки знань
1 Що називають рекурсією в програмуванні?
2 Із якою метою в тілі рекурсії передбачається
умовний оператор?
3 На якій структурі даних засновано реалізацію
рекурсивних функцій?
4 Які дефекти має рекурсивне обчислення?
5 Поясніть сутність «заглиблення» та виходу зі
стеку в процесі реалізації рекурсії.
Завдання для самостійного виконання
1 Розробіть програму з рекурсивною функцією об-
числення n перших членів геометричної прогре-
сії, перший член якої дорівнює a і знаменник q.
2 Розробіть програму з використанням рекур-
сивної функції обчислення кількості цифр у де-
сятковому натуральному числі а.
3 Для одновимірного числового масиву довжи-
ною n розробіть програму з використанням
рекурсивної функції обчислення добутку зна-
чень його елементів.
5.3. Модулі
Які переваги, на вашу думку, надає модульний принцип будови
програмного коду? Із якими модулями стандартної бібліоте-
ки мови Python ви вже стикалися?
Ми вже розглядали загальну структуру програми мовою
Python, яка складалася з кількох файлів. Кожен файл є моду-
лем. Використовувалися окремі модулі зі стандартної бібліотеки,
але сутність процесів імпортування модулів не описувалася.
Програма мовою Python складається зі множини текстових
файлів. Один із файлів програми є головним, до нього під-
ключаються (імпортуються) додаткові файли, тобто модулі.
Програма запускається з головного файла, який і визначає
порядок виконання інших модулів. Файли модулів містять
компоненти, які використовує головний файл, а модулі вико-
ристовують компоненти, що визначені в інших модулях. Але
для того щоб їх використати, ці модулі слід імпортувати.
Розглянемо сутність імпортування модулів і викори-
стання їх компонентів на прикладі структури найпростішої
програми (рис. 1).
Модулі стандартної
бібліотеки
а.ру b.py
МодульГоловний
файл
Рис. 1. Структура найпростішої програми
Із рис. 1 видно, що програма складається з модуля головно-
го файла (a.py), додаткового модуля (b.py) і модулів стандартної
У модулі визначаються імена
(функції, змінні тощо), які на-
зивають атрибутами модулів.
Вони стають доступними ін-
шим модулям після їх імпорту-
вання. Навіть у тому випадку,
коли вдається програму логіч-
но оформити в одному моду-
лі, часто доводиться викори-
стовувати в ньому вже наявні
модулі, зокрема модулі стан-
дартної бібліотеки.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
75. 755.3. Модулі
бібліотеки. Припустимо, що в модулі b.py визначена функція
без параметрів funct_1 (у цьому випадку ця функція є атри-
бутом модуля b.py):
def funct_1():
y = 7.7 / 3.2
print(y)
Імпортування модуля реалізується інструкцією import ім’я
модуля. За допомогою однієї інструкції import можна імпор-
тувати кілька модулів, наприклад, імпортувати модулі math
і random можна за допомогою інструкції:
import math, random
Після імпортування модуля можна отримати доступ до його
атрибутів, які відокремлюються від назви модуля крапкою,
наприклад, math.pi:
import math
math.pi
3.141592653589793
Якщо атрибут не знайдено, генерується виняток Attri
buteError. Для того щоб цей виняток не генерувався, мож-
на у функції getattr() указати значення за замовчуванням,
наприклад:
import math
print(getattr (math, “ant”, “Відсутній”))
Відсутній
Перевірити наявність атрибута в модулі можна за допомо-
гою функції hasattr(модуль, назва атрибута). Якщо атрибут іс-
нує, повертається значення True.
import math
hasattr(math, «pi»)
True
Інколи доцільно користуватися не іменем модуля,
а його псевдонімом. Наприклад, псевдоніми доцільно за-
стосовувати, якщо ім’я модуля довге. Але якщо ого-
лошено псевдонім модуля, то після цього іменем мо-
дуля користуватися не можна. Псевдонім указується
в інструкції імпортування модуля за такою структурою:
as ім’я модуля:
import math as p
print(p.pi)
3.141592653589793
Якщо в програму необхідно імпортувати не весь мо-
дуль, а лише окремі його ідентифікатори, то можна ско-
ристатися інструкцією from. Один із можливих її форматів
є таким:
from ім’я модуля import ідентифікатор1 [as псевдонім1]
[,…,ідентифікаторN [as псевдонімN]]
Для того щоб функцію funct_1
можна було використовувати
в модулі a.py, спочатку необ-
хідно імпортувати модуль b.py
до модуля a.py, а потім можна
її використовувати за допомо-
гою інструкції b.funct_1().
Значення атрибута модуля мож
на отримати також за допомо-
гою функції getattr () за його
назвою.
Функція має такий формат:
getattr(модуль, назва атрибута
[,значення за замовчуванням]):
import math
print(getattr(math, ʺpiʺ))
3.141592653589793
Стандартна бібліотека Python
містить колекцію майже
з 200 різноманітних модулів,
які забезпечують незалежну
платформу підтримки багатьох
задач програмування (пошук
за шаблоном, створення гра-
фічного інтерфейсу й ін.). На
цьому етапі нам потрібні лише
модулі math і random, модуль
sys, що містить інформацію про
середовище виконання про-
грам інтерфейсу Python.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
76. Розділ 176
Із наведеного прикладу видно, що різниця між інструк-
ціями import і from полягає також і в порядку звернення до
атрибутів імпортованих модулів. Якщо імпортування модуля
виконується за допомогою інструкції import, для звернення до
його атрибутів необхідно вказувати через крапку ім’я цього
модуля, наприклад, math.pi. Якщо ж імпортування здійснює-
ться за допомогою інструкції from, указувати ім’я модуля
не потрібно.
Відзначимо також, що в процесі першого запуску програми
під час виконання інструкції імпортування модуля спочатку
здійснюється його пошук, потім трансляція в байт-код, після
чого запускається програмний код модуля. Під час наступних
запусків ці дії не виконуються, а програмний код модуля про-
сто вибирається з пам’яті.
Такий варіант застосовується для невеликих програм, зо-
крема для програм навчального призначення, які зберігаються
в одній папці. Система в такому разі сама автоматично здій-
снює їх пошук. Цей варіант вважається стандартним шляхом
пошуку файлів. Файли реальних програм можуть зберігатися
в різних папках і тому в процесі імпортування необхідно вказу-
вати шлях до кожного з них. Ці питання тут не розглядаються.
Зазначимо, що в розглянутих прикладах програм викори-
стовувалося імпортування окремих модулів і їх атрибутів. Але
імпортувати можна також і каталоги, які в мові Python назива-
ють пакетами. Найчастіше пакети застосовуються для групу-
вання модулів за їх функціональним призначенням.
Пакети мають деякі специфічні особливості, характерні для
мови Python. Вони застосовуються переважно в професійному
програмуванні й тому тут не розглядаються.
Запитання для перевірки знань
1 Для чого в мові Python застосовується ім-
портування модулів?
2 Який файл називають головним файлом
програми?
3 За допомогою яких інструкцій імпортують-
ся модулі?
4 Назвіть складові програми мовою Python.
5 Поясніть на прикладі сутність імпортуван-
ня модулів.
6 Із якою метою застосовуються псевдоніми
модулів?
7 Поясніть різницю між інструкціями import
і from.
8 За допомогою якої інструкції перевіряєть-
ся наявність атрибута в модулі?
9 У яких випадках у файлі програмного коду
не застосовується розширення .py?
У процесі збереження розроб-
лених файлів програмного коду
розширення .py не застосовува-
лося. Це пояснюється лише тим,
що програми містили лише го-
ловні файли програм, які не
передбачалося імпортувати до
інших модулів. Але для фай-
лів, які планується імпортува-
ти в інші, розширення .py слід
обов’язково вказувати.
Приклад.
from random import randint, uniform as un # імпортування двох функцій
print(randint(2, 10)) # звернення до функції randint
3
print(un(1, 9)) # звернення до функції uniform через псевдонім
1.207729134588777
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
77. 776.1. Елементи теорії...
6. Класи, об’єкти, наслідування
Основний дефект процедурного стилю програмування по-
лягає в тому, що він слабко пристосований для розроблення
великих програм. Із часом програми стають настільки склад-
ними, що розібратися в них непросто. Одним із напрямків
розв’язування цієї проблеми є об’єктно-орієнтоване програму-
вання (ООП).
6.1. Елементи теорії об’єктно-орієнтованого
програмування
Із якими об’єктами ОПП ви вже ознайомилися?
ООП базується на трьох основних принципах:
•• наслідування;
•• поліморфізм;
•• інкапсуляція.
Ці принципи є досить абстрактними та складними для ро-
зуміння на початкових етапах ознайомлення з мовою. В ООП
загалом використовується значна кількість нових термінів.
Щоб свідомо опанувати їх, розглядатимемо їх поступово на
прикладах.
Для загального ознайомлення наведемо основні терміни.
Клас (Class) — об’єкт, що складається із сукупності методів
і змінних (атрибутів), які описують цей об’єкт.
Метод (Method) — сукупність інструкцій мови опрацювання
даних.
Змінна класу (Class variable) — звичайна змінна, що визначає
ться всередині класу (а не всередині методів класу), яка є до-
ступною для всіх екземплярів цього класу.
Екземпляр класу (Instance) — окремий об’єкт класу.
Змінна екземпляра класу (Instance variable) — змінна, що
визначена всередині методу класу і яка належить тільки цьому
класу.
Сутність ООП у різних джерелах тлумачиться по-різному.
Здається, що найбільш удало та просто описав її Алан Кей.
Він зазначив, що мову можна назвати ООП, якщо вона відпо-
відає певним вимогам.
Мова ООП має відповідати таким вимогам:
•• усі дані подаються об’єктами;
•• програма є набором об’єктів, які взаємодіють між собою
та надсилають один одному необхідні повідомлення;
•• кожен об’єкт може мати у своєму складі інші об’єкти
і для всіх них виділяється власна частина пам’яті;
•• кожен об’єкт належить одному типу (класу), який задає
поведінку об’єктів, створених на їх основі;
•• об’єкти одного типу можуть виконувати одні й ті са-
мі дії.
До основних понять об’єктно-
орієнтованого програмування
належать об’єкт, клас, метод.
Алан Кертіс Кей — американ-
ський інформатик, відомий свої
ми працями в галузі ООП, прези-
дент дослідного інституту В'ю
поїнта, ад'юнкт-професор інфор-
матики в Каліфорнійському уні-
верситеті (США). Кей сказав, що
найкращий спосіб спрогнозувати
майбутнє — винайти його.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
78. Розділ 178
Вимоги до мов ООП у різних мовах програмування реалі-
зуються по-різному: найскладніше в мовах Java і C++, значно
простіше — у мові Python. Уже розроблені нами програми
складалися з окремих частин (фрагментів) на основі функцій
і модулів, до яких можна було звертатися багаторазово. Зва-
жаючи на те, що в цих програмах застосовувалися об’єкти
та методи (що є базовими поняттями ООП), такі програми не
можна в повному розумінні віднести до ООП.
Досі ми не використовували такі фундаментальні поняття,
як клас, екземпляр класу, наслідування й ін. А без них про
реалізацію ООП не може навіть ітися.
Переваги ООП стають відчутними лише в процесі
розв’язування великих і складних завдань. Для багатьох
задач середньої складності, особливо навчального призна-
чення, не тільки можна, а й доцільно застосовувати гібридні
мови.
Така особливість мови Python, як гібридність, дала змогу
на початкових етапах її вивчення основну увагу приділити
синтаксичним конструкціям, функціям і модулям, без яких
не може існувати не лише процедурне, а й об’єктно-орієнтоване
програмування. Розуміння цих питань допоможе тепер якісно
оволодіти й методами ООП.
Характерними особливостями ООП мовою Python можна
вважати такі:
• основною складовою мови ООП є клас, головне призна-
чення якого — створення та маніпулювання об’єктами,
а також підтримка механізму наслідування як способу
адаптації програмного коду для розв’язування однотип-
них задач і неодноразового його використання;
• об’єкти мови Python нагадують убудовані типи, які було
описано раніше;
• програма складається з окремих, достатньо незалежних
частин, що суттєво полегшує її розуміння й читання;
• нова програма може розроблятися не «з нуля», а шля-
хом адаптування вже наявного програмного коду, без
його зміни.
Під час кожного звернення до класу створюється новий
об’єкт — екземпляр класу, тому можна отримати необмежену
кількість екземплярів на основі цього класу.
Отже, основою ООП є клас — це складний тип даних із пев-
ним набором змінних (атрибутів) і функцій (методів) опрацюван-
ня значень, що зберігаються в цих змінних.
Використання принципів ООП
у мові Python не є обов’яз-
ковим. Залежно від особливо-
стей задачі, програму можна
розробляти на основі прин-
ципів як процедурного про-
грамування, так і ООП. Така
унікальність мови дає змогу
розробляти досить компактні
програми, адже не для кожної
задачі ОПП є оптимальним.
Гібридна мова поєднує влас-
тивості як процедурного, так
і об’єктно-орієнтованого про-
грамування. Саме до них на-
лежить мова Python.
Запитання для перевірки знань
1 На яких основних принципах базується ООП?
2 Для яких задач відчутні переваги ООП?
3 Яким основним вимогам має відповідати ООП?
4 Які мови називають гібридними?
5 Які фундаментальні поняття застосовуються
в ООП?
6 Назвіть основні особливості ООП мовою
Python.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
79. 796.2. Створення класів...
6.2. Створення класів і об’єктів
Пригадайте, які елементи ООП ви вже використовували.
У мові Python реалізація принципів ООП практично зво-
диться до виконання виразу: об’єкт.атрибут. Цей вираз уже
неодноразово використовувався нами для доступу до атрибутів
модуля, звернення до методів об’єктів тощо. Але реалізація
таких виразів відбувалася за відсутності в програмі класів.
Якщо програма містить класи, то створюється дерево
пов’язаних об’єктів. У такому разі в процесі реалізації ви-
разу об’єкт.атрибут інтерпретатор починає пошук зазначе-
ного атрибута в дереві пов’язаних об’єктів у такому порядку:
спочатку атрибут відшукується в цьому самому об’єкті, по-
тім — у дереві об’єктів знизу догори і зліва направо. Пошук
завершується, щойно буде знайдено першу появу атрибута.
Тіло класу містить змінні та функції класу. Функції в ООП
називають методами, а змінні класу — атрибутами.
Атрибути створюються як звичайні змінні, а методи — як
звичайні функції за допомогою інструкції def.
Щоб визначити, який саме екземпляр класу слід опрацьо-
вувати, у методі обов’язково слід указати перший параметр
з іменем self (інші параметри можуть бути відсутні). Цьому
параметру автоматично передається посилання на відповідний
екземпляр класу.
За допомогою параметру self здійснюється доступ до змін-
них екземпляра класу та методів класу всередині визначеного
методу. Параметр self відокремлюється від змінної або методу
крапкою. Наприклад, до змінної ask із методу класу можна звер-
нутися так: self.ask.
Структуру класу можна подати детальніше:
class ім’я класу ([суперклас_1, суперклас_2,…]):
змінна = значення
def ім’я методу (self,…):
self.змінна = значення
…
Необхідно чітко розуміти, що в результаті виконання ін-
струкції class буде створено новий екземпляр класу, який та-
кож є об’єктом, посилання на який присвоюється імені змін-
ної. Якщо цей клас має батьківські класи (суперкласи), від
якого він є нащадком, то вони вказуються в круглих дужках
через кому. Якщо він не є нащадком, то круглі дужки не
вказуються.
Для того щоб можна було використовувати атрибути та
методи класу, необхідно створити екземпляр класу за такою
структурою:
екземпляр класу = ім’я класу ([параметри])
Об’єкти в програмі можна
створювати лише на осно-
ві класів, тому програма по-
чинається зі створення кла-
су. Класи можна розробляти
самостійно або імпортувати
з інших модулів. Вони розмі-
щуються на початку програм-
ного коду.
Класи створюються за допо-
могою інструкції class і мають
таку загальну структуру:
class ім’я класу [(класи, що
є нащадками)]:
тіло класу
Методи можна розглядати як
невеликі програми, призначені
для опрацювання об’єктів, тоб-
то вони створюють нові власти-
вості об’єктів, змінюють наявні
тощо. Методи фактично є ана-
логами підпрограм у мовах
процедурного програмування.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
80. Розділ 180
Тут екземпляр класу є звичайним ідентифікатором. У ре-
зультаті кожного виконання цієї інструкції у пам’яті комп’ютера
виділяється ділянка пам’яті, доступ до якої здійснюється за
допомогою пов’язаного з ним ідентифікатора, тобто в пам’яті
створюється об’єкт. Цей об’єкт має характеристики того класу,
у якому його створено, тобто він отримує атрибути свого класу.
Під час кожного звернення до класу створюється новий
екземпляр класу з різними значеннями атрибутів. Напри-
клад, якщо в класі обчислюється об’єм піраміди з висотою
h, основою якої є квадрат зі стороною а, то під час кожного
звернення до класу буде створюватися такий самий об’єкт з
атрибутами h і a, але значення їх будуть різними.
Зазвичай класи без методів не використовуються.
Метод викликається з ос-
новного блоку програми за
допомогою інструкції:
екземпляр класу.ім’я
методу ([параметри])
Приклад 1.
Для усвідомлення сутності ООП спочатку розробимо найпростішу програму без методу (рис. 1).
Рис. 1. Найпростіша програма без методу
У цій програмі оголошено змінну (атрибут)
з іменем а і два екземпляри ob1 і ob2 класу
Kl7_01. Імена екземплярів різні, тому для них
буде відведено дві ділянки пам’яті, але їх зміст
однаковий і має значення змінної а, тобто гар-
но. Виведення атрибута цих об’єктів здійснюєть-
ся двічі за допомогою вбудованої функції print.
У результаті буде двічі виведено слово гарно.
Додамо в цю програму метод з іменем func
і параметром self (рис. 2). В інструкції цього ме-
тоду виводиться значення змінної а, до якого до-
дається слово і правильно.
Рис. 2. Найпростіша програма з одним методом
Метод func викликається в програмі двічі: з екземплярів класу ob1 і ob2. Результат виведенння
зображено на рис. 3.
Рис. 3. Виконання програми з одним методом
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
81. 816.2. Створення класів...
Як бачимо у програмі (див. рис. 3) використовувався один
метод лише зі стандартним параметром self.
Приклад 2.
Розглянемо програму з двома методами, у кожному з яких, окрім параметра self, викорис-
товується ще один параметр (рис. 4.).
Рис. 4. Програма з двома методами, у кожному з яких два параметри
Основна ідея цієї програми полягає в де-
монстрації порядку зміни властивостей ство-
рених об’єктів за допомогою методів. Дві
змінні predm і klas оголошені поза межами
методів. Тому обидва об’єкти (ob1 і ob2) набу-
вають властивості, які мають ці змінні, тобто
інформатика і 8. А потім за допомогою методів
ці властивості змінюються.
У програмі метод func_1 має параметри
self і a1, а метод func_2 — параметри self і
a2. Ці методи виконують тільки одну дію, а
саме: метод func_1 змінює значення змінної
predm, а метод func_2 — значення змінної
klas.
У програмі створено два екземпляри класів:
ob1 і ob2. Поза межами методів змінна predm
набуває значення «інформатика», а змінна
klas — значення 8. За допомогою інструк-
цій print (ob1.predm, ob1.klas) і print (ob2.predm,
ob2.klas) здійснюється виведення значень цих
змінних.
Зважаючи на те, що в першій інструк-
ції змінні викликаються з екземпляра ob1,
а в другій інструкції вони викликають-
ся з екземпляра ob2, значення змінних од-
накове, тому двічі буде виведено інформа-
тика 8.
Далі за допомогою інструкції ob1.func_1
(«математика») з екземпляра ob1 виклика-
ється метод func_1 з аргументом математика.
Цей аргумент передається параметру а1, а
за допомогою інструкції self.predm = a1 змін-
на predm набуває нового значення, а саме —
математика.
Звернемо увагу, що значення змінної klas
екземпляра ob1 не змінювалося, тому за до-
помогою інструкції print (ob1.predm, ob1.klas)
буде виведено математика 8.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
82. Розділ 182
Розглянемо ще один приклад розв'язування такої задачі.
Після цього за допомогою інструкцій ob2.
func_1 («історія») і ob2.func_2 (9) викликаються
методи func_1 і func_2 з екземпляра ob2. У ре-
зультаті обидві змінні змінюють своє значення
і буде надруковано історія 9. Результат виконан-
ня програми наведено на рис. 5.
Рис. 5. Виконання програми з двома методами
Приклад 3.
Дано два конуси різних розмірів із відомими радіусом основи й висоти. Потрібно обчислити
об’єм одного з них і загальну площу другого. Програму розв’язування цього завдання зобра-
жено на рис. 6.
Рис. 6. Програма з двома методами, кожен із яких має три параметри
Для обчислення об’єму конуса викорис-
товують метод func_1 із параметрами self, a1
і a2, а для обчислення повної поверхні ко-
нуса — метод func_2 із параметрами self,
a3 і a4.
Звернемо увагу, що в програмі відсутні
змінні класу, тобто змінні за межами мето-
дів. У процесі звернення до методу func_1 па-
раметру a1 передається число 3, а параметру
a2 — число 4. Результат обчислення об’єму ко-
нуса повертається в інструкцію, з якої відбу-
лося звернення до методу, тобто до інструкції
print (об’єм = , ob1.func (3, 4)).
Отже, результат обчислення буде виведено на
екран. Після звернення до методу func_2 пара-
метр а3 набуде значення 4, а параметр а4 — зна-
чення 5. Результат обчислення не повертається
в інструкцію, що його викликала, а виводиться
за допомогою інструкції print (площа = , surface)
у цьому самому методі.
Результат виконання програми наведено на
рис. 7.
Рис. 7. Виконання програми з двома методами, кожен із яких має три параметри
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
83. 836.3. Конструктор класу
Запитання для перевірки знань
1 За допомогою якої інструкції створюється клас?
2 Які основні складові містить тіло класу?
3 Що називають методом класу?
4 Із якою метою в методі класу використовуєть-
ся параметр self?
5 За допомогою якої інструкції створюється ме-
тод класу?
6 Як створюється об’єкт класу?
7 Яка інструкція використовується для звернен-
ня до методу класу?
Завдання для самостійного виконання
1 Змінна a1 набуває значення «інформатика»,
а змінна a2 — «фізика». Створіть програму
з двома об’єктами, але без методу, за допо-
могою якої з використанням першого об’єкта
виводиться слово інформатика, а з викори-
станням другого — фізика.
2 Змінна а1 набуває значення «байт». Створіть
програму з двома об’єктами і функцією. Метод
викликається спочатку з першого, потім —
із другого об’єкта. Кожного разу виводиться
значення змінної а1.
3 Змінна а набуває значення «Україна», а змінна
b — «Франція». За допомогою інструкції input()
уводиться довільне ціле число. Розробіть про-
граму без методів, у якій створюються два
об’єкти. Якщо уведене число більше 5, виводить-
ся значення з використанням першого об’єкта,
інакше — з використанням другого об’єкта.
4 Створіть програму, у якій одна змінна набуває
значення «файл», а друга — «папка». Метод, який
викликається з обох об’єктів, виводить ці слова.
5 Розробіть програму з двома методами. У першо-
му з них обчислюється площа (у га), що припа-
дає на одного мешканця чи мешканку Дніпро-
петровської області, а в другому — Хмельни-
цької області.
6 Розробіть програму з використанням двох ме-
тодів. В одному з них обчислюється об’єм кулі
радіусом r, а в другому — площа трикутника зі
сторонами a, b, c.
6.3. Конструктор класу
Пригадаємо, що ініціалізація змінних класу здійснювалася під
час кожного створення його екземплярів, що є суттєвим де-
фектом. Для його подолання в мові Python застосовується
конструктор класу.
У мові Python є спеціальний метод __init__ (зліва
і справа по два знаки підкреслення), який називають
конструктором класу.
Цей метод викликається автоматично під час кожного ство-
рення екземпляра класу. Якщо метод __init__ містить параметри,
то в інструкції створення екземпляра класу в круглих дужках
указуються аргументи, які, відповідно, передаються параметрам.
У нашому випадку екземпляр класу створюється за такою
структурою:
екземпляр класу=ім’я класу(аргумент1,…,аргументN)
Метод __init__ викликається автоматично. Наразі виконуються
такі дії. Посилання на екземпляр класу передається першому
параметру методу __init__ (таким параметром є self). Це означає,
Загальна форма методу кон-
структором класу така:
def __init__(self
[,параметр1[,…,параметрN]]):
тіло методу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
84. Розділ 184
що параметр self указує на об’єкт, із якого викликається метод,
а всі інші значення аргументів, перелічені в круглих дужках,
передаються іншим параметрам методу.
Під час створення екземпляра класу щоразу викликаєть-
ся метод __init__. Новий екземпляр класу передається як ар-
гумент параметру self, а значення аргументів — відповідним
параметрам методу.
Значення параметрів у методі __init__ можна присвоювати
не тільки в процесі створення об’єкта, а й безпосередньо в са-
мому методі. Наприклад:
def __init__(self, a1=файл, a2=25):
Приклад 1.
На рис. 1 зображено найпростішу програму, у якій демонструється сутність описаних процесів:
Рис. 1. Найпростіша програма з конструктором
Перш за все відзначимо, що змінні p1 і p2
є змінними екземпляра класу, в цьому випад-
ку — екземпляра ob1. Тепер чітко зрозуміла
різниця між змінними класу та змінними ек-
земпляра класу. За допомогою інструкції ob1
= Kl7_05 («Вивчаємо», «інформатику») створюється
екземпляр класу, аргументами якого є слова
Вивчаємо й інформатику.
Під час створення екземпляра класу автома-
тично викликається метод __init__, у результаті
чого посилання на екземпляр ob1 буде присвоє-
но параметру self, слово Вивчаємо передається па-
раметру а1, а слово інформатику — параметру а2.
Наступними інструкціями (self.p1=a1 і self.p2.a2)
значення цих слів присвоюються, відповідно,
змінним p1 і p2 екземпляра ob1. У процесі ви-
конання інструкції print (ob1.p1, ob1.p2) буде ви-
ведено Вивчаємо інформатику. Отже, атрибути
(змінні) p1 і p2 екземпляра класу ініціалізу-
ються при створенні саме екземпляра класу.
Приклад 2.
Для свідомішого розуміння сутності конструктора й доцільності його використання складемо
програму, яка виконує ті самі дії, що й попередня програма, але без конструктора (рис. 2).
Рис. 2. Програма без конструктора
Як бачимо, ця програма складніша. У ній екземпляр класу створюється без аргументів і необ-
хідно викликати метод stm, у якому значення його аргументів присвоюються змінним екземп-
ляра, які потім виводяться на екран.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
85. 856.3. Конструктор класу
Якщо метод викликається з екземпляра класу без аргументів,
то значення, що вказані в методі, зберігаються. Якщо ж у ек-
земплярі класу вказані аргументи, то вони передаються в метод,
а значення, що вказані в методі, не враховуються.
Конструктор може одночасно містити як параметри, яким не
присвоюються значення, так і параметри, яким присвоюються
відповідні значення. У такому разі параметри, яким не при-
своюються значення, вказуються першими, а параметри, яким
присвоюються значення — після них.
Приклад 3.
На рис. 3 зображено програму, у якій демонструються сформульовані положення.
Рис. 3. Програма з різними варіантами конструктора
Звернемо увагу, що екземпляр класу ob3 не
має аргументів, тому вказані в методі значення
параметрів (Харків і Одеса) зберігаються. В ек-
земплярі ob2 є тільки один аргумент (Львів).
Тому змінюється лише значення параметра а1,
а значення параметра а2 залишається незмін-
ним. На рис. 4 наведено результат виконання
програми.
Рис. 4. Виконання програми з різними варіантами конструктора
Приклад 4.
На рис. 5 зображено програму з такими параметрами.
Рис. 5. Програма з різними параметрами
Результат виконання програми наведено на рис. 6.
Рис. 6. Виконання програми з різними параметрами
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
86. Розділ 186
Запитання для перевірки знань
1 Що називають конструктором класу в мові
Python?
2 Яку загальну структуру має метод __init__?
3 У яких випадках викликається метод __init__?
4 Які дії виконуються в процесі створення об’єкта
і наявності методу __init__?
5 Що передається параметру self у процесі ство-
рення об’єкта?
6 Наведіть загальну структуру інструкції ство-
рення об’єкта класу.
7 Як можна присвоїти значення параметрам ме-
тоду __init__ у самому методі?
Приклад 5
Проводиться жеребкування чемпіонату Єв-
ропи з футболу серед 16 команд, які залежно
від отриманого номера потрапляють в одну з
чотирьох груп. Якщо команда отримує номер
менший 5, вона потрапляє в першу групу, якщо
номер більший 4, але менший 9, то в другу гру-
пу, якщо номер більший 9, але менший 13, то
в третю групу, інакше — в четверту групу. На
рис. 7 зображено програму реалізації результа-
тів жеребкування для чотирьох команд.
Рис. 7. Програма жеребкування команд чемпіонату Європи з футболу
Після запуску програми в процесі створен-
ня екземпляра ob1 класу K17_09 викликається
конструктор, у результаті чого параметр self на-
буває значення екземпляра класу ob1, параметр
а1 — значення Динамо, параметр а2 — зна-
чення Київ, параметр а3 — значення 7. Потім
викликається функція func1 із параметром а3.
У ній визначається, до якої групи потрап-
ляє команда «Динамо» і назва цієї групи
запам’ятовується в змінній p3 екземпляра кла-
су ob1. Далі виконуються аналогічні дії для ек-
земплярів класу ob2, ob3 і ob4. У результаті для
кожного об’єкта буде виділено ділянки пам’яті,
у яких будуть зберігатися значення змінних
p1, p2 і p3. Наступними чотирма інструкціями
значення змінних кожного екземпляра класу
виводяться на екран. Результат виконання про-
грами наведено на рис. 8.
Рис. 8. Виконання програми жеребкування команд ліги чемпіонату Європи з футболу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
87. 876.4. Наслідування
Завдання для самостійного виконання
1 Створіть програму з конструктором, за до-
помогою якої із набору «Київ», « — столиця»,
«України» створюється повідомлення Київ —
столиця України.
2 Створіть програму з конструктором і мето-
дом обчислення значення виразу (a2 + b2) / 2,
якщо значення a і b уводяться з клавіатури.
3 Конструктор має такі значення параметрів: self,
a1 = 3, a2 = 4. Створіть програму множення
значень параметрів конструктора, за умови,
що він викликається — з першого об’єкта без
аргументів, з другого об’єкта — з аргументом
5 і 6, а з третього — з аргументом 7.
4 Розробіть програму, у якій конструктор має
параметри self, a1 і a2. Він викликається з двох
об’єктів, аргументами яких є два цілих числа.
Якщо значення першого аргумента більше
другого, ці числа множаться, інакше — зна-
чення першого ділиться на друге.
5 Конструктор має такі значення параметрів: self,
a1 = Дністер a2 = Десна. Розробіть програ-
му виведення всіх можливих результатів на
екран, у якій конструктор викликається з пер-
шого об’єкта з аргументами Дніпро та Ворскла,
з другого об’єкта — з аргументом Дніпро, та з
третього об’єкта без аргументів.
6 Конструктор має параметри зі значеннями:
self, a1 = Операційна a2 = система. За допо-
могою інструкції input() уводиться слово. Якщо
це слово Linux, виводиться повідомлення Опе-
раційна система Linux, інакше — повідомлення
Операційна система Windows.
6.4. Наслідування
У різних частинах програмного коду часто використовуються
одні й ті самі атрибути, що суттєво впливає на загальний об-
сяг програми. Як, на вашу думку, можна цього позбавитися?
Наслідування в мові Python — це здатність об’єктів
класу застосовувати атрибути цього самого класу, а
також здатність одними класами застосовувати атри-
бути інших класів.
Розглянемо спочатку здатність об’єкта класу наслідувати
атрибути цього самого класу.
Приклад 1.
На рис. 1 подано програму обчислення площ двох прямокутних трикутників із відомими катетами.
Рис. 1. Програма з наслідуванням об’єктами атрибутів одного класу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
88. Розділ 188
Розглянемо тепер приклад програми з наслідуванням
атрибутів одного класу іншим класом.
Клас, від якого наслідується інший клас, називають су-
перкласом, а клас, що унаслідується, — підкласом. В оголо-
шенні підкласу в круглих дужках указуються ім’я супер-
класу, від якого він наслідується.
У програмі обидва екземпляри класу ob1
і ob2 наслідують властивості p1, p2 і p3, а ек-
земпляр класу ob1 наслідує ще й властивість
form. Екземпляр класу ob2 цієї властивості не
має, оскільки атрибути класу наслідуються
об’єктами, створеними лише на його основі.
Атрибути конкретного об’єкта не залежать від
атрибутів інших об’єктів і мають власний про-
стір імен об’єкта. Це означає, що об’єкти одно-
го класу можуть мати різні значення атрибу-
тів. Результат виконання програми наведено
на рис. 2.
Рис. 2. Виконання програми з наслідуванням об’єктами атрибутів одного класу
Приклад 2.
На рис. 3 зображено програму, у якій клас Kl7_11 є суперкласом, а клас Kl7_11а — підкласом.
Клас Kl7_11a має доступ до всіх атрибутів класу Kl7_11.
Рис. 3. Програма з наслідуванням методів одного класу іншим класом
У цій програмі клас Kl7_11a має доступ до методів func1 і func2 класу Kl7_11, а також до влас-
ного методу func3. Результат виконання програми подано на рис. 4.
Рис. 4. Виконання програми з наслідуванням методів одного класу іншим класом
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
89. 896.4. Наслідування
Якщо ім’я методу в суперкласі збігається з іменем методу
підкласу, то в процесі звернення до нього буде викори-
стовуватися метод із підкласу. Щоб викликати одноймен-
ний метод із суперкласу, слід указати також перед цим
методом назву суперкласу. У першому параметрі методу
необхідно вказати посилання на екземпляр класу.
У програмі використано такі змінні: vaga — реальна вага
контейнера, contr — контрольна їх вага, p1, p2, p3 — розміри
сторін контейнерів, m — змінна ознаки номера контейнерів,
v — об’єм поточного контейнера, p4 — результат можливості
використання контейнерів. Програма складається з двох кла-
сів: суперкласу Kl7_12 і підкласу Kl7_12a. Підклас наслідує оби-
два методи суперкласу (__init__ і func1), а також змінну contr.
Екземпляр класу ob1 належить підкласу Kl7_12a і наслідує всі
методи цього класу та суперкласу. Екземпляр класу оb2 на-
лежить суперкласу. До підкласу Kl7_12a він жодного стосунку
не має й тому не може звертатися до методів func2 і func3.
Опишемо порядок виконання програми на прикладі.
Приклад 3.
Відомі всі три сторони двох прямих контей-
нерів (паралелепіпедів), а також їх реальна вага.
Обчисліть об’єм кожного контейнера, а також
можливість їх використання. Контейнери можна
використовувати за умови, що їх реальна вага не
перевищує контрольну, значення якої уводиться
з клавіатури. Програму реалізації завдання зо-
бражено на рис. 5.
Рис. 5. Програма з наслідуванням атрибутів одного класу іншим класом
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
90. Розділ 190
Запитання для перевірки знань
1 Які можливості надає наслідування в мові
Python?
2 Які класи називають суперкласами й під-
класами?
3 Як оголошується підклас, який унаслідується
від суперкласу?
4 Наведіть приклад наслідування атрибутів в од-
ному класі.
5 Як здійснити звернення до однойменних мето-
дів у підкласі й суперкласі?
6 Наведіть приклад наслідування одного класу
іншим.
Завдання для самостійного виконання
1 Розробіть програму без конструктора, у якій
один клас наслідує атрибути іншого. У супер-
класі два числа множаться, а в підкласі виво-
диться результат множення.
2 Обчисліть площі двох прямокутних трикутни-
ків із відомими значеннями катетів із викори-
станням суперкласу, підкласу та конструктора.
У суперкласі обчислюються площі трикутників,
а в підкласі — виведення значень обчислених
їх площ.
3 Конструктор має параметри self, a1, a2, який
викликається з двох об’єктів. Перший об’єкт
має аргументи «Київ» і «Вінниця», другий —
«Львів» і «Харків». Розробіть програму виве-
дення значень параметрів конструктора для
обох об’єктів, а також виведення значення
першого об’єкта: міста України.
4 Розробіть програму з суперкласом і підкласом.
У суперкласі за допомогою одного методу об-
числюється сума значень трьох параметрів
методу, а за допомогою другого — їх добуток.
У підкласі від суми значень перших двох пара-
метрів віднімається значення третього. Звер-
нення до всіх методів виконується з одного
об’єкта з трьома аргументами.
5 Червона куля має радіус r1, а жовта — r2. Роз-
робіть програму з використанням принципу
наслідування, за допомогою якої визначається
різниця об’ємів між червоною і жовтою кулею.
6 З'ясуйте, які обласні центри України розташо-
вані на широтах між 49° і 48°. Розробіть про-
граму визначення різниці в широтах між ними
і Києвом. Для обчислення й виведення різниці
використайте суперклас, підклас і конструктор.
Приклад 4.
1. Спочатку в суперкласі виконується ін-
струкція contr = int (…). Після уведення цілого
числа виконання програми продовжується. Під
час створення екземпляра класу ob1 автоматич-
но викликається метод __init__, у результаті чого
аргумент 2 передається параметру а1 цього ме-
тоду, аргумент 3 — параметру а2, аргумент 4 —
параметру а3. Наступними трьома інструкціями
значення цих параметрів присвоюються, відпо-
відно змінним p1, p2 і p3 екземпляра класу ob1.
2. Далі управління передається інструкції
m = «першого» і далі здійснюється звернення
до функції func1. У результаті обчислюється
й виводиться на екран об’єм першого паралеле-
піпеда. Після цього створюється екземпляр кла-
су ob2 і виконуються дії, аналогічні діям, що
виконувалися в процесі створення екземпляра
класу ob1. У результаті буде обчислено й виве-
дено значення об’єму другого контейнера.
3. Далі управління передається інструкції
ob1.func2. За допомогою методу func2 перевіряє-
ться можливість використання контейнерів
і відповідне значення присвоюється змінній p4.
Після цього викликається метод func3, за допо-
могою якого відповідний результат виводиться
на екран.
Один із варіантів виконання програми може
бути таким, як наведено на рис. 6.
Рис. 6. Варіант виконання програми
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
91. 917.1. Поліморфізм
7. Поліформізм, перевизначення методів,
модулі користувача
7.1. Поліморфізм
Пригадайте, із якими принципами об’єктно-орієнтованого
програмування ви вже знайомі. Поясніть їх сутність.
Поліморфізм (від грец. πολύς — багато, µορφή — форма)
означає багато форм. Кожна мова ООП має свої особливості
поліморфізму.
Розглянемо основні прояви поліморфізму в мові Python.
• Тип об’єктів визначає синтаксичний смисл оператора, який
виконується над об’єктами.
Оператор + є лише вказівкою для об’єктів, а яка буде ви-
конуватися над об’єктами операція, залежить від типу самих
об’єктів (приклад 1).
• Методи з однаковими іменами в різних класах можуть
виконувати різні дії.
Приклад 1.
Якщо операція додавання вико-
нується над двома об’єктами типу
int, то буде виконуватися опера-
ція їх додавання, а якщо об’єкти
мають тип str — то операція
об’єднання рядків.
Приклад 2.
На рис. 1 зображено програму, у якій демонструється виконання операторів додавання та
множення над об’єктами типу int і str.
Рис. 1. Програма з різними діями
над об’єктами операції додавання та множення
Як бачимо, в останньому рядку програми об’єкт b, який має тип str, повторюється 7 разів,
тобто стільки разів, які має об’єкт а типу int.
Приклад 3.
На рис. 2 зображено програму, у якій метод func класу Kl8_02a обчислює корінь квадратний
із суми квадратів двох чисел, а метод із таким самим іменем класу Kl8_02b обчислює середнє
значення суми трьох чисел.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
92. Розділ 192
• За допомогою оператора if можна створити один
і той самий об’єкт одного або іншого класу, у яких
використовуються методи з однаковими іменами, але які
виконують різні дії.
Рис. 2. Програма з однойменними методами у двох класах
У програмі створюється екземпляр
ob1 класу Kl8_02a і екземпляр ob2 класу
Kl8_02b.
Метод func класу Kl8_02a викликається
з об’єкта ob1 і аргумент 3 передається пара-
метру а1, а аргумент 4 — параметру а2 цьо-
го класу. Далі в цьому методі обчислюєть-
ся корінь квадратний суми квадратів цих
чисел.
Метод func класу Kl8_02b викликається з об’єкта
ob2 і аргумент 6 передається параметру а1, аргу-
мент 8 — параметру а2, а аргумент 13 — парамет-
ру а3. Далі в цьому методі обчислюється середнє
значення суми трьох чисел.
Приклад 4.
На рис. 3 зображено програму з двома класами, у кожного з яких є метод __init__.
У методі класу Kl8_03a обчислюється сума введених чисел, а в методі класу Kl8_03b —
їх добуток.
Рис. 3. Програма з конструкторами в різних класах
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
93. 937.1. Поліморфізм
• Перезавантаження операторів
Сутність перезавантаження операторів полягає в тому, що
за допомогою спеціальних методів, які інколи називають ма-
гічними, одні й ті самі оператори виконують різні дії над
об’єктами. Ці методи, так само, як і метод __init__, на почат-
ку й наприкінці мають два знаки підкреслення. За аналогією
з методом __init__, вони викликаються автоматично, коли
екземпляр об’єкта бере участь у відповідній операції, напри-
клад, у операції додавання, множення й ін.
У мові Python існує величезна кількість магічних методів,
наведемо лише деякі з них:
Метод Опис
__add__ Викликається автоматично, коли екземпляр класу бере участь в операції додавання (+)
__sub__ Викликається автоматично, коли екземпляр класу бере участь в операції віднімання (–)
__mul__ Викликається автоматично, коли екземпляр класу бере участь в операції множення (*)
__truediv__ Викликається автоматично, коли екземпляр класу бере участь в операції ділення (/)
__str__ Викликається, коли об’єкт перетворюється в рядок для виведення викликом убудованої
функції str
Перш ніж розглянути приклад програми з перезавантажен-
ням операторів, опишемо призначення операторів % і %s.
Оператор % (а також метод format) дає змогу вставити
в рядок дані, отримані в процесі виконання програми.
Якщо необхідно вставити дані, які мають сприйматися зви-
чайним рядком, використовується комбінація символів %s.
Сутність цих операторів пояснюється таким прикладом:
’Наталя %s Олега’ % ‘подруга’
Наталя подруга Олега
Із прикладу видно, що після оператора % вказується,
що потрібно вставити (це може бути результат, отриманий
у процесі виконання програми), а комбінація символів %s —
куди необхідно вставити, у цьому випадку символ s свід-
чить про те, що результат, який вставляється, сприймається
як рядок.
Якщо перше уведене число (b1) менше
другого уведеного числа (b2), то створюєть-
ся екземпляр ob1 класу Kl8_03b, у резуль-
таті чого здійснюється звернення до ме-
тоду цього самого класу та обчислюється
добуток уведених чисел, інакше створюєть-
ся екземпляр ob1 класу Kl8_03, a потім об-
числюється й виводиться сума введених
чисел. Зауважимо, що в процесі звернення
до методів __init__ обох класів, аргумент b1
передається параметру a1, а аргумент b2 —
параметру a2.
Отже, у наведеному прикладі поліморфізм
проявляється в тому, що за допомогою опера-
тора if створюється об’єкт ob1 класу Kl8_03b або
класу Kl8_03, a один і той самий метод __init__
у двох різних класах виконує різні дії над
уведеними числами.
Френсіс Елізабет Аллен — аме-
риканська вчена, піонерка в га-
лузі оптимізації компіляторів,
стала перша жінка, яка отрима-
ла премію Тюрінга.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
94. Розділ 194
Перезавантаження операторів є потужним засобом програ-
мування, але ним не слід зловживати. Якщо є можливість
обійтися без перезавантаження операторів, то краще його
не використовувати.
Приклад 5.
На рис. 4 наведено приклад програми з використанням методів __add__ і __str__ .
Рис. 4. Код програми з методами __add__ і __str__
Опишемо порядок виконання програми.
1. Після запуску програми створюється ек-
земпляр класу ob1. Викликається конструктор,
і параметр а1 набуває значення 21; це значення
присвоюється змінній p1 об’єкта ob1.
Далі виконується інструкція ob1+15. Опе-
рація додавання (+) перехоплюється методом
__add__ і за допомогою наступної операції ви-
конується звичайна операція додавання двох
чисел (числа 21 до числа 15).
2. Далі управління передається інструкції
print (ob1), здійснюється перехоплення методом
__str__, число 36 перетворюється у звичайний
рядок і за допомогою інструкції print (ob1) ви-
водиться на екран.
3. Створюється екземпляр класу ob2. Ви-
конуються дії у тому самому порядку, як
описано в пункті 1, але для значень 'Пере'
і 'завантаження'.
4. Створюється екземпляр класу ob3. Вико-
нуються такі самі дії над списками [19, 7, 12]
і [5, 9].
Результат виконання програми наведено на
рис. 5.
Рис. 5. Виконання програми
з методами __add__ і __str__
Запитання для перевірки знань
1 Як проявляється поліморфізм у мові Python?
2 Від чого залежить сутність виконання операто-
ра множення?
3 Чи можуть в одній програмі використовувати-
ся методи з однаковими іменами?
4 Як за допомогою оператора if можуть створю-
ватися об’єкти з одним іменем?
5 Яке призначення має метод __str__?
6 Поясніть сутність перезавантаження методів.
7 Які дії виконують оператори % і %s?
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
95. 957.2. Перевизначення та...
Завдання для самостійного виконання
1 Розробіть програму, у якій виконується опера-
тор (+) над даними: 21.5, 4, 37 ; «Київ», «–21»,
а також оператор (*) над даними: 48, 5; «7»,
«Україна».
2 Розробіть програму з використанням мето-
ду __add__ додавання чисел 143.5 і 32.4, а та-
кож об’єднання рядків «ай» і «фон».
3 Дано масив чисел a[1], a[2], a[3], a[4], a[5].
Якщо перше число більше останнього, то в
першому класі обчислюється добуток чи-
сел масиву, інакше — в другому класі —
їх сума.
4 Розробіть програму з двома класами, у пер-
шому з яких за допомогою методу func1 об-
числюється сума чисел одновимірного маси-
ву, а в другому класі за допомогою методу
func1 — їх добуток.
5 Формується масив чотирма випадковими ці-
лими числами в діапазоні від 7 до 14. Якщо
друге число більше третього, то обчислюєть-
ся сума всіх чисел масиву, інакше — в друго-
му класі — їх добуток.
7.2. Перевизначення та розширення
можливостей методів
Значну кількість об’єктів побудовано за ієрархічною струк-
турою. В ООП методи теж можуть мати ієрархічну
структуру. Для звернення до конкретного методу в цій
структурі необхідно мати відповідні правила. Як, на вашу
думку, можна організувати звернення до методу в такій
ієрархії?
Поліморфізм і наслідування класів дають змогу реалізу-
вати перевизначення методів.
Сутність перевизначення методів полягає в тому, що
в ієрархічній структурі класів, якщо підклас не містить ме-
тоду, до якого виконується звернення із певного об’єкта, то
здійснюється пошук такого методу в найближчому зверху
батьківському класі. Якщо й у ньому відсутній такий метод,
то він відшукується також у найближчому до нього зверху
батьківському класі.
Принцип перевизначення методів пояснюється схемою
(рис. 1). Як бачимо, в процесі звернення до методу_3 з під-
класу_2 цей метод виконується одразу.
Аналогічно виконується й метод_2 у процесі звернення до
нього з підкласу_1.
У процесі звернення до методу_1 із підкласу_1 цей метод від-
шукується в самому підкласі, а потім виконується звернення
до суперкласу, де й виконується цей метод.
Нарешті, у процесі звернення до методу_4 з підкласу_2 ме-
тод відшукується спочатку в цьому підкласі, потім у підкла-
сі_1 і виконується в суперкласі.
Метод виконується в тому
класі, у першому з яких буде
знайдено цей метод. Якщо
в жодному батьківському кла-
сі такого методу не буде
знайдено, то буде видано по-
відомлення про синтаксичну
помилку.
Пошук методу виконується за
принципом «знизу догори».
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
96. Розділ 196
Рис. 1. Варіант перевизначення методу
Відсутній
Відсутній Відсутній
Суперклас
Підклас_1
Підклас_2
Метод_4
Метод_2
Метод_3
Метод_1
Звернення до методу_2
Звернення до методу_3
Звернення до методу_1
Звернення до методу_4
Виконання
Виконання
Виконання
Виконання
Приклад 1.
На рис. 2 зображено програму з перевизначенням методу. У програмі є один суперклас
і два підкласи. У суперкласі використовуються методи __init__ і func1, у підкласі Kl8_04a один
метод func2 і в підкласі Kl8_04b методи func3 і func1.
Рис. 2. Програма з перевизначенням методу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
97. 977.2. Перевизначення та...
Розглянемо механізм розширення можливостей методів.
До цього вдаються, коли виникає потреба звернутися від ме-
тоду одного класу до методу іншого. Наприклад, із методу
підкласу потрібно звернутися до методу суперкласу для роз-
ширення можливостей підкласу.
Опишемо порядок виконання програми.
1. У процесі створення об’єкта ob1 кла-
су Kl8_04a автоматично викликається метод
__init__ і аргумент 37 передається параметру а1
цього методу. За допомогою наступної інструк-
ції self.p = a1 змінна p об’єкта ob1 набуває зна-
чення 37. А в процесі створення об’єкта ob2
підкласу Kl8_04b змінна p об’єкта ob2 набуває
значення рядка 'байт'.
2. Далі здійснюється звернення до методу
func2 з об’єкта ob1 підкласу Kl8_04a. Оскіль-
ки цей метод є в цьому підкласі, він одразу
виконується. У результаті чого параметру а2
передається значення аргумента, тобто число
3. Наступною командою в цьому підкласі зна-
чення змінної p об’єкта ob1 (це значення дорів-
нює 37) множиться на 3 і на екран виводиться
результат 111.
3. Після цього здійснюється звернення до
методу func1 з об’єкта ob1 підкласу Kl8_04a.
Але такого методу в цьому підкласі немає.
Тому здійснюється пошук такого методу
за принципом «знизу догори». Такий метод
є в суперкласі Kl8_04, який є батьківським
підкласу Kl8_08a. Цей метод і буде виконувати-
ся. У результаті від значення p (тобто від 111)
віднімається число 13 і виводиться на екран.
Отже, виконалося перевизначення методу
func1.
4. Далі з об’єкта ob2 підкласу Kl8_04b ви-
кликається метод func3. Він є в цьому підкла-
сі, тому одразу й виконується. У результаті
змінна p об’єкта ob2, яка має значення рядка
'байт', перетворюється на список і виводиться
на екран.
5. Останньою командою програми викли-
кається метод func1 з об’єкта ob2 підкласу
Kl8_04b. Цей метод також є в підкласі Kl8_04b
і він також одразу виконується. У результа-
ті в стовпець виводяться елементи списку
['б','а','й','т'].
Результат виконання програми наведено на
рис. 3. Таким чином, у програмі здійснилося
перевизначення методу func1.
Рис. 3. Виконання програми з перевизначенням методу func1
Приклад 2.
У першому риболовецькому господарстві
виловили 10 т риби, у другому — 7 т. До кож-
ного з них може надійти замовлення на по-
стачання риби від 1 до 6 магазинів. Риба між
замовниками розподіляється порівну. Визнач-
те, скільки тонн риби дістанеться кожному за-
мовнику для таких варіантів: до першого гос-
подарства може надійти замовлення від 1 або
2 магазинів; до другого господарства — від 3
або 4 магазинів; до першого господарства —
від 5 або 6.
Можна виконати операцію ділення в тако-
му порядку: поділити число 10 на 1 і на 2,
потім число 7 на 3 і на 4, потім число 10 на
5 і на 6. Програму реалізації завдання подано
на рис. 4.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
98. Розділ 198
Опишемо порядок виконання програми. Зазначимо, що, за-
пустившись, програма починає виконуватися з інструкції i=1.
Приклад 2 (продовження).
І цикл. Оскільки результатом оператора if є
значення False, здійснюється перехід на гілку
else. У результаті створюється екземпляр класу
ob1 суперкласу Kl8_06. Автоматично викликаєть-
ся метод __init__ , параметр а1 набуває значен-
ня 10, а параметр а2 — значення 1. Значення
цих параметрів за допомогою наступних двох
інструкцій цього методу присвоюються, відпо-
відно, змінним p1 і p2.
Далі управління передається інструкції
i += 1 основної програми. Змінна і набуває зна-
чення 2, а за допомогою інструкції ob1.func1() ви-
кликається з об’єкта ob1 метод func1 суперкла-
су і значення змінної p1 ділиться на значення
змінної p2 (число 10 ділиться на 1) і результат
(10) виводиться на екран. Після цього управлін-
ня передається оператору циклу.
ІІ цикл. Починається з перевірки умови (2i)
and (i5), яке також має значення False. Так само
реалізується гілка else і так само, як і в попе-
редньому випадку, викликається метод __init__,
у результаті чого параметр a1 набуде значен-
ня 10, а параметр а2 — значення 2. Відповідно,
змінні p1 і p2 набудуть значень 10 і 2. Знову
виконується інструкція i += 1 і змінна і набуде
значення 3, потім здійснюється звернення до
методу func1 суперкласу, у результаті чого буде
виведено число 5 (у результаті ділення: 10/2=5).
Як і в попередньому випадку, далі управління
передається оператору циклу.
ІІІ цикл. Нагадаємо, що на цей момент змін-
на і має значення 3, тому результат оператора if
має значення True і створюється екземпляр ob1
підкласу Kl8_06a. Так само автоматично викли-
кається метод __init__, у результаті чого змін-
на p1 набуде значення 7, а змінна p2 — зна-
чення 3. Потім виконується інструкція i =+ 1
і змінна і набуде значення 4.
Далі викликається метод func1, але цього
разу з підкласу. Тому виводиться повідомлення
'перехід 1' і за допомогою інструкції Kl8_06.func1
(self) цього методу викликається метод func1 із
суперкласу, де значення змінної p1 (воно дорів-
нює 7) ділиться на значення змінної p2 (тобто на
3) і результат (2.33) виводиться на екран. Управ-
ління передається інструкції print (перехід 2)
і буде виведено перехід 2. Після цього управлін-
ня знову передається оператору циклу.
Рис. 4. Код програми з розширенням можливостей методу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
99. 997.2. Перевизначення та...
Запитання для перевірки знань
1 Поясніть, у чому полягає сутність перевизна-
чення методів.
2 У чому полягає сутність розширення можли-
востей методу?
3 Накресліть схему класів із прикладом переви-
значення методів.
4 Наведіть приклад реалізації розширення мож-
ливостей методу.
Завдання для самостійного виконання
1 Дано числа 16 і 7. Розробіть програму визна-
чення їх суми, добутку, різниці та ділення пер-
шого на друге з використанням перевизначен-
ня методу. У програмі передбачте створення
суперкласу і двох його підкласів, а також чо-
тирьох методів у різних класах.
2 Дано два рядки «екземпляр» і «підкласу».
Розробіть програму об’єднання цих рядків,
перетворення першого рядка в список і ви-
лучення з другого рядка останньої букви.
У програмі передбачте перевизначення ме-
тоду з використанням суперкласу і його під-
класу.
3 У суперкласі та його підкласі використову-
ються два методи з однаковими іменами.
У суперкласі за допомогою методу обчислює-
ться середнє значення суми трьох чисел,
а в підкласі здійснюється звернення до мето-
ду суперкласу. Розробіть програму реалізації
цієї ситуації.
4 Генеруються два цілі випадкові числа в діа-
пазоні від 7 до 15. Якщо їх сума більше 17,
числа складаються, інакше множаться. Роз-
робіть програму реалізації завдання з вико-
ристання суперкласу та двох підкласів.
5 Модифікуйте програму так, щоб у ній викори-
стовувався її суперклас і підклас Kl8_06b, збе-
рігся принцип перевизначення методу і про-
грама повинна видавати той самий результат,
що й початкова програма.
IV цикл. Змінна і на цей момент має значен-
ня 4, тому виробляється значення True і створює-
ться екземпляр ob1 підкласу Kl8_06а. Викликає-
ться метод __init__, у результаті чого змінна p1
набуде значення 7, а змінна p2 — значення 4.
Потім виконується інструкція i += 1, змінна і
набуває значення 5 і викликається метод func1
підкласу. У результаті друкується перехід 1 і за
допомогою наступної команди викликається ме-
тод func1 суперкласу, у якому число 7 ділиться
на число 4 і результат 1.75 виводиться на екран.
Потім управління передається інструкції print
(перехід 2) і перехід 2 виводиться на екран. Далі
управління знову передається оператору циклу.
V цикл. На цей момент змінна і має значен-
ня 5. У результаті перевірки умови if 2i5, як
і в перших двох циклах, виробляється значення
False і створюється екземпляр ob1 об’єкта суперкла-
су. Викликається метод __init__, у результаті чого
змінна p1 буде мати значення 10, а змінна p2 —
значення 5. Далі виконується оператор i += 1,
змінна і набуває значення 6, викликається метод
func1 суперкласу і значення змінної p1 ділиться
на p2. Результат 2.0 виводиться на екран. Далі
управління передається оператору циклу.
VI цикл. Змінна і має значення 6. Цикл ви-
конується аналогічно до попереднього. Буде ви-
ведено значення 1.66. Під час виконання циклу
змінна і матиме значення 7, тому оператор while
завершує своє виконання.
Результат виконання програми подано
на рис. 5.
Рис. 5. Виконання програми з розширенням
можливостей методу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
100. Розділ 1100
7.3. Композиційний підхід в ООП мовою Python
Раніше нам уже багаторазово доводилося створювати
програмний код з окремих функцій, методів і модулів. Ще один
варіант створення цілісного програмного коду реалізується
на основі композиційного підходу.
Сутність композиційного підходу в програмуванні мовою
Python полягає в тому, що в класі, який називається класом-
контейнером, створюються інструкції виклику інших класів.
Такий підхід дає змогу на основі створених об’єктів класу-кон-
тейнера отримати і об’єкти класів, що з нього викликаються.
Композиція в програмуванні — це вбудовування ін-
ших об’єктів у об’єкт-контейнер і використання їх для
реалізації методів класу-контейнера.
На практиці композиція забезпечує формування цілого
фрагмента коду з окремих частин.
Розглянемо сутність композиції на прикладі.
Приклад.
На аркуші паперу з відомими розмірами на-
креслено два кола радіусом r1, два кола радіу-
сом r2 та один рівносторонній трикутник зі
стороною а. Усі ці фігури не перетинаються
одна з одною. Необхідно обчислити загальну
площу аркуша паперу й залишок площі ар-
куша. Зрозуміло, що для обчислення залиш-
ку площі аркуша потрібно обчислити площу
кожного кола та площу трикутника. Обчис-
лення цих площ фактично і є тими частина-
ми, на основі яких можна обчислити залишок
площі.
Програму для розв’язування цієї задачі
можна розробити різними способами. Мож-
на обійтися і без композиційного підходу,
але ми розробимо програму саме на його
основі.
У нашій задачі фактично є три об’єкти:
об’єкт-аркуш, об’єкт-коло і об’єкт-трикутник.
Відповідно, в одному класі (класі-контейнері)
будемо оперувати з площею аркуша, у друго-
му — із площею кола й у третьому — із пло-
щею трикутника.
Площу кожного кола обчислимо в кла-
сі Kl8_07a, а площу трикутника — у класі
Kl8_07b.
Звернення до класу Kl8_07a для обчислення
площі першого кола виконаємо з об’єкта p1
класу Kl8_07a, який є об’єктом класу Kl7_07 (має
позначення self), а звернення до цього самого
класу для обчислення площі другого кола — з
об’єкта p2.
Звернення до класу Kl8_07b для обчислення
площі трикутника виконаємо з об’єкта p3 класу
Kl8_07b, який також є об’єктом класу Kl8_07 і
також має позначення self.
Обчислення залишку площі виконаємо за
допомогою методу func2, а виведення результа-
тів — за допомогою методу func3.
З урахуванням викладеного програму реалі-
зації завдання зображено на рис 1.
Звернемо увагу на те, що в методі func1
створюються три об’єкти: p1, p2 і p3, а також
атрибути к1 і к2, у яких міститься кількість
кіл, відповідно, з радіусами r1 і r2.
Також звернемо увагу на те, як виконує-
ться в методі func2 звернення до обчислених
площ кіл і трикутника: указується об’єкт
класу Kl8_07, який у класі його замінює self,
далі — об’єкт класу Kl8_07a або класу Kl8_07b
(мають позначення p1, p2, p3) і потім сам атри-
бут (plcolo або pltrik).
Композицію інколи ще назива-
ють агрегуванням.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
101. 1017.3. Композиційний...
Рис. 1. Програма, побудована на основі композиційного підходу
Опишемо порядок виконання програми.
1. Після запуску програми виконується
інструкція ob = Kl8_07 (30, 20), створюється
об’єкт ob класу Kl8_07 і викликається його кон-
структор. У результаті аргумент 30 передаєть-
ся параметру x, а аргумент 20 — параметру y.
Обчислюється загальна площа аркуша, яка збе-
рігається в змінній plzag цього об’єкта (self.plzag).
2. Управління передається інструкції ob.func1
(4, 6, 5), викликається метод func1 класу Kl8_07
і значення 4 передається параметру r1, значен-
ня 6 — параметру r2 і значення 5 — параметру a.
3. Далі створюється об’єкт p1 класу Kl8_07a
(який, у свою чергу, є об’єктом класу Kl8_07),
автоматично викликається конструктор цьо-
го класу, обчислюється площа кола з радіу-
сом r1, яка зберігається в змінній plcolo об’єкта
self.p1. За аналогією виконується інструкція
self.p2 = Kl8_07b(r2), обчислюється площа кола
з радіусом r2, яка зберігається в змінній plcolo
об’єкта self.p2.
4. Виконується інструкція self.p3 = Kl8_07b (a).
Викликається конструктор класу Kl8_07b,
обчислюється площа трикутника, яка зберігає-
ться в змінній pltrik об’єкта self.p3. Далі в змін-
них self.k1 і self.k2 запам’ятовуються кількість
кіл, відповідно, першого і другого типу.
5. Управління передається інструкції
ob.func2(). Здійснюється звернення до функції
func2, де обчислюється залишок площі аркуша.
6. Управління передається інструкції
ob.func3. Викликається метод func3 і на екран
виводиться загальна площа аркуша й залишок
площі.
Результат виконання програми подано
на рис. 2.
Рис. 2. Виконання програми, побудованої на основі композиційного підходу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
102. Розділ 1102
Запитання для перевірки знань
1 У чому полягає сутність композиційного під-
ходу в програмуванні?
2 Який клас називають класом-контейнером?
3 Із якою метою застосовується композиційний
підхід?
4 Поясніть сутність композиційного підходу на
конкретному прикладі.
Завдання для самостійного виконання
1 На письмовому столі розміром l*p лежить па-
пір формату А4 і книжка формату А5. Розро-
біть програму на основі композиційного під-
ходу обчислення площі, яку займають книж-
ка й папір, і вільну площу поверхні столу.
2 У порожній басейн розміром l, p, h одночас-
но одна помпа починає закачувати воду в ба-
сейн продуктивністю v1 м3
на годину, а друга
викачувати воду з басейну продуктивністю
v2 м3
на годину (v1v2). Розробіть програму
на основі композиційного підходу визначення
об’єму води в басейні через 3 год і об’єм води,
який ще може бути закачаний у басейн.
3 У залізничний вагон потрібно завантажити P т
зернових. Із однієї фірми доставлено p1 т зерна,
із другої — p2 т і з третьої — p3 т. Розробіть
програму на основі композиційного підходу
визначення загальної кількості тонн доставле-
ного зерна й кількості тонн, які ще потрібно
завантажити, або кількості тонн залишку зерна.
4 Дано два масиви цілих чисел. Розробіть про-
граму на основі композиційного підходу ви-
значення середнього значення кожного ма-
сиву. На скільки кожне з них відрізняється
від заданого числа P?
5 Формуються два масиви чотирма 4 випадко-
вими цілими числами в діапазоні 1–16. Роз-
робіть програму на основі композиційного
підходу визначення різниці суми чисел цих
масивів.
7.4. Створення та використання модулів
користувача
Бібліотека мови Python містить велику кількість модулів, окре-
мі з яких ми імпортували у власні програми. Чому, на вашу дум-
ку, виникає необхідність розроблення модулів користувача?
Раніше вже неодноразово зазначалося, що мова Python реа-
лізує модульний принцип організації програм, який передба-
чає імпортування в основний файл коду вмісту інших файлів.
У розглянутих програмах уже не раз здійснювалося імпор-
тування стандартних модулів у програму, що розроблялася.
Але імпортувати можна не лише стандартні модулі, а й власні
модулі, а також модулі, розроблені іншими програмістами.
Відзначимо, що під час трансляції в машинний код перетво-
рюються основна програма, а також файли, що імпортуються.
Якщо використовується інструкція import, то для досту-
пу до змінних (атрибутів) модуля з основної програми
слід зазначати ім’я цього модуля, потім через крапку
ім’я атрибута (ім’я модуля.атрибут). Таку дисципліну
доступу називають крапковою нотацією.
Як відомо, імпортування од-
ного файла в інший реалізує-
ться за допомогою інструк-
цій import і from. Інструкцію
import доцільно застосовувати,
коли передбачається викори-
стовувати весь вміст модуля,
а інструкцію from — коли перед-
бачається використовувати дві-
три функції із цього модуля.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
103. 1037.4. Створення та...
Приклад 1.
Нехай для обчислення й виведення площі прямокутного трикутника нами або іншим про-
грамістом розроблено модуль з іменем trukytn, вміст якого зображено на рис. 1.
Рис. 1. Модуль trukytn для обчислення площі прямокутного трикутника
Скористаємося цим модулем для обчислен-
ня площ багатьох прямокутних трикутників
із різними катетами. Зрозуміло, для цього не-
обхідно розробити програму, яка є основною
програмою, до якої імпортується цей модуль
і реалізується уведення значень катетів три-
кутників. Вміст такої програми зображено
на рис. 2.
Рис. 2. Основна програма обчислення площ прямокутних трикутників
Як бачимо, у цій програмі циклічно вво-
дяться катети трьох трикутників. Після вве-
дення значення кожного катета необхідно на-
тиснути клавішу Enter.
Зауважимо на тому, як здійснюється звер-
нення до класу Plosha модуля trukytn. У тілі ци-
клу створюється об’єкт ob класу Plosha модуля
trukytn. У процесі створення об’єкта автома-
тично викликається конструктор класу Plosha
й уведені значення катетів, значення параметра
циклу й рядок «площа трикутника N» передаю-
ться відповідним параметрам методу __init__.
Далі в цьому класі обчислюється й ви-
водиться площа першого трикутника. Потім
аналогічно виконується другий і третій цикли.
На рис. 3 наведено один із можливих варіантів
виконання програми.
Рис. 3. Виконання програми обчислення площ
прямокутних трикутників
Інструкція from не потребує вказувати ім’я модуля. Далі
використовуватимемо переважно інструкцію import.
Поняття модуля та файла в мові Python майже ідентичні.
Файли в мові Рython мають зазвичай розширення .py. Та для
імпортування файла розширення не вказується.
Інструкція імпортування модуля має таку структуру:
import ім’я модуля
За замовчуванням інтерпретатор Python здійснює пошук
модуля в каталозі, де міститься сам Python, або в тому само-
му каталозі, де й файл, у який виконується імпортування.
Програмісти вважають «гар-
ним тоном» додавати до своїх
програм текст із поясненням
сутності програми й розміщу-
вати на початку модуля або
після заголовка класу, методу.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
104. Розділ 1104
В основну програму можна імпортувати не лише модулі,
що містять класи, а й модулі, які містять один або більше
методів.
Отже, програміст може конструювати свою програму з про-
грам, розроблених іншими програмістами, а також зі стан-
дартних модулів і бібліотек мови Python. Але для того щоб
використовувати модулі інших програмістів, необхідно знати
їх призначення та можливості. Для цього застосовують засо-
би документування.
Документувати програмний код можна різними способами.
Найпростіший із них — це звичайні коментарі, які викори-
стовувалися в наведених раніше програмах. Інший спосіб —
створення спеціальних рядків документації, які є текстом
у потрійних лапках або в потрійних апострофах.
Приклад 2.
Нехай, наприклад, існує модуль kilkist (рис. 4), за допомогою якого з клавіатури вводяться
цілі числа, із яких формується одновимірний масив з іменем mas. У цьому масиві підраховує-
ться й виводиться на екран кількість чисел, які дорівнюють 5.
Рис. 4. Модуль kilkist формування одновимірного масиву
Щоб скористатися цим модулем, слід скласти основну програму, яка містить лише дві ін-
струкції, зображені на рис. 5.
Рис. 5. Програма імпортування модуля kilkist
Безумовно, модуль, що імпортується в основну
програму, можна адаптувати до власних потреб.
Наприклад, у наведеному модулі kilkist можна
змінити довжину масиву, значення числа, яке
підраховується. У результаті запуску основної
програми можемо отримати, наприклад, такий
варіант результату (рис. 6.).
Рис. 6. Виконання програми імпортування
модуля kilkist
Із прикладами три-п'ять ви
можете ознайомитися на сайті
interactive.ranok.com.ua
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
105. 1057.5. Опрацювання...
Запитання для перевірки знань
1 За допомогою яких інструкцій імпортуються
модулі в програму?
2 Яка різниця між інструкціями import і from?
3 Яку структуру має інструкція import?
4 У якому каталозі здійснюється пошук модуля
за замовчуванням?
5 Як здійснюється імпортування модулів, які
містять лише методи?
6 Із якою метою використовуються засоби до-
кументування?
Завдання для самостійного виконання
1 Розробіть модуль обчислення об’єму кулі.
Використайте цей модуль для обчислення
трьох куль із різними радіусами.
2 Розробіть модуль обчислення середнього
значення заданого масиву чисел 33, 8, 22, 17.
Використайте цей модуль для обчислення
середнього значення двох масивів із різними
значеннями елементів.
3 Розробіть модуль обчислення об’єму конуса
з відомим радіусом основи й висоти. Вико-
ристайте цей модуль для обчислення об’єму
двох різних конусів.
4 Розробіть модуль створення масиву з п’ятьма
випадковими числами в діапазоні від 3 до 10.
Використайте цей модуль для створення
двох масивів із різними діапазонами чисел.
7.5. Опрацювання виняткових ситуацій
Чи доводилося вам стикатися з винятковими ситуаціями
в програмуванні раніше? Наведіть приклади виняткових
ситуацій.
Виняток — це подія, яка може виникнути під час ви-
конання програми й яка може змінити подальший хід
її виконання.
Винятки генеруються автоматично, коли, наприклад, у про-
грамному коді виникає помилка (ділення на нуль, вихід ін-
дексу масиву за межі допустимого значення й ін.). У таких
випадках програма припиняє своє виконання й на екрані ви-
світлюється діагностичне повідомлення: тип винятку, перелік
рядків і функцій, які були активними в момент появи винятку.
Приклад 1.
Після спроби виконати інструкцію y = 23 / 0
отримаємо (рис. 1):
Рис. 1. Спроба виконати інструкцію y = 23 / 0
Тут ZeroDivisionError — це стандартний виняток
(убудований у мову) помилки ділення на нуль,
який входить до класу арифметичних помилок
(до класу ArithmeticError).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
106. Розділ 1106
Але в мові Python існують засоби перехоплення винятків.
Після їх опрацювання виконання програми може продовжи-
тися до її завершення. Для цього призначена інструкція try.
Інструкція try має таку загальну структуру:
try :
блок, у якому перехоплюється виняток
[except [виняток 1 [as об’єкт винятку]]:
блок, який виконується в разі виникнення винятку 1
…
[except [виняток N [as об’єкт]]:
блок, який виконується в разі виникнення винятку N]]
[else:
блок, який виконується, якщо виняток не виник]
[finally:
блок, який виконується в будь-якому випадку]
Інструкції, винятки яких необхідно перехоплювати, мають
розміщуватися всередині блока try. У параметрі виняток бло-
ка except вказується клас винятку, що опрацьовується, напри-
клад, клас ZeroDivisionError.
Інструкції блока try виконуються в такому порядку.
Крок 1
Якщо в інструкціях блока try виникає виняток, управління передається
найближчому блоку except.
Крок 2
Якщо виняток не відповідає класу цього блока, управління передається
наступному блоку except.
Крок 3
Якщо жоден блок exсept не відповідає цьому винятку, то цей виняток
передається для опрацювання на наступний, більш високий рівень.
Крок 4
Якщо в програмі взагалі не передбачено опрацювання цього винятку, то
видається повідомлення про помилку і програма припиняє своє виконання.
У мові Python існує понад
50 класів стандартних ви-
нятків. Так, виняток ValueError
може з’явитися, коли в методі
index() фрагмент, що виконує-
ться, не входить у рядок:
принтер.index (миша)
Приклад 2.
На рис. 2 зображено найпростішу програму, в якій уводяться два цілих числа, і перше ді-
литься на друге. Операція ділення чисел міститься в блоці try, де виконується перехоплення
та опрацювання винятку ділення на нуль.
Рис. 2. Програма з перехопленням винятку ділення на нуль
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
107. 1077.5. Опрацювання...
Якщо уведене число y дорівнює нулю, то ділення на нуль
перехоплюється класом винятку ZeroDivisionError, виводиться
повідомлення ділення на 0. Після цього виконання програми
триває й видається повідомлення програма завершена.
Зміст варіанта виведення на екран у цьому разі може бути
таким, як на рис. 4.
Рис. 4. Варіант виконання програми
Отже, якщо в програмі передбачено опрацювання відпо-
відних винятків, то вона продовжує виконуватися до повного
завершення й видається повідомлення про помилку.
Як бачимо, у програмі уведене число x ді-
литься на число y. Якщо число y не дорівнює
нулю, виконується інструкція print (резуль-
тат =, self.z), результат ділення виводиться на
екран і після цього виводиться повідомлення
програма завершена. На рис. 3 наведено один із
можливих варіантів виконання.
Рис. 3. Варіант виконання програми
Одна інструкція except може
опрацьовувати кілька винятків.
Для цього їх слід перелічити
через кому, наприклад:
Except (IndexError,
ZeroDivisionError)
Приклад 3.
Для кращого розуміння сутності опрацювання винятків внесемо в програму (рис. 4), деякі
зміни — вилучимо з неї блок try. Програма набуде такого змісту (рис. 5):
Рис. 5. Програма без перехоплення винятку ділення на нуль
Після запуску програми й уведення другого числа, що дорівнює нулю, програма припинить
своє виконання й на екран буде видано повідомлення про помилку (рис. 6):
Рис. 6. Виконання програми без перехоплення винятку ділення на нуль
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
108. Розділ 1108
Для опрацювання винятків можна також використати
ієрархічну структуру вкладеності, тобто один виняток можна
вкласти в іншій.
Уже розглядалися винятки, які генерувалися інтерпрета-
тором, коли в програмі виявлялася помилка. Але винятки
можуть генеруватися й самою програмою, можуть перехоп-
люватися або не перехоплюватися. Для перехоплення ін-
струкція raise включається в блок try.
Якщо виняток, визначений програмою, не перехоплює-
ться, він буде переданий опрацювачу винятків за замовчу-
ванням. У результаті програма припинить своє виконан-
ня й на екран буде виведене стандартне повідомлення про
помилку. Винятки можуть генеруватися також за допо-
могою інструкції assert, яка є умовною формою інструкції
raise.
Пояснимо сутність генерування винятків користувачем на
прикладі.
Винятки користувача створю-
ються у вигляді класів, які на-
слідують один із класів убудо-
ваних винятків. Найчастіше для
цього використовується клас
Exception.
Приклад 4.
Припустимо, що на рахунок у банк покла-
дено суму K і з банкомата ми намагаємося
зняти суму x грн. Зрозуміло, що коли сума
х не перевищує K, банкомат має видати таку
суму й повідомити про остачу. Але ми можемо
помилитися й увести більшу суму. У такому
випадку банкомат не повинен видавати гро-
ші й має повідомити про помилку. Програ-
му, що реалізовує таку ситуацію, зображено
на рис. 7.
Рис. 7. Код програми з генеруванням винятку в програмі
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
109. 1097.5. Опрацювання...
Запитання для перевірки знань
1 Що називають винятком у програмі?
2 Які стандартні винятки можуть виникати?
3 Що повідомляється користувачу, коли вини-
кає виняток?
4 За допомогою якої інструкції перехоплюють-
ся винятки?
5 Яку структуру має блок try?
6 Для чого призначена інструкція raise?
Завдання для самостійного виконання
1 Генеруються два цілих випадкових числа
в діапазоні 0–2. Перше число ділиться на
друге. Розробіть програму моделювання
цього процесу, виконайте її кілька разів
і проаналізуйте результат.
2 Розробіть програму уведення двох чисел та їх
додавання, якщо перше число більше друго-
го, інакше — віднімання другого від першого.
Зробіть помилку в записі оператора умовного
переходу (виняток класу SyntaxError — син-
таксична помилка). Перехопіть, опрацюйте
помилку й завершіть програму.
3 Створіть програму множення значень двох
змінних, одна з яких не визначена. Викорис-
тайте виняток NameError — спроба звернен-
ня до ідентифікатора до його визначення
для перехоплення, опрацювання цієї події
і нормального завершення програми.
4 Назви областей України записано в алфа-
вітному порядку. Розробіть програму ство-
рення списку з п’яти перших областей
цього списку, та звернення до восьмої, від-
сутньої у списку області. Використайте ви-
няток IndexError, указаний індекс не існує
в послідовності для перехоплення винятку,
опрацювання та нормального завершення
програми.
5 Учитель звертається до учня з проханням
назвати дві найменші одиниці вимірюван-
ня інформації. Якщо учень дає відповідь
«біт» або «байт», учитель каже «правильно».
Розробіть програму моделювання цього
процесу з опрацюванням винятку введен-
ня непередбаченої відповіді. У будь-якому
випадку програма має завершити свою
роботу.
У програмі створено власний тип винятку,
який має назву Kl8_18. Він містить два поля:
x і K, у яких зберігається сума, яку бажано
зняти, і сума вкладу. В інструкції except ука-
зано клас помилки, котрий буде збережений як
змінна t1, у якій міститься відповідний клас
винятку. Усередині інструкції except використо-
вується поле об’єкта для виведення необхідного
повідомлення.
Результат виконання програми для випад-
ку, якщо сума для зняття не перевищує суму
вкладу, наведено на рис. 8, а якщо перевищує
суму вкладу — на рис. 9.
Рис. 8. Виконання програми для зняття суми,
що не перевищує суму вкладу
Рис. 9. Виконання програми для зняття суми,
яка перевищує суму вкладу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
110. Розділ 1110
8. Основи графічного інтерфейсу користувача
8.1. Загальний порядок створення графічного
інтерфейсу
До цих пір програми розроблялися в консольному режимі. Які,
на вашу думку, дефекти має такий режим виконання програм?
Мова Python забезпечує роботу з різними графічними біб-
ліотеками. За допомогою таких бібліотек можна створювати
програми з розвинутим графічним інтерфейсом користувача.
Достатньо потужні графічні можливості має модуль tkinter,
який і розглядатиметься далі.
Модуль tkinter входить до стандартного дистрибутива Python.
Основним призначенням цього модуля є створення графічних
інтерфейсів для програм, а завдяки наявності об’єкта полотно
(Canvas) його можна застосовувати й для малювання. За допо-
могою модуля tkinter можна створювати також графічні функ-
ції. Але для побудови графіків потужніші можливості в мо-
дуля matlotlib (який тут не розглядається).
Бібліотека tkinter має стандартний набір об’єктів (їх ще
називають віджетами, або компонентами), із яких, власне,
і створюється графічний інтерфейс. Прикладами віджетів є
кнопка, смуга прокручування, прапорець, перемикач та інші.
Кожному об’єкту в бібліотеці відповідає свій клас. Напри-
клад, об’єкту кнопка відповідає клас Button, а об’єкту переми-
кач — клас Radiobutton. Базовим класом бібліотеки є клас Tk,
за допомогою якого створюється головне вікно.
Усі віджети в програмі створюються за однаковим прин-
ципом — шляхом виклику конструктора відповідного класу,
який має таку загальну структуру:
ім’я змінної = назва класу [(параметри)]
Щоб скористатися можливостями графічного інтерфейсу,
слід передбачити розміщення у вікні необхідних графічних
об’єктів, а також ті дії, які мають виконуватися в процесі
взаємодії користувача з цими об’єктами. Безумовно, це збіль-
шує обсяг програмного коду й ускладнює його структуру, але
суттєво спрощує користувачеві взаємодію з програмою. А ін-
коли без використання графічних об’єктів просто не можна
обійтися.
У мовах програмування вико-
ристання графічного інтерфей-
су робить зручнішою роботу
з програмою. Графічні об’єкти
розміщуються на екрані, деякі
з них потребують зовнішньої
дії, наприклад клацання кноп-
ки миші. Далі програма вико-
нує відповідну передбачувану
дію. Якщо клацнути іншу кноп-
ку — програма може викону-
вати іншу запрограмовану дію.
Наприклад, створити кнопку можна за до-
помогою інструкції: but1 = Button(). Першим
параметром у цьому конструкторі вказується
ім’я батьківського віджета, у якому буде роз-
міщено цей об’єкт. Якщо цей параметр не вка-
зано, то об’єкт буде розміщено в головному
вікні. Далі можуть міститися інші параметри,
які визначають його конфігурацію, напри-
клад, назву — text, колір — bg, шрифт — font
та інші.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
111. 1118.1. Загальний порядок...
Для створення графічного інтерфейсу користувача необ-
хідно знати перелік об’єктів бібліотеки tkinter, їх призна-
чення й можливості, порядок розміщення об’єктів у вікні
та події, які можуть виникати під час взаємодії з ними.
Саме в такій послідовності й розроблено цей підрозділ.
Опишемо алгоритм створення графічного інтерфейсу мо-
вою Python.
Крок 1
Імпортуйте модуль tkinter і створіть головне вікно.
Як правило, для імпортування модуля використовують інструкцію from tkinter import *.
Далі створюється головне вікно. Пригадаємо, що воно міститься в класі Tk. Змінна, яку
пов’язують з об’єктом цього вікна, зазвичай має ім’я root. Найпростіша інструкція для
створення головного вікна має таку структуру: root = Tk().
Крок 2
Створіть у програмі віджети й визначте їх властивості.
Пригадаємо, що кожен віджет має свій клас. Будь-який віджет повинен бути пов’язаний
із відповідним іменем змінної. Наприклад, кнопку Button будемо пов’язувати зі змінною but
за допомогою інструкції: but=Button(root). Тут аргумент root означає, що кнопка буде розмі-
щена в головному вікні. За замовчуванням кнопку також буде розміщено в головному вікні.
Але якщо кнопку необхідно розмістити в іншому вікні, то слід указати його ім’я.
Будь-який віджет має властивості. Наприклад, кнопка може мати розмір, колір, напис.
Конкретні значення властивостей віджета вказуються як значення відповідних парамет-
рів після назви вікна (наприклад, після root) або встановлюються після їх створення.
Наприклад, для кнопки, якій присвоєно ім’я but, можна встановити властивість напис
за допомогою інструкції: but=Button (root, text=Виконати).
Крок 3
Визначте події та порядок їх опрацювання.
Для кожного компонента можна передбачити деякі події. Наприклад, кнопка може бути
натиснута або змінено її розмір. У програмі необхідно передбачити опрацювання кожної
події, наприклад, які дії слід виконати під час натискання кнопки. Опрацювання подій час-
то реалізується у вигляді функцій, які викликаються під час виникнення відповідної події.
Функції у цьому випадку мають таку загальну структуру:
def назва функції (назва події):
тіло функції
Функція зазвичай створюється на початку програмного коду. Щоб можна було ви-
кликати функцію опрацювання події, необхідно зв’язати цю функцію із самою подією.
Зв’язування реалізується за допомогою методу bind. Наприклад, зв’язати подію натис-
нення кнопки Button_1 із функцією func_1 можна за допомогою інструкції: but.bind
(Button_1.func_1).
Крок 4
У головному вікні розміщуються віджети, вони можуть бути навіть у строго визначених
координатах вікна. Щоб розмістити віджети без визначення координат, використайте
метод pack(). Наприклад, розмістити кнопку у вікні можна за допомогою інструкції:
but.pack().
Крок 5
Головне вікно відображається на екрані за допомогою методу mainloop(). Виконайте
інструкцію root.mainloop(), яка має бути останньою в програмі.
Наприклад, неможливо уявити роботу бан-
комата або платіжного термінала без висвіт-
лення на екрані різних компонентів, за допо-
могою яких практично будь-який користувач
може взаємодіяти з програмами, які ці при-
строї обслуговують. Використовуючи графічні
об’єкти, користувачі навіть можуть і не знати
про сутність програми, із якою він взаємодіє.
Таким прикладом є програма управління су-
часною пральною машиною.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
112. Розділ 1112
Приклад 1.
На рис. 1 зображено код програми, за допо-
могою якої відображається головне вікно з дво-
ма кнопками. Одна з них має напис Множення,
а друга — Додавання. Якщо натиснути кнопку
Множення, то викличеться функція func2, уве-
дуться й помножаться два числа. Якщо натис-
нути кнопку Додавання, то викличеться функція
func1, уведуться й додадуться два інших числа.
Рис. 1. Код програми відображення вікна з двома кнопками
Після запуску програми на виконання
на екрані з’явиться вікно з двома кнопками
(рис. 2) та вікно, у яке необхідно увести дані
для опрацювання. Вікно для уведення даних
можна перемістити в інше місце екрана так,
щоб ці вікна не перетиналися.
Натиснемо спочатку, наприклад, копку До-
давання й уведемо два числа — результат до-
давання чисел відобразиться на екрані. Потім
натиснемо кнопку Множення й уведемо два чис-
ла — з’явиться результат множення. Ще раз
натиснемо кнопку Додавання й уведемо два чис-
ла. Можливий результат описаних взаємодій із
програмою наведено на рис. 3.
Якщо у вікні (див. рис. 2) натиснути ліву
верхню кнопку, то відкриється меню, зображе-
не на рис. 4.
За допомогою команд цього меню можна
перемісти вікно на інше місце екрана або ви-
конати інші операції.
Рис. 2. Вікно з двома кнопками Рис. 3. Результат взаємодій Рис. 4. Системне меню
із програмою
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
113. 1138.1. Загальний порядок...
Створювати графічний інтерфейс користувача мож-
на й на основі об’єктно-орієнтованого підходу,
обов’язковою складовою якого є клас. Такий підхід у де-
яких випадках є ефективнішим за метод процедурного
програмування.
Приклад 2.
На рис. 5 зображено код програми, яка ре-
алізує ті самі функції, що й програма, яку
зображено на рис. 1. Але вона побудована з
використанням класу.
Принципова різниця між цими програ-
мами полягає лише в тому, що числа в дру-
гій програмі не вводяться за допомогою
клавіатури.
Рис. 5. Код програми на основі ООП будови
графічного інтерфейсу
На рис. 6 наведено можливий варіант виконання програми.
Рис. 6. Виконання програми на основі ООП будови
графічного інтерфейсу
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
114. Розділ 1114
Запитання для перевірки знань
1 Для чого призначений модуль tkinter?
2 Які основні об’єкти містить модуль tkinter?
3 За допомогою якої інструкції віджети розмі-
щуються у вікні?
4 Яку загальну структуру має функція опрацю-
вання події?
5 Які переваги й дефекти має графічний інтер-
фейс користувача?
6 Поясніть загальний порядок створення гра-
фічного інтерфейсу користувача.
7 Поясніть особливості створення графічного
інтерфейсу користувача на основі об’єктно-
орієнтованого підходу.
Завдання для самостійного виконання
1 Розробіть програму, за допомогою якої у го-
ловному вікні розміщується кнопка та здійснює-
ться введення з клавіатури трьох чисел. Після
натиснення кнопки обчислюється середнє
арифметичне уведених чисел.
2 Розробіть програму, за допомогою якої у голов-
ному вікні розміщується кнопка, після натиснен-
ня якої генеруються два цілі випадкові числа,
множаться й результат виводиться на екран.
3 Розробіть програму, за допомогою якої у го-
ловному вікні розміщуються дві кнопки з на-
звами Увести та Ділення. Після натиснення
першої кнопки два числа уводяться з клавіа-
тури, а після натиснення другої перше число
ділиться на друге.
4 Розробіть програму, за допомогою якої у го-
ловному вікні розміщуються три кнопки. Пі-
сля натиснення першої кнопки уводиться ціле
число, після натиснення другої — генерується
випадкове число, а після натиснення третьої —
вони складаються.
5 Розробіть програму на основі об’єктно-
орієнтованого підходу, за допомогою якої
у головному вікні розміщуються кнопки
Менше і Більше. Після натиснення першої
кнопки з клавіатури уводяться два числа
й повідомляється, яке з них менше. Після
натиснення другої кнопки з клавіатури уво-
дяться два інших числа й повідомляється,
яке з них більше.
8.2. Графічні об’єкти і їх властивості
Під час роботи з ОС Windows використовують стандартні
елементи, наприклад, меню, смугу прокручування й ін. Бібліотека
мови Python також має необхідний перелік графічних елементів,
на основі яких створюється графічний інтерфейс користувача.
Спробуйте визначити перелік таких елементів.
Графічні об’єкти бібліотеки tkinter можна розподілити на
дві групи: найчастіше вживані, які назвемо основними, і ті,
які використовуються рідше (назвемо їх додатковими).
8.2.1. Основні графічні об’єкти
Ознайомимося з основними графічними об’єктами бібліо-
теки tkinter (рис. 1).
• Кнопки зазвичай використовуються для управління про-
грамою. Після натиснення кнопки може опрацьовувати-
ся та чи інша подія, передбачена в коді програми. Кноп-
ці відповідає клас Button.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
115. 1158.2. Графічні об’єкти...
ОСНОВНІ ГРАФІЧНІ ОБ’ЄКТИКнопки
Мітки
Однорядкове
текстове поле
Багаторядкове
текстове поле
Радіокнопки
(перемикачі)
Прапорці Списки
Рис. 1. Об’єкти бібліотеки tkinter
Загальна структура конструктора створення кнопки така:
змінна = Button [(параметр_1,параметр_2,параметр_3,…)],
де параметр_1 (якщо він указаний) називають батьківським.
Цей параметр визначає посилання на об’єкт, у якому створює-
ться кнопка.
Наприклад, якщо кнопка створена в голов-
ному вікні, то цей параметр має значення room.
За замовчуванням кнопка також створюється
в головному вікні.
Інші параметри визначають властивості
кнопки та їх значення. Ці параметри оголо-
шуються за такою структурою:
властивість=значення.
Приклад 1.
На рис. 2 зображено код програми, за допомогою якої у головному вікні відображаються
дві кнопки різних розмірів, які мають різний колір фону й назви.
Рис. 2. Код відображення двох кнопок із різними значеннями властивостей
Тут bg — скорочення від background (фон),
а fg — скорочення від foreground (передній
план). Ширина й висота вимірюються кількіс-
тю знакових місць.
Результат виконання програми подано
на рис. 3.
Рис. 3. Виконання програми
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
116. Розділ 1116
•• Мітки використовуються здебільшого для інформування
користувача про результати виконаних дій програмою,
або про ті дії, які має виконати користувач.
Мітки можуть містити один або кілька рядків. Для їх
створення викликають клас Label.
Загальна структура інструкції для створення мітки в го-
ловному вікні така:
змінна = Label(root, параметр_1 , параметр_2,…)
Змінна може мати будь-яке ім’я. Далі будемо використовувати
ім’я lab. Параметри мають таку саму структуру, як і параметри
кнопки (приклад 2).
•• Однорядкове текстове поле використовується для введен-
ня тексту користувачем в один рядок. Для його створен-
ня викликається клас Entry (приклад 3).
•• Багаторядкове текстове поле також призначене для вве-
дення тексту користувачем. Для його створення викли-
кається клас Text (приклад 4).
•• Радіокнопки (перемикачі) призначені для вибору одно-
го з кількох запропонованих режимів (варіантів). Таким
чином, не може бути однієї радіокнопки, лише кілька.
У кожен окремий момент увімкнутою може бути лише
одна кнопка.
Відзначимо, що в бібліотеці tkinter є класи, об’єкти яких
виконують роль змінних для збереження значень про стан
віджетів. Якщо змінити значення такої змінної, то зміниться
і властивість віджета, а зміна властивості віджета викличе
зміну значення відповідної змінної.
До таких класів належать:
StringVar() — для опрацювання рядків;
IntVar() — для опрацювання цілих чисел;
DoubleVar() — для опрацювання дійсних чисел;
BoolenVar() — для опрацювання булевих значень.
Для створення радіокнопок викликається клас Radiobutton.
Створити дві радіокнопки можна, наприклад, за допомогою
таких інструкцій:
var = IntVar(0)
var.set(1)
rad1 = Radiobutton(root, text=‘Перша’, variable=var, value=1)
rad2 = Radiobutton(root, text=‘Друга’,variable=var, value=2)
За допомогою цих інструкцій створюється об’єкт var класу
IntVar, який виконує роль змінної.
За допомогою методу set() початкове значення змінної уста-
новлюється як таке, що дорівнює 1.
Властивість variable зв’язує змінну з радіокнопкою, а власти-
вість value визначає значення, яке буде передано змінній, якщо
ця кнопка буде ввімкнута. Ці дві кнопки належать одній групі,
про що свідчить однакове значення властивості variable.
•• Прапорці, як і радіокнопки, можуть міститися в різній
кількості. Одночасно можна увімкнути кілька прапорців,
а можна не вмикати жодного. Для створення прапорців
Приклад 2.
За допомогою інструкції:
lab = Label(root, text=“виконана
функція func1”, font=“Arial 12”)
у головне вікно буде виведено
12 кеглем шрифту Arial повідом
лення «виконана функція func1».
Приклад 3.
Створити однорядкове тексто-
ве поле можна за допомогою
такої інструкції:
ent = Entry(root, width=18, bd=5)
тут ent — ім’я змінної,
із яким пов’язується тексто-
ве поле, bd — скорочення від
borderwidth (ширина межі).
Приклад 4.
Створити багаторядкове тек-
стове поле можна за допомо-
гою інструкції:
tex = Text(root, width=30,
font=“Arial 12”, wrap=Word)
Тут властивість wrap визначає,
що слова не будуть розривати-
ся в процесі перенесення тек-
сту на новий рядок.
За допомогою інструкції var
= IntVar() створюється об’єкт
var, який виконує роль одно-
йменної змінної. За допомогою
методу set() цій змінній можна
надати початкове значення.
Наприклад, за допомогою ін-
струкції var.set(1) об’єкт-змінна
var набуде значення 1.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
117. 1178.2. Графічні об’єкти...
викликається клас Checkbutton. Кожен прапорець пови-
нен мати власну змінну. Створити два прапорці можна
за допомогою певних інструкцій (приклад 5).
• Списки — це об’єкти (поля), у яких користувач може ви-
вести необхідні дані та вибрати з них один або кілька
пунктів залежно від значення параметра selectmode. Для
створення списку викликається клас Listbox.
Розглянемо такий фрагмент інструкцій:
a = ['кнопка', 'мітка', 'прапорець', 'перемикач']
lis = Listbox(root, selectmode=SINGLE, height=3)
for i in a:
lis.insert(END, i)
За допомогою першої інструкції оголошується тип даних спи-
сок з іменем а. Він містить чотири рядки. За допомогою другої
інструкції створюється об’єкт-список, який пов’язаний зі змін-
ною lis. Після створення об’єкта-списку він є порожнім. Заповню-
ється список значеннями за допомогою методу insert в операторі
циклу. Значення SINGLE параметра selectmode створює можливість
вибрати з чотирьох виведених у список рядків лише один.
Приклад 5.
Створити два прапорці мож-
на, наприклад, за допомогою
таких інструкцій:
a1 = IntVar()
a2 = IntVar()
ch1 = Checkbutton(root,
text=Перший, variable=a1,
onvalue=1, offvalue=0)
ch2 = Checkbutton(root, text =
Другий, variable=a2, onvalue=2,
offvalue=0)
Приклад 6.
Розробимо програму, за допомогою якої в го-
ловному вікні відображаються такі об’єкти: два
прапорці (з назвами, відповідно, Перший і Дру-
гий), кнопка з назвою Стан прапорців і об’єкт-
список, у який виводиться стан прапорців.
У цьому списку можна вибрати один рядок.
Програму, що реалізує це завдання, зображе-
но на рис. 4.
Рис. 4. Код програми зміни й відображення стану прапорців
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
118. Розділ 1118
8.2.2. Додаткові графічні об’єкти
Ознайомимося з додатковими графічними об’єктами біб-
ліотеки tkinter (рис. 7).
Рамки
Смуга
прокручування
Вікно верхнього
рівня
Рис. 7. Об’єкти бібліотеки tkinter
ДОДАТКОВІ ГРАФІЧНІ ОБ’ЄКТИ
• Рамки (фрейми) використовуються для об’єднання у гру-
пи об’єктів, які розміщено у вікні. У вікні може бути
створено кілька рамок. Для створення рамки викликає-
ться клас Frame.
Загальна структура інструкції для створення рамки в го-
ловному вікні така:
змінна = Frame(root, параметр_1,параметр_2,…)
Наприклад, рамку можна створити за допомогою такої
інструкції:
fr1 = Frame(root, width=300, height=100, bg=“darkblue”, bd=20)
Тут bg — скорочення від boderwidth означає відстань від
кромки рамки до віджетів у ній (якщо вони є).
Після запуску програми відкриється вікно з об’єктами (рис. 5). Увімкнемо, наприклад, другий пра-
порець і натиснемо кнопку Стан прапорців. Отримаємо результат, який зображено на рис. 6.
У функції func1 за допомогою методу get() стан першого прапорця присвоюється змінній z1, а друго-
го — змінній z2.
За допомогою інструкції l = [z1, z2] зі значень цих змінних створюється тип список l. Після очищення
об’єкта lis він заповнюється відповідними значеннями за допомогою оператора циклу.
Стан першого прапорця запам’ятовується в змінній var1, а другого — у змінній var2.
Після натиснення кнопки Стан прапорців здійснюється звернення до функції func1.
Рис. 5. Стан об’єктів вікна після
запуску програми
Рис. 6. Стан об’єктів після вмикання
прапорця і натиснення кнопки but
Американська розробниця про-
грамного забезпечення Радія
Джой Перлман стала першою,
хто почав навчати програму-
ванню дітей молодшого віку.
Вона розробила дитячу вер-
сію навчальної робототехнічної
мови LOGO (названу TORTIS).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
119. 1198.2. Графічні об’єкти...
• Смуга прокручування використовується для прокручу-
вання вмісту іншого віджета, наприклад, списку або
текстового поля.
Прокручування може бути як по горизонталі, так і по вер-
тикалі. Перед створенням смуги прокручування слід визначи-
ти об’єкт (список або текстове поле), для якого вона створю-
ється. Для створення смуги прокручування викликається клас
Scrollbar. Наприклад, створити вертикальну смугу прокручу-
вання для текстового поля (попередньо створеного) можна за
допомогою інструкції:
sc = Scrollbar(root, command=tx.yview)
Тут tx — змінна текстового поля, yview — вертикальне роз-
ташування смуги прокручування, параметр command зв’язує
вертикальну смугу прокручування з текстовим полем tx.
• Вікно верхнього рівня є дочірнім головного вікна й най-
частіше застосовується для групування об’єктів за при-
значенням. Наприклад, в одному вікні можуть розміщу-
ватися перемикачі, у другому — прапорці.
На екрані можна відобразити кілька таких вікон. Закриття
головного вікна призведе й до закриття дочірніх, а закриття
дочірніх не потягне закриття головного вікна. Для створення
вікна верхнього рівня викликається клас Toplevel.
Створити дочірнє вікно можна, наприклад, за допомогою
такої інструкції:
top = Toplevel(root, relief=SUNKEN, width=200, height=100,
bd=15, bg=“lightblue”)
а визначити заголовок вікна можна за допомогою методу
title, наприклад:
top.title(«Перше додаткове вікно»)
Параметр relief визначає рельєф вікна.
Приклад 7.
На рис. 8 зображено код програми, за допомогою якого в головному вікні створюються дві
рамки. У першій із них розміщено дві кнопки з написами Увімкнути й Вимкнути, у другій — одна
кнопка з написом Завершити роботу. Результат виконання програми подано на рис. 9.
Рис. 8. Код відображення двох рамок і трьох кнопок Рис. 9. Виконання
програми
Марісса Енн Маєр відома тим, що
в 1999 році стала першою жін-
кою-інженером «Google» і три-
валий час посідала керівні по-
сади в компанії. У 2012–2018
роках Маєр була президенткою
і головною виконавчою дирек-
торкою компанії «Yahoo!». Зараз
працює над новим проектом.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
120. Розділ 1120
Приклад 8.
На рис. 10 зображено програмний код, за
допомогою якого створюється головне вік-
но та два дочірніх вікна: Вікно прапорців
і Вікно перемикачів. У головному вікні роз-
ташована кнопка Start, у вікні перемика-
чів — два перемикачі: Тип і Ім’я, а у вікні пра-
порців — два прапорці: Без заливки і Градієнтна
заливка.
Рис. 10. Код відображення різних типів вікон
Після виконання програми на екрані відобразяться вікна (рис. 11).
Рис. 11. Вікна перемикачів і прапорців
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
121. 1218.3. Опрацювання подій
Запитання для перевірки знань
1 Яке призначення текстового поля, радіокнопки?
2 Поясніть призначення параметрів мітки.
3 Для чого призначені списки, рамки?
4 Наведіть приклад інструкції створення радіо-
кнопки.
5 Як створюються прапорці?
6 Яку загальну структуру має конструктор
створення кнопки?
7 Як створюються рамки?
8 Наведіть приклад інструкції створення смуги
прокручування.
9 Які вікна належать до верхнього рівня?
Завдання для самостійного виконання
1 Розробіть програму, за допомогою якої у го-
ловному вікні розміщується кнопка з назвою
Виконати і мітка з повідомленням Завершено.
2 Розробіть програму, за допомогою якої у голов-
ному вікні розміщуються однорядкове, багато-
рядкове текстові поля і дві радіокнопки.
3 Створіть програму, за допомогою якої для
багаторядкового текстового поля створюєть-
ся вертикальна смуга прокручування.
4 Розробіть програму, за допомогою якої у го-
ловному вікні розміщується кнопка, два
прапорці та об’єкт-список. Після натиснення
кнопки в об’єкт-список виводяться рядки:
Черкаси, Чернігів, Чернівці.
5 Розробіть програму, за допомогою якої ство-
рюються два дочірніх вікна. В одному з них
розміщуються дві радіокнопки, а в друго-
му — два прапорці.
8.3. Опрацювання подій
Із подіями нам неодноразово доводилося стикатися в процесі
роботи з ОС. Наприклад, після натиснення кнопки Друк
відкритий файл виводиться на принтер, а після виконання
підпункту Save зберігається. У мові Python також існує значна
кількість подій і способів їх опрацювання.
Раніше вже було описано склад, призначення й техноло-
гію розміщення об’єктів бібліотеки tkinter у вікнах. Перейде-
мо до розгляду методики використання об’єктів графічного
інтерфейсу для управління програмою. Описаний склад
об’єктів графічного інтерфейсу мови Python фактично є стан-
дартом для багатьох мов ООП. Разом із тим, порядок їх роз-
міщення у вікнах і методика використання в різних мовах
суттєво відрізняється.
Зовнішнє діяння на віджет називають подією. У мові
Python подій досить багато. Тут розглядаються лише ті, які
застосовуються найчастіше.
Події можна розподілити на три основні групи.
• Події, що виникають у результаті діяння на мишу. Назви
подій цього типу беруться в лапки і знаки .
Наведемо деякі події:
Button-1 — клацання лівою кнопкою миші;
Button-3 — клацання правою кнопкою миші;
Motion — рух миші.
У програмах користувача з ви-
користанням графічного (ві-
конного) інтерфейсу на екрані
мають висвітлюватися віджети,
передбачені в програмі. Про-
грама має зупинити своє вико-
нання й очікувати зовнішнього
діяння на віджети. Подальша
реакція програми залежить від
того, на який віджет і яке ви-
конане діяння.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
122. Розділ 1122
• Події, що виникають у результаті діяння на клавіші.
Клавіші букв записуються в лапках, наприклад: W.
Для неалфавітних клавіш існують спеціальні зарезер-
вовані слова. Для клавіш, які натискуються одночасно,
також існують спеціальні позначення (приклад 1).
• Події, що виникають у результаті зміни властивостей
інших об’єктів. Слід чітко усвідомити, що для опрацю-
вання тієї чи іншої події попередньо необхідно зв’язати
віджет, над яким виконується діяння, саму подію
і функцію, яка повинна опрацьовувати цю подію. Їх
зв’язування реалізується спеціальними методами, напри-
клад, методом bind, який нами вже використовувався
в програмі.
Розглянемо опрацювання подій на прикладах.
Приклад 2.
Нам відомі назви футбольних команд —
чемпіонів України в 2010–2016 роках. Розро-
бимо програму, за допомогою якої після уве-
дення назви команди виводяться роки, у які
вона була чемпіоном країни. Якщо команда не
була чемпіоном у цей період, має висвітлювати-
ся відповідне повідомлення.
Для реалізації цього завдання викори-
стаємо однорядкове текстове поле для вве-
дення назви команди, багаторядкове текстове
поле для відображення років, кнопку та подію
Button.
Відповідний програмний код зображено на
рис. 1.
Рис. 1. Код із використанням текстових полів і кнопки
Приклад 1.
Натиснення клавіші Enter по-
значається так: Return, а кла-
віші пробіл — space.
Натиснення клавіш Ctrl+Shift
позначається так:
Control-Shift,
а тиснення клавіш Ctrl+z так:
Control-z.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
123. 1238.3. Опрацювання подій
У програмі використано метод grid, за допо-
могою якого віджети розміщуються не довільно,
а за значеннями параметрів padx і pady. Їх зна-
чення вказують кількість пікселів від віджета до
краю рамки (або комірки) відповідно по осях x і y.
Метод delete() очищує багаторядкове текстове
поле. Значення 1.0 і END у методі означають, що
очищення слід виконати, починаючи з першого
рядка першого символу (нумерація символів по-
чинається з нуля) і до кінця.
Метод insert() заповнює це поле значенням
змінної s. Ця змінна за допомогою методу set ()
отримує значення, яке введене в однорядкове тек-
стове поле. Після введення назви команди слід
натиснути кнопку Виконати. Можливий варіант
виконання програми наведено на рис. 2.
Рис. 2. Виконання програми із використанням
текстових полів і кнопки
Приклад 3.
Банкомат функціонує в спрощеному режимі:
після введення ПІН-коду він може повідомити
лише суму вкладу (баланс). Видачу коштів він
не реалізує. Розробимо програму моделювання
такого режиму роботи банкомата.
Програму моделювання такого режиму ро-
боти банкомата можна розробити за допомогою
різних об’єктів, подій і методів. Один із варіан-
тів програми зображено на рис. 3. Після за-
пуску програми в головному вікні висвітиться
мітка lb1 із написом ПІН-код і порожній одно-
рядковий текстовий рядок ent для введення
ПІН-коду. Після введення ПІН-коду слід на-
тиснути кнопку Enter. Якщо уведено правиль-
ний ПІН-код (1234), управління буде передано
функції func1, у результаті чого з головного
вікна будуть видалені мітка й текстове поле,
пов’язані, відповідно, зі змінними lb1 і ent,
і з’явиться кнопка but із написом Баланс.
Програма зупиняє виконання й очікує
натиснення цієї кнопки. Після її натискан-
ня в головному вікні з’явиться мітка lb2
із повідомленням: На Вашому рахунку 2000 грн.
Якщо уведено неправильний ПІН-код, про-
грама видає повідомлення: Неправильний код,
Завершено!
Рис. 3. Код програми моделювання спрощеного режиму роботи банкомата
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
124. Розділ 1124
Запитання для перевірки знань
1 Що в програмах називають подією?
2 На які групи поділяються події у мові Python?
3 Як позначається подія клацання лівою кноп-
кою миші?
4 Які дії можна виконати в програмі для опра-
цювання події?
5 Яке призначення має метод grid()?
6 Для чого застосовується метод set()?
Завдання для самостійного виконання
1 Зріст учня Сашка становить 178 см, а зріст
учниці Михайлини — 166 см. Розробіть про-
граму, яка видає зріст дитини за її ім’ям.
2 Розробіть програму, за допомогою якої за
назвою одного з чотирьох лікарських препа-
ратів видається його ціна.
3 У продовольчий магазин доставлені 3 на-
зви товарів. Для кожного з них відома вага
товару й загальна його сума. Розробіть про-
граму, за допомогою якої за назвою товару
повідомляється вартість його 1 кг.
4 У банкомат може вводитися ПІН-код карт-
ки абонента. Для кожного абонента відо-
ма загальна сума вкладу й сума останнього
надходження. Розробіть програму, за допо-
могою якої у випадку правильного уведення
ПІН-коду повідомляється загальна сума вкла-
ду й сума останнього надходження. Якщо
уведено неправильний ПІН-код, видається
повідомлення Неправильний ПІН-код. Об-
межитися чотирма відомими ПІН-кодами.
5 У протоколі Всеукраїнської олімпіади з ін-
форматики після прізвища учня чи учениці
вказано кількість набраних балів і назву на-
вчального закладу. Розробіть програму, за
допомогою якої можна за певним прізвищем
отримати вказані в протоколі дані (увести
дані для чотирьох учнів).
8.4. Меню
Поняття меню в мові програмування Python фактично
не відрізняється від аналогічного в операційній системі.
Але Python дає змогу користувачу створювати й викори-
стовувати меню. Які пункти меню, на вашу думку, доцільно
створювати?
Меню є об’єктом бібліотеки tkinter. Для створення меню ви-
кликається клас Menu. Меню може містити кілька пунктів,
наприклад, File, Edit тощо. Кожен пункт меню може містити
список, що розкривається, тобто кілька підпунктів (команд).
Наприклад, пункт меню File може містити підпункти Open,
Save й ін.
Отже, принципова особливість програми
в тому, що об’єкти створюються як у головній
програмі, так і у функції func2.
Один із варіантів результату виконання про-
грами наведено на рис. 4. Рис. 4. Виконання програми моделювання
спрощеного режиму роботи банкомата
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
125. 1258.4. Меню
Для розміщення в головному меню пункту меню використо-
вується метод add_cascade. Наприклад, щоб розмістити пункт
меню File у головному вікні, слід виконати команду:
змінна-посилання на головне вікно.add_cascade(label=»File»,
menu=змінна-посилання на основне меню)
Для додавання підпункту (команди) до пункту меню вико-
ристовується метод add_command(). Наприклад, щоб розмісти-
ти в пункті меню File команду Close, слід виконати команду:
змінна-посилання на основне меню.add_command(label=«Close»)
Мова Python дозволяє створювати вкладені меню, тобто під-
пункт може містити власні підпункти. Для цього створюється
ще одне меню, яке за допомогою методу add_cascade зв’язується
з відповідними підпунктами (командами) меню.
Приклад 1.
Розробимо програму, за допомогою якої
у головному вікні створюються пункти
меню File, Edit і Help. Пункт File має міс-
тити команди New File, Save і Close, пункт
Edit — команди Gut і Copy, а пункт Help —
команди IDLE Help і Python Docs. Про-
граму створення такого меню зображено
на рис. 1.
Рис. 1. Код програми створення меню
Поточний варіант виконання програми наведено на рис. 2:
Рис. 2. Виконання програми створення меню
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
126. Розділ 1126
Зазвичай підпункти меню зв’язуються з відповідною фун-
кцією, яка виконує ту чи іншу дію. Зв’язування функцій із ко-
мандами меню виконується за допомогою параметра command
методу add_command. Функція викликається під час клацання
лівою кнопкою миші по відповідному підпункту меню.
Приклад 2.
На рис. 3 зображено програму, за допомо-
гою якої виконуються такі дії. Після запуску
програми на екрані з’явиться вікно з пунктами
меню File і Help. Якщо після цього у відкри-
тому меню File клацнути пункт New, то відбу-
деться звернення до функції func1. У результаті
на екрані відкриється ще одне порожнє вікно.
Якщо клацнути пункт Exit, програма при-
пинить виконання й вікно закриється. Кла-
цання пункту About у відкритому пункті Help
призведе до виклику функції func3, у резуль-
таті чого в мітці lab з’явиться відповідний
текст.
Рис. 3. Код програми подій натиснення команд меню
На рис. 4 наведено результат виконання програми в результаті натиснення пункту About
у відкритому пункті Help.
Рис. 4. Виконання програми подій натиснення команд меню
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
127. 1278.5. Діалогові вікна
Запитання для перевірки знань
1 Який метод використовується для створення
меню?
2 Для чого призначений метод add_command()?
3 Наведіть приклад команди створення пункту
меню Edit.
4 Поясніть порядок створення вкладеного
меню.
5 Як зв’язуються підпункти меню з відповідни-
ми функціями?
Завдання для самостійного виконання
1 Розробіть програму, за допомогою якої у го-
ловному вікні створюється меню Help, що
містить підпункти Adoub IDLE, IDLE HELP,
Python Docs і Turtle Demo.
2 Розробіть програму, за допомогою якої у го-
ловному вікні створюється меню Options,
що містить підпункти Configure IDLE та
Configure Extensions, а також пункт меню
Windows.
3 Розробіть програму, за допомогою якої у го-
ловному вікні створюється меню з пунктом
Edit і його підпунктами Gut і Copy, а також
пункт меню Debug із підпунктом Configure
IDLE.
4 Розробіть програму, за допомогою якої ство-
рюється меню з пунктами File і Help. Пункт File
містить підпункти New і Exit. Виконання коман-
ди New викликає відкриття ще одного вікна,
а команди Exit — закриття вікна й програми.
5 Розробіть програму, за допомогою якої ство-
рюється меню з пунктами File і Edit. Пункт
Edit містить підпункт Undo, а пункт File —
підпункти Exit і Recent Files, який, у свою
чергу, містить підпункти doc і txt.
8.5. Діалогові вікна
Пригадайте, для чого застосовувалися діалогові вікна
в операційній системі Windows. Назвіть приклади діалогових
вікон, із якими вам доводилося працювати.
Існують різні типи діалогових вікон. Один із них — це
вікна для відкриття та збереження файлів. Для їх створення
слід, окрім модуля tkinter, імпортувати модуль tkinter.filedialog.
Вікно для відкриття файлів створюють за допомогою методу
askopenfilename(), а для збереження файлів — за допомогою
методу asksaveasfilename().
Найпростіший код створення вікна для відкриття й вікна
для збереження файлів зображено на рис. 1.
Діалогові вікна призначені для
виведення повідомлень кори-
стувачу й отримання від нього
відповідей та для керування
об’єктами.
Рис. 1. Код створення вікон для відкриття та збереження файлів
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
128. Розділ 1128
Об’єкт opn відкриває вікно для відкриття файлів, а об’єкт
sav — вікно для збереження файлів. На екрані одразу з’явиться
вікно для відкриття файлів, а після його закриття — вікно
для збереження файлів. Більше жодних дій за допомогою цієї
програми не виконується, її наведено з метою пояснення сут-
ності методів askopenfilename() і asksaveasfilename() та демонстру-
вання зовнішнього вигляду цього типу вікон.
Приклад 1.
Розробимо програму, за допомогою якої
у головному вікні створюється багаторядкове
текстове поле. У нього можна ввести невели-
кий текстовий файл, потім відкрити вікно для
збереження файлів, указати ім’я та місце збе-
реження файла та зберегти його.
У текстове поле можна також завантажи-
ти невеликий текстовий файл, для чого слід
відкрити вікно для відкриття файлів. Про-
граму, що реалізує цей сценарій, зображено
на рис. 2.
Рис. 2. Код програми завантаження та збереження файлів
Після запуску програми відкриється голов-
не вікно з багаторядковим текстовим полем.
Уведемо в це поле, наприклад, такий текст:
«Діалогові вікна призначені для виведення по-
відомлень користувачу, отримання від нього від-
повідей, а також для управління об’єктами». Пі-
сля цього відкриємо пункт меню File і виконаємо
команду Save…
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
129. 1298.5. Діалогові вікна
Розглянемо ще один тип діалогових вікон, які призначені
для попередження користувача про можливі наслідки подаль-
шого виконання програми й отримання від нього відповіді
типу «Так» або «Ні». Такий тип діалогових вікон описано
в модулі tkinter.messagebox. Тому на початку програми необ-
хідно імпортувати цей модуль.
Приклад 2.
Приклад програми створення таких вікон зображено на рис. 4.
Рис. 4. Код програми створення вікон із попередженням
Відкриється стандартне вікно для збереження
файла, вибираємо папку (наприклад Python3.4),
уводимо ім’я файла й підтверджуємо Зберегти.
Головне вікно з текстом залишиться на екра-
ні. Закриємо головне вікно й ще раз виконаємо
програму. У головному меню відкриємо пункт
меню File і виконаємо команду Open…. Відкри-
ється вікно Відкриття файлу, у якому знайдемо
ім’я файла Proba1 і відкриємо його. Відкриється
головне вікно з уведеним текстом (рис. 3).
Рис. 3. Головне вікно після відкриття файла
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
130. Розділ 1130
Запитання для перевірки знань
1 Яке призначення діалогових вікон?
2 За допомогою якого методу створюється вік-
но відкриття файлів?
3 Для чого призначено метод askcaveasfilename()?
4 Опишіть порядок завантаження файлів у тек-
стове поле.
5 Поясніть порядок створення діалогових ві-
кон із повідомленнями.
Завдання для самостійного виконання
1 Розробіть програму створення вікна лише
для відкриття файлів.
2 Розробіть програму, за допомогою якої в ба-
гаторядкове текстове поле вводиться текст:
Географічні координати Києва:
Широта 50°2716» пн. ш.
Довгота 30°3125» сх. д.
Висота над рівнем моря 187 м
Цей текст зберігається у файлі за допомогою
вікна для збереження файлів.
3 Створіть програму, за допомогою якої у ба-
гаторядкове текстове поле з клавіатури
уводиться текст, відкриваються вікна для
відкриття та збереження файлів. Використо-
вуючи елементи цього вікна, збережіть файл,
а потім відкрийте його.
4 За допомогою текстового редактора ство-
ріть файл. Розробіть програму завантажен-
ня цього файла в багаторядкове текстове
поле.
5 Розробіть програму створення в головному
вікні меню з пунктами File і Edit. Меню File
містить підпункти Open… і Exit. Після ви-
конання команди Exit має відкритися вікно
з назвою Exit і повідомленням Дійсно завер-
шити? Натиснення на кнопку Так повинно за-
крити програми й вікна.
Після запуску програми відкриється головне
вікно з пунктами меню File і Help. Пункт меню
File містить пункт Exit, а пункт Help — пункт
About.
Якщо виконати пункт About, з’явиться вікно
з назвою Editor, повідомленням Виконано успіш-
но і кнопкою ОК. Натиснення на цю кнопку
викличе закриття вікна Editor. Головне вікно
залишиться на екрані.
Якщо відкрити пункт меню Help і викона-
ти команду Exit, з’явиться вікно Exit (рис. 5) із
запитанням Закрити головне вікно? і кнопками
Так і Ні.
Натиснення на кнопку Так приведе до за-
криття головного вікна та вікна Exit, а на
кнопку Ні приведе лише до закриття вікна
Exit.
Рис. 5. Діалогове вікно з повідомленням
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
131. 1318.6. Графічні примітиви...
8.6. Графічні примітиви об’єкта Canvas
Графічні об’єкти будь-якої складності завжди створюються
з найпростіших геометричних елементів (примітивів). Який,
на вашу думку, необхідно мати перелік примітивів для
побудови графічних об’єктів?
Об’єкт Canvas (полотно) — це віджет бібліотеки
tkinter, на якому можуть бути розміщені інші віджети:
геометричні фігури, малюнки, фотозображення тощо.
Властивості об’єктів, які розміщено на полотні, можна змі-
нювати та переміщувати. Створення полотна в головному вікні
виконується за допомогою інструкції:
змінна = Canvas(root, параметри)
Параметрами можуть бути розміри полотна (у пікселях), ко-
лір заливки й ін. Canvas має систему координат, початок яких
розташовується в лівому верхньому куті полотна. Першою за-
вжди вказується координата x, а другою — координата y.
Геометричні фігури, що розміщуються на полотні, назива-
ють графічними примітивами.
Для кожного примітива існує відповідний метод створення:
Метод Структура
Метод створення ліній —
create_line()
Має таку загальну структуру:
змінна-посилання на полотно.create_line(кординати початку і кінця
лінії [,інші параметри])
Метод створення прямокутни-
ка — create_rectangle()
Загальна структура інструкції створення прямокутника така:
змінна посилання на полотно.create_rectangle(координати верхнього
лівого кута, координати правого нижнього кута [,інші параметри])
Метод створення багатокутни-
ка — create_polygon()
Структура інструкції створення багатокутника така:
змінна посилання на полотно.create_polygon(координати вершин
[,інші параметри])
Метод створення еліпса —
create_oval()
Загальна структура інструкції створення еліпса така:
змінна посилання на полотно.create_oval(координати верхнього лі-
вого кута й координати правого нижнього кута неіснуючого прямо-
кутника, у який буде вписано еліпс [,інші параметри])
Метод створення дуги, сектора,
сегмента — create_arc()
Значення CHORD параметра style у методі означає, що буде створено
сегмент, значення ARC — дуга, а за замовчуванням цього параметра
створюється сектор.
За допомогою параметрів start і extent можна задати кут фігури
Метод створення текстового
напису — create_text()
Інструкція його створення має таку загальну структуру:
змінна посилання на полотно.create_text(координати напису,
text=«напис»)
У мові Python існують методи, які допомагають у процесі
виконання програми змінювати властивості об’єктів, розташо-
ваних на полотні, переміщувати їх на полотні й виконувати
деякі інші операції. Але для того щоб застосувати ці методи,
попередньо об’єктам необхідно надати імена (ідентифікатори).
Приклад 1.
Інструкцією xol = Canvas
(root, width=350, height=450)
створюється полотно ши-
риною 350 та висотою 450
пікселів із посиланням на
змінну xol.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
132. Розділ 1132
Приклад 2.
На рис. 1 зображено код програми, за допомогою якого розміщуються основні примітиви з назвами.
Рис. 1. Код програми відображення на полотні графічних примітивів
Результат виконання програми зображено на рис. 2.
Рис. 2. Графічні примітиви на полотні
Присвоїти об’єкту ідентифікатор можна за допомогою такої
інструкції:
ідентифікатор=ім’я полотна.create_назва об’єкта(параметри)
Наприклад, присвоїти об’єкту oval, що розміщується на
полотні з іменем cnv, ім’я kolo можна так:
kolo = cnv.create_oval([160,10], [120, 60], fill=yellow).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
133. 1338.6. Графічні примітиви...
Приклад 3.
На рис. 3 зображено код програми, за допомогою якої на полотні відображається коло, ква-
драт і дві кнопки Button. Після натиснення однієї з кнопок коло кожного разу переміщується
вниз на 40 пікселів, а після натиснення другої змінюється товщина рамки й колір заливки
прямокутника.
Рис. 3. Код програми переміщення та зміни властивостей об’єкта
Після запуску програми отримаємо результат, який наведено на рис. 4. Якщо п’ять разів
натиснути кнопку Переміщення кола й один раз кнопку Зміна кольору прямокутника, отримаємо
такий результат, який подано на рис. 5.
Рис. 4. Розміщення кола та прямокутника
одразу після виконання програми
Рис. 5. Розміщення кола та прямокутника
після натиснення кнопок
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
134. Розділ 1134
Розглянемо два методи для роботи з об’єктами: move() та
itemconfig.
• Метод move() призначений для переміщення об’єктів по
осях X і Y на вказану кількість пікселів. Загальна струк-
тура інструкції для застосування цього методу така:
ідентифікатор полотна.move(ідентифікатор об’єкта, X, Y)
Наприклад, у результаті виконання інструкції cnv.move(kolo,
0, 40) об’єкт з іменем kolo переміститься вниз на 40 пікселів.
• Метод itemconfig() змінює властивості, перелічені в ме-
тоді. Структура інструкції використання цього мето-
ду трохи відрізняється від інструкції застосування ме-
тоду move(). Наприклад, за допомогою інструкції cnv.
itemconfig(kvadrat, fill=«red», width=5) об’єкт з іменем kvadrat
набуде кольору red із товщиною рамки 5 пікселів.
Природно, що зміни над об’єктами мають виникати під
час зовнішнього впливу, наприклад, після натиснення кнопки
миші, клацання кнопки Button тощо. Після виконання таких
дій управління повинно передаватися відповідній функції для
опрацювання цієї події.
За допомогою методу delete() можна видалити з полотна
об’єкт зі вказаним ідентифікатором або тегом. Якщо в мето-
ді вказати значення all, із полотна буде видалено всі об’єкти.
Наприклад, за допомогою інструкції cnv.delete(all) із полотна
з іменем cnv буде видалено всі об’єкти.
Кожен об’єкт має унікальні
ідентифікатори, тому власти-
вості кожного з них можна
змінювати незалежно один від
одного. Але інколи в процесі
виконання програми доціль-
но одночасно змінити ту саму
властивість кількох об’єктів.
У мові Python це можна зро-
бити за допомогою тегів, які
мають ім’я tag. Для цього той
самий тег присвоюється різ-
ним об’єктам. Звернення до
такого тега дає змогу змінити
властивості всіх об’єктів, у яких
вказано цей тег.
Запитання для перевірки знань
1 Для чого призначено об’єкт Canvas?
2 За допомогою якої інструкції створюється по-
лотно в головному вікні?
3 Які параметри може мати об’єкт Canvas?
4 Для чого призначений метод delete()?
5 Яке призначення методу create_rectangle()?
6 Наведіть інструкцію створення еліпса.
7 Із якою метою об’єктам на полотні присвою-
ються ідентифікатори?
8 Що називають тегами; яке їх призначення?
Завдання для самостійного виконання
1 Розробіть програму, за допомогою якої на по-
лотні створюється трикутник з описаним нав-
коло нього колом.
2 Розробіть програму, за допомогою якої на по-
лотні створюється піраміда, основою котрої
є квадрат.
3 Розробіть програму, за допомогою якої на
полотні створюється футбольне поле з усіма
лініями на ньому й воротами.
4 Розробіть програму, за допомогою якої на по-
лотні створюється баскетбольний майданчик
з усіма його елементами.
5 Розробіть програму, за допомогою якої на
полотні розміщується прямокутник, правиль-
ний трикутник і дві кнопки. Після натиснення
першої кнопки переміщується прямокутник,
а після натиснення другої — обидві фігури.
6 Розробіть програму, за допомогою якої на
футбольному полі після натиснення кнопки
м’яч влітає у ворота.
Виконайте тестове завдання до розділу 2
з автоматичною перевіркою результату
на сайті interactive.ranok.com.ua
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
135. 2.1. Сучасні... 135
2.1. Сучасні інформаційні технології та системи.
Людина в інформаційному суспільстві
Уявіть, ви живете півстоліття тому. Вам необхідно:
повідомити рідних, що сьогодні ви затримуєтеся в школі,
купити в магазині цукерки для бабусі, на завтра написати
реферат про Алана Тюрінга, на вихідні здійснити незаплановану
подорож у сусіднє місто. Які ваші дії?
Сьогодні все наше повсякденне життя нерозривно пов’язане
з використанням інформаційних технологій (ІТ).
Інформаційні технології — це сукупність процесів,
що використовує засоби та методи пошуку, збирання,
накопичення, зберігання, опрацювання та передаван-
ня первинної інформації для отримання інформації
про стан об’єкта, процесу або явища за допомогою
засобів обчислювальної та комунікаційної техніки.
Стрімкий розвиток ІТ та поява соціальних мереж і сервісів
обміну інформацією зробили революцію у сфері міжособистіс
них комунікацій, знищили просторові й часові межі в контак
тах між людьми, дали змогу формувати й підтримувати нові
економічні моделі. У 2011 році журнал Time назвав економіч
ну модель «спільного споживання» (sharing economy — еконо
міка спільної участі) у числі тих, що можуть змінити світ спо
живання. Головна ідея цієї моделі — об’єднати масовий попит
і розрізнену пропозицію, використовуючи принципи бартеру
й оренди. Концепція проявляється як у різноманітних галу
зях цифрового бізнесу, так і в людській діяльності загалом.
Сьогодні на моделі «спільного споживання» побудовано
всесвітньо відомі глобальні онлайнсервіси (рис. 1):
• Uber (мобільний застосунок для пошуку, виклику та
оплати таксі або приватних водіїв; існує з 2009 року);
• BlaBlaCar (платформа для спільних поїздок автомобілем;
запущена в 2004 році);
• Airbnb (онлайнсервіс із розміщення, пошуку та корот
кострокової оренди житла по всьому світі; започаткова
ний у 2008 році).
Існують також TaskRabbit, Sorted (дрібні побутові послуги),
Shareyourmeal (можливість купити/продати надлишок домаш
ньої їжі).
Розділ 2. СУЧАСНІ ІНФОРМАЦІЙНІ
ТЕХНОЛОГІЇ
Ми легко спілкуємося з друзями,
обмінюємося «Сторіс» в Інстаг-
рамі, «лайкаємо» сторінки незна-
йомих нам людей у Фейсбуці, шу-
каємо в Google значення якогось
терміна, мандруємо, не виходячи
з дому, кращими музеями світу,
замовляємо через Інтернет квит-
ки на потяг або концерт.
Рис. 1. Логотипи онлайн-сервісів, які
використовують модель «спільного
споживання»
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
136. Розділ 2136
Вплив ІТ стає дійсно всеосяжним: вони в той чи інший спо
сіб змінюють традиційні форми людської діяльності: ведення
бізнесу, виробництво, освіту, культурне життя, та приводять
до появи нових. Комп’ютерна грамотність стала невід’ємною
частиною повсякденного життя, обов’язковою умовою праце
влаштування й успішної кар’єри.
Упровадження ІТ впливає на характер праці на виробни
цтві, знижує число працюючих у цій галузі, змінює саму
організацію й технологію виробництва. Зазнає змін сама про
цедура обговорення та прийняття виробничих рішень.
Термін «інформаційні технології» нерозривно пов’язаний
із терміном «інформаційна система» (ІС).
Інформаційна система — сукупність організаційних
і технічних засобів для збереження та опрацювання
інформації з метою забезпечення інформаційних по-
треб користувачів.
Усе частіше технічні ІС розробляються для задоволення
інформаційних потреб у межах конкретної галузі людської
діяльності. Комп’ютер як технічна ІС є програмно-апаратним
комплексом для зберігання та опрацювання даних і забезпе
чення зручного інтерфейсу.
Згадаємо основні складові та призначення сучасної ІС та її
призначення (рис. 2).
Людину або будь-яку істоту
можна вважати біологічною
інформаційною системою (ІС),
суспільство — соціальною ІС,
а комп’ютер — технічною.
Технічне забезпечення
комплекс апаратних засобів, що підтримує
роботу ІС (комп’ютери, засоби комунікації,
комп’ютерні мережі й ін.)
Правове забезпечення
сукупність правових норм, які
визначають створення, юридичний
статус і функціонування ІС тощо
Організаційне забезпечення
сукупність методів і засобів, які регламен
тують взаємодію фахівців із технічними за
собами в процесі розробки й експлуатації ІС
Інформаційне
забезпечення
сукупність різноманітних
даних певної предметної
галузі для надання інфор
маційних послуг клієнтам
Програмне
забезпечення
сукупність програм для реа
лізації різноманітних задач
ІС, підтримки нормального
функціонування технічних
засобів
ІНФОРМАЦІЙНА
СИСТЕМА
Математичне забезпечення
сукупність методів, моделей,
алгоритмів для реалізації
задач ІС
Рис. 2. Типовий склад технічної ІС
Карен Спарк Джон — британ-
ська дослідниця, яка розробила
технології пошуку, які дозво-
лили користувачам працювати
з комп'ютерами, використовую-
чи слова замість рівнянь та кодів.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
137. 2.1. Сучасні... 137
Розробляють ІС для задоволення інформаційних потреб
у межах певної галузі людської діяльності. Згадаємо, як часто
ми користуємося послугами геосервісів — геоінформаційними
системами на кшталт Google Maps. ІС стають важливою та
невід’ємною складовою сучасного суспільства. Розширення їх
можливостей сприяє підвищенню рівня освіти, науково-тех
нічному та культурному розвитку, і відповідно зростанню ролі
кваліфікації, професіоналізму і здатності до творчості.
Людство пережило кілька етапів суспільного розвитку
(рис. 3). Важливим є й постіндустріальний етап, коли понад
50 % працездатного населення зайняте у сфері послуг. По
ступово людство переходить до інформаційного етапу — коли
понад 50 % населення зайнято у сфері інформаційних послуг.
Коли ми говоримо про інформаційне суспільство, то насам
перед виділяємо такі його характеристики:
•• збільшення ролі інформації та інформаційних техноло
гій у житті суспільства;
•• створення та розвиток ринку інформації та знань як чин
ників виробництва, що доповнюють уже наявні ринки при
родних ресурсів, праці й капіталу, перехід інформаційних
ресурсів суспільства до дійсних ресурсів соціально-еконо
мічного розвитку; підвищення частки інформаційних ко
мунікацій, продуктів і послуг у валовому внутрішньому
продукті;
•• зростання інформатизації суспільства завдяки розвитку
телефонії, радіо, телебачення, Інтернету, традиційних
і електронних засобів масової інформації;
•• створення глобального інформаційного простору, що за
безпечує ефективну інформаційну взаємодію людей, їх
доступ до світових інформаційних ресурсів та ін.
Формування інформаційного суспільства є результа
том чотирьох інформаційних революцій, які відбулися
в історії розвитку людської цивілізації. Кожна з них кар
динально змінювала не лише способи опрацювання ін
формації, а й спосіб виробництва, стиль життя, систему
цінностей.
Інформаційна революція (англ. Information Revolution) — це
поняття, що відображає революційний вплив інформаційних
технологій на всі сфери життя суспільства, особливо в останній
чверті XX ст.
Немає випускника чи випускни-
ці, які б під час вступу до вишів
не використовували ІС «Кон-
курс». Система надає вичерпну
інформацію про всі вступні кам-
панії, починаючи з 2008 року.
Індустріальний етап
Основа — розвиток
промисловості
та її технічного
забезпечення
Аграрний етап
Основа — розвиток
сільськогосподарських
відносин, пов’язаних із
системою землекористування
Інформаційний етап
Основа — розвиток технологій
отримання, зберігання,
накопичення, опрацювання,
обміну та продажу даних
Рис. 3. Основні етапи розвитку суспільства
Джуді Маллой — американська
письменниця та програміст-са-
моучка, яка винайшла власну
систему баз даних для своїх
романів. У 1986 році вона на-
писала та запрограмувала но-
ваторський гіпертекстовий ро-
ман «Дядько Роджер» («Uncle
Roger»). Це перший онлайн-
проект гіперлітератури з поси-
ланнями, які змінюють сюжет
залежно від уподобань читача.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
138. Розділ 2138
Інформаційна революція інтегрує ефекти попередніх револю
ційних винаходів в інформаційній сфері (книгодрукування,
телефонія, радіозв’язок, комп’ютер). Це створює технологічну
основу для подолання відстаней під час передавання інформа
ції, що сприяє об’єднанню інтелектуальних здібностей людства:
Інформаційна революція Опис
Перша Пов’язана з винайденням писемності, що сприяло якісному стрибку
в розвитку людства
Друга (сер. XVI ст.) Пов’язана з появою книгодрукування; суттєво вплинула на розвиток
індустріального суспільства
Третя (кін. XIX ст.) Пов’язана з винайденням електрики, а потім телеграфу, телефону і радіо
Четверта (70-ті рр. ХХ ст.) Пов’язана з винайденням мікропроцесорної техніки, персонального
комп’ютера, а пізніше — Інтернету
Людина в інформаційному суспільстві стикається з величез
ним обсягом інформації, який потребує опрацювання. Таким
чином, її мозок працює в інтенсивному режимі багатозадачнос
ті. Людина має вдосконалювати критичне мислення для того,
щоб відрізняти достовірну інформацію від фейкової.
Запитання для перевірки знань
1 Що таке інформаційні технології?
2 Наведіть приклади використання інформацій-
них технологій у повсякденному житті.
3 Яке суспільство зазвичай називають інфор-
маційним?
4 Назвіть основні етапи суспільного розвитку,
яке пережило людство.
5 Яке суспільство називають постіндустріальним?
6 Назвіть характерні риси інформаційного су-
спільства.
2.2. Навчання в Інтернеті
Як би ви охарактеризували модель, за якою навчаєтеся?
За традиційною моделлю навчання учні для отримання се
редньої освіти мають щодня приходити до школи, слухати на
уроках учителя, виконувати домашні завдання, готуватися до
іспитів. Завдяки Інтернету створюються принципово нові умови
для організації дистанційного навчання.
Нині здатність до самоосвіти, спроможність швидко опано
вувати нові професії стає однією з основних умов успішності
людини. Враховуючи це, все більше провідних університетів
світу викладають свої аудіо та відеолекції в Інтернет у віль
ний доступ.
На сайті Гарвардського університету доступні безкоштовні
відеолекції, понад 50 навчальних програм різної тематики —
від мистецтва, соціальних наук і літератури до сучасної іс
торії, точних наук і математики.
На сайті університету Берклі доступні безкоштовні аудіо і ві
деокурси з фізики, біології, хімії, психології, інформатики,
На відміну від людини інду-
стріального суспільства, яка
має розвинену довгострокову
пам’ять, людині інформаційного
суспільства не потрібно трима-
ти в пам'яті інформацію — до-
статньо знати, де її знайти.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
139. 2.2. Навчання... 139
іноземних мов, економіки, географії, історії, філософії, соціо
логії та цілої низки інших дисциплін.
Зростає роль освітніх платформ, які пропонують масові від
криті безкоштовні онлайн-курси. Ці курси вже тепер ство
рюють можливість мільйонам людей здобувати знання, пере
буваючи в будь-якому куточку світу.
Усе більшою популярністю користуються відкриті онлайн-
курси провідних університетів світу, розміщені на платфор
мах Coursera, Udacity, ЕdX та ін. (див. рисунок). На Всесвітньо
му економічному форумі в Давосі (2018 рік) зазначалося, що
онлайн-освіта змінює світ.
Сoursera — проект у галузі масової онлайн-освіти, який
засновано у квітні 2012 року професорами інформатики Стен
фордського університету Ендрю Нґ та Дафною Коллер.
Наразі Сoursera має 100 університетів-партнерів, в тому
числі 33 університети США та близько 5 млн користувачів.
Сoursera пропонує близько 500 курсів за освітніми категорія
ми, що охоплюють гуманітарні науки, біологію, медицину,
соціальні науки, математику, бізнес, економіку та фінанси,
комп’ютерні науки та багато інших.
Курси на Coursera включають відеолекції з субтитрами, кон
спекти лекцій, домашні завдання, тести, підсумкові іспити; всі
завдання мають бути виконані до певної дати, існує «форум»
для обміну думками. За умови успішного виконання проміж
них завдань і заключного іспиту слухач отримує сертифікат.
Udacity — комерційна освітня організація, заснована про
фесором комп’ютерних наук Стенфордського університету Се
бастьяном Траном.
Udacity пропонує масові відкриті онлайн-курси, орієнтую
чись насамперед на «професійні курси для професіоналів»,
присвячені переважно комп’ютерним наукам, фізиці та мате
матиці. Головна ідея проекту — сприяння подальшому пра
цевлаштуванню слухачів.
В Udacity за допомогою відеозв’язку (Office hours) студенти
можуть протягом тижня поставити питання авторам курсів.
Фінальна оцінка складається з оцінки за іспити й ураховує
результати виконаних домашніх завдань. Сертифікація після
проходження курсу дає змогу оцінити кожному свій загаль
ний рівень.
Уже зараз Udacity і Coursera почали надавати слухачам уні
верситетські кредити за проходження окремих курсів, які
певні університети вже зараховують як складову навчальної
програми.
еDX — проект, який створено спільно двома вишами —
Гарвардським університетом і Массачусетським технологічним
інститутом.
еDX пропонує понад 250 безкоштовних онлайн-курсів від
найвідоміших університетів та інститутів світу, переважно
з комп’ютерних наук та електроніки. Після проходження кур
сів у слухачів також є можливість отримати сертифікати eDX.
Курси на Udacity і Coursera міс
тять цілий комплекс взаємо
пов’язаних складових. Трива-
лість курсів регламентовано
в часі (6–9 тижнів). Щотижня
зворотний зв’язок підтримує
ться шляхом перегляду блока
відеоматеріалів і заповнення
бланків із запитаннями. Після
цього — домашні завдання до
кінця тижня.
Логотипи найпопулярніших
освітніх платформ
Основні переваги
дистанційного навчання
•• Оперативне отримання будь-
якої інформації з сайтів на-
вчальних закладів у будь-якій
точці земної кулі
•• Зберігання навчальних мате-
ріалів на ґаджетах протягом
необхідного часу та можли-
вість їх змінювати й редагу-
вати
•• Реалізація інтерактивності за
допомогою оперативного зво
ротного зв’язку з учасниками
процесу навчання
•• Можливість порівняти інфор
мацію, отриману з різних
джерел
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
140. Розділ 2140
Усе більшої популярності в Україні набувають відкри
ті онлайнкурси на україномовних платформах Prometheus
і EdEra.
Prometheus — перший україномовний гро
мадський проект масових відкритих онлайн
курсів. Головною метою проекту є без
коштовне надання онлайндоступу до кур
сів університетського рівня всім бажаючим,
а також надання можливості публікувати
та розповсюджувати такі курси провідним
викладачам, університетам та компаніям.
На платформі розміщено цикл курсів для всіх, хто хоче
підготуватися до успішного складання ЗНО та ДПА з україн
ської мови та літератури, історії України й математики.
EdEra — другий за популярністю украї
номовний онлайнресурс, українська студія
онлайносвіти. Наразі команда створила по
над 1000 освітніх роликів, запустила близько
20 відкритих онлайнкурсів та інтерактивних
підручників.
EdEra ставить на меті зробити освіту якісною та доступною,
орієнтуючись насамперед на базову середню освіту, створити
онлайнкурси повного циклу — від лекцій до книжок.
Запитання для перевірки знань
1 У чому полягає сутність навчання в Інтернеті?
2 Наведіть приклади найпопулярніших освітніх
онлайн-платформ.
3 Що таке онлайн-курс повного циклу? Наве-
діть приклади таких курсів.
4 Назвіть переваги дистанційного навчання.
5 Що, на вашу думку, стримує розвиток онлайн-
навчання?
6 Які, на вашу думку, курси є найбільш затребу-
ваними?
2.3. Професії майбутнього: аналіз тенденцій
на ринку праці
Поміркуйте, які професії сьогодні користуються найбільшим
попитом.
Вирішальний вплив на формування тенденцій на ринку
праці мають процеси, що безпосередньо відбуваються в со
ціальноекономічному житті суспільства, у тому числі гло
бальних на світовому рівні.
Стрімкий розвиток ІТ створив передумови для «переміщен
ня» діяльності бізнесу в глобальну мережу. Так, просування
товарів і послуг, фінансові операції та пошук персоналу здій
снюється тепер у Всесвітній павутині. Тому все більше біз
несспеціалістів опановують інструменти, раніше притаманні
вебдевелоперам та ІТспеціалістам.
Стрімко зростає потреба в спеціалістах із кібербезпеки.
Сервіс EdEraBooks — це со-
ціальний проект інтерактивної
освітньої літератури зі вбудо-
ваними відео, автоматизова-
ними тестами й можливістю
коментувати кожну сторінку.
Проект незамінний для тих,
хто хоче добре підготуватися
до складання ЗНО.
На кожному етапі розвитку
людства завжди є певна група
найбільш затребуваних профе-
сій. Потреби на ринку праці за-
лежать від багатьох чинників.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
141. 2.3. Професії... 141
Розвиток смарт-технологій у подальшому сприятиме появі
нових професій: проектувальник інфраструктури «розумного
дому», будівельник «розумних» доріг, фахівець у галузі аль
тернативної енергії.
Украй важливою сферою для людей завжди була медицина,
і в майбутньому її значення зростатиме. Дослідження ДНК
відкрили нову еру превентивної медицини, що має на меті
виявити можливі захворювання і запобігти їм на ранній ста
дії. Активно використовуються біотехнології, що допомагають
у розробці ліків і створенні тканин і органів для пересаджу
вання. З’являться нові професії: IT-медик, оператор медичних
роботів, молекулярний дієтолог та ін.
Розвиток технологій змінює уявлення людей про способи
отримання знань і змушує переосмислити звичний підхід до
навчального процесу. Це означає, що в майбутньому будуть
досить затребуваними фахівці в галузі освіти. Сьогодні вже
використовуються інструменти навчання із застосуванням ІТ:
онлайн-курси, симулятори, тренажери, ігрові онлайн-світи. Це
дає змогу учням розвивати вміння працювати з інформацією.
Уже існують такі професії, як тьютор, координатор освітньої
онлайн-платформи, ментор стартапів та ін.
Якими б різноманітними не були майбутні професії, зав
жди будуть залишатися певні вимоги до фахівців.
•• Крос-функціональність — найбільше цінуються фахів
ці, які працюють «на стику» професій. Багато компаній
прагнуть сформувати команди професіоналів, що володі
ють знаннями відразу в кількох галузях.
•• Мобільність — експерти стверджують, що нині часта
зміна місця роботи й навіть сфери діяльності є нор
мою. Американські дослідники припускають, що не
забаром людина до 38 років зможе освоїти до 10–14
професій.
•• Універсальність — зростатиме попит на фахівців, які
володіють кількома іноземними мовами, знають основи
менеджменту, маркетингу та фінансів та вміють працю
вати з Big Data — технологією опрацювання великих об
сягів даних.
•• Уміння працювати в команді — важливо узгоджувати
свої дії під час колективної роботи, бути здатним не
лише відстоювати власну позицію, а й поважати пози
цію інших.
Уміння застосовувати у своїй діяльності сучасні ІТ стає од
нію з основних складових профісійної підготовки будь-якого
фахівця. Перелік ключових компетентностей, визначених ЄС
у 2018 р. наведено на рис. 1.
Невід’ємними характеристиками стають упевнені навички
користування офісними пакетами (Microsoft Office, LibreOffice,
OpenOffice), уміння організувати свій час (так званий тайм-
менеджмент) за допомогою віртуальних цифрових помічни-
ків (рис. 2).
Користується попитом робото-
техніка: автоматичні пристрої
перевершують у точності зви-
чайних хірургів, а кіберпротези
можуть не просто компенсувати
фізичні вади, але й відкрити пе-
ред людиною нові можливості.
Рис. 2. Логотипи віртуальних
цифрових помічників
Ключові компетентності
Особиста, соціальна,
навчальна
Цифрова
Науки, технології,
інженерія, математика
Мовна
Грамотність
Культурна
обізнаність та
самовираження
Підприємницька
Суспільна
Рис. 1. Ключові компетентності
для навчання впродовж життя
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
142. Розділ 2142
Віртуальний цифровий помічник (від англ. Virtual
Digital Assistant, скорочено VDA) — додаток для
смартфонів, який фактично виконує роль особистого
секретаря користувача. Такий помічник «розв’язує»
завдання планування, організації і виконання повсяк-
денних справ, контекстного пошуку інформації для
потреб конкретної людини тощо.
Віртуальний цифровий помічник може створювати нагаду
вання, полегшити пошук і онлайн-бронювання квитків, за
мовлення таксі. У процесі виконання завдань він здатний до
самонавчання, може аналізувати поведінку й інтереси корис
тувача. Наразі найвідомішими віртуальними цифровими по
мічниками є Siri, Google Assistant, Microsoft Cortana.
Siri — персональний помічник, адаптований під iOS. Цей
додаток спілкується природною мовою, відповідає на питання
та дає рекомендації. Siri пристосовується до кожного корис
тувача, вивчаючи його особливості протягом тривалого часу.
Google Assistant — розумний персональний асистент, роз
роблений компанією Google і представлений 18 травня 2016
року на конференції Google I/O. Додаткова функція програ
ми — збирання персональних даних користувачів у корпора
тивній системі машинного навчання
Microsoft Cortana — персональна помічниця, покликана
передбачати потреби користувача. За бажанням їй можна дати
доступ до особистих даних користувача, таких як електронна
пошта, адресна книга, історія пошуків у мережі, — усі ці дані
вона буде використовувати для передбачення потреб власника.
Як відомо, будь-яка нова справа потребує чіткого плануван
ня: із яких етапів вона складається, скільки часу відводиться,
як розподілити обов’язки, якщо справа командна. Можна роз
писати ланцюжок дій на аркуші паперу, але краще скориста
тися спеціальними сервісами — інструментами для індивіду
ального (або колективного) планування.
Існують різні види онлайн-інструментів (рис. 3):
•• органайзер — інструмент організації інформації про осо
бисті контакти та події, засіб управління часом;
•• тайм-трекінг — інструмент управління часом, відстежен
ня часу на різні завдання (http://www.yast.com/, http://
www.rememberthemilk.com/);
•• планувальник завдань — ToDo-лист, інструмент, що дає
змогу організувати список завдань (http://todo.ly/).
Окрім згаданих, існує ще низка подібних органайзерів —
онлайн- і офлайн-версії, мобільні та веб-додатки, платні й без
коштовні, орієнтовані на індивідуальну та колективну роботу,
навчальну та бізнесову діяльність. Переважна їх більшість має
інтуїтивно зрозумілий інтерфейс (приклад).
Найчастіше проектом керує одна людина, якщо проект
досить простий. Але зазвичай керування проектами (Project
management) передбачає колективну роботу.
Рис. 3. Популярні онлайн-
інструменти
Віртуальні цифрові помічники
можуть розпізнавати природ-
ну людську мову в усній формі,
і завдяки цьому вмінню та во-
лодінню елементами штучного
інтелекту допомагають людям
з інвалідністю: особам із обме-
женими фізичними можливо
стями та вадами зору.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
143. 2.3. Професії... 143
Для організації мережевих проектів із великою кількістю
завдань та багатьма особами, залученими до участі в них,
буває необхідно використовувати спеціальні вебінструменти
для керування проектами. Такі сервіси створюють можливість
зберігати інформацію про проекти в Інтернеті, спільно керува
ти проектами, розподіляти рівні доступу та відповідальність,
планувати завдання і призначати тих, хто їх виконуватиме,
із подальшим відстеженням ходу виконання.
Casual — наочний інструмент від українських розробників
для керування проектами (http://www.casual.pm). Цей стар
тап реалізує досить цікавий підхід: він дає змогу намалювати
Приклад.
Розглянемо роботу органайзерів на прикладі вебзастосунка Google Календар (https://www.
google.com/calendar/) (рис. 4–6).
Рис. 4. Вибір подіі в Google Календар
Рис. 5. Налаштування параметрів події
Рис. 6. Відображення події в Google Календар
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
144. Розділ 2144
списки завдань за допомогою візуальних схем. Програма орі
єнтована на фахівців, яким важливо відстежувати виконання
другорядних завдань.
Щоб спланувати етапи складних дослідницьких завдань,
часто використовують нескінченні віртуальні дошки. На них
можна працювати з будьяким візуальним контентом (прикрі
плювати картинки, малювати схеми й графіки, створювати
колажі й ін.) індивідуально або з командою.
Наведемо приклад таких сервісів (рис. 7).
• Twiddla (http://www.twiddla.com) — онлайндошка для
сучасного класу, інструмент для співпраці в реально
му часі. Простий у користуванні: немає плагінів або
завантажень, розширених розкладів. Єдина вимога —
комп’ютер із доступом до Інтернету та нескладний
браузер.
• SpiderScribe (http://www.spiderscribe.net/) — онлайн
інструмент для створення інтелекткарт та мозкового
штурму. Він допомагає організувати ідеї, підключивши
нотатки, файли, події календаря тощо в картках вільної
форми. Надає можливість співпрацювати та обмінювати
ся інформацією онлайн.
• Lino (http://linoit.com) та RealtimeBoard (http://realtime
board.com) — віртуальні дошки для командної
роботи.
Рис. 7. Логотипи онлайн-сервісів
для віртуальних дошок
Більшість помічників можуть
програвати музику, читати
новини з кількох джерел, на-
давати інформацію про погоду,
спорт, кіно, маршрути, місце-
ві компанії. Можуть підказати,
що подивитися по телевізору,
взаємодіяти з пристроями «ро-
зумного дому», кількість яких
із року в рік зростає.
Запитання для перевірки знань
1 Наведіть приклади нових професій у медици-
ні й освіті, пов’язаних із використанням ІТ.
2 Які основні вимоги висуваються в сучасному
світі до майбутніх фахівців незалежно від об-
раної професії?
3 Які інструменти використовуються під час
планування колективної роботи?
4 Що означає VDA? Які найвідоміші VDA ви мо-
жете назвати?
5 Знайдіть відомості в Інтернеті та проведіть
порівняльний аналіз найпопулярніших тайм-
трекерів.
6 Чи користуєтеся ви онлайн-органайзерами?
Якщо так, то якими?
2.4. Системи електронного врядування
Пригадайте, що таке електронний документообіг. Які
переваги його використання?
Наразі ми говоримо про інформаційне суспільство як ха
рактерну ознаку XXI ст. Саме в такому суспільстві актив
но розвиваються інформаційні й комунікаційні технології,
створюються умови для ефективного використання знань для
розв’язування актуальних питань сьогодення. Одне з них —
недостатньо ефективна діяльність системи органів державно
го управління й органів місцевого самоврядування, потреба
в її якісному оновленні.
Упровадження системи елек-
тронного врядування покликане
вдосконалити взаємодію влади
та громадян та сприяти соціаль-
ним інноваціям e країні.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
145. 2.4. Системи... 145
Електронне врядування — форма організації дер-
жавного управління, з використанням інформаційно-
телекомунікаційних технологій для формування ново-
го типу держави, орієнтованої на задоволення потреб
громадян, яка сприяє підвищенню ефективності, від-
критості та прозорості діяльності органів державної
влади та органів місцевого самоврядування.
Основними завданнями електронного врядування є:
•• забезпечення прав громадян на доступ до всіх видів від
критої державної інформації;
•• залучення громадян до участі в державних справах;
•• удосконалення технології державного управління;
•• подолання інформаційної нерівності.
Функціонування систем електронного врядування здійсню
ється на основі певних принципів. Це єдиноразова реєстрація
документів, паралельне виконання різних операцій із метою
скорочення руху документів, безперервність руху документів,
розвинута система контролю та звітності органів державної
влади.
Електронне врядування не замінює традиційний уряд
і не є його аналогом.
Електронне врядування створюється для реалізації таких
основних функцій:
•• забезпечення доступності й підвищення якості надання
громадянам державних послуг, спрощення цих процедур
і скорочення бюджетних витрат;
•• надійний контроль за діяльністю державних органів ви
конавчої влади і підвищення якості управлінських та
адміністративних процесів;
•• відкритість інформації про діяльність органів влади,
участь громадян і громадських організацій у підготовці
й експертизі відповідних рішень;
•• реєстрація суб’єктів підприємницької діяльності, прав
власності, видача дозволів на проведення мітингів, за
ймання окремими видами підприємницької діяльності,
сертифікатів, акредитацій, атестацій тощо;
•• призначення пенсій, субсидій та інших прав осіб.
Електронне врядування створює умови для відкритого та
прозорого державного управління. Відбувається активна взає
модія органів місцевого самоврядування і державної влади
між собою, а також із кожним е-громадянином і суспільством
загалом (рис. 1, с. 146).
Електронне врядування в Україні перебуває на стадії ста
новлення та розвитку. Подальший розвиток можливий за умо
ви застосування перспективних технологій, наприклад, блок
чейн, яка дійсно може якісно оптимізувати безліч процесів.
Електронне врядування визна-
чає спосіб взаємодії громадян
та юридичних осіб із органами
державної влади засобами ін-
формаційних технологій із ме-
тою підвищення ефективності
надання державних послуг. Це
єдина міжвідомча автоматизо-
вана інформаційна взаємодія
органів державної влади та міс-
цевого самоврядування з гро-
мадянами та підприємствами.
За останні два роки Україна
піднялася на 25 позицій у сві-
товому рейтингу е-урядування,
на 45 позицій та на 30 позицій —
у рейтингах відкритих даних.
У вересні 2017 року уряд
України ухвалив головний
е-документ країни — Концеп-
цію розвитку електронного
врядування до 2020 року, який
визначає головні цілі, пріори-
тетні напрямки та заходи циф-
рової трансформації.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
146. Розділ 2146
Блокчейн — це розподілена база даних, у якій зберігається
інформація про кожну транзакцію, зроблену в системі. Дані
зберігаються у вигляді ланцюжка блоків (звідси й назва —
blockchain) із записами про транзакції. Їх неможливо підро
бити, оскільки кожен новий запис здійснює підтвердження
вже наявних ланцюжків. Інформація про записи в системі
зберігається в усіх її учасників і автоматично оновлюється під
час унесення змін. Переваги блокчейна — розгалуженість і
прозорість транзакцій.
Один із головних блокчейнекспертів у світі Дон Тапскотт
(Канада) на форумі в Давосі в 2018 році презентував світову
блокчейнкарту з 14 країнами — лідерами з упровадження
цієї технології. Україна — в їх числі.
Згідно з кращими практиками ЄС в Україні найближчим
часом має запрацювати сервіс мобільної ідентифікації грома
дян MobileID та автоматичний обмін даними між реєстрами.
На рис. 2 наведено приклади Всеукраїнських державних пор
талів надання епослуг.
Україна ввійшла в 14 світових
блокчейн-лідерів. На техноло-
гію блойкчейн в Україні переве-
дено Державну систему елек-
тронних торгів арештованим
майном (СЕТАМ), у процесі пе-
реведення — Реєстр майнових
прав та Державний земельний
кадастр України.
Рис. 2. Всеукраїнські державні портали адміністративних е-послуг
Çàсоáè отðèмàннÿ інôоðмàöі¿ Працівники виконавчих
органів влади
База
даних
Громадяни
Підприємці Телефонний зв’язок
Інтернет
Мобільний зв’язок (SMS)
Особисте звернення
Електронна пошта
Поштовий зв’язок
Факсимільний зв’язок
Портал виконавчого органу влади
Автоматизована
системауправління
справами
Ñàéт інтеðнетÑàéт інтеðнет
Ñàéт інтеðнетÑàéт інтеðнет
Рис. 1. Схема роботи е-уряду
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
147. 2.4. Системи... 147
Нині існують різні види електронного врядування
(еурядування) (рис. 3).
Держава
Суспільство Бізнес
G2C, уряд —
громадянам
G2В, уряд — бізнесу
Електронна
комерція
G2G, уряд — уряду
Інформаційне
суспільство
Електронний уряд G2E, уряд — службовцям
Рис. 3. Простір електронної взаємодії
• Уряд — громадянам (G2C, government to citizens). Цей
вид скорочує для громадян час очікування в чергах за
довідками та формами, їх фінансові витрати, а також
бюджетні витрати на ці процедури.
• Уряд — службовцям (G2E, government to
employees). Автоматизуються процеси спів
праці урядової системи з чиновниками,
службовцями та консультантами на місцях.
• Уряд — бізнесу (government to business).
Автоматизуються процеси податкових ви
плат, проведення електронних тендерів на
постачання продукції, послуг, виконання
проектних робіт тощо.
• Уряд — уряду (government to government).
Автоматизуються процеси документообігу
між відомствами, діловодства, координу
ється робота територіальних підрозділів.
Сучасні державні сайти містять сторінку
еурядування, які надають можливість налашту
вання для людей із вадами зору (рис. 4, 5).
В основі ідеї е-урядування ле-
жить теорія нового держав-
ного менеджменту (англ. new
public management), головними
ідеологами якої були М. Тетчер
і Р. Рейган. Найбільшого прак-
тичного відображення ідея на-
була в адміністративних рефор-
мах 1980–1990-х років у США,
Великій Британії, Канаді, Австра-
лії, Новій Зеландії.
Рис. 4. Сайт уряду США
а б
Рис. 5. Сайт уряду Естонії: а — звичайний сайт; б — сайт із налаштуванням для людей із вадами зору
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
148. Розділ 2148
Запитання для перевірки знань
1 Що називають системою електронного вряду-
вання?
2 Що таке технологія блокчейн? Назвіть її
переваги.
3 Які існують види системи електронного вря-
дування?
4 Які функції виконує система електронного
врядування?
5 На основі яких принципів створюється систе-
ма електронного врядування?
6 Поясніть порядок функціонування системи
електронного врядування.
2.5. Поняття про штучний інтелект
Чи доводилося Вам користуватися перекладачем Googlе?
Які технології використано в програмах-перекладачах?
Переглядаючи відео на YouTube, здійснюючи покупку на
Amazon, звертаючись до Google Assistante, ми часто навіть не за
мислюємося, що в цих випадках задіяно штучний інтелект.
Штучний інтелект (англ. Artificial Intelligence) — наука
(розділ математичної лінгвістики та комп’ютерних наук)
і набір технологій, які дають змогу комп’ютеру викону-
вати різні функції, притаманні людині. Прикладами за-
стосування штучного інтелекту є опрацювання й відтво-
рення голосом друкованого тексту, опрацювання при-
родних мов, розпізнавання образів (комп’ютерний зір).
Історія штучного інтелекту як нового наукового напрям
ку бере початок із середини XX ст. у 1950 році англійський
учений Алан Тюрінг написав статтю «Обчислювальні маши
ни та інтелект» (англ. Computing Machinery and Intelligence).
У статті описано процедуру, за допомогою якої можна визна
чити момент, коли машина зрівняється в плані розумності з
людиною. Ця процедура отримала назву «тест Тюрінга».
Можна виділити такі основні категорії штучного інтелекту.
• Обмежений, або вузький (ANI, Artificial Narrow Intel
ligence) — спеціалізується в одній конкретній галузі.
• Загальний, або широкий (AGI, Artificial General Intel
ligence) — може виконувати ті самі завдання, що й лю
дина: обґрунтовувати, планувати, розв’язувати питання,
мислити абстрактно, порівнювати комплексні ідеї, швид
ко навчатися, використовувати накопичений досвід.
• Штучний суперінтелект (ASI, Artificial Superintelligence).
Його можливості описав шведський філософ і профе
сор Оксфордського університету Нік Бострем у книзі
«Суперінтелект: шляхи, загрози, стратегії» (2014): «Це
інтелект, який перевершує людський практично в усіх
сферах, включаючи наукові винаходи, загальні пізнання
та соціальні навички».
Тест Тюрінга — емпіричний
тест, ідею якого описано так:
«Людина взаємодіє з одним
комп’ютером і однією люди-
ною. На підставі відповідей
вона має визначити, із ким
розмовляє: з людиною чи
комп’ютерною програмою. За-
вдання комп’ютерної програ-
ми — ввести людину в оману,
змусивши зробити неправиль-
ний вибір».
Наразі людство вже досить ус-
пішно застосовує вузький штуч-
ний інтелект.
У відкритому доступі є курс
DeepLearning від Google: https:
//www.udacity.com/course/deep-
learning--ud730.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
149. 2.5. Поняття... 149
Наразі людство досить успішно застосовує
вузький штучний інтелект.
1. Google Deep Mind продемонструвала штуч
ний інтелект, який володіє «уявою» і здатний
аналізувати інформацію та планувати дії без
участі людини.
2. Механізм рекомендацій забезпечує Amazon
35 % продажів.
3. Алгоритм Brain, який використовує
YouTube для рекомендації контенту, забезпечує
перегляд 70 % відео з числа усіх, які перегля
даються на сайті.
4. Японська страхова компанія Fukoku Mutual
Life Insurance уклала контракт із IBM, в резуль
таті якого замість 34 співробітників система
IBM Watson Explorer AI буде переглядати десятки
тисяч медичних сертифікатів для визначення
умов страхування клієнтів. Це підвищить про
дуктивність на 30 % та окупиться за 2 роки.
5. Інженери Microsoft спільно з ученими
з ICRISAT застосовують штучний інтелект, щоб
визначати оптимальний час посіву агрокультур
в Індії. Застосунок, що використовує Microsoft
Cortana Intelligence Suite, також стежить за станом
ґрунту та підбирає необхідні добрива. Це дало
змогу підвищити врожайність на 30 %.
6. У китайському місті Ченду відкрився
готель Smart LYZ, у якому всі без винятку
працівники мають штучний інтелект. Роботи
зустрічають туристів, проводять реєстрацію,
допомагають заселитися в номер. Найближчим
часом планується відкрити ще 50 роботизова
них готелів. (Перший у світі готель із робота
ми з’явився в Японії в 2015 році, проте там
зберігається значна частка участі людей.)
7. Компанія IBM розробила інтелектуальну
комп’ютерну систему Watson (на базі однойме
ного суперкомп’ютера), що розуміє англійську
мову й може відповідати на широке коло пи
тань (рис. 1).
Рис. 1. Суперкомп’ютер IBM Watson
8. Усе більшої популярності набувають «ро
боти, що розмовляють». На форумі в Києві во
сени 2017 року було представлено робота IBM
Мax (рис. 2).
Рис. 2. Робот IBM Мax
9. Кілька років Когнітивна система IBM
Watson працює в медичній сфері, допомагає
ставити точний діагноз і знаходити ефективний
спосіб лікування для онкологічних пацієнтів,
ставити діагноз пацієнтам із легеневими хворо
бами, проблемами з головним мозком. У най
ближчому майбутньому розробники планують
спрямувати можливості системи на діагносту
вання глибокого тромбозу вен, кардіоміопатії,
серцевих нападів різних видів.
10. Навіть досвічений фахівець не в змозі від
слідковувати всі нові загрози у сфері кібербезпеки
(а їх кількість, за даними низки джерел, до
сягла 75 000). Потрібен цифровий помічник,
який сам би аналізував дані про уразливість,
віруси, нові програмні інструменти тощо. Watson
for Cyber Security засвоює інформацію, працює
з даними, використовуючи інформацію про
інтернетзагрози, які внесені в базу IBMX-Force
Exchange.
11. Сучасна фінансова сфера — дуже склад
ний для вивчення предмет. Банк DBS Bank ви
рішив випробувати можливості IBM Watson
для оптимізації своєї роботи. Заходи, до яких
удаються регулятори, соціальні й урядові змі
ни, флуктуації фінансових ринків — тепер усе
це враховується в роботі банку. Окрім того, для
оптимізації роботи менеджерів банку та клієн
тів використовується Watson Engagement Advisor,
консультант від IBM Watson.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
150. Розділ 2150
Запитання для перевірки знань
1 Дайте означення штучного інтелекту.
2 Наведіть кілька прикладів успішного застосу-
вання штучного інтелекту.
3 Знайдіть в Інтернеті відомості про Watson Kyiv
Summit 2017. Підготуйте повідомлення в класі.
4 Коли використовується тест Тюрінга?
5 Як розрізняються категорії штучного ін-
телекту? Яка категорія нині є найбільш
поширеною?
6 Що таке штучний суперінтелект?
12. Безпілотні автомобілі — концепт, над
яким працює більшість великих концернів,
а також технологічні компанії (Google, Uber
тощо), у якому штучний інтелект відповідає
за розпізнавання навколишніх об’єктів (авто
мобіль, пішохід або перешкода).
На рис. 3 зображено Olli, безпілотний авто
бус, який використовує технологію штучно
го інтелекту IBM Watson для допомоги людям
з інвалідністю. Рис. 3. Безпілотний автобус, створений LocalMotors
2.6. Інформаційна безпека. Керування ризиками
в інформаційних системах
Пригадайте, які шкідливі програми ви знаєте. Які способи
захисту даних вам відомі?
Кожен користувач хоче бути впевненим у тому, що дані
в його комп’ютері захищені. Але із розвитком технологій
інтернетзагроз стає все більше.
Інформаційна безпека — це стан захищеності си-
стем опрацювання й зберігання даних, за якого за-
безпечено конфіденційність, цілісність і доступність
даних.
Пригадаємо основні принципи, на яких базується інформа
ційна безпека:
• конфіденційність — можливість доступу до інформації
тільки визначеним особам;
• цілісність — забезпечення достовірності й повноти ін
формації і методів її опрацювання;
• доступність — вільний доступ до інформації авторизова
ним користувачам.
Останнім часом небезпеку ста-
новлять DDoS-атаки — комп-
лекс дій, що блокують доступ
до ресурсів Інтернету. Боротьба
з такими атаками можлива на
рівні компаній та корпорацій.
Протокол IPSec пропонує ме-
ханізм захищеного передаван-
ня даних у IP-мережах, забез-
печуючи конфіденційність, ці-
лісність та достовірність даних,
які передаються через незахи-
щені мережі типу Інтернет.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
151. 151
За масштабом загроз розрізняють три рівні інформаційної
безпеки (рис. 1). На кожному з них визначається певна су
купність заходів, які спрямовано на убезпечення інформації.
Найчастіше загрози інформаційній безпеці виникають че
рез неуважність працівників ІТ-сфери (втрата флешки, випад
кове пересилання даних іншим особам тощо); використання
неліцензійного програмного забезпечення (без супроводження
й оновлення розробником); розповсюдження вірусів та інших
шкідливих програм через електронну пошту.
Для захисту інформації здебільшого застосовуються:
•• фізичні заходи (заборона на доступ стороннім особам,
використання безконтактних карт);
•• антивірусні програми, системи фільтрування електрон
ної пошти;
•• резервне копіювання даних на інші носії інформації.
У деяких випадках застосовується шифрування даних
в електронній формі, а на рівні компаній і корпорацій —
анти-DDoS.
Основна загроза інформаційній безпеці виникає в комп’ютер
них мережах. Для передавання інформації та її убезпечення
існують мережеві протоколи різних рівнів, які зазвичай на
зивають протоколами інформаційної безпеки.
Широко відомий протокол IP не має засобів захисту даних,
які передаються, навіть не гарантує, що відправник є саме
тим, за кого себе видає.
Для убезпечення даних використовують такі технології.
IP Security (скорочено IPSec) — це комплект протоколів, що
стосуються питань шифрування, аутентифікації та забезпечен
ня захисту під час транспортування IP-пакетів.
Засоби IPSec використовують стандартні алгоритми (тобто
математичні формули) шифрування й аутентифікації, які ма
ють назву «перетворення».
Технологія IPSec і пов’язані з нею протоколи захисту (на
приклад, IKE) відповідають відкритим стандартам, які під
тримуються групою IETF (Internet Engineering Task Force — проб
лемна група проектування Internet). IPSec діє на мережевому
рівні, забезпечуючи захист і аутентифікацію пакетів IP, що
пересилаються між пристроями (сторонами) IPSec — такими,
як маршрутизатори, брандмауери, клієнти та концентратори
тощо.
IKE (Internet Key Exchange — обмін Internet-ключами) —
гібридний протокол, який забезпечує спеціальний сервіс для
IPSec: аутентифікацію сторін IPSec, вибір ключів для алгорит
мів шифрування, що використовуються в рамках IPSec.
Для надання доступу віддаленим і мобільним користувачам
розроблено технологію SSL VPN. Клієнт отримує захищений
доступ лише до тих ресурсів, які вважаються необхідними
для певних користувачів.
Технологія SSL VPN використовує протокол HTTPS, доступний
у всіх стандартних веб-браузерах як безпечний механізм до
ставки без залучення додаткового програмного забезпечення.
2.6. Інформаційна...
VPN (англ. Virtual Private
Network — віртуальна приват-
на мережа) — узагальнена на-
зва технологій, що створюють
можливість забезпечити одне
або кілька мережевих з’єднань
(віртуальну мережу) як надбу-
дову над іншою мережею (на-
приклад, Інтернет).
SSL (англ. Secure Sockets
Layer — рівень захищених со-
кетів) — криптографічний про-
токол, який забезпечує встанов-
лення безпечного з’єднання між
клієнтом і сервером.
Рис. 1. Рівні інформаційної безпеки
Рівнібезпеки
Міжнародний
Глобальний
Регіональний
Держава
Галузь
Громадськість
Регіон
Національний
Підприємство
або фірма
Домашнє
господарство
або людина
Персональний
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
152. Розділ 2152
HTTPS (від англ. Hyper Text Transfer Protocol Secure — без
печний протокол передавання гіпертексту) — розширення
протоколу HTTP, який підтримує шифрування за допомогою
криптографічного протоколу SSL.
Особливістю під’єднання SSL VPN є чітко розмежований
контроль доступу до застосунків на основі аутентифікації
користувача, мережі, з якої він під’єднується, і рівня без
пеки пристрою. Це робить SSL ідеальним інструментом для
мобільних співробітників і користувачів неконтрольованих
точок.
Застосування ІТ у бізнесі збільшує кількість можливих ри
зиків. Таким чином, розв’язання та прогнозування проблем,
пов’язаних із ІТ, стає одним із основних завдань.
Розглядаючи функціонування ІС, слід ураховувати, що їх
інформаційні ресурси та об’єкти можуть піддаватися діям, що
призводять до негативних наслідків, які спотворюють дані
й можуть призвести до руйнування ІС.
Можливість настання випадкової події в інфор
маційній системі, унаслідок якої може буде завда
но збитків, називають інформаційним ризиком.
Впливаючи на ІС, ризики призводять до збит
ків підприємства, у чому й полягає економічний
зміст поняття «інформаційний ризик». Якщо
причини інформаційного ризику породжуються
всередині підприємства, то такий ризик є внут
рішнім, поза межами підприємства — зовнішнім.
Управління інформаційними ризиками має
на меті мінімізацію суми витрат підприєм-
ства на протидію інформаційним ризикам
і сумарного збитку від цих ризиків (рис. 2).
На підставі всебічного аналізу можливих
стратегій керування інформаційними ризиками
пропонуються такі стратегії, як прийняття ри
зику, запобігання ризику, зменшення можливих
збитків від ризику, запобігання ризику та змен
шення можливого збитку від нього.
Запитання для перевірки знань
1 Що таке інформаційна безпека?
2 Назвіть рівні інформаційної безпеки.
3 Наведіть технології інформаційної безпеки.
4 Які протоколи призначені для захисту даних?
5 Що таке технологія SSL VPN?
6 Наведіть приклади інформаційних ризиків.
Виконайте тестове завдання до розділу 2
з автоматичною перевіркою результату
на сайті interactive.ranok.com.ua
Класифікація ІТ-ризиків
• Ризики, викликані діями пер-
соналу (навмисні, ненавмисні)
• Технологічні ризики (збої, від-
мова в роботі устаткування)
• Ризики, пов’язані з викори-
станням неліцензійного про-
грамного забезпечення
Рис. 2. Оцінювання ризиків
Óпðàвліннÿ
ðèçèкàмè
Планування
заходів
захисту
Впрова
дження
заходів
захисту
Визначення
ризиків
Аналіз
ризиків
Нагляд, ви
мірювання
та контроль
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
153. 3.1. Комп’ютерне... 153
3.1. Комп’ютерне моделювання об’єктів і процесів.
Електронні таблиці
Пригадайте означення понять «модель» і «моделювання».
Із поняттями «модель» і «моделювання» людина знайо-
миться в дитинстві. Під час гри діти моделюють процес на-
вчання, сімейні відносини (гра «доньки-матері»). Моделю-
вання є обов’язковим етапом наукових досліджень, оскільки
створює можливість вивчати об’єкти процеси та явища, за
поведінкою яких неможливо безпосередньо спостерігати.
Створюючи модель, зазвичай мають на меті:
• показати вигляд об’єкта, якого реально ще не існує;
• дослідити на моделі поведінку об’єкта, якщо досліджен-
ня оригіналу взагалі є неможливим, небезпечним або до-
рого коштує. Такі ситуації часто трапляються в медици-
ні, авіації, ядерній фізиці й інших галузях;
• навчитися керувати реальним об’єктом, наприклад, ав-
томобілем, літаком чи підводним човном.
Модель (від латин. modulus — зразок) — спрощений
аналог (образ) будьякого об’єкта, процесу або явища,
який використовується як замінник оригіналу, для ви
вчення його властивостей.
Досліджуваний об’єкт, стосовно якого створюється мо
дель, називають оригіналом, прототипом.
Властивості об’єкта, які відтворені в моделі, називають її
параметрами. Залежно від мети дослідження вибраних пара-
метрів для одного й того самого об’єкта, процесу або явища
можуть бути створені різні моделі. Пригадайте типи моделей,
за якими ознаками їх класифікують. Тип моделі визначаєть-
ся не тільки метою її створення, й засобами, які для цього
використовуються. Схематично процес моделювання подано
на рисунку:
Îá’ºêò Ìîäåëü Äîñë³äæåííÿ ìîäåë³
Схематичне подання процесу моделювання
Основним завданням процесу моделювання є створення мо-
делі, яка найбільше наближена до оригіналу та властивості
Розділ 3. АНАЛІЗ І ВІЗУАЛІЗАЦІЯ
ДАНИХ
Іграшковий автомобіль, плюше
вий ведмедик або лялька для
багатьох дітей є улюбленими
іграшками. Наприклад, коли
згодом дитина побачить у зо
опарку справжнього ведмедя,
то впізнає його.
Кожен об’єкт має велику кіль
кість різних властивостей.
У процесі побудови моделі ви
діляють найсуттєвіші власти
вості, які відповідають тематиці
дослідження.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
154. Розділ 3154
якої відповідають меті дослідження та перенесення результа-
тів дослідження на оригінал.
Усі моделі можна розподілити на дві великі групи: матеріа
льні моделі, у яких відтворено ті або інші геометричні, фізич-
ні характеристики оригіналу — їх досліджують у реальних
експериментах, та інформаційні моделі, що є описами об’єктів-
оригіналів за допомогою схем, графіків, формул, креслень
тощо — їх використовують в інформаційному моделюванні.
Комп’ютерне моделювання — це процес створення
інформаційних моделей комп’ютерними засобами.
До основнх переваг комп’ютерного моделювання належать:
•• можливість багаторазового повторення тих самих дій;
•• висока наочність візуалізації процесів, які виконуються
в моделі;
•• безпечність реалізації моделі;
•• висока швидкість виконання дослідження моделі;
•• отримання результатів моделювання в зручному вигляді
для аналізу.
Інформаційна модель — це модель, яка містить ін
формацію про суттєві для даного розгляду властивості
об’єкта, зв’язок між ними та призначена для досліджен
ня стану об’єкта в разі зміни його властивостей.
Прикладом програмних засобів для реалізації
комп’ютерного моделювання є системи програмування, та-
бличні процесори, математичні та графічні програмні засо-
би, системи керування базами даних, програмні засоби тощо.
Одним із найдоступніших програмних засобів для викори
стання обчислювальних і графічних можливостей комп’ютера
в моделюванні є офісний застосунок MS Excel.
Пригадайте, що в клітинку MS Excel можна ввести число-
ві дані (до них належать дата, час, дані грошового формату),
текстові дані та формули. У формулах використовують кон-
станти, посилання на клітинки та функції.
Алгоритм вставлення функцій у формулу
Крок 1 Відкрийте вікно Вставлення функцій
Крок 2
На стрічці ФОРМУЛИ вибиріть функції з потрібних груп або скористайтеся командою
Вставити функцію
Крок 3
Відкривається вікно введення аргументів функції з підказками щодо значень кожного
з них. У поле введення аргументів пропишіть вираз або посилання на клітинку
Крок 4
Якщо формула складається тільки з функції, то спочатку виділіть клітинку (надайте їй
статус активної), виберіть необхідну функцію та її параметри
Крок 5 Підтвердьте командою ОК для обчислення
Основні етапи реалізації
інформаційної моделі
на комп’ютері
І. Постановка задачі
ІІ. Розроблення інформаційної
моделі
ІІІ. Вибір програмного засобу
для реалізації моделі
IV. Безпосередня реалізація
моделі
V. Аналіз отриманих резуль
татів
VI. Прийняття відповідного
рішення
Особливості MS Excel
•• Велика кількість убудова
них функцій (математич
них, статистичних тощо, для
розв’язування задач із бага
тьох галузей)
•• Зрозумілий інтерфейс
•• Довідкова система з при
кладами використання мож
ливостей (що дозволяє легко
реалізувати попередньо роз
роблену математичну модель)
•• Можливість вибору різних
типів графіків і діаграм для
візуалізації та аналізу даних
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
155. 3.2. Розв’язування... 155
Пригадайте типи посилань у формулах MS Excel (приклад).
Посилання можна вводити вручну або перейти до аркуша
книги MS Excel з необхідними даними й вибрати клітинки
вказівником миші.
Щоб вибрати одну клітинку, її потрібно виділити й клац-
нути лівою кнопкою миші (ЛКМ), щоб вибрати кілька кліти-
нок блоку, — клацнути ЛКМ на першій клітинці, «протяж-
кою» виділити необхідний діапазон і відпустити кнопку.
Клітинки, розташовані не поруч, виділяють із викори-
станням клавіші Ctrl. Але не для всіх функцій допустимі зна-
чення не з сусідніх клітинок.
Формули в MS Excel можна копіювати в інші клітинки. Під
час копіювання формул із відносними посиланнями змінять-
ся клітинки з початковими значеннями, а з використанням
абсолютних посилань клітинки не змінюються.
Приклад.
Прикладами посилань різного
типу є: К10 — відносне; $K$10 —
абсолютне; $K10 і K$10 —
змішані посилання. Змінити
посилання дає змогу функціо-
нальна клавіша F4.
Запитання для перевірки знань
1 Із якою метою створюють моделі? Назвіть їх
призначення і наведіть приклади.
2 Яку модель називають інформаційною?
3 Скільки моделей може мати досліджуваний
об’єкт чи явище? Відповідь поясніть на при
кладах.
4 Назвіть етапи побудови інформаційної мо
делі.
5 Як використати MS Excel для реалізації моделі
рівноприскореного руху об’єкта?
6 Які моделі, на вашу думку, доцільно реалізу
вати на комп’ютері? Наведіть приклади.
3.2. Розв’язування рівнянь, систем рівнянь,
оптимізаційних задач із різних предметних галузей
засобами інформаційних технологій
Пригадайте, як вставити стандартну функцію, посилання
на клітинку в форму Excel.
Комп’ютерне моделювання ефективно використовується
для розв’язування задач будь-якої галузі. Математичні моделі
процесів, явищ реалізують за допомогою рівнянь або систем
рівнянь, і в MS Excel є засоби їх розв’язування. Розглянемо
можливості MS Excel, на прикладах.
• Розв’язування рівнянь методом Підбір параметра
Приклад 1 (стародавня задача)
Купець придбав 138 аршин чорного та чер-
воного сукна за 540 карбованців (крб). Скільки
аршин сукна одного та іншого кольорів при-
дбав купець, якщо червоне коштувало 5 крб
за аршин, а чорне — 3 крб.
Складемо математичну модель розв’язання
задачі. Нехай кількість аршинчорного сукна
x, тоді кількість червоного сукна — 138 – х.
Складемо рівняння: 3х + 5(138 – х) = 540.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
156. Розділ 3156
Звичайно, таке рівняння можна розв’язати
й усно, але на цьому прикладі розглянемо як
працює метод MS Excel Підбір параметра.
Отже, використаємось методом Підбір пара-
метра. Необхідно до задачі скласти математич-
ну модель у вигляді рівняння з одним невідо-
мим. У рівнянні вираз із невідомим — у лівій
частині, а в правій — значення цього виразу,
константа.
Метод добирає значення невідомого, поки не
буде отримано необхідне значення результату
обчислення виразу
Складемо таблицю за умовою задачі (рис. 1).
У клітинках наведено формули та результати
їх обчислення (рис. 2).
Таблиця має містити початкові значен-
ня з умови задачі та клітинку з форму-
лою, яка відповідає рівнянню математичної
моделі.
Клітинка С2 призначена для невідомого x:
видно, що в клітинці С2 кількість чорного
сукна дорівнює 1. Оскільки MS Excel не здій-
снює арифметичні операції з нечисловими
даними, то на початку замість x вставляють
будь-яке значення. Нуль вставляти не вар-
то, оскільки в рівняннях може виникнути
ділення на 0, що дасть помилку обчислень.
Із таким довільним значенням, звичайно, не
отримаємо правильну вартість усього сукна з
умови задачі (540). Але головним є те, що в
клітинці D4 вставлено формулу, результатом
обчислення якої має бути значення з умови
задачі.
Рис. 1. Формули обчислення методом
Підбір параметра
Рис. 2. Результат обчислення методом
Підбір параметра
Приклад 2.
Кредит в 1000 у. о. виданий на 5 років під
20 % річних за таких умов повернення: напри-
кінці 2 року повернути 200 у. о., наприкінці
кожного наступного — по 400 у. о. Визначити,
яку суму необхідно внести наприкінці першо-
го року, щоб кредит був погашений вчасно (до
кінця 5 року). Щороку борг із кредитування
обчислюється за формулою:
Борг = Залишок_внеску + Залишок_внеску * Річні/100
(/100 використовується для перетворення кількості відсотків у частини від 1)
Погашення кредиту означає, що борг відсутній: Борг = 0.
У моделі необхідно скласти рівняння для
обчислення боргу наприкінці кожного року за
наведеною формулою. Результат обчислення
боргу за рік залежить від значення залишку
боргу за попередній рік.
Позначимо борг наприкінці кожного року
як борг1, борг2 тощо. Отже, якщо x — повер-
нення грошей у перший рік, то:
борг1 (наприкінці першого року) = 1000 – x + 0,2 (1000 – x)
борг2 = борг1 – 200 + 0,2 (борг1 – 200)
борг3 = борг2 – 400 + 0,2 (борг2 – 200)
борг4 = борг3 – 400 + 0,2 (борг3 – 200)
борг5 = борг4 – 400 + 0,2 (борг4 – 200)
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
157. 3.2. Розв’язування... 157
• Розв’язування оптимізаційних задач
методом Пошук рішення
Метод Підбір параметра зручний для складання матема-
тичної моделі з одним невідомим. Але часто в описі моделі
є кілька невідомих. Залежно від того, якою моделлю опису-
ють розв’язання, використовують різні засоби MS Excel. Для
систем рівнянь використовують методи їх розв’язування,
а для оптимізаційних задач користуються командою
Розв’язувач.
У математичній моделі розв’язування оптимізаційних за-
дач необхідно знайти значення параметрів, від яких залежить
результат обчислення певної математичної функції (у MS Excel
ця функція подається формулою). Шуканий результат може
бути максимальним (наприклад, прибуток організації), міні-
мальним (витрати на сировину) або дорівнювати певному зна-
ченню (потужність електричної мережі).
У таких випадках говорять про оптимізацію результату,
задача належить до оптимізаційних задач, функція назива-
ється цільовою, а параметри — оптимізаційними.
Щоб розв’язок і значення параметрів були реальними, мо-
дель обов’язково містить обмеження або на значення пара-
метрів, або на допоміжні величини, які залежать від оптимі-
заційних параметрів. Обмеження на дані завжди задаються
в умові, задачі (приклад 3).
Оскільки кредит необхідно сплатити за 5
років, то борг5 = 0 (наприкінці п'ятого року
необхідно з боргом5 вийти в 0), тобто рівняння
матиме такий вигляд:
борг4 – 400 + 0,2 (борг4 – 200) = 0.
Указане рівняння є математичною модел-
лю, адже борг4 залежить від значення борг3
і, розмірковуючи так, дійдемо до 1 року, борг
якого залежить від x.
У таблиці, побудованій в MS Excel, x у моде-
лі — значення клітинки В4. На рис. 3 подано
таблицю зі значеннями після виклику методу
Підбір параметра. У цю клітинку введемо 1 —
сплачено в 1 рік, у наступні клітинки стовпця
В занесемо 200, 400 і 400, як зазначено в умові.
Для зручності залишок внеску як різницю бор-
гу та сплаченого обчислимо в стовпці С і оста-
точний борг на кінець року — у стовпці D.
Вікно Підбір параметра зі введеними поси-
ланнями та значеннями подано на рис. 4.
Підбір параметра
Установити у клітинці: D8
Значення: 0
Змінюючи значення клітинки: $B$4׀
ОК Скасувати
Рис. 3. Реалізація задачі про борг у MS Excel Рис. 4. Вікно Підбір параметра для задачі про борг
Інструмент Розв’язувач дає
змогу:
• вказувати кілька клітинок для
оптимізаційних параметрів
• вказувати обмеження на їх
значення
• знаходити розв’язок: цільова
функція описується в клітин
ці формулою, у якій обов’яз
ково є посилання на клі
тинки з оптимізаційними па
раметрами
• визначати відповідно до
умови один із варіантів ро
боти з цільовою функцією:
знаходити її максимальне,
мінімальне, конкретне зна
чення
• отримувати кілька розв’язків
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
158. Розділ 3158
Щоб реалізувати модель у MS Excel із використанням над-
будови Розв’язувач необхідно дотримуватися певних правил:
• у MS Excel обов’язково має бути діапазон клітинок для
значень оптимізаційних параметрів;
• у таблиці має бути клітинка з формулою обчислення ці-
льової функції;
• таблиця обов’язково містить клітинки зі значеннями па-
раметрів, щоб мати можливість посилатися на них.
Приклад 3.
Підприємство виготовляє вироби трьох видів:
А, B і С. Денний дохід від кожного виду одиниць
виробу становить 13, 18 і 22 у. о. Необхідно визна-
чити, за якої кількості виробів підприємство отри-
має максимальний дохід, з урахуванням того, що:
• загальний обсяг виробництва — 300 оди-
ниць виробів на день;
• підприємству потрібно виготовити 50 оди-
ниць виробу А для виконання існуючо-
го замовлення; 40 одиниць виробу В —
для виконання планового замовлення;
а оскільки збут виробів С відносно не-
великий, то їх необхідно виготовляти
не більше ніж 40 одиниць.
Складемо математичну модель. Позна-
чимо кількість виробів кожного виду че-
рез а, b, с. Складемо рівняння для цільової
функції:
дохід = 13а + 18б + 22с.
Цільова функція — дохід — залежить від
значень параметрів а, б, с і має бути спрямована
на отримання максимального значення. Оптимі-
заційними параметрами є а, b, с — їх значення
впливають на значення цільової функції.
Під час пошуку максимального значення до-
ходу необхідно врахувати обмеження на зна-
чення параметрів а, б, с:
а + b + с = 300;
a ≥ 50;
b ≥ 40;
с ≤ 40;
а, b, с — цілі додатні значення.
Приклад 3 (продовження)
Розв’яжемо задачу за допомогою надбу-
дови Розв’язувач. У стандартному наборі ко-
манд MS Excel команда запуску надбудови
Розв’язувач відсутня, її необхідно встановити
на стрічку ДАНІ. Для цього виконаємо такі
дії.
1. Перейдемо в меню ФАЙЛ — Параметри.
Виберемо Надбудови.
2. У вікні, що відкрилося, виберемо Пакет
аналізу й активуємо кнопку Перейти — від-
криється вікно Надбудови.
3. Поставимо галочку біля Розв’язувач. Під-
твердимо дії кнопкою ОК. На стрічці ДАНІ
з’явилася команда Розв’язувач. Скористаємося
математичною моделлю для створення таблиці
в середовищі MS Excel (рис. 5).
4. У клітинки С2:С4 введемо значення для
виробів а, b, с, можна ввести і по 1.
5. Після запуску команди Розв’язувач відкриє-
ться вікно Параметри розв’язувача (рис. 6, с. 169),
у якому:
1) у поле Встановіть цільову клітинку введемо
клітинку D5 з підрахунком загального доходу
і вкажемо, що функція прямує до максимуму;
2) у поле Змінні клітинки введемо клітинки
С2:С4 (клітинки містять невідомі).
Рис. 5. Таблиця MS Excel для моделі задачі
про виробництво
6. Для введення в поле Обмеження скориста-
ємося кнопкою Додати, щоб увести обмеження
на значення невідомих — обмеження вводять
у вікні Додати обмеження (рис. 7, с. 159).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
159. 3.2. Розв’язування... 159
Параметри розв'язувача
Оптимізувати цільову функцію:
До: Максимум Мінімум Значення:
$D$5׀
Змінюючи клітинки змінних:
$C$2:$C$4
Підлягає обмеженням:
$C$2 = 50
$C$2:$C$4 = ціле
$C$3 = 40
$C$4 = 40
$C$5 = 300
Зробити необмежені змінні не від'ємними
Виберіть метод
розв'язання:
За методом зведеного градієнта
0
Додати
Змінити
Видалити
Скинути
Завантажити/зберегти
Параметри
Довідка Розв'язати Закрити
Метод розв'язання
Для розв'язання гладких нелінійних задач виберіть розв'язувач нелінійних задач за
методом зведенного градієнта. Для розв'язання лінійних завдань виберіть розв'язувач за
симплекс-медодом, для негладких завдань виберіть розвинений розв'язувач.
Рис. 6. Вікно Параметри розв’язувача
Додати обмеження
ДодатиОК
Посилання на клітинку: Обмеження:
Скасувати
=
Рис. 7. Вигляд вікна додавання обмежень
для Розв’язувача
Рис. 8. Таблиця з результатом розв’язвання задачі
про виробництво
Запитання для перевірки знань
1 Для чого використовують метод Підбір па
раметра в MS Excel?
2 Які задачі належать до оптимізаційних? Наве
діть приклади.
3 Для чого використовують надбудову Розв’я
зувач у MS Excel?
4 Як установити Розв’язувач на стрічку?
5 Якою має бути математична модель для вико
ристання методу Підбір параметра в MS Excel?
6 Які правила побудови таблиці на основі ма
тематичної моделі для використання методу
Розв’язувач у MS Excel?
7. Підтвердимо дії — кнопкою Розв'язати у вікні Розв’язувач. У вікні, що відкрилося, за-
лишаємо активною команду Зберегти знайдений розв’язок; клацнемо кнопку ОК.
Дані таблиці будуть змінені (рис. 8):
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
160. Розділ 3160
Завдання для самостійного виконання
1 Відкрийте MS Excel і заповніть діапазон А1:D4
за зразком (див. рис. 4). Зробіть активною
клітинку D4.
2 Запустіть метод Підбір параметра. Для цього:
1) перейдіть до стрічки ДАНІ;
2) перейдіть до групи Робота з даними;
3) зверніться до списку Аналіз «якщо»;
4) виберіть команду Підбір параметра —
відкриється однойменне вікно (рис. 8).
3 У вікні Підбір параметра в полі Встановити
в клітинці показано D4, оскільки ця клітин
ка була активною перед викликом метода.
Якщо була активною інша клітинка, вказують
клітинку з формулою моделі.
4 У поле Значення введіть значення з умови
задачі — 540.
5 У поле Змінюючи значення клітинки вве
діть або клацніть клітинку С2, яка у матема
тичному рівнянні відповідає за x.
6 Підтвердіть кнопкою ОК і подивіться на дані
таблиці.
Підбір параметра
Установити у клітинці:
Значення:
Змінюючи значення клітинки:
ОК Скасувати
D4
540
$C$2׀
Рис. 8. Вікно Підбір параметра
Приклад 1.
Група людей подорожує до іншої країни. У туроператора створено таблицю для перерахунку
вартості подорожі в різній валюті (рис. 1).
А В C D E F G
1 Значення курсу Вартість на 1 особу, у. о. Вартість на 1 особу, грн
2 Тур групи Подорож1 Подорож2 Подорож3 Подорож1 Подорож2 Подорож3
3 Група 1
4 Група 2
5 Група 3
6 Група 4
Рис. 1. Таблиця перерахунку вартості подорожі
Діапазон В3:D6 містить числові значення —
вартість подорожі одного туриста чи однієї ту-
ристки в умовних одиницях. Необхідно пере-
рахувати вказану вартість на гривні, результат
занести в діапазон Е3:G6. У клітинці А1 вказано
курс валюти на поточний час. У клітинку Е3
можна вставити формулу множення = В3*$А$1,
скопіювати її і вставити в діапазон Е3:G6.
3.3. Матричні операції. Розв’язування систем
лінійних рівнянь
Пригадайте, що таке масив значень.
MS Excel завдяки своїм можливостям дозволяє розв’язувати
задачі різними методами, використовуючи комбінації різних
функцій. У прикладі, можна також використати множення
масиву на число.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
161. 3.3. Матричні... 161
Масивом у MS Excel є прямокутний діапазон значень.
Операції з масивами здійснюються функціями в групі
Математичні стрічки ФОРМУЛИ.
Здійснюючи операції із масивами, у формулах необхідно
вказувати посилання на діапазони клітинок масивів та ариф-
метичні знаки або функції. Після введення формули опра-
цювання масивів слід натиснути сполучення клавіш Ctrl +
Shift + Enter, щоб відбулося заповнення вихідного діапазону,
який теж є масивом значень. У масиві після використання
формул не можна видаляти елементи.
Повернемося до його прикладу 1. Тут масивом буде діа-
пазон вартості в умовних одиницях. Кожен елемент масиву
необхідно помножити на курс валюти, у результаті теж отри-
маємо масив — прямокутний діапазон клітинок із результа-
тами обчислень: скористаємося операцією множення значення
на масив = Е3:G6 * $А$1 і підтвердимо операцію з масивом кла-
вішами Ctrl + Shift + Enter.
Операцією транспонування є заміна орієнтації початкового
масиву з вертикальної на горизонтальну і навпаки.
Наприклад, масив із 3 стовпців і 6 рядків після операції
буде мати 6 стовпців і 3 рядки зі значеннями початкового
масиву: перший рядок масиву стає першим стовпцем нового
масиву, другий рядок масиву стає другим стовпцем нового
масиву тощо. А горизонтальний одновимірний масив стане
вертикальним. Це дуже корисна функція, оскільки в деяких
інших функціях опрацювання одновимірних масивів вказано,
що масив має бути вертикальним.
У MS Excel функція транспонування записується так:
TRANSPOSE(масив) (ТРАНСП(масив)).
Для множення масивів користуються функцією
MMULT(масив; масив) (МУМНОЖ(масив; масив)).
Щодо доцільності використання масивів розглянемо
приклад 2 (приклад 2).
Операції з масивами:
• додавання (віднімання, мно
ження або ділення) значень
масиву на число
• додавання (віднімання, мно
ження або ділення) значень
одного масиву на значення
іншого
• транспонування масиву;
• знаходження визначника ма
сиву
• знаходження оберненого виз
начника масиву тощо
Приклад 2.
Для шкільних змагань із волейболу го-
туються три команди: команда дівчат і дві
команди хлопців. Школі необхідно закупи-
ти м’ячі для тренувань, взуття та форму для
змагань (кількість буде різною, оскільки в де-
кого залишилося взуття та форма з минулого
року). Порахуємо вартість закупок для дівчат
і хлопців.
Дані задачі одразу перенесено в таблицю
MS Excel (рис. 2, таблицю подано з результатом
обчислень).
Результатом обчислень буде сума добутків
кожного типу закупівлі на вартість одиниці.
Для підрахунку витрат на команду дівчат
у клітинку С7 можна ввести формулу:
=$B4*C4+$B5*C5+$B6*C6
Рис. 2. Таблиця підрахунку вартості закупівлі
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
162. Розділ 3162
Далі слід скопіювати та вставити формулу
в клітинку D7 і отримати вартість витрат на
команди хлопців. Для наведеної у прикладі
кількості даних уведення формули не потребує
багато часу. Але якщо кількість даних набага-
то більша, краще використати функцію підра-
хунку суми добутків елементів масивів:
SUMPRODUCT(масив; масив...) або
(СУММПРОИЗВ(масив; масив...)).
Для команди дівчат підрахунок здійснюють
за формулою:
=SUMPRODUCT($B$4:$B$6;C4:C6).
Операції з масивами часто використовують для розв’язу-
вання систем лінійних рівнянь.
Математичною моделлю розв’язування задач може бути
система лінійних рівнянь із кількома невідомими. Із курсу
математики ви знаєте кілька методів їх розв'язування.
Познайомимося з методом оберненої матриці та алгорит-
мам його використання. Кількість рівнянь у системі має бути
така сама, як і кількість невідомих. Рівняння системи пере-
творюють так, щоб у лівій частині був вираз із невідомими,
а в правій — константи. Надалі вже використовують серед-
овище MS Excel.
Алгоритм використання методу оберненої матриці для
системи лінійних рівнянь
Крок 1
Створіть таблицю з даними, які відповідають конкретній системі рівнянь.
Таблиця містить стільки стовпців, скільки є невідомих, і стовпець для констант із правої
частини. Кількість рядків відповідає кількості рівнянь. Зазвичай таблиця з коефіцієнта
ми при невідомих є матрицею. Якщо в якомусь рівнянні немає невідомого, це означає,
що його коефіцієнт дорівнює 0; у таблицю заносять 0.
Крок 2
Для знаходження оберненої матриці виділіть діапазон за розміром матриці коефіці
єнтів, викличте функцію =MINVERSE(діапазон матриці) або (=МОБР(діапазон матриці))
і підтвердіть сполученням клавіш Ctrl + Shift + Enter (працюють з матрицею, а не з
окремим значенням).
Приклад 3.
На багатьох онлайн — курсах результати
не обчислюють як середнє значення результатів
тестування впродовж слухання курсу, оскільки
кожен тест може мати свій коефіцієнт. У та-
кому випадку результатом буде сума добутків
результату кожного тесту на коефіцієнт цього
тесту. Так само обчислюються прохідні бали
у ВНЗ за результатами ЗНО й атестату.
На рис. 3 в таблиці наведено початкові дані
тестування. Якщо здійснити множення масиву
з результатами тесту на масив із коефіцієнта-
ми, отримаємо шукані значення для кожно-
го. Таке обчислення називають знаходженням
середньозваженого значення. Рис. 3. Таблиця підрахунку результатів тестування
У MS Excel запропоновано ме-
тод оберненої матриці (ана
логічний методу Крамера), ме-
тод Гауса і метод Зейделя.
Пригадаємо функцію обчислення середнього значення
кількох чисел у MS Excel і розглянемо приклад (приклад 3).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
163. 3.3. Матричні... 163
Запитання для перевірки знань
1 Що у MS Excel називають масивом?
2 Як підтверджується введення у формулу
функцій опрацювання масивів?
3 Що означає середнє рівнозважене значення
в масиві? Як його обчислити?
4 Який метод можна використати для розв’я
зування системи лінійних рівнянь у серед
овищі MS Excel?
5 Для якої системи рівнянь ввели такі дані
в таблицю MS Excel:
1 –2 1 –4
0 1 2 4
2 3 –2 2
Завдання для самостійного виконання
1 Підрахуйте результат проходження курсів ва
ших однолітків. Для цього виконайте такі дії.
1) Створіть таблицю за зразком (див. рис. 3).
2) Уведіть значення імен у стовпець А, виділіть
діапазон F3:F6.
3) Перейдіть на стрічку ФОРМУЛИ. Зверніть
ся до групи функцій Математичні. Викличте
функцію MMULT(МУМНОЖ).
4) У поле першого масиву введіть діапазон
В4:Е7; у поле другого масиву введіть діапа
зон И11:И14.
5) Підтвердьте сполученням клавіш Ctrl +
+ Shift + Enter.
2 Застосуйте описаний алгоритм для розв’я
зування системи рівнянь
2x1
+6x2
+4x3
=8,
x1
+5x2
+4x3
=8,
x1
+5x2
+7x3
=17.
1) У таблицю в діапазон А2:С4 внесіть коефіцієн
ти при невідомих: 2, 6, 4; 1, 5, 4; 1, 5, 7.
2) У діапазон D2:D4 внесіть значення кон
стант (8, 8 і 17).
3) Обчисліть визначник матриці: у клітинку D5
введіть формулу
=MDETERM(A2:C4) або (=МОПРЕД(A2:C4)).
3 Порахуйте визначник вручну й порівняйте
значення.
4) Для знаходження оберненої матриці ви
діліть діапазон А7:С9, викличте функцію
=MINVERSE(A2:C4) або (=МОБР(A2:C4)) і підтвердь
те сполученням клавіш Ctrl + Shift + Enter.
5) Для отримання розв’язку виділіть діапазон
D6:D9; вставте формулу множення матриць 0:
=MMULT(A7:C9;D2:D4) або
(=МУМНОЖ(A7:C9;D2:D4)).
6) підтвердьте сполученням клавіш CtrL + Shift +
+ Enter і отримайте результат (рис. 4). Отже,
маємо: х1
– 1; х2
= –1 і х3
= 3.
Рис. 4. Таблиця розв’язування
системи рівнянь
4 Розв’яжіть зазначену систему рівнянь вруч
ну і перевірте правильність розв’язування
в MS Excel.
Крок 3
Знайдіть розв’язок:
1) виділіть вертикальний діапазон із такою кількістю клітинок, скільки є невідомих;
2) вставте формулу множення матриць =MMULT(діапазон матриці; діапазон стовпця
з коефіцієнтами) або =МУМНОЖ(діапазон матриці; діапазон стовпця з коефіцієнтами);
3) підтвердіть сполученням клавіш Ctrl + Shift + Enter.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
164. Розділ 3164
У математичних моделях вибір
кою є часовий або просторовий
ряд статистичних даних. Якщо
досліджувалися властивості од
ного об’єкта в певні моменти
часу, то дані складають часо-
вий ряд, а якщо дані збиралися
з різних об’єктів, то вони нале
жать просторовому ряду.
Мета статистики (від лат.
status — стан справ/речей) —
виявити особливі закономір
ності. Сьогодні статистика за
стосовується практично в усіх
сферах — від моди, кулінарії,
садівництва до астрономії, еко
номіки, медицини й ін.
3.4. Основи статистичного аналізу даних.
Ряди даних. Кореляційний аналіз даних
У будь-якому експерименті досліджують властивості певної
кількості однотипних об’єктів, щоб дійти висновку щодо до-
сліджуваних властивостей усіх таких об’єктів (приклад 1).
Вибірка, або вибіркова сукупність, — частина гене
ральної (загальної) сукупності об’єктів, вибраних випад
ковим чином, яка охоплюється експериментом.
Генеральна сукупність може бути як скінченною, так
і нескінченою, а вибіркова сукупність є скінченною завжди.
Для отримання достовірної характеристики вибірки необхід-
но визначитися, які властивості досліджуються та які спосо-
би побудови вибірки використовуються.
Опрацювання даних, які є властивостями певних об’єктів,
здійснення аналізу цих даних для визначення властивостей
усієї сукупності таких об’єктів здійснюється за правилами
математичної статистики.
Математична статистика — наука про математичні
методи систематизації, опрацювання та використан
ня статистичних даних для наукових і практичних
висновків.
Для аналізування кількісних характеристик використову-
ють статистичні дослідження, кожне з яких складається, по-
перше, із отримання кількісних даних і, по друге, зі статис-
тичнго опрацювання даних.
Сукупність даних, які дають кількісну характеристику
властивостей досліджуванних об'єктів, процесів або явищ,
називають статичними даними, або рядом даних.
Розглянемо, які характеристики вибірки опрацьовуються
в статистичному аналізі.
•• Обсяг вибірки — кількість елементів у вибірці.
•• Розмах вибірки — різниця між максимальним і міні-
мальним значеннями елементів вибірки.
•• Середнє арифметичне — частка від ділення суми усіх зна-
чень елементів вибірки на обсяг вибірки.
•• Мода ряду чисел — значення, яке найчастіше повторю-
ється в ряді даних. Якщо дані у вибірці не повторюють-
ся, мода не обчислюється. Якщо в ряді даних є числа,
які трапляються однакову кількість разів, мода матиме
кілька значень.
•• Медіана впорядкованого ряду чисел із непарним числом
членів — число, яке виявиться посередині.
Медіана впорядкованого ряду чисел із парним числом
членів — середнє арифметичне двох чисел, записаних
Приклад 1.
Для дослідження впливу певного
препарату на рухові можливості
птахів випадковим чином добира
ють групу птахів. Ця група є вибір
кою з генеральної сукупності —
кількості всіх птахів цього виду чи
взагалі всіх птахів світу залежно
від характеристик дослідження.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
165. 3.4. Основи... 165
посередині. Отже, половина значень вибірки менші за
медіану, а половина — більші.
• Частота — число повторень значень вибірки в заданих
інтервалах. Якщо інтервалом є вибірка, то частотою
є повторення кожного значення у вибірці.
• Відносна частота — це відношення частоти до загальної
кількості даних у вибірці.
• Стандартне відхилення (середньоквадратичне відхилен-
ня, СКВ) — показник розсіювання статистичних даних
відносно середнього значення вибірки.
Розглянемо кожну характеристику на прикладі 2.
Для обчислення стандартного відхилення (СКВ) використову-
ють формулу
СКВ =
,
де СА — середнє арифметичне елементів вибірки;
хі
— і-тий елемент вибірки;
n — обсяг вибірки.
Приклад 2.
Розглянемо зріст учнів паралелі класів
на прикладі довільно вибраних 10 хлопців.
Дані занесемо в таблицю й упорядкуємо за
зростанням.
Обсяг вибірки: 10 (вимірювали зріст 10 осіб).
Розмах вибірки 14; максимальне значення
182, мінімальне 168, різниця: 182 – 168 = 14.
Середнє арифметичне значення ряду чисел: 174.
Мода: 172, оскільки 172 трапляється часті-
ше за інші значення — тричі.
Медіана: 173; у нашому прикладі 10 еле-
ментів — число парне, в упорядкованому на-
борі цих елементів посередині (тобто 5-й і 6-й
елементи мають значення 172 і 174 відповідно).
Середнім арифметичним чисел є 173, бо (174 +
174) : 2 = 173. Якби досліджували зріст 9 осіб,
посередині був би 5-й елемент зі значенням
172 — медіана мала б саме таке значення.
Для обчислення частоти та відносної частоти
додамо додаткові стовпці в таблицю, введемо
дані. Міркуємо так: зріст 168 см має 1 учень,
отже, частота повторень значення 168 дорів-
нює одиниці і т. д.
Відносна частота подана часткою від ділен-
ня частоти на 100 % (її часто подають у відсо-
тковому вигляді):
№ з/п Учень Зріст, см Частота Відносна частота
1 Учень 1 168 1 0,1
2 Учень 2 169 1 0,1
3 Учень 3 172 3 0,3
4 Учень 4 172 3 0,3
5 Учень 5 172 3 0,3
6 Учень 6 174 1 0,1
7 Учень 7 175 1 0,1
8 Учень 8 178 2 0,3
9 Учень 9 178 2 0,3
10 Учень 10 182 1 0,1
Якщо кількість елементів у ви
бірці перевищує 30, то знамен
ник дробу під коренем набуває
значення n1 (у деяких джере
лах зазначено, що до 30 необ
хідно ділити на n1, в інших ви
падках — на n).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
166. Розділ 3166
Як бачимо, СКВ є коренем із суми квадратів різниць між
елементами вибірки хi
і середнім арифметичним (СА), поділе-
ним на кількість елементів у вибірці n.
Алгоритм обчислення СКВ
Крок 1 Обчисліть середнє арифметичне вибірки.
Крок 2 Відніміть середнє арифметичне від кожного елемента вибірки.
Крок 3 Усі отримані різниці піднесіть до квадрата.
Крок 4 Підсумуйте всі отримані квадрати.
Крок 5 Поділіть отриману суму на кількість елементів вибірки.
Крок 6 Обчисліть квадратний корінь із отримані суми.
Поміркуємо, навіщо обчислювати СКВ, якщо є середнє
арифметичне. Розглянемо приклад 3.
Зазвичай для обчислень як статистичного відхилення, так
і інших статистичних характеристик користуються програм-
ними засобами, наприклад MS Excel (приклад 4).
Приклад 3.
Порівняємо дві невеликі вибірки. Продажі
певного товару за тиждень в одному магазині
такі: 31, 33, 32, 36, 32, 31, а в другому — 22,
34, 56, 52, 10, 21. Обома магазинами володіє
одна особа, і вона хоче проаналізувати діяль-
ність менеджерів магазинів. Середні продажі
першого магазину 32,5, другого — теж 32,5.
Отже, середнє арифметичне в нашому ви-
падку однакове. А якщо порахувати статис-
тичне відхилення, то для першого магазину
воно буде приблизно 2, а для другого — 19.
Який магазин працює стабільніше? Перший.
А для працівників другого магазину вини-
кає завдання стабілізувати роботу з продажів.
Отже, СКВ вказує на розбіжність між даними
вибірки і середнім арифметичним: що ближче
значення СКВ до 0, то менше розбіжність даних
у вибірці.
Приклад 4.
В Україні за результатами складання
ЗНО з певного предмета (знайдіть дані пор
випускників!) потрібно рахувати кількість
значень, які потрапляють у зазначені ін-
тервали (1–3; 4–5; 7–9 і 10–12 — знайомі
вам оцінки). Для цього зручно використа-
ти функцію FREQUENCY(ЧАСТОТА) в MS Excel.
Як правильно створити таблицю, як у се-
редовищі MS Excel опрацювати набори да-
них, як візуально проаналізувати отрима-
ні результати, — обговоримо в наступних
параграфах.
У вже розглянутих прикладах ми аналізували статистич-
ні характеристики для параметрів одного типу. Але є області
статистичного дослідження, у яких аналізують вплив зміни
одного параметра на зміну іншого.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
167. 3.5. Обчислення... 167
Кореляційний аналіз, або кореляція (від латин.
correlatio — співвідношення, взаємозв’язок) — стати
стичний взаємозв’язок двох або більше показників.
Кореляція використовується для визначення, чи є між
показниками в одній або двох вибірках зв’язок, і для ана-
лізу, чи можна за величиною одного показника передбачити
можливе значення іншого. Наприклад, необхідно встановити
зв’язок між ціною техніки і тривалістю експлуатації, збіль-
шенням зросту і вагою дітей тощо.
Основним у кореляційному аналізі є коефіцієнт кореля-
ції, який може розраховуватися різними методами залежно
від класу задач. Діапазон його значень від –1 до 1.
Розрізняють додатну кореляцію: коли зміна значення одно-
го показника підвищує значення іншого і, навпаки, від'ємну
кореляцію : зменшує значення іншого показника.
При значенні коефіцієнта 0 лінійної залежності між ви-
бірками не існує.
Зазвичай коефіцієнт кореляції позначається r.
Для візуалізації в кореляцій
ному аналізі користуються ко
реляційним полем — пря
мокутною системою коорди
нат, яка має дві осі: по одній
відстежуються значення одно
го показника, по другій — ін
шого; на перетині — позначки.
За розташуванням позначок у
полі визначають взаємозв’язок
між показниками.
Запитання для перевірки знань
1 Що вивчає статистика?
2 Що таке вибірка даних?
3 Назвіть і дайте означення статистичним ха
рактеристикам.
4 Як ви розумієте поняття кореляції?
5 Наведіть приклади доцільності кореляційно
го аналізу.
6 Чому обсяг вибірки завжди є скінченною
величиною, а обсяг генеральної сукупності
може бути нескінченним?
3.5. Обчислення основних статистичних
характеристик вибірки засобами
табличного процесора
Пригадайте можливості табличного процесора. Наведіть
приклади використання автоматизованого опрацювання
табличних даних.
Розглянемо, як використовувати програмний засіб MS Excel
для обчислення статистичних даних на прикладі 1.
Приклад 1.
Проаналізуємо температурний режим за 15
днів липня. Побудуємо таблицю за зразком
(стовпці А і Б у табл. 1).
Для обчислення статистичних харак-
теристик скористаємося функціями та-
бличного процесора MS Excel. У табл. 1, 2
проілюстровано статистичне опрацювання тем-
пературних даних: у клітинках табл. 1 показа-
но формули обчислень; у клітинках табл. 2 —
результати.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
168. Розділ 3168
Таблиця 1. Формули розрахунку статистичних характеристик
A В С D Е
1 Липень
2 День Темп., oС Мода Частота Відн. частота
3 1 24 =MODE.MOLT(B3:B17) =FREQUENCY(B3:B17;B3:B17) =D3/$D$20
4 2 24 =MODE.MOLT(B3:B17) =FREQUENCY(B3:B17;B3:B17) =D4/$D$20
5 3 23 =MODE.MOLT(B3:B17) =FREQUENCY(B3:B17;B3:B17) =D5/$D$20
6 4 27 =MODE.MOLT(B3:B17) =FREQUENCYB3:B17;B3:B17) =D6/$D$20
7 5 30 =MODE.MOLT(B3:B17) =FREQUENCY(B3:B17;B3:B17) =D7/$D$20
8 6 30 =FREQUENCY(B3:B17;B3:B17) 0
9 7 26 =FREQUENCY(B3:B17;B3:B17) =D9/$D$20
10 8 30 =FREQUENCY(B3:B17;B3:B17) 0
11 9 26 =FREQUENCY(B3:B17;B3:B17) 0
12 10 18 =FREQUENCY(B3:B17;B3:B17) =D12/$D$20
13 11 25 =FREQUENCY(B3:B17;B3:B17) =D13/$D$20
14 12 27 =FREQUENCY(B3:B17;B3:B17) 0
15 13 25 =FREQUENCY(B3:B17;B3:B17) 0
16 14 21 =FREQUENCY(B3:B17;B3:B17) =D16/$D$20
17 15 26 =FREQUENCY(B3:B17;B3:B17) 0
18
19
20 Обсяг 15
21 СА =AVERAGE(B3:B17)
22 Мін =МАХ(B3:B17)
23 Макс =MIN(B3:B17)
24 Розмах =D23D22
25 Медіана =MEDIAN(B3:B17)
Таблиця 2. Результати розрахунку статистичних характеристик
A В С D Е
1 Липень
2 День Темп. Мода Частота Відн. частота
3 1 24 30 2 0,13
4 2 24 26 0 0
5 3 23 #Н/Д 1 0,07
6 4 27 #Н/Д 2 0,13
7 5 30 #Н/Д 3 0,20
8 6 30 0 0,00
9 7 26 3 0,20
10 8 30 0 0
11 9 26 0 0
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
169. 1693.5. Обчислення...
Оскільки найбільш поширені функції винесено окремо на
стрічках Формули та Основне, останньою краще скористатись
для обчислення значень функцій середнього арифметичного,
максимуму та мінімуму (рис. 1).
Розглянемо, як використовувати функції статистичного
аналізу в MS Excel.
Група Статистична міститься в групі Інші функції (рис. 2). Для
обчислення моди призначено дві функції: MODE.MULT(масив)
або МОДА.НСК(масив) і MODE.SNGL(масив) або МОДА.ОДН(масив).
Аргументами є масив даних, для якого й обчислюється
мода.
Функція MODE.SNGL(масив) повертає одне значення. Її ви-
користовують для ряду значень, у яких групи з однаковими
значеннями не повторюються.
Формули
Фінансова Логічна Текстова Дата та
час
Посилання
та масиви
Математична Інші
функції
Диспетчер
імен
Статистична
Інженерна
Бібліотека функцій
Розмітка сторінки Дані Рецензування Подання Розробник Надбудови
Визначити ім'я
Створити з виділенного
Використовувати у формулі
AVEDEV
Рис. 2. Група статистичних функцій на стрічці ФОРМУЛИ
Функція MODE.MULT(аргументи) або (МОДА.НСК(аргументи)) —
гнучкіша. Її використовують, по-перше, для вертикального
ряду значень, а по-друге, як функцію масиву. Тобто опра-
цьовується ряд чисел — масив чисельних значень. Повертає
функція не одне значення, а кілька — теж масив чисел.
Продовження табл. 2
A В С D Е
12 10 18 1 0,07
13 11 25 2 0,13
14 12 27 0 0
15 13 25 0 0
16 14 21 1 0,07
17 15 26 0 0
18 0
19
20 Обсяг 15
21 СА 25,5
22 Мін 18
23 Макс 30
24 Розмах 12
25 Медіана 26
Автосума
Сума
Середнє
Кількість
Максимум
Мінімум
Інші функції...
Рис. 1. Меню основних функцій
MS Excel
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
170. Розділ 3170
Отже, для вставлення формули з функцією виділяють слід
одразу кілька клітинок (ми не знаємо скільки, тому краще
зарезервувати більше), після зазначення аргументу функ-
ції — діапазону клітинок із числами, натискають сполучення
клавіш Cтrl + Shift + Enter.
Якщо масив не містить однакових даних, функція
MODE.MULT(масив) або (МОДА.НСК(масив)) повертає значення по-
милки #Н/Д. Якщо дані введено в рядок (див. приклад 1),
В3:Р3 — отримаємо горизонтальний ряд даних; наприклад
якою застосовуємо функцію транспонування, отримаємо вер-
тикальний — загальний вигляд обчислення моди буде такий:
{=MODE.MULT(TRANSPOSE(масив))} або
({=МОДА.НСК(ТРАНСП(масив))}).
Тут фігурні дужки для формули вказують на опрацювання
масиву даних і проставляються автоматично, якщо скориста-
тися сполученням клавіш Cтrl + Shift + Enter.
Для обчислення медіани потрібно викликати однойменну
функцію і як аргументи вставити ряд даних (у нашому при-
кладі В2:В16).
Для підрахунку частоти слід скористися однойменною функці-
єю FREQUENCY(аргументи) (ЧАСТОТА(аргументи)), аргументами якої є
ряд даних та інтервали, у яких і рахують повторення значень.
Алгоритм підрахунку частоти
Крок 1
Заповніть діапазон клітинок значеннями інтерва
лів
Крок 2
Виділіть порожній діапазон клітинок за розміром
на одну клітинку більший, ніж діапазон інтервалів
Крок 3 Викличте функцію FREQUENCY(ЧАСТОТА)
Крок 4
У поле Масив даних уведіть імена діапазону клі
тинок із числами — початковими даними
Крок 5
У полі Масив інтервалів зазначте діапазон кліти
нок з інтервалами
Крок 6
Підтвердіть дії сполученням клавіш Ctrl + Shift
+ Enter
Функція поверне число значень, які потрапляють у задані
інтервали (приклад 2).
У разі порівняння результатів обчислень двох функцій
функція FREQUENCY(ЧАСТОТА) повертає кількість повторень для
значення, яке першим трапляється в ряді. Для інших таких
самих значень повертається 0, а функція COUNTIF(СЧЁТЕСЛИ)
повторює обчислюваний результат для всіх даних. У нашому
випадку це не впливає на статистичні характеристики. Але
під час обчислення відносної частоти у відсотках загальну
кількість отримаємо 100 %.
Якщо рахувати число повторень через COUNTIF(СЧЕТЕСЛИ)
і результат взяти за основу підрахунку відносної частоти, то
під час перевірки отримаємо число, більше від 100 %.
Приклад 2.
Нехай є ряд чисел — вік осіб для
деякого дослідження. Необхідно по
рахувати, скільки є осіб, молодших
за 14 років скільки віком від 14 до
17 років, від 17 до 22, старших від
22 років. Початковими даними буде
діапазон із віком, а в клітинках ін
тервалів — значення 14, 17, 22.
Отже, для отримання результату
потрібно мати чотири клітинки:
1 — для числа осіб, молодших за
14, або яким 14;
2 — для числа осіб віком від 14
до 17 включно;
3 — для числа осіб віком від 17 до
22 включно;
4 — для числа осіб, старших від 22.
Як видно з таблиці 2 у при
кладу 1 температура 26 o
С і
30 o
С повторюється найчасті
ше — по тричі. Функція MODE.
SNGL(МОДА.ОДН) поверне ре
зультат 30, оскільки саме така
температура трапиться вперше
в запропонованому ряді зна
чень. Але якщо ряд значень
впорядкувати за зростанням,
то отримаємо результат 26.
У прикладі 1 для функції обчис
лення моди виділили 5 кліти-
нок — знайдено 2 найбільші
групи зі значеннями, які по
вторюються, тому в клітин
ках будуть значення 30 і 26,
а в решті — #Н/Д.
Для таких обчислень користу
валися функцією COUNTIF(СЧЁ
ТЕСЛИ) — функція опрацьовує
як числові дані, так і текстові
(для них користуються виключ
но COUNTIF(СЧЕТЕСЛИ)). Функ
ція FREQUENCY(ЧАСТОТА) вико
ристовується для опрацювання
цілих і дійсних чисел.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
171. 171
MS Excel містить кілька функцій для обчислення стан-
дартного відхилення. Функції STDEVA(СТАНДОТКЛОНА) і
STDEVA(СТАНДОТКЛОНПА) відрізняються значенням середнього:
у першій функції використовується середнє вибірки, а в дру-
гій — середнє генеральної сукупності.
У наших прикладах не вказуються значення генераль-
ної сукупності, вони одні й ті самі для вибірки й для ге-
неральної сукупності. Обидві функції повернуть однаковий
результат.
Алгоритм обчислення СКВ
Крок 1 Виділіть клітинку для результату.
Крок 2 Викличте функцію STDEVA(СТАНДОТКЛОНА).
Крок 3
У вікні, що відкриється, вставте діапазон значень
температури В2:В16.
Крок 4 Підтвердьте кнопкою ОК
Запитання для перевірки знань
1 Які групи функцій містять функції обчислен
ня статистичних характеристик?
2 Якою комбінацією клавіш користуються для
підтвердження опрацювання даних масиву?
3 Назвіть функції для обчислення моди.
4 Чому для обчислення моди резервують біль
ше однієї клітинки?
5 Як ви розумієте «інтервал значень» як аргу
мент функції FREQUENCY(ЧАСТОТА). Поясніть
на прикладі.
6 Яке призначення статистичної характерис
тики відносної частоти? У якому форматі
краще аналізувати вказану характеристику:
у відсотковому чи ні?
3.6. Візуалізація рядів і трендів даних. Інфографіка
Як краще проаналізувати результати контрольної роботи:
порівнювати оцінки учнів у списку чи побудувати стовпчикову
діаграму? Які типи діаграм у MS Excel ви знаєте?
Дослідження завжди супроводжуються візуалізацією даних.
У наукових експериментах і статистичному аналізі графіки
й діаграми не лише наглядно відображають значення, мають
змістове навантаження щодо теми дослідження.
Інфографіка (від латин. informatio — інформування,
роз’яснення, і грец. γραφικός — письмовий) — це ві
зуальне відображення інформації, статистичних даних
для простої і наочної демонстрації тенденцій, співвід
ношень, а також зацікавлення в предметі дослідження.
3.5. Обчислення...
Завдяки візуалізації відразу вид
но загальну картину результатів
дослідження, велику кількість
даних на обмеженому проміж
ку; акцентується увага на дея
ких елементах ряду даних; по
рівнюються фрагменти даних,
демонструється тенденція змі
ни досліджуваних властивостей
тощо.
Функції, як аргументи, можуть
набувати і числових значень,
і логічних; інші функції MS Excel
для обчислення СКВ працюють із
числовими значеннями.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
172. 172 Розділ 3
Для змістового навантаження графіка чи діаграми важли-
во правильно вибрати їх тип. Розглянемо різні типи діаграм
на прикладах.
• Гістограми
Гістограми використовують для наочного подання дина-
міки зміни даних у часі або розподілу даних. Вони мають
форму прямокутників (областей), розмір яких відповідає зна-
ченням, отриманим в результаті статистичного дослідження.
Гістограми можуть бути як вертикальними (стовпчасті діа-
грами), так і горизонтальними.
Приклад 1.
Рис. 1. Жозеф Мінар. Карта руху і повернення з походу військ Наполеона
В історії інфографіки є кілька відомих
робіт, створених у XIX ст. Одна з них —
карта походу військ Наполеона француза
Жозефа Мінара (рис. 1; джерело: https://
pikabu.ru/story/pokhod_napoleona_v_rossiyu_
naglyadno_4192832). На реальну географічну
карту (простір Париж — Москва) нанесено
лінії, що позначають поля відомих битв. Тов-
щина лінії визначає кількість військ (1 мм —
1 тис. воїнів), колір — напрямок руху: чер-
воний — на Москву, чорний — повернення
у Францію.
Поміркуємо, яке інформаційне наванта-
ження має наведена карта: це карта руху
французького війська; результат битв у пев-
них точках країн; аналіз військового похо-
ду Наполеона; також можна дійти висновку
щодо зміни чисельності населення Франції.
У 1854 році Джон Сноу наніс на
карту Лондона точки захворю-
вання на холеру, навів статис-
тику смертей у різних будинках,
позначив міські джерела води.
Так було виявлено колодязь,
що був джерелом інфекції.
Приклад 2.
За даними, наведеними в прикладі 2, с. 165, побудовано вертикальні гістограми, а на
рис. 3 зросту учнів за абсолютним значенням (рис. 2) та за відносною частотою (рис. 3). За
другою діаграмою можна легко дійти висновку, якого зросту є більшість учнів.
Рис. 2. Гістограма аналізу
зросту учнів
185
учень
10
180
175
170
165
160
учень
9
учень
8
учень
7
учень
6
учень
5
учень
4
учень
3
учень
2
учень
1
Рис. 3. Гасторгама статистики зросту
учнів за інтервалами
20 % 20 %
50 %
10 %
до 170 170–175 175–180 більше
180
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
173. 173
• Кругові діаграми
Кругові діаграми використовують для унаочнення співвід-
ношення між частинами вибірки. Їх доцільно застосовувати
для аналізу розподілу цілої величини (що приймається за
100 %) на частину. Наприклад, зручно розділити піцу між
друзями.
На рис. 5 за даними, наведеними в прикладі 2 (с. 165), по-
будовано кругову діаграму аналізу зросту учнів за відносною
частотою.
Приклад 3.
Якщо у таблицю MS Excel ввести оцін-
ки, які учні класу отримали за практичну
роботу з інформатики, то за допомогою
функції FREQUENCY (ЧАСТОТА) можна по-
рахувати кількість учнів, які отримали
високий бал (інтервал 10–12), аналогіч-
но — інші бали. Гістограма матиме чотири
стовпці, висота яких відповідатиме кількос-
ті оцінок, які потрапляють у той чи інший
інтервал.
3.6. Візуалізація рядів
Рис. 5. Діаграма аналізу зросту учнів
10 %
20 %
20 %
50 %
до 170
170-175
175-180
быльше 180
Приклад 4.
Рис. 4. Гістограма статистичного аналізу результатів ЗНО в місті Києві
Щороку Український центр оцінюван-
ня якості освіти оприлюднює статистичний
аналіз результатів ЗНО. На рис. 4 подано го-
ризонтальну гістограму аналізу складання
ЗНО з української мови учнями міста Києва
(джерело: https://zno2017.monitoring.in.ua/).
Результати відображено по районах, по місту
вцілому. Кожна смуга відповідає результаті
певного району та міста; кольором позначено
інтервали балів.
Статистичні дані за районами міста Києва
[180; 200] [160; 180) [140; 160) [120; 140) [100; 120) не подалали погіг
КИЇВ ӏ Розподіл учнів за шкалою 100-200 балів ӏ Українська мова і література
Печерський район
Дарницікий район
Шевченківський район
Голосіївський район
Подільський район
КИЇВ
Солом'янський район
Дніпровський район
Святошенський район
Оболонський район
Деснянський район
29,51 25,92 21,05 15,58 6,97 0,97
26,40 27,88 19,78 16,93 7,30 1,71
24,93 27,34 24,20 16,18 6,48 0,87
23,89 27,63 20,24 15,64 10,08 2,52
23,34 29,48 24,45 13,14 8,60 0,98
22,91 27,06 22,53 16,81 9,07 1,62
22,70 28,63 21,85 16,71 9,02 1,09
22,32 27,32 21,06 16,27 10,83 2,20
20,54 26,67 24,97 17,07 9,12 1,63
18,92 27,19 24,61 18,92 9,22 1,15
17,59 23,55 24,11 19,50 12,55 2,71
0 25 50 75 100
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
174. 174 Розділ 3
Для наочного аналізу рядів даних зручно користу-
ватися точковою або пелюстковою діаграмою. На рис.
6 показано два типи діаграм для температурних ре-
жимів липня і серпня.
Особливою популярністю в дослідженнях корис-
туються точкові діаграми та їх різновид — буль-
башкова діаграма. Розмір бульбашки вказує на зна-
чення, а її розташування — на певний ряд дослі-
джень (рис. 7).
Рис. 7. Діаграма ВВП країн Африки
10
Нігерія
10
1 500000
Єгипет
ПАР
Алжир
Марокко
Ангола
Судан
Ефіопія
Гвінея
Бісау
Гамбія
2
3
4
5
6
7
8
9
400000
300000
200000
100000
-100000
0
0 1 2 3 4 5 6 7 8 9
ВВП у млрд $
ВВП млрд $
• Комбіновані діаграми
Ми розглянули деякі діаграми, у яких для порівняння ви-
користовували кілька рядів даних. Тип діаграми для цих ря-
дів вибрано однаковий. У MS Excel є можливість створювати
комбіновані діаграми, у яких для зображення різних рядів
даних використовуються різні типи діаграм (рис. 9).
Прикладом для доцільності використання комбінованих
діаграм може бути аналіз підсумкової контрольної з певно-
го навчального предмета порівняно з середньою успішністю
учнів: для оцінок за контрольну вибирають тип діаграми —
гістограма, а для середнього бала за семестр — графік. Зна-
чення горизонтальної осі ідентифікують учнів, а значеннями
вертикальної осі — значення оцінок від 1 до 12.
Липень
Рис. 9. Приклад комбінованої діаграми
Серпень
0
5
10
15
20
25
30
35Приклад 5.
На рис. 9 пока-
зано комбіновану
діаграму двох ря-
дів температурних
даних за липень і
серпень.
Рис. 6. Приклади діаграм: а — пелюсткової;
б — точкової.
б
а
0
10
20
30
4015
14
13
12
11
10
9 8
7
6
5
4
3
2
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0
30
35
20
10
25
15
5
Липень
Серпень
Рис. 8. Візуалізація кореляції
температур двох місяців
Якщо в точковій діаграмі для
осі x узяти значення темпера-
тури липня, а для осі у — тем-
пературу серпня, то отримає-
мо діаграму для кореляційного
аналізу. Із діаграми на рис. 8
видно збіг зміни значень.
Липень
Серпень
Температура
10
0
100
20
30
40
4020 30
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
175. 175
• Лінія тренду в Excel
Лінія тренду — це графічне подання загальної закономірнос-
ті зміни ряду даних. Лінія тренду є графіком, який описує-
ться математичними формулами та до значень якого набли-
жаються значення діаграми. Лінію тренду додають на гісто-
грами, діаграми з областями, лінійчаті діаграми, графіки або
точкові діаграми.
За значеннями діаграм не завжди зручно прогнозува-
ти динаміку їх зміни, а лінія тренду дає змогу це зробити.
Для точнішого прогнозу треба правильно вибрати тип лінії
трендуу.
Для значень ряду даних, які різко підвищуються або зни-
жуються, або можуть потім стабілізуватися, використовують
не зазначені, а інші типи лінії тренду.
Для значень швидкості автомобіля, який почав рухатися
(показники швидкості для рівноприскореного руху), підійде
степенева лінія тренду.
Показники кількості популяції деяких тварин у замкнено-
му просторі наближаються до логарифмічного графіка — ко-
ристуються логарифмічною лінією тренду (кількість спочатку
зростає, потім стабілізується).
Якщо швидкість зміни даних безупинно підвищується —
користуються експоненціальною лінією тренду (наприклад:
показники радіоактивного Вуглецю-14 залежно від віку орга-
нічного об’єкта).
Під час коливання значень даних застосовують змінне се-
реднє (наприклад, коливання курсу валют — на найближчі
дні неможливо здійснити прогноз).
Точність вибору типу лінії тренду описується спеціальним
показником — числом від 0 до 1, яке відображає ступінь від-
повідності очікуваних значень лінії тренду фактичним даним
(а математично: ступінь апроксимації). Кращим вважають
показник, наближений до значення 1. Якщо цей показник
має невелике значення (менше за 0,5–0,7), краще застосувати
інший тип лінії тренду, поки не буде знайдено найбільше на-
ближений тип.
Говорячи мовою математики, лі-
нія тренду є апроксимацією
(апроксимація — наближення)
значень діаграми до графіка,
який описується математични-
ми формулами.
3.6. Візуалізація рядів
Є такі типи лінії тренду: ліній-
на, поліноміальна, логарифмічна,
степенева, експонентна, змінне
середнє.
Приклад 6.
На рис. 10 на гістограмі показано оцінки учня чи
учениці з одного зі шкільних предметів (стовпці си-
нього кольору). Лінія тренду, подана червоним пунк-
тиром, вказує на зростання рівня знань учнів.
У прикладі скористалися лінійною лінією тренду,
бо саме цей тип найкраще описує простий лінійний
набір даних і застосовується у випадках, коли точки
даних розташовані близько до прямої.
Рис. 10. Приклад використання лінійної
лінії тренду
оцінка1
12
оцінка2
оцінка3
оцінка4
оцінка5
оцінка6
оцінка7
оцінка8
оцінка9
оцінка10
10
8
6
4
2
0
Рис. 11. Вікно Формат лінії тренду.
До алгоритму на с. 176
Формат лінії тренду
Параметри лінії тренду
Параметри лінії тренду
Експонентна
Лінійна
Логарифмічна
Степенева
Назва лінії тренду
Автоматична
Настроюванна
Лінійна (площа)
Прогноз
Уперед
Назад
(періоди)
(періоди)
Змінне середнє Період 2
Поліоміальна Степінь 2
0,0
0,0
0,0Установити перетин
Показувати рівняння на діаграмі
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
176. 176 Розділ 3
Розглянемо алгоритм додавання лінії тренду до будь-якого
ряду даних на діаграмі чи графіку.
Крок 1 Виділіть потрібний ряд даних.
Крок 2 Викличте контекстне меню та виберіть команду Додати лінію тренду.
Крок 3
У вікні Формат лінії тренду (рис. 11) виберіть тип лінії тренду та формат її
зображення; за бажанням поставте галочку для запуску команди розрахун-
ку величини достовірності апроксимації R^2.
Команда додавання лінії тренду є також у меню Діагра-
ма — меню розташоване поруч із правим верхнім кутом діа-
грами під знаком «+».
Запитання для перевірки знань
1 Для чого використовують інфографіку?
2 Поясніть, у яких випадках зручно для ряду
даних створити гістограму, а в яких — круго-
ву діаграму. Наведіть приклади.
3 Як ви розумієте поняття лінії тренду?
4 На що вказує лінія тренду?
5 Як додати на діаграму лінію тренду?
6 За яким параметром визначають відповід-
ність лінії тренду значенням діаграми?
Завдання для самостійного виконання
1 Знайдіть у підручнику з географії інтернеті
та порівняйте чисельність населення країн
або регіонів, площі, приросту населення
тощо. Побудуйте діаграму порівняння даних.
2 Заповніть діапазон А1:Е7 даними таблиці
(рис. 12).
3 Додайте стовпець для обчислення щільності
населення за формулою
= Населення/Площа.
(цей стовпець потрібен для візуалізації да-
них таблиці, оскільки різниця в даних щодо
населення в 100 разів, а щодо щільності —
не така велика).
4 Побудуйте діаграму для різних регіонів:
1) виділіть діапазон Е2:Е7;
2) перейдіть до побудови точкового графіка
й виберіть його вигляд Об’ємна бульбашко-
ва діаграма;
3) налаштуйте параметри діаграми рис. 13.
5 Самостійно додайте до діаграми новий
ряд — щільність населення. Рис. 13. Налаштування бульбашкової діаграми
Рис. 12. Опрацювання завдання з географії у MS Excel
Редагування ряду
Ім'я ряду:
='площа' =площа
Значення ряду Х:
=Аркуш1!$В$2:$В$7
Значення ряду Y:
=Аркуш1!Е2:Е7
=Аркуш1!$Е$2:$Е$7
Розмір бульбашки ряду:
= Азія;африка;...
= 31,033131;29;...
= 31,033131;29;...
ОК Скасувати
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
177. 1773.7. Розв’язування задач
3.7. Розв’язування задач із різних
предметних галузей. Табличний процесор
як засіб для фінансових розрахунків
Пригадайте, як можна розв’язати рівняння графічно. Як по-
будувати графік у MS Excel? Як викликати контекстне меню
діаграми?
Розглянемо можливості MS Excel для розв’язування задач із
різних галузей. Пригадайте з уроків математики, як графічно
розв’язати систему рівнянь.
• Графічне розв’язування системи рівнянь
Приклад 1.
Розглянемо систему двох лінійних рівнянь:
наприклад, 3x + 2y = 5;
2x – y = 8.
Якщо побудуємо графік кожного рівняння,
то на їх перетині отримаємо розв’язок (рис. 1).
Перетворимо рівняння у вигляд, зручний
для побудови графіків: y = (5 – 3x) : 2; y = 2x – 8
і виконаємо такі дії.
1. У стовпець А вводимо значення аргумен-
тів функцій (x).
2. У стовпцях В і С обчислюємо значення
кожної функції відповідно.
3. Виділяємо діапазон зі значеннями у-ків.
4. Переходимо до стрічки ВСТАВЛЕННЯ, до
групи Діаграми.
5. Вибираємо тип діаграми — Точкова.
6. Для правильної та зрозумілої побудо-
ви графіка переходимо до контекстного меню
діаграми.
7. Вибираємо команду Вибрати дані й у вік-
ні, що відкриється, виділяємо ряд і для нього
вибираємо команду Редагувати.
8. Заповнюємо поля для кожного ряду за
зразком (рис. 2).
Як бачимо, графіки на рис. 1 перетинаються
у точці (3; –2). Отже, розв’язком є x = 3; y = –2.
Якщо виділити діаграму, з’являється мож-
ливість перейти до додаткової стрічки ЗНАРЯДДЯ
ДЛЯ ДІАГРАМ — Конструктор. Першою групою
команд є Додати елемент діаграми. Якщо на ді-
аграмі не вистачає ліній сітки, користуються
саме цією групою. Також можна налаштувати
вигляд діаграм за запропонованими зразками.
Рис. 1. Приклад графічного розв’язання системи лінійних рівнянь Рис. 2. Вікно редагування ряду даних
діаграми
Редагування ряду
Ім'я ряду:
3x+2y=5
Значення ряду Х:
=Аркуш1!$А$2:$А$12
Значення ряду Y:
ОК Скасувати
=Аркуш1!$В$2:$В$12
= 3x+2y=5
= -5; -4; -3; -2...
= 10; 8,5; 7; 5...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
178. 178 Розділ 3
• Розв’язування фінансових задач засобами MS Excel
Функцї для розв’язування фінансових задач передбачено
в усіх пакетах для фінансових розрахунків. Ознайомимося
з ними на прикладі засобів MS Excel.
Щоб використовувати фінансові функції у MS Excel для роз-
рахунків величин, познайомимося з відповідного терміноло-
гією (у дужках термінологія MS Excel).
• Відсоткова ставка (RATE (Ставка)) — відносна величина
доходу за фіксований інтервал часу, вимірюється як у
відсотках, так і числом, може нараховуватися як добова,
місячна, річна тощо.
Нарахування відсоткової ставки здійснюється по-різнму,
тому розрізняють прості й складні відсотки.
• Під простим відсотком розуміють прибуток, який на-
раховується тільки на початкову суму за кожен певний
проміжок часу (приклад 2).
• Складний відсоток — складна форма нарахування відсот-
ків за вкладом.
• Прибуток нараховується на суму разом із нарахованими
відсотками, яка в цей момент наявна на рахунку. Тобто
після закінчення кожного періоду сума, на яку нарахову-
ється прибуток, відсотково збільшується.
Повернемося до прикладу 2: у перший рік відсотки
будуть нараховуватися з 5000 грн і прибуток складе
1000 грн. У наступному році відсоток вже нараховува-
тиметься з 6000 грн (5000 + 1000) і так щороку, поки
вкладник не припинить дію депозиту.
• Період нарахування — інтервал часу для відсоткової
ставки (може бути день, місяць або рік).
• Кількість періодів (NPTR (КПер)) визначає загальну кіль-
кість періодів виплат кредиту, кожен тривалістю добу,
місяць, рік тощо.
• Періодична виплата (PMT (Плт)) — платіж, який випла-
чує кожного періоду (це від’ємне число) або сума, яку
отримує клієнт кожного періоду (це додатне число).
Приклад 1
Змінемо друге рівняння в си-
стемі на 2x2
– y = 8 та самостійно
знайдіть розв’язання графічно.
Перевіремо правильність розв'я-
зання за рис. 3. Поміркуємо, чому
ми отримали два розв’язки.
Рис. 3. Приклад графічного розв’язання системи рівнянь
Хід міркувань під час
фінансових розрахунків
• У разі кредитування в банку
виникають такі питання: скіль-
ки років необхідно поверта-
ти кредит; скільки грошових
одиниць виплачено за корис-
тування кредитом; яку суму
можна взяти в кредит, щоб
повернути її за визначений
термін
• У разі внесення вкладу в банк
виникають такі питання: якою
буде сума через визначений
час; на який час слід вкласти
гроші для отримання певної
суми; який вклад необхідно
зробити для отримання певної
суми через визначений термін
Приклад 2.
Власник кладе в банк депозит
у розмірі 5000 грн, ставка 20%
річних. Простий відсоток приноси-
тиме прибуток у розмірі 1000 грн
щороку, незалежно від того, яка
сума накопичилася на рахунку за
цей час і незалежно від того, чи
залишає власник відсотки в банку,
чи регулярно їх знімає.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
179. 179
• Капіталізація відсотків — приєднання нарахованих
відсотків до основної суми; нарощення — збільшен-
ня початкової суми у зв’язку з капіталізацією (складні
відсотки).
Для розрахунків величин раніше у групі фінансових функ-
цій MS Excel є такі функції:
Назва функції (англ.) Назва функції (рос.) Пояснення Аргументи функції
RATE СТАВКА Відсоткова ставка за один період кпер; плт; пс; [бс]; [тип]
VF БС Майбутня вартість інвестицій ставка; кпер; плт; [пс]; [тип]
NPER КПер Кількість періодів ставка; плт; пс; [бс]; [тип]
PV ПС
Вартість інвестиції на поточний
момент (початковий внесок)
ставка; кпер; плт; [бс]; [тип]
PMT Плт Величина виплати за один період ставка; кпер; пс; [бс]; тип]
Як бачимо, усі величини взаємопов’язані, кожна розрахо-
вується через значення величин з умови. Але повинна справ-
джуватися рівність:
PMT * NPERF + PV + VF = 0
або Плт * КПер + ПС + БС = 0.
Якщо якийсь аргумент можна не вказувати, то в таблиці
він міститься у квадратних дужках. Тип у деяких функціях
має значення 0 або 1, визначає час виплати: 0 (або якщо зна-
чення не вказано) — кінці періоду, 1 — на початку.
Запитання для перевірки знань
1 Як використати можливості MS Excel для
розв’язування рівняння графічним способом?
2 Як у MS Excel обчислити кількість і вартість
шпалер для обклеювання кімнати розмірами
4×6,5×2,7 м? Ширина рулонів 55 см, довжи-
на — 10 м.
3 Яка різниця між простими та складними
відсотками?
4 Назвіть параметри фінансових розрахунків.
5 Наведіть приклад фінансової задачі, у якій ви-
користовують складний відсоток.
6 Що б ви порадили особі, яка з нового року
відкрила депозит і не знає, коли додавати
гроші: на початку чи наприкінці року?
Відсотки нараховують щорічно. Як би ви аргу-
ментували свою відповідь?
Завдання для самостійного виконання
Для ознайомлення з наведеними прикладами
перейдіть у MS Excel, заповніть таблиці по-
чатковими даними умови та скористайтеся
фінансовими функціями для розв’язування за-
дач. У кожному прикладі наведено підказки.
1 Для прикладу з розрахунком, яка сума
виявиться на рахунку через три роки,
якщо кожен рік роблять внесок на рахунок
10 000 грн і банк дає 10 % річних (раз на
рік), функція VF (БС) матиме такий вигляд:
VF(0,1;3;-10000;;1) для внесків
на початку року, результат 36 410
VF(0,1;3;-10000;;0) для внесків
наприкінці року, результат 33 744.
• Якщо внесли 10 000 грн і щороку до-
дають по 500 грн, функція матиме такий
вигляд:
VF(0,1;3;–500;–10000;;0)
або VF(0,1;3;–500;–10000;;1).
• Якщо банк нараховує відсотки раз на
квартал, то перший аргумент функції (став-
ка) буде 0,1/4 (0,1 — це 10 % річних, а ді-
лимо на 4, оскільки квартал — четверта
частина року).
3.7. Розв’язування задач
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
180. 180 Розділ 3
3.8. Електронна таблиця як засіб подання відомостей
про однотипні об’єкти. Операції з однотабличною
базою даних
Які типи функцій у MS Excel ви знаєте?
Ви вже створювали в MS Excel таблиці, вносили дані й роз-
поділяли ряди даних по рядках і стовпцях таблиці на свій
розсуд. Зазвичай під час опрацювання дані, які мають багато
властивостей, вносять у таблицю як список.
Список в Excel — таблиця, оформлення якої відповідає
певним вимогам.
Ознайомимося з вимогами до списку:
• верхній рядок списку, заголовок, містить мітки (імена)
відповідних полів, а його формат (шрифт, колір фону
тощо) має відрізнятися від формату записів;
• усередині списку не повинно бути порожніх записів і по-
лів, якими список відокремлюється від іншої частини
робочого аркуша;
• не рекомендується на робочому аркуші розміщувати
будь-що, крім списку, а робочий аркуш рекомендується
іменувати назвою списку.
Списки можна сортувати і фільтрувати, до списків можна
застосовувати функції баз даних.
• Сортування списків
Сортування списку — розташування його записів у пев-
ному порядку.
Записи можна розташовувати таким чином:
• у порядку зростання (зменшення) значень числових полів;
• в алфавітному (або зворотному алфавітному) порядку зна-
чень текстових полів;
• у хронологічному порядку полів типу Дата і Час.
Можливості сортування реалізуються за допомогою кно-
пок Сортування за зростанням і Сортування за спаданням пане-
лі інструментів ОСНОВНЕ або скористатися командою меню
ДАНІ — група Сортування і фільтр — Сортування, яка дозволяє
Поле, за яким здійснюється
сортування, називають ключо-
вим полем, або ключем
сортування.
2 Визначте суму початкового внеску, який
забезпечує клієнтові щорічні виплати в
сумі 10 млн грн протягом 5 років (складні
відсотки, 20 % річних).
PV(0,20;5;–10 000 000;;0)
PV(0,20;5;–10 000 000;;1)
3 У борг беруть 300 000 грн під річну
ставку 6 %. ЗЗа рік виплачується по
34 000 грн. Скільки років триватимуть
ці виплати?
IVPer(6 %;–34 000;300 000) = 13 PV
Список складається з рядків,
які в Excel називають записа-
ми, стовпці списку — поля-
ми. Поля містять дані одного
типу.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
181. 1813.8. Електронна таблиця
сортувати список за один прийом максимум за трьома поля-
ми (первинний ключ, вторинний тощо).
У разі потреби сортування можна провести більш ніж за
трьома полями. У такому випадку список сортується послідов-
но: за первинним ключем, потім відсортовані списки в рамках
первинних ключів відсортовуються за вторинним ключем і т. д.
Сортувати можна й частину списку, попередньо її виділивши.
• Фільтрування списків
Фільтрування списку — це процес, у результаті якого для
перегляду доступні записи, які задовольняють критерії
фільтрації. Решта записів приховані.
Повернемося до прикладу 1: адміністрація району пере-
глядатиме дані про учасників олімпіади тільки свого району,
решту даних приховає, застосувавши фільтр.
У MS Еxcel команди фільтрування містяться на стрічці ДАНІ
в групі Сортування і фільтр. Командою Фільтр біля назви кожно-
го поля можна встановити розкривний список, який містить
значення цього поля. Щоб вибрати значення для перегляду,
потрібно встановити умови фільтрування шляхом скасуванням
або проставлянням прапорця біля значення.
У зазначеному списку також можна вибрати команду для
встановлення умов фільтрування. Для відфільтрованих зна-
чень можна вибрати команду сортування (рис. 1).
Розрізняють простий і розширений фільтри.
За допомогою команди Фільтр здійснюється фільтрування
тільки за умовою для одного поля. Такий фільтр називають
простим. Відфільтрований список теж можна фільтрувати.
Так створюється ієрархічне фільтрування.
Щоб зняти режим фільтрування і перегляду всього спис-
ку, слід повторно скористатися командою Фільтр або коман-
дою Очистити.
Розширений фільтр дозволяє виконувати умови фільтру-
вання практично будь-якої складності:
• створювати критерії з умовами за кількома полями
з кількома умовами;
• створювати обчислювані критерії;
• переміщувати копію отриманої внаслідок фільтрації ви-
бірки в інше місце книги MS Excel.
Приклад 1.
Для проведення ІІІ етапу олімпіади з інфор-
матики для 9–11 класів підготували список
учасників. Завдання для всіх учасників одна-
кові. Список містить поля: ПІБ, Клас, Область,
Населений пункт, Освітній заклад, Бали за кожну
задачу, Підсумковий бал.
Прізвища в списку розташовані так, як
учні розмістилися по приміщеннях. Журі впо-
рядковує список за класами, потім — за ба-
лами: від більших до менших. Одразу ви-
дно, скільки учасників від кожної паралелі й
скільки буде в них переможців (50 %). Далі в
списку додадуть поле Диплом. Адміністрація
області впорядкує список за областями, насе-
леним пунктом, щоб бачити, як виступили їх
вихованці.
Рис. 1. Приклад списку
фільтрування
Сортування від А до Я
Сортування від Я до А
Сортування за кольором
Видалити фільтр із 'Область'
Фільтрування за кольором
Текстові фільтри
(Виділити все)
Вінницька
Дніпропетровська
Донецька
Закарпатська
Запорьзька
Івано-Франківська
Київська
Кіровоградська
Львівська
Пошук
ОК Скасувати
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
182. 182 Розділ 3
Розширений фільтр можна викликати командою ДАНІ —
група Сортування і фільтр — Додатково. Відкривається вікно
введення діапазонів списку та умов фільтрування (рис. 2).
Як бачимо, умови (критерії) фільтрування потрібно розмі-
тити в діапазоні, тобто спочатку підготовити клітинки з умо-
вами фільтрування, а потім викликати розширений фільтр.
Створюючи діапазон критеріїв, необхідно пам’ятати, що:
• діапазон умов має складатися не менше ніж із двох
рядків (перший рядок — заголовки, які рекомендується
просто копіювати із заголовків стовпців списку, наступ-
ні — відповідні критерії);
• якщо умови розташовуються в одному рядку, то це озна-
чає одночасність їх виконання, тобто вважається, що
між ними поставлена логічна операція І;
• для істинності критерію, що складається з умов, розташо-
ваних у різних рядках, має виконатися хоча б один із них,
тобто вважається, що вони з’єднані логічною операцією АБО;
• інтервал критеріїв повинен розташовуватися вище або
нижче списку, або в іншому місці, або на іншому арку-
ші; критерії від списку мають відокремлюватися хоча
б одним порожним рядком, якщо його розміщено вище
або нижче списку;
• в інтервалі критеріїв не повинно бути порожніх рядків.
• Опрацювання списку за допомогою функцій MS Excel
Для аналізу списків часто використовують такі функції:
Назва функції (англ.) Назва функції (рос.) Опис
COUNTIF (інтервал; критерій)
СЧЁТЕСЛИ (інтервал; крите-
рій)
Повертає кількість значень в інтервалі, які
відповідають критеріям.
SUMIF (інтервал; критерій;
інтервал додавання)
СУММЕСЛИ (інтервал; крите-
рій; інтервал додавання)
Повертає суму значень у клітинках з інтер-
валу, які відповідають критеріям.
Оскільки список має такі самі властивості, як і таблиця
БД, то функції опрацювання даних списку містяться в групі
Приклад 2.
Повернемося до прикладу 1. По-
трібно переглянути, як виступають
учнів 10 класу з Полтавської облас-
ті та учасники зі Львівської області.
На рис. 3 показано фрагмент таблиці.
Над списком вставлено кілька рядків,
у яких продубльовано заголовки полів
і введено критерії.
У вікні розширеного списку в поле
Вихідний діапазон вводимо діапазон
розміщення даних таблиці, а в Діапа-
зон умов — С1:D3, налаштуємо пере-
гляд відфільтрованого списку.
Рис. 3. Приклад уведення умов для аналізу результатів олімпіади
Рис. 2. Вікно налаштування
розширеного фільтру
Розширений фільтр
Обробка
ОК Скасувати
Фільтрувати список на місці
скопітувати результат до іншого розташування
Вихідний діапазон:
Діапазон умов:
Діапазон для результату:
Лише унікальні записи
$А$1:$А$261
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
183. 1833.8. Електронна таблиця
База даних. Вибір групи, функції групи слід викликати через
команду Вставити функцію стрічки ФОРМУЛИ (рис. 4):
Вставлення функції
ОК Скасувати
Пошук функції:
Введіть короткий опис дії, яку бажаєте виконати, і
натисніть кнопку 'Знайти'
Знайти
Категорія: База даних
Виберіть функцію:
Довідка з цієї функції
Підраховує кількість клітинок з числамиу стовпці записів бази даних, які
відповідають указаним умовам
DCOUNT(база_даних;поле;критерій)
DAVEREGE
DCOUNT
DCOUNTA
DGET
DMAX
DMIN
DPRODUCT
Рис. 4. Вікно вставлення функцій
Завдяки критеріям функції опрацьовують тільки ті записи,
значення яких відповідають критеріям, а потім здійснюють
операції зі вказаними полями.
Найчастіше використовують такі функції:
• DAVERAGE (база_даних; поле; критерій) або (ДСРЗНАЧ)
(база_даних; поле; критерій) — повертає середнє значен-
ня полів записів БД, які задовольняють критерії.
• DCOUNT (база_даних; поле; критерій) або (БСЧЕТ) (база_
даних; поле; критерій) — повертає кількість числових
комірок у полях записів БД, які відповідають заданому
критерію.
• DMAX/DMIN (база_даних; поле; критерій) або (ДМАКС/
ДМІН) (база_даних; поле; критерій) — повертає макси-
мальне/мінімальне значення поля серед записів БД, які
задовольняють критерії.
• COUNTIF (інтервал; критерій) або (СЧЕТЕСЛИ) (інтервал;
критерій) — повертає кількість значень в інтервалі, які
відповідають критеріям.
Правила звернення до функцій
БД:
• перший аргумент задає весь
список із записом заголовку
полів, а не окремий запис;
• другим аргументом може бу-
ти заголовок поля у вигляді
текстової константи (ім’я поля)
або порядковий номер поля в
списку;
• третій аргумент задає інтер-
вал критеріїв аналогічно ін-
тервалу критеріїв розширено-
го фільтра.
Запитання для перевірки знань
1 Які таблиці в MS Excel називають списком?
2 Як у MS Excel упорядкувати дані за кількома
параметрами?
3 Що відбувається з даними списку внаслідок
фільтрування?
4 Яка різниця між простим і розширеним філь-
тром? Наведіть приклади.
5 Наведіть приклади використання функцій ба-
зи даних.
6 Чи можна опрацювати дані списку без вико-
ристання функцій бази даних?
Виконайте тестове завдання до розділу 3
з автоматичною перевіркою результату
на сайті interactive.ranok.com.ua
Функції для аналізу списків
однотабличних БД мають такі
аргументи (база_даних; поле;
критерій).
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
184. Розділ 4184
4.1. Багатосторінкові текстові документи. Налаштування
параметрів сторінок. Розділи документа
Назвіть можливості текстового процесора Word щодо
форматування символів, абзаців, сторінок.
У процесі опанування можливостей текстового процесора
Word ви вже створювали невеликі за розміром документи.
Але реферати, роботи для подання на захист науково-дослід-
ницьких робіт МАН України, курсові роботи тощо містять
велику кількість сторінок, які потребують оформлення за
певними правилами. Пригадаємо, які властивості має сторін-
ка як об’єкт текстового документа (рис. 1).
•• Налаштування параметрів сторінок
Для налаштування параметрів сторінок слід звернутися до
команд групи Параметри сторінок стрічки МАКЕТ — буде запро-
поновано готові зразки. Можна також самостійно встановити
параметри у вікні Параметри сторінки (рис. 2).
Рис. 2. Вікно Параметри сторінки
Параметри сторінки
Розділ 4. ЕЛЕКТРОННІ
ПУБЛІКАЦІЇ
Рис. 1. Сторінка документа
Під час форматування сторінки
потрібно враховувати
•• вигляд сторінки (альбом
ний або книжковий)
•• розмір сторінки
•• поля відступів між текстом
і краєм сторінки
•• наявність або відсутність
переносів тексту
•• розташування тексту в од
ній або кількох колонках
•• колонтитули (верхні, нижні)
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
185. 185
Далі розглянемо докладніше властивості сторінки та спо-
соби їх налаштування.
Поля — це відстань, на якій розташовується текст на сто-
рінці від країв сторінки: указують значення (зазвичай у сан-
тиметрах) для верхнього, нижнього, лівого та правого полів.
На рис. 3 подано типи
полів. Перед тим як зада-
ти розміри полів, слід ви-
значити, до яких сторінок
встановлюються поля: для
всіх чи тільки від поточної
до останньої (список Засто
сувати).
У готовому документі
сторінки можуть скріплю-
ватися. Щоб передбачи-
ти місце для скріплення,
слід вибрати команду Роз
ташування корінця й зазна-
чити розмір смуги корінця,
а також місце розташування
(зліва або зверху).
Орієнтація — це спосіб
розміщення сторінки. Роз-
різняють книжкову (висота
сторінки більша за її шири-
ну) й альбомну (висота сто-
рінки менша за її ширину)
орієнтацію.
Досить часто виникає по-
треба у встановленні окремої
орієнтації для деяких сто-
рінок, наприклад, для сто-
рінок, які містять таблиці,
схеми чи інші зображення.
Такі сторінки краще подава-
ти з альбомною орієнтацією.
Розмір — це висота й ширина сторінки документа. Аркуші
паперу мають стандартизацію за розмірами. За потреби ко-
ристувач може сам установити розмір аркушів для свого до-
кумента — це передбачено командою Інші розміри.
•• Розділи в документі
Якщо змінити хоча б один параметр складової документа,
визначається новий розділ (не плутайте з розділом, що є зміс-
товою частиною документа, наприклад, параграф).
Уявимо, що на певній сторінці документа текст розташо-
вано у дві колонки, а решта параметрів — однакові. Такий
документ складається з трьох розділів: розділ до тексту, роз-
ташованого в дві колонки, розділ із текстом у дві колонки
і решта тексту до кінця документа. Його можна поділити на
розділи, установши розриви розділів.
Аркуші паперу мають стандарти
зацію за розмірами: аркуш А4 є
прямокутником зі сторонами 21
і 29,7 см. Аркуш А3 удвічі біль
ший (42 × 29,7), а А5 — удвічі
менший (21 × 14,8).
Рис. 3. Вікно вибору типу полів сторінок
4.1. Багатосторінкові...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
186. Розділ 4186
Розділ — це частина документа з одним і тим самим
значенням параметрів форматування.
Розрив являє собою недрукований символ і зазначає
місце в документі, до якого буде застосовано формату
вання.
У програмі Word передбачено вилучення розриву розділу.
Якщо увімкнути режим перегляду прихованих символів, то
видно, що розрив розділу подано як пунктирну лінію з тек-
стом Розрив розділу (вид розриву).
Щоб вилучити недрукований символ, слід на початку поста-
вити тестовий вказівник і натиснути клавішу Delete.
До сторінок можна застосувати різні види розривів (рис. 4).
Рис. 4. Види розривів сторінок та розділів
Команду Наступна сторінка продубльовано командою ВСТАВ
ЛЕННЯ — Розрив сторінки, її використовують для розміщення
тексту після вказівника з нової сторінки.
Запитання для перевірки знань
1 Назвіть параметри форматування аркуша
в текстовому документі.
2 Як викликати вікно Параметри сторінок?
3 Поясніть термін «розрив сторінки».
4 Поясніть сутність динамічної типізації змінних.
5 Що таке «розділ документа» з точки зору
форматування?
6 Які види розривів розділів пропонується у Word?
Види розривів розділів
• наступна сторінка
• поточна сторінка
• парна сторінка
• непарна сторінка
Різні види розривів застосову
ються в підручниках та посіб
никах: нові тематичні розділи,
зазвичай починаються з нової
сторінки.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
187. 187
4.2. Колонтитули
Як вставити нумерацію сторінок у документ Word?
У багатосторінкових текстових документах використову-
ють колонтитули, у яких зазначають назву видання, назву
розділів, номери сторінок та ін.
Колонтитул — (від франц. сolonne — стовпець і латин.
titulus — напис, заголовок) — напис, який розміщують
у верхньому або нижньому полі кожної сторінки
документа.
Відповідно до розміщення на сторінці розрізняють верхні
та нижні колонтитули.
Розглянемо алгоритм додавання колонтитула на сторінку.
Крок 1 Викличте стрічкове меню ВСТАВЛЕННЯ
Крок 2
Виберіть команди з групи Колонтитули. Тексто
вий вказівник з’явиться в області колонтитула,
основний текст буде недоступний для роботи
з ним, з’явиться тимчасове стрічкове меню
ЗНАРЯДДЯ ДЛЯ КОЛОНТИТУЛІВ — КОНСТРУКТОР
Крок 3 Уведіть текст у потрібне поле
Крок 4
Щоб повернутися у звичайний режим, достатньо
розмістити текстовий вказівник за межами ко
лонтитула й клацнути ЛКМ або скористатися ко
мандою (червоний хрестик) на стрічці ЗНАРЯДДЯ
ДЛЯ КОЛОНТИТУЛІВ — КОНСТРУКТОР
Для додавання номера сторінки або зміни його вигля-
ду (рис. 1) слід скористатися командами вікна Формат номера
сторінки зі списку Номер сторінки стрічки ВСТАВЛЕННЯ або із
стрічки ЗНАРЯДДЯ ДЛЯ КОЛОНТИТУЛІВ — КОНСТРУКТОР, якщо ви
вже працюєте з колонтитулами.
Це вікно містить команди встановлення вигляду колонти-
тулів (числа, літери, можливість використовувати в нумерації
сторінок нумерацію розділів тощо), установлення початкових
номерів для сторінок (не обов’язково нумерувати з першої, на-
приклад, якщо розділи розташовані в різних файлах).
Для вилучення колонтитулів призначена команда Видали
ти верхній (нижній) колонтитул: необхідно перейти до області
колонтитула, вибрати список Верній (Нижній) колонтитул і за-
пустити команду Видалити верхній (Нижній) колонтитул. Номери
сторінок будуть вилучені.
Використання колонтитулів
як номерів сторінок
•• номерами сторінок не обо
в’язково числа
•• номери сторінок можна як
вставляти, так і вилучати:
— номери з кількох або усіх
сторінок документа
— номер на першій сторінці
— номер із будь-якої сторінки
Рис. 1. Вікно Формат номера
сторінки
4.2. Колонтитули
Наявність колонтитулів полег
шує пошук необхідних розділів
під час перегляду документа.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
188. Розділ 4188
Для роботи з колонтитулами передбачено команди вилу-
чення нумерації тільки із деяких сторінок.
Зазвичай на першій сторінці номер не проставляють. Щоб
колонтитул не відображався на першій сторінці, потрібно
встановити вказівник миші в область колонтитула і двічі
клацнути ЛКМ — з’явиться стрічка конструктора колонтиту-
лів. Далі слід встановити прапорець команди Інші для першої
сторінки у групі Параметри.
Розглянемо алгоритм видалення номера не на першій
сторінці.
Крок 1
Установіть перед такою сторінкою розрив розділу (не розрив сторінки!): перейдіть
до стрічки МАКЕТ, зі списку Розриви виберіть команду Наступна сторінка
Крок 2 Перейдіть до області колонтитула на потрібній сторінці і двічі клацніть ЛКМ
Крок 3
У стрічці вимкніть команду Як у попередньому з групи Навігація — використання
цієї команди порушить зв’язок між розділами
Крок 4
Зробіть активною команду Інші для першої сторінки.
В алгоритмі вилучення номерів на кількох сторінках пункти приблизно такі самі. Роз
рив розділу необхідно встановити на початку першої сторінки з тих, що не будуть
мати номери й зміниться крок 4
Крок 5
У стрічці активізуйте команду Верхній колонтитул (чи нижній — залежить, де про
ставлені номери сторінок) і зі списку, що розкриється, виберіть команду Видалити
верхній колонтитул (чи нижній) — будуть видалені номери з усіх сторінок розділу
Розглянемо алгоритм отримання колонтитулів різного
вигляду на різних сторінках.
Крок 1
На стрічці КОНСТРУКТОРА колонтитулів, коли вказівник уже в області колонтитула,
є команда Різні колонтитули для непарних і парних сторінок. Біля цієї команди про
ставте прапорець
Крок 2
Перейдіть у область колонтитула непарної, запустіть команду Верхній або Нижній колон-
титул; виберіть на свій розсуд зразок вигляду колонтитула; уведіть напис
Крок 3 Повторіть ці самі дії для парної сторінки
Крок 4
Оскільки Word пропонує різні зразки для різних сторінок, відслідковуйте, які зразки краще
вибрати. Поверніться до основного тексту документа
Якщо додавати номери сторінок у наявний колонтитул, то
колонтитули заміняться номерами сторінок. У такому випадку
процес нумерації сторінок здійснюється вставкою полів.
Нерідко різні організації мають потребу в створенні до-
кументів, які містять постійні дані та дані, які змінюються
(оновлюються) автоматично. Такі дані проставляються в по-
лях (не плутати з полями сторінки).
Поля — важливі об’єкти документа MS Word, які утри
мують змінні дані. Значення поля залежить від ключо
вих слів і параметрів.
Сторінки з нумерацією і без ма
ють належати різним розділам,
адже вони вже відрізняються
параметром номер сторінки.
Найбільш використовуваними
є такі поля, як номери сторінок,
дата, час, підписи під малюнками.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
189. 189
Поля дають змогу організувати автоматичне оновлення
даних у документі, виконувати обчислення, установлювати
зв’язки з іншими документами та об’єктами, створювати пе-
рехресні посилання.
Для вставлення поля в текст необхідно натиснути сполучен-
ня клавіш Ctrl + F9 або вибрати зі стрічки ВСТАВЛЕННЯ команду
Експрес блоки — Поле (рис. 2), відкриється вікно вибору по-
лів (рис. 3).
Рис. 2. Група Експрес блоки
Рис. 3. Вікно Поле
Коди полів відображаються всередині фігурних дужок ({}).
Поля працюють як формули в Microsoft Office Excel: код поля
відповідає формулі, а значення поля — значенням цієї
формули.
Отже, об’єкт Поле може відображатися в документі за ко-
дом (Date, Page тощо) та значенням (конкретна дата або сто-
рінка, як у наведених прикладах).
Якщо на текст поля навести вказівник і клацну-
ти ЛКМ, вмикається затінення — візуальна озна-
ка поля (під час друку документа колір тла на аркуш
не виводиться).
4.2. Колонтитули
Синтаксис поля такий:
{ ІМ’Я ПОЛЯ Властивість Ключі
(необов’язково) }
•• Ім’я поля: Практично назва
поля, яке вибирається з вік
на Поле
•• Властивість. Деякі поля ви
користовуються з обов’яз
ковим введенням додаткових
параметрів. Вони й уточнюють
властивість поля.
Текст з інформатики Page
Поле з датою
оновлюється
автоматично
Колонтитул:
Текст і номер сторінки
Дата походження тексту Date
Впишіть Ваші дані
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
190. Розділ 4190
Щоб вставити та опрацьовувати поле Дата, необхідно ви-
конати такі дії.
Крок 1
На клавіатурі натисніть сполучення клавіш Ctrl + F9 — у місці розташування вказів
ника з'являються фігурні дужки { } з текстовим указівником на затіненому просторі
Крок 2
Уведіть назву поля Date (назви полів указують
англійською мовою) — після введення
з'являється напис оновлення (рис. 4)
Крок 3
Активізуйте команду оновлення — на місці поля буде встановлено поточну дату.
Формат її регулюється операційною системою
Крок 4
Якщо вставити поле Page — сторінка, то натискання клавіші F9 (виклик команди
оновлення поля) відгукнеться номером поточної сторінки у місці поля
Рис. 4. Вставлення поля ДАТА
Команди контекстного меню для виділеного поля дозволя-
ють оновлювати поля, передивлятися їх значення або коди та
змінювати їх (рис. 5). Затінення полів регулюється команда-
ми Файл — Параметри — Додатково — Показувати вміст документа
— Вибрати команду зі списку Затіняти поля (команди: Ніколи,
Завжди, У разі виділення) (рис. 6).
Рис. 5. Контекстне меню
поля
Рис. 6. Налаштування параметрів
поля
Додатково ознайомтеся з алгоритмом додавання номерів
сторінок за допомогою коду поля сторінки.
1. Перейдіть у область колонтитула — двічі клацніть об-
ласть верхнього або нижнього колонтитула.
2. Перейдіть до команди ВСТАВЛЕННЯ Експрес блоки — Поле:
відкриється вікно Поле.
3. У списку Поля виберіть пункт Page і натисніть кнопку ОК.
Гарячі клавіші
для опрацювання полів
•• Ctrl + F9 — вставка по-
рожнього поля
•• Alt + Shift + D — вставка
поля DATE
•• Alt + Shift + T — вставка
поля TIME
•• Alt + Shift + P — вставка
поля PAGE
•• F9 — оновлення виділе-
них полів
•• Shift + F9 — перемикання
коду поля на його значен
ня й навпаки
•• Alt + F9 — перемикання
ко
дів усіх полів на їх зна
чення й навпаки
Запитання для перевірки знань
1 Що таке колонтитули?
2 Які команди опрацювання колонтитулів ви
знаєте?
3 Як прибрати номер на першій сторінці?
4 Як отримати на різних сторінках різні написи
в області колонтитулів?
5 Які типи посилань використовуються в доку
ментах Word?
6 Які типи розриву розділу пропонується у Word?
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
191. 191
4.3. Схема документа
Пригадайте визначення шаблона документа. Як створити
шаблон документа у Word? Що є ознакою кінця абзацу?
У текстовому процесорі існують різні режими перегляду
документа (рис. 1).
Режими перегляду документа містяться на стрічці Подання
в групі Подання. У режимі підготовки документа до друку до-
дається режим попереднього перегляду сторінок.
Структура документа — це схема розміщення складових
документа. Під час перегляду документа в режимі струк
тури його вміст показано у вигляді маркованого списку.
Приклад.
Перегляд у режимі структури зазвичай використовують
у процесі планування створення багатосторінкового докумен
та та роботи з ним. Особливо це важливо для документа,
у створенні якого бере участь авторський колектив. Після
того, як автори домовляться про структуру документа, має
сенс визначити частини для кожного з них. Таким чином буде
відомо, про що йде мова в попередніх розділах, на які знання
й уміння потрібно спиратися у певній частині посібника.
Щоб усі частини документа були відформатовані однаково,
доцільно перед уведенням тексту створити шаблон. Документ
із назвами тематичних розділів, із зазначенням режимів фор-
матування його об’єктів необхідно зберегти у файлі з типом
Шаблон Word (документ буде мати розширення .dotx). Таким
чином, кожен автор працюватиме зі своєю частиною доку-
мента на основі попередньо створеного шаблона, збереже свою
роботу командою Зберегти як... із зазначенням типу документа
як документ Word.
Розглянемо алгоритм створення структури.
Крок 1
Перейдіть до стрічки Подання, у групі з таким самим іменем виберіть команду Структу-
ра — зміниться вигляд документа, а в меню буде показана стрічка СТРУКТУРА (рис. 2)
Крок 2
Перейдіть у робочу зону і почніть набирати заголовки розділів, параграфів як окремі
абзаци
Крок 3
Під час уведеня назви параграфа розділу зверніться до команди Рівень у стрічці та
зменшіть його. І так із кожним заголовком — то зменшіть, то збільшіть або залишіть
на тому самому рівні. Є і другий варіант — уведіть усі заголовки, потім виберіть
кілька і перемістіть їх до іншого рівня
Крок 4
Після створення структури командами стрічки перегляньте документ (якщо він є) або
закрийте режим структури
Шаблон (від франц. еchantillon)
означає зразок. За готовим зраз
ком (шаблоном) створюють до
кументи певного виду.
режим читання
режим веб-документа
режим структури
документа
режим чернетки
режим розмітки сторінки
Рис. 1. Різні режими перегляду
документа
Режими перегляду
документа
4.3. Схема документа
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
192. Розділ 4192
У режимі розмітки сторінки видно, що текст кожного рів-
ня структури оформлено окремим стилем (рис. 2). Зазвичай
текст рівня 1 має стиль Заголовок 1, нижчого — відповідно
Заголовок 2 і т. д.
Форматування вигляду заголовків здійснюється команда-
ми групи Стилі стрічки ОСНОВНЕ.
Рис. 2. Команди стрічки СТРУКТУРА
На основі складових
структури можна автоматич-
но створити зміст докумен-
та командою ПОСИЛАННЯ →
→ Зміст вибрати зміст. На
рис. 3 показано вигляд зміс-
ту з ієрархічним поданням
заголовків різних рівнів.
Після додавання чи ви-
лучення тексту в документі
потрібно виділити зміст і за-
пустити його оновлення: оно-
вити все чи тільки номери
сторінок.
Запитання для перевірки знань
1 Що таке структура документа?
2 На основі чого створюють структуру документа?
3 Чим зміст документа відрізняється від його
структури?
4 Як в області колонтитула вказувати назву
розділу?
5 Чому команда вставлення змісту розташована
в стрічці Посилання?
Завдання для самостійного виконання
1 Відкрийте Закон України про освіту за поси
ланням:
http://zakon3.rada.gov.ua/laws/show/2145-19.
2 Перейдіть до перегляду документа в режимі
Стисло — використовуйте кнопки в право
му верхньому куті. Як виглядає документ.
3 Перейдіть до перегляду документа в режи
мі Розгорнуто — використовуйте кнопки
в правому верхньому куті. Зверніть увагу
на вигляд документа.
4 Який із двох режимів дає змогу переглянути
структуру документа?
Рис. 3. Зміст із заголовками
різних рівнів
Зміст — перелік структурних
елементів документа із зазна
ченням сторінок їх розміщення
в документі.
Заголовок — назва стилю струк
турного елемента документа.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
193. 1934.4. Використання полів...
4.4. Використання полів злиття
Проаналізуємо приклад 1. Текст (запрошення для всіх
батьків однакове) загальний, а звертання — персональне, на
ім’я та по батькові. Кожній особі оформлювати персональне
запрошення складно. Щоб автоматизувати цю працю, можна
скористатися такою можливістю текстового процесора, як ро-
бота з полями злиття.
Щоб не користуватися вікном поля і не прописувати коди
поля вручну, можна скористатися стрічкою РОЗСИЛКИ.
Злиття — процес об’єднання основного документа
з базою даних для створення серії однотипних до
кументів, зміст яких складають однакові текстові або
графічні елементи й унікальні.
У процесі злиття відбувається об’єднання файла основного
документа та файла з джерелом даних — створюється файл
розсилки.
Приклад 1.
Як надіслати всім батькам по
відомлення про святкування
та графік навчання 1 вересня?
Якщо в класі 30 учнів, то необ
хідно створити таку саму чи
більшу кількість документів із
персональним запрошенням
на свято. Документ можна
оформити як лист-запрошення
або електронний лист-повідом
лення.
Приклад 2.
На рис. 1 наведено схему процесу злиття,
а також типи документів, які можна в резуль-
таті отримати.
Як бачимо, на конвертах загальною
ознакою є зворотна адреса, унікальною —
адреса кожного отримувача. Листи, ли
стівки, запрошення, повідомлення мають
однаковий текст, але звернення до одер-
жувачів персональне. Такі документи мо-
жуть містити додатковий текст для деяких
одержувачів.
Отже, у результаті злиття отримуємо складе-
ний документ. Він містить однакові дані (тексто-
ві, графічні тощо) для всіх примірників докумен-
тів та поля підстановки, у яких буде розміщено
унікальні дані (у нашому прикладі — звернен-
ня до батьків). Його ще називають основним
документом. База даних є джерелом даних для
заповнення полів основного документа. Укаже-
мо, значення якого поля з бази даних необхідно
ввести в місце розташування поля підстановки
(тут слово «поле» має різні значення).
Рис. 1. Схематичне зображення процесу злиття
Документ
Word
База
даних
Результат злиття
Комплект конвертів
Листи, листівки, запрошення,
повідомлення
@
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
194. Розділ 4194
Наводимо алгоритм створення документа розсилки (рис. 2),
побудований на базі кроків, які пропонуються текстовим про-
цесором MS Word.
Крок 1 Визначте тип документа розсилки
Крок 2
Визначте, на основі чого буде створено основ
ний документ
Крок 3 Налаштуйте джерела даних
Крок 4 Створіть основний документ
Крок 5 Перегляньте документи розсилки
Крок 6 Завершіть злиття
У MS Word є стрічкове меню РОЗСИЛКИ, команди якого
призначено для злиття (рис. 3).
Рис. 3. Вигляд стрічкового меню РОЗСИЛКИ
Для злиття зручно
користуватися май-
стром злиття: Розпо
чати злиття — Покроко
вий майстер злиття —
рис. 4.
Результатом вибору
цієї команди є відкрит-
тя області задач Злиття
(рис. 5), у якій слід ви-
бирати команди відпо-
відного кроку. Область
містить команди пере-
міщення до наступного
кроку або повернення
до попереднього.
Звернемося знову до
прикладу 1 (розсилка
запрошень) та розгля-
немо алгоритм злит-
тя детальніше. Рис. 4. Режими початку злиттяРис. 5. Вікно області задач Злиття
Рис. 2. Приклад розсилки
однотипних документів
В документі в блоці адреси:
[ПІПб одержувача]
[Вулиця], б.[будинок], кв.[квартира]
[місто]
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
195. 1954.4. Використання полів...
Крок 1
Виберіть тип документа — наприклад, лист або електронне звернення. Особливості
роботи з різними типами файла розсилки розглянемо на наступних кроках
Крок 2
Визначте, на основі чого створити документ із загальними відомостями, поки що без
полів з унікальними даними.
•• Команду Поточний документ використовують, якщо у MS Word спочатку ство
рили файл для розсилки без унікальних значень, а потім звернулися до команд
стрічки РОЗСИЛКИ.
•• Команда Шаблон призначена для багаторазового використання текстового
документа. Якщо вибирають вказану команду, необхідно запустити команду
Вибір шаблону для відкриття файла.
•• Команда Існуючий документ призначена для використання вже збереженого
на диску текстового документа. Після активізації цієї команди пропонується,
як і в попередньому випадку, виконати команду Відкрити, щоб завантажити
у вікно Word необхідний файл
Крок 3
Виберіть джерело даних та за потреби відредагуйте його вміст, наприклад, для ство
рення листів має бути набір адресатів із зазначеними адресами.
•• Контакти Outlook використовують для створення розсилки електронних ли
стів, але Outlook має бути основною (за замовчуванням) поштовою програмою,
установленою на вашому комп’ютері. Тоді переходять до списку контактів і ви
бирають із нього необхідні.
•• Якщо файл із джерелом даних попередньо не створювали, вибирають команди
Створення списку — Створити. У вікні створення списку адрес отримувачів
файлів розсилки пропонується готовий шаблон з уведеними назвами стовп
ців. Стовпці у списку розсилки і є полями злиття. Користувач сам може додати
необхідне поле чи вилучити командою Настроїти стовпці (рис. 6). Файл збері
гають у форматі файла бази даних
Рис. 6. Створення таблиці одержувачів розсилки
Настроювання списку адрес
•• Команду Використання списку запускають, якщо вже є база даних, підготов
лена для створення розсилки. Також як джерело даних часто використовують
файли електронних таблиць. Таблиця має містити заголовки стовпців із дани
ми. Дані — поштові індекси, телефони — краще відформатувати як текст
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
196. Розділ 4196
Крок 4
•• Створіть документ розсилки. Для цього заповніть документ Word унікальними
даними. Принцип заповнення полягає у вставленні в документ полів підста
новки. У документі текстовий вказівник розміщують у місце для вставлення
унікальних даних — у місце вставлення поля підстановки, у вікні Злиття ви
бирають команди відповідно до типу документа:
•• Для конвертів — Блок адреси.
•• Для додавання електронної марки необхідно, щоб було встановлене відповід
не програмне забезпечення.
•• Вибір команди Рядок привітання супроводжується відкриттям вікна з готови
ми шаблонами рядка.
•• Команда Інші елементи призначена для самостійного вставлення полів підста
новки користувачем: у вікні Вставка поля злиття перелічені всі поля бази да
них. Поле вибирається подвійним клацанням вказівника миші — у текстовому
документі обране поле буде в лапках, після завершення злиття замість назви
поля буде вставлено його значення
Крок 5
Перегляньте, користуючись панеллю навігації, кожен документ створеної серії
розсилки
Крок 6
Завершіть злиття й виберіть режим опрацювання документа розсилки.
•• Команда Друкувати документи... дає змогу роздрукувати документи для кож
ного зі списку джерела даних.
•• Якщо створювалися електронні листи, запускають команду Надіслати повідом
лення електронної пошти. У вікні, що відкриється, є можливість цей документ
використати як вкладення до листа або як основний текст листа; також можна
відправити всім обраним попередньо адресатам або вказати порядковий но
мер адресатів у списку.
•• Результатом команди Змінити окремі документи є створення складеного до
кумента, який містить стільки окремих документів з унікальними значеннями,
скільки є записів у базі даних (якщо текст не перебільшує сторінку, а в базі
даних 300 записів, то в результаті отримаєте документ із 300 сторінками: усі
сторінки будуть мати загальний текст, а поля будуть заповнені унікальними
значеннями з бази)
Усі команди, запропоновані майстром злиття, наявні на
стрічці РОЗСИЛКИ (рис. 7). У групі Поля для записування та
вставлення є список Правила (рис. 8), який містить функції
керування унікальними даними основного документа.
Рис. 7. Вигляд команд стрічки РОЗСИЛКИ
У листах має бути звернення «Шановний» до чоловіків
і «Шановна» до жінок, а далі ім’я. Аналізуємо: звідки взяти
ім’я — з бази даних, а на основі чого додати «ий» або «а» до
«Шановн» — на основі поля, значеннями якого є «ж» (жіноча)
чи «ч» (чоловіча), букви, які визначають стать людини. Якщо
«ч» — додається «ий», інакше — «а».
Рис. 8. Список функцій для вибору
унікальних даних розсилки
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
197. 1974.5. Комп’ютерні...
Запитання для перевірки знань
1 Що означає поняття «злиття» для документа
Word?
2 Які складові дають змогу створити розсил
ку? Назвіть кроки.
3 Які є режими опрацювання документа роз
силки?
4 Як створити звертання до кожної особи за її
іменем у розсилці?
5 Скільки сторінок може мати документ після
завершення злиття?
6 Скільки файлів створюється після завершен
ня злиття? Відповідь обґрунтуйте.
Ознайомимося з алгоритмом оформлення звернення.
Крок 1 В основному тексті введіть Шановн та розмістіть указівник після Шановн
Крок 2
Вставте поле з функцією: із
правил викличте функцію
IF...THEN...ELSE (якщо...то...
інакше) — відкриється ві
кно заповнення вказаної
функції (рис. 9)
Крок 3 Заповніть вікно згідно зі зразком на рисунку, підтвердьте дію кнопкою ОК
Крок 4
Поставте пропуск у документі. Указівник нікуди не переміщуйте. Із групи Поля для
записування та вставлення викличте команду Додати поле злиття
Крок 5
У вікні, що відкриється, виберіть поле Ім'я По батькові (таке поле має бути в базі
даних). Підтвердьте дію кнопкою ОК
4.5. Комп’ютерні публікації. Видавничі системи.
Електронні книги
Наведіть означення поняття «публікація». Наведіть приклади
публікацій. Чи можна твір із літератури назвати публікацією?
Публікація — це процес видання твору.
Залежно від способу збереження розрізняють:
•• друковані публікації (книжки, брошури, журнали, газе-
ти, бюлетені, буклети, листівки тощо),
•• електронні публікації, їх також називають комп’ютерними
(збережені на носіях, розміщені в Інтернеті, зазвичай на
сайтах). У таких публікаціях (електронних книжках)
завдяки налагодженим зв’язкам між частинами зручно
здійснювати переходи.
Рис. 9. Вікно заповнення поля з правилом IF...THEN...ELSE
Вставлення поля IF
Єдину за змістом і оформ
ленням опубліковану роботу
(твір, видання) теж називають
публікацією.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
198. Розділ 4198
Пригадаємо, що видавнича система — комплекс апаратних
та програмних складових для підготовки публікацій. Апа-
ратними засобами є пристрої уведення та виведення, опра-
цювання, збереження та передавання (комп’ютер, принтер,
копіювальний апарат, сканер, графічний планшет, фото- та
відеотехніка). Програмними засобами є спеціальні програми
для верстання публікації.
Процес створення публікації складається з кількох ета-
пів. На етапі макетування та верстання визначаються па-
раметри форматування тексту та графічних зображень, їх
взаємного розміщення на сторінках для поєднання функці-
ональних і естетичних якостей усіх складових публікації.
Сучасні програмні засоби завдяки своїм можливостям авто-
матизують роботу.
Макет сторінки публікації — це зразок для точного роз-
міщення текстових та ілюстративних об’єктів публікації. Ма-
кет не несе інформаційного навантаження.
Верстка — процес компонування текстового й ілюстратив-
ного матеріалу відповідно до розробленого макета сторінки
(шпальти) публікації з дотриманням принципів дизайну та
технічних вимог.
Пригадаємо, із яких об’єктів складається публікація. Роз-
глянемо можливості MS Word для організації зв’язків між
окремими об’єктами в публікації. Зі створенням змісту та
нумерацієї сторінок ви вже ознайомилися.
Не обов’язково користуватися кодами полів. У програмі
MS Word велика кількість полів уставляється за допомогою
вбудованих функцій, які викликаються командами меню:
•• у стрічковому меню ВСТАВЛЕННЯ в групі Посилання міс-
тяться команди: Закладка, Перехресне посилання;
•• у групі Текст (список Експрес-блоки) містяться команди:
Автотекст, Властивість документа, Поле;
•• у стрічковому меню ПОСИЛАННЯ в групі Підписи міс-
тяться команди для встановлення підписів під різними
об’єктами документа.
•• Додаткові можливості опрацювання полів
Ми розглянули можливість уставлення номера сторінки, як
верхнього або нижнього колонтитула. У верхньому колонти-
тулі бажано розмістити назву параграфа. Щоб це здійснити,
кожен параграф має бути новим розділом, а для його назви
вибрано стиль заголовка, наприклад, Заголовок 1.
Розглянемо алгоритм вставлення у верхній колонтитул
назви параграфа.
Крок 1 Перейдіть до верхнього колонтитула на сторінці з першим параграфом
Крок 2 Відкрийте вікно Поля командою ВСТАВЛЕННЯ — Експрес блоки — Поле
До складу Microsoft Office вхо
дить відома вам настільна видав
нича система Microsoft Publisher,
яка порівнянно з професійни
ми системами має обмежену
кількість функцій. Натомість
Microsoft Publisher містить інтуї
тивно зрозумілий інтерфейс, зна
чну кількість шаблонів і макетів
публікацій, що значно спрощує
створення.
Прикладами професійних про
грамних засобів верстки є Quark
XPress, Adobe PageMaker, Adobe
InDesign тощо.
Є й інші настільні видавничі си
стеми: Page Plus, Avery DesignPro,
Paraben’s Label Builder тощо.
Завдяки полям у публікації ор
ганізовують автоматичне дода
вання: вставлення оновлення
дати й часу; вставлення під
писів до таблиць та малюнків;
створення виносок, посилань
на частини тексту, інші об’єкти
з можливостями переходів до
них; закладок тощо.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
199. 1994.5. Комп’ютерні...
Крок 3 У розділі Категорії виберіть Зв’язки й посилання
Крок 4
Зі списку полів, який відкриється, виберіть StyleRef (рис. 1).
Рис. 1. Вікно вибору полів
Поле
Крок 5
В області Властивостей поля виберіть стиль заголовка, яким установлено назви
параграфів (для нашого прикладу Заголовок 1)
Крок 6 Підтвердіть свій вибір кнопкою ОК
Уставлення цього поля краще робити в шаблоні, оскільки,
наприклад, у кожного автора публікації у полі StyleRef будуть
відображені заголовки написаних ним параграфів.
•• Підписи до об’єктів документа
Як ви помітили, у посібнику автори посилаються на ри-
сунки або таблиці за їх номером. MS Word надає можливість
автоматизувати таку роботу.
Розглянемо алгоритм додавання назв до наявних об’єктів.
Крок 1 Виділіть елемент, до якого слід додати назву
Крок 2
Запустіть команду Вставити назву зі стріч
ки Посилання з групи Підписи — відкриє
ться вікно Назва (рис. 2).
Незмінною частиною підписів є, напри
клад, Рисунок або Таблиця, Формула —
саме цю категорію й вибирають із роз
кривного списку підписів, а для власної
назви користуються командою Створити
Рис. 2. Вікно вставлення підписів
під рисунками
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
200. Розділ 4200
Крок 3
У списку Розташування зазначте, де розташовуватиметься підпис.
Зазвичай рисунок підписують знизу, а таблиці — над ними
Крок 4
Для встановлення нумерації назв скорис
тайтеся однойменою командою — відкри
вається вікно, у якому регулюють номери
об’єктів (рис. 3)
Крок 5
Кнопка з командою Автоназва дозволяє задати типи об'єктів, назва до яких додається
автоматично в разі додавання в документ нового об'єкта
Крок 6 Підтвердіть вибір форми підписів кнопкою ОК
•• Посилання
У звітах, доповідях часто доводиться посилатися на роз-
діли, таблиці й ін. У групі Підписи для цього є команда Пе
рехресне посилання. Можна зробити текстове посилання на
назву теми, заголовок таблиці, підпис до рисунка; можна
зробити посилання на номер сторінки, де починається тема
або міститься таблиця, рисунок тощо. Зазвичай для поси-
лання використовують текст «Див. розділ (сторінку, табли-
цю тощо)».
Щоб посилання працювало правильно, назви об’єктів по-
силання необхідно здійснити форматувати стандартними
стилями (приклад).
У разі запуску команди відкривається вікно Перехресні
посилання, у якому слід вибрати зі списку тип посилання
і вказати, на що встановлюється посилання. Вікно містить
поле для уточнення формату посилання.
Щоб уставити посилання на розділ із назвою зі стилем
Заголовок 1, зі списку Тип посилання вибирають Заголовок,
уточнення вставляють у полі Для якого заголовка. У нашо-
му прикладі необхідно вказати Заголовок 1, а в полі Вста
вити посилання на вибрати, наприклад, текст заголовка або
сторінку. Якщо посилання вставлялося на Рисунок, поле
для уточнення буде називатися Для якої назви, і вписати
назву.
•• Виноски в документі
Іноді для пояснення деяких слів або понять використову-
ють виноски (роз’яснення), які найчастіше розташовані або
наприкінці сторінки, або наприкінці розділу або книги.
Приклад.
Заголовки — стилями Заголо-
вок і номер Заголовка, назва
таблиць, малюнків — стилем
Назва (стилі вибирають з одно
йменної групи стрічки ОСНОВНЕ).
Рис. 3. Вставлення підписів під
рисунками з номером розділу
Сполучення клавіш
для вставлення виносок
•• Ctrl + Alt + F — вставка зви
чайної виноски
•• Ctrl + Alt + D — вставка кін
цевої виноски
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
201. 201
Запитання для перевірки знань
1 Що таке виноска?
2 Який алгоритм додавання заголовків пара
графів як колонтитулів?
3 Назвіть особливості створення закладок.
4 Як у Word автоматизувати вставлення підпи
сів таблиць?
4.5. Комп’ютерні...
Виноски можна створити автоматично в групі Виноски стрічки ПОСИЛАННЯ:
Крок 1 Зазначте місце в документі для вставлення позначки виноски
Крок 2
Скористайтеся командою Вставити виноску — вказівник автоматично переміститься
у нижню частину сторінки для вставлення тексту виноски
Крок 3
Форматування виносок,
місце їх розташування
(знизу чи згори сторінки),
формат номерів виносок
або встановлення симво
лу для виноски на розсуд
користувача здійснюється
у вікні Виноски, яке ви
кликається з однойменної
групи команд стрічки ПО
СИЛАННЯ (рис. 4).
•• Закладки
У процесі роботи з великими за обсягом документами може
виникнути необхідність перейти з поточного в інше місце до-
кумента. Для зручності переходів використовують закладки.
Закладки у Word є кодами. У документі їх не видно, на друк
вони не виводяться.
Для вставлення закладки слід установити в потрібному місці
вказівник або виділити текст і клацнути вкладку Вставити.
У вікні слід ввести ім’я закладки, і клацнути кнопку Додати.
Щоб із будь-якого місця документа перейти до потрібної
закладки, запускають команду стрічка ВСТАВЛЕННЯ — група
Посилання — Закладка. У вікні, що відкриється, з поля закла-
док вибирають потрібну і користуються кнопкою Перейти.
Редагування виносок (перемі
щення, копіювання, вилучення)
здійснюють зі знаком виноски в
тексті документа (номером чи
іншим символом), а не в облас
ті виноски. В останній змінюють
тільки текст виноски. Якщо для
виносок використовувалася ну
мерація й одну з них вилучили,
автоматично змінюється нуме
рація решти виносок.
Рис. 4. Вікно форматування виносок
Виконайте тестове завдання до розділу 4
з автоматичною перевіркою результату
на сайті interactive.ranok.com.ua
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
202. Розділ 5202
5.1. Комп’ютерна графіка та сучасні напрями
її використання. Види комп'ютерної графіки.
Поясніть, що таке «піксель». Які види цифрових зображень
ви знаєте? Наведіть приклади програмних засобів для
створення та опрацювання графічних зображень.
Сучасне життя не можна уявити без застосування мульти
медійних технологій — комплексу апаратних та програмних за-
собів, які забезпечують одночасну роботу з текстом, звуком,
статичними та динамічними графічними зображеннями, віде-
осюжетами.
Мультимедіа важко уявити без комп’ютерної графіки. Сьо-
годні комп’ютерна графіка як сукупність методів і способів
перетворення даних у графічне зображення і графічного зо-
браження у дані за допомогою комп’ютера використовується
в усіх сферах: у науці, освіті, медицині, на виробництві.
Комп’ютерна графіка — розділ інформатики, який вивчає
методи і засоби створення та опрацювання графічних зо
бражень із використанням комп’ютерних технологій.
Як ви знаєте, найпростішими програмними засобами, при-
значеними для створення нового графічного зображення та
редагування вже готового, є графічні редактори. Вони пере-
творюють комп’ютер на віртуальну майстерню досвідченого
користувача — художника-ілюстратора. Редактори містять
різноманітні інструменти, та віртуальну палітру, що дає змо-
гу отримувати фарби будь-якого типу й кольору.
Графічні редактори класифікують за принципами форму-
вання, збереження та відтворення графічного зображення на
екрані монітора.
Розрізняють такі види комп’ютерної графіки: растрова,
векторна, фрактальна, тривимірна, анімаційна (динамічна).
Растрові зображення являють собою прямокутну об-
ласть (растр), що складається з пікселів, кожен з яких має
певний колір. Піксель (від англ. PICture’S ELement) — най-
менший елемент зображення. Пікселі мають такий розмір,
що зображення здається цілісним, хоча в разі збільшення
видно зернисту структуру (рис. 1).
Зміна розміру растрового зображення суттєво впливає
на розмір файла, у якому воно зберігається.
Розділ 5. ГРАФІКА.
МУЛЬТИМЕДІА
Рис. 1. Маніпуляції з растровим
зображенням
а
Комп'ютерну графіку викорис
товують у кіноматографії, ре
кламі, поліграфії, з розвитком
мереж — у Інтернеті, у першу
чергу, службі World Wide Web,
в електронних виданнях —
веб-сторінку важко уявити без
малюнків.
б
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
203. 2035.1. Комп'ютерна графіка...
Сфера застосування: розробка електронних (мульти-
медійних) і поліграфічних видань з ілюстраціями високої
якості. Останнім часом для введення растрових зображень
у комп’ютер, окрім сканера, використовують цифрові фото- та
відеокамери. У мережі Інтернет нині застосовуються здебіль-
шого растрові ілюстрації.
У векторній графіці збереження зображень засноване
на математичному описі елементарних об’єктів — геометричних
примітивів.
Розмір файла майже не залежить від зміни розміру зобра
ження (рис. 2).
Рис. 2. Маніпуляції з векторним зображенням
Сфера застосування: виготовлення ескізів, технічних ри-
сунків, креслень, схем, створення рекламних проектів,
оформлення проектно-конструкторської документації різного
рівня складності, виконання завдань з архітектурного проек-
тування, композиції, дизайну.
Фрактальна графіка базується на автоматичній генерації
зображень шляхом математичних розрахунків.
В основу методу побудови зображень покладено принцип
самоподібності — таку назву він отримав завдяки наслі-
дування елементами–«спадкоємцями» властивостей від так
званих елементів–«батьків» (рис. 3).
Створення фрактальної композиції має основою не малю-
вання, а формальний опис алгебраїчних або геометричних
властивостей самоподібного елемента.
Рис. 3. Приклад фрактального зображення
Сфера застосування: абстрактні фрактальні композиції
часто використовують у розважальних програмах, а також
як тло листівок, слайдів та ін.
Для створення фрактала необ
хідне середовище програму
вання або спеціальні програм
ні засоби, наприклад, Ultra
Fractal, Fractracer тощо.
Найбільш поширеними ра
стровими графічими редакто
рами є: ACDSee Photo Editor,
Corel PHOTO–PAINT, Microsoft
Paint (останнім часом Paint.
NET), який входить до складу
всіх версій ОС Windows, а та
кож Adobe Photoshop і його
аналог GIMP (GNU Image
Manipulation Program).
До числа найвідоміших век
торних редакторів належать
Adobe Illustrator, Macromedia
FreeHand, Corel Draw, Inkscape,
Corel Xara.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
204. Розділ 5204
Тривимірна графіка (3D-графіка, від англ. 3D — three
dimensions — три виміри) оперує об’єктами у тривимірній
системі координат, результом є плоска картинка, проекція
(рис. 4).
Рис. 4. Приклад тривимірної графіки
Початкове зображення будується як векторне, моделюють-
ся умови освітленості та встановлення точок спостереження,
а вихідне зображення генерується як растрове на основі за-
даних об’єктів і параметрів візуалізації.
Сфера застосування: тривимірна графіка має значні мож-
ливості для здійснення технічного креслення.
Анімаційною графікою, анімацією, або мультиплікацією,
називають штучне відтворення руху в кіно, на телебаченні
чи в комп’ютерній графіці шляхом послідовного відображен-
ня малюнків або кадрів з частотою, що забезпечує цілісне зо-
рове сприйняття образів.
Мультиплікація (від латин. «мульти» — багато) відповідає
традиційній технології розмноження малюнка, адже для
того, щоб зображення «ожило», треба повторити його рух
із частотою від 10 до 30 мальованих кадрів у секунду.
Перші мультфільми з’явилися майже сторіччя тому, а сьо-
годні широко застосовуються нові програмні засоби, до-
ступні для створення рухомих об’єктів не тільки фахівцям,
а й учням.
Сфера застосування: напрям анімації, який дає змогу пере-
давати природні рухи в реальному часі. Датчики прикріплю-
ють до актора в місцях, які відповідають контрольним точкам
комп’ютерної моделі (у місцях згину рук, ніг тощо). Коли ак-
тор рухається, за допомогою спеціальної програми його рухи
оцифровуються — координати та орієнтація у просторі пере-
даються на графічну станцію, і анімаційні моделі «оживають».
Створення малюнка у триви
мірних графічних редакторах,
наприклад, Maya, SoftImage,
3D-Studio Max, LightWave3D,
схоже на побудову з окремих
цеглинок, як у конструкторі.
Найпотужнішим редактором
є Maya, а найпопулярнішим —
3D-Studio Max.
Запитання для перевірки знань
1 Як ви розумієте поняття «комп’ютерна графіка»?
2 Який програмний засіб називають графічним
редактором?
3 Назвіть види комп’ютерної графіки.
4 Наведіть приклади використання графічних
редакторів у вашому повсякденному житті.
5 Як ви гадаєте, чи є зображення сніжинки при
кладом фрактала?
6 Який графічний редактор: векторний чи ра
стровий, на вашу думку, обере користувач
для створення картини, а який — для ство
рення реклами?
Для створення анімаційних
зображень існує багато різ
номанітних програм: Adobe
Photoshop, Autodesk Maya,
GIMP, Blender, Synfig, Visual
GIF, Animator тощо.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
205. 2055.2. Моделі відображення
5.2. Моделі відображення кольору
Поміркуйте, як формується кольорове зображення на екра-
ні монітора. Пригадайте, що таке «піксель».
З курсу фізики вам відомо, що в призмі біле світло розклада-
ється на кольори веселки (рис. 1). Їх сім (пригадайте приказку
«Чарівниця Осінь Жар-птаха Закликає Бабин Сад Фарбувати»).
Рис. 1. Розкладання білого світла на кольори веселки
Розглянемо, як формується багатоколірне зображення на
екрані монітора чи аркуші паперу. Зображення на екрані ми
бачимо завдяки випромінюванню світла точками екрана, а на
папері — завдяки світлу, що відбивається від поверхні арку-
ша. Для опису кольорів, утворюваних у різний спосіб, ство-
рено різні колірні моделі.
Колірна модель — математична модель подання ко
льорів у вигляді послідовності чисел: колірних компо
нентів або колірних координат.
Колірні моделі задають певні системи координат, які до-
зволяють однозначно визначити колір. Усі можливі значення
кольорів, які можна описати моделлю, визначають її колір-
ний простір. Є різні колірні моделі, основними є RGB, CMYK,
Lab, HSB.
Розглянемо ці моделі та принципи кодування кольору.
•• У моделі RGB кольори отримають змішуванням трьох ба-
зових кольорів, це червоний, зелений і синій (англійською
мовою Red, Green, Blue).
Модель використовується для зображення, яке ми бачи-
мо у випромінюваному світлі. Вона називається адитивною,
оскільки колір пікселя формується поєднанням зазначених
кольорів (рис. 1). Кількість кольорів, які може мати піксель,
залежить від рівня яскравості того чи іншого основного ко-
льору (приклади 1, 2).
•• У моделі CMYK кольорове зображення на папері форму-
ється за іншими правилами. Точки на папері не світять-
ся, бо папір поглинає світло, і ми бачимо кольорові зо-
браження у відбитому світлі.
Якщо від білого кольору відокремити три кольори моделі RGB,
отримаємо кольори моделі CMYK: блакитний (Cyan), пурпуровий
(Magenta) і жовтий (Yellow). Модель CMYK називається субтрак-
тивною (від англ. Subtract — віднімати), або додатковою (допо-
внює кольори адитивної моделі до всього спектра). Діапазон на-
сиченості кольорів змінюється в межах від 0 до 255.
Рис. 1. Графічне зображення
моделі RGB
Приклад 1.
Чистий зелений колір у мо
делі RGB буде описано так:
000 255 000. Тут 000 означають
відсутність червоного та си
нього кольорів, а зелений (255)
має максимальне насичення.
Приклад 2.
000 000 125 — такі значення
говорять про ненасичений синій
колір. Усі нулі означають відсут
ність будь-якого кольору, тобто
чорний, а 255 255 255 навпа
ки — білий. У разі такого коду
вання можна отримати 2563
(або
224
) різних кольорів.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
206. Розділ 5206
Під час друку використовують модель CMYК. Оскільки по-
єднання CMY-кольорів не дає глибокого чорного кольору, до
основних фарб додають чорну (англ. blacК (букву «В» не ви-
користовують, щоб не плутати з Blue моделі RGB). Таким чи-
ном, у поліграфії друк здійснюється за допомогою блакитної,
пурпурової, жовтої та чорної фарби, що, власне, і становить
палітру CMYK.
На рис. 2 наведено модель RGB із зазначенням значень ко-
лірних складових та кольорів моделі CMYК.
•• Модель Lab базується на сприйнятті кольору людиною.
На екрані монітора ми бачимо кольори в режимі випромі-
нювання, а після друку на папері тих самих кольорів не отри-
муємо. Проблема розв’язується так: у процесі вибору кольору
програма пропонує вибрати ще й модель, щоб приблизно ді-
брати кольори для зображення, призначеного на друк. При
цьому найяскравіші кольори моделі RGB неможливо передати
за допомогою CМYK, а для найтемніших кольорів моделі CМYK
немає аналогів у RGB. Модель Lab однозначно визначає колір.
У моделі Lab використовується можливість окремо вплива-
ти на яскравість, контрастність і колір зображення. Особливо
важливим це є для процесу додрукарської підготовки видан-
ня. Lab надає можливість вибіркового впливу на окремі ко-
льори в зображенні, посилення кольорового контрасту, а та-
кож покращує якість цифрових фотографій завдяки боротьбі
з шумом.
Абревіатура LAB визначає колірний простір (L*a*b) і сьогод
ні є міжнародним стандартом. Колір визначається трьома
координатами: L — освітленістю, a — діапазоном зміни
від пурпурового до зеленого та b — діапазоном зміни
від синього до жовтого. Освітленість змінюється в діапа
зоні від 0 до 100 %. Її максимальне значення відповідає
максимальній яскравості кольору. Значення діапазонів
зміни кольорів задаються числами від –128 до 127.
•• Модель HSB побудована на характеристиках кольору:
колірному тоні, насиченості, яскравості (рис. 3).
Колірний тон (англ. Hue) — колір світла, який ми бачимо.
Якщо усі кольори розмістити на колірному колі, то позиція
кольору буде змінюватись від 0 ° до 360 °, що й дасть значення
параметра тону.
Насиченість (англ. Saturation) характеризує чистоту ко-
льору певного тону, її значення коливаються від 0 до 100 %
у поєднанні з сірим кольором (тон кольору задається хвилею
певної довжини, решта хвиль зливаються в сірий колір). Зна-
чення 0 насиченості відповідає сірому кольору.
Яскравість (англ. Brightness) означає наскільки світлим
(100 %) чи темним (0 %) подано колір.
У процесі формування кольорів на екрані кожний базо-
вий колір RGB передається по своєму каналу, тому графічні
редактори дозволяють вибрати режим кольору зображення:
кольорове, напівтонове (у відтінках сірого) або чорно-біле.
Рис. 2. Схематичне зображення
кольору в моделі RGB
Рис. 3. Схематичне зображення
кольору в моделі HSB
У моделі CMY (Cyan, Magenta,
Yellow) всі нулі дають біле світ
ло (усі кольорові компоненти
моделі RGB відбились). Якщо
поверхня поглинула світло по
вністю, то ми бачимо її чор
ною. Якщо на папері бачимо
зображення жовтого кольору,
то поглинувся синій колір мо
делі RGB, а зелений і червоний,
що відбилися, у поєднанні дали
жовтий. Аналогічно: бачимо на
папері блакитний колір, то по
глинувся червоний моделі RGB,
а якщо пурпуровий, то зелений.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
207. 2075.3. Формати графічних...
У зв’язку з цим виникає поняття напівтонової моделі: вико-
ристовується єдиний канал із 256 відтінками сірого кольору,
які відповідають лише за яскравість пікселя. Зображення
з використанням монохромної моделі мають два кольори: бі-
лий і чорний. Крім того, колір має таку характеристику, як
глибина, що вказує на якість його передавання.
Глибина кольору — кількість бітів (обсяг пам’яті), яка
використовується для зберігання і представлення ко
льору при кодуванні одного пікселя растрової графіки
або відеозображення.
Оскільки два кольори монохромної моделі можна закоду-
вати 1 бітом, то такі зображення займають зовсім невели-
кий обсяг пам’яті. Для кодування кольорів напівтонової мо-
делі потрібно 8 бітів, або 1 байт, решта кольорів кодуються
24 бітами.
Оскільки в сучасних комп’ютерах при звертанні до
відеопам’яті використовуються 32-бітна адресація пам’яті та
32-бітові шини даних, то до 24-бітного методу подання та збе-
рігання зображення Truecolor додається 8-бітний альфа-канал,
який задає прозорість зображення в деяких пікселях. Отже,
колір кодується 32 бітами, а реально має 2563 кольори.
У комп’ютерах 24-бітний True
color використовує по 8 бітів
для червоної, синьої та зеленої
складових. Усього 16 777 216
кольорів (256 × 256 × 256). Цей
тип кольору найбільш придатний
для сприйняття людським оком
та опрацювання зображень.
Запитання для перевірки знань
1 Що означає поняття «колірна модель»?
2 Назвіть колірні моделі для опису кольорів.
3 Поясніть принцип RGB-кодування. Де він ви
користовується?
4 Що таке CMYK-кодування? Де воно викорис
товується?
5 Які моделі більш точно описують колір у про
цесі сканування зображення та виведення
цього самого зображення з файла на друк?
6 Якими кольорами необхідно позначити облас
ті поєднання основних кольорів, наведених на
рис. 2?
5.3. Формати графічних файлів
Що означає поняття стиснення файлів?
Розмір файла визначається способом кодування збережено-
го в ньому графічного зображення, велике значення має та-
кож метод стиснення зображення.
Стиснення найчастіше застосовується до растрових зобра-
жень, оскільки вони зазвичай мають великий обсяг.
Графічний формат — це спосіб збереження графіч
ного зображення. Розглянемо деякі формати графічних
файлів.
Існує низка графічних форматів:
TIFF (Tagged Image File Format),
JPEG (Joint Photographic Experts
Group), GIF (CompuServe
Graphics Interchange Format),
PNG (Portable Network Graphics),
PDF (Portable Document Format)
та ін.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
208. Розділ 5208
Розглянемо деякі формати графічних файлів.
•• У форматі TIFF не використовується стиснення, тому його
називають апаратно незалежним. Це єдиний формат,
який використовується в професійному дизайні для збе-
рігання зображень високої якості. Формат TIFF є найкра-
щим вибором при передачі растрових зображень у век-
торні програми і видавничі системи.
•• Файли формату JPG (JPЕG) мають можливість стиснення
зображення в десятки разів, при цьому ступінь стиснен-
ня користувач може вибирати самостійно. У поліграфії
цей формат не використовується через істотні втрати
якості зображення. У форматі JPG використовується ал-
горитм стиснення jpeg, більш придатний для зображень,
які містять плавні переходи яскравості і кольору. Най-
більшого поширення JPEG набув у цифровій фотографії
для передавання мережею Інтернет. Оскільки форматом
JPG використовується принцип стиснення із видаленням
певної частини даних, то кінцевий варіант роботи краще
зберігати у JPG-форматі, щоб не втратити якість.
•• Формат GIF призначено для стиснення файлів, у яких
міститься багато однорідних заливок (у логотипах, на-
писах, схемах). Файл GIF може містити не одне, а кіль-
ка растрових зображень, які завантажуються по чер-
зі із зазначеною у файлі частотою — так створюється
GIF-анімація. Основне обмеження формату GIF полягає
в тому, що кольорове зображення може бути записане
тільки в режимі 256 кольорів.
•• Формат PNG розроблено на заміну формату GIF і вико-
ристовується для розміщення зображень в Інтернеті.
Порівняно з аналогічними GIF-файлами файли мають
менший розмір, глибина кольору може бути 8-бітною
(PNG-8) і 24-бітною (PNG-24). Файли формату PNG однако-
во відображають зображення незалежно від оснащення
комп’ютера.
•• Формат PDF розроблено для виведення електронних пу-
блікацій на друк: файли містять інформацію про век-
торні зображення, шрифти, розбивку на сторінки, а до-
кумент на екрані ми бачимо в такому вигляді, який він
матиме після друку.
•• Графічні редактори мають внутрішні формати для збе-
реження зображення у файлах: PSD (Adobe Photoshop
Document) є форматом растрового редактора Photoshop;
CDR (CorelDRAW Document) — векторного редактора
CorelDRAW.
•• Формат XCF — убудований формат растрового редактора
GIMP. Він зручний як для збереження проміжних ре-
зультатів, так і для подальшого відкриття зображення
й опрацювання редактором. Оскільки файли формату XCF
не підтримуються більшістю програм для перегляду зо-
бражень, то після остаточного опрацювання зображення
Растровий формат CALS (англ.
Computer Aided Acquisition and
Logistics Support) розроблено
підрозділом міністерства оборо
ни США для стандартизації об
міну графічними даними в елек
тронному вигляді та опрацюван
ня зображень програмами.
Формат RAW (англ. Raw — си
рий) зберігає дані в нестисне
ному стані, що дозволяє уник
нути їх втрат. В основному дані
отримані з матриці цифрово
го фотоапарата. Зображення
чорно-біле, для його прегляду
необхідні спеціальні програми,
оскільки інформація про колір
і інші параметри зображення
зберігається в окремій матриці.
У форматі GIF використову
ється технологія запису піксе
лів зображення через рядок,
тому після отримання лише
частини файла складається
враження, що маємо все зо
браження. Якість при цьому
досить низька.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
209. 2095.4. Створення векторних...
його краще зберегти в більш поширеному форматі, напри-
клад, JPEG, PNG, TIFF тощо.
•• Формат SVG — формат файлів, створених у векторному
графічному редакторі Inkscape. У форматі збережені всі
форми і ефекти створеного зображення, а файли мають
розширення .svg.
Коли виникає потреба в перетворенні з одного формату
в інший використовують спеціальні програмні засоби — кон-
вертори графічних файлів.
Основна відмінність таких конвертерів від програмних
засобів для перегляду зображень і графічних редакторів по-
лягає в можливості пакетного перетворення форматів файлі.
Окремі програми можуть одночасно з конвертацією викону-
вати й додаткові операції (наприклад, перейменування, змі-
на розмірів, додавання водяних знаків тощо).
Є багато програмних засобів для конвертації, але на сьо-
годні зручно використовувати програми-конвертори в онлай-
новому режимі.
Формат SVG (Scalable Vector
Graphics standard) також призна
чено для забезпечення вектор
ної графічної підтримки браузе
рів, для об’єднання тексту, гра
фіки, анімації та інтерактивних
компонентів.
Формат SVG є описом XML та
CSS — файли цього формату
можна відкривати й опрацьо
вувати в будь-якому текстовому
редакторі.
Запитання для перевірки знань
1 Як ви розумієте поняття графічного формату?
2 Який формат мають файли з нескладними
анімаційними зображеннями?
3 Який формат обрати для зображень з метою
подальшого використання у веб-сторінці?
4 Що таке конвертор? Яке його призначення?
5 У якому форматі зберігаються файли растро
вої комп’ютерної графіки? Наведіть приклади
форматів відповідно до редакторів.
6 У якому форматі зберігаються файли вектор
ної комп’ютерної графіки? Наведіть приклади
форматів відповідно до редакторів.
5.4. Створення векторних зображень в офісних
програмних засобах
Пригадайте типи графічних зображень, які можна додати
до документів у пакеті MS Office.
Із векторним редактором ви познайомилися у проце-
сі створення документів у MS Word — у MS Office вбудова-
но векторний графічний редактор. У його середовищі мож-
на створити як прямі лінії (відрізки), так і лінії будь-якої
форми (криві).
Лінії (відрізки) малюють «протяжкою» маніпулятора миші
з натиснутою лівою кнопкою миші (ЛКМ). Малювання лінії
подібне до малювання олівцем.
Основою роботи у векторних
редакторах є лінія — її ще на
зивають контуром. Замкнений
контур — такий, у якому збі-
гаються початкова та кінцева точ-
ки. Замкненим контуром ство
рюють фігури, які в подальшому
можна залити кольором.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
210. Розділ 5210
Криві також малюють за допомогою миші, але ЛКМ три-
мають натисненою тільки в точках перетину. Для завершен-
ня малювання кривої потрібно двічі клацнути ЛКМ.
Режим полілінії дозволяє створити криву й без клацання
в точках перетину.
Форма кривої визначається складовими — так званими
кривими Безьє. За їх допомогою можна створити зображен-
ня прямолінійного відрізка, дуги, еліпса, кола, прямокутни-
ка тощо. Якщо увімкнути режим редагування контуру, на
ньому з’являються вузли, кожний з яких належить окремій
складовій.
У векторній графіці розглядають різні типи вузлів: куто-
ві, прямі та гладкі (плавні, згладжені). Тип вузла встановлю-
ється напрямними.
Напрямні (або керувальні) лінії — дотичні до кон
туру у вузлі. Зазвичай під час редагування контуру їх
показано синім кольором.
Точки, у яких з’єднуються криві Безьє, і керувальні лінії
не роздруковуються. Вони використовуються для створення та
редагування форми зображення.
Редагування контуру відбувається шляхом редагування
наявних вузлів: додаванням, вилученням та опрацюванням
(редагують напрямні). На рис. 1 зображено криву (випадок а)
і ту саму криву зі змінами (випадок б). У випадку в наведено
петлю, створену обертанням напрямної.
Зазвичай у графічному редакторі, убудованому в MS Word,
створюють прості малюнки (для складних існують інші гра-
фічні редактори). Його використовують для ілюстрування
тексту схемами, блок-схемами та іншими зображеннями, по-
дібними до креслень.
На рис. 2 наведено приклад створення ілюстрації до умо-
ви або розв’язання задачі зі стереометрії. На цьому прикладі
обзорно розглянено можливості MS Word для створення зобра-
жень.
Приклад. На рис. 2, а, ви
користано фігуру Куб з групи
Основні фігури, у випадках б
і в — додано пунктирні лінії і
вставлено написи з літерами.
У процесі опрацювання фігур
з’являється стрічка ФОРМАТ
(Знаряддя для зображення), ко
манди якої дозволяють змінити
контур фігури, її заливку, згру
пувати кілька фігур в одну, змі
нити положення фігури відносно
решти тощо.
Рис. 2. Етапи створення ілюстрації
до задачі зі стереометрії
а
А
А1
B1 C1
D1
B C
D А
А1
B1 C1
D1
B C
D
B2
C2
Пьєр Безьє (на фото зліва) —
французький інженер з компа
нії «Рено», який у 1962 р. за
пропонував типи кривих для
проектування кузовів авто
мобілів. Незалежно від Безьє
в 1959 р. криві відкрив Поль
де Кастельжо з компанії «Сі
троен», але його дослідження
вважалися виробничою таєм
ницею до кінця 1960-х.
Рис. 1. Типи вузлів:
1 — гладкий; 2 — кутовий.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
211. 2115.4.Створення векторних...
Пригадаємо, як створити правильну геометричну фігуру.
На стрічці ВСТАВЛЕННЯ у групі Ілюстрації списку Фігури міс-
титься перелік фігур для створення зображення. Якщо зобра-
ження складається з кількох фігур, його зручно створювати
після виклику команди ВСТАВЛЕННЯ → Фігури → Створити по
лотно — у документі буде створено прямокутну область для
подальшого розміщення в ній фігур. Зміна розмірів зобра-
ження, його переміщення здійснюється одноіменними мані-
пуляціями з полотном.
Якщо зображення створюється з кількох об’єктів, доцільно
з утриманням клавіші Shift виділити кожний об’єкт і скорис-
татися командою Групування. Надалі згруповане зображення
сприймається Word як одне ціле. За потреби групу можна роз-
групувати однойменною командою й перегрупувати.
Для створення організаційних діаграм у MS Word на стрічці
ВСТАВЛЕННЯ у групі Ілюстрації є список СМАРТ АРТ, у якому по-
дано шаблони різного виду діаграм.
Розглянемо на стрічці ПОДАННЯ вкладку Лінії сітки (рис. 3).
Лінії сітки використовують в офісних програмних засобах
для зручної роботи із зображеннями: відображення фігур
здійснюється з прив’язкою до ліній сітки, а на друк лінії
не виносяться.
Запитання для перевірки знань
1 З чого складаються контури зображень?
2 Які елементи використовують для опрацю
вання форми контуру?
3 Які типи вузлів є на кривих векторної графіки?
4 Для чого користуються полотном під час
вставлення зображень у текстовий документ?
5 Які клавіші на клавіатурі допомагають створи
ти правильні фігури (квадрат, коло тощо)?
6 Як вставити в документ зображення растро
вої графіки?
Завдання для самостійного виконання
1 У відкритому документі MS Word із стріч
ки ВСТАВЛЕННЯ, групи Ілюстрації виберіть
список Фігури, а в ньому інструмент Крива.
2 Попробуйте створити зображення першої
букви вашого імені. Звичайно, одразу не ви
йде привабливе зображення — не змінюйте
його, залиште першу спробу, на згадку.
3 Виділіть зображення й викличте контекстне
меню.
4 Виберіть команду Змінити точки — на зо
браженні букви з’явились вузли саме в тих
місцях, де створювали перегиб кривої.
5 Підведіть вказівник миші до будь-якого вуз
ла і клацніть — з’являється пряма з марке
рами на кінцях (див. рис. 1). Вузли показу
ють на те, що загальна крива складається
з контурів, а пряма є дотичною до контуру
у точці — вузлі.
4 Якщо вказівник миші встановити на маркері
дотичної, затиснути ЛКМ на ньому, то пере
міщенням маркера можна змінити й вигляд
перетину, і, як наслідок, вигляд кривої. Так
можна досягти того, щоб літера виглядала
гарно.
Рис. 3. Вкладка Лінії
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
212. Розділ 5212
5.5. Векторний графічний редактор Іnkscape.
Інтерфейс редактора
Що називають інтерфейсом? Які типи інтерфейсів ви знаєте?
Inkscape — багатофункціональний редактор векторної гра-
фіки, який має можливість зберігати створені графічні про-
екти в різних форматах. Програма також підтримує роботу
з форматом SVG, що дає можливість використовувати граді-
єнти, змінювати розташування шарів, створювати ілюстрації
різного типу, застосовувати фільтри та ефекти.
Інтерфейс редактора має такі складові (див. рисунок).
Інтерфейс графічного редактора Іnkscape
1
3
9
5
7
8
2
4
6
6
У верхній частині вікна розташовано рядок заголовка (1),
головне меню з низкою команд (2), контекстна панель параме
трів активного інструмента (3).
Панель інструментів (4) утримує ряд кнопок — графічних ін-
струментів для створення й опрацювання фігур.
Полотно (або Канва) (5) призначено для створення та опра-
цювання малюнків. Полотно не обмежує простір для малю-
вання, засобами редактора (Параметри документа) рамку для
нього можна встановити невидиму або з тінню.
У вікні за замовчуванням показано горизонтальну та верти
кальні лінійки (6) для визначення координат у пікселях. Показ
лінійок, одиниці вимірювання можна змінити в Параметрах
документа (команда з меню ФАЙЛ). За трикутними маркерами
на лінійках фіксуються координати вказівника миші. Ці ко-
ординати (X і Y) показано в рядку стану (7) поруч із параме
тром масштабу (Z).
Над рядком стану розташована палітра кольорів Іnkscape (8),
яка дозволяє визначити колір фігур.
При наведенні вказівника миші
на кнопку меню з’являється
(спливає) невелике вікно під
казки про її призначення.
Залежно від того, який інстру
мент вибраний у вікні інстру
ментів, змінюється вигляд кон
текстної панелі. На ній відобра
жаються налаштування і пара
метри активного інструмента.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
213. 2135.5. Векторний графічний...
Вертикальна смуга (9) складається з двох панелей: панелі
інструментів (дублює найчастіше використовувані команди
головного меню) і панелі прилипання (її інструменти вико-
ристовуються для правильного й точного розміщення об’єктів
зображення).
Інтерфейс графічного редактора можуть доповнювати такі
елементи, як напрямні або сітка. Напрямні регулюють місця
розташування об’єктів малювання — об’єкти неначе притягу-
ються до напрямних. Кількість напрямних визначає користу-
вач. Щоб не встановлювати багато напрямних, користуються
сіткою, її тип визначається у Параметрах документа меню ФАЙЛ.
Після запуску Inkscape властивості нового документа
встановлюються за замовчуванням.
Опрацювання вигляду сторінки здійснюють за допомогою
команди ФАЙЛ → Параметри документа. Відкриється вікно Па
раметри документа, на вкладці Сторінка якого можна встано-
вити нові параметри. Наприклад, в області команди Тло вста-
новлюється колір сторінки.
Особливістю Inkscape є інтерактивний характер застосу-
вання налаштувань користувача: будь-яка зміна параметра
одразу виконується, у вікнах відсутні команди ОК і Відміна.
Розрізняють сітку двох типів.
Прямокутна сітка складається
з вертикальних і горизонталь
них ліній. Аксонометрична
сітка містить додатково діаго
нальні лінії, використовується
в технічних або архітектурних
кресленнях.
Запитання для перевірки знань
1 До якого типу графічних редакторів належить
Inkscape?
2 Назвіть елементи вікна Inkscape.
3 Навіщо встановлюють показ сітки в процесі
створення та опрацювання зображень?
4 Як визначити правильне розташування вка
зівника миші в середовищі редактора?
5 Як розташовані вісі координат у Inkscape?
6 Як ви вважаєте, якщо складові зображення
розташовані за межами полотна, чи будуть
вони виведені на друк?
Завдання для самостійного виконання
1 Відкрийте програму Іnkscape.
2 У головному меню перейдіть до команди
Перегляд.
3 Поставте прапорець біля команди Напрямні.
4 Установіть вертикальну та горизонтальну
напрямні:
1) розмістіть вказівник миші на горизон
тальній або вертикальній лінійці;
2) натисніть ЛКМ, перетягніть напрямну
в необхідне місце полотна, відпустіть ЛКМ;
3) так само встановіть другу напрямну.
5 Підведіть вказівник миші до напрямної —
вона змінить колір; натисніть ЛКМ і пере
тягніть напрямну.
6 У головному меню перейдіть до команди
Перегляд.
7 Поставте прапорець біля команди Сітка —
у робочому полі буде показано сітку.
8 Установіть властивості сітки:
1) перейдіть до команди головного меню
ФАЙЛ, виберіть команду Параметри доку-
мента — відкриється одноіменне вікно;
2) перейдіть на вкладку Сітка; познайомте
ся з параметрами сітки.
9 Познайомтеся з вмістом вкладок Напрямні
та Прилипання.
10 Закрийте вікно Іnkscape.
У рядку стану також показано
кольори заливки й контуру,
список шарів із можливістю
переходів між ними, повідом
лення.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
214. Розділ 5214
5.6. Інструменти векторного редактора Inkscape
та їх налаштування
На основі яких математичних кривих будують контури у век-
торних редакторах?
Створення зображення у середовищі векторного редактора
Іnkscape починається зі знайомства з Панеллю інструментів. На
ній містяться інструменти для побудови різноманітних кри-
вих, основу яких складають криві Безьє, та спеціальні інстру-
ментальні засоби для створення простих об’єктів (графічних
примітивів).
Щоб скористатись певним інструментом, його необхідно
клацнути вказівником миші, або скористатися гарячими кла-
вішами, — контекстна панель одразу зміниться. Малювання
відбувається так само, як і в редакторі, убудованому в офісні
програми. Це спрощує побудову складних об’єктів.
Якщо розмір вікна редактора не дозволяє розмістити па-
нель інструментів повністю, то після останнього видимого ін-
струмента з’являються стрілочки . Наведенням вказівника
миші на стрілки відкривається список інструментів (див. та-
блицю), у дужках зазначено гарячі клавіші для вибору інстру-
мента.
Пригадайте, як ви створювали контури з кривих у гра-
фічному редакторі офісних програм. Для побудови контурів
в редакторі Іnkscape користуються інструментом Перо Безьє.
Ним можна намалювати як ламану, так і криву з гладкими
вузлами.
1 — Вибрати (Позначення та трансформація
об’єктів) (F1)
2 — Редагування контурів за вузлами (F2)
3 — Коректор (Shift+F2)
4 — Масштаб перегляду (F3)
5 — Вимірювання (М)
6 — Прямокутник (Квадрат) (F4)
7 — Паралелограм (Тривимірні об’єкти) (Shift
+ F4)
8 — Еліпс (Коло, Дуга) (F5)
9 — Зірка, Багатокутник (*)
10 — Спіраль (F9)
11 — Олівець (Довільний контур) (F6)
12 — Перо Безьє (Малювання кривих
Безьє) (Shift+F6)
13 — Каліграфічне перо, Пензель
(Ctrl + F6)
14 — Текст (F8)
15 — Розпилювач (Shift + F3)
16 — Ластик (Shift + E)
17 — Заповнення (Shift + F7)
18 — Градієнт (Ctrl + F1)
19 — Сітка
20 — Піпетка
21 — Лінія з’єднання
Графічний примітив — міні
мальний графічний об’єкт, який
можна побудувати у вектор
ному редакторі, та сукупність
яких складає векторний малю
нок.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
215. 2155.6. Інструменти...
Для малювання ламаної вказівник миші потрібно перемісти-
ти в точку перегину і клацнути ЛКМ. Якщо під час створен-
ня вузла не відпускати мишу, а перетягнути її в бік наступ-
ного вузла, то створиться гладкий вузол.
Властивості вузлів можна змінити шляхом налаштування
його параметрів у контекстній панелі інструментів. Прига-
дайте, що називають напрямною вузла та як за її допомогою
змінювати вигляд контуру.
У місці розташування вузла контур можна «розірвати»
відповідними інструментом контекстної панелі, а потім пе-
ретягуванням вузла в інше місце отримати два нез’єднаних
контури. Можна здійснити і зворотню дію: виділити два вуз-
ли і скористатись інструментом з’єднання вузлів — два кон-
тури зіллються в один.
Пригадайте, як користуватись інструментами графічних
редакторів для створення геометричних фігур. У Inkscape для
цього використовують інструменти Прямокутник, Паралело
грам, Еліпс, Зірка, Спіраль. Форму і розмір об’єктів можна змі-
нити переміщенням маркерів.
На рис. 1, а відповідно зверху вниз наведено об’єкти, побудо-
вані інструментами, розташованими на контекстній панелі:
•• Прямокутник;
•• Еліпс (вибрали форму цілий еліпс);
•• Зірка, Багатокутник (вибрали багатокутник із кількістю ку-
тів — 5);
•• Зірка (Багатокутник) (вибрали зірку з тією самою кількістю
кутів — 5);
•• Спіраль (вибрали кількість витків — 3).
У процесі побудови на таких об’єктах з’являються круглі
та квадратні маркери, які мають різне призначення. Круглі
маркери змінюють форму об’єкта (у прямокутника змінюють
вигляд кутів (отримують прямі чи скруглені кути), з еліпса
створюють сектор чи дугу. Квадратні маркери змінюють роз-
мір об’єкта. Перетягування квадратних маркерів зірки змінює
її форму; у маркерів багатокутника і спіралі інше призначен-
ня. Багатокутник має тільки квадратний маркер для зміни
розміру та обертання; маркером спіралі регулюється кіль-
кість її витків.
На рис. 1, б, показано результати маніпулювання маркера-
ми: круглими (б) та квадратними (в).
Розглянемо особливості роботи з інструментом Вибрати (бу-
демо вважати його активним).
Об’єкт виділяють клацанням. Якщо ЛКМ натиснути у лі-
вому верхньому куті довільної прямокутної ділянки, а від-
пустити у правому нижньому, буде виділено всі об’єкти, що
до неї потрапили.
Якщо виділений об’єкт клацнути ще раз, то зміниться ви-
гляд маркерів прямокутної області виділення. Слід пам’ятати,
що кутові маркери призначено для обертання об’єкта, а гори-
зонтальні або вертикальні — для зсуву по відповідних сторо-
нах (маркерами зсуву прямокутник перетворюють на парале-
лограм).
За допомогою маркерів зміню
ють розмір і вигляд об’єктів,
але не форму контуру.
Рис. 1. Опрацювання основних
графічних примітивів.
а б в
Важливим об’єктом вектор
ного зображення є сплайн —
крива, за допомогою якої
описується та чи інша гео
метрична фігура. В Inkscape
вибір режиму сплайна здій
снюється кнопкою контек
стної панелі інструмента Перо
Безьє. На сплайнах побудова
но сучасні шрифти TrueType
і PostScript.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
216. Розділ 5216
Запитання для перевірки знань
1 Що можуть означати стрілки в кінці панелі ін
струментів Inkscape?
2 Якими інструментами малюють контури?
3 Які режими використання інструмента Перо
є в Inkscape?
4 Які інструменти призначені для створення фігур?
5 Як можна змінити розмір і форму об’єкта: на
звіть кілька варіантів?
6 Які команди контекстного меню інструмента
Зірка так змінюють початкову форму, напри
клад, зірочки ?
Завдання для самостійного виконання
Ознайомитися з можливостями Inkscape щодо
створення контурів.
1 Для зображення ламаної виберіть інстру
мент Перо Безьє (малювання кривих Безьє
чи прямих ліній).
2 На контекстному меню по черзі вибирайте
різні параметри малювання лінії, спробуйте
«написати» малу прописну літеру г (від сло
ва «графіка») — їх має бути 4 або 5, якщо
скористатися параметрами малювання лінії
з прямими кутами.
Щоб намалювати ламану, виконайте такі дії:
1) розмістіть вказівник миші в довільне міс
це полотна;
2) клацніть ЛКМ для вибору початкової точ
ки малювання;
3) перемістіть вказівник у місце, де має
бути перетин лінії; клацніть ЛКМ — для
ламаної;
4) продовжуйте, поки отримаєте щось поді
бне на літеру;
5) у кінцевій точ
ці двічі клацніть
ЛКМ.
3 Розмістіть вказівник
миші на зображенні лі
тери, намальованої як
ламана, та клацніть —
об’єкт буде виділено
пунктирною прямокут
ною рамкою з марке
рами по її контуру, як
на рис. 2.
4 Зробіть активним інструмент Вибрати (По
значення та трансформація об’єктів). Звер
ніть увагу на контекстну панель (більшість
її команд вам вже знайомі з попередніх
курсів).
5 Скористайтеся кутовими маркерами, щоб за
допомогою миші змінити розміри об’єкта.
6 Змініть вигляд ламаної. Для цього:
1) активізуйте інструмент редагування кон
турів — контекстне меню містить ко
манди редагування вузлів; на ламаній
з’являться позначки вузлів;
2) за допомогою миші виберіть будь-який
вузол (наприклад, другий) — вибраний
вузол матиме інший колір;
3) на контекстній панелі виберіть інстру
мент Зробити позначені вузли гладкими
(користуйтесь спливаючими підказка
ми) — форма лінії у зазначеному вузлі
зміниться.
7 Із натиснутою клавішею Shift виберіть ре
шту вузлів, вигляд яких необхідно змінити.
8 Якщо є потреба, виберіть вузол і відкоригуй
те форму кривої за допомогою напрямних.
9 Виберіть інструмент Олівець і знову «на
пишіть» літеру «г». Зверніть увагу, що кон
текстна панель містить такі самі параметри,
як і для інструмента Перо Безьє.
10 Виберіть інструмент Пензель і ще раз
«напишіть» літеру «г» — робота з інстру
ментом нагадує написання каліграфічним
пером.Рис. 2. Зразок
«написання» літери г
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
217. 217
5.7. Колір в Inkscape. Фарбування градієнтом
Пригадайте команди для заливки фігур та малювання їх
контурів в офісних редакторах. Чи можна замінити кольо-
ри вже побудованих фігур? Які кольорові моделі ви знаєте?
Ми ознайомилися з основними прийомами малювання
геометричних фігур, але не звертали уваги на колір цих фі-
гур. Розглянемо рис. 1. У верхньому рядку подано квадратні
об’єкти різного кольору, а в нижньому — такі самі об’єкти,
з контурами різних кольорів, але без зафарбовування вну-
трішньої області.
Рис. 1. Графічне зображення,
подане в колірній моделі RGB
R G B
=++
R G B
=++
В Inkscape зафарбовування внутрішньої об-
ласті об’єкта називають заповненням, а фарбуван-
ня контура — штрихом.
Щоб вибрати колір та тип зафарбовування,
потрібно скористатися вікном Заповнення та штрих
(рис. 2), яке відкривається командою Заповнення
та штрих у меню ОБ’ЄКТ.
Як бачимо, у ньому є три вкладки: Заповне
ння, Колір, штриха, Стиль штриха.
У вкладці Заповнення можна вибрати режим
зафарбовування внутрішньої області вибраного
об’єкта: суцільне заповнення, лінійний або раді-
альний градієнт.
Якщо фарбування відсутнє, інструмент мати-
ме вигляд хрестика.
Під інструментами з режимом заповнення
міститься область вибору кольору з кнопками
RGB, CMYK, HSL, «колесо». «Колесом» зручно ко-
ристуватися: на колі вибирається тон кольору, а
в трикутнику встановлюється його насиченість
та яскравість. Рядок альфа-канал дозволяє вста-
новити прозорість кольору.
Якщо на вкладці Заповнення вибрати режим
Зразок, то виділений об’єкт зафарбується кольо-
ром, вибраним на панелі кольорів. Щоразу, ство-
рюючи об’єкт, потрібно використовувати попере-
дньо вибраний колір заповнення та штриха.
5.7. Колір в Inkscape...
Рис. 2. Вікно Заповнення та штрих
Рис. 3. Вікно вибору стилю штриха
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
218. Розділ 5218
Вкладка Колір штриха використовується для встановлення
кольору та прозорості, штриха та їх вилучення.
На вкладці Стиль штриха (рис. 3) містяться параметри
штриха, позначки для закінчення несуцільного штриха та
порядоку розташування певного штриха серед решти.
Розглянемо алгоритм заповнення внутрішньої області по-
точного об’єкта.
Крок 1 Виберіть команду ОБ’ЄКТ → Заповнення та штрих
Крок 2 Перейдіть до вкладки Заповнення
Крок 3
Налаштуйте режим заповнення та колір (для за
повнення непрозорість не дорівнює 0)
Крок 4
Розмістіть вказівник миші всередині області
фарбування
Крок 5 Підтвердьте клацанням ЛКМ
Вибраний колір буде поточним, поки його не змінити. Щоб
змінити колір об’єкта, його слід виділити і вибрати колір на ко-
лірній панелі (клацнути ЛКМ квадратик з кольором).
Зафарбувати внутрішню область об’єкта можна як суціль-
ним кольором, так і з використанням градієнта.
Градієнтом називають спосіб фарбування, у разі застосу-
вання якого відбувається плавний перехід від одного кольору
до іншого.
Градієнт використовують як для заповнення внутрішньої
області об'єкта, так і для фарбування штриха.
Під час вибору параметра градієнт використовується поточ-
ний колір — він змінюється від повної насиченості до прозо-
рості. На об’єкті з’являється зображення так званого важеля
градієнта.
Його опорні точки призначено для встановлення межі граді-
єнтного заповнення, її колірної насиченості, зміни спрямова-
ності та кольорів градієнта.
Керувати параметрами градієнта можна за допомогою ко-
манд контекстного меню інструмента Градієнт.
Градієнти розподіляються на два типи: лінейний і раді-
альний. На рис. 4 наведено прямокутники, зафарбовані різ-
ними типами градієнтного заповнення з кольорами веселки.
Як бачимо, радіальний градієнт має два важеля: вертикаль-
ний і горизонтальний (а, б). Важелі можна переміщувати
й таким чином створювати напрямок переходу кольорів (в).
Для фарбування також можна
скористатися інструментом За-
повнення, а колір вибрати на
колірній панелі (навести вка
зівник і клацнути квадратик із
кольором) або за допомогою
інструмента Піпетка.
Кожний об’єкт обов’язково має
контур і заповнення. Якщо ви
брано команду без зафарбо
вування, об’єкт все одно має
зазначені елементи. Команди
в Inkscape розподіляються на
команди опрацювання об’єкта
або його контуру.
Рис. 4. Переміщення важелів
градієнта
а
б
в
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
219. 219
Запитання для перевірки знань
1 Назвіть команди заповнення внутрішньої об
ласті та штриха об’єкта.
2 Як відкрити вікно налаштування кольорів
об’єкта?
3 Які вкладки містить вікно Заповнення та
штрих та яке їх призначення?
4 Які типи заповнення є в Inkscape?
5 Наведіть алгоритм заповнення внутрішньої об
ласті об'єкта.
6 Поясніть механізм керування параметрами
градієнта.
Завдання для самостійного виконання
1 Намалюйте коло, виберіть його за допомо
гою інструмента Вибір.
2 У вікні Заповнення та штрих виберіть ре
жим Суцільний колір та установіть колір
фарбування, наприклад, червоний.
3 Виберіть тип заповнення лінійний градієнт —
на зображенні показано важіль градієнта.
4 Поекспериментуйте з переміщенням опорних
точок. Для цього:
1) виберіть круглу опорну точку на важелі
градієнта — точка підсвітиться кольором;
2) виберіть у палітрі кольорів колір, напри
клад, синій, — отримаємо перехід кольору
від червоного до синього;
3) аналогічно змініть перехід кольору від
синього до зеленого.
5 Двічі клацніть на важелі градієнта — з’явить
ся нова опорна точка. Після цього:
1) виберіть для цієї точки колір, наприклад,
жовтий — отримаємо синьо-жовто-зелений
градієнт;
2) додайте ще одну точку й виберіть колір
на власний розсуд.
6 Переміщуйте одну з опорних точок —
з'ясуйте, як змінюється напрямок градієнт
ного заповнення.
5.8. Складені векторні зображення в Inkscape
Згадайте можливості офісного графічного редактора. Як
ви опрацьовували зображення, що складаються з багатьох
об'єктів?
Зображення, для побудови яких використовували кілька
примітивів, називають складеними.
У таких зображеннях об’єкти можуть перекривати один од-
ного (приклад 1). Взаємне розташування об’єктів регулюється
командами контекстного меню інструмента Вибрати: Опустити
на задній план або Опустити на рівень, Підняти на передній план
або Підняти на рівень.
Для роботи з кількома об’єктами як одним цілим
у Inkscape передбачено групи команд для групування об’єктів,
об’єднання об’єктів, створення складних контурів. Команди
опрацювання виділених об’єктів містяться в меню ОБ’ЄКТ.
Операція групування полягає в об’єднанні двох або більше
об’єктів. Далі отриманий об’єкт опрацьовується як графічний
примітив. Його можна переміщувати, обертати, змінювати
5.8. Складені векторні...
Приклад 1.
На рис. 1 зображено еліпси із
заповненням. Існує два варіанти
їх розташування: а — верхній
еліпс міститься на рівень нижче
від іншого; б — міститься на рі
вень вище.
Рис. 1. Перекриття об’єктів
а б
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
220. Розділ 5220
розміри без спотворення взаємного розташування і пропорцій
його складових.
Операція об’єднання призначена для опрацювання конту-
рів виділених об’єктів (команди Об’єднати і Розділити в меню
КОНТУР). У результаті об’єднання утворюється новий об’єкт,
який має властивості об’єкта, який розміщується на верх-
ньому порівняно з іншими об’єктами рівні.
На рис. 2 наведено команди меню КОНТУР. Меню КОНТУР
містить також команди для створення складених контурів на
основі логічних операцій (Та, Ні, Або, Виключне Або тощо).
Розглянемо ці команди та нові об’єкти, створені на основі
двох еліпсів.
Якщо зображення складається з об’єктів однакової фор-
ми, їх можна не малювати окремо, а застосувати команди
меню ЗМІНИ: копіювати, вставити, дублювати, клонувати.
У разі виконання операції копіювання або дублювання нові
об’єкти створюються повністю самостійними і незалежними
від оригінала. Зазначені операції зручно виконувати за до-
помогою миші. Вказівник слід навести на об’єкт і почати
його переміщувати — у місці, де має бути копія, натиснути
клавішу Пропуск.
Клон об’єкта має тільки ті властивості, які є в оригіналі,
і змінити їх у клоні не дозволено. Контекстне меню клону навіть
не містить команд змінення заповнення або кольору контуру.
Властивості клону змінюються синхронно із змінами
властивостей оригіналу.
Окремо для клону можна змінювати його просторове роз-
міщення. Та якщо виконати команду ЗМІНИ — Клонувати —
У меню ЗМІНИ в разі виклику
команди Клонувати розкри
вається список команд, серед
яких є команда створення оди
ничного клона та команда ство
рення мозаїки клонів.
Рис. 2. Команди меню КОНТУР
Приклад 2.
На рис. 3 наведено приклади застосування ко
манд у тому самому порядку, як вони подані в меню
КОНТУР (перші малюнки в кожному рядку — зраз
ки, до яких застосовували команди).
У випадку а опрацьовували контури еліпсів без
заповнення (перший малюнок в ряді) за допомогою
команди Сума, Різниця, Перетин.
Для наочності наступні команди застосовували
до зафарбованих еліпсів (випадок б): перший ма
люнок — зразок, надалі — результат дії команд
Виключне АБО, Ділення, Розрізати контур. На
ступна група команд об’єднання: Об’єднати та до
утвореного об’єкта застосували команду Розділити
(зверніть увагу на колір).
а
б
Рис. 3. Приклади використання команд меню КОНТУР
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
221. 221
— Від’єднати клон, клонований об’єкт стає самостійним із до-
ступними для зміни властивостями.
Будь-які об’єкти можуть бути перетворені на контур. При
цьому візуально не відбувається жодних змін, але змінюють-
ся властивості об’єктів. До контурів можна застосувати ефек-
ти, які суттєво змінюють вигляд об’єкта.
Запитання для перевірки знань
1 Які зображення називаються складеними?
2 Як редагують рівні розміщення кількох об’єктів?
3 Як швидко створити кілька об’єктів на основі
існуючого?
4 Які режими клонування є в Inkscape?
5 Навіщо об’єкт перетворюють на контур?
6 Які команди наявні у вікні налаштування мо
заїки клонів та яке їх призначення?
Завдання для самостійного виконання
1 У вікні Inkscape відкрийте файл із заготов
кою орнаменту до практичної роботи №30.
2 Зробіть активним інструмент Вибрати.
3 Опрацюйте з першою п’ятіркою кругів —
фрагментів орнаменту. Для цього:
1) виділіть один із бокових кругів і цент
ральний, утримуючи клавішу shift;
2) до виділених об’єктів застосуйте команду
КОНТУР — Перетин: зверніть увагу на колір
отриманого об’єкта.
4 Повторіть попередню дію до другої п’ятірки
кругів — фрагментів орнаменту. Який колір
має створений фрагмент?
5 Створіть орнамент за зразком (рис. 5). Для
цього:
1) створіть клони для кожного з отриманих
об’єктів: ЗМІНИ — Клонувати — Мозаїка
клонів — відкриється вікно Створити мо
заїку клонів.
2) у вікні, що відкриється, встановіть кіль
кість рядків та стовпців — по 2;
3) застосуйте команди дзеркального відобра
ження деяких клонованих об’єктів, додай
те нові та перемістіть їх, як показано на
рис. 5;
4) за бажанням зафарбуйте внутрішню об
ласть об'єктів.
5) збережіть роботу у файлі з іменем Орна
мент2.
6 Переміщуйте одну з опорних точок, з’ясуйте,
як змінюється напрямок градієнтного запо
внення?
Рис. 5. Зразок орнаменту
Рис. 4. Створення мозаїки клонів об’єкта (4 зірочки) з різними
режимами клонування
а б
Приклад 3.
Для зображення феєрверка
достатньо створити кілька різ
нокольорових зірочок, а далі
кожну клонувати в мозаїку і у
вікні, що розкриється, задати
кількісні параметри мозаїки
(рис. 4).
У об’єкта прямокутник можна
змінити заокругленість кутів, але
після його перетворення в контур
ця операція стає недоступною.
Проте з’являється можливість
редагувати його вузли.
5.8. Складні векторні...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
222. Розділ 5222
5.9. Опрацювання тексту в Inkscape
Що таке напис у текстовому документі? Як форматують
текст у написах?
Для створення текстових об’єктів у Inkscape використову-
ють інструмент Створювати і Правити текстові об’єкти. В Inkscape
розрізняють такі типи тексту: простий і фігурний (художній).
Створення текстових написів здійснюється інструментом
Текст. Для створення простого тексту потрібно: розмістити
вказівник у місце створення рамки, намалювати рамку і ввес-
ти текст. У рамку можна вставити вже скопійований текст.
Простий текст можна розмістити у фігурний контейнер або
вздовж контуру: виділити текст і фігуру, наприклад, еліпс,
і запустити команду ТЕКСТ — Розмістити по контуру.
Щоб визначити тип тексту, його необхідно виділити ін
струментом Текст — простий текст містить ромбоподіб
ний маркер у правому нижньому куті контейнера.
Опрацьовують виділений текст за допомогою панелі
контекстного меню. Як і інші інструменти, Текст може виби-
рати об’єкти свого типу — текстові об’єкти. Отже, клацанням
миші вибирають текстовий об’єкт і, у разі потреби, почина-
ють змінювати текст.
Який шрифт вибрати для тексту, що вводиться, залежить від
наявності шрифту в системі, де буде відкрито SVG-файл. У ме
ню ТЕКСТ містяться команди для перетворення типів текстів.
Пригадайте, як регулюється міжсимвольний інтервал у тек-
стовому процесорі. Найпростішими маніпуляціями з виглядом
тексту є регулювання міжсимвольного та міжрядкового інтер-
валів: гарячі клавіші Alt та клавіші переміщення вказівника
змінюють існуючий інтервал на відстань один піксель.
Якщо текстовий об’єкт перетворити на контур, з’являється
можливість переміщення літер як звичайних контурів. Для
підготовки зображення з текстом до друку, літери тексту теж
перетворюють на криві — і зображення, яке було текстом,
можна «прочитати» навіть за відсутності у друкарні шрифтів.
Рис. 1. Класифікація типів тексту
Тип тексту
Простий текст
Використовують для великих за обсягом
текстових фрагментів; має такі самі струк
турні елементи, як у текстових процесорах:
абзаци, колонки тощо. Опрацювання і фор
матування здійснюється, як у написах тек
стових документів (рис. 2, а)
Фігурний (художній) текст
Використовують для невеликих за обсягом
текстових фрагментів, наприклад, заголовків.
Вибравши інструмент, вказівник потрібно
розмістити в місце введення тексту і набра
ти текст з клавіатури (рис. 2, б)
Клавіші Alt+[ або ], застосовані
до виділеної літери, здійснюють
її обертання. Зміною інтервалів
та обертанням літер створюють
красиві текстові зображення.
Рис. 2. Маніпуляції з текстом:
а — простим; б — фігурним
а
б
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
223. 2235.10. Художні ефекти...
Запитання для перевірки знань
1 Які типи тексту є в Inkscape?
2 Як уводять простий текст у робоче поле?
3 Чим фігурний текст відрізняється від простого?
4 Як візуально визначити тип тексту в Inkscape?
5 Які маніпуляції можна здійснити з літерами
тексту?
6 Навіщо текст перетворюють на контур на етапі
підготовки зображення до друку у друкарні?
5.10. Художні ефекти в Inkscape
Під час виконання практичної роботи, ви познайомилися
з деякими ефектами, які застосовували до тексту. Операції
з контуром також можна вважати ефектами роботи з конту-
ром. Деякі з них вам вже відомі, тож розглянемо ще кілька.
Цікавим є результат взаємодії тексту та контуру. Якщо
в робочому полі виділити спочатку текст, потім контур і ви-
конати команду ТЕКСТ — Розмістити по контуру, то отримаємо
текст, який буде розміщено вздовж контуру. В отриманому
зображенні можна вилучити контур — залишиться тільки
текст (рис. 1).
Ефекти опрацювання контуру можна застосувати не тіль-
ки до тексту, а й до об’єктів (рис. 2).
Меню КОНТУР містить і інші команди встановлення ефектів
до контурів. Команда Спростити найчастіше застосовується для
контурів, створених інструментом Олівець. Оскільки такі кон-
тури мають багато вузлів, то, використовуючи команду, мож-
на згладити форму кривої шляхом їх вилучення.
Розглянемо алгоритм вибору ефектів контуру.
Крок 1
У меню КОНТУР викличте команду Ефекти кон-
турів — відкривається вікно ефектів
Крок 2 Виберіть ефект — вигляд вікна зміниться
Крок 3
Виберіть необхідні параметри ефекту, клацніть
кнопку ОК
Якщо побудувати зображення контуру гілки, а в ефектах
контурів вибрати фон Кох, то отримаємо верхнє зображення
на рис. 5: намальована еталонна гілочка та дві знизу як ре-
зультат ефекту для кількості рівнів 1.
У разі збільшення кількості рівнів кожна гілочка наступ-
ного рівня породжує дві зменшені. Напрямні з маркерами
з’являються після роботи з вузлами еталонного або створено-
го зображення
Приклад 1.
На рис. 1 наведено приклад по
будови тексту, який розміщено
вздовж контуру: введення тексту
(А); малювання контуру (Б); ре
зультат виконання команди Роз
містити по контуру (В); резуль
тат після вилучення контуру (Г).
Рис. 1. Етапи побудови тексту,
розташованого вздовж контуру
Приклад 2.
Уздовж контура можна розмісти
ти об’єкт зірочка (рис. 2)
Рис. 2. Результат ефекту
розміщення зірочки вздовж
контуру
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
224. Розділ 5224
На рис. 6 показано результати застосування ефектів Роз
сіювання та Інтерполяція для двох контурів еліпса і чотири-
кутника. Спочатку створили об’єкти, потім перетворили їх
Приклад 3.
Як вам відомо, одним із видів графіки є
фрактальна графіка. В Inkscape фракталізацію
об’єкта дозволяє здійснити ефект фон Кон. На
рис. 3 подано фрактальне зображення гілоч-
ки, яку створено без додавання ефектів.
На рис. 4 також маємо фрактальне зо-
браження гілочки, тільки в кольорі. Уваж-
но придивіться до зображення — на ньому
повторюється зменшене зображення гілки з
чотирма листками. Кількість повторень — 4.
На рис. 5 видно пошкоджені контури. По-
чатковий вигляд гілки не мав пошкоджень,
але під час фракталізації відбуваються мате-
матичні розрахунки вигляду контурів і мо-
жуть з’являтися дефекти. Якщо виділити
складову початкового зображення, то виділя-
ється область, яка охоплює такі самі складо-
ві всіх рівнів.
Не можна просто так перемістити зобра-
ження рівнів, адже вони неначе прив’язані
до еталона. Але завдяки команді вузли з ряд-
ку Створення контуру з’являються напрямні
з маркерами, за допомогою яких переміщу-
ють зображення рівня.
Рис. 3. Зображення фрактальної гілочки Рис. 4. Результат опрацювання вже
створеної фрактальної гілочки
Рис. 5. Вигляд результату застосування ефекта
фон Коха
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
225. 2255.10. Художні ефекти...
на контури, виділили обидва та застосували ефект. Кількість
розсіяних чотирикутників по еліпсу встановлюється відповід-
ним параметром.
Рис. 6. Результати застосування ефектів Розсіювання та
Інтерполяції до двох контурів
У меню ДОДАТКИ командою Втягування/Розтягування ореолу...
створюють цікаві маніпуляції з контуром.
Ефекти застосовуються до окремих об’єктів (із замкненим
і незамкненим контуром) і до кількох, але незгрупованих ко-
мандою Групувати об’єкти. Налаштування ефекту здійснюється
через меню ДОДАТКИ.
Запитання для перевірки знань
1 Які ефекти можна застосувати до тексту
в Inkscape?
2 Яке призначення команди Спростити в меню
КОНТУРИ?
3 Поясніть на прикладі ефект фракталізації.
4 Скільки об’єктів має бути для ефектів Розсі-
ювання, Інтерполяція?
5 Як запустити та налагодити параметри ефек
тів з контурами?
6 Чи можливо застосувати ефект Інтерполяція
для перетікання кольорів?
Завдання для самостійного виконання
1 Створіть зображення зірочки та контур.
2 Інструментом Вибрати спочатку виділіть зі
рочку, потім контур.
3 Запустіть команду ДОДАТКИ — Використан-
ня контуру — Візерунок уздовж контуру.
Відкриється вікно (рис. 7), у якому налаго
джені параметри для зображення.
4 Уведіть параметри як на рис. 7 і проставте
прапорець біля Перегляд у дії, яке ви отри
мали зображення.
5 Проставте прапорець біля команди Візеру-
нок є вертикальним. Як змінилося зобра
ження?
6 Зніміть попередньо встановлені прапорці та
запустіть команду Застосувати.
Рис. 7. Вікно налагодження вигляду
візерунка вздовж контуру
Інтерполяція створює ефект
плавного переходу контуру од
ного об’єкта в контур іншого за
встановленою кількістю проміж
них складових.
Ореол являє собою набір кон
турів, які називають еквівалент
ними та за формою подібні
до основного контуру об’єкта.
Ореоли є збільшеними та змен
шеними контурами зразкового
і поширюються від нього ззовні
або всередині нього.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
226. Розділ 5226
5.11. Растровий редактор GIMP
Яке зображення називають растровим? Що означають по-
няття «піксель», «растр», «кольорова модель», «глибина ко-
льору»? Що означає «інструмент графічного редактора»?
Растрове комп’ютерне зображення складається з пікселів,
розташованих по рядках і стовпцях. Для опрацювання таких
зображень використовують растровий графічний редактор
GIMP (GNU Image Manipulation Program).
Програмний засіб GIMP багатофункціональний: він призна-
чений не лише для створення растрових зображень, а також
служить додатком для ретуші фотографій, мережевих систем
пакетної обробки зображень, програмою для відтворення зо-
бражень, конвертором форматів зображень тощо.
До можливостей і основних функцій редактора належать такі:
наявність повного набору інструментів для створення та опрацю-
вання зображень; раціональне використання пам’яті; підтримка
альфа-каналу для корекції прозорості; можливість роботи з ша-
рами й каналами та багаторазової відміни й повтору операцій.
Розглянемо інтерфейс графічного редактора GIMP. Інтер-
фейс має два режими: багатовіконний і одновіконний. Під
час відкриття вперше спрацьовує багатовіконний режим.
Інтерфейс редактора має такі складові (рис. 1).
Рис. 1. Інтерфейс графічного редактора GIMP
1
3
2
1 — панель інструментів, під нею — кнопки налаштування ко-
льорів і вікно налаштування параметрів обраного інструмента;
2 — область діалогу: шари, канали, контури та історія, під
нею — вікно відображення шарів;
3 — панелі Пензель/Текстури/Градієнт, що показують діалоги
налаштування пензля, текстур, градієнту. Панелі можна пере-
міщувати у вікні редактора за бажанням користувача;
4 — типи пензлів.
Перша версія GIMP написана
Пітером Маттісом і Спенсером
Кімболом. Чимало програмістів
внесло свій вклад у розробку
програми, допомогло з під
тримкою і тестуванням. GIMP
випускається командою роз
робників під керівництвом Све
на Нойманн і Мітча Наттерера.
GIMP підтримує такі формати
файлів, як GIF, JPEG, PNG, XPM,
TIFF, TGA, MPEG, PS, PDF, PCX,
BMP тощо.
4
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
227. 2275.11. Растровий редактор
Крім того, є рядок заголовка, рядок меню, вікно для зо-
бражень (розташоване посередині), унизу вікна може бути
рядок стану.
Додаткові вікна встановлюють з набору ВІКНА — Діалоги
з підтримкою прикріплення. Меню ВІКНА також містить назви
всіх відкритих вікон.
У GIMP не можна відкрити або почати створювати зобра
ження без вікна для нього. Разом з тим, можна відкрити
багато вікон із зображеннями.
Зображення в GIMP може бути достатньо складним: уявіть
стопку прозорих аркушів, на кожному з яких щось намальо-
вано. Такі аркуші є шарами в редакторі (зона 2 на рис. 1).
Зображення створюють з використанням шарів. Малювати
можна на кожному шарі. Шари можуть бути прозорими й по-
кривати не весь простір зображення, тому можна бачити не
тільки верхній шар, а й частину інших, під ним. Шари мож-
на міняти місцями. Досвідчені користувачі GIMP працюють
з багатошаровими зображеннями.
У GIMP є три колірні режими зображення: RGB, градації
сірого та індексоване.
Кольорове зображення в GIMP має три канали; колір точ-
ки на екрані, принтері або іншому пристрої виведення є ре-
зультатом об’єднання кольору кожного каналу. У градаціях
сірого працює один канал (колір змінюється в діапазоні 256
градацій сірого: від 0 — чорний до 255 — білий).
Індексоване зображення має обмежений набір кольорів:
256 або менше. Режим Індексований використовується у ви-
падках, коли важливий розмір файлу або коли зображення
має невелику кольорову гаму.
Щоб змінити колірний режим зображення, потрібно ви-
конати команду ЗОБРАЖЕННЯ — Режими і вибрати необ-
хідний режим. Колірні канали можна бачити в діалозі
Канали (зона 2 на рис. 1).
Цифрове зображення складається з сітки квадратних еле-
ментів різного кольору, так званих точок (пікселів). У кож-
ного зображення є розмір у точках, наприклад 900 точок у
ширину і 600 точок у висоту. Але пікселі — точки зображен-
ня — не мають фізичного розміру.
Екран монітору, принтери, сканери мають роздільну здат
ність — характеристику, яка визначається в кількості точок
на дюйм ppi (pixel per inch — точки на дюйм).
Точки пристроїв мають фізичні розміри (приклад).
Канал є одним компонентом ко
льору точки. Весь прямокутний
масив одного з компонентів ко
льору для всіх точок зображен
ня теж називається каналом.
Існує ще альфа-канал — додат
ковий канал, який відповідає
за непрозорість. Діапазон зна
чень альфа-каналу від 0 до
100%. Коли значення альфа-
каналу певного місця шару
дорівнює 0, це означає повну
прозорість і тоді видно колір
нижнього шару. Проміжні зна
чення альфа-каналу дають ко
лір як поєднання кольорів по
точного і нижнього шарів.
Приклад.
Під час друку роздільна здат
ність принтера визначає фізич
ний розмір зображення на папе
рі й, відповідно, розмір пікселів.
Те саме зображення 900 на 600
точок можна роздрукувати з
розміром 3 на 2 дюйма з ледь
помітними точками або на ве
ликому плакаті з великими ква
дратними точками.
Запитання для перевірки знань
1 До якого типу графічних редакторів відно
сять GIMP?
2 Назвіть елементи вікна GIMP.
3 Як Ви розумієте «шар зображення» в GIMP?
4 Дайте визначення поняття «канал зображення».
5 Назвіть кольорові режими зображення в GIMP.
6 Чому піксель не має фізичних розмірів?
Зображення, узяті з цифрових
фотоапаратів і мобільних прист
роїв, зазвичай містять значення
72 або 96 точок на дюйм.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
228. Розділ 5228
5.12. Інструменти малювання в GIMP
та їх налаштування
Які команди містяться в меню ФАЙЛ будь-якого програмного
засобу?
Для створення нового зображення в GIMP використовують
команду ФАЙЛ — Створити: відкриється вікно налаштування
параметрів зображення (рис. 1).
Вікно містить список Шаблони для зручного встановлен-
ня ширини й висоти зображення. Також їх значення можна
встановити в області Розмір зображення із зазначенням одиниць
вимірювання. Унизу містяться кнопки вибору орієнтації зобра-
ження, у GIMP цей параметр має назву Портрет/Ланшафт.
Якщо в меню ФАЙЛ вибрати підкоманду Створити (вона вка-
зана без гарячих клавіш), відкривається вікно створення зо-
браження з переліком команд, які залежать від операційної
системи (команди використовують системні функції) (рис. 2).
Рис. 2. Додаткова команда створення зображення
Панель інструментів GIMP містить 13 інструментів для
малювання (рис. 3). Усі вони створюють зображення шляхом
нанесення на тло кольорових крапок. Ці інструменти згрупо-
вані в меню Інструменти за призначенням у створенні загаль-
ного зображення.
Рис. 3. Інструменти малювання редактора
Рис. 1. Вікно налаштування
параметрів зображення
Якщо ширину й висоту встано
вили однаковими, кнопки орі
єнтації будуть недоступні.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
229. 2295.12. Інструменти...
Розглянемо призначення інструментів малювання.
•• Інструменти Олівець, Пензель, Аерограф і Перо створюють
лінії під час переміщення миші з натиснутою лівою
кнопкою. Решта використовується для модифікації на-
явних (уже намальованих або відкритих) зображень.
•• Інструмент Заповнення заповнює замкнуту ділянку ко-
льором або будь-якою текстурою. Для створення колір-
ного переходу в межах замкненої ділянки є інструмент
Градієнт.
Замкнена ділянка в растровому редакторі — виділена
спеціальним інструментом область, або область, яка має
суцільний колірний кордон.
•• Інструмент Гумка стирає намальоване кольором тло.
•• Інструменти Штамп, Штамп з перспективою, Лікувальний
пензель виконують клонування фрагмента зображення
і переміщують у вибране місце на зображенні. Вико-
ристовуються для усунення невеликих дефектів зобра
ження.
•• Інструменти Розмиття/Різкість, Палець і Освітлення/Затемне
ння використовуються для створення ефектів переходу
кольору або інших ефектів художнього перетворення
вже намальованого.
Розглянемо алгоритм малювання відрізка.
Крок 1
Перемістіть вказівник миші в початкову точку
відрізка
Крок 2
Натисніть клавішу Shift і з натиснутою ЛКМ пе
ремістіть вказівник по ходу відрізка
Крок 3 Відпустіть мишу в кінцевій точці
Лінії малюють інструментами
Олівець, Пензель, Гумка, Аеро-
граф, Перо, Штамп, Розмиття/
Різкість, Палець і Освітлення
Запитання для перевірки знань
1 Назвіть способи створення зображення в
GIMP.
2 Що означає «замкнена область зображення»?
3 Назвіть інструменти малювання в GIMP.
4 Як вибрати колір малювання; тла?
5 Яким кольором відбудеться малювання після
відкриття GIMP?
6 Спробуйте намалювати відрізок одразу після
відкриття GIMP. Чому редактор не реагує на
ваші дії?
Завдання для самостійного виконання
1 Запустіть редактор GIMP.
2 Перейдіть до значка вибору кольору під па
неллю інструментів.
3 Клацніть верхній прямокутник — відкриється
вікно вибору кольорів.
4 Виберіть колір малювання, наприклад, черво
ний, підтвердьте — Гаразд.
5 Клацніть нижній прямокутник і у вікні ко
льорів виберіть колір тла.
6 Клацніть подвійну стрілку — змінилися кольо
ри малювання та тла.
Вигляд лінії залежить від на
лаштувань інструмента, яким
її малюють. Так само створю
ють і ламані. Клавіша Ctrl до
зволяє створювати відрізки
під кутами, кратними 15. Після
вибору інструменту вказівник
миші має вигляд активного
інструмента. Щоб намалювати
лінію потрібного вигляду, слід
вибрати в параметрах інстру
мент Пензель тощо.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
230. Розділ 5230
5.13. Інструменти виділення в GIMP
та їх налаштування
Пригадайте, які режими виділення об’єктів має Inkscape.
Часто в зображенні необхідно виокремити об’єкт, щоб змі-
ни стосувалися тільки його і жодним чином не впливали на
частину зображення.
Інструменти виділення призначено для відокремлення необ-
хідної області зображення активного шару. Таких інструмен-
тів у GIMP сім (рис. 1).
Рис. 1. Додаткова команда створення зображення
•• Інструменти Прямокутне виділення і Еліпс виділяють ді-
лянки, які відповідають формі інструмента. Щоб зробити
кути прямокутника непрямими, до виділеної ділянки слід
застосовати команду ВИДІЛЕННЯ — Закруглений прямокут
ник і налаштувати ступінь заокругленості.
•• Інструмент Вільне виділення, або Ласо, нагадує обведен-
ня певної ділянки олівцем. Виділення переднього плану
створює навколо виділеної області маску — напівпрозо-
ре заповнення синього кольору. Края маски можна точно
відкоригувати Пензлем та Гумкою.
•• Інструменти Виділення зв’язної області, або Чарівна палич
ка, та Виділення за кольором виділяють області схожого
кольору. Застосування інстумента Чарівна паличка надає
розмите виділення. Інструмент Виділення за кольором
від Чарівної палички відрізняється тим, що виділяють не
лише суміжні області, а й всі області в зображенні ко-
льором, на який наведено вказівник.
•• Інструмент Розумні ножиці має таку назву завдяки розпізна-
ванню інструментом кольорових країв об’єкта зображення:
за його допомогою виділяють область вручну, а інструмент
визначає межі переходу одного кольору в інший.
Після того як інструмент виділення вибрано, змінюються
команди області параметрів. Для зручності всі параметри ви-
ділення однакові для всіх інструментів, просто деякі з них
застосовують тільки для окремих випадків. Загальними па-
раметрами є режим згладжування та розмиття меж (рис. 2).
Інструменти перетворення та кольору розглянемо у процесі
створення зображень у GIMP.
Рис. 2. Загальні параметри
налаштування інструментів
виділення
Команди Згладжування та Роз-
мивати межі мають:
• режим заміни (замінює по
переднє виділення на нове);
• режим додавання (додає
нове виділення до існуючого);
• режим віднімання (віднімає
нове виділення від існуючого);
• режим перетину (залишає
загальну частину обох виді
лень).
Якщо зображення виявляється
більшим за вікно редактора,
GIMP відображає його у змен
шеному масштабі: масштаб по
казано в рядку стану. Якщо вста
новити масштаб 100 % (масштаб
можна вибрати у списку масш
табів рядка стану), з’являться
смуги прокрутки для повного
перегляду зображення.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
231. 2315.13. Інструменти...
Приклад
Виділену ділянку зображення обведено пунк
тирним контуром (рис. 3, а). Для детального пере
гляду такої ділянки є кнопка швидкої маски, яка ви
кликається командою ВИДІЛЕННЯ — Перемкнути
швидку маску або клацанням кнопки в рядку стану.
Виділена область залишається такою, як і була
в зображенні, решту вкрито червоним прозорим
кольором (рис. 3, б). Зображення зі швидкою мас
кою можна зберегти для роботи, також інколи
зручніше в режимі швидкої маски копіювати виді
лене в інше зображення. У режимі швидкої маски
зручно коригувати виділену область: якщо по ви
діленому почати малювати будь-яким інструментом
малювання, наприклад, Пензлем, чорним кольором,
виділені місця малювання видаляться з виділеного,
а білим можна додати до виділення інші ділянки.
Виділену ділянку зображення можна зробити
прозорою (команди ПРАВКА — Очистити), перемі
щувати, змінювати розміри. Якщо під час перемі
щення такої ділянки утримувати сполучення клавіш
Shift+Alt (рис. 3, в), то відбудеться додаткове перемі
щення, а якщо CTRL+ Alt — з переміщенням зникає
початково виділена область, у різних версіях GIMP
сполучення клавіш може бути іншою. В останніх ви
падках створюється так зване плаваюче виділення.
Щоб працювати із зображенням і надалі, плаваюче
виділення можна зняти клацанням у будь-якій не
виділеній ділянці зображення.
Рис. 3. Опрацювання виділених областей
а б в
Запитання для перевірки знань
1 Для чого в GIMP є команди виділення?
2 Назвіть інструменти виділення в GIMP.
3 Поясніть, що таке швидка маска.
4 Чи може бути в одному зображенні кілька
областей виділення?
5 Назвіть загальні параметри елементів виді
лення.
6 Який алгоритм виділення тла у зображенні
з об’єктом?
Зображення можна відкрити командою ЗОБРАЖЕННЯ —
ФАЙЛ. Відкрите зображення часто заповнює все вікно редак-
тора.
Розмір зображення можна змінити командою ЗОБРАЖЕН
НЯ — Розмір зображення. Відкривається вікно, у якому й на-
лагоджують розмір зображення.
Після закінчення роботи в середовищі редактора необхід-
но зберегти зображення: ФАЙЛ — Зберегти або Зберегти як.
Командою Вихід закриваються всі зображення і GIMP. Якщо
є незбережені зображення, редактор їх покаже зі вказівкою
Зберегти.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
232. Розділ 5232
5.14. Шари. Створення колажу
Поясніть поняття шарів у редакторі GIMP на прикладі про-
зорих аркушів.
Структура шарів зображення відслідковується в діалозі Шари.
Під час відкриття GIMP діалоги Шари і Пензлі буде подано у ві-
кні редактора.
Вікно Шари також можна викликати через меню ВІКНА ко-
мандою Діалоги з підтримкою прикріплення і вибрати діалог
Шари — на рис. 1 наведено вікно щойно відкритого порожнього
зображення.
У вікні Шари відображаються шари зображення: маленькі
мініатюри й назви. При створенні нового зображення, воно
складається лише з одного шару — тла. Решта доданих ша-
рів будуть прозорими. Опрацювання прозорості шарів здій-
снюється роботою з альфа-каналом.
Активним шаром є шар, у якому відбувається створення
та опрацювання зображення. Він виділений кольором, ак-
тивним стає після подвійного клацання ЛКМ.
Шари мають назву, автоматично надається назва: шар 1,
шар 2 і т. д. Назву шару можна змінити. Особливо це важ-
ливо для складного зображення, кожному шару краще за зо-
браженням на ньому.
Щоб змінити назву шару, слід виконати подвійне клацання
ЛКМ і ввести нову, або з контекстного меню шару вибрати
команду Правка ознак шару.
Якщо клацнути кнопку між зображеннями ока й мініатюрою
шару, з’явиться зображення ланцюжка. Його призначен-
ня — згрупувати шари для операцій із кількома шарами.
У вікні налагоджують режими зображення шару (ми роз-
глянемо їх далі), ступінь непрозорості, а також можна за-
мкнути шар.
Назва активного шару відображена в рядку стану. У нижньо-
му рядку вікна кнопки команд опрацювання шарів дозволяють:
•• створити новий шар до зображення;
•• підняти активний шар на рівень;
•• опустити активний шар на рівень;
•• створити копію активного шару та додати її до зобра-
ження;
•• прикріпити плаваючий шар (ще одна можливість зняти
плаваюче виділення);
•• видалення активного шару (видалити шар ще можна пе-
ретягуванням його у область корзини).
Для опрацювання шарів призначено меню ШАР. У меню є ко-
манда Шар до розміру зображення. В одному зображенні розмір
шарів може бути різний. Регулювання розміру і розміщення
шару здійснюється командою Розміри меж шару, переміщення
шарів і виділення інструментом Переміщення. Виконайте впра-
ву для опрацювання зображень в шарах і операцій з шарами.
Рис. 1. Вигляд вікна Шари
Зображення в GIMP зручно
уявити як стос прозорих арку
шів — шарів. На кількість шарів
обмежень немає, усе залежить
від доступної пам’яті в системі.
Зображення ока означає мож
ливість переглянути шар. Для
зняття режиму перегляду шару
(вилучення зображення ока) по
трібно по цьому зображенню
клацнути ЛКМ. Якщо клацнути
з натиснутою клавішею Shift,
для перегляду залишиться шар,
який клацнули.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
233. 2335.14. Шари...
•• Режими шарів у GIMP
Окрім характеристик шару, з якими ви ознайомилися,
є такі, як прозорість і режим. Зазвичай під час роботи в полі
Режим вибрано Звичайний. Це означає, що зображення в ре-
дакторі створюється як на папері (нижні шари не видно).
Щоб побачити зображення нижнього шару, потрібно ре-
гулювати прозорість поточного. Уявіть малювання на склі:
його можна фарбувати, щоб малюнок був непрозорий або на-
півпрозорий, або ледь помітний. Але через малюнок певною
мірою проглядається все, що є за склом.
Регулювання прозорості шару аналогічне малюванню на
склі. Для регулювання позорості користуються бігунком зна-
чень непрозорості діалогу Шари: 100 % — шар непрозорий,
а 0 % — повністю прозорий.
Зображення зазвичай складається з кількох шарів, і через
частково непрозорий шар видно зображення нижніх шарів. Вони
накладаються (верхнє на нижнє) і внаслідок змішування кольорів
їх зображень отримуються цікаві малюнки. Растрові редактори
мають режими змішування. У GIMP їх 21. Для зображення
лише з одним шаром вибір режиму ні на що не впливає. Ре-
жими вибирають із поля режими діалогу Шари (див. рис. 1).
Запитання для перевірки знань
1 Що таке шар зображення?
2 Як переглянути шари зображення в GIMP?
3 Які властивості перегляду шарів є у вікні Шари?
4 Поясніть, що таке плаваюче виділення.
5 Які команди роботи з шарами наведені у ві
кні Шари?
6 Які команди з шарами здійснюють в межах
стопки шарів?
Завдання для самостійного виконання
1 Відкрийте редактор і запустіть команду
створення нового зображення.
2 Інструментом виділення виділіть прямокут
ну ділянку — вертикальну смужку.
3 Виберіть червоний колір і інструментом запо
внення зафарбуйте смужку.
4 Створимо смуги з кольорами веселки різни
ми способами:
Спосіб 1: працюємо з копією зображення. Для
цього виконайте такі дії.
1) Скопіюйте виділену область. Створіть но
вий шар, зробіть його активним і вставте
смужку на нього.
2) Перефарбуйте смугу на помаранчевий
колір.
3) Смужку перемістіть праворуч від черво
ної. У вас з’явилось плаваюче виділення,
яке розташоване на тимчасовому шарі по
верх стопки шарів.
4) Для плаваючого виділення прикріпляють
шар одноіменною командою з меню ШАР.
Зверніть увагу на наявність шарів після
прикріплення. Також прикріпити можна
створивши новий шар — плаваюче виді
лення буде на новому шарі.
5) Змініть назву шару на помаранчевий.
Спосіб 2: працюємо з копією шару. Для цьо
го виконайте такі дії.
1) Створіть копію попереднього шару, пе
рефарбуйте смужку в жовтий колір, пе
ремістіть її, прикріпіть шар. Шар має
бути виділений синім кольором.
2) Виконайте команду ШАР — Об’єднати з
попереднім і надайте шару нову назву П
Ж (помаранчевий і жовтий).
Колаж (від франц. Coller — при
клеювання) — прийом в мисте
цтві, поєднання в одному творі
різнорідних елементів (різних
за походженням, контрастних
за стилем тощо). Колажі ха
рактерні для мистецтва XX ст.
Процес створення колажу по
лягає в створенні мальованих
або графічних зображень шля
хом наклеювання на будь-яку
основу предметів і матеріалів,
що відрізняються від основи за
кольором і фактурою.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
234. Розділ 5234
Виклик будь-якої команди супро
воджується відкриттям відповід
ного їй вікна для налагодження
параметрів перетворення. Вікно
відкривається й у разі активації
інструмента.
Завдання для самостійного виконання
5 Аналогічно способу 2 створіть шари З Б із
зеленою та блакитною смужками та С Пур
пуровий із синьою та пурпурною смужками.
Якщо у вас увімкнутий перегляд усіх шарів,
бачите кольори веселки (рис. 2).
6 Попрацюємо з шарами. Для цього виконайте
такі дії.
1) Виконайте команду ШАР — Стопка ша
рів — Зворотній порядок шарів. Чому ви
бачите тільки червону смугу? Відмініть ко
манду з меню ПРАВКА.
2) Поекспериментуйте з командами Стопки
шарів. Зверніть увагу на розташування ша
рів. Чого не відбуваються зміни в зображен
ні? Як прибрати показ якихось смуг?
3) Виконайте команду Зображення —
Об’єднати видимі шари. Як називається
єдиний шар створеного зображення?
Рис. 2. Вигляд зображення і
вікна Шари для нього
5.15. Редагування зображень у GIMP
Які можливості щодо редагувань зображень мають офісні про-
грами, Inkscape?
У процесі створення зображень може виникнути потреба
у перетворенні як всього зображення, так і його частини. Для
перетворення зображень використовують інструменти пере
творення (рис. 1).
Рис. 1. Команди перетворення в GIMP
Із деякими командами і відповідними їм інструментами
ви вже познайомились. Оскільки GIMP часто використовують
для виправлення якості цифрових фотографій, розглянемо
процес перетворення готових зображень.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
235. 2355.15. Редагування...
Рис. 2. Вікно налагодження обертання
•• Обертання — здійснюється інструментом Обертання і при
натисканні миші з’являється сітка, яка обертатиметься
за рухом миші. Коли сітка виглядає так, як потрібно,
слід натиснути клавішу Enter і зображення буде оберне-
ним. У процесі обертання з’являється вікно Обертання
(рис. 2), у якому відображено маніпуляції із зображен-
ням. Підтвердити результат можна кнопкою Повернути.
Після обертання зображення утворюються трикутні по-
рожнини по кутах зображення. Їх можна залити нейтраль-
ним кольором, але якщо кут обертання невеликий, краще
використати кадрування.
У наведеному прикладі розглянули обертання на довіль-
ний кут, але редактор містить команди віддзеркалення та
обертання на визначений кут у меню ЗОБРАЖЕННЯ — Перетво
рення (рис. 3).
Рис. 3. Команди перетворення меню ЗОБРАЖЕННЯ
Для обертання кількох шарів зображення їх попередньо
необхідно зв’язати встановленням ланцюжка зліва від мініа-
тюри шару у вікні ШАРИ.
Приклад
На рис. 4 показано зобра
ження (А), його вигляд після
обертання (Б). На якість фото
графії не звертайте уваги —
у подальшому попрацюємо над
її покращенням.
Рис. 4. Результат перетворення зображення (обертання і кадрування)
ба в г
Режим кадрування встанов
люють командою Кадрування
в меню ІНСТРУМЕНТИ — Інстру
менти перетворення або активі
зацією інструмента кадрування.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
236. Розділ 5236
•• Кадрування. Кадруванням є процес вилучення (відрізан-
ня) областей зображення.
В обох випадках інструмент активний, а під панеллю ін-
струментів з’являються команди налагодження його параме-
трів (рис. 5). Установлюють прапорці.
•• Для кадрування активного шару придатний лише поточ-
ний шар.
•• Дозволити зростання, якщо необхідно «наростити» ре-
зультуюче зображення прозорою областю, оскільки рам-
ка кадрування може вийти за межі зображення.
•• Команду Малювати з центру застосовують, якщо необхід-
но встановити розміри кадрування. Початковою вважа-
ється точка встановлення вказівника в зображенні. Від
неї розраховується розмір, як від центра.
•• Командою Фікс встановлюють співвідношення сторін зо-
браження, конкретне значення ширини або висоти зо-
браження.Для кадрування зображення вказівник миші
встановлюють в лівий кут зображення, затискують ЛКМ
і переміщують вказівник до нижнього правого кута —
так створюється виділена прямокутна область кадру-
вання. Зображення береться в рамку і переміщенням
кутів цієї рамки (вони виділені пунктиром) урізають зо-
браження. Зміна області кадрування, розмір і пропорції
фіксуються в рядку стану.
У меню Зображення вказано кілька режимів кадрування:
•• Кадрувати у виділене — застосовується, якщо ви хочете мати
тільки виділену область зображення як окреме зображення;
команда урізає всі шари, які складають зображення.
•• Автокадрування — урізання країв зображення активного
шару: визначення кольору тла і обрізання до зображень,
кольори яких відрізняються від фонового.
•• Старанне кадрування — вирізання із зображення ділянок
одного кольору, аналізується колір активного шару а
урізання відбувається для всіх шарів.
Пригадайте призначення напрямних і сітки в Inkscape.
У меню є команда Гільйотина, яку використовують для роз-
різання зображення на частини вздовж направляючих, вста-
новлених користувачем. У процесі розрізання напрямними
встановлюють межі частин зображення, запускають команду
Гільйотина і GIMP відкриває стільки вікон зображення, скіль-
ки було частин у зображенні. Надалі кожну частину можна
зберегти в окремому файлі.
Змінити форму виділеної ділянки або шару дозволяють ко-
манди Викривлення, Перспектива і Дзеркало.
Запитання для перевірки знань
1 Які команди застосовують для перетворення
зображень?
2 Що означає операція кадрування зображення?
3 Як можна здійснити кадрування в GIMP?
4 Які проблеми можуть виникнути після
застосування обертання до зображення?
5 Яке призначення і результат відпрацювання
команди Гільотина?
6 Що потребує особливої уваги при використан
ні різних режимів кадрування?
Завдяки параметрам налаго
дження інструмента кадрування
можна не користуватись мані
пулятором миша, а налагодити
встановлення початкової позиції
і розмір результуючого зобра
ження.
Рис. 5. Налаштування параметрів
інструмента Кадрування
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
237. 237
5.16. Канали. Корекція кольору та тону
Як можна змінити кольорову гаму зображення в Inkscape?
Важливою характеристикою зображення є якість. Фото-
графії, наприклад, можуть бути занадто затемненими, нечіт-
кими, неправильно передавати колір, мати дефекти (особливо
старі фото) та ін.
Розрізняють глобальні та локальні дефекти зображень. Для
усунення глобальних дефектів, таких як низька контрас-
ність, колірні спотворення, зернистість, використовують то-
нове (налагоджують яскравість, контрастність тощо) та колір-
не (змінюють та налаштовують колірну гаму) коригування.
Локальні дефекти, які може мати зображення, — подряпи-
ни, плями, «червоні очі», можуть частково зникнути під час
усунення дефектів усього зобраення.
Розглянемо можливості GIMP для кадрування зображень.
Розглянемо коригування за допомогою рівнів. Інструмент
Рівні використовують для освітлення й затемнення зображень,
зміни контрасту та коригування відтінків, що переважають.
Вікно Коригування рівнів кольорів містить гістограму
Рівні на вході. Тон кольору розташовано зліва (темні) напра-
во (світлі). Якщо графік має вигляд зафарбованої ділянки, це
вказує на наявність у зображенні майже всієї гами відтінків.
Рівні входу використовуються для освітлення світлих облас-
тей (яскравих тонів), затемнення тіней (темних тонів), зміни
балансу світлих і темних тонів.
Для регулювання освітлення в каналі слід установити
Яскравість і відрегулювати її переміщенням маркерів: лівим
(чорним) — темні тони, правим (білим) — світлі, середнім (сі-
рим) — проміжні. Достатньо «захопити» вказівником миші
маркер на горизонтальній вісі й із натиснутою ЛКМ переміс-
тити. Відразу змінюється освітленість зображення.
Послідовність операцій для
покращення якості зображення
1) за потреби зображення ка
друють;
2) здійснюють тонове та колірне
коригування;
3) за потреби ретушують фото;
4) установлюють розмір зобра
ження, тип відповідно до
його призначення;
5) після виконання операцій
(п. 4) часто збільшують різкість
зображення.
Приклад
На РИС. 5.46 видно, що фото
графія затемнена. Для коригування
освітленості і кольорової гами зо
браження GIMP пропонує інструмен
ти кольору в меню КОЛІР та ІНСТРУ-
МЕНТИ (рис. 1).
Рис. 1. Інструменти кольору в меню КОЛІР і ІНСТРУМЕНТИ
Гістограма є графіком розподілу
кількості пікселів (вертикальна
вісь) по колірних тонах (гори
зонтальна вісь).
5.16. Канали. Корекція...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
238. Розділ 5238
Значення можна вибирати маркерами, за допомогою пипе-
ток і встановленням значень.
Рівні на виході здійснюють колірне коригування: можна
також використовувати маркери або проставляти значення,
й колірна гама зображення змінюватиметься. Окремі кольори
можна скоригувати, якщо вибрати їх у списку Канал. Коман-
дою Відновити канал можна повернути зображення до попе-
реднього стану.
Розглянемо коригування за допомогою кривих. Інструмент
виклику методу тонових кривих Криві — найбільш склад-
ний інструмент, призначений для здійснення зміни кольору,
яскравості, контрасту або прозорості в активному шарі або
виділенні.
У вікні, що розкриється (рис. 3), горизонтальна вісь на
графіку визначає тональні рівні на вході, вертикальна вісь —
на виході. Вказівник миші перетворюється на піпетку. Гра-
фік є лінією — кривою, проведеною з лівого нижнього кута
в правий верхній.
Спочатку графік є прямим відрізком, кожен рівень на вхо-
ді відповідає тому самому значенню рівню на виході. GIMP
автоматично проставляє вузли на кінцях кривої: для чорного
(0) і білого (255) тонів. Показчик значень координат постійно
міститься в лівій верхній частині сітки, за його значеннями
віддразу видно, як змінюється тон вихідного зображення від-
носно початкового.
Рис. 3. Вікно коригування кривих
кольору
Приклад
Рис. 2. Результат тонового коригування зображення ?
На рис. 2 показано вигляд гістограми та зобра
ження після використання чорного й білого марке
рів. Освітленість також регулюють переміщенням
середнього маркера в бік темних або світлих тонів.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
239. 239
Регулювання яскравості або кольорового тону (вибира-
ють із списку) вихідного зображення здійснюється нови-
ми вузлами на графіку. Слід клацнути ЛКМ криву, по-
тім переміщення вузла догори вниз змінює вигляд кри-
вої і додає / зменшує тон на зображенні. Можна постави-
ти два вузли — так визначиться сегмент кривої, яку теж
переміщують.
Ознайомимося з правилами тонового коригування методом
кривих.
•• Підняти вузол — додати в даній точці світла.
•• Зробити криву більш горизонтально — звузити вихідний
колірний діапазон зображення.
•• Переміщення нижнього вузла вправо та верхнього вліво
аналогічне переміщенню чорного та білого маркерів на
гістограмі Рівні.
Переміщення білого маркера дає такий результат: всі точ-
ки з тоном, більшим за встановлений білим маркером, ста-
ють білими. Аналогічно працює переміщення чорного марке-
ра. Крива має інший кут нахилу, а зображення стає більш
контрастним.
•• Збільшити контрастність — вигнути криву: зліва від се-
редини опустити, а справа підняти.
•• Інвертувати кольори — перемістити правий вузол у
верхню точку, а лівий у нижню.
Виконаємо вправу. Ви можете вибрати будь-яке зображен-
ня й проаналізувати, якзмінюватиметься вигляд зображення
залежно від ваших дій.
Якщо «взяти» вказівником колір
у певній точці зображення, на
графіку з’явиться вертикальна
пряма, яке перетинає вісь входу
саме в точці значення каналу.
Для перегляду результатів
опрацювання зображення
має бути прапорець біля
команди Попередній перегляд.
Щоб завершити роботу з
коригуванням, треба клацнути
кнопку Гаразд.
Запитання для перевірки знань
1 Поясніть поняття каналів у GIMP.
2 Які є загальні дефекти фотографій?
3 Поясніть різницю між тоновим та колірним
коригуванням.
4 Як коригують яскравість у вікні Рівні?
5 Як коригують зображення командами вікна
Криві?
6 До яких шарів застосовується тонове коригу
вання?
Завдання для самостійного виконання
1 Відкрийте зображення у GIMP.
2 Запустіть команду КОЛІР — Криві.
3 Аналізуємо графік: на гістограмі (див. рис.
3) видно, що лівий чорний маркер розта
шований окремо від самої гістограми. Це
означає відсутність певної гами кольорів в
зображенні внаслідок чого зображення є
розпливчатим. Чорний маркер необхідно
перемістити ближче до основних присутніх
тонів. Зображення стає більш контрастним і
темнішим.
4 Додайте приблизно посередині прямої ву
зол і трохи підніміть його і, як наслідок, пря
му. Відслідковуйте зміни, щоб не з’явилося
занадто багато білих плями на листі під сон
цем.
5 Виберіть кольорові канали й поексперимен
туйте з кривими, вузлами, відслідковуючи
зміни в зображенні.
6 Підтвердьте зміни кнопкою Гаразд і збере
жіть зображення.
5.16. Канали. Корекція...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
240. Розділ 5240
5.17. Коригування зображення.
Інструменти ретушування в GIMP
Часто на фотографіях з’являються плями, наприклад, на
об’єктив може потрапити пил тощо. Це локальні дефекти.
Щоб їх уникнути, використовують можливості редактора з
опрацюванням локального місця зображення.
Ретушування — процес усунення дефектів фотографій:
плям, подряпин, дефектів зйомки, ефекту «червоних очей»
тощо.
Із розвитком фотографування стали звертатися до корекції
фото. Метод монтажу фотографій був винайдений французь-
ким фотографом Іполитом Байярдом. Колажі робилися з не-
гативів або готових фотографій, які потім перезнімалися або
передруковувалися. З’єднання негативів часто виконувалося
для досягнення особливого художнього ефекту.
Розглянемо інструменти, принцип дії яких полягає у клону-
ванні нормально зображених ділянок фото — зразкових, та на-
кладання їх на ділянки з дефектом. Щоб уникнути невідповід-
ності кольорів, слід вибрати зразок поблизу ділянки з дефектом.
•• Інструмент Штамп використовують для копіювання однієї
частини зображення в іншу. Під час усунення локальних
дефектів зображення з використанням Штампа важливо
вибрати ділянку для вставлення її копії на потрібне місце.
Штамп має такі самі параметри, які і Пензель.
Щоб скопіювати зразок, слід навести вказівник в необхідне
місце, утримууючи клавішу Ctrl, і клацнути ЛКМ — зразок
скопійовано. Після виділення зразка слід відпустити клавішу
Ctrl, перемістити вказівник миші на місце з дефектом і клац-
нути. Якщо яскравість і колір у місцях зразка і клонування од-
накові, дефект усувається непомітно. Таку операцію здійснюють
стільки разів, скільки потрібно для усунення дефекту.
•• Параметр Джерело. Зразкову ділянку як з існуючого зо-
браження, так і з інших — текстур — вибирають Штам-
пом. Вибір здійснюється налагодженням параметру
Джерело. Зразок береться з будь-якого шару існуючого
зображення. Цей шар має бути активним. Утримуючи
клавішу Ctrl, беруть зразок, активним роблять шар для
вставлення і вставляють зразок.
Якщо вибрати як джерело текстуру, й активізувати мініа-
тюру текстури, відкриється вікно із зразками текстур. Зразок
вибирають клацанням ЛКМ. На рис. 1 показано вставлення у
правий прямокутник зразка з лівого прямокутника поточного
шару, з іншого шару (зелений колір) та з текстури.
•• Параметр Вирівнювання має кілька значень. Не можна
просто взяти зразок і вставити, його відповідає значен-
ню немає вирівнювання.
Першою в історії людства фото
графією був кадр «Вигляд з вікна»
французького винахідника-фото
графа Ж. М. Ньепса (1826 р.).
Льюїс Керрол (Доджсон), автор
усім відомих пригод Аліси, до
сяг великих результатів в спра
ві фотографування та опра
цювання фото. Разом із Генрі
Пічем Робитсоном та Оскаром
Гюставом Рейландером він вва
жається одним із найкращих
фотографів ХІХ ст.
У 1850-х років почав розвивати
ся художній спосіб ретуші. Ко
лись фотомайстер на негативі
вичищав задній план до білого
фону, на відбитку фотографії
малював мальовничий пейзаж,
інтер’єр тощо. Так змінювали
тло фотографії.
Рис. 1. Вікно коригування кривих
кольору
Завдяки параметрам налаго
дження інструменту Штамп
можна виконувати різноманітні
операції, а також автоматизува
ти багаторазове штампування.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
241. 241
Фіксоване вирівнювання дозволяє багаторазове вставлення
з одного зразкового місця: один раз взяли зразок і вставили
кілька раз його.
Для багаторазового використання штампу краще працю-
вати з вирівнюванням. У редакторі запам’ятовується від-
носне положення зразка і першого місця вставлення. Надалі
не беруть зразок, а просто переміщують штамп і клацають
для вставлення — буде вставлено зразок з таким же віднос-
ним розташуванням: автоматично зміститься так же зразок
і вставлена ділянка буде відповідати новому зразку. (Працює
цей режим вирівнювання як багаторазове вставлення клітин-
ки з відносним посиланням в Excel.)
•• Лікувальний пензель. За своєю дією інструмент схожий
на Штамп, але додатково коригує результат відповідн до
тону одного кольору пікселів у місці вставлення. Редак-
тор аналізує колір пікселів навколо області дії інстру-
менту та підлагоджує колір зразка до кольору ділянки
для вставлення. В момент виділення зразка вигляд ін-
струмента набуває вигляду піпетки.
Як вже зазначалось, інструменти Штамп і Лікувальний
пензель використовують поточні налагодження Пензля. У ві-
кні налагодження параметрів можна змінити і вигляд пензля,
і його розміри. Щоб уникнути різких переходів кольорів, та-
кож можна проставити прапорець біля команди Поступовий
перехід, вибравши режим Розчинення.
Приклад
На рис. 2 у випадку А показано зразкову ді
лянку й ділянку відпрацювання штампу, в випад
куБ що штамп перемістили на блакитному прямо
кутнику, й одразу змістилася зразкова ділянка на
синьо-червоному прямокутнику; аналогічно від
булось і в зображенні в випадку В. Отже, встанов
ленням вирівнювання взяли один раз зразок і ви
користали 4 рази його штампування (рис. 5.43, г).
Команда Вирівнювання З реєстрацією фіксує шар
для зразка.
Рис. 2. Результат використання штампу з вирівнюванням
а б в г
Запитання для перевірки знань
1 Поясніть алгоритм роботи з інструментом
Штамп.
2 Назвіть типи зразків для штампування.
3 Які можливості має редактор для багаторазово
го штампування зразків?
4 Поясніть різницю між інструментами Штамп
і Лікувальний пензель?
5 Які зміни відбуваються із зображенням після
використання інструмента Перспектива?
6 Який алгоритм використання інструменту
Штамп з перспективою?
На панелі інструментів є ще один
штамп — Штамп з перспективою.
Виконайте практичну роботу
для знайомства з вказаним інст
рументом, а також з інструментом
перетворення Переспектива.
5.17. Коригування...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
242. Розділ 5242
5.18. Фільтри. Інструмент Текст
Gimp має набір фільтрів для застосування спеціальних
ефектів перетворення зображень активного шару. Викорис-
тання кількох фільтрів дозволяють зі звичайного зображення
отримати твір мистецтва.
Фільтр — це засіб перетворення зображення активно
го шару із застосуванням спеціального математичного
алгоритму. Результат виконання фільтру — новий ви
гляд зображення.
Редактор Gimp містить такі групи фільтрів (рис. 1).
•• Розмивання — викликає зменшення різкості переходів
між кольорами.
•• Покращення — усуває дефекти зображення (підвищити
різкість, видалити ефект червоних очей тощо).
•• Викривлення — перетворює вигляд зображення різними
способами.
•• Світло і тінь — містить три групи фільтрів: фільтри світ-
лових ефектів для ефектів освітлення зображення, філь-
три для створення тіней і фільтри ефекту скла. Останні
перетворюють зображення так, ніби його переглядають
крізь лінзу або скляні блоки.
•• Шум — додає шумові ефекти в зображення: додаються
пікселі з випадковими колірними значеннями, що ніби
пом’якшує вигляд зображення.
•• Виділення меж — використовуються для встановлення
меж виділення та для інших художніх цілей. Межею є
межа між різними кольорами зображення.
•• Загальні — містить фільтри, які не можна віднести до
інших груп фільтрів.
•• Об’єднання — дозволяють об’єднати кілька зображення
певним способом.
•• Фільтри Художні, Декорація, Мапа, Растерізація пере-
творюють зображення із застосуванням художніх ефек-
тів (комікс, кубізм, малювання маслом тощо) та з дода-
ванням додаткових елементів, тривимірних ефектів.
•• Веб — дозволяє підготувати зображення для інтернет
сторінки.
•• Анімація — дозволяє переглянути й оптимізувати ані-
маційне зображення.
Процес опрацювання зображень не завжди завершується
бажаним результатом. Особливо важливо скасувати дії із зо-
браженням у процесі налаштування його якості та викорис-
тання фільтрів, оскільки не завжди досягається бажаний
результат.
Щоб скасувати застосування до зображення останніх дій,
використовується команда ПРАВКА — Вернути, біля якої
Деякі фільтри не мають параме
трів і застосовуються для зобра
ження одразу після виклику.
Рис. 1. Фільтри GIMP
Для вибору фільтрів користу
ються пунктом меню ФІЛЬТР.
Після вибору необхідного філь
тру може відкритися вікно на
лаштування параметрів цього
фільтру. У вікні буде показано
зміни зображення після засто
сування фільтра (якщо встанов
лено прапорець біля команди
Перегляд), але дії фільтра бу
дуть застосовані до зображен
ня тільки після запуску команди
Гаразд.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
243. 243
вказана остання дія. Передбачено й повернення відміненої дії:
ПРАВКА — Повторити і команда останньої скасованої дії.
Діалог історії дій входить до стандартного набору відо-
браження вікон, також викликається з меню ПРАВКА або
з ВІКНА — Діалоги з підтримкою прикріплення. У відпо-
відь відкривається вікно Відмінити із назвами дій із зо-
браженням. Знизу вікна містяться кнопки, що дублюють
команди Вернути (виділену дію), Повторити та Очистити
історію дій. У верхній частині вікна біля назви Історія ска-
сування дій стрілкою відкривають налаштування команд
історії.
Ви вже виконували завдання з покращення вигляду фо-
тографій. Деякі фільтри вирішують такі самі проблеми. Це
фільтри Групи Покращення: Покращення різкості, Приби-
рання плям, Прибирання штрихів. Під час зйомок у примі-
щенні на фото очі можуть набувати червоного кольору. Їх не-
обхідно виділити та застосувати фільтр Покращення — При-
брати ефект червоних очей.
Ознайомимося з інструментом Текст.
Після активізації інструменту Текст вказівник миші має
вигляду текстового. Клацання мишею в області зображення
створює новий текстовий шар. Після цього можна вводити
текст, автоматично відкривається вікно текстового редактора.
Налагодження кольору текста, шрифта, розміру, типу начер-
тання встановлюється параметрами інструмента.
Виконайте практичну роботу, в якій створіть напис з літе-
рами у рамці та застосуйте ефекти фільтрування до напису.
Основне призначення діало
гу — вибір точки в історії дій,
у яку треба повернутися. Це
дає можливість перейти до
будь-якого моменту роботи із
зображенням. Обмежень на
кількість переходів немає.
Запитання для перевірки знань
1 Що таке фільтр у GIMP?
2 Назвіть типи фільтрів.
3 Які можливості має редактор для повернення
однієї або кількох дій?
4 Як застосуватия фільтри до зображення?
5 До якого місця зображення застосовуються
фільтри?
6 Які можливості має GIMP щодо застосування
тексту в зображенні?
Завдання для самостійного виконання
1 У редакторі створіть вигляд жовто-блакит
ного прямокутного прапору.
2 Виділіть зображення, запустіть команду
ФІЛЬТРИ — Викривлення — Згин за кри-
вою. Працюємо у вікні фільтру.
3 Виберіть команду опрацювання верхнього
краю виділеного зображення.
4 Вікно містить графік, подібний до графіка
Кривих. Проставляйте на графіку вузли та
їх переміщенням змінюйте його вигляд. Змі
ніть коригуючу криву і для нижнього краю.
(Активна крива зображена чорним, неактив
на — білим). Підтвердьте — Гаразд.
5 У вікні шарів видно створення шару з пла
ваючим виділенням, а початкове зображен
ня залишилось незмінним. Збережіть шар із
виділенням у зручний для вас спосіб. Збере
жіть роботу у файлі Прапор.
5.18. Фільтри. Інструмент...
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
244. Розділ 5244
5.19. Комп’ютерна анімація
Які види графіки ви знаєте? Поясніть поняття інтерполяції.
Яка буває інтерполяція?
Пригадаємо, що комп’ютерна анімація є видом мульти-
плікації, в якій для створення на екрані дисплею рухомого
об’єкта використовують апаратне та програмне забезпечення
комп’ютера.
Анімація (латин. Animare — оживити) — вид мистецтва,
твори якого створюються шляхом покадрової зйомки окремих
малюнків або сцен. Анімацію часто називають «мультипліка-
цією» (латин. Multiplicatio — множення, розмноження).
Кадри — намальовані або сфотографовані зображення по-
слідовних фаз зміни об’єктів або їх частин.
Під час перегляду послідовності кадрів виникає ілюзія
руху зображених на кожному з них статичних об’єктів. За-
лежно від промальованих у кадрах об’єктів для їх динаміч-
них змін виділяють покрокову та покадрову (або автоматич-
ну) комп’ютерну анімацію.
У покроковій анімації кожний кадр містить окрему фазу
руху, в автоматичній — промальовуються початкове й кінце-
ве положення певного руху, а проміжні кадри заповнюються
зображенням автоматично. Для автоматичної анімації необ-
хідно спеціальне програмне забезпечення.
В основі будь-якої анімації лежить фіксація фаз зміни
об’єктів — визначення в кожен момент часу їх положення,
форми, розмірів та інших властивостей, наприклад, кольору.
Частота зміни кадрів — кількість кадрів на секунду для
сприйняття людиною зміни розміщення і форми об’єкту зо-
браження або його частин.
Зазвичай програми, призначені для створення анімацій-
них зображень, наприклад Flash, містять команди викли-
ку часової шкали. Часова шкала впорядковує вміст аніма-
ційного зображення за часом, керує шарами і кадрами. На
ній відображається інформація про шари, ключові кадри й
ті, що генерує програма, точка відтворення. За допомогою
часової шкали переміщають ключові кадри і цілі частини
анімації.
У редакторі GIMP можна створити покрокову анімацію:
кожний кадр є окремим шаром із зображенням кожної фази
руху. Для перегляду кожного шару певний час застосовують
фільтр Анімація і команду Відтворити (фільтр містить ще ко-
манди Оптимізувати та Розоптимізувати, про це далі). Відкри-
ється вікно показу фільму.
Робоче поле вікна містить зображення шару — тла, а пере-
гляд анімації здійснюється такими кнопками (рис. 1):
•• Відтворити — автоматично відбувається почерговий пе-
регляд кожного шару.
•• Крок і Назад — дозволяють перегляд кожного кадру (на-
ступного чи попереднього) після використання кнопки.
Промальовані кадри називають
ключовими. В покроковій ані
мації кожний кадр є ключовим.
У автоматичній анімації ключо
вими є пари кадрів для певного
руху: створюється інтерполяція
вигляду зображення між дво
ма ключовими кадрами (таких
пар ключових кадрів може бути
кілька).
Частота змінення кадрів для
створення ефекту плавної
зміни має бути не менше ніж
12–16 кадрів на секунду, це
пояснюється особливостями
сприйняття руху людиною.
У кіно використовується час
тота 24, в телебаченні 25 або
30 кадрів в секунду.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
245. 245
•• Від’єднати — відтворюють зображення шару без ша-
ру — тла.
Рис. 1. Кнопкове меню фільтра відтворення анімації
У GIMP є можливість одразу зберегти файл — експортува-
ти його у формат gif. Для цього слід скористатися командою
ФАЙЛ — Зберегти як…; у вікні збереження відкрити список Ви
брати тип файлу (За розширенням). У списку прописано форма-
ти файлів, у які експортується це зображення. Далі вибрати
формат gif і підтвердити — відкриється вікно налаштування
параметрів файлу перед експортом (рис. 2).
Оскільки метою є збереження як анімація, то й виби-
рають відповідну команду. Після підтвердження кнопкою
Експорт відкриється вікно вибору параметрів анімаційного
gif-файла (рис. 3).
Рис. 5.46. Вікно експорту файла
Рис. 5.47. Вікно налаштування параметрів gif-файла
У вікні в області Параметрів анімації gif є можливість автома-
тичного повтору анімації після її завершення (команда Нескінчен
ний цикл); зміни часу показа кадру (шару) у мікросекундах.
У рядку стану фіксується масштаб
і номер кадру перегляду. Якщо
закрити вікно, то в діалозі
шарів у назві кожного шару в
дужках додався параметр —
час відображення шару в показі
анімації.
Команда Розміщення ка
дру має три режими: Не
важливо, Накладення шарів
(об’єднання), Один кадр на
шар (заміна).
5.19. Комп’ютерна анімація
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
246. Розділ 5246
Команда Розміщення кадру має три режими: Неважливо —
редактор за замовчуванням запускає такий режим; Накла-
дення шарів (об’єднання) — послідовно накладає один шар на
інший — в анімації з прозорими шарами буде видно зобра-
ження нижніх шарів; Один кадр на шар (заміна) — заміщує
попередній шар на новий. Після налаштування параметрів
файл зберігають — кнопка Зберегти.
В анімаційному gif-файлі зберігаються зображення кож-
ного шару. Для зменшення розміру файла можна зменшити
кожний шар до розміру зображення і прибрати деякі частини
зображення. Автоматично оптимізувати зображення можна
командою Оптимізація фільтра Анімація (рис. 4).
Рис. 4. Команди фільтру Анімація
Команда працює за таким алгоритмом: здійснюється пере-
гляд кожного шару, якщо шар містить точки, які відрізняються
від відповідних точок попереднього шару, то вони залишаються
на шарі, а розмір шару змінюється на мінімально можливий.
Решта точок перетворюються на прозорі. У вікні шарів до назви
шару додається назва режиму — combine (новий кадр додається
до попередніх) або replace (новий кадр замінює всі попередні).
Команди Оптимізація (для GIF) і Оптимізація (різниця) по-
різному змінюють розміри шару: перша урізає шар до зобра-
ження на ньому, а друга ще й об’єднує шари там, де це до-
цільно. Команду Розоптимізувати використовують для зняття
оптимізації з метою подальшого коригування зображення.
Для створення простої анімації необхідно дотримуватися таких дій.
Крок 1
Розробіть ідею. Визначте об’єкт і властивості, які будуть змінюватись стосовно тема
тики анімації.
Крок 2 Розробіть схему анімаційного сюжету, яка визначатиме послідовність змін.
Крок 3
Створіть сценарій. Що потрібно намалювати? Що потрібно повторити з різними влас
тивостями об’єкту? Що залишиться статичним?
Крок 4
Створіть кадри анімації — комп’ютерні малюнки в будь-якому графічному редакторі
з урахуванням техніки малювання і сценарію.
Існує вид анімації, який назива
ється інтерактивним (основа
ний на взаємодії). Інтерактивною
є презентація, в якій на слайді
відбуваються зміни як реакція
застосування тригера. З інтерак
тивними зображеннями кнопок
ми стикаємося на веб-сторінках
сайта. Грецький художник і про
граміст Петрос Врелліс створив
інтерактивну анімацію картини
Вінсента Ван Гога «Зоряна ніч».
Використовуючи сенсорний ін
терфейс, глядач може деформу
вати зображення, змінюючи на
прямок руху частинок. Якщо не
торкатися до картини, то відтво
рюється початкове зображення
картини.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
247. 247
Крок 5 Налаштуйте параметри анімації.
Крок 6 Виконайте експорт зображення у формат GIF.
Розглянемо приклад застосування редактора GIMP для
створення анімаційного зображення.
Приклад. Створити анімаційне зображення.
1. Ідея: рух об’єкта — літери та її «падіння»
з площини.
2. Схема руху: на площині з’являється об’єкт;
рух об’єкта по горизонталі; на краю зобра
ження площини об’єкт обертається; верти
кальний рух об’єкта з обертанням.
3. Сценарій: зображення площини є статичним;
літера Р (від слова рух) промальовується на
різних шарах, остання — на краю площини,
до неї застосовується перетворення — обер
тання на 45°; нижче по вертикалі повторю
ється зображення літери і знову застосову
ється обертання на 45°; наступне повторення
останньої літери знизу — «літера впала».
4. У наведеному сценарії літера не буде руха
тись, кожна наступна з’являтиметься в но
вому місці, а попередня незникатиме. Щоб
створювалося враження руху однієї літери,
на кожному шарі повторюють зображення
літери попереднього шару із заповненням
кольором фону.
5. У подальшому для перегляду створеного
користуються фільтром Відтворення ані
мації. Доцільно оптимізувати анімаційне зо
браження відповідним фільтром.
6. Анімацію експортують в gif-файл, за потре
би налагоджують час затримки шарів.
Запитання для перевірки знань
1 Що таке кадр?
2 Назвіть типові значення частоти зміни кадрів.
3 Що таке ключові кадри?
4 Який вид анімації створюють у редакторі GIMP?
5 Як зберегти анімаційне зображення у вигляді
файла — фільму?
6 Які формати збереження зображень містить
GIMP?
5.20. Макетування та верстка графічного документа.
Макетування для Веб
Що таке верстка, макет? Які програми для верстки доку-
мента вам знайомі?
Пригадаємо, що дизайн будь-якого друкованого видання по-
чинається зі створення макету — графічного планування вер-
стки. У процесі створення макету в ескізно-узагальненому ви-
гляді планується розташування текстового та ілюстративного
матеріалу, всі деталі їх оформлення.
Важливими етапами створення макету є підготовка тексту
та ілюстрацій. Розглянемо приклад.
Версткою є процес розміщення
текстових блоків та підготов
леного набору всіх видів ілюст
рацій з урахуванням дизайну
макету.
5.19. Комп’ютерна анімація
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
248. Розділ 5248
Для ілюстрування публікацій, сторінок сайтів використо-
вують різні можливості отримання графічних зображень: го-
тові зображення отримують із файлів, скануванням, із циф-
рових камер, для створення потрібних зображень використо-
вують векторні та растрові редактори.
Вимоги до графічних зображень для макетів друкованих
матеріалів та макетів для сайтів можуть бути різними. У за-
гальному вигляді вимоги є такими.
Для підготовки розміщення графічного зображення на сто-
рінці сайта велику роль відіграє розмір файла із зображен-
ням. Великий за розміром файл завантажується довго.
На розмір файла впливає розмір зображення, формат його
збереження і ступінь стиснення, обсяг кольорових відтінків.
У векторному редакторі Inkscape для збереження зобра-
ження у форматі PNG використовують команду ФАЙЛ — Екс
портувати та у вікні, що відкриється, налагоджують парама-
три збереження.
У GIMP для експорту зображення у файл з іншим роз-
ширенням, не GIMP, потрібно вибрати команду Вибрати тип
файлу (За розширенням) у вікні збереження файла, у списку
форматів файлів — формат JPEG. Після підтвердження від-
криється вікно налаштування параметрів файла перед екс-
портом. Оскільки цей формат підтримує стиснення, то у вікні
зазначають параметр якості зображення (без стиснення 100).
Виконайте вправу для знайомства з вказаною командою.
Отже, розмір файла з графічним зображенням залежить
від розміру малюнку (растрового) та ступеня стиснен
ня. Щоб підібрати правильно розміри малюнків для
сайта, необхідно знати розміри та роздільну здатність
екрану. Але зазвичай розміри сторінок сайта є змін
ними, вони програмуються з додатковим налаштуван
ням до параметрів пристрою, на якому переглядають
сайт.
Малюнки, що мають розмір, менший за рекомендований,
збільшуються, а отже, розтягуються і втрачають якість.
Малюнки більшого розміру можуть стискатися програм-
ним способом, і їх вигляд теж може погіршитись порівняно
з оригіналом. Картинки, в яких порушена запропонована
Приклад
• Текстові та графічні блоки планують відпо
відно до тематики публікації, сайта; в публікаціях
ураховують тип видання (шпальта газети та сто
рінка книги матимуть різні макети).
• Геометричний розмір графічного зображен
ня потрібно вибирати відповідно до розміру тема
тичного блоку.
• Для веб-сторінок обов’язково присутні ви
моги до розміру зображення, що впливає на фор
мат збереження зображення.
• Для різних видань і сайтів можуть бути різ
ні вимоги до колірної гами зображень.
Є вимоги також до текстових даних, у тому
числі до тексту як компонента зображень.
Більшість програм верстки під
тримують векторний формат
EPS (Encapsulated PostScript).
Для векторної графіки фірма
Microsoft створила формат ме
тафайла Windows (WMF). У ньо
му зручно переносити прості
малюнки (наприклад, діагра
ми), які створено в середови
щі електронних таблиць. У по
ліграфії найбільш популярним
растровим форматом є TIFF.
Для завантаження на сайт фа
хівці рекомендують такі фор
мати графічних зображень, як
JPEG, GIF, PNG. Для збереження
якості фотографій та малюнків
із градіентним заповненням
краще використовувати формат
JPEG. Формати GIF і PNG підтри
мують прозорість: тло малюнка
є прозорим.
У процесі створення нового гра
фічного зображення в растрово
му редакторі зазначають кількість
пікселів на дюйм, зазвичай 72 або
96. Зображення квадратної форми
1200 x 1200 піскселей найкраще
підходять для новин у Facebook
і LinkedIn, альбомні 1200 x 628 пік
селів упишуться в пости Facebook
або Twitter, а портретні зображен
ня 736 x 1128 пікселів використо
вують у Google+.
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
249. 249
пропорційність у розмірах, обрізаються, що призводе до не-
правильного їх вигляду.
Багато відтінків графічного зображення, яке чудово ви-
глядає на екрані дисплею та створене з використанням RGB
моделі, не передається на папір під час друку.
Кольороподілом називають розкладання кольорового зо-
браження з режиму RGB на чотири складові фарби CMYK,
які потім з’єднуються при друку, утворюючи багатобарвне
зображення. Кольороподілом також називають конвертацію
RGB — CMYK.
У графічних редакторах завжди можна вибрати колірну
модель для відтворення відтінків кольору зображення, але
у будь-якому випадку, колір на екрані не передається у по-
вному обсязі на друк.
Вимоги до зображень для розміщення на сайті є важли-
вими в процесі перетворення макету сайта в формат HTML
(мова гіпертекстової розмітки документа).
Версткою веб-сторінки (англ. page-proof) є процес створення
веб-сторінки із попередньо створеного макету дизайну сайта,
заздалегідь створеного за допомогою графічних редакторів.
Макет веб-сторінки є результатом творчості веб-дизайнера.
Наразі розглянемо макетування сторінки, що має найбільш
поширений вигляд, та розглянемо призначення кожної її час-
тини (рис. 1).
Шапка (Header) сайта — блок у верхній частині сторінки
сайта зазвичай містить логотип, меню, контакти, перемикач
мов або кошик для сайтів інтернет-магазину.
Блок у нижній частині сторінки називається підвалом
(Footer). Підвал містить корисну, але не першорядну інфор-
мацію, наприклад, назву організації, яка розробляла сайт,
або розробника сайта, контакти, також можуть дублюватись
пункти меню.
Зазвичай веб-програмісти так створюють сайт, що Header
і Footer видно на всіх сторінках сайта.
Блок з основним вмістом сторінки може бути поділений
на кілька колонок: у лівій колонці зазвичай розміщено меню
сайта, перелік корисних посилань тощо; наступна колон-
ка містить інформацію вибраного пункту меню: може бути
й третя (права) колонка з об'явами, посиланням на важливі
події у графічному вигляді.
Розподіл на колонки має свої особливості: є отступи злі-
ва і справа сторінки (Margin), між колонками (Gutter). Зна-
чення Margin може дорівнювати 0 для перегляду сайтів за
комп'ютером. Та сьогодення характеризується поширенням
мобільних пристроїв, ширина сайта на яких дорівнюватиме
ширині екрану і вигляд прилипання тексту до країв буде не-
привабливим. Виконайте вправу, яка допоможе вам створити
макет веб-сторінки (цю вправу можна запропонувати як до-
машнє завдання).
Скільки команд містить графічний редактор GIMP для
створення нового файла?
Зазвичай для обміну зображен
нями в соціальних мережах
фахівці пропонуютьтакі такі роз
міри графічних зображень, як
Facebook — 1200 x 628; Twit
ter — 1024 x 512; LinkedIn — 800
x 800; Google+ — 800 x 1200; In
stagram — 600 x 600.
Під час друку відтворюються не
всі відтінки. Для більш точної
передачі якого-небудь відтінку
застосовуються так звані «прості»
(Spot) кольори, які отримують
попередньо змішуючи фарби
у змішувачі. Існує кілька систем
простих кольорів. Найбільш
поширеною з них є система
Pantone, в якій кожна фарба має
свій цифровий код. Випускаються
каталоги простих кольорів, які
допомагають користувачеві діб
рати потрібний відтінок, а потім,
скориставшись кодом, замовити
потрібну фарбу. Так, зокрема,
друкується золотий чи срібний
колір.
Рис. 1. Загальний макет
веб-сторінки
Шапка сайта
Основний вміст сторінки
Нижня частина сторінки
5.20. Макетування
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
250. Розділ 5250
Растровий редактор GIMP містить підкоманду Створити
(меню ФАЙЛ) із набором можливостей створення графічних
елементів для розміщення на сайті. Завдяки їй на шарах зо-
браження одразу створюють кнопки різного вигляду (прямо-
кутні із заокругленими краями, об’ємні); емблеми — текст,
який вводить користувач із застосуванням різного типу філь-
трів до нього. У команді Створити також вибирають Текстуру,
а команда Теми веб-сторінок дозволяє оформити елементи веб-
сторінки в одному стилі.
Запитання для перевірки знань
1 Назвіть вимоги до графічного зображення
видання або сайта.
2 У який формат краще еспортувати графічне
зображення, підготовлене для веб-сайта?
3 Що називається кольороподілом або кон
вертацією кольорів?
4 Яка кольорова модель використовується
у оформленні сайта, а яка у видавництві? По
ясніть чому.
5 Що означає верстка веб-сторінки?
6 На що звертають увагу, вибираючи коефіці
єнт стиснення при збереженні растрового
малюнку в JPEG-файлі?
Завдання для самостійного виконання 1
1 Відкрийте GIMP, завантажте готове растрове
графічне зображення.
2 Надалі збережемо його з різною якістю JPEG-
файла: запустіть команду ФАЙЛ — Зберегти як;
виберіть папку для збереження, введіть назву
файла; відкрийте список форматів: Вибрати тип
файла (За розширенням); виберіть тип JPEG.
3 У вікні експорту зазначте якість 100, збере
жіть ще раз з іншим іменем та якістю 40, як
у пунктах 3, 4.
4 Відкрийте папку, встановіть детальний пере
гляд її вмісту та порівняйте розміри файлів,
збережених вами. Передивіться зображення
і зробіть висновок щодо якості і розміру файлів.
Завдання для самостійного виконання 2
1 Перейдіть до сайта МАН України (Малої ака
демії наук) (http://man.gov.ua/ua).
2 Проаналізуйте вміст сайта, визначте наяв
ність складових сайта, їх призначення.
3 Дайте відповідь на такі запитання (запишіть
у зошит).
• Із чого складається Header і Footer сайта?
Чи змінюють вони свій вигляд на різних
сторінках сайта?
• Чи містить сайт логотип?
• Що означає наявність прапорців у верх
ньому лівому куту хедера?
• Із чого складається основна частина сайта?
4 Перейдіть на сайт Міністерства освіти і на
уки України (https://mon.gov.ua/ua).
5 Порівняйте вигляд сайтів і створіть деталь
ний макет головної сторінки вашого сай
та, наприклад, про спортивні досягнення
класу.
6 Доберіть і збережіть зображення, які б ви
хотіли розмістити на сайті (розміри під
беріть кадруванням, налаштуйте якість та
стиснення зображень, збережіть їх у відпо
відному для сайта форматі).
Виконайте тестове завдання до розділу 5
з автоматичною перевіркою результату
на сайті interactive.ranok.com.ua
Право для безоплатного розміщення підручника в мережі Інтернет має
Міністерство освіти і науки України http://mon.gov.ua/ та Інститут модернізації змісту освіти https://imzo.gov.ua
251. 251
Комп’ютерний словник
База даних — сховище організованої сукупнос-
ті даних різного типу, які відображають стан
об’єктів певної предметної галузі та зв’язки
між ними.
Вибірка (вибіркова сукупність) — частина ге-
неральної (загальної) сукупності об’єктів, яка
охоплюється експериментом.
Виняток — подія, яка може виникнути під
час виконання програми і яка може змінити
подальший хід її виконання.
Віджети — об’єки, із яких створюється графіч-
ний інтерфейс.
Глобальна змінна — змінна, оголошена в осно-
вній програмі.
Діапазон — незмінна послідовність цілих чи-
сел, що визначається початковим, кінцевим
значеннями і кроком їх заміни.
Екземпляр класу — окремий об’єкт класу.
Електронне урядування — форма організації
державного управління, яка сприяє підвищен-
ню ефективності, відкритості та прозорості ді-
яльності органів державної влади та органів
місцевого самоврядування з використанням
інформаційно-телекомунікаційних технологій
для формування нового типу держави, орієн-
тованої на задоволення потреб громадян.