Інформатика 8 клас Бондаренко 2025

Page 1


Інформатика

УДК 004:37.016(075.3)

І-74

Авторський колектив: Олена Бондаренко, Василь Ластовецький, Олександр Пилипчук, Євген Шестопалов

Рекомендовано Міністерством освіти і науки України (наказ Міністерства освіти і науки України від 21.02.2025 № 347)

Видано за рахунок державних коштів. Продаж заборонено

Підручник створено відповідно до модельної

Інформатика : підруч. для 8 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. Харків : Вид-во «Ранок», 2025. 272 с. : іл. ISBN 978-617-09-9597-1 УДК 004:37.016(075.3) І-74

(автори Бондаренко О. О., Ластовецький В. В., Пилипчук О. П., Шестопалов Є. А.) © Бондаренко О. О., Ластовецький В. В., Пилипчук О. П.,

rnk.com.ua/107276

ISBN 978-617-09-9597-1

«Ранок», 2025

мальовані

ції; оволоділи

розв’язування складних задач.

Кожен розділ складається

параграфів і практичних робіт. Кожен параграф містить теоретичні відомості за темою уроку, приклади практичного застосування отриманих знань, матеріали за рубриками «Повторюємо», «Питання для самоперевірки», «Вправи», «Комп’ютерне тестування». «Повторюємо» допоможе вам пригадати відомості, які ви вивчали в попередніх класах і які будуть корисні для засвоєння нового матеріалу. «Питання для самоперевірки

чи

список використаних

Ви знаєте, що відомості про навколишній світ і процеси, які в ньому відбуваються, називають інформацією. Людина отримує інформацію у

повідомлень

які

шук, опрацювання, передавання, зберігання, захист тощо, називають інформаційними процесами.

1. Що таке інформація?

2. Які

подання?

3. Назвіть основні складові стаціонарного комп’ютера.

4. Які є пристрої зберігання інформації?

5.

Окремими ієрогліфами позначаються певні

об’єкти або поняття (рис. 1.5), літерами

окремі звуки усного мовлення, з яких складаються слова, речення тощо. Літери, що використовуються в мові, утворюють її

абетку.

Ті самі повідомлення, залежно від

і використовуваних засобів, можна кодувати в різний спосіб: за допомогою цифр, знаків, символів, жестів, світлових, звукових сигналів та

2

3

1. Як у давнину люди зберігали інформацію?

2. Що таке кодування; код; декодування?

3. Як повідомлення передається від джерела до приймача?

4. Як кодуються звуки природної мови?

5. Чи можна закодувати поняття? Наведіть приклад.

6. Опишіть кілька способів кодування звука [а].

Вправа 1

Виконати кодування й декодування повідомлень.

1. Запустіть текстовий редактор і створіть новий документ.

2. Розгляньте

Комп’ютер універсальний пристрій для опрацювання даних різних типів. Розгляньмо, як у ньому кодуються дані. Принцип двійкового

Звичні вам числа називають десятковими, тому що для їх запису використовують

цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Дані ж у комп’ютері подаються

світловими або магнітними сигналами, що

вимкнено

Кодування символів

За допомогою однознакового двійкового коду можна закодувати

лише два різні символи (див. 2-й

стовпець таблиці). Тому для кодування символів у комп’ютері за-

стосовують багатознакові двійкові

коди, в яких код кожного симво-

лу складається з кількох записаних у рядок нулів або одиниць.

й замість нього, записують десятковий код.

X 7-бітовий код

ASCII

ASCII (American Standard Code for Information Interchange

американський стандартний код для обміну

побачити на екрані символи сучасної

ASCII, можна скористатися такою програмою мовою Python: for i in range(33, 127): print(chr(i), end = '')

Буде виведено: !"#$%&'()*+,./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` abcdefghijklmnopqrstuvwxyz{|}~

X 8-бітовий код

KOI8-U

Для кодування літер інших алфавітів

19211000000ю20011001000х20811010000п

19311000001а20111001001и20911010001я

19411000010б20211001010й21011010010р

19511000011ц20311001011к21111010011с

19611000100д20411001100л21211010100т

19711000101е20511001100м21311010101у

19811000110ф20611001110н21411010110ж 19911000111г20711001111о21511010111в

товується сімейство

уніфіковане кодування), що з’явився 1991 року. Поширений нині варіант

увагу, що на практиці

шими одиницями вимірювання: кібібайт (КіБ), мебібайт (МіБ), гібібайт (ГіБ), тебібайт

1. Як кодуються дані в комп’ютері?

2. Чому в комп’ютері використовують двійкове кодування?

3. Як кодуються символи в комп’ютері?

4. Що таке біт; байт?

5. У яких одиницях вимірюють довжину двійкового коду?

6. Скільки байтів містить 1 КіБ; 1 МіБ?

2 Дослідити двійкове кодування текстових даних.

1. Знайдіть в інтернеті таблицю кодів символів KOI8-U.

2.

3.

1001000 1100101 1101100 1101100 1101111 0100001

із назвою Вправа 2-1.

4. Зробіть

5. Розрахуйте кількість книжок (див. приклад 4), вміст

2-2.

Кодування

кольору

Щоб закодувати двоколірне (наприклад, чорно-біле) зображення, достатньо позначити колір кожного пікселя числом 0 (перший колір) або 1 (другий колір). Для зберігання коду пікселя вистачить одного біта, тому кажуть, що двоколірне зображення має глибину кольору 1 біт (рис. 3.2).

Глибина кольору зображення це кількість бітів, які використовуються для кодування кольору одного пікселя.

Зображення будиночка складається з пікселів восьми кольорів, які утворюють 32 рядки по 35 пікселів у кожному (рис. 3.3). Для кодування восьми кольорів достатньо десяткових чисел від 0 до 7, які можна подати двійковими послідовностями довжиною 3 біти, оскільки 23 = 8. Отже, глибина кольору

становить 3 біти.

= 0002

= 1002 Синій 110 = 0012

= 1012 Зелений210 = 0102

= 0112

= 1102

= 1112

2

кольорів:

from turtle import*

pic = list(map(int,input().split())) # Вводимо растровий

W, H = pic.pop(0), pic.pop(0) #

pencolor('black')

shape('square'); shapesize(outline = 1)

size = 20 #

квадратика-Черепашки (пікселя) colors = ['black', 'blue', 'green', 'brown', 'red', 'violet' ,'yellow', 'white'] up(); hideturtle() for r in range(H): for c in range(W): # Малюємо рядок

fillcolor(colors[pic[r*W+c]]) stamp() # Ставимо відбиток-піксель forward(size) back(W*size); right(90) #

forward(size); left(90) #

Пригадаймо, що векторним називають зображення, яке скла-

дається з графічних примітивів геометричних об’єктів (відрізків, кіл, кривих тощо). Отже, базовим елементом векторного зображення є лінія, описана математичною формулою (рис. 3.4). У найпростішому випадку криволінійний контур графічного примітива можна

розглядати як ланцюжок прямолінійних

відрізків, тобто ламану. У такому випадку векторний код контуру буде послідов-

ністю чисел, яку можна побудувати так:

перше число кількість відрізків N, а наступні 2(N + 1) чисел координати

послідовних вершин ламаної.

Контур літери К (рис. 3.5) тричі

різків, щоразу

векторним кодом: from turtle import *

size = 4

x0 = y0 = 0

vector_code = input()

x = list(map(int, vector_code.split()))

N = x.pop(0) # Відокремлюємо кількість відрізків у змінну N y = x[1::2]

# Формуємо список координат y x = x[0::2]

# Формуємо список координат x up()

goto(x0, y0)

Йдемо в початкову точку down() for v in range(1, N+1): # Будуємо

1. Які

2. Опишіть

3.

4.

1. У

2.

1. Запишіть своє ім’я та

текстовий редактор, підручник.

2. Запустіть простий текстовий

3.

ченням, отриманим у п.

закодуйте

4. Користуючись програмою Калькулятор, визначте приблизний обсяг пам’яті, необхідний для зберігання тексту однієї сторінки підручника з інформатики і всього підручника (без малюнків) в електронному вигляді

які

американський

не змінилася (рис. 4.1).

Пристрої введення

Процесор Пам’ять

У 1940-х роках найбільшого поширення

Гарвард, США) і фон Неймана. В обох основними вузлами є центральний процесор і пам’ять комп’ютера, але в першій програми та дані зберігаються

а в другій спільно.

4.2

та зберігання. З’ясуймо, як саме пристрої введення

приєднуються до комп’ютера і взаємодіють із ним.

Пристрої введення-виведення. Адаптери

Ви вже

Адаптер (контролер) пристрій, призначений

приєднання до комп’ютера іншого пристрою та керування його роботою.

Адаптери бувають як порівняно прості, так і дуже складні, зі власним процесором, пам’яттю тощо. Наприклад:

• відеоадаптер (відеокарта) пристрій для формування на основі коду зобра-

ження відеосигналу для монітора або проєктора, а також для захоплення відео з відеокамер та інших пристроїв (рис. 4.4, а);

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

Ці пристрої можуть бути як убудовані (інтегровані) в системну плату, так і встановлені в з’єднувач (слот) на ній.

. Основними характеристиками відеоадаптера є частота оновлення зображення та обсяг відеопам’яті. Від цих характеристик

залежить якість зображення на екрані монітора під час перегляду фільмів, комп’ютерних ігор тощо. Із винайденням USB (читається ю-ес-бі; від англ. Universal

Serial Bus універсальна послідовна шина), цей порт стали використовувати для приєднання до комп’ютера найрізноманітніших пристроїв.

(раніше

ропроцесор) являє собою

ну схему, вміщену в захисний корпус (рис. 4.6). Від

Розгляньмо основні технічні характери-

Пам’ять поділяють на внутрішню

енергозалежною й енергонезалежною (рис. 4.7). Пам’ять

Внутрішня Оперативна пам’ять

Постійна пам’ять

Кеш-пам’ять

Магнітний диск

Зовнішня

Оптичний диск

Флешпам’ять

Енергозалежна

Енергонезалежна

Енергозалежна

Енергонезалежна

Енергонезалежна

Енергонезалежна Рис. 4.7

Після вимкнення комп’ютера

з енергозалежної пам’яті зникають, а в енергонезалежній

Оптичні CD- і DVDнакопичувачі

Питання для

самоперевірки

1. Що таке процесор?

2. Що визначає швидкодію комп’ютера?

3. Для чого потрібна оперативна пам’ять?

4. Які функції постійної пам’яті комп’ютера?

5. Яке призначення пристроїв зовнішньої пам’яті?

6. Що розуміють під конфігурацією комп’ютера?

1. Запустіть текстовий процесор і створіть

2. З’ясуйте в інтернеті, як в операційній

комп’ютера дізнатися характеристики

3.

одного з процесорів. Скопіюйте в документ посилання на сторінку та стислий запис характеристики процесора (див. приклад 1).

4. Визначте за цим записом і запишіть: розрядність; кількість ядер; тактову частоту; обсяг кеш-пам’яті; сокет.

5. З’ясуйте за допомогою чат-бота та скопіюйте в документ короткий опис таких характеристик ОЗП: пропускна здатність; тип; обсяг; частота. Обговоріть

Люди здавна розробляли засоби для полегшення опрацювання інформації, зокрема різних інформаційних об’єктів. Етапи розвитку обчислювальних

Залежно від технологій розрізняють кілька етапів. На домеханічному етапі люди використовували для

різні підручні засоби: камінці, мотузки, зерна тощо. Згодом вони винайшли

механічному

лі, створено

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

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

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

ХХ століття: Z3 (Німеччина, 1941), Colossus (Велика Британія, 1943), Harvard Mark I (США, 1944), МЕСМ (СРСР, 1950).

Академік Сергій Лебедєв (рис. 5.3)

творець першого в континентальній Європі

комп’ютера. Під його керівництвом 1951 року в Києві створено електронну обчислювальну машину «МЕСМ» (Мала електронна

обчислювальна машина).

У 60-х роках XX ст. в Інституті кібер-

нетики Академії наук України створено серію машин для інженерних розрахунків (скорочено МІР). Колектив очолював Віктор Глушков (рис. 5.4), автор фундаментальних

праць у галузі кібернетики, математики та

обчислювальної техніки. Один із перших персональних комп’ю-

терів (ПК) створили в 1976 році Стів Джобс

і

Стів Возняк (рис. 5.5), засновники Apple Computer, США. Перший комп’ютер компанії Apple I (див. рис. 5.5) мав процесор, який працював на частоті 1 МГц; оперативну пам’ять обсягом 4 КіБ; постійну пам’ять обсягом 256 Б.

Можливо, комп’ютерами п’ятого покоління стануть штучно створені біологічні

системи, біопроцесорами в яких та пристроями пам’яті слугуватимуть молекули ДНК, білкові молекули тощо. Ідею

Сучасні комп’ютери

ресурсами. Дізнаймося про це докладніше.

Суперкомп’ютери багатопроцесорні комп’ютерні системи, призначені для здійснення складних обчислень.

Найпотужніші в Україні комп’ютери мають центри суперкомп’ютерних обчислень у Національному технічному університеті «Київський політехнічний інститут імені Ігоря Сікорського», Інституті

Мейнфрейми

Без комп’ютерів складно уявити наш побут та дозвілля.

ня нові види комп’ютерів: роботизовані іграшки (рис. 5.11), роботи-домашні помічники тощо. Автоматика «розумного будинку» здатна діяти замість людини, спростити побутові складнощі людям похилого віку, особам з інвалідністю та ін. Питання

1. Назвіть основні етапи розвитку обчислювальних засобів.

2. Коли створено перші комп’ютери?

3.

4. Яка

5.

2.

пам’яті;

• процесор Intel Core i9-10900K або AMD Ryzen 9 5900X;

• відеоадаптер

для гри.

2. Запустіть текстовий процесор

• корпус системного блока з блоком живлення;

• системна плата;

• процесор; монітор;

• оперативна пам’ять;

3.

§ 8.

§ 10.

1. Який

3. Що таке електронна пошта?

4. Що таке хмарний

5.

ступу до віддалених інформаційних, апаратних

ресурсів і спільного їх використання.

Апаратна складова

Канали зв’язку та спеціалізовані комп’ютери

й пристрої (сервери, мости, шлюзи, маршрутизатори)

сервери, з’єднані

програми, що керують роботою засобів доступу користувачів до служб інтернету Інформаційна складова

Інформація, розміщена на серверах, до якої мають доступ користувачі інтернету

кількості комбінацій

чисел (4,2 млрд) для

2008 року запроваджено протокол IPv6, за яким IP-адреса записується вісьмома чотирицифровими шістнадцятковими числами, розділеними двокрапками. Наприклад:

5e:8a2e:32c2. Це еквівалентно

Доменне ім’я

Доменне

