Інформація про новину
  • Переглядів: 3031
  • Дата: 5-04-2021, 22:00
5-04-2021, 22:00

14. Елемент керування «шкала». Проект «Піцерія»

Категорія: Інформатика





Попередня сторінка:  13. Опрацювання кількох подій. Проект «...
Наступна сторінка:   15. Автоматичний пошук або заміна фрагм...

Які є ще елементи керування, крім тих, які ми вивчили?

Сьогодні ми створимо електронний бланк замовлення для піцерії. Власник ресторану може вводити ціни, а клієнт — вказувати кількість кожної страви. Програма має автоматично визначити вартість кожного найменування взамов-ленні, а після натискання кнопки «Розрахувати» — вивести сумарну вартість. Схема роботи програми:

1 — Вводимо ціни.

2 — Переміщуємо шкалу «Кількість». У результаті вартість відповідної страви обчислюється автоматично.

3 — Натискаємо кнопку «Розрахувати».

4 — Отримуємо результат.

Для реалізації проекту необхідні такі елементи керування:

Етап 1. Створення інтерфейсу

Завдання № 1

1. Користуючись розділом «За-питання-Відповіді», дізнайся про елемент керування Scale (шкала).

2. Створи графічне вікно розміром 440x300.

3. Розташуй в ньому написи першого рядка та першого стовпця, враховуючи, що відступи між рядками — 40 пікселів.

Завдання № 2

1. Додай у створеному вікні:

• Текстові поля ціни з іменами Р1, Р2, РЗ, Р4. У цих полях відразу має виводитися стандартна ціна, яку користувач потім може змінити. Відобразити стандартну ціну можна за допомогою методу insert.

• Шкали S1, S2, S3, S4.

• Написи вартостей — С1, С2, СЗ, С4 та загальної вартості — С5.

• Інші написи нижнього рядка і кнопку.

Як задається фон напису чи текстового поля, дізнайся з рубрики «За-питання-Відповіді». Коди фонових кольорів можеш вибрати на власний смак. Інформація тут:

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

2. Запусти проект на виконання та перевір, чи правильно розташовано всі елементи керування.

Етап 2. Програмування подій

Завдання № З

1. Запиши формулу, якою пов'язані ціна товару, його кількість та загальна вартість цього товару.

2. Як визначається вартість всього замовлення?

Завдання № 4

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

Завдання № 5

У разі пересування повзунка кількості піц має обчислюватися і змінюватися вартість піци. Запрограмуй цю дію, створивши функцію s1_click та прив'язавши її до події переміщення повзунка шкали в конструкторі Scale. Будуть потрібні такі змінні: х1 — ціна (зчитується з текстового поля); к1 — кількість (зчитується зі шкали); у1 — вартість, яка обчислюється та виводиться в написі.

Щоб надати змінній к1 значення положення повзунка шкали s1, використаємо таку конструкцію:

Крім надання змінній к1 значення повзунка шкали, у функції s1_click ще потрібно виконати такі дії:

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

2. Обчислити вартістьу1.

3. Вивести вартість у написі С1.

Запрограмуй перші 2 дії мовою Python самостійно, а для виведення вартості в написі використай таку конструкцію:

set — метод запису значення до рядка типу StringVar

Щоб запрограмувати інші шкали, створи копії функції s1_click, зміни назви змінних та додай прив'язки, щоб ці функції виконувалися в програмі як обробники подій пересування повзунків шкал.

Завдання № б

Запрограмуй обробник події натискання кнопки «Розрахувати» btn_click. Він має додавати числа з усіх написів вартості, що зберігаються у змінних у1,..., у4, та виводити результат в написі загальної вартості С5.

Для цього:

1. Оголоси текстову змінну var5: var5=StringVar().

2. Прив'яжи змінну var5 до напису загальної вартості замовлення за допомогою параметра textvariable.

3. Оголоси змінні у1, у2, уЗ, у4 з декларацією global у функції btn_click.

4. Кожну зі змінних у1, у2, уЗ, у4 оголоси з декларацією global в обробнику події переміщення повзунка відповідної шкали.

5. У функції btn_click присвой змін ній у суму значень змін них у1,у2,уЗ,у4.

6. Виведи значення у в написі: var5.set(y).

Завдання № 7

Протестуй програму у випадку, коли не замовлено жодної страви. Як ти думаєш, чому виникає помилка?

Щоб ця помилка не виникала, достатньо встановити початкові значення змінних:

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

Завдання № 8

Забезпеч відображення цілочисельної вартості кожної страви без дробової частини «0».

1. Створи функцію rez, яка в разі отримання цілого числа типу float буде повертати таке ж ціле число типу int, а в разі отримання нецілого числа повертатиме саме це число.

2. Забезпеч виклик цієї функції для форматування параметра функції set, коли розраховується вартість кожної страви та загальна вартість. Наприклад, var4.set(rez(y4)).

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

Етап 3. Можливість вибирати добавки

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

Як ти думаєш, код обробника якої події потрібно доповнити, щоб врахувати вибрані добавки у загальній сумі замовлення?

Завдання № 9

1. Розшир вікно інтерфейсу програми до 650 пікселів.

2. Доповни інтерфейс програми написом «Добавки до піци, 3 грн».

3. Додай нові для тебе елементи керування — прапорці з написами «Майонез», «Кетчуп», «Соус», «Ананаси», надавши їм імена ch1, ch2, ch3, ch4. Про прапорці можеш дізнатися в рубриці «Запитання-Відповіді».

