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

13. Опрацювання кількох подій. Проект «Калькулятор»

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





Попередня сторінка:  12. Використання перемикачів в Python. Гло...
Наступна сторінка:   14. Елемент керування «шкала». Проект «...

Які ще корисні кнопки ти можеш запропонувати в калькуляторі?

Ми вже вивчили багато елементів керування і тому готові створити проект справжнього калькулятора, схожого на той, що вбудовано в ОС Windows. Розглянемо загальний принцип роботи нашої програми «Калькулятор»:

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

Завдання № 1

Розплануй інтерфейс калькулятора: намалюй на аркуші в клітинку макет вікна майбутньої програми.

1. Кожна квадратна кнопка має сторону розміром 2 клітинки.

2. Відстань між кнопками по горизонталі і вертикалі та відстань від кнопки до краю вікна — 1 клітинка.

3. Довжина трьох видовжених кнопок (С, =, 0) відповідає двом квадратним кнопкам та відстані між ними, тобто 5 клітинкам.

4. Висота текстового поля для введення чисел — 2 клітинки. Його довжину визнач самостійно.

Завдання № 2

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

1. За макетом калькулятора вирахуй ширину та висоту вікна програми і створи це вікно.

2. Створи текстове поле, враховуючи координату його лівого верхнього кута (10,10) і розмір відповідно до макета. Усім елементам керування надавай імена згідно за таблицею з наступної сторінки.

3. Користуючись рубрикою «Запитання-Відповіді», зміни програмний код так, щоб текст у полі вирівнювався за правим краєм та мав 14 розмір.

Завдання № З

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

1. Визнач розміри та координати лівих верхніх кутів усіх кнопок у пікселях. Запиши ці координати на макеті Калькулятора біля кожної кнопки.

2. Запрограмуй створення та розміщення кнопки «С». Перевір результат на практиці.

Увага!

Розмір шрифта для написів на кнопках має бути 14, як і в даних, що вводяться в текстове поле.

3. Скопіюй код кнопки «С» для того, щоб створити кнопку «=». У вставленому коді зміни значення властивості text, ім'я об'єкта та координату х відповідно до розрахунків.

4. Створи кнопку «7» з розрахованими на кроці 1 координатами розташування.

5. Скопіюй кнопку «7» для створення кнопок «8», «9» та «/», змінюючи у скопійованих кодах значення властивості text, ім'я об'єкта та координату х.

6. Тепер скопіюй цілий ряд створених квадратних кнопок («7», «8», «9», «/») для програмування двох наступних рядів кнопок.

7. Для створення останнього ряду трьох кнопок скористайся копією коду для кнопок «С» та кнопок «З» і «-».

Етап 2. Програмування кнопок

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

Завдання № 4

1. Запрограмуй одну з цифрових кнопок та кнопку з десятковою комою. В разі натискання такої кнопки відповідний символ має дописуватися до вмісту текстового поля ent справа. Як запрограмувати таку поведінку, дізнайся з рубрики «Запитання-відповіді».

2. Параметру command конструктора кнопки надай значення, що дорівнюватиме імені функції, яка буде обробником подій натискання кнопки.

3. Скопіюй створений код обробника події натискання однієї кнопки 10 разів, перейменуй копії та прив'яжи кожну перейменовану функцію до відповідної кнопки. Перевір дію кожної із запрограмованих кнопок.

Завдання № 5

У разі натискання кнопки «С» з текстового поля мають видалятися введені в нього дані. Користуючись розділом «Запи-тання-Відповіді», запрограмуй обробник події натискання цієї кнопки. Перевір роботу кнопки.

Завдання № б

Тепер почнемо програмувати арифметичні операції. Розглянь поданий у вигляді таблиці алгоритм виконання в Калькуляторі операції додавання.

1. Дай відповіді на запитання.

• Що відбуватиметься із вмістом текстового поля після натискання кнопки «+»?

• Де виконуватиметься власне додавання — в обробнику події натискання кнопки «+» чи кнопки «=»?

• Коли користувач натисне кнопку «=», де зберігатиметься перший доданок і де — другий?

• Коли користувач натисне кнопку «=», як програма «дізнається», яку саме арифметичну операцію потрібно виконати?

2. Доповни словесний алгоритм обробника події натискання кнопки «+».

1) Присвоїти змінній_вміст текстового поля_.

2) Присвоїти змінній_символ

3) Очистити_.

Завдання № 7

1. Запрограмуй обробник події натискання кнопки «+», реалізувавши побудований у попередньому завданні алгоритм. Дай цьому обробнику назву Plus_click. Зауваж, що очищення текстового поля (крок 3 алгоритму) ми вже програмували у завданні № 5.

Увага!

