Mảng là một kiểu dữ liệu mà nó có thể chứa nhiều giá trị con bên trong. Hãy tưởng tượng như một mảng là một đoàn tàu (xe lửa), mỗi toa là phần của mảng và nó mang một giá trị (value) toa xe được đánh số (key) để nhận biết.
Trong MSWLogo muốn khai báo một mảng ta dùng MAKE “tênmảng (ARRAY độ.dài số.bắt.đầu)
Ví dụ Make mau_sac (Array 7 1) tạo một mảng có tên là mau_sac mảng này có 7 phần tử ( toa tàu) và toa đầu tiên đánh số là 1.
Để gán một giá trị nào đó cho mảng ta dùng SETITEM vị.trí :tên.mảng giá trị
Ví dụ SETITEM 3 :mau_sac 5 gắn 5 vào ô số 3 của mảng mau_sac
Để lấy một giá trị nào đó trong mảng dùng ITEM vị.trí :tên.mảng
Ví dụ ITEM 1 :mau_sac lấy ô đầu tiên trong mảng có tên mau_sac
Để hiểu rõ thêm về mảng mời các bạn xem một bài tập :
Đề bài dùng MSWLogo vẽ cây kẹo với màu sắc như sau. Bảng mã màu các vòng dùng setpc (2 4 5 6 13 9 14 11 9) cây que cầm màu 12, các vòng cách nhau 10 bước.
Bình thường thì chỉ cần dùng lệnh như thế này :
To keo
setpensize [2 2]
setpc 2 circle 10
setpc 4 circle 20
setpc 5 circle 30
setpc 6 circle 40
setpc 13 circle 50
setpc 9 circle 60
setpc 14 circle 70
setpc 11 circle 80
setpc 9 circle 90
setpc 12
bk 200
End
Và đây là cách viết sử dụng mảng của MSWLogo
To keo
Setpensize [2 2]
MAKE “mau (ARRAY 9)
SetItem 1 :mau 2
SetItem 2 :mau 4
SetItem 3 :mau 5
SetItem 4 :mau 6
SetItem 5 :mau 13
SetItem 6 :mau 9
SetItem 7 :mau 14
SetItem 8 :mau 11
SetItem 9 :mau 9
Make “j 0
For [i 10 90 10] [
Make “j :j+1
Setpc ITEM :j :mau
Circle :i
]
Setpc 12
Bk 200
END
Ví dụ 2 :
Nhập vào một dãy số sau đó in ra dãy số và cho biết có bao nhiêu số chẵn và tổng các số lẻ của dãy
Có khi bài này dùng mảng còn dài hơn