Tải bản đầy đủ (.pdf) (23 trang)

Các Chuyên Đề Scratch Ôn Thi Tin Học Trẻ.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.58 MB, 23 trang )

Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

CÁC CHUYÊN ĐỀ SCRATCH 3.0
ÔN THI TIN HỌC TRẺ
(BẢNG A, B2, D2)
Thầy Nguyễn Tấn Phong
Trường THCS Đồng Nai, Cát Tiên, Lâm Đồng
Thời gian tập huấn:
Địa điểm:
Báo cáo viên:

PHẦN 1: ĐÁNH GIÁ CÔNG TÁC BỒI DƯỠNG THI TIN HỌC
TRẺ CẤP TIỂU HỌC VÀ THCS, ĐỊNH HƯỚNG TRONG THỜI GIAN
TỚI
PHẦN 2: CÁC CHUYÊN ĐỀ SCRATCH 3.0 BỒI DƯỠNG THI
TIN HỌC TRẺ BẢNG A, B2, D2
I. Định hướng nội dung ơn thi
Từ năm học 2016 – 2017 lập trình Scratch được chính thức đưa vào Hội thi Tin
học trẻ cấp Tiểu học và THCS. Với cấp THCS thì đề thi sẽ gồm 2 nội dung: phần lập trình
thuật tốn (Pascal, C/C++) và lập trình Scratch.
Đối với lập trình thuật tốn (Pascal, C/C++) được hiểu là có giảng dạy trong chương
trình phổ thơng, cịn lập trình Scratch là học sinh tự học thông qua các hoạt động trải
nghiệm sáng tạo, hoạt động ngoại khóa và dự án YDI.
Hiện nay, có rất nhiều tài liệu về Scratch, nổi bật là bộ tài liệu của tác giả Bùi Việt
Hà. Nhưng cũng chưa có một tài liệu nào mang tính định hướng cho việc ôn thi Tin học
trẻ, dẫn đến rất nhiều thầy/cô bỡ ngỡ và cũng không biết phải bắt đầu từ đâu. Qua tài liệu
này, tơi hi vọng có thể cung cấp cho thầy/cơ một hướng tham khảo để có thể tự soạn cho
mình một bộ tài liệu riêng để giảng dạy phù hợp với đối tượng học sinh của mình.
Về cơ bản thì phần lập trình Scartch có 4 dạng tốn chính sau:
- Dạng 1: Phim hoạt hình
- Dạng 2: Vẽ hình


- Dạng 3: Lập trình thuật tốn
- Dạng 4: Phần mềm, game học tập
Trong một đề thi Tin học trẻ thường không ra riêng lẻ một dạng mà tổng hợp từ 4
dạng bài trên.

II. Một số chuyên đề ôn thi
CHUYÊN ĐỀ 1: PHIM HOẠT HÌNH ĐƠN GIẢN
Một phim hoạt hình được hiểu là một hình thức sử dụng ảo ảnh quang học về sự
chuyển động do nhiều hình ảnh tĩnh được chiếu tiếp diễn liên tục. Về kỹ thuật để tạo ra
một đoạn ngắn phim hoạt hình thì cần chú ý các hiệu ứng chính sau:
- Lời thoại: là phần quan trọng cần có trong một đoạn phim hoạt hình.
- Hiệu ứng hình ảnh: bao gồm hình ảnh nhân vật và ảnh nền sân khấu, có thể tự tạo
ảnh bằng các phần mềm vẽ ảnh (động, tĩnh) hoặc lấy từ thư viện có sẵn.
- Hiệu ứng chuyển động: phải có các chuyển động và hiệu ứng phù hợp. Ví dụ:
nhân vật đi xa thì hình ảnh nhỏ dần, …
Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 1


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

- Hiệu ứng thay đổi hóa trang nhân vật, phơng nền
- Hiệu ứng âm thanh
Các nhóm lệnh chính của SCRATCH dùng làm phim hoạt hình:
- Nhóm lệnh hội thoại và truyền tin:

- Nhóm chuyển động, điệu bộ và âm thanh:

Tham khảo:

1/ Xem phần hướng dẫn phim hoạt hình của Scratch 3.0

2/ Xem thêm tại các địa chỉ:
/> />3/ Tham khảo tài liệu: “Tự học lập trình Scratch” của tác giả Bùi Việt Hà,
chương 3, “hội thoại và truyền tin”.
Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 2


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

CHUN ĐỀ 2: VẼ HÌNH
Có hai hình thức vẽ hình chính: Vẽ hình theo chuyển động của nhân vật và vẽ hình
bằng lưu vết nhân vật.
Về kỹ thuật vẽ hình: Vẽ bằng cách sắp xếp theo tọa độ trên sân khấu (ghép hình)
và vẽ bằng lệnh “lặp tương tự”.
a. Vẽ hình theo tọa độ trên sân khấu (ghép hình bằng đoạn thẳng)
*/ Cách xác định tọa độ trên màn hình sân khấu Scratch:
Sân khấu nhân vật của Scratch có chiều ngang là 480pixel và chiều đứng là
360pixel và được chia thành 4 phần bởi hai trục x và y như hình, mỗi điểm trên sân khấu
được xác định bởi tọa độ (x, y).
Để cho dễ xác định tọa độ, ta chia chiều ngang thành 24 đơn vị, chiều đứng thành
18 đơn vị và kẻ những đường song song sẽ được “lưới” màn hình, như vậy mỗi ô tương
ứng 20 bước (hay 20 pixel) theo chiều ngang hoặc chiều đứng. “Lưới” sân khấu chia theo
tỉ lệ này đã có sẵn trong thư viện phơng nền của Scratch.

Với cách chia như trên ta xác định tọa độ các điểm trên hình như sau:
A(120,80). Tọa độ x được tính từ trục y đến điểm A có 6 ơ vng tương ứng
6x20=120, điểm A nằm bên phải trục y nên có tọa độ x dương. Tọa độ y được tính từ trục

x đến điểm A có 4 ơ tương ứng 4x20=80, điểm A nằm trên trục x nên có tọa độ y dương.
C(-100,-60). Tọa độ x được tính từ trục y đến điểm C có 5 ơ vng tương ứng
5x20=100, điểm C nằm bên trái trục y nên có tọa độ x âm “-”. Tọa độ y được tính từ trục
x đến điểm C có 3 ơ tương ứng 3x20=60, điểm C nằm dưới trục x nên có tọa độ y âm.
Để vẽ được tứ giác ABCD như trên thì nhân vật phải xuất hiện tại điểm A(120;80),
sau đó nhân vật trượt lần lượt từ A->B->C->D->A.
Chương trình vẽ:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 3


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Như vậy muốn vẽ được một hình trên sân khấu theo cách này nhất định phải xác
định được tọa độ các điểm chính của hình vẽ.
Chú ý: - Mặc định thì tâm của nhân vật ở chính giữa, ta cần chỉnh lại tâm cho
phù hợp để “hoạt hình” nhân vật khi vẽ nhìn được đẹp hơn (như hình).

- Sau lệnh

nhân vật di chuyển đến bất kỳ đâu trên sân khấu thì đều vẽ lại

đường di chuyển của nó nên cần phải kết thúc vẽ bằng lệnh

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

.


Trang 4


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài tập thực hành:
Bài 1: Vẽ các hình đa giác sau lên cùng màn hình sân khấu.

Bài 2: Vẽ các hình sau lên cùng màn hình sân khấu.

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 5


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài 3: Vẽ mô phỏng lại bức tranh sau:

b. Vẽ hình bằng lệnh “lặp tương tự”
“Lặp tương tự” được hiểu là thao tác vẽ trước và sau là giống như nhau và lặp lại
nhiều lần, chỉ khác nhau về hướng/góc hay kích thước. Thường chỉ áp dụng cho những
hình có tính đối xứng như: hình trịn, vuông, tam giác đều, đa giác đều, …
b.1. Vẽ các đa giác đều có số cạnh tùy ý
Quan sát các đa giác đều sau:

Các đa giác đều có số cạnh (n) và số đo góc ngồi (α) như sau:
Tam giác Tứ giác Ngũ giác Lục giác
Số cạnh (n)
3

4
5
6
0
0
0
Số đo góc ngoài (α)
120
90
72
600

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

n giác
n
3600/n

Trang 6


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Cấu trúc chung để vẽ các đa giác đều trên như sau:

Khi số cạnh càng lớn thì chiều dài cạnh cần phải nhỏ lại thì đa giác vẽ được sẽ
khơng vượt ra ngồi sân khấu. Khi tích của số cạnh và số độ góc xoay là 360 thì kết quả
vẽ được là đường trịn.
Bài tập thực hành: - Hãy vẽ các đa giác có số cạnh lần lượt là 3, 4, 5, 6, 9, 11,
26, 36.

- Hãy thay đổi độ dài cạnh và rút ra nhận xét trong từng trường hợp.
- Hãy thay đổi giá trị của lệnh
trong khoản từ 10 đến 200 và
nhận xét.
- Hãy điền các số như hình và rút ra nhận xét về kết quả?

b.2. Vẽ các hình phức tạp từ đa giác đều
Hãy thực hiện ghép các lệnh sau và thay đổi các chỉ số và rút ra nhận xét:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 7


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

b.3. Vẽ một số hình đa giác khác
c. Vẽ hình bằng lưu vết nhân vật
Được hiểu là khi nhân vật di chuyển đến 1 vị trí mới sẽ in hình nhân vật lại đó.
Ví dụ 1: Thực hiện ghép các lệnh sau và quan sát kết quả?

Vấn đề: Nếu thay đổi là 8 nhánh thì số lần lặp là 8, góc quay là 450 thì được hình
như sau:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 8


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2


Hình kết quả cho thấy hình trịn bị lệch một xíu ==> nghĩa là vẽ hình theo bước di
chuyển nhân vật trong một vài trường hợp sẽ phát sinh vẽ hình khơng như mong muốn.
Vậy có cách nào vẽ hình nào khác khơng? ==> Dùng cách vẽ lưu vết bằng lệnh in hình
(Stamp).
Ví dụ 2: Thực hiện lần lượt các bước như sau:
Bước 1: Tạo nhân vật (vẽ bằng Scratch hoặc bằng các chương trình vẽ hình khác)

Bước 2: Đưa nhân vật vừa tạo vào Scratch và chỉnh sao cho chân của nhân vật về tâm
của hệ tọa độ Scratch

Bước 3: kéo thả các lệnh và rút ra nhận xét

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 9


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài tập thực hành: (Đề thi Tin học trẻ, THCS, tỉnh Lâm Đồng năm 2017)
Bài 1: Sử dụng phần mềm Scratch để thực hiện các yêu cầu sau:
Yêu cầu:
- Tạo ra ba đối tượng là hình chữ nhật, hình trịn, hình ngơi sao:

- Viết chương trình thực hiện các yêu cầu sau:
Nếu ấn phím số 1 thì vẽ
Nếu ấn phím số 2 thì vẽ
hình:
hình:


Nếu ấn phím số 3 thì vẽ
hình:

Gợi ý: Ta chia hình thành 4 phần bằng nhau và đếm số “đỉnh” trong một phần để
xác định số lần lặp. Góc xoay = 3600/(số lần lặp). Như hình 1 thì số lần lặp là 36, xoay
góc 100 (các hình 2 và 3 chỉ cần sao chép khối lệnh từ hình 1).

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 10


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài 2: Cho 2 số liệu: Độ dài và độ rộng (dao động từ 50-300). Dựa vào số liệu để
vẽ hình như bên dưới:
Ví dụ:
Cho độ dài=200, độ Cho độ dài =300, độ
rộng=300 thì vẽ hình:
rộng 200 thì vẽ hình:

Yêu cầu:
- Khi bắt đầu chương trình, nhân vật phải yêu cầu nhập hai số liệu trên.
CHUYÊN ĐỀ 3: LẬP TRÌNH THUẬT TỐN
Quy ước lại các khái niệm:
*/ Lập trình thuật tốn: được hiểu là giải các bài tốn trong phạm vi kiến thức bậc
học nhưng có sử dụng “thuật giải”. “Thuật giải” ở đây được hiểu trong phạm vi hẹp và
mang tính định. Chẳng hạn các bài tốn: Tìm số lớn nhất, bé nhất trong dãy số; sắp xếp
dãy số, tính tổng liên tiếp, …

**/Thuật giải: Là tập hợp các bước tuần tự để giải hoàn chỉnh một bài tốn, một
số bước trong thuật giải có thể thay đổi vị trí mà khơng ảnh hưởng đến kết quả.
***/Thuật toán: Là tập hợp các bước tuần tự gồm phép toán và câu lệnh để giải
bài toán, các bước và phép tốn trong thuật tốn khơng thể thay đổi được.
Ví dụ 1:

Ví dụ 2: Viết chương trình tìm số lớn nhất (max) trong hai số nhập vào bàn phím.
Thứ tự các bước phải làm là:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 11


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

****/ Kỹ thuật lập trình phi thuật toán
Đối với học sinh ở bậc trung Tiểu học và THCS, học lập trình là việc rất khó khăn
do mới bước đầu làm quen, rất bỡ ngỡ với máy tính và lập trình, các em chưa biết về cơ
sở dữ liệu và cấu trúc dữ liệu. Do vậy, việc giảng dạy theo chuẩn cấu trúc dữ liệu và thuật
toán sẽ làm cho các em rất khó tiếp thu, dễ gây chán nản trong lúc học. Cách tốt nhất là
rèn cho các em kỹ năng biết lập trình định hướng trước, tức là giải được bài tốn trước,
rồi sau đó mới rèn tới thuật tốn chính quy. Một trong những phương pháp hiệu quả là
rèn học sinh một số kỹ thuật lập trình phi thuật tốn.
Tại sao là “kỹ thuật phi thuật toán”? “kỹ thuật” ở đây hiểu đơn giản là những
“mẹo” lập trình, “phi thuật tốn” là vì việc vận dụng những kỹ thuật này là “tùy ý” không
bị ràng buộc vào điều kiện hay quy tắc nào cả. Mỗi một “kỹ thuật” sẽ đặt cho nó một “tên
gọi” sao cho học sinh có thể dễ nhớ nhất khi nhắc đến (mà khơng nhất thiết phải chính
xác về mặt khoa học).
1. Một số kĩ thuật lập trình phi thuật tốn

a. Kĩ thuật “qui nạp khơng hồn tồn”
Kĩ thuật này thường được dùng trong các bài toán kiểm tra đúng/sai một tính chất
nào đó của số hay dãy số. Kĩ thuật này gồm 3 bước:
Bước 1: Giả sử ban đầu số thỏa mãn tính chất (hoặc khơng thỏa)
Bước 2: Kiểm tra trên toàn bộ phạm vi giới hạn của số hay dãy số để tìm kiếm
trường hợp vi phạm giả sử ở bước 1. Nếu có xảy ra vi phạm thì đổi lại giá trị đã giả
sử.
Bước 3: Trả lời kết quả về tính chất cần kiểm tra.
Ví dụ 1: Kiểm tra một số nguyên có phải là hợp số hay khơng?