системі доменних імен, виділена власникові домену (країні, міжнародній організації, регіону, юридичній

Розгляньмо, як

edu — освітній; net — мережевий; gov — урядовий; biz, com — комерційні та ін. ua — Україна; us — США; at — Австрія та ін.

Рис. 6.3 Домен 1-го (верхнього)

державу;

сервери (Domain Name Service служба доменних імен).

URL Щоб отримати інформаційні матеріали з інтернету, адреси сервера недостатньо. Потрібна адреса ресурсу із зазначенням протоколу й унікального шляху до нього. Таку адресу називають уніфікованим вказівником на ресурс URL (Uniform Resource Locator). Це стандартизована адреса ресурсу в інтернеті

1. Що входить

2. Що таке IP-адреса? Що таке протокол IPv4; протокол IPv6?

3. Чим відрізняються постійна та динамічна IP-адреси?

4. Що таке доменне ім’я? У чому зручність його використання?

5. Назвіть кілька прикладів доменів першого рівня.

6. Що таке URL? Яке призначення URL?

Вправа 6

Визначити IP-адресу комп’ютера та складові

1. Запустіть

2. Визначте IP-адресу вашого комп’ютера

сайті за вказівкою вчителя / вчительки.

новий документ.

3.

ковими елементами

4.

частини пакети даних, долучають

порядковий номер

відновлюються.

Task

Існують різні способи

які відрізняються принципом

швидкістю передавання даних: комутоване з’єднання, виділене з’єднання, технологія ADSL, технологія Wi-Fi, супутниковий зв’язок, мобільний інтернет. З особливостями способів з’єднання ви можете ознайомитися за QR-кодом або посиланням. Популярним є з’єднання за допомогою мобільного пристрою: телефона чи модема. Такий доступ

на якій провайдер створив покриття.

1. Опишіть

2. Що таке мережевий протокол?

3. Назвіть кілька мережевих

4. Назвіть основні функції провайдера.

5. Яка основна перевага кожного нового покоління технологій мобільного зв’язку порівняно з попереднім?

6. Технологією якого покоління мобільного зв’язку

стуєтеся? Які її переваги?

1. Запустіть текстовий

2.

3.

4. Визначте IP-адресу вашого комп’ютера, запишіть у документ. Порівняйте щойно визначену IP-адресу з адресою, яку було визначено на цьому комп’ютері у вправі 6. Зробіть висновок, чи змінилася надана провайдером IPадреса, чи

(англ. World Wide Web, або WWW), з’ясуймо значення понять сайт і гіпертекст.

Сайт, або вебсайт (від англ. web мережа, site місце), це сукупність тематично пов’язаних

під одним доменним іменем.

Гіпертекст це текст, що містить гіперпосилання, тобто

зв’язки з іншими частинами документа або іншими документами чи файлами.

Термін «гіпертекст» увів у інформатику в 1963 році американський учений Теодор Нельсон, якого називають піонером інформаційних технологій. Вказівник, наведений у гіпертексті на гіперпосилання, набуває вигляду руки (рис. 8.1).

Гіпертекст

вмістом (див. далі), надання додаткового програмного

1. Маркетингові

2.

3. Розробка дизайну

4. Конструювання

5. Наповнення сайту вмістом

6. Тестування

7.

3.

сайт доцільно

ввімкненим для надання доступу до сторінок сайту.

X 8. Обслуговування сайту Обслуговування сайту

теріалів, супроводі (адмініструванні), удосконаленні навігації.

X 9. Просування сайту Просування сайту полягає в його рекламуванні,

2.

3. Що таке хостинг?

4. Опишіть особливості ієрархічної структури сайту; лінійної структури; мішаної структури.

5. Що таке система керування вмістом? Наведіть приклади.

6. З’ясуйте за допомогою чат-бота призначення Apache, PHP, MySQL, phpMyAdmin.

8

1. Запустіть

4.

5. Вставте

6.

HTML-документ

Існують спеціалізовані HTML-редактори: Microsoft SharePoint

Designer, Notepad++, Phoenix Code Editor, Sublime Text, та онлайнредактори: Online HTML Editor, HTML Instant, Real-Time HTML Editor та інші. Проте оскільки HTML-документ (HTML-файл) є текстовим документом, то створити його можна й у

текстовому редакторі, з яким ви вмієте працювати. Тег це позначка (мітка), записана в кутових

<html> <head>

</head> <body>

тексту

Текст

9.2

<body text = "white" bgcolor = "green">

Марковані

списку використовують тег <ol>…</ol> з атрибутом type (тип нумерації: "1" арабські цифри, "А" латинські літери, "І" римська нумерація тощо) та атрибутом start (задання початкового номера

списку

нумерацією арабськими цифрами).

Елементи списку розмічають тегами <li>…</li> (рис. 9.4).

1.htm |

<ul type = "square"> <li>Іванова</li> <li>Бойко</li> </ul>

<ol type = "I"> <li>Інформатика</li> <li>Фізика</li> </ol> Фрагмент

1. Що таке HTML?

2.

3. Назвіть складові структури HTML-документа.

4. Що таке атрибут тегу?

5. Якими засобами

6.

1. Запустіть

2.

3. Відкрийте папку зі збереженим файлом і

зера відкрийте HTML-файл vprava9.

4. Змініть HTML-код так, щоб нумерований список відображався на синьому тлі; колір шрифту жовтий; накреслення жирний (рис. 9.5).

5. Збережіть файл vprava9.html і оновіть сторінку браузера. За потреби відкоригуйте HTML-код відповідно до п. 4.

6. Доповніть код сторінки так, щоб унизу з’явився список, який містить усі дні тижня.

Сайт стає цікавішим і наочнішим, якщо його вебсторінки доповнити зображеннями. А пов’язати вебсторінки

Вставляння зображень

На вебсторінку можна додавати різноманітні зображення. Це можуть бути ілюстрації до тексту,

товують тег <img src = "my.jpg">, де img

тегу, src = "my. jpg" атрибут, у якому вказують

розширеннями .jpg

Якщо

images: <img src = "images/my.jpg">. Якщо

<img src = "pr1.png" align = "left">

горизонталі

(див. рис. 10.1): <img src = "pr1.png" vspace = "5" hspace = "30">

• опис зображення: <img src = "pr1.png" alt = "Моє фото"> Примітка. Якщо

зображень.

• ширина зображення

5

<img src = "pr1.png" border =

Додавання

<html>

<body>

<a href = "first.html">Перша

<a href = "second.html">Друга сторінка</a><br>

<a href = "third.html">Третя сторінка</a><br> </body>

</html>

4.

5. Відформатуйте

6. Перевірте роботу сайту.

ком / однокласницею.

1.htm |

<table border = 2> <tr>

<td>1-й рядок <br> 1-й стовпець</td>

<td>1-й рядок <br> 2-й стовпець</td>

<td>1-й рядок <br> 3-й стовпець</td> </tr> <tr>

<td>2-й рядок <br> 1-й стовпець</td>

<td>2-й рядок <br> 2-й стовпець</td>

<td>2-й рядок <br> 3-й стовпець</td> </tr>

</table>

ця різну ширину, то використано буде більше зі значень.

Відступи Для налаштування

<table cellspacing = "10" cellpadding = "10" bgcolor = "blue">

<tr bgcolor = "white">

<td width = "100">1</td>

<td width = "100">2</td>

</tr>

</table>

Форматування

Теги рядків (<tr>) і клітинок (<td>)

ти для змінення вирівнювання тексту

cellpadding

12

cellpadding cellspacing cellspacing

Рис. 11.2

клітинки. Атрибут align задає горизонтальне вирівнювання: align = "left" за лівим краєм; align = "center" по центру клітинки; align = "right" за правим краєм. Атрибут valign

<table border = 2 widht = 100%>

<tr height = 100 align = center>

<td valign = top> 1-й рядок <br> 1-й стовпець</td>

<td valign = middle>1-й рядок <br> 2-й стовпець</td>

<td valign = botton>1-й рядок <br> 3-й стовпець</td> </tr>

<tr>

<td align = left> 2-й рядок <br> 1-й стовпець</td>

<td align = center>2-й рядок <br> 2-й стовпець</td>

<td align = right> 2-й рядок <br> 3-й стовпець</td> </tr> </table>

1.htm

<table border = "1"> <tr>

<td colspan = "2">Привіт!</td> </tr>

<tr>

<td>Петре,</td> <td>Марійко!</td> </tr>

</table>

Петре,Марійко!

<table border = "1"> <tr>

<td rowspan = "2">Привіт!</td>

<td>Петре,</td> </tr>

<tr>

<td>Марійко!</td> </tr>

</table>

1. Як додати на вебсторінку таблицю?

2. Як вирівняти текст у клітинці таблиці по горизонталі?

3. Як вирівняти текст у клітинці таблиці по вертикалі?

4. Як установити товщину меж таблиці?

5. Як установити відступ від тексту в клітинці до її меж?

6. Як об’єднати клітинки одного рядка або стовпця таблиці?

Вправа 11 Створити таблицю за зразком (рис. 11.5).

1. Відкрийте текстовий редактор та створіть HTML-документ для відоб- раження таблиці (рис. 11.6).

Збережіть документ з іменем vprava11.html.

2. Змініть HTML-код, об’єднавши клітинки за зразком, і заповніть клітинки, як показано на рис. 11.7.

3. Задайте розміри таблиці в пікселях: ширина 400, висота 200.

4. Налаштуйте параметри клітинок у відсотках від розміру таблиці: висота верхнього рядка 35 %, ширина другого і третього стовпців 60 і 20 % відповідно.

5. Вирівняйте по вертикалі та горизонталі написи

6. Збережіть

ПРАКТИЧНА

СТВОРЕННЯ ГОЛОВНОЇ

ЗАСОБАМИ HTML

Завдання: створити головну сторінку сайту засобами HTML за правилами ергономічного розміщення матеріалів.

Обладнання: комп’ютер, з’єднаний з інтернетом, комп’ютерний або онлайновий HTML-редактор.

Хід роботи Під час роботи

1. Придумайте тему свого сайту, продумайте вміст

2. Знайдіть в інтернеті (або створіть самостійно) матеріал

3.

5.

6.

11.

§ 12. Основні

§ 13. Робота з фрагментами

§ 14. Форматування об’єктів текстового

Практична робота 4. Створення текстового документа, що містить об’єкти різних

ПОВТОРЮЄМО

також

документа.

1. Із яким текстовим процесором ви вже працювали?

2. Назвіть відомі вам об’єкти текстового документа.

3. Які властивості має символ?

4. Які властивості має абзац?

5. Назвіть властивості зображення.

6. Які властивості має таблиця?

більше функцій для форматування, створення таблиць,

1)

2)

3)

у Word можна викликати за допомогою

клавіш. З ними можна

форзаці, а також за QR-кодом

rnk.com.ua/108783

1)

Вправа 12

Ввести в документ текст за правилами набору та виконати

форматування об’єктів.

1. Запустіть текстовий процесор і створіть новий документ.

2. Установіть параметри сторінки та шрифту:

• розмір сторінки А4; поля по 3 см;

• шрифт Arial; розмір шрифту 11;

• накреслення курсив; колір шрифту синій.

3. Установіть параметри абзацу:

• міжрядковий інтервал одинарний;

• інтервали абзацу: Перед 0 пт, Після 10 пт.

4. Наберіть кілька рядків вірша Степана

у лузі червона калина». Виправте

5.

А ми тую червону

або кінець фрагмента;

2) утримуючи натиснутою клавішу Shift, переміщувати

клавішами керування курсором (рис. 13.1).

Виділений фрагмент тексту підсвічується кольором (рис. 13.2). Щоб зняти виділення, потрібно натиснути будь-яку клавішу керування курсором (див. рис. 13.1). Для виділення

меню або сполучень

2)

3)

MS Word

формул тощо слід вибрати

1. Як

2.

фрагментом?

3. Чим відрізняються операції Вирізати і Видалити?

4. Як здійснити автоматичний пошук фрагмента тексту?

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

6. Як виконати автоматичну заміну в документі одного текстового фрагмента на інший?

Вправа 13

Виконати

1. Запустіть

2.

3.

5.

Бувають випадки, коли до тексту потрібно додати символи, яких немає на клавіатурі: наприклад, знак авторського права, знаки арифметичних дій, формули тощо.

X Недруковані символи У ході форматування текстів часто використовуються недруковані символи приховані знаки, що належать до текстових об’єктів. На моніторі вони зазвичай не відображаються і на друк не виводяться (звідси й назва). Найуживаніший із них текстовий пропуск (пробіл).

Недруковані символи в тексті позначають

1) установити

2) вибрати

контекстного меню формули. Нескладні формули та вирази

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

2. Що таке недруковані символи і як їх відобразити на екрані?

3. Як вставити в документ символ, відсутній на клавіатурі?

4. Як створити власну формулу в текстовому документі?

5. Як перетворити кілька абзаців на маркований список?

6. Який алгоритм створення таблиці в текстовому документі?

Вправа 14

й опрацювати

1. Запустіть текстовий процесор

2. Установіть такі параметри сторінки

3. Знайдіть в інтернеті прізвища

4. Пригадайте або знайдіть

Завдання:

Обладнання: комп’ютер зі встановленим текстовим процесором, з’єднаний з інтернетом. Хід роботи Під час роботи

1. Запустіть текстовий процесор і

2. Установіть такі параметри:

• формат сторінки А4; поля по 2 см;

• орієнтація книжкова;

• інтервали абзацу: Перед — 0 пт, Після — 0 пт;

• міжрядковий інтервал одинарний;

• шрифт Times New Roman; розмір шрифту 14;

• накреслення жирний.

3. Уведіть:

• у першому абзаці знак і номер параграфа § 1;

• у другому

• задайте вирівнювання По центру.

4. Знайдіть в інтернеті

5.

6.

9.

1. Питома теплоємність

2.

3.

4.

5.

6.

7.

КОЛОНТИТУЛИ. ГІПЕРПОСИЛАННЯ

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

Структурні елементи документа

Під оформленням документа розуміють структуру: зовнішню (параметри сторінок, поля тощо) і внутрішню (заголовки, підписи тощо).

Структура документа ієрархічна схема розміщення складових текстового документа.

Складні документи розбивають на частини, розділи, параграфи та інші структурні елементи, відформатовані з дотриманням певних правил (рис. 15.1). Розгляньмо таблицю, наведену на с. 86.

а Заголовок а Заголовок а Заголовок б Підпис в Основний текст

г Посилання ґ Цитата в Основний текст д Виноска Рис. 15.1

ЕлементОпис

Заголовок, рис. 15.1, а

Підпис (або

Автор), рис. 15.1, б

Назва документа

або його частини.

Заголовки

розподіляють за рівнями. Чим

більш загальну

інформацію

описує заголовок, тим вищий його

рівень

Супровідна

інформація до назви розділу

Накреслення жирне, міжрядковий інтер-

вал щільніший, ніж

основна частина.

Заголовки вищого

рівня оформляються

вагоміше за нижчий (більші символи тощо)

цитати Шрифт менш помітний, ніж заголовок, або цитата. Зазвичай

Зазвичай

вирівнювання За серединою

Основний

текст, рис. 15.1, в

Цитати,

адреси,

посилання

на інші

документи, рис. 15.1, г

Важлива інформація, рис. 15.1, ґ

Найбільша частина

за обсягом

Виділена частина

основного тексту

Означення, висновки, попередження, інша інформація,

для сприйняття

Зазвичай накреслення курсив

Зазвичай вирівнювання За шириною

Фрагмент того самого абзацу

Форматування

У випадку, коли потрібно створювати

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

Шаблон це документ, що зберігається у файлі

формату та використовується

документів. У текстовому процесорі файли шаблонів мають розширення .dotx (.dot). Якщо користувач

Backspace. У разі вилучення розриву розділу видалиться форматування розділу, який містився перед розривом. Його текст стане частиною наступного розділу та набуде його формату.

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

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

у групі Подання вибрати команду Структура (рис. 15.5).

Рис. 15.5 Рис. 15.4 § 3 § 4 Розділ 2 § 1 § 2 Видання Розділ 1

Колонтитули

розділів. Він може містити назву документа, номер сторінки,

2)

3)

(див. рис. 15.6).

1) розбити текст на розділи;

2) на вкладці Конструктор (Знаряддя

3)

4)

1. Назвіть і охарактеризуйте

стового документа.

2. У чому полягає стильове оформлення документа Word?

3. Чим відрізняється використання шаблонів і звичайних документів?

4. Що таке розділи в текстовому документі; у чому полягає особливість форматування розділу?

5. Наведіть приклад колонтитулів багатосторінкового документа. Поясніть, який

