Yêu cầu cần đạt

  • Biết được chương trình là mô tả một thuật toán để máy tính "hiểu" và thực hiện được.

Thuật ngữ: chương trình

Để rèn luyện kĩ năng mô tả thuật toán bằng ngôn ngữ tự nhiên, hai bạn An và Khoa đã chơi trò chơi "Làm theo chỉ dẫn". Khoa chuẩn bị một bức tranh đơn giản vẽ đồ vật và không cho An biết nội dung bức tranh. An cũng không được nhìn bức tranh. Khoa lần lượt đưa ra chỉ dẫn để An vẽ lại bức tranh. Sau khi hoàn thành công việc, hai bạn so sánh bức tranh An vẽ với bức tranh Khoa đã chuẩn bị để xem các chỉ dẫn của Khoa có rõ ràng không và An có thực hiện đúng theo chỉ dẫn không.

Hình minh họa hai bạn học sinh đang thực hiện trò chơi "Làm theo chỉ dẫn", một bạn đang vẽ và một bạn đang hướng dẫn.

Hoạt động 1

Thực hiện thuật toán
Trong trò chơi "Làm theo chỉ dẫn", Khoa cần hiểu và thực hiện được chỉ dẫn của An để hoàn thành việc vẽ bức tranh. Các chỉ dẫn của An cũng cần phải rõ ràng, dễ hiểu để Khoa thực hiện được. Đó chính là một ví dụ về việc thực hiện thuật toán theo các bước được liệt kê bằng ngôn ngữ tự nhiên.
Nếu thuật toán được chuyển giao cho máy tính thực hiện thì theo em, làm thế nào để máy tính có thể hiểu và thực hiện được?

Từ khi máy tính ra đời, nhiều công việc có máy tính trợ giúp nên được thực hiện nhanh, chính xác và hiệu quả hơn. Muốn máy tính giúp giải quyết công việc thì ta phải chỉ dẫn cho máy tính cách thực hiện. Máy tính không thể hiểu được những chỉ dẫn bằng ngôn ngữ tự nhiên hay sơ đồ khối. Do đó cần sử dụng một ngôn ngữ mà máy tính hiểu được. Ngôn ngữ lập trình chính là ngôn ngữ được dùng để tạo ra chương trình chỉ dẫn cho máy tính hiểu cách thực hiện công việc. Chương trình là tập hợp các lệnh viết bằng ngôn ngữ lập trình nào đó, chỉ dẫn theo từng bước của thuật toán để máy tính thực hiện. Nói cách khác, chương trình là một cách mô tả khác của thuật toán để máy tính có thể "hiểu" và thực hiện được.

Chương trình máy tính dựa trên các dữ liệu đầu vào, tiến hành các bước xử lí để trả lại kết quả đầu ra. Em cũng có thể chỉ dẫn máy tính thực hiện công việc bằng cách sử dụng ngôn ngữ lập trình. Scratch là ngôn ngữ lập trình trực quan em đã được học ở Tiểu học. Ngoài Scratch, còn có nhiều ngôn ngữ lập trình khác như: Python, C, Java,... Ví dụ dưới đây là chương trình chỉ dẫn máy tính thực hiện công việc tính tổng hai số a và b bằng ngôn ngữ lập trình trực quan Scratch:

Hình 6.13. Chương trình Scratch tính tổng hai số a và b. Bao gồm các khối lệnh: 'khi nhấn vào', 'nói cùng làm toán nhé! trong 2 giây', 'hỏi Nhập số a: và đợi', 'đặt a là trả lời', 'hỏi Nhập số b: và đợi', 'đặt b là trả lời', 'đặt tong là a + b', 'nói Tổng a và b là: và tong trong 2 giây'. Kèm theo mô tả thuật toán: Tính tổng hai số a, b. Đầu vào: hai số a, b. Đầu ra: tổng của a và b. 1. Nhập hai số a và b. 2. tong = a + b. 3. Thông báo giá trị của tong (Tổng a và b là:).
CHƯƠNG TRÌNH

Máy tính thực hiện công việc theo chương trình.
Chương trình là mô tả thuật toán để máy tính "hiểu" và thực hiện được.
Chương trình dựa trên các dữ liệu đầu vào, tiến hành các bước xử lí để trả lại kết quả đầu ra.

Dựa vào chương trình tính tổng hai số bằng ngôn ngữ tự nhiên và chương trình Scratch ở Hình 6.13, em hãy bổ sung nội dung vào các dấu hỏi chấm trong bảng sau:

Công việc | Mô tả thuật toán bằng ngôn ngữ tự nhiên | Chương trình máy tính viết bằng Scratch (số thứ tự của câu lệnh)
Nhập dữ liệu đầu vào | (?) | (?)
Xử lí | (?) | (?)
Thông báo đầu ra | (?) | (?)

2. Thực hành: tạo chương trình máy tính

Nhiệm vụ

