You are on page 1of 281

trình kéo thả dành

cho
học
sinh
Nội dung
 Chương 1. Làm quen với Scratch
 Chương 2. Bắt đầu lập trình Scratch
 Chương 3. Tìm hiểu sâu hơn Scratch
 Chương 4. Scratch nâng cao
 Chương 5. Thiết kế trò chơi và phần mềm giáo
dục
Nội dung (Các chủ đề chính)
 Chuyển động
 Vẽ đồ họa
 Biến nhớ
 Hội thoại
 Âm thanh
 Cảm biến
 Truyền thông
 Xử lý số
 Xử lý xâu ký tự
 Mảng số
 Thủ tục
 Một số kỹ thuật thiết kế game
Scratch là gì?

 Scratch là 1 môi trường lập trình ứng dụng


đặc biệt, trong đó việc “viết” lệnh sẽ được
thực hiện bằng thao tác “kéo thả”.
 Đầu ra của Scratch hỗ trợ các công nghệ và
ứng dụng mới nhất của CNTT-ICT, do vậy
các ứng dụng của Scratch rất phong phú.
 Scratch có sự phát triển bùng nổ 2 năm trở
lại đây.
 Scratch hoàn toàn miễn phí và chia sẻ rộng
rãi trong cộng đồng.
Scratch rất thích hợp
cho nhà trường
 Scratch rất thích hợp để tạo ra các ứng dụng đồ
họa, animation, bài học, bài giảng, mô phỏng
kiến thức, trình diễn, sách điện tử, trò chơi, …
rất phù hợp với nhà trường, giáo viên.
 Scratch là môi trường tốt nhất để dạy HS làm
quen với tư duy máy tính, khoa học máy tính
ngay từ lứa tuổi tiểu học.
 Hiện nay Scratch đã được nhiều nước như Hoa
kỳ, Anh đưa vào chương trình môn Tin học để
dạy cho HS ngay từ lớp 1.
MỤC ĐÍCH - MISSION
 We support approaches to coding that engage
young people in thinking creatively, reasoning
systematically, and working collaboratively --
essential skills for everyone in today's society.
 Chúng tôi hỗ trợ một công cụ lập trình mới giúp
trẻ suy nghĩ hợp lý hơn, hệ thống hơn, sáng tạo
hơn, làm việc nhóm và rèn luyện các kỹ năng
cần thiết trong xã hội hôm nay.
Một vài số liệu

 Số lượng dự án Scratch được chia sẻ là hơn


14 triệu và đang tăng chóng mặt với cấp số
nhân.
 Số lượng người đăng ký chia sẻ trực tuyến là
hơn 11 triệu (chưa tính những người đang sử
dụng Offline và chưa đăng ký).
Biểu đồ dự án
 Số lượng dự án được chia sẻ theo từng
tháng
Biểu đồ dự án
 Số lượng dự án được chia sẻ theo từng tháng
Ai sử dụng nhiều nhất
 Người sử dụng nhiều nhất là học sinh, đặc
biệt từ 7 đến 18 tuổi. Nhiều nhất ở tuổi 11-13.
Nước nào sử dụng?
 Biểu đồ số lượng người đăng ký sử dụng
theo quốc gia.
Lệnh thường dùng?
 Sơ đồ mô tả tỉ lệ sử dụng các nhóm lệnh
trong các dự án được chia sẻ.
Dạy tư duy lập trình
bằng Scratch?
Mục đích
 HS làm quen và hiểu, thao tác được trên môi
trường lập trình kéo thả Scratch.
 Thông qua Scratch, HS biết được thế nào là thiết
kế phần mềm, ứng dụng máy tính nhằm phục vụ
mục đích của con người.
 HS bước đầu hiểu và thực hiện được các chương
trình đơn giản theo yêu cầu của người khác.
 HS bước đầu hiểu được những yếu tố cơ bản nhất
của tư duy máy tính, hiểu và thực hiện được theo
cách máy tính có thể làm gì để giải quyết các vấn
đề đặt ra.
Yêu cầu năng lực & kỹ năng
 Năng lực giải quyết vấn đề: biết cách phân tích 1 vấn
đề và chia nhỏ thành các lệnh để thực hiện tuần tự.
 Năng lực về thuật toán: hiểu và áp dụng được thuật
toán để giải quyết vấn đề. Biết được 1 số thuật toán
đơn giản như duyệt, tìm giá trị max, min, thay đổi vị trí
2 giá trị.
 Năng lực viết chương trình máy tính: Có thể viết,
kiểm tra, phát hiện lỗi và tiến hành sửa lỗi với các
chương trình đơn giản. Thông thạo các lệnh chọn, rẽ
nhánh, lệnh lặp.
 - Trải nghiệm sáng tạo trong 1 môi trường mới, Biết
và chủ động làm việc trao đổi nhóm với bạn bè.
Tư duy máy tính
Computer thinking
Lõi của yêu cầu năng lực tin học
đối với HS chính là “Tư duy máy
tính”
Tư duy máy tính?
 Học sinh cần được trang bị Tư duy máy tính để
nâng cao và hoàn thiện năng lực Tin học của
mình. Dùng Tư duy máy tính để biến các bài
toán, vấn đề phức tạp trên thực tế thành những
bài toán mà máy tính có thể tư duy để hiểu và giải
được.
 Các yếu tố của tư duy máy tính:
 Suy nghĩ logic (hợp lý), biết chia nhỏ bài toán.
 Sử dụng tuần tự các bước thuật toán.
 Tư duy trừu tượng hóa thông qua các đại diện, thể hiện
của vấn đề, dữ liệu.
 Biết cách tổng quát hóa vấn đề thông qua các mẫu.
 Khả năng đánh giá, điều chỉnh.
Scratch Cơ bản
Giới thiệu giao diện
Scratch
1
Các khái niệm cơ bản.
Mô tả giao diện màn hình.
Nhân vật (Sprite) và Câu lệnh
(Script)
Thực đơn và thanh hệ thống Nút trợ giúp
nhanh Nút trợ giúp

Sân khấu chính

Cửa sổ lệnh

Nhân vật

Khu vực tạo nhân


vật và hình nền Khung
điều khiển
Thực đơn và thanh hệ thống Tên người truy cập

Sân khấu chính

Cửa sổ lệnh

Nhân vật

Khu vực tạo nhân Khung


vật và hình nền điều khiển Backpack
Các khái niệm cơ bản

 Sân khấu
 Nhân vật
 Khung điều khiển
 Khung nhân vật
 Cửa sổ câu lệnh
 Thực đơn hệ thống
Sân khấu
Khung điều khiển

Khung chứa các Khung nhập và


mẫu lệnh. Các mẫu Khung chỉnh sửa chỉnh sửa âm
câu lệnh này được hình ảnh nhân thanh
dùng bằng cách vật và nền sân
kéo thả vào cửa sổ khấu
lệnh.
Khung các nút lệnh (Script)
Nút phân
loại câu
lệnh

Các mẫu
câu lệnh
Phân loại các câu lệnh

Motion Event

Look Control

Sound Sensing

Pen Operator

Data More Blocks


Phân loại các câu lệnh

Chuyển động Sự kiện

Ngoại hình Điều khiển

Âm thanh Cảm biến

Bút vẽ Phép toán

Dữ liệu Thêm khối


Khu vực làm việc với trang phục
Khu vực làm việc với âm thanh
Khu vực làm việc nhân vật, nền
Thực đơn và thanh hệ thống Tên người truy cập

Sân khấu chính

Cửa sổ lệnh

Nhân vật

Khu vực tạo nhân Khung


vật và hình nền điều khiển Backpack
Khu vực câu lệnh (Script)

Cửa sổ câu
lệnh của nhân
vật đang chọn

Mỗi nhân vật sẽ có 1 cửa sổ câu


lệnh riêng. Mỗi dãy câu lệnh
(Script) bao gồm 1 số lệnh được
sắp xếp theo thứ tự.
Chương trình Scratch
 Là 1 tổ hợp các hoạt động của các nhân vật
và sân khấu thông qua cửa sổ lệnh và quan
hệ giữa các nhân vật.
Lệnh trong Scratch

Tham số của lệnh


Nhóm các lệnh, đoạn lệnh

Các lệnh này


được kết nối
chặt với
nhau theo 1
thứ tự xác
định
Chương trình hoàn chỉnh
1 đoạn chương trình bắt
đầu bằng lệnh này sẽ tạo
thành 1 chương trình hoàn
chỉnh trên Scratch
Các ví dụ đầu tiên
Bài toán: thiết lập 1 nhân vật là 1
bạn nam hoặc nữ, và cho nhân
vật này nói hoặc chuyển động
theo ý muốn.
tạo 1 nhân vật mới là 1 học sinh, cho
Ví dụ 1: học sinh này chuyển động 1 vòng
xung quanh sân khấu
 Chọn thêm 1  Kéo thả và nhập
nhân vật, đưa tham số cho các
về góc trái dưới câu lệnh sau:
Bổ sung thêm nhân vật Alex, cho Mèo và
Ví dụ 2: Alex cùng chào hỏi.

 Bổ sung  Bổ sung  Kéo thả và thực


thêm Alex thêm nền hiện lệnh.
sân khấu
Các lệnh chuyển động
2
Chuyển động
Nhóm lệnh chuyển động (motion) là
quan trọng nhất và hay sử dụng
nhất trong Scratch. Nhóm này bao
gồm các lệnh điều khiển nhân vật
chuyển động trên màn hình.
Tọa độ sân khấu, hướng
chuyển động
Tọa độ, kích thước sân khấu
Y
180
x: -240, y: 180 x: 240, y: 180

-240 240 X
x: 0, y: 0

x: -240, y: -180 x: 240, y: -180


-180

Kích thước sân khấu: 480 x 360


Các lệnh chuyển động liên quan
đến tọa độ sân khấu
Di chuyển nhanh đến tọa độ (X,Y)

Di chuyển chậm đến tọa độ


(X,Y) trong <t> giây.

Thiết lập và thay đổi tọa độ X

Thiết lập và thay đổi tọa độ Y


Di chuyển nhanh vị
trí con trỏ

Di chuyển nhanh vị
trí ngẫu nhiên

Di chuyển nhanh vị
trí của 1 nhân vật
Hướng nhân vật
Hướng - direction
Mỗi nhân vật có hướng của
mình.

 Mỗi nhân vật luôn nhìn về hướng của mình.


 Lệnh move sẽ cho nhân vật di chuyển theo
hướng của mình.
 Các lệnh turn sẽ giúp nhân vật quay hướng của
mình theo 1 góc nhất định.
 Lệnh điều khiển nhân vật gặp