6. Як створити посилання (гіперпосилання) у тексті документа?

Вправа 15 Створити й оформити текстовий документ із

1. Запустіть текстовий

2.

Що таке зміст і яке його призначення? Зміст документа це перелік назв структурних частин документа, впорядкований відповідно до його ієрархічної схеми, із зазначенням

сторінок.

Завдяки нумерації сторінок (рис. 16.1)

можна легко орієнтуватися

великого

1) відформатувати

2) вибрати місце

3) на вкладці Посилання в

4) вибрати стиль змісту та

1

2

3

3

2

Автоматичне

Для пришвидшення пошуку термінів у кінці документа зазвичай розміщують алфавітний покажчик (рис. 16.4).

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

Для створення покажчика потрібно:

1) виділити в тексті термін (слово або фразу);

2) на вкладці Посилання, що в групі Покажчик, вибрати команду Позначити елемент;

раметри: а) змінити текст у полі Основний за потреби

2Редагування документа

3Форматування

1. У

2.

3.

4. Коли автоматизований

5.

6.

1. Запустіть

1) створіть

2.

3.

4. Додайте

ПРАКТИЧНА

АВТОМАТИЗОВАНЕ

ДОКУМЕНТА

Завдання: створити текстовий

кількох розділів, здійснити форматування

створити

режимі.

Обладнання: комп’ютер

дотримуйтеся правил безпеки.

1. Запустіть текстовий процесор і створіть

Знайдіть в інтернеті три-чотири вірші

2.

3.

За потреби відформатуйте зображення: обріжте, змініть розміри, обтікання, розташування тощо.

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

7. Створіть під портретом автора чи авторки автоматизований зміст. Змініть

8. Поділіть документ на розділи. Для цього після портрета

9. Установіть

Створити текстові або

1. Що

2. Які

3.

4.

5.

6.

7.

8. Як

1. Зайдіть

2.

їх поштою.

5. Попросіть однокласника чи однокласницю

Завдання: колективно створити й опрацювати документ онлайн. Обладнання: комп’ютер, під’єднаний до інтернету.

Хід роботи

безпеки.

1. Об’єднайтеся в групи для роботи над створенням реферату.

2. Виберіть тему реферату.

3. У своїй групі виберіть керівника, який створює документ на Google Диску або OneDrive і надає доступ до редагування.

4. Зайдіть до свого

5. Перейменуйте документ відповідно до теми.

6. На титульній (першій) сторінці документа напишіть тему.

7. Знайдіть в інтернеті вимоги до учнівських рефератів. Колективно опрацюйте

СТВОРЕННЯ МІНІГАЗЕТИ

Завдання: створити текстовий документ, який містить об’єкти різних типів, і автоматизований зміст.

Обладнання: комп’ютер, з’єднаний з інтернетом.

Хід роботи Під час роботи за комп’ютером дотримуйтеся

1. Ви редактор газети. Виберіть тему. На хмарному диску створіть текстовий документ. Для цього: а) розмістіть на титульній сторінці назву, логотип,

підзаголовок; укажіть дату випуску та номер мінігазети; б) додайте внизу сторінки своє прізвище та клас.

2. Запросіть у команду кілька однокласників / однокласниць, яких цікавить вибрана тема. Розподіліть завдання.

• Кореспондент: пише статтю (2–4 абзаци), наприклад, про новини школи, огляд подій чи опис шкільного проєкту.

• Дизайнер: виконує форматування сторінок газети.

• Спеціаліст із реклами: формує розділ оголошень або реклами.

3. На наступній сторінці розмістіть текст, зображення, підпис.

4. Додайте таблицю, наприклад, розкладу шкільних заходів.

5. Налаштуйте колір меж у таблиці, розмір клітинок тощо.

6. Додайте нумерований (маркований) список цікавих

7.

МУЛЬТИМЕДІЙНИХ

§ 18. Поняття мультимедіа. Кодування

§ 19. Кодування відеоданих.

§ 20. Програмне забезпечення для

§ 21. Програмне забезпечення

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

Повідомлення, які через тисячоліття

предків, належать до графічної (наскельні малюнки, настінні розписи) і текстової (стародавні написи

став мультимедійним.

Мультимедіа (англ. multimedia) комбінування в одному інформаційному продукті інформації, поданої різними

ми: текстової, графічної, звукової, відео, а

її інтерактивного використання.

Кодування звуку

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

звукової хвилі (див. рис. 18.3, а) можна закодувати такою послідовністю чисел: 0, 19 630, 24 274, 18 180, 16 457, 4672, –735, –9997, –12 928, –11 681, –13 815, –12 444, –13 128, –7928, 0. За цими значеннями

новити початкову форму хвилі (синя лінія на рис. 18.3, б). За такого способу кодування неминучими є певні втрати форми початкової хвилі, а отже, і якості звуку. Адже за час між

двома вимірюваннями рівень може різко змінитись і цю зміну

не буде зафіксовано (див. червоні ділянки графіка, наведені на рис. 18.3, б). Це означає, що збережений звук трохи відрізнятиметься від того, який записували.

Отже, щоб під час кодування точніше зберегти форму звукової хвилі, потрібно вимірювати рівень сигналу якомога частіше. Частота дискретизації це число вимірювань

час розкодовування за послідовністю чисел відтворюється

звукової хвилі, після чого

звуку й далі, наприклад, на звукові колонки.

Під час телефонної розмови (рис. 18.4) іноді погіршується якість звуку. Це означає, що через перевантаження ліній, погіршення передавального каналу чи з інших причин знижується частота дискретизації.

AIFF, WAV

Числовий

FLAC, APE

Ogg, MP3

playsound (із модуля playsound, playsound2 або playsound3). Після запуску

музика.mp3, якщо він є

from playsound import playsound #

from playsound import playsound

N = input() for C in N: # Перебираємо символи рядка S = C + '.mp3' # Формуємо ім’я файлу

і розширення playsound(S) # Відтворюємо звук

Якщо запустити програму й увести ціле число, то для кожної його цифри буде відтворено

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

Питання для самоперевірки

1. Що таке цифровий звукозапис?

2. Поясніть принцип кодування звуку.

3. У чому полягає дискретизація звукового сигналу?

4. Якими форматами аудіофайлів ви користуєтеся?

5. Як запрограмувати відтворення звукового файлу?

6. Поясніть, як виконується програма з прикладу 4.

Вправа 18

Скласти програму з використанням аудіофайлів.

1. Відтворіть на

2. Засобами

є найбільш інформативними. Розгляньмо, як кодують відеодані.

Як ви вже знаєте, рухоме зображення

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

2. Можна повністю зберігати лише ключові кадри, тобто ті, які

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

одночасно зменшить як обсяг файлу, так і обсяг

відтворення.

вказівника миші змінюється тільки маленька ділянка

ефективним.

На практиці ж у різних форматах відеофайлів

AVI Медіаконтейнер, розроблений спочатку для ОС Windows. Відтворюється на смартфонах, планшетах тощо

WMV Формат компанії Microsoft, може містити аудіо- й

MPlayer, Windows Media Player та ін.

MOV

медіаплеєрів

QuickTime-плеєра,

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

із сукупності

Питання

1. Як отримують рухоме зображення?

2. Навіщо «стискають» цифрове відео?

3. Назвіть відомі вам формати відео.

4. Чому існує велика кількість відеоформатів?

Вправа 19

Дослідити файл із відеоданими.

1. Знайдіть в інтернеті відеофільм О. Довженка «Земля» (або інший за вказівкою вчителя / вчительки) для завантаження. Запишіть формат і розмір відеофайлу; тривалість фільму.

2. Розрахуйте обсяг відеоданих без упакування за прикладом 1.

3. Поясніть, чому саме

4.

rnk.com.ua/ 110469

• модуль playsound (див. § 18);

• списки, в яких зберігатимемо

файлу1>", "<ім'я файлу2>", ...] • власні функції (§ 39, 40, 7 клас) для доступу й програвання файлів; розгалуження, цикли, відомі

1. Імпортуйте функцію

from playsound import playsound

2. Створіть списки для кожної зі збірок файлів (у нас їх дві): album1 = ['Абетка Морзе', './sounds/morse/', 'A.mp3', 'B.mp3', 'C.mp3'] album2 = ['Ноти', './sounds/notes/', 'do.mp3', 're.mp3', 'mi.mp3']

3. Створіть функцію для відтворення файлу зі збірки. Параметри функції: album список з описом збірки; number

номер файлу в збірці.

def play_from_album(album, number): playsound(album[1]+album[number+1])

4. Створіть функцію для виведення на екран інформації

збірку у вигляді нумерованого списку.

Параметр функції: album список з описом збірки.

def show_album(album): print('\nНазва колекції: ', album[0]) for i in range(2, len(album)): print(i–1, album[i])

5. Створіть функцію для введення з клавіатури номера файлу та перевірки його правильності.

Параметр функції: maxN найбільший допустимий номер. def select_file(maxN): n = int(input('Введіть номер файлу: ')) while n<1 or n>maxN: n = int(input('Хибний номер. Спробуйте ще

return n

def process_album(album): show_album(album) number = select_file(len(album)–2) play_from_album(album, number)

section = –1

while section != 0:

while section<0 or section>2:

print('\n-=#[

print('1.

print('2. Основні

print('\n0. Закінчити роботу')

section = int(input('\nВведіть

if section > 0:

if section == 1:

process_album(album1)

elif section == 2:

process_album(album2)

section = –1

змінення форматів аудіофайлів тощо.

Захоплення звуку

Щоб опрацьовувати на комп’ютері звукові дані,

пристроїв, наприклад, мікрофона, електрогітари, синтезатора тощо, їх потрібно

Захоплення звуку це процес перетворення звукового сигналу із зовнішніх джерел у цифрову

Аудіоредатор Audacity

Аудіоредактор Audacity (рис. 20.1) належить до

вільного програмного забезпечення (ліцензія GNU GPL) і може бути завантажений із офіційного сайту

програми.

Аудіоредактор Audacity надає низку функцій.

Це запис звуку з мікрофона або іншого джерела; імпортуван-

ня звукових даних із файлів різних форматів; редагування

1)

2)

3)

1. У чому

2. Яке призначення аудіоредактора?

3.

4.

5.

звукової доріжки.

6. Опишіть послідовність

1. Створіть

2. Якщо потрібно, підключіть

3. Натисніть кнопку Запис. Промовте в мікрофон свої прізвище, ім’я, клас. Зупиніть запис.

4. Прослухайте запис. Якщо якість звуку вас не влаштовує, повторіть запис, змінивши розташування мікрофона (ближче або далі), його нахил тощо.

5. Видаліть зайві звукові фрагменти (паузи на початку та в кінці).

6. Експортуйте запис у файл

Захоплення відео

OBS Studio

Конвертер відеофайлів HandBrake HandBrake вільна багатоплатформна програма, інструмент для перекодування відеофайлів з одного формату в інший. Розгляньмо роботу з відеофайлом (рис.

Blender

1)

1. Що таке захоплення відео?

2. Із яких пристроїв можна захоплювати відео?

3. Які можливості надає програма OBS Studio?

4. Якими програмами для перегляду відеофайлів ви користуєтеся? Опишіть, які можливості вони надають.

5. Коли виникає потреба змінити формат відеофайлу?

6. Для чого призначені програми-конвертери?

Вправа 21

Створити відеофайл, захопивши відео з екрана комп’ютера, за допомогою програми захоплення відео OBS Studio.

1. Виберіть тему малюнка (наприклад, «Небо України», «Моя вулиця» або на свій розсуд).

Запустіть графічний редактор

тощо).

2.

3.

4.

Рис. 22.2

Тут: 1 файли проєкту; 2

3 панель інструментів; 4 переходи; 5 монтажний стіл; 6 екран перегляду.

Процес створення

відеофільму

Процес розробки, створення й редагування відеофільму за

допомогою відеоредактора OpenShot складається з декількох

основних кроків. А саме:

1) імпортування аудіо- та відеофрагментів у проєкт;

2) редагування аудіо- та відеофрагментів;

3) побудова відеоряду;

4) налаштування переходів та ефектів;

5) підготовка та

6) налаштування звукового супроводу;

7) експорт

вгорі монтажного столу. Обрізану частину

відновити перетягуванням

(рис. 22.4). Доріжку

кувати від випадкових

і змін тривалості кліпів. Можливість розрізати кліпи та змінювати їхні властивості залишається.

Титри написи, що з’являються на початку або наприкінці відеофільму, на

1)

1. Опишіть

2.

3. Опишіть порядок

4.

5. Опишіть послідовність створення

6. Що містить файл проєкту

1. Знайдіть в інтернеті й завантажте

супроводом.

Збережіть у тій самій

лені вчителем / вчителькою.

2. Запустіть відеоредактор OpenShot, імпортуйте

3.

4. Розташуйте

X 5. Налаштування

уникнення різкої

Якщо два кліпи

то між ними буде автоматично додано перехід із поступовим

спеціалізованих інтернет-сервісах або в соціальних мережах. Розроблено низку популярних інтернет-сервісів для поширення відео, на яких користувачі

для самоперевірки

1. Яке

2.

3. Як

4. Опишіть

5. Як експортувати відеофільм у відеофайл?

супроводу.

6. Які є способи поширення відеофільму через інтернет?

7. Опишіть процес опублікування відеофільму

23

1. Запустіть OpenShot

2.

3.

5.

6.

Завдання: створити відеофільм

дами на основі раніше підготовленого проєкту.

Обладнання: комп’ютер із відеоредактором, навушники (звукові колонки).

Хід роботи

1.

2. Перегляньте відеофрагменти,

3.

4.

5.

6. На

7.

8. Додайте

9. Вимкніть власний звук деяких відеокліпів.

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

11. Перегляньте відеофільм.

Завдання: опублікувати відеофільм в інтернеті, надати доступ. Обладнання: комп’ютер із браузером, відеоредактором, відеоконвертером, з’єднаний з інтернетом.

Хід роботи

1.

2. Експортуйте відеофільм

3. Закрийте відеоредактор

4. Сконвертуйте відеофільм у формат MP4.

5. Запустіть браузер і відкрийте електронну скриньку.

6. Зайдіть на хмарний диск.

7. Збережіть на хмарному диску відеофільм у форматі mp4.

8. Відкрийте доступ усім, хто має посилання на відеофільм.

9. Надішліть посилання на адресу, зазначену вчителем / вчителькою.

10.

АЛГОРИТМИ ТА ПРОГРАМИ

§ 24. Сучасні мови програмування

§ 25. Налагодження програмного коду

§ 26. Графічний інтерфейс користувача

§ 27. Опрацювання подій

§ 28. Організація діалогу з користувачем

Практична робота 11. Введення і виведення даних

§ 29. Величини. Числові типи даних

§ 30. Математичні функції

§ 31. Рядковий тип даних

§ 32. Робота з текстовими файлами

§ 33. Логічний тип даних

§ 34. Елементи вибору

§ 35. Алгоритми з повтореннями. Цикли Практична робота 12. Створення програми з

§ 36. Графічні методи модуля tkinter

§ 37. Створення анімації

Практична робота 13. Моделювання руху об’єктів

Алфавіт мовиСинтаксис мовиСемантика мови

Набір символів, із яких

утворюються команди та інші мовні конструкції

Правила побудови

команд мови програмування

Правила виконання команд, записаних мовою програмування

Під час створення програм використовуються такі символи: • літери латинського

Перша мова високого рівня, що набула широкого

визнання серед фахівців, Fortran (рис. 24.2). Її розроблено в 1954 році в електронній корпорації IBM (США) [11].

X Розподіл за галуззю застосування

Мовою програмування люди доносять інформацію до комп’ю-

тера. Універсальні мови використовують для розв’язування різ-