Trong ví dụ trên thì biểu thức điều kiện ở bước 2 gồm 2 điều kiện:
: điều kiện kiểm sốt phạm vi giới hạn tính chất.
: điều kiện thốt vịng lặp nếu tìm thấy vi phạm bước 1.
Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 12


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bây giờ ta phát triển bài tốn này lên như sau:
Ví dụ 2: Viết chương trình nhập vào tùy ý các số nguyên dương cho đến khi nhập
số 0 thì dừng. Hãy đếm xem có bao nhiêu số là hợp số và tính tổng các hợp số đó?

? Ở bước thứ 3 trong ví dụ 2, nếu ta sửa điều kiện như sau, thì kết quả là gì?

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 13



Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Ví dụ 3: Viết chương trình nhập (import) từ file dayso.txt một dãy số nguyên gồm
có X phần tử (X<=10000) vào một danh sách (dayso). Kiểm tra xem dãy số có đối xứng
hay khơng?

Ví dụ 4: Nhập (import) từ file daysoA.txt vào một danh sách daysoA, file
daysoB.txt vào một danh sách daysoB. Viết chương trình tạo ra danh sách daysoC gồm
các phần tử số có trong daysoA mà khơng có trong daysoB?
b.2. Kỹ thuật “lính canh”
Là kĩ thuật tìm kiếm trên dãy dữ liệu để tìm một phần tử thỏa điều kiện nào đó. Kĩ
thuật này 3 bước:
Bước 1: Ban đầu cho phần tử lính canh là 1 phần tử nào đó của dãy (Phần tử lính
canh có thể là phần tử bất kỳ của dãy, tuy nhiên tùy bài tốn mà chọn phần tử lính canh
cho phù hợp, thơng thường lính canh là phần tử đầu tiên).
Bước 2: Duyệt dãy dữ liệu, kiểm tra xem có phần tử nào thỏa điều kiện bài tốn thì
thay đổi vị trí lính canh.
Bước 3: Thơng báo kết quả: Sau khi duyệt xong dãy dữ liệu thì phần tử lính canh
là phần tử cần tìm.
Ví dụ: Nhập (import) từ file dayso.txt vào một danh sách dayso. Tìm số lớn nhất
và nhỏ nhất trong dãy số nguyên?
A={a1, a2, ..,an}?
Với bài này, ngay lúc đầu ta giả sử hai phần tử lính canh là lớn nhất “max” và nhỏ
nhất “min” là a1; ta sẽ duyệt qua dãy số đó từ a2 đến an; cứ mỗi số ak duyệt qua đều so
sánh với các phần tử lính canh, nếu vi phạm điều kiện lính canh thì đổi giá trị lính canh
bằng chính giá trị mới ak.

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng


Trang 14


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

b.3. Kỹ thuật “đánh dấu”
Là kỹ thuật thay thế giá trị một phần tử của dãy dữ liệu thoả điều kiện tìm kiếm x
nào đó bởi một giá trị khác (thường thay giá trị cực biên của kiểu dữ liệu) để những lần
duyệt tiếp theo trong dãy dữ liệu, bước duyệt không lặp lại trên phần tử đó. Nếu khơng
địi hỏi tính tối ưu thuật tốn và thời gian thì kỹ thuật này có thể dùng để khắc phục sự
phức tạp của một số thuật toán như quy hoạch động, quay lui, vét cạn, … khi đó dùng
một list phụ đánh dấu lại vị trí bị thay đổi sẽ đảm bảo được dữ liệu ban đầu.
Trong lập trình hướng phi thuật tốn có thể nói đây được xem là một kỹ thuật rất
“tuyệt” giúp giải quyết khá tốt những bài tốn trên dãy số mà khơng cần dùng đến những
thuật tốn “mạnh”. Ví dụ như: xuất các phần tử giống nhau hoặc khác nhau trong dãy,
xâu, tỉa (loại bỏ phần tử) dãy, …
Ví dụ: Đề thi tin học trẻ tỉnh Lâm Đồng năm 2018

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 15


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Ý tưởng thuật toán vận dụng kỹ thuật đánh dấu như sau:
- Dùng 2 danh sách tạm listB, listC nhận dữ liệu từ mảng listA ban đầu.
- Sắp xếp listB tăng dần.
- Tính tổng các phần tử đầu của listB sao cho giá trị tổng <= 500
+ Mỗi lần cộng được một phần tử listB[i] vào tổng thì tìm phần tử listB[i] đó