Розмір шрифту написів у прапорців — 12, тип шрифта — АгіаІ. Тому властивість font для прапорця ініціалізуватиметься так: font = «Агіа112». Відступи між прапорцями по вертикалі зроби 40 пікселів. Розташовуються вони за допомогою методу place, як і всі інші елементи керування.

Завдання № 10

Дізнайся з рубрики «Запитання-Відповіді», як отримати інформацію про стан прапорця. Ось код, який зберігає стан прапорця у змінній var_ch1:

Завдання № 11

1. Які значення одержать змінні var_ch1, var_ch2, var_ch3, var_ch4 відповідно до стану прапорців, які зображено на малюнку?

2. Що потрібно зробити, щоб врахувати всі вибрані прапорці при обчисленні загальної вартості замовлення?

Завдання № 12

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

Використовуючи посилання

https://tinyurl.com/y6j5tczv

, спробуй завершити блок-схему. Також можеш створити її заново за допомогою сервісу diagrams.net або намалювати в зошиті.

Завдання № 13

Напиши код відповідно до блок-схеми з попереднього завдання та подумай, до якої функції його слід додати, щоб він виконувався у потрібний момент і програма правильно розраховувала вартість замовлення? Чи потрібно оголошувати змінні var_ch1, var_ch2, var_ch3, var_ch4 глобальними у цій функції?

Завдання № 14

Що необхідно ще дописати в коді, щоб програма враховувала вартість вибраних добавок?

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

Завдання № 15

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

1. Змінній k присвоїти значення 1.

2. Послідовно перевірити значення змінних var_ch1, var_ch2, var_ch3, var_ch4, і якщо кожна з них не дорівнює 0, у кожному такому випадку збільшувати k на 1.

3. Напису, що має містити результат, присвоїти у1+у2+у3+у4+к*3.

4. Змінній к присвоїти значення 0.

5. Оголосити у функції змінні var_ch1, var_ch2, var_ch3, var_ch4 як глобальні.

Завдання № 16

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

Виконавши завдання, перевір, чи правильно працює програма.

Етап 4. Акція «Соковита насолода»

Завдання № 17

Доповни проект реалізацією акції «Соковита насолода»: у разі купівлі піци та морозива сік має коштувати удвічі дешевше.

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

Як перевіряти складені умови, дізнайся з рубрики «Запитання-Відповіді».

ЗАПИТАННЯ-ВІДПОВІДІ

Що таке шкала?

Шкала — це елемент керування, призначений для вибору чисел з діапазону. Конструктор шкали називається Scale. Ось його параметри (усі вони необов'язкові).

orient — орієнтація (HORIZONTAL — горизонтальна, VERTICAL — вертикальна) length — довжина шкали у пікселях from_— початкове значення шкали to — кінцеве значення шкали tickinterval — інтервал відображення міток шкали

resolution — крок переміщення повзунка шкали

Як встановити кольоровий фон в текстовому полі чи написі?

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

Ось, наприклад, код для виведення кольорового напису:

Код для виведення кольорового текстового поля:

Як змінити текст напису під час виконання програми, надавши йому значення змінної?

Потрібно виконати 3 дії:

1) В основній програмі створи змінну текстового типу: var=StringVar().

2) Встанови зв'язок напису з цією змінною, додавши в його конструктор рядок на кшталт textvariable=var.

3) У тому місці програми, де потрібно змінити текст напису, викликай метод set змінної var. Параметром цього методу є значення, що виводиться в написі: var.set(3Ha4eHHH).

Що таке прапорці та як їх створити?

Прапорець — це елемент керування, призначений для вибору декількох

значень із кількох запропонованих.

Для додавання прапорця використовують такий код:

Як у програмі дізнатися, чи вибрано прапорець?

Як і для перемикачів, для зчитування значень прапорців необхідно прив'язати їх до змінних, що будуть одержувати стан прапорця (встановленої абознято=0).

Змінні попередньо потрібно оголосити і надати їм цілочисловий тип. Наприклад,

Якщо перемикач буде вибрано, то програма присвоїть число 1 змінній var_pr, інакше змінній var_pr буде присвоєно 0.

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

Умова називається складеною, якщо вона складається з кількох частин, з'єднаних сполучниками «і» чи «або». Наприклад, умову того, що потрібно йти до школи, можна записати так: «сьогодні робочий день І я не хворію». А умова того, що можна залишатися вдома, виглядатиме так: «сьогодні вихідний день АБО я хворію».

У мові Python складені умови формують за допомогою команд and (і) та or (або).

Наприклад,

ПЕРЕВІР СЕБЕ

1. Для чого призначено елемент керування «шкала»?

2. Який синтаксис створення елемента керування «шкала»?

3. Як створити прапорці?

4. Чим відрізняються прапорці від перемикачів?

5. Поясни, для чого ми робили глобальними змінні у1, у4, у яких

розраховувалася вартість окремих видів продукції.

6. Які з наведених складених логічних виразів будуть істинними завжди, незалежно від значень цілочислових змінних х та у?

7. Реалізуй у проекті «Піцерія» акцію «Ситий день»: у разі придбання тістечка або морозива піца коштуватиме на 10% менше.

8. У завданні № 12 було побудовано блок-схему врахування вартості добавок, а у завданні № 13 її було реалізовано. Подумай, як можна досягти такої мети, тобто отримати потрібне значення в змінній к, не виконавши жодної перевірки умови і замінивши весь алгоритм однією командою? Перевір свою здогадку на практиці.

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

 

 

Це матеріал з підручника Інформатика 8 клас Коршунова (2021)

 




Попередня сторінка:  13. Опрацювання кількох подій. Проект «...
Наступна сторінка:   15. Автоматичний пошук або заміна фрагм...



^