них завдань; спеціалізовані мови для розв’язування завдань

певного типу або галузі, наприклад,

вищі програмування IDLE (рис. 24.7). І знаєте, що файл для

python.org [12]. Разом із

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

Після запуску IDLE відкриється вікно консолі IDLE Shell, у якому можна вводити команди і бачити результати в інтерактивному режимі. Команди записують

створення великих

IDLE.

1. Уведемо код у вікні програми (рис. 24.10).

2. Виберемо команду File → Save As і збережемо програму у файлі square.py. (Згадайте: в IDLE програму не

3. Виберемо команду Run → Run Module (або натиснемо F5).

4. У вікні консолі

a = float(input('a = ?'))

b = float(input('b = ?'))

c = a*b/2

print('s = ', round(s, 2))

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

2. Поясніть різницю між інтерпретатором і компілятором.

3. Які парадигми програмування підтримує мова Python?

4. Поясніть призначення команд у програмі (див. приклад).

5. Знайдіть в інтернеті інформацію про рейтинг мов програмування. Обговоріть у групах, які мови є найпопулярнішими в професійному програмуванні.

6. Запустіть веббраузер і введіть у рядок пошуку запит «Hello world різними мовами програмування». Порівняйте коди різними мовами, що виводять рядок Hello world. Вправа 24

Виконати дії в інтерактивному

random: >>> from random import*

3. Уведіть команди присвоєння

і

значення х: >>> x = randint(1, 100) >>> x

4. Уведіть у вікні

5.

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

• синтаксичні помилки (англ. syntax error);

• помилки часу виконання (англ. run-time error);

• логічні (алгоритмічні) помилки. Процес усунення помилок називають налагодженням програмного коду. Інтерпретатор

Виправлення синтаксичних

>>> 2х = 3

SyntaxError: invalid decimal literal

>>> |

25.2

Після запуску програми на виконання у вікні консолі

виведено номер рядка коду, в якому виявлено помилку, команду, яка спричинила

виконання програми, тип винятку та опис помилки.

Розгляньмо причини виникнення винятків на прикладі.

Виняток NameError виникає під час спроби використати змінну, якій не було присвоєно значення

>>> c=a*2

Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> c=a*2

NameError: name 'a' is not defined

4 5

>>> prit(a)

Traceback (most recent call last):

File "<pyshell#1>", line 1, in <module> prit(a)

NameError: name 'prit' is not defined. Did you mean: 'print'?

Рис. 25.4

>>> x = 0

>>> y = 5/x

Traceback (most recent call last):

File "<pyshell#3>", line 1, in <module> y = 5/x

ZeroDivisionError: division by zero

Рис. 25.5

>>> a = int('Hi')

Traceback (most recent call last):

File "<pyshell#4>", line 1, in <module> a = int("Hi")

ValueError: invalid literal for int() with base 10: 'Hi' Рис. 25.6

>>> a = 10+'3'

Traceback (most recent call last):

File "<pyshell#0>", line 1, in <module> a = 10+'3'

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Рис. 25.7

Перехоплення

На рис. 25.8 проілюстровано перехоплення винятку «Ділення на нуль».

try:

except ZeroDivisionError:

a, b, c = map(int, input('a, b, c = ?').split()) if a == 0: if b == c: print('Безліч коренів')

else: print('Корені відсутні')

else: x = (c–b)/a print('x = ', x)

Cтворімо тестові набори значень: Вхідні дані Очікуваний результат

a = 5; b = 2; с = 17 х = 3

a = 0; b = 2; с = 17 'Корені відсутні'

a = 0; b = 4; с = 4 'Безліч коренів'

Якщо результати виконання програми збігаються з результатами тестових

і її можна використовувати для розв’язування лінійних рівнянь.

Питання

1. Поясніть причину виникнення помилки: а) >>> 2a = 10 в) >>> print (a + b ґ) >>> 8 + "3" б) >>> a, b = 0 г) >>> int("Hi") д) >>> 1/0

2. Що таке виняток? Наведіть приклади.

3. Опишіть структуру повідомлення в разі виникнення винятку.

4. У результаті роботи програми одержано відповідь: «1,5 спортсмена». Визначте, до якого типу належить помилка.

5. Напишіть

25

Земля 149 600 000107 250 365,18 Венера 108 200 000126 110

4 496 600 00019 550

227 900 00086 870

В IDLE виберіть команду File → New File.

1. Уведіть текст програми (він містить помилки).

Nazva = int(input("Назва планети?")

R = int(input("Радіус орбіти?"))

V = input("Швидкість руху? ')

Period = 2*3.14*R/V*24

Print ('Рік на планеті ', 'Nazva', ' триває ', round(Period,3), ' діб');

2. Виправте синтаксичні помилки в програмі.

3. Перевірте роботу програми для даних Землі. Чи збігається відповідь із табличною? Якщо ні проаналізуйте вираз, за яким обчислюється значення Period: період обертання = довжина

об’єктів елементів інтерфейсу. Кожний елемент керування

що має властивості та методи. Для створення програм із

модуль tkinter (від англ. Tk interface

ну подійно-орієнтовану

вікна програми

root.geometry('250x150')

root.mainloop()

Проаналізуймо наведений код.

• Створюється об’єкт root як новий об’єкт класу Tk(), який

значено в модулі tkinter; через змінну root можна керувати виглядом і «поведінкою» вікна.

• Метод title() установлює заголовок вікна.

• Метод geometry() установлює розміри вікна (в пікселях). Як аргумент методу передається рядок у форматі <ширина>x<висота>. Якщо під час створення вікна програми не викликати метод geometry(), то вікно займе

розміщення елементів керування.

значення його властивостей.

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

класу: [<змінна> = ]<клас>([<батьківський_віджет>, ][<атрибут> = <значення>]) Тут і далі елементи, зазначені у квадратних дужках, задавати не обов’язково. Значення властивостей можуть задаватися (змінюватися) пізніше.

Батьківський віджет це елемент керування, до якого буде поміщено новостворений віджет.

Якщо батьківський віджет не задано, то новий віджет буде розміщено в головному вікні. Далі можуть задаватися значення атрибутів. Більшість віджетів у Tkinter мають такі властивості, як висота (атрибут height), ширина (width), шрифт (font), колір віджета (bg), колір тексту (fg) тощо. Розгляньмо створення елемента керування на прикладі напису об’єкта класу Label. Віджет Label містить рядок тексту й застосовується для виведення заголовків, підписів інших елементів інтерфейсу, результатів обчислень тощо.

Синтаксис створення віджета: [змінна = ]Label([батьківський_віджет, ][атрибут = значення])

Під час створення об’єкта Label можна задати такі атрибути: text текстовий рядок; width, height ширина й висота в знакомісцях (кількість символів); bg, fg колір фону й символів; font параметри шрифту (тип, кегль). Наприклад, font = 'Arial 18' шрифт Arial, кегль 18. Створений об’єкт потрібно

1 2 3 4

Розгляньмо кілька прикладів.

Додати у вікно напис Hello World!. lab = Label(root, text = 'Hello World!', font = 'Arial 18', bg = 'blue', fg = 'white') lab.pack()

Напис у вікні «прилип» до верхньо-

го краю вікна (рис. 26.2). Але в будь-

місцях.

Замінити команду виклику методу lab.pack() викликом методу place() (рис. 26.3): lab.place(x = 80, y = 30)

Змінити властивість напису або будь-якого іншого

можна так: ім'я_віджета

1. Із

2.

3.

4.

5.

1.

. from tkinter import*

root = Tk()

root.title('Перша програма') root.geometry('300x300')

2. Додайте віджет lab1 класу Label.

тла 'yellow';

символів 'grey'; ширина 20. lab1 = Label(root, text = 'Привіт, друже!', width = 20, font = 'Arial 18', bg = 'yellow', fg = 'grey') lab1.pack()

3. Завершіть програму

Button

bg,

(колір фону й тексту), font (параметри шрифту).

Створимо командну кнопку (рис. 27.1).

btn = Button(root, text = 'ok', width = 10, font = 'Arial 16')

btn.pack()

Створимо командну кнопку й додамо

на неї малюнок із файлу Picture.gif, що міститься в тій самій

що й файл програми (рис. 27.2).

my_image = PhotoImage(file = 'Picture.gif') btn = Button(root, image = my_image) btn.pack()

бо не створено функцію

from tkinter import*

def btn_click():

root['bg'] = 'green'

root = Tk()

btn = Button(root, text = 'ok', command = btn_click)

btn.pack()

root.mainloop()

головного вікна змінюється на зелений.

Зауважте! Обробник

обробника події.

на початку тексту програми.

Створимо кнопку, котра стрибає (рис. 27.4).

3

Після

from random import randint from tkinter import*

def btn_click():

x1 = randint(5, 190)

y1 = randint(5, 95)

btn.place(x = x1, y = y1)

root = Tk()

root.geometry('200x100')

btn = Button(root, text = 'OK', command = btn_click)

btn.place(x = 10, y = 10)

root.mainloop() Функція btn_click()

Опрацювання

Можна зробити так, щоб об’єкт змінював властивості у від-

повідь на натискання певної клавіші клавіатури або миші.

Для цього віджет із подією й функцією обробником події

пов’язують викликом методу bind() (рис. 27.5): <віджет>.bind(<подія>, <функція>),

де <подія> текстова константа, системна

назва події; <функція> назва функції

обробника події. Наприклад, віджет lab (об’єкт класу Label); подія '<Button-1>' (клацання лівою

кнопкою миші); функція lab_click (описана в коді вище).

Функцію action буде викликано щоразу, коли віджет lab у фокусі й натиснуто клавішу W: lab.bind('W', action)

Ознайоммося з системними назвами інших подій.

розміщується

'<KeyPress-Up>'

'<KeyPress-Down>'

'<KeyPress-Left>'

'<KeyPress-Right>'

на клавіатурі символ;

• keysym_num код набраного на клавіатурі символу тощо.

Запрограмуємо змінення кольору тла віджета lab

під час

from tkinter import *

def lab_in(event): # Обробник події "<Enter>"

lab['bg'] = 'green'

def lab_out(event): # Обробник події "<Leave>"

lab['bg'] = 'yellow'

root = Tk()

lab = Label(root, text = 'Hello World!', bg = 'yellow', font = 'Arial 16')

lab.place(x = 50, y = 50)

lab.bind("<Enter>", lab_in) #

lab.bind("<Leave>", lab_out) #

root.mainloop()

здійснюється доступ до об’єкта,

якого обробляється подія. Методи winfo_x() і winfo_y() цього об’єкта

динати x і y відносно вікна.

змінних dx і dy формується величина зсуву віджета за кожною

from tkinter import*

def focus_widget(event): #

event.widget.focus_set()

def move_lab(event): # Обробник

dx = dy = 0

if event.keysym == 'Up': dy = –5

elif event.keysym == 'Down': dy = 5

elif event.keysym == 'Left': dx = –5

elif event.keysym == 'Right': dx = 5

xn = event.widget.winfo_x()+dx

yn = event.widget.winfo_y()+dy

event.widget.place(x = xn, y = yn)

root = Tk()

lab1 = Label(root, text = 'Hello World!', bg = 'yellow', font = 'Arial 16')

lab1.place(x = 10, y = 10)

my_image2 = PhotoImage(file = 'кульки.png')

lab2 = Label(root, image = my_image2)

lab2.place(x = 10, y = 50)

root.bind('<1>', focus_widget)

root.bind('<Key>', move_lab)

root.mainloop()

Українська науковця

(рис. 27.7) стояла біля витоків вітчизняної

школи теоретичного програмування. Вона розробила Адресну мову, одну з перших мов

програмування високого рівня у світі, у якій застосовуються операції над адресами об’єктів у пам’яті комп’ютера [14].

Мюррей Гоппер (рис. 27.8) американська вчена в галузі комп’ютерних

та контр-адмірал

сил США, одна з перших

комп’ютера Марк I.

1. Створіть

2.

параметрами side = TOP, fill = X: b_red = Button(text = 'Червоний колір', command = button_red) b_red.pack(side = TOP, fill = X)

3. Аналогічно створіть кнопки із

Синій колір, Збільшити шрифт, Зменшити шрифт, Змінити напис.

4. Додайте внизу вікна віджет label_text класу Label. Задайте значення властивостей fg, bg (колір фону, колір шрифту).

label_text = Label(text = 'Hello, World!', font = 'Arial 12')

label_text.pack(side = BOTTOM, fill = X)

5. Створіть обробник події Натискання на кнопку для об’єкта b_red (рис. 27.9): def button_red(): root.config(bg = 'red')

6. За аналогією створіть обробник події для кнопки

7. Створіть

шрифт: def button_plus()

label_text.config(font = 'Arial 18')

8. За аналогією

9.

input()

<змінна> = input(<підказка>)

Функція print() потрібна, щоб вивести текст у вікно консолі: print(<список виведення>)

Розгляньмо елементи керування, призначе-

ні для введення й виведення даних у програмі з графічним інтерфейсом. Віджет Label дозволяє

виводити текстові повідомлення. Але програма

надавати

Клас Entry

Компонент Entry це поле для введення тексту, також

налаштування

і

: ширина й висота

Розгляньмо методи Entry на прикладі об’єкта entry1.

Метод Призначення Приклад виклику get() Отримати значення, що міститься в текстовому полі

Змінній а цілого типу присвоїти значення, що міститься в полі entry1: a = int(entry1.get())

insert(index, str) Вивести в текстове поле рядок str, починаючи зі знакомісця з номером index

delete(first, last)Вилучити символи, починаючи зі знакомісця з номером first до знакомісця з номером last (нумерація символів з 0)

Вивести в поле еntry1 значення змінної х: entry1.insert(0, х)

Очистити текстове поле. Щоб вилучити весь текст, як другий параметр потрібно вказати END: entry1.delete(0, END)

Уведемо число до поля об’єкта entry1 і виведемо квадрат цього

числа до поля об’єкта entry2 (рис. 28.1). Зчитування значення з текстового поля, піднесення до квадрата й виведення результату в поле entrу2 виконує функція kvadrat()

події Натискання клавіші Enter. from tkinter import* def kvadrat(event): a = float(entry1.get())

entry2.delete(0, END)

entry2.insert(0, str(a**2)) root = Tk()

Label(root, text = 'a = ', font = 'Arial 18').place(x = 10, y = 10)

entry1 = Entry(root, width = 8, font = 'Arial 18')

entry1.place(x = 80, y = 10)

Label(root, text = 'b = ', font = 'Arial 18').place(x = 10, y = 50)

entry2 = Entry(root, width = 8, font = 'Arial 18')

entry2.place(x = 80, y = 50)

entry1.bind('<Return>', kvadrat) root.mainloop()

Метод grid()

Вам уже відомі методи pack() і place(), призначені

міщування віджетів у вікні. Якщо у вікні потрібно в певному порядку розмістити кілька віджетів, то швидко та правильно зробити це допоможе метод grid() (з англ. сітка). Цей

таблиці.

Адреса кожної клітинки таблиці складається з номера рядка

row і номера стовпця column.

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

зонталі.

Атрибути методу grid() мають такий зміст:

• row, column номери рядка й стовпця відповідно;

• padx, pady ширина (в пікселях) вільного місця навколо віджета по

• columnspan, rowspan

(рис.

Label(text = 'Множники').grid(row = 0, column = 0, padx = 5, pady = 5)

entry1 = Entry(width = 12)

entry1.grid(row = 0, column = 1, padx = 5, pady = 5)

entry2 = Entry(width = 12)

entry2.grid(row = 0, column = 2, padx = 5, pady = 5)

Label(text = 'Добуток').grid(row = 1, column = 0, padx = 5, pady = 5)

entry3 = Entry()

entry3.grid(row = 1, column = 1, columnspan = 2, padx = 5, pady = 5)

консоль Python. from tkinter import*

def btn_click ():

s = entry1.get()

a = eval(s)

entry2.delete(0, END)

entry2.insert(0, str(a))

root = Tk()

Label(text = 'Уведіть

entry1 = Entry(width = 20)

').grid(row = 0, column = 0)

entry1.grid(row = 0, column = 1)

btn = Button(root, text = 'Обчислити

command = btn_click)

btn. grid(row = 1, column = 0, columnspan=2)

Label(text = 'Результат: ').grid(row = 2, column = 0)

entry2 = Entry(width = 20)

entry2.grid(row = 2, column = 1) root.mainloop()

tkinter

повідомлень. Модуль messagebox потрібно імпортувати

from tkinter import messagebox Від вибраного методу залежить вигляд

повідомлення (рис. 28.5). Для

кнопкою ОК цей модуль надає такі методи:

• messagebox.showinfo() створює вікно для відображення деякої інформації;

• messagebox.showerror()() створює вікно з повідомленням про помилку;

• messagebox.showwarrning() створює вікно для відображення попереджень.

Синтаксис виклику методу: messagebox.showinfo([заголовок, ][текст])

Створимо вікно повідомлення інформаційного

3

(рис. 28.6): messagebox.showinfo('Інформація', 'Обчислення закінчено')

4

def b1_click():

a = float(entry1.get())

b = float(entry2.get()) if b == 0:

messagebox.showerror('Помилка', 'На 0 ділити не можна!') else:

messagebox.showinfo('Відповідь', str(a/b))

a =

1. Поясніть

віджета Entry?

2. Опишіть основні методи об’єкта класу Entry.

3. У поле віджета Entry введено рядок Інформатика. Який

а) entry1.delete(2, 6); б) entry1.insert(3, '111')?

4. Як

5.

6.

Enter

Вправа 28

Відомо, що в результаті переробки

60 кг макулатури зберігається 1 дерево і 0,0005 га лісу. Скласти програму Збережи дерево (рис. 28.9), яка за масою макулатури визначає, скільки дерев і яку площу лісу допоможе зберегти її переробка.

В IDLE виберіть команду File → New File.

1. Створіть вікно програми із заголовком Збережи дерево. Завершіть програму оператором root.mainloop().

2. Створіть віджет класу Label із підписами і віджет entry1 класу Еntry для введення даних.

Label(text = 'Введіть масу, кг:').grid(row = 0, column = 0, padx = 8, pady = 8)

entry1 = Entry(width = 10)

entry1.grid(row = 0, column = 1, padx = 8, pady = 8)

3. Розмістіть у вікні віджет b1 класу Button: b1 = Button(text = 'Обчислити', command = b1_click, width = 14)

b1.grid(row = 1, column = 0, columnspan = 2, padx = 8, pady = 8)

4. Додайте решту написів та поля entry2, entry3.

5. Oпишіть функцію

def b1_click():

n = int(entry1.get())

entry2.delete(0, END)

entry2.insert(0, str(int(n/60)))

entry3.delete(0, END)

entry3.insert(0, str(n/60*0.0005))

6.

Завдання: скласти програму Касир, під час виконання якої комп’ю-

тер буде виконувати такі дії: а) повідомляти вартість одиниці товару (рис. 1);

б) запитувати кількість товару, що купується;

в) обчислювати вартість покупки; г) повідомляти вартість покупки;