Ba bạn An, Minh, Khoa đã làm những tấm thiệp chúc mừng để bán lấy tiền mua sách tặng các bạn học sinh vùng khó khăn. Gọi số tiền bán được là a, số tiền mua vật liệu là b, cần tính toán số tiền lãi thu được hoặc số tiền bị lỗ. Em hãy mô tả thuật toán giải quyết yêu cầu trên bằng sơ đồ khối và chương trình Scratch.

Hướng dẫn

a) Xác định đầu vào, đầu ra của bài toán
Yêu cầu bài toán là tính số tiền lãi thu được hoặc số tiền bị lỗ. Để đơn giản bài toán, trong trường hợp tiền mua vật liệu bằng tiền bán được, ta coi như tiền lãi bằng 0. Như vậy, nếu số tiền bán được lớn hơn hoặc bằng tiền mua vật liệu thì tiền lãi =a−b, còn không thì tiền bị lỗ =b−a.
Đầu vào: hai số a, b.
Đầu ra: số tiền lãi hoặc số tiền bị lỗ.
b) Trình bày thuật toán bằng sơ đồ khối

Hình 6.14. Sơ đồ khối mô tả thuật toán tính toán tiền bán thiệp chúc mừng. Các bước: Bắt đầu, Nhập số tiền bán (a), Nhập số tiền mua vật liệu (b), điều kiện a≥b. Nếu Đúng thì 'Tiền lãi ← a - b', 'Thông báo tiền lãi'. Nếu Sai thì 'Tiền bị lỗ ← b - a', 'Thông báo tiền bị lỗ'. Cuối cùng là 'Kết thúc'.

c) Chương trình Scratch tính toán tiền bán thiệp

Sơ đồ khối | Chương trình Scratch
Bắt đầu | khi nhấn vào
Nhập số tiền bán (a)
Nhập số tiền mua vật liệu (b) | hỏi Nhập số tiền bán: và đợi
đặt a là trả lời
hỏi Nhập số tiền mua vật liệu: và đợi
đặt b là trả lời
a≥b
Đúng | nếu a ≥ b thì
Tiền lãi a-b
Thông báo tiền lãi | nói nối Số tiền lãi là: a - b trong 10 giây
Sai | còn không thì
Tiền bị lỗ b-a
Thông báo tiền bị lỗ | nói nối Số tiền bị lỗ là: b - a trong 10 giây

Luyện tập

1

Tìm câu sai.
a) Chương trình máy tính là một dãy các lệnh mà máy tính có thể hiểu và thực hiện được.
b) Chương trình máy tính được viết bằng ngôn ngữ lập trình.
c) Máy tính có thể thực hiện các lệnh trong chương trình theo trình tự tuỳ ý.

2

Cho chương trình Scratch như ở Hình 6. 15.
a) Em hãy cho biết chương trình đó thực hiện thuật toán nào?
b) Hãy xác định đầu vào, đầu ra của thuật toán đó.
c) Hãy cho ví dụ cụ thể giá trị dữ liệu đầu vào và cho biết kết quả đầu ra tương ứng.
d) Hãy trình bày thuật toán bằng sơ đồ khối.

Hình 6.15. Chương trình Scratch tính điểm trung bình. Các khối lệnh: 'khi nhấn vào', 'nói Tìm điểm trung bình trong 2 giây', 'hỏi Nhập điểm toán: và đợi', 'đặt a là trả lời', 'hỏi Nhập điểm văn: và đợi', 'đặt b là trả lời', 'hỏi Nhập điểm tiếng anh: và đợi', 'đặt c là trả lời', 'đặt DTB là (a + b + c) / 3', 'nếu DTB > 8.0 thì', 'nói Bạn được thưởng ngôi sao trong 2 giây', 'còn không thì', 'nói Bạn cố gắng lên nhé trong 2 giây'.

3

Cho chương trình Scratch như ở Hình 6.16. Em hãy trả lời các câu hỏi sau:
a) Chương trình đó thực hiện công việc gì?
b) Các cấu trúc điều khiển tuần tự, rẽ nhánh và lặp có được sử dụng trong chương trình không? Hãy nêu các câu lệnh trong chương trình thể hiện cấu trúc đó.
c) Thực hành tạo chương trình bằng Scratch.

Hình 6.16. Chương trình Scratch di chuyển mèo. Các khối lệnh: 'khi nhấn vào', 'nói Xin chào! trong 2 giây', 'lặp lại 10 lần', 'di chuyển 10 bước', 'chơi trống 1 trong 0.25 nhịp', 'chỉnh kiểu quay thành left-right', 'nếu chạm biên, bật lại'.

Vận dụng

1

Em hãy vẽ sơ đồ khối mô tả thuật toán tìm số lớn hơn trong hai số a và b. Từ sơ đồ khối, hãy viết chương trình Scratch thực hiện thuật toán.

2

Em hãy viết chương trình Scratch thực hiện thuật toán tính trung bình cộng của ba số.

Xem bản PDF nguyên trang sách: Tin học 6 – Kết nối tri thức với cuộc sống (trang 71–74).