cạnh sẽ bật lại theo hướng đối xứng.
Một số lệnh điều khiển hướng
Thiết lập hướng theo tham số cụ
thể.

Quay sang phải, trái 1 góc cố


định ghi trong tham số lệnh.

Quay hướng về con


trỏ chuột.

Quay hướng về 1
nhân vật.
tạo 1 nhân vật mới là con cánh cam,
Ví dụ 1: cho con cánh cam chuyển động
xung quanh sân khấu
 Chọn thêm 1  Kéo thả và các câu
nhân vật, đưa lệnh sau cho nhân vật
về góc trái dưới này.
tạo 1 nhân vật mới là 1 học sinh, cho
Ví dụ 2: học sinh này chuyển động 1 vòng
xung quanh sân khấu
 Chọn thêm 1  Kéo thả và nhập
nhân vật, đưa tham số cho các
về góc trái dưới câu lệnh sau:

Phương án 1

Phương án 2
Tốt hơn
Điều khiển con mèo chạy từ bên cạnh
Ví dụ 3: trái sang cạnh phải và ngược lại, mỗi lần
gặp cạnh thì kêu “meo meo” và quay
chạy về phía ngược lại. Lặp lại vài lần.
 đưa con mèo về  Kéo thả và nhập
cạnh trái tham số cho các
câu lệnh sau:
4 lệnh điều khiển hay sử dụng

Chờ theo thời gian tính


bằng giây.Cho phép nhập
số thập phân. Ví dụ: chờ Lệnh lặp với số
0.3 giây. lần xác định.

Lệnh thực hiện có điều


Lệnh lặp với số lần
kiện. Nếu <điều kiện> vô hạn, không xác
đúng thì thực hiện định.
<lệnh>.
Lệnh cảm biến va chạm khi
chuyển động
va chạm với con trỏ chuột (hay
di chuyển chuột lên nhân vật).

va chạm với cạnh màn hình.

va chạm với các nhân vật khác


trên sân khấu.
Chuyển động có điều kiện
 Chuyển động theo hiệu lệnh (Key pressed).
 Chuyển động vô hạn
 Chuyển động khi gặp sự kiện khác.
 Chuyển động va chạm với các nhân vật
khác.
Bài tập 1: Mèo chạy

 Cho con mèo chạy vô hạn trên sân


khấu, mỗi khi gặp cạnh thì kêu meo
meo và quay lại, chạy tiếp.
 Ghi lại với tên tệp B2.Bai1.sb2
Bài tập 2: Mèo, Chó chạy

 Cho con mèo và chó cùng xuất hiện,


quay về 1 hướng ngẫu nhiên và chạy
vô hạn trên sân khấu, mỗi khi gặp
cạnh thì kêu meo meo và quay lại,
chạy tiếp.
 Ghi lại với tên tệp B2.Bai2.sb2
Bài tập 3: Mèo đuổi chuột
 Bổ sung 1 chú Chuột. Chuột chạy
ngẫu nhiên vô hạn xung quanh sân
khấu.
 Dùng các phím lên, xuống, phải, trái
để điều khiển Mèo đuổi chuột. Nếu
Mèo bắt được chuột thì kêu meo meo.
 Ghi lại với tên tệp B2.Bai3.sb2
Bài tập 4: 4 con vật chạy nối nhau

 Tạo 4 con vật: Mèo, Chó, Chuột,


Cánh cam ban đầu đứng cuối màn
hình, sau đó sẽ chạy vòng quanh sân
khấu theo chiều ngược kim đồng hồ,
con nọ nối đuôi con kia.
 Ghi lại với tên tệp B2.Bai4.sb2
Bài tập 5: Trò chơi thả bóng
 1 quả bóng rơi từ trên trần xuống.
 Em cần điều khiển 1 thanh ngang để chặn quả
bóng không để rơi xuống dưới. Quả bóng gặp
thanh ngang thì bật lên với góc nằm trong -15
đến 15 độ.
 (Nếu để bóng rơi xuống dưới thì thua, dừng
chương trình).
 Ghi lại với tên tệp B2.Bai5.sb2
Bài tập 6: tập chuột đánh bóng
 Thiết lập 3 nhân vật là các quả bóng bay có màu
sắc khác nhau. Khi bắt đầu chương trình các
quả bóng này xuất hiện phía dưới màn hình và
bay lên trên. Nếu bóng gặp cạnh trên thì xuất
hiện lại phía dưới.
 Người dung cần nháy choột nhanh lên các quả
bóng này.
 Nếu nháy đúng quả bóng sẽ có tiếng kêu pop và
quả bóng biến mất sau 1 giây thì xuất hiện lại
phía dưới.
 Ghi tệp với tên B2.Bai6.sb2.
Âm thanh - Sound
3
Nhân vật và Sân khấu đều có
thể phát âm thanh
 Mỗi nhân
vât, Sân
khấu cho
phép tạo
và gắn kết
với nhiều
âm thanh.
Bổ sung âm thanh
Bổ sung âm thanh Bổ sung âm thanh
từ tệp âm thanh đã
từ kho có sẵn của bằng cách thu âm

Scratch trực tiếp

Thu âm trực tiếp và


tinh chỉnh âm thanh.
Nhân vật và Sân khấu đều có
thể phát âm thanh
Phát âm thanh đồng thời
chạy lệnh tiếp theo.

Phát âm thanh cho đến hết


mới chạy lệnh tiếp theo.

Dừng tất cả các âm thanh


đang bật trên màn hình và
chuyển lệnh tiếp theo.
Bài tập 1
 Viết chương trình thực hiện cuộc hội thoại
bằng âm thanh giữa 2 nhân vật Lan và Hùng
như sau:
 Lan: Chào bạn Hùng.
 Hùng (sau 1 giây): Chào Lan, bạn đi đâu đấy.
 Lan (sau 1 giây): Tôi đi học, còn bạn đang đi
đâu?
 Hùng (sau 2 giây): Tớ đi chơi đá bóng.
 Hai bạn này vừa nói bằng âm thanh vừa hiện
chữ trên màn hình (bằng lệnh say).
Bài tập 2
 Viết chương trình thực hiện cuộc hội thoại
bằng âm thanh như sau giữa 2 nhân vật Lan
và Hùng như sau:
 Lan: Chào bạn Hùng. Tôi hát cho bạn nghe nhé.
 Hùng (sau 1 giây): Ừ, ít thôi nhé.
 Lan (sau 1 giây): (Lan hát 1 bài hát dài).
 Hùng (sau 3 giây): Thôi, bạn thôi đi, tớ đi đây.
 Sau khu Hùng nói câu đó thì Lan cũng dừng
hát bài hát đang hát dở.
Nhạc và trống
Nhịp trống và lệnh gõ trống
 Nhịp, hay nhịp trống (beat) là 1 đơn vị thời
gian tính bằng 1 nhịp cơ bản (= 1 nốt đen).
Nhịp trống (beat) đóng vai trò cơ bản trong
các lệnh liên quan đến trống và nhạc.

Số lượng nhịp trống


trong 1 giây (beat per
minute)
Lệnh gõ trống
 Lệnh play drum sẽ

Chọn bộ gõ trống
tại đây.

Chọn nhịp
trống tại đây.
Các loại trống
Chơi, đánh nhạc
 Nhịp trống (beat) sẽ dung làm cơ sở cho nhịp
/ phách của bản nhạc.
 1 beat = 1 nốt đen
Cao độ nốt nhạc

Trường độ nốt
nhạc
Cao độ nốt nhạc
Trường độ nốt nhạc

Khoảng lặng Trường độ nghỉ


Các loại nhạc cụ chơi nhạc
Ví dụ:
Bài tập 3:

 Bổ sung nhân vật Anh hip hop, đưa vào


1 sân khấu đẹp.
 Cho anh hip hop vừa múa vừa nhảy vừa
chạy đi chạy lại trong nhịp trống của sân
khấu.
 Ghi lại với tên tệp Bai3.3.sb2
Bài tập 4: Hai người cùng nhảy
 Bổ sung nhân vật Anh hip hop, đưa vào 1 sân
khấu đẹp.
 Bổ sung thêm nhiều nhân vật khác để cùng nhảy.
 Cho các nhân vật vừa múa vừa nhảy trên nền
nhịp trống và chạy đi chạy lại trên sân khấu.
 Ghi lại với tên tệp Bai3.4.sb2
Bài tập 5: Chơi đàn đơn giản

 Viết đoạn chương trình chơi 8 nốt: đồ,


rê, mi, pha, son, la, si, đô một vài lượt.
 Ghi lại với tên tệp Bai3.5.sb2
Bài tập 6: Viết 1 đoạn nhạc
Người Hà Nội
 Viết đoạn chương trình 2 nhịp đầu bài
hát Người Hà nội
 Ghi lại với tên tệp Bai3.6.sb2
Bài tập 7:
 Viết
chương
trình bài hát
hoàn chỉnh:
Chúc mừng
sinh nhật
 Ghi lại với
tên tệp
Bai3.7.sb2
Vẽ đồ họa
4
Một số nguyên tắc cho vẽ hình
 Khi nhân vật chuyển động, nếu chế độ đặt bút là
Pen down thì bút sẽ vẽ quĩ đạo chuyển động của
nhân vật trên màn hình theo thuộc tính của bút
(pen).
 Thuộc tính của bút bao gồm:
 Màu sắc (Color).
 Kích thước nét bút (Size).
 Kiểu tô màu (Shape).
 Lệnh Stamp sẽ vẽ lên màn hình 1 hình ảnh nhân
vật tại vị trí hiện thời.
 Lệnh Clear sẽ xóa toàn bộ các nét vẽ và Stamp trên
màn hình.
Các lệnh liên quan đến đồ họa
 Hạ bút
 Nâng bút
 Thiết lập stamp.
 Thay đổi màu bút theo ---
 Thiết lập màu bút theo ---
 Thay đổi kiểu tô màu ---
 Thiết lập kiểu tô màu ---
 Thay đổi nét bút theo ---
 Thiết lập nét bút theo ---
 Hủy tất cả các hiệu ứng đồ họa
Ví dụ 1:
 Cho nhân vật chuyển đông và để lại vết của mình
 Vẽ hình vuông
 Vẽ tam giác đều
Ví dụ 2: Vẽ đa giác đều (tổng quát)
 Thiết lập 1 nhân vật mới và thực hiện theo sơ đồ
sau:
Ví dụ 3: Vẽ vòng tròn
 Thiết lập 1 nhân vật mới và thực hiện theo sơ đồ
sau:
Ví dụ 4: Vẽ trái đất chuyển động
 Tạo ra 3 đối tượng sau:
Bài tập 1: Vẽ hình tam giác
đều, hình vuông

 Thiết lập chế độ bút vẽ màu xanh lá


cây
 Vẽ hình tam giác đều, hình vuông
 Ghi lại với tên tệp Bai7.sb2
Bài tập 2: Thiết lập bút vẽ

 Thiết lập bút vẽ với tâm ở đầu bút


 Điều khiển bút vẽ bằng chuột
 Phím Space dùng để bật chế độ vẽ
 Phím z để tạm dừng vẽ

 Phím 0 để xóa tất cả


 Ghi lại với tên tệp Bai8.sb2
Bài tập 3: Vẽ hình tròn

 Vẽ hình tròn với bán kính khác nhau


 Vẽ hình bông hoa với 4, 5, .. hình tròn
nhỏ
 Ghi lại với tên tệp Bai9.sb2
Hội thoại
5
Một số lệnh hội thoại
 Nói --- trong – giây.
 Nói ---- (không tg)
 Nghĩ --- trong --- giây
 Nghĩ --- (không tg)

 Phát âm thanh ---


 Phát âm thanh --- cho
đến khi xong
Ví dụ 1: Câu lệnh chào hỏi
Ví dụ 2: Hội thoại đơn giản
Hội thoại nhân vật –
người sử dụng
Hội thoại người – máy tính
Ví dụ:

Người dùng trả lời tại


đây, kết quả ghi vào
biến nhớ answer
Biến nhớ
Khái niệm biến nhớ
 Biến nhớ là 1 vùng bộ nhớ, được đặt 1 tên
cố định và dung để lưu trữ các giá trị cần
thiết khi tính toán trong lập trình.
 Người lập trình có thể tạo ra nhiều biến nhớ
để sử dụng.
Một số lệnh với biến nhớ

 Gán 1 giá trị cho biến nhớ.


 Thay đổi giá trị biến nhớ
 Hiện giá trị biến nhớ
 Ẩn giá trị biến nhớ
Giáo viên yêu cầu HS nhập 2 số, sau
Ví dụ 1: đó tính tổng và hiện trên màn hình

 Tạo 3 biến nhớ  Tạo Script tương tự sau:


n1, n2, gdc
Giáo viên yêu cầu HS nhập 2 số, sau
Ví dụ 2: đó tính ƯSCLN hai số trên và hiện
trên màn hình
 Tạo 3 biến nhớ  Tạo Script tương tự như
n1, n2, gdc bài trước, đoạn lệnh tính
ƯSCLN như sau:
Các tính chất của biến nhớ
 Nhân vật và sân khấu đều có thể tạo được
biến nhớ.
 Biến nhớ được chia làm 2 loại: biến nhớ tổng
thể và biến nhớ riêng (Global & Local)
 Biến nhớ chung: Tất cả đều được quyền sử dụng,
khai thác, thay đổi, xóa.
 Biến nhớ riêng (chỉ có nhân vật được phép tạo
biến nhớ riêng). Các nhân vật khác chỉ được
phép khai thác, không được phép thay đổi.
 Biến nhớ riêng có thể coi là 1 thuộc tính của nhân
vật.
Cảm biến trong
Scratch
6
Cảm biến
Cảm biến là gì ?

 Cảm biến – Sensing là các lệnh liên quan


đến việc nhận biết, cảm biến theo các thông
tin bên ngoài khi tác động vào nhân vật. Ví
dụ:
 Khoảng cách: khi vào gần 1 vật thì cảm nhận
được và lùi lại.
 Khi nghe 1 âm thanh quá to thì điếc tai.
 Nhìn màu sắc cảm nhận không đẹp.
Phân loại cảm biến
 Hội thoại người – máy tính
 Cảm biến màu sắc
 Cảm biến va chạm
 Cảm biến khoảng cách
 Cảm biến bàn phím và chuột
 Cảm biến thời gian
 Cảm biến âm thanh
 Cảm biến nhân vật
Một số lệnh cảm biến
 tiếp xúc va chạm với
 tiếp xúc với màu sắc
 Màu ... đã tiếp xúc với màu
 Hỏi và đợi trả lời
 Khoảng cách đến
 Phím <key> đã nhấn chưa?
 Đã nháy chuột chưa?
 Vị trí x của chuột
 Vị trí y của chuột
 Giá trị thời gian hiện thời
 Reset thời gian
Ví dụ 1: chuyển động có điều
kiện cảm biến  Vẽ trên sân khấu 1
vạch đỏ. Cho mèo
chuyển động và tự
nhận biết dừng khi
gặp vạch đỏ.

Lệnh cảm biến


màu sắc
Ví dụ 2: cảm biến tiếp xúc
 2 nhân vật Chó và mèo chuyển
động ngẫu nhiên trên sân khấu
nhưng tránh va vào nhau. Viết 2
script riêng cho chó và mèo.
Ví dụ 3: cảm biến bàn phím
 Sử dụng các phím để điều khiển
chuyển động của mèo đuổi chuột
Bài tập 1: Mèo ăn táo

 Điều khiển Mèo bằng bàn phím sao cho ăn được


quả táo ở góc phải dưới màn hình.
 Trên đường đi không được chạm vào các
chướng ngại vật có màu sắc khác nhau.
 Nếu chạm vào chướng ngại vật thì thua, dừng
chơi.
 Nếu ăn được táo thì thắng, dừng chơi.
Bài tập 2: Mèo đuổi chuột

 Điều khiển Mèo bằng bàn phím sao cho đuổi


được chuột.
 Chuột chạy ngẫu nhiên trên màn hình, gặp
cạnh thì quay lại.
 Nếu nhìn thấy Mèo ở gần thì quay đầu chạy.
Bài tập 3: Đồng hồ đơn giản

 Mô tả đồng hồ có đủ kim giờ, kim phút, kim


giây thể hiện theo thời gian thật (có thể
không hoàn toàn chính xác tuyệt đối)
Các cấu trúc điều khiển 7
Cấu trúc điều khiển
trong Scratch
Chương trình Scratch
 Là 1 tổ hợp các hoạt động của các nhân vật
và sân khấu thông qua cửa sổ lệnh và quan
hệ giữa các nhân vật.
Cấu trúc điều khiển chung (1)
 Mỗi nhân vật và sân
khấu có 1 cửa sổ
lệnh (script window)
riêng. Các cửa sổ
lệnh này chạy song
song và chỉ quan hệ
với nhau thông qua
hệ thống thông điệp
(message) và hệ
thống biến nhớ
chung.
Cấu trúc điều khiển chung (2)
 Trong mỗi cửa sổ
lệnh lại có thể có
nhiều chương trình
chạy song song.
 Các chương trình này
chỉ có thể kết nối với
nhau thông qua thông
điệp (message) hoặc
hệ thống biến nhớ.
Các lệnh điều khiển
Chương trình sẽ tạm dừng trong <1> giây.
Nhóm lệnh trong khung sẽ thực hiện lặp <10> lần.
Nhóm lệnh trong khung sẽ thực hiện lặp vô hạn lần.
Lệnh điều khiển có điều kiện If. Nếu điều kiện trong
biểu thức lệnh là Đúng thì nhóm lệnh trong khung sẽ
được thực hiện.
Lệnh điều khiển rẽ nhánh If-then-else. Nếu điều kiện
trong biểu thức lệnh là Đúng thì nhóm lệnh trong
khung trên sẽ được chạy, ngược lại nếu điều kiện trong
biểu thức lệnh là Sai thì nhóm lệnh trong khung dưới
(else) sẽ được chạy.
Lệnh "dừng cho đến khi". Chương trình sẽ tạm dừng
cho đến khi điều kiện trong biểu thức có giá trị Đúng.
Lệnh "lặp cho đến khi". Nhóm lệnh trong khung sẽ
được thực hiện lặp lại cho đến khi điều kiện trong biểu
thức lệnh trả lại giá trị Đúng.
Lệnh "dừng chạy". Lệnh này sẽ dừng chạy theo các khả
năng lựa chọn từ ô bên phải. Có thể chọn "all" - dừng
tất cả các chương trình; "this script" - chỉ dừng chương
trình hiện tại; "other scripts in sprite" - dừng tất cả các
chương trình khác của nhân vật hiện thời.
Lệnh wait ...
 Lệnh này sẽ làm cho
đoạn chương trình hiện
thời tạm dừng trong 1
khoảng thời gian tính
theo giây.
 Chú ý: các chương trình
song song khác không
ảnh hưởng.
Lệnh lặp repeat ...
Giá trị số lần
cần lặp
 Chức năng:
 Thực hiện nhóm lệnh
trong khung lệnh đúng
bằng số lần ghi trong
tham số của lệnh. Tham
Nhóm lệnh lặp số này phải là 1 số
nguyên.
Lệnh lặp vô hạn

 Chức năng: thực hiện


lặp vô hạn lần nhóm lệnh
nằm trong phạm vi của
lệnh này.
Nhóm lệnh lặp  Chú ý: lệnh này chỉ dừng
khi có 1 lệnh gọi bên
trong nhóm lệnh trên.
Lệnh if ... then...
Biểu thức
logic trong Chức năng: kiểm tra điều
lệnh Nhóm lệnh kiện của lệnh.
 Nếu đúng: thực hiện
nhóm lệnh.
 Nếu sai: bỏ qua lệnh
này, thực hiện lệnh tiếp
theo (nếu có).
Lệnh if ... then...else
Biểu thức
logic trong
lệnh Nhóm lệnh 1
Chức năng: kiểm tra
điều kiện của lệnh.
 Nếu đúng: thực
hiện nhóm lệnh 1.
 Nếu sai: thực hiện
nhóm lệnh 2.
Nhóm lệnh 2
Lệnh wait until

 Chức năng: tạm dừng


đoạn chương trình hiện
thời cho đến khi giá trị
biểu thức logic có trong
lệnh có giá trị đúng.
Biểu thức logic
 Chú ý: lệnh này không
trong lệnh có tác dụng lên các
chương trình hoặc đoạn
chương trình song song
khác.
Lệnh repeat until
Lặp có điều kiện
Biểu thức logic
 Chức năng: thực
trong lệnh hiện liên tục, lặp lại
nhóm lệnh bên
trong vòng lặp cho
đến khi giá trị biểu
thức có giá trị đúng
(thì dừng).
Nhóm lệnh sẽ  Chú ý: kiểm tra điều
được lặp
kiện trước, thực
hiện sau.
Lệnh stop
Lệnh dừng chương trình, có
3 phương án:
 all: dừng toàn bộ chương
trình Scratch.
 this script: chỉ dừng đoạn
chương trình chứa lệnh
này.
 other script in sprite:
dừng tất cả các đoạn
chương trình khác của
nhân vật này / sân khấu
này.
Các chương trình song song
 Các cửa sổ lệnh của nhân vật, sân khấu
chạy song song.
 Trên 1 cửa sổ lệnh, các nhóm lệnh xếp nhóm
sau các lệnh sự kiện When sẽ chạy song
song. Các lệnh này được kích hoạt khi có 1
sự kiện nào đó xảy ra.
Bài tập 1: Kiểm tra bài HS
 Nhân vật: thầy giáo và học sinh.
 Thầy sẽ ra 1 câu hỏi, ví dụ: em hãy viết, nhập
1 số chẵn và chia hết cho 3.
 Nếu HS nhập đúng thì thấy khen: Em làm đúng
rồi, giỏi lắm và dừng chương trình.
 Nếu HS nhập sai, thầy nói: Em làm sai rồi. Em
phải làm lại. Đợi sau 2 giây, thầy sẽ hỏi lại câu hỏi
trên. Quá trình này cứ tiếp tục.
 Nâng cao hơn (không bắt buộc): chuẩn bị
trước 3 bài tập, thầy sẽ hỏi ngẫu nhiên trong
3 câu hỏi đó.
Bài tập 2: Vẽ tự do
 Nhân vật chính: cái bút chì với tâm ở đầu
bút. Màu sắc mặc định: màu đỏ.
 Khi di chuyển chuột, đầu bút luôn dính vào
con trỏ chuột.
 Phím Space để bật/ tắt chế độ vẽ.
 Phím Z để dừng toàn bộ chương trình.
 Phím X, D, T, V để chuyển màu vẽ sang
xanh, đỏ, tím, vàng
 Phím mũi tên lên, xuống để tăng, giảm độ
rộng nét bút.
 Phím C sẽ xóa toàn bộ màn hình.
Bài tập 3: Trò chơi thả bóng
 Nhân vật: quả bóng, thanh ngang.
 Dùng phím phải trái để điều khiển thanh ngang
sang phải, trái. Quả bóng rơi từ trần xuống, gặp
thanh ngang thì bật lên với góc nằm trong -15 
15 độ.
 Nếu để bóng rơi xuống phía dưới thanh ngang mất
1 lượt, khi đó bóng sẽ tự động xuất hiện từ phía
trên.
 Nếu bị mất 5 lượt bóng thì thua, dừng chương
trình.
 Nâng cao về nhà: tạo thêm 1 biến nhớ ghi điểm
người chơi. Nếu chặn bóng 1 lần: tăng 1 điểm.
Bài tập 4: Trò chơi tập chuột
 Trên màn hình xuất hiện ngẫu nhiên các quả bóng
màu xanh, đỏ, vàng. Mỗi lần xuất hiện chỉ trong 0.5
giây và lại xuất hiện tại 1 vị trí khác. Khi xuất hiện
chúng có thể có kích thước khác nhau.
 Người chơi cần nhanh tay nháy lên các quả bóng
trên. Nếu click đúng bóng thì được sẽ xuất hiện
tiếng kêu “pop”, quả bóng sẽ biến mất, sau đó lại
xuất hiện ở vị trí khác.
 Số lượng quả bóng bị đánh trúng sẽ thể hiện ngay
trên màn hình.
 Thời gian chơi giới hạn đúng 1 phút. Sau 1 phút sẽ
xuất hiện 1 thầy giáo thông báo số bóng đã đánh
Biến nhớ và dữ liệu 8

Bùi Việt Hà, habuiviet@gmail.com,


Biến nhớ và dữ liệu
Sân khấu
Chúng ta
có thể lập
trình để
điều khiển
2 loại đối
tượng
chính trong
Scratch:
Nhân vật và
Sân khấu.

Nhân vật
Biến nhớ
Biến nhớ là 1 vùng trong bộ nhớ
dung để lưu trữ dữ liệu, hỗ trợ
quá trình điều khiển chương
trình.
Mỗi biến nhớ có 1 tên riêng.
Lệnh làm việc với biến nhớ
Phân loại biến nhớ
 Biến nhớ có 2 loại:
biến đơn, biến List
(mảng, danh sách).
Nhân vật được phép khởi  Biến đơn (variable)
tạo cả 2 loại biến nhớ.
chỉ có 1 giá trị.
 Biến List có nhiều giá
trị: 1 dãy các giá trị.
Còn được gọi là danh
sách, mảng.
Sân khấu được phép khởi
tạo cả 2 loại biến nhớ.
Biến nhớ chung và riêng (biến đơn)
 Biến nhớ chung (for
all, global) được khởi
tạo để dung chung
Mỗi nhân vật được khởi tạo cả cho tất cả nhân vật và
biến nhớ chung và biến nhớ riêng.
sân khấu.
 Biến nhớ riêng chỉ
dành cho nhân vật.
Các nhân vật khác
hoặc sân khấu sẽ khai
Sân khấu chỉ được khởi tạo thác biến riêng thông
biến nhớ chung, không được
phép tạo biến nhớ riêng.
qua thuộc tính của
nhân vật.
Khai thác biến nhớ chung và riêng
Biến nhớ chung

Biến nhớ riêng


Các tính chất của biến nhớ
 Nhân vật và sân khấu đều có thể tạo được biến
nhớ.
 Biến nhớ được chia làm 2 loại: biến nhớ chung,
tổng thể và biến nhớ riêng (Global & Local)
 Biến nhớ chung: Tất cả đều được quyền sử dụng, khai
thác, thay đổi, xóa.
 Biến nhớ riêng (chỉ có nhân vật được phép tạo biến
nhớ riêng). Các nhân vật khác chỉ được phép khai
thác, không được phép thay đổi. Nhân vật khác sẽ khai
thác biến nhớ riêng thông qua hàm thuộc tính của
nhân vật.
Biến nhớ trong Scratch

Nhân vật
Sân khấu

Biến nhớ Biến nhớ Biến nhớ Biến nhớ


chung riêng chung riêng
Biến nhớ đơn Biến nhớ List
Biến nhớ chung
 Tất cả các biến nhớ chung
phải có tên khác nhau.
Nhân vật  Tất cả mọi nhân vật, sân
khấu đều có thể thực hiện
các thao tác sau trên biến
nhớ chung:
 Khai thác, lấy dữ liệu.
Sân khấu  Thay đổi, cập nhật dữ liệu.
 Cho phép ẩn, hiện trên sân
khấu tại bất cứ vị trí nào.
Biến nhớ riêng
 Chỉ nhân vật mới tạo được
biến nhớ riêng.
 Biến nhớ riêng của 2 nhân
Nhân vật vật có thể trùng tên.
 Chủ của biến nhớ được phép
thực hiện mọi thao tác như
ẩn, hiện, thay đổi giá trị.
 Nhân vật, sân khấu không
phải là chủ thì chỉ có thể khai
Sân khấu
thác biến nhớ riêng thông qua
hàm thuộc tính của nhân vật.
Một số lệnh với biến nhớ
 Gán 1 giá trị cho biến nhớ.
 Thay đổi giá trị biến nhớ
 Hiện giá trị biến nhớ
 Ẩn giá trị biến nhớ

 Đổi tên biến nhớ.


 Xóa biến nhớ
Một số lệnh với biến List

 Bổ sung giá trị vào danh sách


 Xóa 1 phần tử của DS
 Chèn giá trị vào 1 vị trí trong
DS
 Thay giá trị 1 phần từ trong
DS bằng giá trị khác.
 Hiện thông tin 1 phần tử của
DS.
 Hàm kiểm tra 1 DS có chứa 1
Lệnh xóa biến
nhớ List
giá trị cho trước hay không?
Giá trị của biến nhớ
Mỗi biến nhớ có thể lưu trữ đồng thời 3
kiểu dữ liệu: số, xâu và logic
Số
12, 34, 1.5

Xâu kí tự
“Hà Nội”

Logic
true / false
Khai thác, sử dụng biến nhớ
trong các lệnh

Giá trị biến nhớ có thể


đưa vào bất cứ vùng dữ
liệu nào, bao gồm các
loại khung tròn, vuông,
hình trám
Các phép toán trên kiểu dữ liệu
 Phép toán với dữ liệu số
Phép cộng 2 số
Phép trừ 2 số hàm lấy số ngẫu nhiên
Phép nhân 2 số
Phép chia 2 số,
kết quả thập các hàm số cụ thể trong
phân Scratch

Số dư của phép chia


2 số nguyên
Làm tròn số nguyên
gần nhất.
Các phép toán trên kiểu dữ liệu
 Phép toán với dữ liệu số

Làm tròn lên số nguyên gần nhất.

Làm tròn xuống số nguyên gần


nhất.
Các phép toán trên kiểu dữ liệu
 Phép toán với dữ liệu xâu ký tự

Nối 2 xâu

hàm lấy độ dài xâu ký tự

hàm lấy 1 ký tự của xâu


Các phép toán trên kiểu dữ liệu
 Phép toán với dữ liệu logic

Biểu thức logic < Phép toán và logic


Phép toán hoặc
Biểu thức logic > logic
Phép toán phủ định
Biểu thức logic = logic
Bài tập 1: Trò chơi đánh bóng
 Trên màn hình xuất hiện ngẫu nhiên các quả bóng
màu xanh, đỏ, vàng. Mỗi lần xuất hiện chỉ trong 0.5
giây và lại xuất hiện tại 1 vị trí khác.
 Người chơi cần nhanh tay nháy lên các quả bóng
trên. Nếu click đúng bóng thì sẽ xuất hiện tiếng kêu
“pop”, quả bóng sẽ biến mất, sau đó lại xuất hiện ở
vị trí khác.
 Số lượng quả bóng bị đánh trúng sẽ thể hiện ngay
trên màn hình.
 Thời gian chơi giới hạn đúng 1 phút. Sau 1 phút sẽ
xuất hiện 1 thầy giáo thông báo số bóng đã đánh
trúng.
Bài tập 2: Đọc thời gian
 Viết chương trình hiện trên màn hình dòng
chữ mô tả thời gian hiện thời thông qua lời
nói của nhân vật.
 Thời gian chính xác hiện nay là:
15 giờ, 23 phút, 15 giây.
Thứ ba, ngày 20 tháng 6, năm 2016.
 Sử dụng biến nhớ thể hiện đồng hồ thời gian
liên tục trên màn hình, ví dụ:
 Năm: 2016 ngày: 20 tháng: 6 Thứ: ba
15 giờ, 23 phút, 15 giây.
Bài tập 3: Mô phỏng đồng hồ giây
 Viết chương trình mô phỏng đồng hồ giây có