ґ) запитувати, скільки грошей дає покупець;

д) повідомляти решту. Обладнання: комп’ютер із

Хід роботи

IDLE виберіть команду File → New File.

1. Створіть вікно програми із заголовком

2. Завантажте модулі tkinter, messagebox.

3. Завершіть програму оператором root.mainloop().

4. Створіть об’єкт lab1 класу Label для виведення назви товару та вартості одиниці товару. lab1 = Label(root, text = 'Яблука "Чемпіон": 1 кг – 15 грн', fg = 'red') lab1.grid(row = 0, column = 0, columnspan = 2)

5.

7.

8. Організуйте

мих ситуаціях (наприклад,

10. Додайте до опису функції

if c<0: messagebox.showerror('Помилка', 'Недостатньо

else: messagebox.showinfo('Ваша решта', str(c) + ' грн')

§ 29. Величини.

Будь-яка програма оперує певними величинами. Так, у програмі обчислення шляху, подоланого автомобілем за певний час, використані такі величини, як швидкість руху, час, шлях. Величина це окремий інформаційний об’єкт (число, символ, рядок тощо), який характеризується типом і значенням, розміром пам’яті, потрібної для зберігання, назвою (ідентифікатором).

Характеристики величини

Правила вибору

об’єктів. Кожна величина належить до певного типу. З поперед- ніх класів ви знаєте, що

тип і значення.

Тип величини визначає множину

значень величини й операції, які можна виконувати над цими значеннями. Згадаємо, що ви вже знайомі з такими типами даних, як int (цілі числа), float (дробові числа), bool (логічні значення), str (рядки), list (списки).

Python це мова з динамічною типізацією. Це означає, що

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

Змінні в Python зберігають посилання

комп’ютера.

Змінну часто порівнюють зі скринькою, в якій зберігається значення величини.

Змінні в Python більше схожі на ярлики, що прикріплюються до об’єктів, розміщених у пам’яті комп’ютера (рис. 29.2).

Створимо змінну a: а = 7

Змінна a це посилання на об’єкт, який містить значення 7.

Значення величини це конкретні дані, які вона містить у момент звернення до неї. Щоб створити змінну в Python, необхідно дати їй назву й присвоїти значення (рис. 29.3).

Загальний вигляд команди присвоєння:

А = В, де А назва змінної, В константа, змінна або вираз.

Створимо декілька змінних, що

самий об’єкт (див. рис. 29.2):

а = b = c = 7

x = 3.9e3

print(x) # 3900.0

x = 3.9e-3

print(x) # 0.0039 Ви вже знаєте, що

нути необхідність перетворення значення

на значення іншого типу:

значення, дробове число перетворити

тощо. Для перетворення типів призначені такі функції:

• float() створює дробове число з рядка або цілого числа;

• int() створює ціле число з рядка або дробового числа. Під час перетворення дробового

а лише відкидається дробова

• аргументи функцій записуються

регулюється дужками.

Запишемо за правилами мови

Для підвищення

Проаналізуймо

якої записуються

кількість десяткових знаків у дробовій частині числа;

1. Опишіть характеристики величин, що відповідають змінним: а) a = 12; б) b = True; в) с = 3.14; г) d = "8.67".

2. Обчисліть значення виразів: а) 123//100; б) 123%10; в) 123//10%10.

3. Запишіть наведені вирази за правилами Python: а) 105d = 4 3 7 c3 + 2 3 ; б) –35x – 4y b1 8c + 5 4b2 · b2 x + y .

4. Запишіть команди присвоювання, які реалізують такі дії: а) змінній с присвоїти суму значень змінних а і b; б) значення змінної а збільшити на 10.

5. Поекспериментуйте у вікні консолі.

Виведіть число 123456.123456789 у

а) '{:.Yf}'.format() із різними значеннями параметра Y; б) '{:Х.Y}'.format() без указання типу величини, що виводиться.

Вправа 29

Написати програму для розв’язування задачі.

Задача. Обчислити значення щомісячної

m

відомими значеннями суми позики s, відсотка p і кількості років n за формулою

1. Створіть вікно програми розмірами 250 × 200 із заголовком Розрахунок

width = 15, font = 'Arial 14', anchor = E) lab1.grid(row = 0, column = 0) ent1 = Entry(root, width = 8, font = 'Arial 14')

ent1.grid(row = 0, column = 1, padx = 10)

3.

4. Додайте

Button: btn = Button(root, text = 'Обчислити', font = 'Arial 14', command = btn_click)

btn.grid(row = 3, column = 0, columnspan = 2) 5.

функції. def btn_click():

s = float(ent1.get())

p = float(ent2.get())

n = int(ent3.get())

r = p/100

m = (s*r*(1+r)**n)/(12*((1+r)**n–1))

ent4.insert(0, str(round(m, 2)))

У мові Python для розв’язування математичних задач існують убудовані стандартні функції. Їх можна використовувати

підключення модулів. Ознайоммося з таблицею:

ФункціяПризначення ПрикладРезультат abs(x)

divmod(a, b)Повертає неповну

c, d = divmod(7, 3) c = 2 d = 1 round(num[,n])

Для використання інших математичних

1

ФункціяПризначення

degrees(rad)

Конвертує значення

кута rad із радіанів

у градуси

radians(grad) Конвертує значення

cos(rad)

2

ПрикладРезультат

а = degrees(3.14159)a ≈ 180

кута grad із градусів у радіани а = radians(180)a = 3.1415926

Повертає косинус x,

де x виражений у радіанах х = cos(radians(60))х = 0.5

= sin(radians(90))х = 1.0

легко з’ясувати, що кількість перестановок n предметів

дорівнює добутку цілих чисел

називають факторіалом

ен-факторіал).

Обчислимо

A(xa, ya) і B(xb, yb) на координатній площині (рис. 30.2).

Довжина

ється за формулою

AB = √(xb – x a)2 + (yb – ya)2 : d = sqrt((xb–xa)**2+(yb–ya)**2)

Отже,

Це допомагає використовувати

Випадкові числа Ви вже маєте досвід застосування

>>> number = randint(1, 10) >>> print(number)

>>> number = random()

>>> number = uniform(3,9) >>>

>>> letter = choice('Python') >>> letter 'o'

Нам потрібно випадковим чином

персонажа для гри.

gamers = ["Птах", "Заєць", "Бобер", "Кажан"]

gamer = choice(gamers)

Результат наведено на рис. 30.3.

>>> from random import*

>>> gamers = ['Птах', 'Заєць', 'Бобер', 'Кажан']

>>> gamer = choice(gamers)

>>> print(gamer)

Заєць

>>> gamer2 = choice(gamers)

>>> print(gamer2)

Птах

Рис. 30.3 Модуль

початкового значення.

Питання

1. Визначте результат виклику функції: а) abs(–6); б) divmod(123, 10); в) round(5.23739, 2).

2 Обчисліть значення, яке повертає функція модуля math: а) sqrt(25); в) factorial(6); ґ) 10*pi; б) ceil(5.2); г) degrees(1.57); д) radians(90).

3. Складіть програму

Вправа 30

Написати програму для розв’язування задачі.

Задача. Туристи вийшли з точки А і

маршрутом АВСА. Написати програму для визначення довжини маршруту, якщо відомі координати точок А,

, С (рис. 30.4).

км Рис. 30.4

В IDLE виберіть команду

File → New File.

1. Завантажте модулі tkinter, math.

Створіть вікно програми розміра-

ми 600 × 300 із заголовком Маршрут (рис. 30.5). Завершіть програму

оператором root.mainloop().

2. Додайте до вікна два об’єкти класу

Label із написами 'ХА =', 'YА =' та

об’єкти entха, entуа класу Entry для

введення координат точки А.

Маршрут

ХА = 2

ХВ = 12 ХС = 5 YА = 3 YВ = 5 YС = 10|

Обчислити

Довжина 26.416

Рис. 30.5

Label(root, text = 'ХА =').grid(row = 0, column = 0)

entxa = Entry(root, width = 5, font = 'Arial 14')

entxa.grid(row = 0, column = 1, padx = 5)

Label(root, text = 'YА =').grid(row = 0, column = 2)

entya = Entry(root, width = 5, font = 'Arial 14')

entya.grid(row = 0, column = 3, padx = 5)

Button: btn = Button(root, text = 'Обчислити', command = btn_click)

btn.grid(row = 3, column = 0, columnspan = 4)

Опишіть обробник

xa, ya, xb, yb, xc, yc

поля entxa, entya, entxb, entyb, entxc, entyc.

: m = f(xa, ya, xb, yb)+f(xb, yb, xc, yc)+f(xc, yc, xa, ya)

,

4. Функція f(x1, y1, x2, y2) має обчислювати

за формулою d = √(x1 – x2)2 + (y1 – y2)2 . Формальним параметрам x1, y1, x2, y2

координат кінців відрізка.

функцію f(): def f(x1, y1, x2, y2): d = sqrt((x1–x2)**2+(y1–y2)**2) return d

Для опрацювання текстових даних у мові програмування

Python існує тип даних str (від англ. string рядок). Значенням величини типу str є послідовність символів, яку у виразах беруть в одинарні або подвійні лапки: s = 'це рядок' або s = "це рядок".

Початок і кінець рядка позначають лапками одного виду.

Рядок із апострофом слід брати в подвійні лапки, і навпаки: s1 = "Я, сім'я, Україна"

s2 = 'Фільм "Земля" (реж. О. Довженко)'

Якщо рядок містить як апострофи, так

і лапки, перед тими з них, що збігаються

з обмежувачами, ставлять символ «\»:

s3 = "Сім'я дивиться фільм \"Земля\""

Величину будь-якого типу можна перетворити на рядок функцією str() (рис. 31.1).

Доступ до символів у рядку

>>> str(1.5e+5) '150000.0'

>>> str(1/3) '0.3333333333333333' >>> str(15) '15'

циклом for <змінна> in <рядок>. Під час виконання такого циклу змінна почергово набуває значень окремих символів рядка. Виведемо

Отриманий за індексом символ

присвоїти іншій змінній.

>>> s = 'Сонечко яскраво сяє'

>>> b = s[8]

>>> b

спробувати

пазону або використовувати числа,

цілих (наприклад, числа з рухомою комою), Python видасть помилку. Із рядка можна добувати зріз: копіювати деяку послідовність символів рядка (не обов’язково суміжних) за певним правилом.

Команда добування зрізу з рядка:

а = s[i: j: step], де а змінна, в яку зберігаються добуті символи; і індекс початку зрізу; j індекс межі кінця зрізу (не входить у зріз); step крок, із яким вибираються символи.

Розглянемо застосування операції добування

кладі рядка s = 'Сонечко яскраво сяє'. Приклад

а = s[8:15] Зріз від символу

8 рядка s включно до символу з номером 14 а = 'яскраво'

а = s[:7]Зріз

Рядки в Python є

Спроба

s = 'Сонечко'

s[2] = 'л'

TypeError: 'str' object does not support item assignment

Згадаймо

len(s) Кількість символів у рядкуk = len('Сорока')k = 6 subs in sВизначення, чи є в рядку s

підрядок subs a = 'y' in 'Python' a = True

s1+s2 Об’єднання рядків s1 і s2

s = 'Сонце' + ' ' + 'сяє' s = 'Сонце сяє'

n*s Дублювання рядка s n разівs1 = '+'*4 s1 = '++++'

Багаторядкове

чуванням створюється віджет висотою (height) 24 знакомісця і шириною (width) 80 знакомісць. Значення цих властивостей можна задати при створенні об’єкта.

Значення WORD властивості wrap вмикає перенесення слів у полі на новий рядок цілком,

5 6 7

Створимо об’єкт text1 класу Text. text1 = Text(width = 35, height = 6, wrap = WORD) text1.pack()

Якщо в текстове поле введено

то

Mетоди Text

Основні

Щоб отримати один рядок із поля Text, потрібно вказати допустимий індекс для початку рядка, а потім зазначити той самий індекс із додаванням "lineend": subs = text1.get(1.0, "1.0 lineend")

# subs = "Встала весна, чорну

Щоб отримати з поля Text його вміст, починаючи з певної позиції і до кінця, як другий параметр потрібно вказати END: s = text1.get(1.0, END)

Питання

1. Визначте, якого значення набуває змінна a після виконання команд, якщо s = 'Сонечко': а) a = s[2:5]; в) a = s[5:]; ґ) a = 5*s[2]; б) a = s[:3]; г) a = s[::2]; д) а = s[::–1].