trong listC, khi tìm thấy thì thay giá trị listC[i] := -1 để đánh dấu.
- Duyệt lại trên listC, nếu phần tử listC[i]= -1 thì lấy giá trị listA[i].
listA[] dữ liệu đầu vào (mảng chính)
60 70 30 15 17 80 16 75 90 85 40 75
listB[] (sắp xếp tắng dần)
15 16 17 30 40 60 70 75 75 80 85 90
listC[] (đánh dấu vị trí được chọn bằng số -1)
-1
-1
-1
-1
-1
-1
-1
-1
90 85
-1
-1
Code giải bằng Scratch:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 16


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

b.4. Kỹ thuật lập trình tuần tự “định hướng chia để trị”
Là hướng lập trình chia bài toán lớn thành các bài toán nhỏ và giải quyết lần lượt
các bài tốn đó theo một hướng nhất định từ trên xuống dưới. Trong kỹ thuật này, ở mỗi

bước lập trình học sinh đều kiểm tra kết quả dữ liệu đầu ra, nếu đúng thì làm bước tiếp,
sai thì xem xét lại cho đến khi đúng mới tiếp tục.
Ví dụ: Ở ví dụ của phần b.3 đó là cách lập trình theo kĩ thuật “chia để trị”.
b.5. Kỹ thuật “thuật tốn chung”
Trong lập trình giải tốn bằng máy tính có rất nhiều bài tốn có những đặc trưng
giống nhau, thơng thường những bài tốn này có chung với nhau một cách giải, có thể
khơng tối ưu nhưng sẽ giải được.
Ví dụ 1: Những bài tốn về dãy số có quy luật dãy số đẹp, dãy số hồn hảo, … thì
mỗi phần tử trong dãy ln có một tính chất đặc trưng và theo quy luật nhất định. Những
bài tốn này thường có hai u cầu chính là truy xuất đến phần tử thứ n của dãy hoặc truy
xuất dãy con các phần tử của dãy. Với những bài dạng này, chúng ta dạy cho học sinh sử
dụng chung một kiểu thuật toán như sau:

Thuật toán trên, mấu chốt là học sinh phải giải quyết được:
Còn “khoảng_cách/bước_nhảy_giữa_hai_phần_tử” đơn giản nhất là bằng 1.
Ví dụ 1a: Đề thi tin học trẻ tỉnh Lâm Đồng năm 2018

Code giải bằng Scratch:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 17


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Ví dụ 2: Dùng biến danh sách để giải các bài tốn có dạng giống nhau như fibonaci,
dãy tribonaci, dãy lucas, dãy nguyên tố, dãy có cấp số, … Với những bài dạng này, chúng
ta dạy cho học sinh sử dụng chung một kiểu thuật toán như sau:
- Bước 1: Dùng một danh sách list_dayso lưu tất cả các số của dãy thỏa tính chất

- Bước 2: Xuất phần tử theo yêu cầu.
Ví dụ 2a:

Code giải bằng Scratch:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 18


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

2. Một số thuật toán cơ bản
(Tham khảo tài liệu: “Tự học lập trình Scratch” của tác giả Bùi Việt Hà, chương
4, trang 166)
Bài 1. Tính tổng các chữ số của một số
Bài toán: Nhập vào một số tự nhiên n từ bàn phím, viết chương trình thơng báo
tổng các chữ số của số n?
Ví dụ: n = 245 thì thơng báo “Tổng các chữ số là: 11” (giải thích: 2 + 4 + 5 = 11)
Code giải bằng Scratch:
Cách 1: Dùng thuật toán xâu ký tự số

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 19


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Cách 2: Dùng thuật toán tách số (tương tự DIV/MOD)