đủ kim giây, phút, giờ chạy chính xác.
Bài tập 4: Trò chơi tập chuột
 Trên màn hình xuất hiện ngẫu nhiên các quả bóng
màu xanh, đỏ, vàng. Mỗi lần xuất hiện chỉ trong 0.5
giây và lại xuất hiện tại 1 vị trí khác. Khi xuất hiện
chúng có thể có kích thước khác nhau.
 Người chơi cần nhanh tay nháy lên các quả bóng
trên. Nếu click đúng bóng thì được sẽ xuất hiện
tiếng kêu “pop”, quả bóng sẽ biến mất, sau đó lại
xuất hiện ở vị trí khác.
 Số lượng quả bóng bị đánh trúng sẽ thể hiện ngay
trên màn hình.
 Thời gian chơi giới hạn đúng 1 phút. Sau 1 phút sẽ
xuất hiện 1 thầy giáo thông báo số bóng đã đánh
Nhân vật, sân khấu, âm
thanh 9

Bùi Việt Hà, habuiviet@gmail.com,


Nhân vật, sân khấu,
âm thanh
Trang phục, nền sân khấu, âm thanh

Mỗi nhân vật có thể có 1 dãy các trang phục và âm


thanh kèm theo
Sân khấu cũng có thể có 1 dãy hình ảnh nền và âm
thanh kèm theo
Các lệnh với trang phục, nền
sân khấu
Các lệnh với âm thanh
Thông tin nhân vật
1. Thuộc tính riêng của
nhân vật
2. Trang phục
3. Âm thanh
4. Toàn bộ biến nhớ

5. Cửa sổ lập trình

Có thể lưu
lại và mở
ra sử dụng
Cửa sổ điều chỉnh đồ họa của
nhân vật và nền sân khấu
 Có 2 chế độ điều chỉnh đồ họa:
 Chế độ đồ họa vector
 Chế độ đồ họa Bitmap
 Chế độ Vector

 Chế độ Bitmap
Các lệnh chung

Công
cụ vẽ

Chọn chế độ
Chọn nét bitmap / vector
Chọn màu vẽ
bút vẽ
Công cụ
vẽ cho
chế độ
Bitmap

Công cụ
vẽ cho
chế độ
Vector
Một số kỹ thuật nhỏ
Tạo thêm 3 nút lệnh tương ứng với 3
Ví dụ 1: hình nền. Khi click lên nút thì hình
ảnh tương ứng xuất hiện.

 Tạo thêm 3  Tạo 3 Script tương ứng


nhân vật là nút với mỗi nút lệnh, ví dụ
lệnh như sau:
Ví dụ 2: Kỹ thuật tạo thuyết minh trong bảo
tàng

 Xử lý cảm biến  Xử lý khi nháy chuột lên


khi nháy chuột nhân vật.
lên 1 vùng màn
hình
Bài tập 1: Trình diễn, kể chuyện
 Thiết lập 1 câu chuyện thông qua 1 dãy các
hình ảnh nền, và có thể có âm thanh kèm
theo.
 Phần mềm lần lượt trình diễn các hình ảnh
nền, có âm thanh kèm theo, khi hết âm thanh
hoặc hết các yêu cầu thể hiện thì tự động
chuyển sang câu chuyện, hình ảnh tiếp theo.
 Có thể sử dụng 2 nút lệnh: Next và Previous
để chuyển qua lại giữa các phần của bài kể
chuyện.
Bài tập 2: Thăm bảo tàng
 Mô phỏng hoạt động của bảo tàng: mỗi bảo
tang có nhiều phòng trưng bày và các hiện
vật.
 Mỗi phòng trưng bày có 1 tên riêng và nhiều
đồ vật trong đó.
 Tại phòng đầu tiên sẽ có các biển chỉ đến
từng gian phòng, nháy lên các biển này để
vào từng phòng.
 Trong mỗi phòng, khi nháy lên hiện vật thì
hiện 1 khung mô tả ý nghĩa của hiện vật này.
Bài tập 3: Chim bay
 Mô phỏng chim bay trong thành phố.
 Các nhân vật: tòa nhà, mây, ... có nhiều trang
phục (hình ảnh) kèm theo.
 Nền trời xanh.
 Mô tả chuyển động tòa nhà, mây theo chiều
từ phải sang trái để tạo cảm giác chim đang
bay.
Thông điệp và truyền
thông 10

Bùi Việt Hà, habuiviet@gmail.com,


Thông điệp & truyền
thông trong Scratch
Truyền thông
Ý nghĩa của truyền thông
 Truyền thông là 1 trong những đặc tính hay
nhất và quan trọng nhất của Scratch.
 Thông qua khái niệm thông điệp (message),
gửi và nhận thông điệp sẽ giúp các nhân vật
và sân khấu trong chương trình có thể truyền
tin cho nhau tức thời, bảo đảm tính logic chặt
chẽ của các hoạt động trong chương trình.
 Hãy bắt đầu hiểu thông qua việc hội thoại
bình thường giữa người với người.
Mô hình truyền thông
Gửi thông điệp Nhận thông điệp, xử lý
Gửi thông điệp

Gửi thông điệp và


không cần chờ
phản hồi.
Thông điệp được
phát đi tức thời
Gửi thông điệp và
chờ thực hiện

Gửi thông điệp và


chờ cho đến khi có
phản hồi, tức là
cho đến khi có 1
lệnh

được thực hiện.


Thông điệp được
phát đi tức thời.
So sánh thông điệp và sử dụng
biến nhớ chung
Thông điệp Biến nhớ
 Truyền thông tin giữa các  Truyền thông tin giữa các
nhân vật và sân khấu. nhân vật và sân khấu.
 Tốc độ: tức thời.  Tốc độ: không tức thời,
 Thông điệp không có ý có thể trễ do việc gán giá
nghĩa giá trị. trị của biến nhớ và lệnh.
 Truyền nhiều thông tin có
ích.
Bài tập 1: bút vẽ tự do với
bảng màu
 Nhân vật chính: bút chì với tâm ở đầu bút.
 Phím <Space> dung để bật / tắt chế độ vẽ.
 Phím Up, Down dung để tăng / giảm nét bút
vẽ.
 Trên màn hình sẽ có 1 bảng màu. Nháy
chuột lên bảng màu để chọn màu. Ví dụ hình
ảnh 1 bảng màu.
Bài tập 2: Máy trợ giúp tính
toán
 Nhân vật: thầy giáo và 2
nút lệnh tính toán cho
phép cộng và trừ.
 2 biến nhớ cho phép
người dung thay đổi ngay
trên màn hình.
 Bấm nút để tính toán,
thầy giáo sẽ đưa ra kết
quả phép tính.
Bài tập 3: Đá penalty
 Trò chơi này có các nhân vật sau: Cầu thủ,
quả bóng và Thủ môn.
 Cầu thủ sẽ điều khiển hướng bóng và cố
gắng đá bóng vào gôn. Thủ môn sẽ cố gắng
bắt bóng.
 Cầu thủ điều khiển hướng bóng (góc hướng
bóng) và tiến hành sút (bằng cách nháy 1
nút). Thủ môn được điều khiển tự động để
bắt bóng.
 Nếu vào: thì có tiếng reo, nếu không có tiếng
la ó.
Thủ tục
11

Bùi Việt Hà, habuiviet@gmail.com,


Thủ tục trong Scratch
Procedure
Thủ tục là gì?
 Thủ tục là 1 nhóm các lệnh kết nối lại với
nhau để tạo ra 1 lệnh mới.
 Thủ tục được tạo riêng cho từng nhân vật,
sân khấu và không dung chung được.
 Thủ tục có 2 loại: có tham số và không có
tham số riêng.
 Thủ tục không có tham số sẽ tạo ra 1 lệnh mới
không có tham số.
 Thủ tục có tham số sẽ tạo ra các lệnh có tham số
đầu vào như nhiều lệnh khác trong Scratch.
Lệnh khởi tạo thủ tục riêng

 Lệnh: New Block


 Mỗi thủ tục là 1
nhóm lệnh
 Cho phép xác định
nhiều tham số đầu
vào cho thủ tục. Các
tham số này có thể
là: số, ký tự hoặc
logic (đúng/sai).
Ý nghĩa của thủ tục
 Thủ tục tạo ra các lệnh mới, làm cho hệ
thống lệnh của Sratch thêm phong phú.
 Một đoạn chương trình thay bằng 1 lệnh có
thể dung lại nhiều lần, tiết kiệm không gian
và câu lệnh.
 Tạo ra các mdule con, làm cho chương trình
chính trở nên sáng sủa, rõ ràng hơn.
 Đưa bài toán lớn thành các bài toán con và
giải quyết từng phần độc lập. Đây chính là 1
trong những tư duy cơ bản của người lập
trình.
Thủ tục không tham
số
Định nghĩa
thủ tục
không tham
số
Tên thủ tục xuất hiện
như 1 lệnh trong nhóm
More Blocks
Ví dụ 1: thủ tục tìm Max trong dãy

Tạo trước:
- Mảng Day_so
- Các biến nhớ:
Max, Stt
Định nghĩa thủ
tục Tìm Max như
hình bên.
Thủ tục có tham số
Thủ tục có tham số
Định nghĩa thủ tục (có
hoặc không có tham số)

Nội dung thủ đục


viết ngay phía dưới

Lời gọi thủ tục trong


Script (có tham số)
Ví dụ 2:
 Thủ tục vẽ 1 đa giác đều

Chú ý tham số trong


thủ tục có màu xanh
để phân biệt với biến
nhớ màu nâu
Ví dụ 3:
 Thủ tục vẽ 1 hình tròn biết tâm và bán kính
Chú ý quan trọng
 Nhân vật trong Scratch có thể lưu lại trong
các tệp dạng *.sprites2, trong tệp này sẽ lưu
trữ các thông tin:
 Toàn bộ các trang phục
 Toàn bộ các âm thanh
 Toàn bộ các biến nhớ, danh sách (chung và
riêng)
 Toàn bộ các thủ tục.
Bài tập 1: Viết các thủ tục sau
(không tham số):
 Thủ tục tính tổng của một dãy số cho trước
trong 1 biến nhớ dạng List.
 Thủ tục vẽ ngôi sao 5 cánh.
 Thủ tục vẽ tam giác đều, tứ giác đều, ngũ
giác đều.
 Thủ tục vẽ đường tròn lớn trên màn hình.
 Thủ tục vẽ đường tròn nhỏ trên màn hình.
Bài tập 2: Viết các thủ tục sau
có tham số.
 Thủ tục vẽ hình đa giác đều n cạnh, n là tham số
đầu vào.
 Thủ tục liệt kê tất cả các số lẻ < n với n là tham