2. Запишіть команду, що реалізує таку дію: а) отримати підрядок рядка s із 2-го символу по 5-й включно; б) отримати підрядок із останніх п’яти символів рядка s.

3. Розгадайте фразу й запишіть оператор для її розшифрування: а) s = 'яа клеюгбмлщюй кіеннфгошрщмзазтхиткуур'; б) s = 'мофинвафин пайфинтонфин'.

4. Складіть програму для визначення, чи є паліндромом уведений із клавіатури рядок s.

5. Поясніть, як створюється й використовується текстове поле.

Вправа 31 Скласти

В IDLE виберіть

1.

2.

text.insert(1.0,"Видаліть

3. Створіть кнопки об’єкти b_shifr, b_delete класу Button (рис. 31.4). Обробникам

shifrText, deleteText.

b_shifr = Button(root, text = 'Зашифрувати', command = shifrText)

b_shifr.grid(row = 1, column = 0)

b_delete = Button(root, text = 'Видалити', command = deleteText)

b_delete.grid(row = 1, column = 1)

31.4

4. Опишіть обробник події

кнопки b_delete: def deleteText():

text.delete(1.0, END)

5. Опишіть обробник події для кнопки b_shifr: def shifrText(): s = text.get(1.0, 'end–1c')

text.delete(1.0, END) if (len(s)%2 != 0): s = s+' ' # Якщо кількість символів for i in range(0, len(s), 2): # непарна, додати пропуск text.insert(END, s[i: i+2:][: :–1]) Уведіть текст і натисніть кнопку Зашифрувати

Файл

• "r" відкриття тільки для читання; • "w" відкриття для записування: знищує вміст файлу, якщо

• "а" відкриття для дозаписування; інформація

не існує.

1

У файлі 'text.txt' міститься рядок "Привітання від Python!". У консоль виводиться вміст файлу (рис. 32.2). f = open("text.txt", "r")

print(f.read(1)) # Зчитати 1 символ з файлу

print(f.read()) # Зчитати всі інші символи f.close()

Метод <файлова змінна>.readline() зчитує із файлу один рядок. Після зчитування елемента (символу або рядка) з файлу

(доступним)

файл порядково, скориставшись циклом for: f = open("numbers.txt", "r") for line in f: print(line, end = '') # Якщо

f.close()

2

записати рядок s у

змінна>.write(s) Для того щоб зміни у файлі збереглися,

файл,

f = open("f1.txt",

f.write("111111")

f.write("222222")

f.close()

3

f = open("f1.txt", "r")

suma = 0 for line in f:

suma = suma + int(line)

f.close()

f = open("f1.txt", "a")

s = 'сума = '+str(suma)

f.write(s)

f.close()

Модуль filedialog у Python є частиною бібліотеки tkinter і

ром файлів або каталогів. Це зручно для

графічних інтерфейсів, де потрібно дозволити користувачам вибирати файли для обробки

збереження. Для завантаження модуля слід записати команду: from tkinter import filedialog as fd, де fd це псевдонім, яким ми, щоб скоротити код, заміняти-

мемо назву модуля filedialog у разі виклику методів. Функція askopenfilename() надає

файлу, функція asksaveasfilename()

фай-

відкрито або збережено, але самі його

from tkinter import* from tkinter import filedialog as fd def insertText():

file_name = fd.askopenfilename(filetypes = (("TXT files", "*.txt"), ("HTML files", "*.html;*.htm"), ("All files", "*.*") ))

f = open(file_name)

s = f.read()

text.insert(1.0, s)

f.close()

def extractText():

file_name = fd.asksaveasfilename()

f = open(file_name, 'w')

s = text.get(1.0, END)

f.write(s)

f.close()

root = Tk()

text = Text(width = 25, height = 8)

text.pack()

b_open = Button(root, text = "Відкрити", command = insertText)

b_open.pack()

b_save = Button(root, text = "Зберегти", command = extractText)

b_save.pack()

root.mainloop()

1. Як організувати

В IDLE виберіть команду File → New File.

2. Завантажте модулі tkinter, filedialog, messagebox.

3. Створіть вікно програми із заголов-

ком Аналіз тексту.

Розмістіть у вікні віджет Entry для задання шуканого символу та віджет Text для показу вмісту файлу f_text.txt.

4. Додайте до вікна два віджети Button: b_open для відкриття фай-

лу, і b_count для підрахунку

числа входжень шуканого символу (рис. 32.5).

5. Опишіть функцію insertText() для

кнопки b_open: def insertText(): file_name = fd.askopenfilename(filetypes = (("TXT files", "*.txt"), ("All files", "*.*") ))

f = open(file_name)

s = f.read()

text.insert(1.0, s)

f.close()

6. Опишіть функцію count_C() для кнопки b_count: def count_C():

c = entry.get()

s = text.get(1.0, END)

k = s.count(c)

messagebox.showinfo("Відповідь", "k = "+str(k))

2

>>>

True

>>>

NUM = 8

>>> all([NUM >= 7, NUM <= 20, NUM%2 == 0])

True

== 0, y == 0, z ==

True

X Команда розгалуження іf

Виконання команди if (англ. якщо)

можна описати так: «якщо умова істинна, то виконати ці команди». Команда if реалізує алгоритмічну конструкцію

неповне розгалуження (рис. 33.1).

Синтаксис команди: іf <умова>: __<команди>

Команди

лівого краю.

Складемо програму для впорядкування уведених

змінних a і b так, щоб а не перевищувало b. a, b = map(int, input().split()) if a>b: a, b = b, a print(a, b)

X Команда розгалуження if...else

Алгоритмічній конструкції

повне розгалуження відповідає команда if...else (англ. якщо...інакше) (рис. 33.2).

Синтаксис команди: if <умова>: <команди 1> else: <команди 2> Якщо умова істинна,

ки скористаємося теоремою

a, b, c = map(int, input().split()) if any([ a**2 == b**2+c**2 , b**2 == a**2+c**2 , c**2 == a**2+b**2]): print('Так') else: print('Ні') Вкладення

під час виконання (або

деякої умови потрібно знову робити

так

вкладені розгалуження: у відповідній

яка

«рік»

числі й відмінку (рис. 33.3). Проаналізувавши форми слова «рік», помічаємо, що для числа К вибір закінчення

рис. 33.4, с. 214).

5 років15 років25 років

років16 років26 років

років17 років27 років

років18 років28 років 9 років19 років29 років

років20 років30 років Рис. 33.3

K = int(input()) if K%10 == 0 or K%10>4 or K >= 11 and K <= 14: print('років') else: if K%10 == 1: print('рік') else: print('роки')

скориставшись ключовим словом elif (англ. else if інакше, якщо). Це дозволяє реалізувати

(рис. 33.5).

Синтаксис команди: if <умова1>: <команди 1> elif <умова2>: <команди 2> ...

elif <умова N>: <команди N> else: <команди N+1>

(if) (elif) (elif) (else) Дії 4

1

2

3

1

2

3

33. Логічний

Визначимо, у якій координатній чверті лежить точка з координатами x, y (x ≠ 0, y ≠ 0) (рис. 33.6).

x, y = map(int, input('x, y? ').split()) if x>0 and y>0: print('І чверть')

elif x<0 and y>0: print('ІI чверть')

elif x<0 and y<0: print('ІII чверть')

elif x>0 and y<0: print('ІV чверть')

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

1. Початкові значення змінних а = –3; b = 5. Визначте, чому дорівнюють а і b після виконання таких команд: а) if a>b: a = a–b else: b = b–a б) if a<0: a = –a в) if a != b: a = b

2. Початкові значення змінних а = 8; b = 5. Визначте, чому дорівнюють а і b після виконання таких команд: а) if а<0: if а>b: а = b else: b = а else: if а>b: b = а else: а = b б) if a<5: b = а+1 else: if a<10: b = a*2

3. Запишіть

5.

6. Складіть програму, яка за введеним

ри t виводить повідомлення про стан, у якому перебуває вода за такої температури (твердий, рідкий, газоподібний).

Вправа 33

Скласти програму для знаходження

няння вигляду ax2 + bx + c = 0. В IDLE виберіть команду File →

1. Створіть файл програми з назвою Vprava33.

2. Завантажте модулі tkinter, messagebox (як mb), math.

3. Створіть вікно програми із

Квадратне рівняння. У кінці програми напишіть команду root.mainloop().

4. Розробіть інтерфейс

за зразком (рис. 33.7). Віджетам Entry

дайте назви enA, enB, enC.

5. Опишіть функцію btn_click() обробник події для кнопки

корені. Значення a, b, c можна зчитати з полів enA, enB, enC в такий спосіб: a, b, c = map(float, [enA.get(), enB.get(), enC.get()])

рівняння має два корені, їх значення

s = 'x1 =' +str(round(x1, 2))+'x2 = ' +str(round(x2, 2)) mb.showinfo('Два

Вам, напевно, доводилося робити

вибір певних значень із низки запропонованих у діалоговому вікні за до-

помогою таких елементів керування, як перемикачі та прапорці (рис. 34.1). У Tkinter перемикачі складаються з об’єктів класу Radiobutton (радіокнопка), прапорці ж є об’єктами класу Checkbutton.

Елемент керування Радіокнопка (Radiobutton)

Перемикачі, що складаються з двох або більше радіокнопок (віджетів класу Radiobutton), використовують, коли потрібно вибрати один із декількох варіантів.

У разі вибору іншої радіокнопки попередня вимикається.

Перемикачі корисні, коли важливо уникнути вибору декількох значень одночасно. Наприклад, вибір способу оплати: "Кредитна картка", "Готівка", або вибір рівня складності гри: "Легкий", "Середній", "Складний". Зв’язок між радіокнопками перемикача

1) створити змінну var класу IntVar для керування станом перемикача;

2) створити потрібну кількість об’єктів класу Radiobutton із різними значеннями властивості value;

3) занести в атрибут variable усіх радіокнопок

трьох кольорів. var = IntVar()

rbR = Radiobutton(text = "Червоний", variable = var, value = 0)

rbY = Radiobutton(text = "Жовтий", variable = var, value = 1)

rbG = Radiobutton(text = "Зелений", variable = var, value = 2)

rbR.pack(anchor = W)

rbY.pack(anchor = W)

rbG.pack(anchor = W)

Параметр anchor

1 2 Рис. 34.2 Світлофор

увімкнеться, а кнопка rbR вимкнеться, і змінна var

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

Пов’яжемо всі кнопки з функцією обробником change(), так само, як ми це робили

def change(): if var.get() == 0: root.config(bg = 'red')

elif var.get() == 1: root.config(bg = 'yellow') elif var.get() == 2: root.config(bg = 'green')

вибирати розмір піци (рис. 34.3).

from tkinter import*

def btn_click():

lab.config(text = 'Вартість: ' +str(var.get()*60) + ' грн')

root = Tk()

root.title('Конструктор піц')

var = IntVar()

var.set(0)

Radiobutton(text = 'Великий корж', variable = var, value = 2).pack(anchor = W)

Radiobutton(text = 'Середній корж', variable = var, value = 1).pack(anchor = W)

Button(root, text = 'Замовити', command = btn_click).pack(pady = 10)

lab = Label(root, text = 'Вартість: ', width = 20, anchor = W)

lab.pack(padx = 5, pady = 10)

root.mainloop()

(Checkbutton)

4

Checkbutton(text

5

склад піци (рис. 34.4).

Label(root, text = 'Виберіть складники:', width = 20, anchor = W).pack(pady = 10)

cvar1 = BooleanVar()

Checkbutton(text = "Цибуля 8 грн", variable = cvar1, onvalue = 1, offvalue = 0).pack(anchor = W)

cvar2 = BooleanVar()

Checkbutton(text = "Моцарела 18 грн", variable = cvar2, onvalue = 1, offvalue = 0).pack(anchor = W)

def btn_click(): suma = var.get()*(60+cvar1.get()*8+cvar2.get()*18) lab.config(text = 'Вартість: '

1. У яких випадках використовують компонент Radiobutton?

2. Що забезпечує використання компонента Checkbutton?

3. Як створити зв’язок між радіокнопками?

4. Назвіть три відмінності між об’єктами класу Radiobutton та об’єктами класу Checkbutton.

5. Як організувати перевірку стану прапорця?

6. Як до програми Конструктор піц додати ще один прапорець (наприклад, для вибору складника "Бекон"). Вправа 34

ються випадковим чином.

В IDLE виберіть команду File → New File.

1. Завантажте модулі tkinter, random.

Запишіть команди для створення вікна програми tk із

Вгадай колір (рис. 34.5).

Завершіть програму командою tk.mainloop().

2. Створіть список назв кольорів: colors = ["black", "red", "blue", "yellow", "green", "pink"]

Створіть змінну bal для збереження кількості правильних відповідей: bal = 0

3.

var = IntVar()

Radiobutton(text = "black", variable = var, value = 0, command = change).grid(row = 0, column = 0, sticky = W)

Запишіть

4. Створіть об’єкт lab1 класу Label. lab1 = Label(text = "Яким кольором зроблено напис?")

lab1.grid(row = 1, column = 1)

Створіть об’єкт lab2 класу Label. Властивості text об’єкта на-

дайте випадкове значення зі списку colors: lab2 = Label(text = choice(colors), fg = k, font = "Times 30")

lab2.grid(row = 2, column = 1)

5. Заповніть пропуски в описі функції change(): def change(): n = "GO" #

global bal, k #

if var.get() == 0 and k == 'black': bal = bal+1 elif var.get() == 1 and k == 'red': bal = bal+1

<Додайте решту рядків>

else: n ="end" if n == "end": lab2['text'] = "GAME OVER!"

else:

tk.title('bal = '+str(bal))

= choice(colors)

lab2['text'] = t

Ви

разів.

створення однакових елементів

ня (наприклад, квадрати, лінії, кола), що зменшує кількість

екрані та ін.

Згадаймо:

ітерацією

1 2 3 4 5

Посимвольна обробка рядка:

«зірочки».

s = 'AB*C*D*EF*G' for C in s: if not C == '*': print(C, end = '')

Дано список днів тижня. Скільки з них припадають на вихідні (сб, нд)?

d = ['пн', 'нд', 'чт', 'сб', 'пт', 'сб', 'вт', 'ср', 'нд', 'чт', 'чт', 'нд', 'вт', 'нд', 'сб'] k = 0 for day in d: if day in ['сб', 'нд']: k += 1 print(‘Вихідних днів – ’,k) >>> Вихідних днів – 7

Числові послідовності можна задавати за допомогою

ваної функції: range([<start >,] <finish>[, < step >])

Вона створює

можна не зазначати. for i in range(20, 25): print(i) Надрукувати числа

range(4): print(i)

Човник

from tkinter import * import time, math root = Tk() # Створюємо

root.title('Човник')

root.geometry('800x250')

im = PhotoImage(file = '1.png')

lab = Label(root, width = 70, height = 70, image = im)

lab.place(x = 1, y = 90)

lab for x1 in range(1, 250): lab.place(x = x1*2, y = 10*math.sin(x1)+100)

root.update()

time.sleep(0.1)

root.mainloop()

Виконання команди циклу while починається з обчислення значення логічного виразу умови повторення циклу.

Якщо умова істинна, то виконуються команди тіла циклу й керування повертається на перевірку умови.

Якщо умова хибна, то виконується

команда, яка є наступною після команди while.

Слід мати на увазі, що тіло циклу while

виконатися жодного разу.

умова виявляється хибною.

Fib[1] = Fib[2] = 1; Fib[n] = Fib[n–1]+Fib[n–2].

a = b = 1

c = 2

n = 3

while c<1000:

c = a+b a, b = b, c n += 1

0, цикл припиняється (рис. 35.4).

suma = 0

k = 0

while True:

a = int(input('a = ? ')

if a == 0: break

k += 1

suma += a

print('Сума ', k, 'чисел дорівнює ', suma)

Вкладені цикли використовують в алгоритмах розв’язування таких задач, як сортування списків, опрацювання прямокутних таблиць, обчислення всіх можливих комбінацій

або перестановок, побудова орнаментів тощо.

Вкладений цикл цикл, який міститься в тілі іншого циклу.

Такий цикл також називають внутрішнім, а цикл, у якому він міститься, — зовнішнім.

Усередині вкладеного циклу може бути наступний

цикл, і так далі.

Ознайомімося з принципом

Зобразити трикутник із чисел від 1 до 5, як на-

ведено на рис. 35.6.

Зовнішній цикл for i відповідає за побудову кожного рівня (рядка) трикутника.

Внутрішній цикл for j призначений для визначення кількості пропусків перед числами, щоб правильно вирівняти трикутник по центру. У внутрішньому циклі for k виводиться (2*–1) цифр.

rows = 5 # Задання кількості рядків у піраміді for i in range(1, rows + 1): # Зовнішній цикл для рядків for j in range(rows–i): # Внутрішній цикл для пропусків

print(" ", end="") for k in range(2*i–1): # Внутрішній цикл для значення і

print(i, end = "")

print() # Перехід

Вивести

from tkinter import *

root = Tk()

root.title('Таблиця Піфагора')

text1 = Text(width=70, height=10)

text1.pack() for i in range(1, 10): s='' for j in range(1, 10): s=s+str(i*j)+"\t" # Формуємо і-й

k = float(i) # Перетворюємо

text1.insert(k, s) #

root.mainloop()

Text

остачі), то прапорцевій змінній prap присвоюється значення True, і за командою break перебір можливих дільників припиняється. Якщо після завершення роботи циклу while значення prap залишилося рівним False, це означає, що

і є простим числом (рис. 35.8). a, b = 100, 150 for i in range(a, b+1): k = 2 praр = False while k <= i//2: if i%k == 0: praр = True break k += 1 if not praр: print(i)

1.

for i in range(65, 90): print(chr(i))

2. Що

a) for i in range(5): print(i*і); б) for x in 'рядок': print(2*x); в) for x in range(5, 1, –1): print(x)

