btvn.vn
Tìm kiếm Đăng nhập

Thực hành Scratch: tính tiền dư hoặc thiếu

Lưu trên thiết bị này
Giải quyết vấn đề với sự trợ giúp của máy tính · Chọn bài khác

Xác định kết quả cần tìm

Trong một hoạt động làm dấu trang giả định, số tiền thu được là $a$ đồng, chi phí vật liệu là $b$ đồng. Chỉ xét hai khoản này; $a$, $b$ là các số nguyên không âm. Cần thông báo tiền dư hoặc tiền thiếu so với chi phí. Nếu $a\ge b$, tiền dư là $a-b$. Nếu $a<b$, tiền thiếu là $b-a$. Quy ước trường hợp thu bằng chi thông báo “Dư: 0”, nghĩa là vừa đủ chi phí. Đầu vào gồm $a$ và $b$. Đầu ra là thông báo loại kết quả (dư hay thiếu) cùng số tiền tương ứng. Các giá trị trong bài là dữ liệu giả định để học thuật toán.

Viết rõ hai nhánh trước khi ghép lệnh

Có thể mô tả thuật toán bằng các bước: 1. Nhập số tiền thu $a$ và chi phí $b$. 2. Kiểm tra $a\ge b$. 3. Nếu đúng, tính $a-b$ và thông báo tiền dư; còn không, tính $b-a$ và thông báo tiền thiếu. 4. Kết thúc. Với $a=150\,000$, $b=110\,000$, điều kiện đúng, tiền dư là $40\,000$ đồng. Với $a=90\,000$, $b=120\,000$, điều kiện sai, tiền thiếu là $30\,000$ đồng. Hai nhánh dùng phép trừ khác thứ tự để số tiền được thông báo không âm.

Bài luyện

Theo nhiệm vụ, đầu ra cần gồm thông tin nào?
Chọn một đáp án

Ghép điều kiện và hai nhánh trong Scratch

Chương trình Scratch hỏi hai khoản tiền, kiểm tra a > b hoặc a = b rồi thông báo dư hoặc thiếu
Chương trình Scratch hỏi hai khoản tiền, kiểm tra a > b hoặc a = b rồi thông báo dư hoặc thiếu
Ảnh này là chương trình Scratch 3 giao diện tiếng Anh. Sau khi hỏi và lưu hai số, khối **if … then … else** trong Control thể hiện rẽ nhánh dạng đủ. Scratch có các khối so sánh $>$ và $=$. Trong mẫu, điều kiện $a\ge b$ được ghép thành **(a > b) or (a = b)**; or thuộc nhóm Operators, nghĩa là “hoặc”. Điều kiện này đúng khi thu lớn hơn chi hoặc thu bằng chi. | Vị trí | Công việc của khối lệnh | |---|---| | Phần then | say kết quả ghép chữ “Dư: ” với a − b | | Phần else | say kết quả ghép chữ “Thiếu: ” với b − a | Cần đặt cả phép trừ vào ô thứ hai của join, rồi đặt join vào say. Mỗi lần kiểm tra chỉ chạy một phần then hoặc else, đúng như hai nhánh trong thuật toán.

Bài luyện

Với a = 90000, b = 120000, chương trình mẫu thông báo gì?
Chọn một đáp án

Bài luyện

Với a = b = 100000, chương trình mẫu đi theo phần nào?
Chọn một đáp án

Thực hành tạo và kiểm tra chương trình

Dùng Scratch 3 trên máy tính, giao diện tiếng Anh. Có thể bắt đầu từ dự án mới hoặc mở mẫu tính tổng đã lưu và chỉnh thành một bản thu chi riêng. 1. Tạo hai biến a và b trong Variables. Ghép when green flag clicked; hỏi số tiền thu bằng ask … and wait rồi set a to answer; hỏi chi phí rồi set b to answer. 2. Lấy if … then … else trong Control. Trong Operators, lấy or; đưa so sánh a > b vào một ô, a = b vào ô còn lại; đặt toàn bộ điều kiện vào khối if. 3. Trong then, ghép say join “Dư: ” (a − b). Trong else, ghép say join “Thiếu: ” (b − a). Hai khối say phải nằm trong đúng hai phần của khối if. 4. Chạy bằng cờ xanh. Nhập mỗi số dưới dạng chữ số liền nhau, chẳng hạn 150000; không gõ thêm “đồng” hoặc dấu phân cách hàng nghìn. Dùng các cặp thử trong bảng để đối chiếu. 5. Chọn File → Save to your computer để lưu .sb3. Dùng File → Load from your computer mở lại bản đã lưu, rồi thử lại một cặp thu nhỏ hơn chi và một cặp bằng nhau. | Số tiền thu a | Chi phí b | Thông báo mong đợi | |---|---|---| | 150000 | 110000 | Dư: 40000 | | 90000 | 120000 | Thiếu: 30000 | | 100000 | 100000 | Dư: 0 | | 0 | 0 | Dư: 0 | Nếu thiếu tiền mà kết quả âm, kiểm tra thứ tự phép trừ trong else. Nếu thu bằng chi đi sai nhánh so với quy ước, kiểm tra đã ghép a = b bằng or chưa. Nếu kết quả dùng nhầm số, kiểm tra vị trí set a to answer và set b to answer. Tệp mẫu ở liên kết dùng để đối chiếu. Kết quả trắc nghiệm trong bài chỉ kiểm việc đọc và hiểu chương trình; sản phẩm thực hành cần được tự chạy với dữ liệu thử rồi lưu lại.

Bài luyện

Muốn phát hiện lỗi ở trường hợp thu bằng chi, cặp thử nào phù hợp nhất?
Chọn một đáp án

Bài luyện

Một bản chương trình đã đi đúng vào else nhưng hiện “Thiếu: -30000” khi nhập a = 90000 và b = 120000. Lỗi nào giải thích phù hợp kết quả âm này?
Chọn một đáp án

Bài luyện

Bước nào giúp kiểm tra bản .sb3 đã lưu vẫn thực hiện đúng thuật toán?
Chọn một đáp án

Đang học