số đầu vào.
 Thủ tục vẽ đường tròn với bán kính R cho trước
như tham số đầu vào.
 Thủ tục vẽ hình bông hoa n cánh với cánh là các
hình tròn nhỏ.
Bài tập 3: Chương trình vẽ vòng
tròn
 Trên màn hình có sẵn 1 biến nhớ R có thể
thay đổi ngay trên màn hình.
 Trên màn hình có 1 số nút tròn có màu sắc
khác nhau, khi nháy lên 1 nút thì màu sắc sẽ
thay đổi tại ô vuông bên cạnh.

 Khi nháy chuột lên màn hình, phần mềm sẽ


vẽ 1 đường tròn có tâm tại vị trí đã nháy
chuột và màu sắc trùng với màu đã chọn.
Xử lí số và xâu kí tự
12

Bùi Việt Hà, habuiviet@gmail.com,


Xử lý số và xâu ký tự
Xử lý số
Các phép toán với số
 Phép cộng 2 số
 Phép trừ 2 số

 Phép nhân 2 số
 Phép chia 2 số

 Tính số dư

 Làm tròn số
 Tính với hàm cụ thể
 Hàm lấy số ngẫu nhiên
Các hàm toán học trên số
 Phép toán với dữ liệu số

Làm tròn lên số nguyên gần nhất.

Làm tròn xuống số nguyên gần


nhất.
Các phép toán logic

 Phép so sánh <


 Phép so sánh =
 Phép so sánh >
 Phép toán và: AND
 Phép toán hoặc: OR
 Phép phủ định NOT
Giáo viên yêu cầu HS nhập 2 số, sau
Ví dụ 1: đó tính tổng và hiện trên màn hình

 Tạo 3 biến nhớ  Tạo Script tương tự sau:


n1, n2, gdc
Giáo viên yêu cầu HS nhập 2 số, sau
Ví dụ 2: đó tính ƯSCLN hai số trên và hiện
trên màn hình
 Tạo 3 biến nhớ  Tạo Script tương tự như
n1, n2, gdc bài trước, đoạn lệnh tính
ƯSCLN như sau:
Xử lý ký tự
Các phép toán với chữ và xâu

Kết nối 2 xâu

Lấy ký tự thứ (1) trong xâu

Độ dài xâu ký tự
Các phép toán logic này áp dụng
được cho cả xâu ký tự
 Phép so sánh <
 Phép so sánh =
 Phép so sánh >
 Phép toán và: AND
 Phép toán hoặc: OR
 Phép phủ định NOT
Ví dụ 3: Thiết lập 1 bài học tìm từ, so sánh 2
từ (xâu ký tự)
 Thiết lập nhân vật là GV điều
khiển lớp học. Thực hiện bài sau.
Ví dụ 3: Thiết lập 1 thủ tục thực hiện đảo
ngược 1 xâu ký tự cho trước. Đầu
vào là xâu Str, đầu ra là xâu Str1
Bài tập 1: Viết các chương
trình xử lý số và xâu ký tự sau.
 Cho trước xâu ký tự Str, viết chương trình kiểm tra
xem Str có phải là xâu nhị phân hay không? Thông
báo kết quả là Không hoặc Có.
 Cho trước xâu Str. Viết chương trình in ra xâu Str1
là hoán vị ngẫu nhiên của Str.
 Cho trước xâu Str. Viết chương trình nhập 2 số: vị
trí đầu và độ dài: index, d. In ra xâu ký tự con bắt
đầu từ vị trí index, và có độ dài d. Đáp án ghi vào
biết Str1.
Ví dụ: Str = Viet Nam Ha Noi, index = 3, d= 4.
Đáp số: r Na
Bài tập 2: Viết tiếp các chương
trình xử lý số, xâu sau.
 Cho trước xâu Str. Viết chương trình xóa đi
xâu con trong xâu Str với vị trí đầu và độ dài
cho trước: index, d. Đáp án ghi vào biến Str1.
 Cho trước xâu Str. Viết chương trình sinh ra
xâu Str1 chính là xâu Str nhưng theo thứ tự
ngược lại.
 Cho trước xâu Str, viết chương trình kiểm tra
xem xâu Str có phải là 1 từ đối xứng
(palindrome) hay không?
Bài tập 3: Trò chơi ghép từ
chính xác
 Phần mềm sẽ tự động sinh ra 2 xâu ký tự
W1, W2. Hai xâu này được lấy ra từ 1 từ
tiếng Anh gốc W.
 Người chơi phải nhập từ bàn phím từ tiếng
Anh gốc W. Nếu sai, phần mềm yêu cầu
nhập lại cho đến khi đúng thì thôi. Nếu đúng
phần mềm sẽ tự động sinh bài tập tiếp theo.
 Dãy các từ tiếng Anh gốc và ý nghĩa của
chúng được lưu trong 2 dãy WList và WmList
được nhập từ trước.
Bài tập 4: Bài tập trắc nghiệm
 Thiết kế phần mềm tự động sinh bài kiểm tra
trắc nghiệm như sau:
 Thầy giáo ra liên tục các câu hỏi dạng trắc
nghiệm, ví dụ:
4+5=?
6 10 9 11

A B C D
 Người dung nháy chuột lên nút tương ứng.
Thầy giáo sẽ nói ngay đúng / sai. Nếu sai,
thầy thông báo đáp số đúng, sau đó sẽ lại
sinh câu hỏi tiếp theo.
Biến nhớ List
13

Bùi Việt Hà, habuiviet@gmail.com,


List: Mảng, dãy giá trị
Khái niệm Dãy (List)
 Dãy (mảng,
list) là 1 danh
sách các giá
trị (số hoặc
chữ).
 Mỗi dãy là 1
đối tượng
của nhân vật.
 Nhân vật,
sân khấu đều
có thể tạo
List.
Nhập dữ liệu vào biến List
 Nhập trực
tiếp trên màn
hình.
 Nhập bằng
lệnh import
thông qua
tệp *.txt.
 Nhập bằng
lệnh, chương
trình
Các lệnh với Dãy (List)
 Bổ sung giá trị vào dãy
 Xóa 1 phần tử -- của dãy
 Chèn 1 giá trị vào dãy
 Thay thế 1 phần tử của
dãy
 Hiển thị dãy
 Không hiển thị dãy
 Dãy có chứa giá trị --?
 Giá trị phần tử của dãy
 Độ dài của dãy
 Nội dung dãy
Một vài lệnh đặc biệt
 Thể hiện dữ liệu
danh sách.

 Xóa toàn bộ 1
danh sách

 Xóa phần tử cuối


của danh sách.
Ví dụ 1:
 Cho trước 1 dãy số, hãy viết chương trình
hiển thị số Max trong các số của dãy.
Ví dụ 2:
 Đọc từ bàn phím vào 1 dãy 5 số, sau đó hiển
thị số Max trong các số của dãy.
Ví dụ 3:
 Tạo 1 dãy số, sinh ngẫu nhiên các phần tử,
sau đó hiển thị số Max trong các số của dãy.
Bài tập 1: Viết các chương
trình sau.
 Cho trước 1 dãy số, viết chương trình:
 Tính tổng các số của dãy này.
 Tìm phần tử Max, Min của dãy này.
 Cho trước 1 dãy số trong biến List. Hãy sinh
ra dãy List1 là 1 hoán vị ngẫu nhiên của dãy
gốc trong biến List.
 Cho trước 1 dãy số n phần từ a1, a2, ...., an
lưu trong biến List. Nhập số m và sinh ra
ngẫu nhiên m số hạng từ dãy trên.
Bài tập 2: Nhập danh sách HS
 Viết chương trình nhập danh sách
HS vào 1 biến nhớ List như sau:
Trên màn hình có 3 nút lệnh.
 Input Data, quá trình nhập trực tiếp dữ
liệu từ bàn phím bắt đầu. Nhập liên tục
cho đến khi nhấn Enter không nhập gì
cả.
 Delete Data, chương trình sẽ yêu cầu
người dùng nhập tên học sinh muốn
xóa, sau đó kiểm tra và xóa tên này
trong danh sách.
 View Data, chương trình hiển thị toàn
bộ danh sách học sinh hiện có.
Bài tập 3: Bài toán sinh câu hỏi
trắc nghiệm
 Dữ liệu đầu vào là 2 dãy dữ liệu:
 WList là dãy từ gốc (ví dụ dãy các từ tiếng Anh)
 GList là dãy các giải nghĩa từ tương ứng của WList.
 Chương trình sẽ tự động sinh 1 phương án đúng
và 3 phương án sai từ dãy WList và thể hiện bằng
1 câu hỏi trắc nghiệm, câu hỏi lấy từ GList. Ví dụ
câu hỏi như sau:
Từ nào sau đây có ý nghĩa: cái bàn học sinh.
 Người chơi làm bài bằng cách nháy lên các nút
đáp án tương ứng. Chương trình thông báo đúng /
sai và sinh câu hỏi tiếp theo.
Clone
14

Bùi Việt Hà, habuiviet@gmail.com,


Clone
Khái niệm Clone
 Một nhân vật GỐC có
thể tự phân thân thành
nhiều bản sao (clone)
của chính mình.
Clone 2  Các clone khi khởi tạo
ra được điều khiển
bằng 1 chương trình
riêng.
Clone 1  Clone chỉ tồn tại trong
Clone 3 thời gian chương trình
đang chạy.
Các lệnh với Clone

 Tạo 1 Clone cho 1


nhân vật đã có
 Sự kiện dành cho
Clone mới khởi tạo
 Xóa Clone này
Đây là lệnh khởi tạo 1 bản sao (Clone)
của nhân vật. Nhân vật khác hoặc sân
khấu cũng có thể tạo được Clone cho
bất kỳ nhân vật nào.

Đây là bắt đầu của chương trình điều


khiển Clone khi được khởi tạo.

Lệnh xóa Clone hiện thời. Lệnh này nằm


trong nhóm lệnh điều khiển Clone.
Chú ý quan trọng
 Tại thời điểm Clone được khởi tạo, Clone
này sẽ kế thừa tất cả các thuộc tính của nhân
vật gốc.
 Các thuộc tính của nhân vật gốc bao gồm

Đây là nhóm các


thuộc tính gốc của
nhân vật

Đây là nhóm các


biến nhớ riêng
Ví dụ 1
Ví dụ 2  Khi click Space sẽ tạo thêm ra các
máy bay trên bầu trời.
Ví dụ 3  Bắn tên lửa tiêu diệt con rồng

Script của
Dragon
Script của
Tên lửa
Bài tập 1: Mèo đuổi chuột
 Trên màn hình các con chuột sẽ xuất hiện ngẫu