3. Запишіть

знайдіть суму та

які вводять із клавіатури; б) із клавіатури вводять

4.

а) s = 0

і = 0 while і<5: і = і+1 s = s+і б) s = 0 і = 5 while і>1: s = s+і і = і–1

5. Складіть

а = 10; 10.15; 10.3; 10.45; 10.6; 10.75 (м) b = 7; 7.4; 7.8; 8.2; 8.6; 9.0 (м)

в) s = 0

і = 0 while і<5: і = і+1 s = s+10

1. Проаналізуйте математичну модель задачі.

Дано: V 0 початковий обсяг деревини, м3; k план вирубування, м3; n період часу, роки.

Що треба знайти? V n обсяг деревини через n років. Який зв’язок між величинами? V і = V і–1 – k + V і–1 · 0,055, де і = 1..n.

2. Завантажте модуль tkinter. Розробіть інтерфейс

з рис. 35.9.

3.

v = float(ent1.get()) k = float(ent2.get())

n = int(ent3.get()) for i in range(n): v

ent4.delete(0, END) ent4.insert (0, str(round(v, 1)))

1.

2. Створіть вікно програми

шіть програму командою root.mainloop(). Збережіть програму у файлі з назвою Практична12 у папку Міста

3. Створіть список назв міст: cities = ['Київ', 'Львів', 'Дніпро', 'Одеса', 'Харків']

4. Додайте у вікно віджет text1 класу Text, призначений для виведення інформації з текстових файлів:

text1 = Text(width = 24, height = 10, wrap = WORD)

text1.grid(row = 0, column = 1, rowspan = 5)

5. Створіть п’ять радіокнопок із підписами, що відповідають

назвам міст (див. рисунок).

Міста України

var = IntVar()

var.set(0) for i in range(len(cities)):

Radiobutton(text = cities[i], variable = var, value = i, command = change).grid(row = i, column = 0, sticky='w')

6. Опишіть

change()

місто: def change(): f = open(cities[var.get()]+'.txt')

text1.delete(1.0, END)

text1.insert(1.0, f.read()) f.close()

7. Помістіть у

Київ.png, Львів.png тощо).

8. Додайте до вікна об’єкт lab класу Label

браження міста. image1 = None # Початкове "порожнє" значення lab = Label(root, width = 200, height = 150) lab.grid(row = 0, column = 2, rowspan = len(cities), padx = 20)

9. У

image об’єкта lab: global image1 image1 = PhotoImage(file = cities[var.get()]+'.png') lab.config(image = image1)

10. Додайте в список

У мові Python існують різні способи роботи з графікою. Так, ви вже знайомі з «черепашачою» графікою, що реалізується засобами модуля turtle. Також ви виводили на екран фотографії, додаючи їх на елемент керування Label.

Графічні методи модуля tkinter дають змогу гнучкіше працювати із зображеннями, а також створювати малюнки, програмуючи їх побудову з окремих геометричних фігур. Розгляньмо, як використовуються ці засоби модуля tkinter.

Полотно для малювання

У tkinter зображення створюється

класу Canvas, який теж входить до модуля tkinter. Тому, перш

ніж записувати оператори для малювання, потрібно створити

полотно.

Синтаксис команди

Canvas: <змінна> = Canvas(<батьківський віджет>, width = <ширина>, height = <висота>)

де width ширина полотна; height його висота, виражені

в пікселях.

1

Створимо полотно розміром 500 × 500 пікселів: from tkinter import* root = Tk() canvas = Canvas(root, width = 500, height = 500) canvas.pack()

Для задавання положення

кіл, дуг, виведення тексту тощо.

Методи

для малювання фігур

Розгляньмо детальніше використання графічних

лотна Canvas. X Відрізок Метод create_line креслить відрізок

(x1, y1) до точки з координатами (x2, y2): canvas.create_line(x1, y1, x2, y2)

Намалюємо відрізок

2

X

правого нижнього кута: canvas.create_line(0, 0, 500, 500)

Прямокутник

Метод create_rectangle малює незаповнений прямокутник,

(x1, y1) і (x2, y2). Сторони прямокутника паралельні сторонам екрана: canvas.create_rectangle(x1, y1, x2, y2) Намалюємо квадрат зі стороною завдовжки

canvas.create_rectangle(220, 30, 319, 129)

3 (x1, y1)

canvas.create_oval

(x1, y1) і (x2, y2) (рис. 36.2): canvas.create_oval(x1, y1, x2, y2)

коло

4

canvas.create_oval(220, 30, 319, 129)

X Многокутник

Метод canvas.create_polygon малює

многокутник за координатами його вершин (рис. 36.3): canvas.create_polygon(х1, у1, х2, у2, …, xn, yn)

Накреслимо трикутник. points = [10, 210, 100, 210, 100, 300] canvas.create_polygon(points)

X Малювання тексту

36.3

За замовчуванням контури всіх об’єктів і заливка многокутника мають чорний колір.

Метод create_text() використовується для малювання тексту на полотні: canvas.create_text(x, y, text)

За замовчуванням у точці (х, у) розташовується центр текстового напису. Щоб змінити це і, наприклад, розмістити за заданими координатами ліву межу тексту, використовують параметр anchor зі значенням W (від англ. West захід).

Для оформлення тексту можна використовувати

символів і шрифт (font) тощо. Текст на полотні також є графічним об’єктом, тому можна задати кут повороту тексту (параметр angle).

5 6 tk

Потрібно вивести текст на полотно, як наведено на рис. 36.4.

canvas.create_text(250, 100, text = "Hello World", font = "Arial 30")

canvas.create_text(150, 200, text = "Hello", font = "Arial 25", fill = 'red', angle = 45) canvas.create_text(300, 200, text = "World", font = "Arial 25", fill = 'green', angle = 120) (x2, y2) (x1, y1) (x0, y0) (x3, y3) (x1, y1)

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

36.4

реневому каталозі диска D: my_image = PhotoImage(file = 'd:\\picture1.gif') canvas.create_image(0, 0, anchor = NW, image = my_image)

Параметр anchor визначає розташування рисунка на полотні. Значення NW вказує на верхній лівий кут полотна (рис. 36.5). Засобами tkinter можна завантажувати зображення з файлів розширеннями .gif і .png. Методи canvas.create_... повертають числове значення ідентифікатор

NWNEN

WECENTER

SWSES

для самоперевірки

1. Опишіть систему координат полотна Canvas.

2. Опишіть алгоритм створення полотна Canvas.

3. Як вивести на полотно зображення з графічного файлу?

4. Як побудувати круг зеленого кольору радіусом 100, центр якого збігається з центром полотна?

5. Запишіть фрагмент програми для побудови трикутника з вершинами в точках (100, 100), (150, 100), (80, 70); колір ліній червоний, заливка відсутня.

6. Складіть програму для побудови зображення (рис. 36.6).

36.6

Вправа 36

Скласти програму для заповнення полотна випадковими прямокутниками. В IDLE виберіть команду File → New File.

1. Імпортуйте необхідні модулі: tkinter, random.

2. Створіть графічне вікно

3.

draw_rectangle() для накреслення прямокутника, координатами вершин якого

def draw_rectangle(width, height): x1 = randint(0, width); y1 = randint(0, height) x2 = randint(0, width); y2 = randint(0, height) canvas.create_rectangle(x1, y1, x2, y2)

4.

draw_rectangle(): for x in range(0, 30): draw_rectangle(200, 200) Запустіть

5. Далі змініть функцію draw_rectangle,

(рис. 36.8). def draw_rectangle(width, height, fill_color):

x1 = randint(0, width); y1 = randint(0, height) x2 = randint(0, width); y2 = randint(0, height)

canvas.create_rectangle(x1, y1, x2, y2, fill = fill_color)

c = ['red', 'green', 'blue', 'yellow'] for x in range(0, 30):

draw_rectangle(200, 200, choice(c))

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

Ознайоммося з особливостями методів, призначених для переміщення об’єкта полотном.

• Метод canvas.move переміщає

значення його координат на задані величини: canvas.move(item, x, y),

де item ідентифікатор, який повертає конструктор графічного об’єкта; x, y значення зміщення по горизонталі та вертикалі (у пікселях).

• Метод tk.update() примусово оновлює зображення.

• Метод time.sleep() затримує виконання програми: time.sleep(t),

де t величина затримки (у секундах).

1

Організуємо горизонтальний рух круга полотном. Ідентифікатор об’єкта збережемо в змінній а: import time from tkinter import* tk = Tk() canvas = Canvas(tk, width = 400, height = 400) canvas.pack() a = canvas.create_oval(10, 10, 30, 30, fill = 'red') for x in range(0, 60): canvas.move(а, 5, 0)

об’єкта # з ідентифікатором а tk.update() time.sleep(0.05)

вати одночасно координати х і у: canvas.move(а, 5, 5). Програмування

2

натискання

from tkinter import*

def move_oval(event):

canvas.move(1, 5, 0)

tk = Tk()

canvas = Canvas(tk, width = 400, height = 400)

canvas.pack()

canvas.create_oval(10, 10, 30, 30, fill = 'red')

tk.bind('<KeyPress-Right>', move_oval) Функція

def move_oval(event):

event.keysym = 'Right'

canvas.bind_all('<KeyPress-Right>', move_oval)

Up

Down LeftRight

def move_oval(event):

if event.keysym == 'Up': canvas.move(1, 0, –3)

elif event.keysym == 'Down': canvas.move(1, 0, 3)

elif event.keysym == 'Left': canvas.move(1, –3, 0) elif event.keysym == 'Right': canvas.move(1, 3, 0)

У функції move_oval() перевіряється, чи містить змінна keysym

значення 'Up' (з англ. вгору). Якщо так, викликається метод canvas.move(1, 0, –3) і круг зміщується вгору. Якщо ні, то перевіряється, чи містить змінна keysym значення 'Down' (з англ. вниз), якщо так, робиться крок униз. Так само опрацьовується значення 'Left' (з англ. вліво) і 'Right'. Таким чином, при натисканні на

3)

2. Анімацію реалізує така програма: import time from tkinter import * def play():

global cur_frame

canvas.itemconfig(pic, image = frames[cur_frame])

cur_frame = (cur_frame+1)%3

root.update() # Оновлення полотна

root.after(100, play) # Повторний виклик функції play()

root = Tk()

root.title('Політ метелика')

root.geometry('200x250')

canvas = Canvas(root, width = 200, height = 200)

canvas.place(x = 1, y = 1)

anim=['1.gif', '2.gif', '3.gif'] # Список імен файлів frames = [] # Читаємо дані зображень із файлів, for name in anim: # імена яких у списку anim

frames.append(PhotoImage(file = name)) # у список frames

cur_frame = 0

pic = canvas.create_image(0, 0, anchor = NW)

play()

root.mainloop()

3.

програми з анімаційними ефектами,

також додавати

1. Які функції

2. Як запрограмувати реакцію об’єкта на подію?

3. Поясніть призначення аргументів методу: canvas.bind('<KeyPress-Up>', step)

4. Як створити анімацію шляхом послідовної зміни зображень?

5. Як зміниться Політ метелика (див. приклад 4), якщо у виклику root.after() замість 100 написати 1000?

6. Створіть програму, що показує, як зоряним небом рухається космічний зонд Кассіні.

Вправа 37

Створити програму, в якій буде реалізовано

рух круга по полотну.

Об’єкт має змінювати положення у відповідь на натискання клавіш керування курсором, залишаючи слід на полотні (рис. 37.3). В IDLE виберіть команду File → New File.

1. Підключіть модуль tkinter. Створіть вікно програми й додайте полотно розміром 400 × 400: from tkinter import* tk = Tk() canvas = Canvas(tk, width = 400, height = 400) canvas.pack()

2. Намалюйте в

ball: ball = canvas.create_oval(10, 10, 30, 30, fill = 'red')

круга утворюватимуть

що сполучають центри послідовних його положень.

3. Для обчислення координат центра круга (рис. 37.4) опишіть функцію midpoint: def midpoint(pos): # pos — список координат x1, y1, x2, y2 return[(pos[0]+pos[2])/2, (pos[1]+pos[3])/2]

4. Опишіть функцію move_oval(). У ній будуть змінюватися координати круга залежно

(параметр

def move_oval (event): step = 3

P1 = midpoint(canvas.coords(ball))

if event.keysym == 'Up':

canvas.move(ball, 0, –step)

elif event.keysym == 'Down': canvas.move(ball, 0, step)

elif event.keysym == 'Left': canvas.move(ball, –step, 0) elif event.keysym == 'Right': canvas.move(ball, step, 0)

canvas.create_line(P1, midpoint(canvas.coords(ball)))

5.

move_oval)

6.

Завдання:

1. Імпортуйте модулі tkinter, random, time.

2. Створіть вікно програми tk із заголовком Рух кульки. Завершіть програму оператором tk.mainloop(). Збережіть файл із назвою Pract13.

3. Додайте об’єкт canvas класу Сanvas розміром 500 × 400.

4. Створіть список колірних констант: colors = ['red', 'orange', 'yellow', 'green', 'blue']

5. Створіть об’єкт b за допомогою методу create_oval. Колір заповнення кульки вибирається випадково зі списку colors: b = canvas.create_oval(10, 150, 60, 200, fill = choice(colors))

6. Створіть змінну k лічильник «життів»: k = 5

7. Рух кульки починається після натискання

миші: canvas.bind('<1>', click)