За замовчуванням всі дані, що введені до текстового поля, набувають рядкового (текстового) типу. Для того, щоб проводити обчислення, нам потрібно змінити тип введених даних на числовий за допомогою вбудованої функції перетворення типу даних float. Тому перший рядок у функції Plus_click виглядатиме так: a=float(ent.get())

2. Прив'яжи створену функцію до події натискання кнопки «+» за допомогою присвоєння параметра command імені цієї функції. Параметр command записується у конструкторі кнопки.

3. Перевір роботу програми. По натисканні кнопки «+» має очищуватися текстове поле; саме додавання ще не виконуватиметься.

Завдання № 8

1. Скопіюй код функції Plus_click тричі. Зміни назву функції та символ, що присвоюється змінній Ь, на відповідні символи арифметичних операцій: «-», «/», «*».

2. Прив'яжи створені функції до відповідних кнопок, щоб вони стали обробниками подій їх натискання.

Завдання № 9

Тепер запрограмуємо кнопку «=» для того випадку, коли виконується операція додавання.

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

1) Змінній_присвоїти вміст

2) Якщо змінна _

дорівнює _, то

в_відобразити

2. За допомогою якого оператора можна виконати другу дію?

Завдання № 10

1. Запрограмуй в коді обробника події натискання кнопки «=» алгоритм, побудований у попередньому завданні. Щоб вивести в текстовому полі ent значення суми а+с, скористайся методом insert, яку завданні № 4.

Увага!

Не забувай, що оператор порівняння позначається двома символами рівності ==.

2. Перевір, чи спрацьовує кнопка «+». Додавання не виконується, оскільки змінні а та b в обробниках кнопок «+» та «=» локальні. Тобто змінна а в одній та в іншій функції — це різні змінні, як і змінна Ь.

3. Щоб програма працювала правильно, оголоси змінні а та b як глобальні в обробниках подій натискання кнопок «+» та «=».

Завдання № 11

Продовж програмувати обробник натискання кнопки «=». Введи код перевірки змінної b та виведення результату для арифметичних операцій «-», « / », «*». Для цього скопіюй код, що стосується операції «+», та внеси відповідні зміни. Перевір, як працює калькулятор.

Завдання № 12

1. Спробуй у Калькуляторі поділити якесь число на нуль. Поясни, що трапилося і чому.

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

2. Спробуй словесно описати алгоритм, який буде перевіряти, чи не виконується ділення на 0. А якщо так, то виводити повідомлення про помилку.

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

Увага!

Символами != позначають операцію «не дорівнює».

4. Поясни, як працюватиме кожен з інших варіантів коду.

Завдання № 13

Запрограмуй коректне опрацювання ділення на нуль. Якщо користувач намагається виконати таку операцію, в текстовому полі має виводитися слово «помилка».

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

Як встановити спосіб вирівнювання в текстовому полі?

Для встановлення способу вирівнювання в текстовому полі використовують властивість justify, що може набувати такі значення: left — вирівнювання ліворуч; right — вирівнювання праворуч; center — вирівнювання по центру.

Наприклад,

Зауваж, що цю властивість мають і інші елементи керування.

Як задати розмір шрифту в елементах керування?

Для зміни параметрів шрифту елементів керування використовують властивість font, що дає змогу задати гарнітуру, розмір та спосіб накреслення шрифту. Наприклад,

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

Як у програмі додавати текст до текстового поля?

Для додавання тексту до текстового поля використовують метод insert(index,str).

• index — номер символа, перед яким додають текст. Для додавання тексту справа замість номера index записують END;

• str — текст, який необхідно вставити.

Зауваж, що нумерація символів у текстовому полі починається з нуля.

Яку програмі видаляти текст із текстового поля?

Для очищення текстового поля використовується метод delete.

Щоб видалити всі дані з поля, використовують такі параметри:

Також є можливість видаляти лише потрібну частину введених символів, вказавши їх діапазон за допомогою параметрів first, last у методі delete:

Параметр last не є обов'язковим. У разі його відсутності буде вилучено один символ з індексом, що вказаний у параметрі first.

ПЕРЕВІР СЕБЕ

1. Як змінити величину шрифту в елементах керування?

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

3. Проаналізуй роботу калькулятора в разі ділення націло (наприклад, 30/5) та не націло (наприклад, 29/5). У якому форматі виводяться результати в обох випадках? Як мав би виглядати результат ділення націло? Можеш перевірити відповідь у Калькуляторі Windows.

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

5. Які ще корисні кнопки ти можеш запропонувати для проекту «Калькулятор»?

 

 

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

 




Попередня сторінка:  12. Використання перемикачів в Python. Гло...
Наступна сторінка:   14. Елемент керування «шкала». Проект «...



^