nhiên và chuyển động ngẫu nhiên xung quanh sân
khấu.
 Người chơi điều khiển Mèo bằng bàn phím, có
nhiệm vụ ăn được càng nhiều chuột càng tốt. Mỗi
lần bắt được chuột, mèo kêu meo meo và con
chuột đó mất đi.
 Người chơi thắng cuộc khi ăn được 50 con chuột,
thua cuộc nếu số chuột lớn lên > 50 con trên màn
hình hoặc sau 1 phút không ăn được 50 chuột.
Bài tập 2: Bắn súng
 Các máy bay sẽ tự động xuất hiện từ bên trái
và bay sang bên phải màn hình.
 Người chơi điều khiển 1 khẩu súng lên,
xuống ở bên phải màn hình.
 Người chơi bấm Space để bắn ra đạn. Nếu
bắn trúng máy bay thì máy bay rơi và đạn
cũng biến mất.
 Trò chơi kết thúc sau 30 giây, ai bắn rơi được
nhiều máy bay nhất sẽ chiến thắng.
Bài tập 3: Lượm táo

 Từ phía trên các quả táo sẽ rơi ngẫu nghiên


xuống đất. Người chơi điều khiển 1 xe đẩy
phía dưới để hứng táo.
 Phần mềm sẽ hiện trên màn hình 2 con số:
 Số táo đã hứng được.
 Số táo bị rơi mất.
 Trò chơi kết thúc sau 60 giây.
Thiết kế phần mềm và
bài giảng elearning
15
Các bước thiết kế phần mềm
Sơ đồ hoạt động của chương
trình
Các cấu thành cần có của 1
phần mềm
 Mục đích, ý nghĩa, đối tượng.
 Kịch bản chi tiết.
 Giao diện, nhân vật, tương tác.
 Các bộ dữ liệu gốc.
 Hệ thống biến nhớ, dữ liệu hệ thống.
 Sơ đồ hoạt động hệ thống.
 Chương trình chi tiết cho sân khấu và nhân
vật.
Chia sẻ và xuất bài
giảng elearning
16
Phân loại lệnh trong Scratch
Chia sẻ cộng đồng sử dụng
Scratch
Xuất bài giảng và phần mềm
online.
Phân loại lệnh trong Scratch
 Sự kiện

 Lệnh bình thường

 Giá trị logic (đúng/sai)

 Giá trị số hoặc chữ


(không logic).
Chia sẻ cộng đồng Scratch
 Trang home chính của Scratch:
https://scratch.mit.edu/
Cộng đồng Scratch
 Cộng đồng sử dụng Scratch, chia sẻ các dự
án chương trình Scratch online.
 Trang wiki của Scratch:
http://wiki.scratch.mit.edu/wiki/Scratch_Wi
ki_Home
Trên trang Scratch có thể:
 Thực hiện lập trình Scratch Online để tạo ra
các bài học, animation theo ý muốn. Lưu trữ
các kết quả vào kho riêng của mình trên
Scratch.
 Chia sẻ kết quả cho cộng đồng cùng xem và
góp ý kiến.
 Xem và góp ý, bình luận các kết quả mà
cộng đồng đưa lên.
 Xem các thông tin khác có liên quan.
Phụ lục: các lệnh
chính
Motion – các lệnh mô tả
chuyển động
Dịch chuyển nhân vật 10 bước theo hướng hiện
thời.

Xoay nhân vật 15 độ theo chiều kim đồng hồ.

Xoay nhân vật 15 độ ngược chiều kim đồng hồ.

Quay nhân vật theo hướng được xác định (trong


hình: 90 độ).

Quay nhân vật theo hướng của 1 nhân vật khác.


Chọn nhân vật khác này tại vị trí có hình tam
giác nhỏ.
Di chuyển nhân vật đến vị trí có tọa độ X, Y
tương ứng. Lệnh này tương đương với việc
thực hiện đồng thời 2 lệnh Set X to và Set Y to.
Chuyển đến vị trí của con trỏ chuột hoặc nhân vật khác
được xác định bởi chọn từ bảng chọn.
Di chuyển đến vị trí (X, Y) trong khoảng thời gian nhất
định tính bằng giây. Thời gian có thể nhập là số thập
phân, ví dụ 1.5 là 1 giây rưỡi.
Thay đổi tọa độ X của nhân vật theo giá trị cho trong
lệnh. Giá trị có thể là số dương hoặc số âm.

Thiết lập giá trị cụ thể tọa độ X của nhân vật.


Thay đổi tọa độ Y của nhân vật theo giá trị cho trong
lệnh. Giá trị có thể là số dương hoặc số âm.

Thiết lập giá trị cụ thể tọa độ Y của nhân vật.


Nếu gặp cạnh màn hình, quay lại.
Đây là lệnh rất quan trọng. Lệnh sẽ điều khiển nhân vật
khi di chuyển gặp cạnh của màn hình thì nhân vật sẽ
"bật" trở lại theo nguyên tắc đối xứng gương.
Thiết lập kiểu quay của nhân vật (ví dụ khi gặp cạnh
màn hình). Có 3 kiểu quay: trái - phải (right-left),
không quay (do not rotate), quay tròn (all around).
Looks – các lệnh giao tiếp và
thay đổi thể hiện
Thể hiện dòng chữ "Hello" trong 1 khoảng thời gian
<2> tính bằng giây. Trong thời gian đó chương trình sẽ
tạm dừng.
Thể hiện dòng chữ "Hello" trong khi chương trình vẫn
chạy bình thường.
Thể hiện dòng chữ suy nghĩ "Hmm…" trong 1 khoảng
thời gian <2> tính bằng giây. Trong thời gian đó chương
trình sẽ tạm dừng.
Thể hiện dòng chữ suy nghĩ "Hmm…" trong khi
chương trình vẫn chạy bình thường.
Hiện nhân vật.

Ẩn nhân vật.

Thay đổi kiểu trang phục của nhân vật sang dạng được
hiện trong danh sách bên phải.

Thay đổi kiểu trang phục của nhân vật dang dạng tiếp
theo (trong danh sách).
Thay đổi sân khấu nền sang dạng <backdrop1> trong
danh sách chọn bên phải.
Thay đổi hiệu ứng bên ngoài của nhân vật theo giá trị
<25> cho trước. Các hiệu ứng được chọn trong danh
sách, như color, fisheye, …
Thiết lập giá trị của hiệu ứng bên ngoài của nhân vật
theo giá trị cho trước. Các hiệu ứng được chọn trong
danh sách, như color, fisheye,…
Hủy tất cả hiệu ứng thể hiện của nhân vật, quay trở về
trạng thái ban đầu.
Thay đổi kích thước của nhân vật theo giá trị <10> %
cho trước so với kích thước hiện thời. Giá trị có thể là
số dương hoặc âm.
Thiết lập kích thước của nhân vật là <100>% so với
kích thước gốc.
Chuyển nhân vật lên lớp trên cùng.
Chuyển nhân vật xuống <1> lớp.
(hàm) trả lại số thứ tự của trang phục hiện thời của
nhân vật.
(hàm) trả lại tên của nền sân khấu hiện thời.
(hàm) trả lại kích thức hiện thời của nhân vật.
Thay đổi sân khấu nền sang dạng <backdrop1> trong
danh sách chọn bên phải.
Thay đổi sân khấu nền sang dạng trong danh sách chọn
bên phải và chờ thực hiện các lệnh của lệnh điều khiển
sau “When backdrop swiches to”.
Chuyển nền sân khấu sang kiểu tiếp theo.
Thay đổi hiệu ứng bên ngoài của sân khấu theo giá trị
<25> cho trước. Các hiệu ứng được chọn trong danh
sách, như color, fisheye, …
Thiết lập giá trị của hiệu ứng bên ngoài của nền sân
khấu theo giá trị cho trước. Các hiệu ứng được chọn
trong danh sách, như color, fisheye, …
Hủy tất cả hiệu ứng thể hiện của sân khấu, quay trở về
trạng thái ban đầu.
(hàm) trả lại số thứ tự của nền sân khấu hiện thời trong
danh sách.
(hàm) trả lại tên của nền sân khấu hiện thời.
Sound – các lệnh điều khiển
âm thanh
Bật âm thanh <meow> theo âm thanh trong danh sách bên
phải và không dừng chạy chương trình.
Bật âm thanh <meow> theo âm thanh trong danh sách bên
phải, chương trình dừng lại đợi kết thúc âm thanh.
Tắt tất cả âm thanh.
Đánh trống với tốc độ <0.25> (1/4) của nhịp trống. Lựa chọn
kiểu trống trong danh sách được đánh số.
Tạm nghỉ đánh trống trong thời gian <0.25> (1/4) nhịp trống.
Chơi nốt nhạc <60> (nốt C) trong danh sách trong thời gian
<0.5> nhịp trống.
Chọn công cụ chơi nhạc <1> trong danh sách.
Thay đổi độ lớn âm thanh theo tỉ lệ <-10> phần trăm so với
hiện thời. Cho phép nhập số dương và âm.
Thiết lập độ lớn âm thanh theo mức <100> phần trăm của loa
hệ thống (máy tính).
(hàm) trả lại độ lớn âm thanh hiện thời của loa hệ thống.
Thay đổi nhịp trống, tăng lên (hoặc giảm đi) <20> nhịp trống
trong mỗi phút.
Thiết lập nhịp trống theo <60> nhịp đập trong 1 phút.

(hàm) trả lại giá trị nhịp trống hiện thời là số lượng nhịp
trống trong 1 phút.
Pen – các lệnh điều khiển bút
và màu sắc
Xóa tất cả các hình đồ họa được vẽ trước đó bới bút
(pen).
In (hiển thị) hình ảnh nhân vật trên màn hình (chú ý:
hình ảnh này không nằm trong sân khấu).
Đặt chế độ hạ bút để bắt đầu vẽ theo vết chuyển động
của nhân vật.
Đặt chế độ nhấc bút không vẽ nữa.
Đặt màu sắc cho bút theo mẫu màu được chọn bởi
chuột.
Thay đổi màu của bút theo giá trị <10> được nhập trực
tiếp. Cho phép giá trị âm hoặc dương. Giá trị màu được
thiết lập theo hiệu ứng màu sắc (color effect).
Thiết lập màu cho bút theo giá trị màu.
Thay đổi độ mờ của bút theo giá trị <10>. Độ mờ được
đo bởi các giá trị từ 0 đến 100.
Thiết lập độ mờ của bút theo giá trị <50>.
Độ mờ được đo bởi các giá trị từ 0 đến 100.
Thay đổi kích thước của bút theo <1> pixel. Giá trị thay
đổi có thể dương hoặc âm.
Thiết lập kích thước bút theo giá trị <1> pixel.
Data – các lệnh điều khiển biến
nhớ, dữ liệu
Tạo một biến nhớ mới.

