1. Tuần tự trong kịch bản và tuần tự trong thuật toán
Khái niệm: tính tuần tự, tức là các bước trong một quy trình phải được thực hiện theo một trình tự nhất định.
Trong một kịch bản, các hành động diễn ra theo một thứ tự nhất định, hành động trước sẽ diễn ra trước, hành động sau diễn ra sau.
Tương tự, trong thuật toán, các bước cũng được thực hiện theo thứ tự, bước trước hoàn thành thì mới đến bước tiếp theo. Các bước trong thuật toán được mô tả dưới dạng ngôn ngữ tự nhiên.
Bài học đưa ra một ví dụ về kịch bản "Nhân vật Mèo" và các hành động của nó như: "Nhân vật Mèo đứng bên trái căn phòng", "Nhân vật Mèo kêu", "Nhân vật Mèo chạy một đoạn".
Thuật toán là một cách mô tả các bước thực hiện của kịch bản, nhưng được viết dưới dạng các câu lệnh máy tính. Thuật toán thể hiện các bước của kịch bản một cách chi tiết hơn và rõ ràng hơn.
2. Thể hiện thuật toán bằng chương trình
Mỗi bước trong thuật toán sẽ tương ứng với một hoặc nhiều khối lệnh trong Scratch. Các khối lệnh này được ghép nối với nhau để tạo thành một chương trình hoàn chỉnh.
Ví dụ, bước "Đặt nhân vật Mèo bên trái căn phòng" trong thuật toán sẽ tương ứng với khối lệnh go to x: -160 y: -102 trong Scratch. Tương tự, bước "Nhân vật Mèo kêu" tương ứng với khối lệnh say.
Chương trình máy tính thực hiện các lệnh một cách tuần tự, theo đúng thứ tự mà các lệnh được viết trong thuật toán. Điều này đảm bảo rằng các hành động sẽ diễn ra theo đúng kịch bản đã định.
Bài học cũng giới thiệu một số khối lệnh cơ bản trong Scratch như when clicked, say, repeat, move và wait.
Một ví dụ khác về kịch bản "Nhân vật Mèo và Hươu cao cổ" cũng được đưa ra, và cách chuyển đổi kịch bản này thành thuật toán và chương trình cũng được giải thích.
Mục tiêu của bài học là giúp người học hiểu rõ về mối liên hệ giữa kịch bản, thuật toán và chương trình, và cách sử dụng Scratch để thể hiện các cấu trúc tuần tự.
1. Biến và hằng trong chương trình:
Biến:
Biến (variable) là tên gọi của một vùng nhớ trong máy tính dùng để lưu trữ dữ liệu.
Dữ liệu trong biến có thể thay đổi trong quá trình thực hiện chương trình.
Trong Scratch, biến được tạo ra và đặt tên theo ý muốn. Tên biến thường ngắn gọn, dễ nhớ và thể hiện ý nghĩa của dữ liệu mà nó lưu trữ.
Biến có thể được sử dụng cho tất cả các đối tượng (for all sprites) hoặc chỉ riêng đối tượng tạo ra nó (for this sprite only).
Lệnh "set...to..." dùng để gán giá trị cho biến. Ví dụ, set D to 5000 gán giá trị 5000 cho biến D.
Lệnh "change...by..." dùng để tăng hoặc giảm giá trị của biến. Ví dụ, change D by 2 tăng giá trị của biến D thêm 2.
Biến là khái niệm rất quan trọng và quen thuộc đối với người lập trình. Biến cho phép lưu trữ và thay đổi các giá trị trong quá trình thực hiện chương trình.
Hằng:
Hằng là một giá trị không thay đổi trong suốt quá trình thực thi chương trình.
Trong Scratch, không có khái niệm hằng một cách trực tiếp mà giá trị cố định thường được sử dụng trực tiếp trong các khối lệnh.
2. Các kiểu dữ liệu trong Scratch:
Kiểu dữ liệu là cách phân loại dữ liệu dựa trên đặc điểm của nó. Trong Scratch có ba kiểu dữ liệu chính:
Kiểu số:
Bao gồm các số nguyên và số thập phân.
Ví dụ: chiều cao, số lượng, điểm số.
Trong Scratch, kiểu số có thể được dùng để thực hiện các phép tính toán.
Kiểu logic:
Bao gồm hai giá trị: đúng (True) và sai (False).
Thường được dùng trong các câu lệnh điều kiện để kiểm tra một trạng thái hoặc một điều kiện nào đó.
Ví dụ: biến chỉ trạng thái bật/tắt, hoặc kết quả của một phép so sánh.
Trong Scratch, kiểu logic thường dùng với các phép toán so sánh =, <, > và phép toán logic and, or, not.
Kiểu xâu ký tự:
Bao gồm các ký tự hoặc chuỗi ký tự.
Ví dụ: tên, địa chỉ, thông báo, đoạn văn bản.
Trong Scratch, kiểu xâu ký tự được dùng để hiển thị thông tin ra màn hình.
Ví dụ về các kiểu dữ liệu trong Scratch:
set Chiều cao to 1.5 (kiểu số).
set Chân to 2 (kiểu logic, nếu biến "a" chia hết cho 2 thì là True, ngược lại là False).
set Tên to "Minh Khuê" (kiểu xâu ký tự).
Tóm lại, Biến là vùng nhớ để lưu trữ dữ liệu có thể thay đổi, còn các kiểu dữ liệu như kiểu số, kiểu logic, kiểu xâu ký tự giúp phân loại dữ liệu trong chương trình.
1. Biểu thức kiểu số
Sử dụng các phép toán số học như +, -, *, / để tạo biểu thức.
Có thể dùng các hàm làm tròn số (round), lấy phần dư của phép chia (mod), lấy giá trị tuyệt đối (abs).
Ví dụ: 1/2 + 3/4, S - N, |x - 90| + a.
2. Biểu thức kiểu Logic
Được tạo bởi các phép so sánh (=, <, >) kết hợp với các phép toán logic (and, or, not).
"and": Chỉ đúng khi cả hai biểu thức thành phần đều đúng.
"or": Chỉ sai khi cả hai biểu thức thành phần đều sai.
"not": Phủ định giá trị của biểu thức.
Ví dụ: a < 10, (12 * 4) < 50.
3. Biểu thức kiểu xâu ký tự
Xâu ký tự là một biểu thức xâu ký tự.
Sử dụng phép nối xâu (join) để tạo ra biểu thức xâu ký tự mới từ hai xâu ký tự đã có.
Ví dụ: "Hello", join "S" và "giây" để được "S giây".
1. Thể hiện cấu trúc rẽ nhánh trong Scratch
Trong quá trình thể hiện thuật toán, khi phải đưa ra điều kiện cụ thể để xác định bước thực hiện tiếp theo thì cần sử dụng cấu trúc rẽ nhánh.
Để thể hiện cấu trúc rẽ nhánh đầy đủ và cấu trúc rẽ nhánh khuyết trong thuật toán, trong nhóm Control của Scratch có hai khối lệnh tương ứng với hai dạng: rẽ nhánh đầy đủ (Hình 1a) và rẽ nhánh khuyết (Hình 2a).
Điều kiện để rẽ nhánh luôn là một biểu thức logic.
Ví dụ về khối lệnh rẽ nhánh đầy đủ trong Scratch: Nếu điều kiện là biểu thức logic ((m mod 2) = 0). Nếu biểu thức này đúng thì thông báo m là số chẵn. Trường hợp ngược lại, biểu thức điều kiện sai thì thông báo m là số lẻ.
2. Thực hành
Chi nhóm từ 3 - 5 người, làm bài tập thực hành dưới đâu và nộp vào buổi học tiếp theo.
Bài tập: Em hãy thực hiện chương trình "Trò chơi mê cung" theo nhóm. Trò chơi mô tả như sau: Bằng phím mũi tên, người chơi điều khiển nhân vật Robot đi tìm bánh sinh nhật trong mê cung. Trên đường đi, nếu nhân vật Robot chạm phải tường thì sẽ bị bật trở lại vị trí xuất phát và dừng động. Nhân vật Con bọ đưa ra câu hỏi thì phép cộng các số ngẫu nhiên Con bọ đưa ra, trả lời sai sẽ bị dừng trò chơi.