8. Створіть об’єкт r класу Label «ракетку». r = Label(tk, width = 12, bg = 'blue') r.place(x = 10, y = 320)

9.

r.focus_set() r.bind('<Key>', r_move)

def r_move(event): if event.keysym == 'Left': step = –10 elif event.keysym == 'Right': step = 10 else: return event.widget.place(x = event.widget.winfo_x()+step)

def click(event):

global k

dx = dy = 5 # Задання кроку руху while True: # Початок нескінченного

x, y = cnv.coords(b)[0], cnv.coords(b)[1]

if x>450 or x<10: dx = –dx # Якщо об’єкт

if y>350: # полотна, ... k –= 1 dy = –dy

if y<10: dy = –dy if x>r.winfo_x()and x<r.winfo_x()+70 and y>270: # Якщо кульку dy = –dy # відбито ракеткою canvas.move(b, dx, dy)

tk.title('Залишилось життів – '+ str(k)) if k == 0:

Якщо

5

canvas.create_text(250, 100, text = "GAME OVER!") break tk.update() sleep(0.05)

СТВОРЕННЯ

Завдання: створити мінігазету документ, який містить об’єкти різних типів, здійснити форматування його об’єктів, створити автоматизований зміст.

Обладнання: комп’ютер із текстовим процесором, під’єднаний до інтернету.

1.

2.

3.

4.

5.

7.

8. Оформте

Завдання: створити текстовий

створити зміст і

4. Продумайте

5.

Заголовок 1. Напишіть короткий текст про історію міста. Використайте заголовки різних рівнів (наприклад, «Стародавня історія», «Сучасність», «Ушанування Героїв»). Доберіть відповідне зображення.

6. Створіть Розділ 2 «Визначні місця». Створіть кілька підрозділів з описом популярних

(наприклад, Алея Слави, парк, заповідник, музей, архітектурна пам’ятка). Додайте фото кожного

різних прямокутниках відтворювало

значення (позначмо його event). Воно містить опис події,

1. В IDLE виберіть команду File → New File.

2. Запрограмуйте створення вікна

сотою 230 пікселів.

3. Підготуйте дані та структури

малювання клавіш:

порожні списки, які буде сформовано пізніше: keys = [] # Для ідентифікаторів

sounds = [] #

4. Створіть функцію для опрацювання натискання клавіші: def on_click(event):

key_id = event.widget.find_withtag("current")[0] # За ідентифікатором

playsound(sounds[keys.index(key_id)])

5. Створіть функцію для малювання прямокутника відповідного кольору та налаштування його для відтворення звуку при клацанні: def PianoKey(x, y, color, soundfile): if color == 'black': w, h = 40, 140 # Розміри чорної клавіші else: w, h = 50, 200 # Розміри білої клавіші

key_id = canvas.create_rectangle(x, y, x+w, y+h, fill = color) keys.append(key_id) # "Запам'ятовуємо" ідентифікатор... sounds.append(soundfile) # та ім'я

canvas.tag_bind(key_id, '<1>', on_click)

PianoKey(15, 15, 'white', 'do.mp3')

root.mainloop()

7. Замість рядка з пробним

• список координат x лівих

полотні (координати y однакові): coords = [15, 70, 125, 180, 235, 290, 345, 400]

• список імен файлів зі звуками: slst = ['do.mp3', 're.mp3', 'mi.mp3', 'fa.mp3', 'sol.mp3', 'la.mp3', 'si.mp3', 'do2.mp3']

8. Запишіть цикл для малювання клавіш, описаних у списках coords і slst (від англ. sound list список звуків): for key in range(len(coords)):

PianoKey(coords[key], 15, 'white' if key < 8 else 'black', './notes/'+slst[key])

Перевірте роботу програми. У вікні має з’явитися рядок білих клавіш, кожна

яких «звучить», якщо її натиснути. Поясніть, як виконується цей цикл. Доповніть список coords координатами чорних клавіш (47, 102, 212, 267, 322), а список slst іменами відповідних файлів ('do-d.mp3', 'mi-b.mp3', 'fa-d.mp3', 'sol-d.mp3', 'si-b.mp3'). Перевірте роботу програми.

9. Створіть список імен файлів із кадрами

frames (допишіть імена решти графічних файлів): plst = ['f01.png', 'f02.png', 'f03.png', ... ,'f24.png', 'f25.png'] pfld = './frames/' #

Запрограмуйте читання

даних у список frms: frms = [] # Читаємо дані зображень

for name in plst: #

plst,

frms.append(PhotoImage(file = pfld+name)) # у список frms 10.

cur_frame = 0

img = canvas.create_image(560, 115, image = frms[cur_frame])

def show_video():

global cur_frame

cur_frame = (cur_frame+1)%len(frms)

canvas.itemconfig(img, image = frms[cur_frame])

# Змінюємо малюнок

root.update()

root.after(100, show_video)

12. Додайте до програми виклик функції: show_video()

особливості роботи

Запропонуйте варіанти вдосконалення програми, спробуйте їх реалізувати.

Зробіть висновок: які

1. Проаналізуйте математичну модель задачі.

Дано: d діаметр бака, м; h висота бака, м; b витрати фарби (площа поверхні, яку мож-

фарби), м2; Що треба знайти? k кількість банок.

Який зв’язок між величинами?

s

4. Розмістіть у вікні віджет Label із написом діаметр, м:

lab1 = Label(root, text = 'діаметр, м', width = 20, font = 'Arial 14', anchor = E)

lab1.grid(row = 0, column = 0)

5. Розмістіть у вікні віджет Entry, щоб задати значення діаметра:

ent1 = Entry(root, width = 8, font = 'Arial 14')

ent1.grid(row = 0, column = 1, padx = 10)

6. Згідно з рисунком додайте до вікна об’єкти

виведення написів.

7. Згідно з рисунком додайте до вікна об’єкти класу Entry для введення значень висоти

зафарбувати однією банкою

8. Додайте до вікна об’єкт btn класу Button: btn = Button(root, text = 'Обчислити

банок', font = 'Arial 14', command = btn_click) btn.grid(row = 3, column = 0, columnspan = 2)

9. Опишіть обробник події Натискання

d = float(ent1.get())

h = float(ent2.get())

b = float (ent3.get())

tp = pi*d**2/4

wall = pi*d*h

k = ceil((tp+wall)/b)

ent4.insert(0, str(k))

mal = PhotoImage(file = 'bak.png')

Label(image = mal).grid(row = 0, column = 2, rowspan = 5)

3. Додайте у

4.

5.

1) створити порожній рядок dv;

2) зчитати десяткове число dc із

4 3 2 1 0

100112 = 1·24 + 0·23 + 0·22 + 1·21 + 1·20 = = 16 + 2 + 1 = 1910

3

8. Для переведення запишіть команду циклу: dc = 0 for i in range(len(dv)): dc = dc+int(dv[i])*2**(len(dv)–i–1)

9. Завантажте модуль messagebox.

10. Додайте до опису

функції messagebox.showinfo для виведення повідомлень на зразок: Десяткове 19 дорівнює двійковому 10011. vidp = 'Десяткове '+ str(dc)+ '

messagebox.showinfo('Переведення у

11. Додайте до

messagebox.showinfo

Завдання: Складіть програму

Камінь кинуто горизонтально зі

швидкістю v м/с. Скласти математичну модель польоту каменя.

Написати програму, яка буде обчислювати й друкувати значення відстані

над землею кожні 0,2 с польоту каменя.

Обладнання: комп’ютер із середовищем

1. Проаналізуйте математичну модель задачі.

Дано: h0 = 100 висота вежі, м;

v швидкість, із якою кинуто камінь, м/с. Що треба знайти?

s відстань від вежі по горизонталі, м; h висоту над землею кожні 0,2 с польоту каменя, м.

Який зв’язок між величинами?

s = vt, де t час польоту каменя в секундах; dh = 9.81t2/2 вертикальне

4. Завантажте

tkinter і time

5. Додайте

h0 = 100 # Висота вежі scale = 4 # Масштаб малюнка (в пікселях на 1 м)

dk = 20

x0, y0 = 100, 20

6. Додайте у вікно програми

Entry згідно з рисунком.

Label(text = 'V = ', font = 'Arial 14').grid(row = 1, column = 0) en = Entry(width = 8, font = 'Arial 14')

en.grid(row = 1, column = 1)

Label(text = ' s\th', font = 'Arial 14').grid(row = 2, column = 0, columnspan = 2, sticky = W) 7.

Text

txt = Text(width = 20, height = 22, font = 'Arial 12')

txt.grid(row = 3, column = 0, columnspan = 2) 8.

9.

cnv = Canvas(width = 400, height = 450)

cnv.grid(row = 1, column = 2, rowspan = 4)

im = PhotoImage(file = '1.gif')

cnv.create_image(0, 0, anchor = NW, image = im)

= x0, y0

cnv.create_oval(x,

v = int(en.get())

t = 0 # Початок

txt.delete(1.0, END)

while dh<h0: # Поки камінь не впав

t += 0.2 # Обчислюємо

dh = 9.8*t**2/2 # Нове

if dh<h0:

dl = v*t

x1 = x0+scale*dl

y1 = y0+scale*dh

cnv.move(ov, x1–x, y1–y) # Пересуваємо круг

x, y = x1, y1 # Оновлюємо поточні координати

# Формуємо рядок

s = str(round(dl, 2))+'\t'+

str(round(h0–dh, 2))+'\n'

txt.insert(END, s) # Додаємо

# рядок у текстове поле

root.update()

# Оновлення полотна sleep(0.1) # Затримка на 0.1 с

11. Додайте

відрізків, що

бражають траєкторію руху каменя. cnv.create_line(x1, y1, x, y)

12. Збережіть

з комп’ютером.

Декодування перетворення закодованого

Дискретизація

Колонтитул повідомлення, яке розміщується у верхньому або нижньому полі кожної сторінки документа.

Конвертер програма, яка дозволяє перекодувати медіафайли з одного формату в інший.

Мережевий протокол сукупність правил (стандартів) для обміну даними між комп’ютерами.

Метод фрагмент програмного коду, який вбудований в об’єкт і передбачає виконання деяких дій із ним.

Мультимедіа комбінування в одному інформаційному продукті інформації, поданої різними способами з можливістю її інтерактивного використання.

Обробник події блок програмного коду, який виконується в разі настання події, з якою він пов’язаний.

Подія зовнішній вплив на елемент керування, на який цей елемент може реагувати.

Покажчик список слів із зазначенням номерів сторінок,

на яких вони згадуються.

Провайдер організація, яка надає послуги, пов’язані з доступом до глобальної мережі «Інтернет».

Сайт (вебсайт)

об’єднання тематично пов’язаних вебсторі-

нок і документів під одним доменним іменем.

Стиль іменована сукупність параметрів форматування об’єктів документа, які визначають його зовнішній вигляд.

Структура документа ієрархічна схема розміщення складових документа.

Тег позначка мови HTML, записана в кутових дужках <>, яку опрацьовує браузер.

Титри написи, що з’являються на початку або наприкінці відеофільму,

А

Адаптер 25

Архітектура комп’ютера 23

Атрибут об’єкта 167

Аудіоредактор 125 Б

Батьківський віджет 167 В

Величина 187

Виняток 159

Віджет 166

Відеоредактор 136

Вкладений цикл 227 Г

Гіперпосилання 92

Гіпертекст 47

Графічний інтерфейс

користувача 165 Д

Дані 8

Декодування 8

Дискретизація сигналу 114

Доменне ім’я 40 З

Захоплення відео 131

Захоплення звуку 125

Зміст документа 94

Значення 188

Код 8

Кодування 8

Колонтитул 90

Командна кнопка 170

Конвертер 133

Логічна помилка 162

Мережевий протокол 44

Мова програмування 151

Мультимедіа 113

Обробник події 171

Повторення (цикл) 223

Подія 171

Покажчик 96

Провайдер 44 Програма 151

Розділ 88

Сайт (вебсайт) 47

Синтаксична помилка 158

Стиль 87

Структура документа 85 Т

Тег 53

Титри 140

Транслятор 154

Хмарний диск 101

Цифровий звукозапис 114

Шаблон 88

Штучний інтелект 134 Н HTML 52

§ 1. Кодування

§ 2. Двійкове

§ 3. Кодування

§ 5. Історія

§ 6. Адресація

§ 7. Обмін

§ 8. Створення

§ 9. Розмічання

§ 10. Графічні

§ 11.

§ 12.

§ 17. Користування

7.

§ 18. Поняття мультимедіа. Кодування аудіоданих. Формати аудіофайлів

§ 19. Кодування відеоданих. Формати відеофайлів

Практична робота 8. Використання аудіоданих

§ 20. Програмне забезпечення для опрацювання

§ 21. Програмне забезпечення для опрацювання

§ 22. Побудова аудіо- й відеоряду

§ 23. Опрацювання,

§ 27.

Практична робота 12. Створення програми з графічним

інтерфейсом ..........................................................232

§ 36. Графічні методи модуля tkinter ................................235

§ 37. Створення анімації.................................................241

Практична робота 13. Створення ігрової

Розділ 6. ПРАКТИКУМ

Практична робота 14. Створення текстового документа, що містить об’єкти

Практична робота 15. Створення багатосторінкового

електронного документа .........................................252

Практична робота 16. Розробка

Практична робота 17. Створення

інтерфейсом ..........................................................257

Практична робота 18. Створення програми «Калькулятор» ......................................................260

Практична робота 19. Моделювання руху об’єкта

Комп’ютерний словник ...................................................266

Алфавітний покажчик ....................................................268

1 2 3 4 5

Підручник відповідає Державним санітарним нормам і правилам «Гігієнічні вимоги до друкованої продукції для дітей»

Редакторка Л. І. Каюда. Технічний редактор А. В. Пліско. Художнє оформлення В. І. Труфена, Т. В. Задорожної.

Комп’ютерна верстка О. Л. Піковець. Коректорка Н. В. Красна.

Підписано до друку 19.05.2025. Формат 70×90/16. Папір офсетний. Гарнітура Шкільна. Друк офсетний. Ум. друк. арк. 19,83. Обл.-вид. арк. 19,73. Наклад 51 081 пр. Зам. № 9504-2025.

ТОВ Видавництво «Ранок», пр. Незалежності, 5, Харків, 61022; вул. Деревлянська, 13, Київ, 04119. E-mail: office@ranok.com.ua Свідоцтво суб’єкта видавничої справи ДК № 7548 від 16.12.2021. Надруковано у

61052.

Відкриття документа

Збереження документа

Встановлення

Встановлення або скасування

Встановлення або скасування

підкресленого накреслення

Оформлення тексту ВЕЛИКИМИ,

ОФОРМЛЕННЯ (СХЕМА) ДОКУМЕНТА

<doctype> Версія HTML

<html> HTML-документ

<head> Службова інформація

<base> URL документа

<meta> Супутні дані <title> Назва вкладки

<link> Зв’язок із документом

<st yle> Стиль

<script> Скрипт

<body> Вміст документа

<!-- текст --> Коментар (не відображається браузером)

<article> Новина, стаття, запис (вміст)

<aside> Блок збоку від вмісту

<br> Розрив рядка (без відступів)

<div> Блок, частина документа

<h1> до <h6> Заголовок (від 1-го до 6-го рівня)

<hr> Горизонтальна розділювальна лінія

<hgroup> Групування заголовків

<header> Верхній блок (шапка) документа

<footer> Нижній блок документа

<p> Абзац

<section>

<а>

HTML 4–5

<b>

<і>

<u>

<cite>

<dt>

Особливості підручника:

› зорієнтованість матеріалу на власний

› покроковий опис виконання практичних робіт

› приклади

Інтерактивний електронний додаток містить:

› інтерактивні тести за всіма темами курсу

› підсумкові роботи

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.