(hàm) trả lại giá trị hiện thời của biến nhớ.

Lựa chọn có hiển thị hay không giá trị biến nhớ trên
màn hình. Thể hiện của biến nhớ có dạng sau:
Gán 1 giá trị cụ thể cho biến nhớ "a". Giá trị có thể là
số hoặc chữ.
Thay đổi biến nhớ "a" theo giá trị số (1) được nhập
trực tiếp tại ô phía phải.
Chú ý: giá trị bắt buộc phải là số, có thể dương hoặc
âm.
Nếu nhập sai thì lỗi sẽ được thông báo bởi "NaN".

Hiện giá trị biến nhớ "a" trên màn hình.

Ẩn không hiện giá trị biến nhớ "a" trên màn hình.
Tạo một danh sách (mảng) giá trị mới.

(hàm) trả lại giá trị của biến nhớ "b" là một dãy số
hoặc văn bản.
Bổ sung giá trị <"thing"> vào cuối của mảng "b". Giá
trị có thể là số hoặc chữ.
Xóa phần tử thứ <1> khỏi mảng "b".

Chèn giá trị <"thing"> vào mảng "b" tại vị trí trước
phần tử thứ <1>. Mảng "b" sẽ tăng thêm 1 phần tử.
Giá trị có thể là số hoặc chữ.
Thay thế phần tử thứ <1> của mảng "b" bằng giá trị
mới <"thing">. Giá trị này có thể là số hoặc chữ.
(hàm) trả lại giá trị của phần tử thứ <1> của mảng "b".
(hàm) trả lại giá trị là số phần tử hiện có của mảng "b".
(hàm logic) trả lại giá trị đúng nếu mảng "b" chứa
phần tử có giá trị <"thing">.
Thể hiện mảng "b" trên màn hình.

Ẩn không hiện mảng "b" trên màn hình.


Event – các lệnh điều khiển sự
kiện
Đây là lệnh "bắt đầu chương trình". Chương trình (nhóm
lệnh) sẽ chạy khi nháy lên lá cờ xanh.
Lệnh điều khiển bàn phím. Nhóm lệnh sẽ chạy khi phím tương
ứng <Space> được bấm.
Lệnh điều khiển chuột. Nhóm lệnh sẽ chạy khi nháy chuột lên
nhân vật.
Lệnh điều khiển theo sân khấu. Nhóm lệnh sẽ chạy khi nền
sân khấu thay đổi sang <backdrop1>.
Lệnh điều khiển phụ thuộc vào độ âm (loudness), thời gian
(timer) và tốc độ của chuyển động (video motion). Khi các
điều kiện trên thỏa mãn thì nhóm lệnh sẽ chạy.
Lệnh điều khiển thông điệp. Nhóm lệnh sẽ được thực hiện khi
nhân vật nhận được thông điệp <message1>.
Lệnh gửi thông điệp cụ thể <message1>. Lệnh "when I receive
the message" có tác dụng trả lời cho thông điệp này. Các lệnh
khác vẫn chạy bình thường. Chú ý: trong lệnh này có chức
năng tạo 1 thông điệp mới.

Lệnh gửi thông điệp cụ thể <message1>. Khi gửi thông điệp
chương trình sẽ tạm dừng và chờ cho đến khi tất cả các nhân
vật khác thực hiện xong các lệnh khi nhận thông điệp này. Sau
đó chương trình sẽ quay lại thực hiện các lệnh tiếp theo. Chú
ý: trong lệnh này cũng có chức năng tạo 1 thông điệp mới.
Control – các lệnh điều khiển
Chương trình sẽ tạm dừng trong <1> giây.
Nhóm lệnh trong khung sẽ thực hiện lặp <10> lần.
Nhóm lệnh trong khung sẽ thực hiện lặp vô hạn lần.
Lệnh điều khiển có điều kiện If. Nếu điều kiện trong
biểu thức lệnh là Đúng thì nhóm lệnh trong khung sẽ
được thực hiện.
Lệnh điều khiển rẽ nhánh If-then-else. Nếu điều kiện
trong biểu thức lệnh là Đúng thì nhóm lệnh trong
khung trên sẽ được chạy, ngược lại nếu điều kiện trong
biểu thức lệnh là Sai thì nhóm lệnh trong khung dưới
(else) sẽ được chạy.
Lệnh "dừng cho đến khi". Chương trình sẽ tạm dừng
cho đến khi điều kiện trong biểu thức có giá trị Đúng.
Lệnh "lặp cho đến khi". Nhóm lệnh trong khung sẽ
được thực hiện lặp lại cho đến khi điều kiện trong biểu
thức lệnh trả lại giá trị Đúng.
Lệnh "dừng chạy". Lệnh này sẽ dừng chạy theo các khả
năng lựa chọn từ ô bên phải. Có thể chọn "all" - dừng
tất cả các chương trình; "this script" - chỉ dừng chương
trình hiện tại; "other scripts in sprite" - dừng tất cả các
chương trình khác của nhân vật hiện thời.
Lệnh "khi tôi bắt đầu là một bản sao". Các
lệnh trong khối này sẽ được thực hiện khi
nhân vật bản sao (phân thân) được tạo ra.
Lệnh thực hiện việc tạo ra 1 bản sao (phân
thân) của 1 nhân vật. Nhân vật sẽ được tạo
bản sao (phân thân) có thể chọn từ danh sách.
"itself" là tạo phân thân cho chính mình. Có
thể tạo phân thân cho nhân vật khác.
Lệnh xóa đi 1 bản sao (phân thân) hiện thời.
Sensing – các lệnh cảm biến
Điều kiện cảm biến va chạm. Có thể chọn vật thể va
chạm từ danh sách là các nhân vật, con trỏ chuột hay
cạnh màn hình. Nếu có va chạm thì hàm giá trị sẽ trả
lời giá trị Đúng.
Điều kiện cảm biến va chạm màu sắc. Màu được chọn
bằng cách nháy chuột lên vị trí có màu muốn chọn.
Hàm trả lại giá trị đúng khi nhân vật va chạm với màu
sắc đã chọn.
Điều kiện cảm biến màu sắc va chạm màu sắc. Màu sắc
có thể chọn bằng cách nháy chuột lên vị trí màu. Hàm
sẽ trả lại giá trị Đúng khi 2 màu này va chạm nhau.
Hàm số trả lại khoảng cách từ (tâm) nhân vật hiện thời
đến 1 nhân vật khác, hoặc đến vị trí con trỏ chuột.
Lệnh "hỏi và chờ". Nhân vật sẽ thể hiện câu hỏi
<What's your name> và chờ nhập dữ liệu từ bàn phím.
Giá trị được nhập từ bàn phím (số hoặc chữ) sau khi
bấm Enter sẽ được lưu trong biến nhớ "answer".
Hình ảnh thể hiện khi thực hiện lệnh này.
Biến nhớ "Answer" dùng để lưu giá trị nhập dữ liệu từ
bàn phím của lệnh trên.
Cảm biến bàn phím. Hàm này sẽ trả lại giá trị Đúng
nếu phím tương ứng <Space> được bấm.
Cảm biến chuột. Hàm sẽ trả lại giá trị đúng nếu chuột
được nhấn (chuột trái).
(hàm) trả lại tọa độ X của vị trí chuột hiện thời.
(hàm) trả lại tọa độ Y của vị trí chuột hiện thời.
(hàm) trả lại giá trị hiện thời của âm thanh loa hệ
thống.
(hàm) trả lại giá trị là các tham số liên quan đến video
camera hiện thời tương ứng với nhân vật hoặc sân
khấu.
Các tham số có thể tính:
- motion: số lượng chuyển động.
- direction: hướng chuyển động
Lệnh bật / tắt camera của máy tính.
Camera sẽ dùng để điều khiển hoạt động và nhân vật
trên màn hình.
Lệnh thiết lập độ trong suốt của video camera trên màn
hình. Giá trị có thể thiết lập từ 0% đến 100%. Vậy
video có độ trong suốt = 100% sẽ không hiện trên màn
hình.
(hàm) trả lại giá trị thời gian bằng giây tính từ lúc
chương trình bắt đầu chạy.
Lệnh có tác dụng đặt lại tham số "timer" về 0.
(hàm) trả lại giá trị các tham số của nhân vật được chọn
tại ô bên phải lệnh.
Các tham số có thể trả lại giá trị bao gồm:
- x position: tọa độ X
- y position: tọa độ Y
- direction: hướng
- costume #: số thứ tự của trang phục
- costume name: tên của trang phục
- size: kích thước nhân vật
- volume: độ lớn của âm thanh.
(hàm) trả lại giá trị thời gian hiện thời được tính theo
tham số chọn trong ô của lệnh:
- year: năm (ví dụ: 2016)
- month: tháng (ví dụ: 3, 112)
- date: ngày của tháng (ví dụ: 20, 131)
- day of week: ngày của tuần (ví dụ: 2, 17)
- hour: giờ hiện thời (ví dụ: 14, 023)
- minute: phút hiện thời (ví dụ: 56. 059)
- second: giây hiện thời (ví dụ: 59. 059)
(hàm) trả lại số ngày của thế kỷ 21, tính từ năm 2000.
(hàm) trả lại tên tài khoản người dùng trên trang
scratch.mit.edu.
Operators – Biểu thức logic &
toán học
(hàm) phép cộng 2 số

(hàm) phép trừ 2 số

(hàm) phép nhân 2 số

(hàm) phép chia 2 số, kết quả thập phân.

(hàm) trả lại số ngẫu nhiên giữa 2 giá trị số.

Biểu thức logic mô tả quan hệ giữa 2 số. Biểu thức trả


lại giá trị Đúng nến số thứ nhất < số thứ 2.
Biểu thức logic mô tả quan hệ giữa 2 số. Biểu thức trả
lại giá trị Đúng nến số thứ nhất > số thứ 2.
Biểu thức logic "and" (và).

Biểu thức logic "or" (hoặc)

Biểu thức logic phủ định "not".


(hàm) toán tử nối 2 xâu ký tự.

(hàm) trả lại ký tự thứ <1> của xâu ký tự


<world>

(hàm) trả lại độ dài của xâu ký tự <world>

(hàm) phép toán tính thương số của phép chia


số nguyên "mod".
(hàm) phép tính làm tròn số. Trả lại phần
nguyên của 1 số.
(hàm) trả lại giá trị là kết quả của các hàm
toán học của 1 số. Hàm toán học được chọn từ
danh sách trên dòng lệnh.

You might also like