📎 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 KQ bằng 0.
  • Khởi tạo biến so_thanh bằng (số thanh gỗ của bậc hiện tại).
  • Lặp lại lần:
  • Cộng so_thanh vào KQ.
  • Tăng so_thanh lê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

  1. Tạo các biến: N, A, KQ, so_thanh, i (biến đếm vòng lặp).
  2. Sử dụng khối lệnh ask and wait để nhập lần lượt và .
  3. Lắp ráp các khối lệnh như sau:
  • Khối lệnh Scratch:
  • Khi bấm vào lá cờ xanh
  • Hỏ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

  1. Tạo biến NKQ.
  2. 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ếu thì:
  • Đặ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 KQ trống (hoặc rỗng).
  • Cho một biến chạy i từ 1 đến .
  • Nếu i chia hết cho 2 (tức là i mod 2 = 0) HOẶC i chia hết cho 5 (tức là i mod 5 = 0):
  • Kết hợp (ghép) số i và dấu cách vào biến KQ.

3. Chương trình cài đặt

Cách làm bằng Scratch

  1. Tạo biến N, KQ, i.
  2. 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 + 100
  • lien_tiep = lien_tiep + 1
  • Nếu lien_tiep = 3:
  • KQ = KQ + 200
  • lien_tiep = 0 (Reset về 0 để tính chuỗi 3 con tiếp theo)
  • Ngược lại (điểm số ):
  • KQ = KQ - 50
  • lien_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.

  1. Tạo các biến: N, T, KQ, lien_tiep, diem_so, i.
  2. 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_so T > 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!