? Tương tự, tính tổng bình phương các chữ số của … của một số tự nhiên n?
? Tương tự, tìm chữ số lớn nhất, nhỏ nhất… của một số tự nhiên n?
Bài 2. Đếm các chữ số của một chuỗi tùy ý
Bài toán: Nhập vào một chuỗi st từ bàn phím, viết chương trình thơng báo có bao
nhiêu chữ số trong chuỗi?
Ví dụ: st = ab2k45e thì thơng báo “Số các chữ số là: 3”
Code giải bằng Scratch:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 20


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài 3. Tính tổng các số tự nhiên liên tiếp khơng q n
Bài tốn: Nhập vào một số tự nhiên n từ bàn phím, viết chương trình thơng báo
tổng các số tự nhiên liên tiếp từ 1 đến n?
S=1+2+3+…+n
Ví dụ: n = 5 thì thơng báo “Tổng là: 15” (giải thích: S=1+2+3+4+5=15)
Code giải bằng Scratch:

Bài 4: Tính tổng các số thỏa điều kiện khơng q n
Bài toán: Nhập vào một số tự nhiên n từ bàn phím, viết chương trình thơng báo
tổng các số tự nhiên chia hết cho 3 không quá n?
S = 3 + 6 + 9 +… + 3k
Ví dụ: n = 10 thì thơng báo “Tổng là: 18” (giải thích: S = 3 + 6 + 9 = 18)
Code giải bằng Scratch:


? Các bài tương tự?
Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 21


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài 5: Sắp xếp danh sách tăng dần/giảm dần
Bài toán: Nhập vào một danh sách các số tự nhiên/số nguyên cho đến khi nhập 0
thì dừng. Sắp xếp danh sách tăng dần?
Code giải bằng Scratch (bằng thuật toán nổi bọt):

? Tương tự, sắp xếp giảm dần?
Bài 6: Xuất xâu đảo ngược, kiểm tra xâu đối xứng
Bài tốn 1: Cho trước (hoặc nhập từ bàn phím) xâu ký tự St, in ra xâu thu được từ
Str bằng cách viết theo thứ tự ngược lại?
Ví dụ: nhập st = abcdef thì thơng báo “Chuỗi đảo ngược: fedcba”
Ý tưởng: - Dùng một xâu st_tam và lần lượt nối các ký tự st theo thứ tự ngược lại.
Code giải bằng Scratch:

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 22


Các chuyên đề Scratch ôn thi Tin học trẻ dành cho bảng A, B2, D2

Bài toán 2: Cho trước (hoặc nhập từ bàn phím) xâu ký tự St, in ra thơng báo xâu
st có đối xứng hay khơng?

Ví dụ: nếu nhập st = abcd thì thơng báo “khơng đối xứng”, nếu nhập st = abba thì
thơng báo “đối xứng”.
Ý tưởng: - Dùng một xâu st_tam và lần lượt nối các ký tự st theo thứ tự ngược lại,
so sánh nếu st_tam = st thì là xâu đối xứng.
Code giải bằng Scratch:

CHUN ĐỀ 4: LẬP TRÌNH TRỊ CHƠI HỌC TẬP
Được hiểu là một dạng bài tốn có sự kết hợp của hai phần: “phần chơi” và
“phần học”. Là dạng bài toán địi hỏi người lập trình phải sử dụng nhiều kỹ năng lập
trình và trí tưởng tượng, nó là sự kết hợp của 3 dạng toán cơ bản trên.
CHUYÊN ĐỀ 5: NÂNG CAO
CHUYÊN ĐỀ 6: GIẢI ĐỀ THI CÁC CẤP

Giáo viên: Nguyễn Tấn Phong – THCS Đồng Nai, Cát Tiên, Lâm Đồng

Trang 23



×