📎 Xem/Tải tài liệu: Đề Tin học trẻ Đắk Lắk 2026.pdf
Theo yêu cầu chung của đề bài dành cho Scratch, kết quả cuối cùng phải được lưu vào biến tên chính xác là KQ và dùng lệnh say (KQ) để hiển thị.
Bài 1: Cầu Thang Nhà Sàn (20 điểm)
1. Phân tích đề bài
Yêu cầu: Tính tổng số thanh gỗ của cầu thang có bậc.
Bậc 1 cần thanh. Mỗi bậc tiếp theo cần nhiều hơn bậc trước 1 thanh (Dựa theo ví dụ mẫu: Các bậc cần: 3, 4, 5, 6, 7. Tổng = 25).
Đây là bài toán tính tổng của một dãy số cách đều tăng dần.
2. Hướng dẫn thuật toán
- Khởi tạo biến
KQbằng 0. - Khởi tạo biến
so_thanhbằng (số thanh gỗ của bậc hiện tại). - Lặp lại lần:
- Cộng
so_thanhvàoKQ. - Tăng
so_thanhlên 1 đơn vị cho bậc tiếp theo.
3. Chương trình cài đặt
Cách làm bằng Scratch
- Tạo các biến:
N,A,KQ,so_thanh,i(biến đếm vòng lặp). - Sử dụng khối lệnh
ask and waitđể nhập lần lượt và . - Lắp ráp các khối lệnh như sau:
- Khối lệnh Scratch:
Khi bấm vào lá cờ xanhHỏi (Nhập N:) và đợi-->Đặt [N] thành (trả lời)Hỏi (Nhập A:) và đợi-->Đặt [A] thành (trả lời)Đặt [KQ] thành (0)Đặt [so_thanh] thành (A)Lặp lại (N) lần:Đặt [KQ] thành (KQ + so_thanh)Thay đổi [so_thanh] một lượng (1)Nói (KQ)
Mã nguồn Python
Python
# Nhập dữ liệu từ bàn phím
N = int(input("Nhập N: "))
A = int(input("Nhập A: "))
# Khởi tạo
KQ = 0
so_thanh = A
# Vòng lặp tính tổng
for i in range(N):
KQ += so_thanh
so_thanh += 1
# In kết quả
print(KQ)
Bài 2: Đồ Nướng (20 điểm)
1. Phân tích đề bài
- Yêu cầu: Nhập vào số nguyên (số xiên nướng) và xếp hạng dựa trên điều kiện rẽ nhánh.
- Quy tắc phân loại:
-
"Dong" -
"Bac" -
"Vang" -
"Kim cuong"
2. Hướng dẫn thuật toán
Sử dụng cấu trúc điều kiện lồng nhau Nếu ... thì ... không thì ... (if ... elif ... else) kiểm tra từ mốc cao nhất xuống hoặc từ mốc thấp nhất lên.
3. Chương trình cài đặt
Cách làm bằng Scratch
- Tạo biến
NvàKQ. - Khối lệnh logic rẽ nhánh:
- Khối lệnh Scratch:
Hỏi (Nhập N:) và đợiĐặt [N] thành (trả lời)Nếuthì:Đặt [KQ] thành (Dong)Không nếu$<N < 50>thì:`Đặt [KQ] thành (Bac)Không nếu$<N < 100>thì:`Đặt [KQ] thành (Vang)Không thì:Đặt [KQ] thành (Kim cuong)Nói (KQ)
Mã nguồn Python
Python
N = int(input("Nhập N: "))
if N < 20:
KQ = "Dong"
elif N < 50:
KQ = "Bac"
elif N < 100:
KQ = "Vang"
else:
KQ = "Kim cuong"
print(KQ)
Bài 3: Dây Cồng Chiêng (30 điểm)
1. Phân tích đề bài
- Yêu cầu: Liệt kê các số từ 1 đến chia hết cho 2 hoặc chia hết cho 5.
- Các số trong kết quả đầu ra phải cách nhau bằng một ký tự trắng (khoảng cách).
- Giới hạn: có thể lên tới (ở Subtask 3). Với Scratch, việc xử lý chuỗi quá dài bằng cách ghép nối (
join) liên tục có thể bị chậm. Hãy tối ưu bằng cách chỉ xử lý vòng lặp cơ bản.
2. Hướng dẫn thuật toán
- Khởi tạo chuỗi
KQtrống (hoặc rỗng). - Cho một biến chạy
itừ 1 đến . - Nếu
ichia hết cho 2 (tức lài mod 2 = 0) HOẶCichia hết cho 5 (tức lài mod 5 = 0): - Kết hợp (ghép) số
ivà dấu cách vào biếnKQ.
3. Chương trình cài đặt
Cách làm bằng Scratch
- Tạo biến
N,KQ,i. - Khối lệnh lặp và kiểm tra:
- Khối lệnh Scratch:
Hỏi (Nhập N:) và đợiĐặt [N] thành (trả lời)Đặt [KQ] thành ()(để trống)Đặt [i] thành (1)Lặp lại (N) lần:Nếu<<(i mod 2) = 0> hoặc <(i mod 5) = 0>>thì:Đặt [KQ] thành (kết hợp (KQ) (kết hợp (i) ( )))(lưu ý có dấu cách ở cuối)Thay đổi [i] một lượng (1)Nói (KQ)
Mã nguồn Python
Do lớn, thay vì cộng chuỗi liên tục (gây tốn bộ nhớ), ta sử dụng cấu trúc mảng (list) rồi join lại để đạt tốc độ tối đa cho Subtask 3.
Python
N = int(input("Nhập N: "))
ket_qua_list = []
for i in range(1, N + 1):
if i % 2 == 0 or i % 5 == 0:
ket_qua_list.append(str(i))
# Ghép các phần tử lại với nhau bằng dấu cách
KQ = " ".join(ket_qua_list)
print(KQ)
Bài 4: Vòng Chung Kết (30 điểm)
1. Phân tích đề bài
- Quy tắc:
- Nếu điểm : đạt chuẩn điểm.
- Nếu điểm : không đạt chuẩn điểm.
- Cứ 3 con diều đạt chuẩn liên tiếp điểm thưởng thêm.
- Lưu ý quan trọng ở Subtask 3: Chuỗi liên tiếp vẫn được tính tiếp sau khi cộng thưởng. Ví dụ: Nếu đạt chuẩn liên tiếp 4 lần lần thứ 3 được cộng thưởng, đến lần thứ 4 thì chuỗi liên tiếp reset về lại thành 1 (hoặc ta đếm chuỗi đạt 3 thì cộng thưởng rồi reset biến đếm liên tiếp về 0 để đếm lại).
2. Hướng dẫn thuật toán
- Khởi tạo biến
KQ(tổng điểm) = 0. - Khởi tạo biến
lien_tiep= 0 (dùng để đếm số lượng diều đạt chuẩn liên tục). - Duyệt qua danh sách điểm số:
- Nếu điểm số :
KQ=KQ+ 100lien_tiep=lien_tiep+ 1- Nếu
lien_tiep= 3: KQ=KQ+ 200lien_tiep= 0 (Reset về 0 để tính chuỗi 3 con tiếp theo)- Ngược lại (điểm số ):
KQ=KQ- 50lien_tiep= 0 (Bị ngắt chuỗi liên tiếp)
3. Chương trình cài đặt
Cách làm bằng Scratch
Vì Scratch không xử lý mảng (List) trực tiếp qua một dòng nhập như Python dễ dàng, học sinh tiểu học thường sẽ nhập từng điểm một trong vòng lặp lần.
- Tạo các biến:
N,T,KQ,lien_tiep,diem_so,i. - Khối lệnh thực hiện:
- Khối lệnh Scratch:
Hỏi (Nhập N và T cách nhau khoảng trống:) và đợi(Hoặc hỏi N riêng, T riêng)Đặt [KQ] thành (0)Đặt [lien_tiep] thành (0)Lặp lại (N) lần:Hỏi (Nhập điểm của con diều tiếp theo:) và đợiĐặt [diem_so] thành (trả lời)Nếu<diem_soT>thì:Thay đổi [KQ] một lượng (100)Thay đổi [lien_tiep] một lượng (1)Nếu<lien_tiep= 3 >thì:Thay đổi [KQ] một lượng (200)Đặt [lien_tiep] thành (0)Không thì:Thay đổi [KQ] một lượng (-50)Đặt [lien_tiep] thành (0)Nói (KQ)
Mã nguồn Python
Xử lý dữ liệu đầu vào đúng chuẩn định dạng đề bài (Dòng 1 chứa N, T; Dòng 2 chứa dãy N số cách nhau bằng dấu cách).
Python
# Dòng 1: Nhập N và T
N, T = map(int, input().split())
# Dòng 2: Nhập danh sách điểm số
danh_sach_diem = list(map(int, input().split()))
KQ = 0
lien_tiep = 0
for diem in danh_sach_diem:
if diem >= T:
KQ += 100
lien_tiep += 1
if lien_tiep == 3:
KQ += 200
lien_tiep = 0 # Đạt đủ 3 con liên tiếp -> Nhận thưởng và đếm lại từ đầu
else:
KQ -= 50
lien_tiep = 0 # Bị ngắt chuỗi đạt chuẩn liên tiếp
print(KQ)
Chúc bạn ôn luyện và làm bài đạt kết quả cao nhất!