Bỏ qua để đến nội dung

Danh sách

Danh sách (list) lưu trữ nhiều giá trị cùng lúc, giống như mảng (array) trong các ngôn ngữ lập trình văn bản. Dùng khi cần lưu danh sách tên người chơi, bảng xếp hạng điểm, tập hợp các từ…

Vào nhóm Các biến số → bấm Tạo một danh sách → đặt tên (ví dụ (bảng điểm :: list)) → chọn phạm vi (tất cả nhân vật / chỉ nhân vật này), tương tự tạo biến.

thêm phần tử [10] vào trong [bảng điểm v]
xóa phần tử thứ (1) của [bảng điểm v]
Xóa hết tất cả trong liệt kê [bảng điểm v]
thêm phần tử [5] tại vị trí (1) của [bảng điểm v]
thay thế phần tử thứ (1) của danh sách [bảng điểm v] bằng [99]
(phần tử thứ (1) của [bảng điểm v])
(kích thước của [bảng điểm v])
<[bảng điểm v] chứa phần tử [10]?>
(số thứ tự của [10] trong [bảng điểm v])

(kích thước của [danh sách v]) trả về số phần tử hiện có trong danh sách - rất hữu ích làm điều kiện dừng khi duyệt qua toàn bộ danh sách.

Kết hợp biến đếm với vòng lặp lặp lại (10) để đi qua từng phần tử - cách làm tương đương vòng for trong Python:

khi bấm vào @greenFlag
đặt [i v] thành (1)
lặp lại (kích thước của [bảng điểm v])
nói (phần tử thứ (i) của [bảng điểm v]) trong (1) giây
thay đổi [i v] một lượng (1)
khi bấm vào @greenFlag
hỏi [Nhập điểm của bạn:] và đợi
thêm phần tử (trả lời) vào trong [bảng điểm v]
hiện danh sách [bảng điểm v]

Bảng điểm sẽ hiện trực tiếp trên sân khấu dưới dạng bảng, có thể kéo giãn kích thước để xem toàn bộ.

Nhiều bài tập cần sẵn một dãy số trong danh sách trước khi xử lý. Có ba cách đưa dữ liệu vào danh sách, ví dụ với danh sách (dãy số :: list).

Cách 1. Nhập từ bàn phím bằng khối tự tạo

Phần tiêu đề “Cách 1. Nhập từ bàn phím bằng khối tự tạo”

Gói phần hỏi từng số vào một khối tự tạo để bài nào cũng dùng lại được. Khối nhập danh sách :: custom xoá sạch danh sách cũ, hỏi số lượng phần tử N, rồi hỏi lần lượt từng số và thêm vào cuối danh sách:

định nghĩa nhập danh sách
Xóa hết tất cả trong liệt kê [dãy số v]
hỏi [Nhập số lượng phần tử N:] và đợi
đặt [số lượng v] thành (trả lời)
đặt [vị trí v] thành (1)
lặp lại cho đến khi <(vị trí) > (số lượng)>
hỏi (kết hợp [Nhập phần tử thứ ] (vị trí)) và đợi
thêm phần tử (trả lời) vào trong [dãy số v]
thay đổi [vị trí v] một lượng (1)
end

Ở mỗi bài, chỉ cần đặt lệnh nhập danh sách :: custom ngay dưới khi bấm vào @greenFlag, trước phần xử lý:

khi bấm vào @greenFlag
nhập danh sách :: custom
hiện danh sách [dãy số v]

Muốn mang khối sang một dự án khác, kéo cả khối định nghĩa nhập danh sách vào Ba lô (Backpack, ở cuối màn hình lập trình, cần đăng nhập tài khoản Scratch), rồi mở dự án mới và kéo ra.

Khi phải chạy thử nhiều lần với cùng một dãy số, gõ lại N số mỗi lần rất mất thời gian. Có thể điền sẵn dữ liệu ngay trên sân khấu:

  • Bước 1: tạo danh sách (dãy số :: list) như mục Tạo danh sách, đánh dấu vào ô bên cạnh tên danh sách để nó hiện trên sân khấu.
  • Bước 2: bấm dấu + ở góc dưới bên trái khung danh sách, gõ số đầu tiên rồi nhấn Enter. Scratch tự thêm một dòng mới cho số tiếp theo.
  • Bước 3: muốn sửa một phần tử thì bấm vào nó và gõ lại; muốn xoá thì bấm vào phần tử rồi bấm dấu × bên phải.

Dữ liệu này được lưu cùng dự án.

Với dãy dài (vài chục, vài trăm số), nhanh nhất là chuẩn bị sẵn một file văn bản:

  • Bước 1: dùng Notepad (hoặc TextEdit) tạo file, ví dụ day-so.txt, mỗi số viết trên một dòng, rồi lưu lại.
  • Bước 2: trên sân khấu, bấm chuột phải vào khung danh sách (dãy số :: list), chọn nhập (import), rồi chọn file vừa tạo. Mỗi dòng trong file trở thành một phần tử của danh sách.

Ngược lại, chọn xuất (export) để lưu nội dung danh sách ra file .txt.

Chương tiếp theo bước sang phần nâng cao, bắt đầu với thông điệp và cảm biến.