← Trở về Lộ trình học
Giáo Án Bài 18 (Lớp 4)

Máy Tính Candy (Xử Lý Số Liệu & Phép Tính)

Hôm nay chúng ta sẽ tìm hiểu cách nhận dữ liệu dạng số, chuyển đổi kiểu dữ liệu bằng hàm Number() và thực hiện các phép tính số học cơ bản cộng, trừ, nhân, chia.

🎯 Mục tiêu bài học

  • Sử dụng thẻ <input type="number"> để giới hạn chỉ cho phép nhập số.
  • Hiểu tại sao dữ liệu lấy từ ô nhập luôn là kiểu chuỗi và cách sử dụng hàm Number() để quy đổi.
  • Sử dụng thành thạo các toán tử toán học cơ bản: cộng +, trừ -, nhân *, chia /.
  • Căn chỉnh bảng nhập số và các nút phép toán bằng CSS gọn gàng, đẹp mắt.
  • Ánh xạ việc xử lý tính toán số học sang khối phép tính tương ứng trong Scratch.

⏱️ Thời lượng & Phân bổ

  • Ô Nhập Số & Giới Hạn Dữ Liệu: 20 phút
  • Hàm Đổi Số Number() & Liên Hệ Scratch: 25 phút
  • Các Phép Toán Số Học Trong JS: 20 phút
  • Căn Chỉnh Giao Diện Máy Tính: 15 phút
  • Dự án Máy Tính Candy: 45 phút

20 Phút Hoạt động 1: Ô Nhập Số & Giới Hạn Dữ Liệu

"Khi làm các ứng dụng tính toán như máy tính bỏ túi hoặc nhập số lượng kẹo, nếu người dùng vô tình gõ chữ vào ô nhập thì máy tính sẽ không tính được và báo lỗi.
Để tránh điều này, HTML cung cấp một loại ô nhập dữ liệu đặc biệt là **input type="number"** chỉ cho phép nhập các ký tự số, giúp bảo vệ dữ liệu đầu vào luôn chuẩn xác!"

Giáo viên hướng dẫn cú pháp thiết lập thẻ nhập số:

Cú pháp thẻ input số:

<input type="number" id="o-so-a" placeholder="Nhập số thứ nhất...">
                

25 Phút Hoạt động 2: Hàm Đổi Số Number() & Liên Hệ Scratch

Khi ta lấy giá trị từ ô nhập bằng lệnh .value, máy tính luôn coi đó là kiểu Chuỗi (văn bản) kể cả khi ta gõ số. Ví dụ, nếu nhập số 5 và 10, máy tính sẽ hiểu là chữ '5' và chữ '10'. Khi thực hiện phép cộng '5' + '10', kết quả sẽ là '510' chứ không phải là 15!
Để xử lý đúng phép cộng toán học, ta phải dùng hàm Number() để đổi kiểu văn bản sang kiểu số thực sự.

Sự so sánh trực quan với Scratch:

Trong Scratch, khi ta gõ số vào ô hỏi, Scratch tự động chuyển đổi sang dạng số học để thực hiện các phép tính trong nhóm Các phép toán (Operators).

Trong JavaScript, chúng ta phải chuyển đổi thủ công bằng hàm Number():

let soA = Number(document.getElementById('o-so-a').value);
let soB = Number(document.getElementById('o-so-b').value);
let ketQua = soA + soB; // Kết quả sẽ là phép cộng số học chính xác
                

20 Phút Hoạt động 3: Các Phép Toán Số Học Trong JS

Học sinh làm quen với các ký hiệu phép toán số học cơ bản trong JavaScript:

Bảng ký hiệu phép toán:

  • Phép Cộng: dùng ký hiệu +. Ví dụ: a + b
  • Phép Trừ: dùng ký hiệu -. Ví dụ: a - b
  • Phép Nhân: dùng ký hiệu * (dấu sao). Ví dụ: a * b
  • Phép Chia: dùng ký hiệu / (dấu gạch chéo). Ví dụ: a / b

15 Phút Hoạt động 4: Căn Chỉnh Giao Diện Máy Tính

Để các ô nhập số và các nút phép toán hiển thị ngăn nắp, thẳng hàng như một chiếc máy tính thật, ta sử dụng CSS để định dạng kích thước, khoảng cách và bo góc.

CSS định dạng máy tính:

.o-so {
    width: 80px;
    padding: 10px;
    font-size: 18px;
    text-align: center;
    border-radius: 5px;
    border: 2px solid #ccc;
}
.nut-tinh {
    padding: 10px 15px;
    font-size: 16px;
    margin: 5px;
    cursor: pointer;
    border-radius: 5px;
}
                

🎁 Dự án Thực hành: Máy Tính Bỏ Túi Candy

Mô tả: Tạo trang web Máy tính bỏ túi đơn giản cho phép học sinh nhập vào 2 số, sau đó bấm các nút "Cộng (+)", "Trừ (-)" để tính toán và hiển thị kết quả chính xác lên màn hình.

Các bước lập trình chi tiết:

  1. Khởi tạo thư mục dự án bai18-1, thư mục con assets, tạo file index.html và style.css.
  2. Trong index.html, thiết lập tiêu đề <h1>: MÁY TÍNH CANDY.
  3. Tạo 2 ô nhập số:
    <input type="number" id="so-a" class="o-so" placeholder="Số A"> và
    <input type="number" id="so-b" class="o-so" placeholder="Số B">.
  4. Tạo 2 nút bấm:
    <button class="nut-tinh" onclick="tinhCong()">Cộng (+)</button> và
    <button class="nut-tinh" onclick="tinhTru()">Trừ (-)</button>.
  5. Tạo thẻ hiển thị kết quả: <h2 id="ket-qua">Kết quả: ?</h2>.
  6. Viết mã JavaScript trong thẻ <script> ở cuối body:
    function tinhCong() {
        let a = Number(document.getElementById('so-a').value);
        let b = Number(document.getElementById('so-b').value);
        let tong = a + b;
        document.getElementById('ket-qua').innerHTML = 'Kết quả: ' + tong;
    }
    
    function tinhTru() {
        let a = Number(document.getElementById('so-a').value);
        let b = Number(document.getElementById('so-b').value);
        let hieu = a - b;
        document.getElementById('ket-qua').innerHTML = 'Kết quả: ' + hieu;
    }
                        
  7. Trong style.css, căn chỉnh các ô nhập và nút bấm thẳng hàng, định dạng phông chữ to rõ ràng, dễ nhìn.