Чому саме калькулятор
Є завдання, які виглядають просто, але насправді змушують учня думати одразу в кількох напрямках. Написати власний онлайн-калькулятор — саме таке завдання. З одного боку, це програмування: HTML, CSS, JavaScript. З іншого — математика, логіка, розуміння формул. А ще — уміння зробити щось корисне, те, чим можна похвалитися перед однокласниками і навіть показати батькам.
Для вчителя інформатики або програмування це справжня знахідка. Такий проєкт не потребує складного середовища розробки, дорогого обладнання чи тижнів підготовки. Достатньо текстового редактора і браузера. Але при цьому учень проходить повний цикл: від ідеї до готового інструменту.
Головна хитрість — у виборі теми калькулятора. Якщо запропонувати звичайний "плюс-мінус-помножити", учні нудьгуватимуть. Але якщо дати їм щось, що стосується їхнього реального шкільного життя — інтерес зовсім інший. Спочатку запропонуйте дослідити які онлайн калькулятори користуються попитом, потім запропонуйте спочатку реалізувати калькулятор з цього уроку, а уже потім - придумати щось своє.
Ідея: калькулятор середнього балу
Кожен учень хоч раз у житті рахував свій середній бал вручну. Скільки предметів, скільки оцінок, яка вага кожної — і все це в голові або на папері. Ось і готова ідея для калькулятора: інструмент, який рахує середній бал за семестр або чверть, з урахуванням кількості оцінок з кожного предмета.
Це просто, зрозуміло і корисно прямо зараз. Учень одразу розуміє, навіщо він це пише. Для початку зацікавте учнів - покажіть як може (має) вигладати такий калькулятор (дивіться справа приклад).
Математика тут теж є. Середнє арифметичне — базова формула, яку проходять у 5–6 класі. Але щоб реалізувати її в коді, треба зрозуміти її справді, а не просто запам'ятати. Як зберегти кілька оцінок? Як підсумувати їх? Як розділити на кількість? Це вже задачі для голови.
Що таке середнє арифметичне і як це пов'язано з кодом
Середнє арифметичне — це сума всіх значень, поділена на їхню кількість. Якщо учень отримав оцінки 8, 10, 7, 9, то середнє: (8 + 10 + 7 + 9) / 4 = 8,5. У JavaScript це реалізується через масив (array), метод reduce() для суми та властивість length для кількості елементів. Тобто одна шкільна формула одразу пояснює три концепції програмування.
Покроковий урок: пишемо калькулятор середнього балу
Крок 1. Постановка задачі
Перед тим як відкривати редактор, учні мають відповісти на кілька питань:
- які дані потрібно ввести (оцінки);
- що ми хочемо отримати на виході (середній бал);
- як виглядатиме інтерфейс (поле вводу, кнопка, результат).
Це не зайвий крок. Учні, які думають перед тим як писати код, роблять менше помилок і краще розуміють, що і чому вони роблять.
Крок 2. Структура HTML
Починаємо з розмітки. Нам потрібні: заголовок, текстове поле для введення оцінок, кнопка та блок для виведення результату.
<!DOCTYPE html> <html lang="uk"> <head> <meta charset="UTF-8"> <title>Калькулятор середнього балу</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="calculator"> <h1>Середній бал</h1> <p>Введіть оцінки через кому:</p> <input type="text" id="grades" placeholder="Наприклад: 8, 10, 7, 9"> <button onclick="calculate()">Порахувати</button> <div id="result"></div> </div> <script src="script.js"></script> </body> </html>
Тут нічого зайвого. Учні бачать логічну структуру: є контейнер, є елементи всередині, є зв'язок з JavaScript через атрибут onclick і підключений файл скрипту.
Крок 3. Стилі CSS
Навіть простий калькулятор має виглядати акуратно. Це мотивує. Учень, який бачить красиво оформлений результат своєї роботи, хоче робити далі.
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #f0f4f8;
margin: 0;
}
.calculator {
background: white;
padding: 30px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
max-width: 400px;
width: 100%;
text-align: center;
}
input {
width: 90%;
padding: 10px;
margin: 10px 0;
border: 1px solid #ccc;
border-radius: 8px;
font-size: 16px;
}
button {
padding: 10px 25px;
background: #4a90e2;
color: white;
border: none;
border-radius: 8px;
font-size: 16px;
cursor: pointer;
}
button:hover {
background: #357abd;
}
#result {
margin-top: 20px;
font-size: 20px;
font-weight: bold;
color: #333;
}
CSS тут простий, але достатній. Можна запропонувати учням змінити кольори, шрифти, відступи на свій смак — це розвиває творчість і краще закріплює матеріал.
Крок 4. Логіка JavaScript
Ось де починається головне. Тут учень має перетворити ідею на код.
function calculate() {
const input = document.getElementById('grades').value;
const parts = input.split(',');
const numbers = [];
for (let i = 0; i < parts.length; i++) {
const num = parseFloat(parts[i].trim());
if (!isNaN(num) && num >= 1 && num <= 12) {
numbers.push(num);
}
}
const resultDiv = document.getElementById('result');
if (numbers.length === 0) {
resultDiv.textContent = 'Введіть коректні оцінки від 1 до 12';
return;
}
let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
const average = sum / numbers.length;
resultDiv.textContent = 'Середній бал: ' + average.toFixed(2);
}
Навмисно використано базовий цикл for, а не скорочений варіант через reduce(). Для початківців важливо бачити кожен крок явно. Коли учень розуміє базу, скорочений запис можна показати як "а ще є такий спосіб".
Крок 5. Тестування і доопрацювання
Написати код — це ще не все. Обов'язковий етап уроку: перевірити різні сценарії.
- Ввести коректні оцінки і переконатися, що результат правильний.
- Ввести літери або порожній рядок — побачити, як спрацьовує перевірка.
- Ввести оцінку поза діапазоном (наприклад, 15) — переконатися, що вона ігнорується.
- Спробувати змінити щось у стилях — подивитися, що відбувається.
Цей крок вчить думати як розробник, а не як людина, яка просто переписала код з дошки.
Що учень отримує з цього уроку
Найкраще навчання відбувається тоді, коли людина розуміє, навіщо вона це робить. Калькулятор середнього балу — це не абстрактна вправа. Це інструмент, яким учень може скористатися вже сьогодні, після уроку.
З практичного боку учень отримує такі навички:
- базова структура HTML-документа;
- підключення CSS і JavaScript до HTML;
- робота з елементами сторінки через
getElementById; - обробка рядкових даних: розбиття, перетворення, фільтрація;
- цикл
forі умовна конструкціяif; - виведення результату на сторінку.
З математичного боку — усвідомлення формули середнього арифметичного не як рядка в підручнику, а як алгоритму, який можна реалізувати.
Варіанти для розширення
Якщо урок розрахований на більш підготовлених учнів або якщо хочеться дати домашнє завдання на розвиток проєкту, ось кілька ідей:
- додати кілька предметів і рахувати загальний середній бал за всіма;
- показувати не лише середнє, а й найвищу і найнижчу оцінку;
- додати коментар до результату: "відмінно", "добре", "є над чим попрацювати";
- зберігати результати в
localStorage, щоб вони не зникали після перезавантаження сторінки.
Кожен із цих пунктів — це окремий маленький урок, який природно виростає з основного.
Такий підхід до навчання — коли учень пише щось корисне для себе — дає зовсім інший рівень залученості. Немає абстрактних "порахуй суму масиву", є реальне завдання з реальним результатом. І, що важливо, учень бачить, що навіть базових знань HTML, CSS і JavaScript вистачає, щоб зробити щось цілком робоче. Це мотивує краще за будь-які оцінки. А вчителю залишається тільки спрямувати, підказати в потрібний момент і дати простір для помилок — бо саме через них і відбувається справжнє навчання. Яку ідею для калькулятора запропонували б ваші учні, якби вибір був за ними?
Схожі публікації