Danh mục: Khoá học lập trình Python

22 Đề Thi Học Sinh Giỏi Tin Học THCS Tân Phước 2021–2022 (Kèm Lời Giải & Link Tải PDF/Code)

Bạn đang tìm kiếm tài liệu ôn thi Học sinh giỏi (HSG) Tin học cấp THCS chất lượng, bám sát cấu trúc đề thi thực tế? Bộ Đề thi Học sinh giỏi Tin học THCS Huyện Tân Phước năm học 2021–2022 chính là tài liệu vàng giúp học sinh rèn luyện tư duy thuật toán và bứt phá điểm số trong các kỳ thi sắp tới.

Cấu Trúc Đề Thi HSG Tin Học THCS Tân Phước 2021–2022

22-De-Thi-Hoc-Sinh-Gioi-Tin-Hoc-THCS-Tan-Phuoc-2021–2022-Kem-Loi-Giai-Link-Tai-PDF

22-De-Thi-Hoc-Sinh-Gioi-Tin-Hoc-THCS-Tan-Phuoc-2021–2022-Kem-Loi-Giai-Link-Tai-PDF

22-De-Thi-Hoc-Sinh-Gioi-Tin-Hoc-THCS-Tan-Phuoc-2021–2022-Kem-Loi-Giai-Link-Tai-PDF

22-De-Thi-Hoc-Sinh-Gioi-Tin-Hoc-THCS-Tan-Phuoc-2021–2022-Kem-Loi-Giai-Link-Tai-PDF

Đề thi được thiết kế nhằm đánh giá toàn diện kỹ năng lập trình, tư duy logic và khả năng tối ưu thuật toán của học sinh lớp 8, lớp 9 với các dạng bài từ cơ bản đến nâng cao:

  • Bài 1: Xử lý số học & Tính toán cơ bản – Kiểm tra kỹ năng sử dụng vòng lặp, câu lệnh điều kiện và các phép toán chia lấy phần nguyên/dư.

  • Bài 2: Xử lý Chuỗi & Ký tự – Bài toán đếm ký tự, tách từ, đảo ngược hoặc kiểm tra chuỗi đối xứng (Palindrome).

  • Bài 3: Mảng 1 chiều & Thuật toán Tối ưu – Tìm sub-array, đếm phần tử thỏa mãn điều kiện hoặc bài toán sắp xếp/tìm kiếm.

  • Bài 4: Bài toán Tư duy & Thuật toán Nâng cao – Đòi hỏi học sinh biết áp dụng kỹ thuật duyệt, quy hoạch động đơn giản hoặc tối ưu độ phức tạp thời gian $O(N)$.

🟢 ĐÁP ÁN BÀI 1: SỐ NGUYÊN TỐ VÀ ƯCLN

1. Phân tích đề

Cho hai số nguyên dương:

0 < A < B < 100

Yêu cầu:

a) Tìm các số nguyên tố từ A đến B

Ví dụ:

A = 10
B = 25

Các số nguyên tố là:

11 13 17 19 23

b) Tìm ƯCLN của A và B

UCLN(10, 25) = 5

2. Phần a — Kiểm tra số nguyên tố

Số nguyên tố là gì?

Một số nguyên tố là số:

  • Lớn hơn 1
  • Chỉ chia hết cho 1 và chính nó.

Ví dụ:

2, 3, 5, 7, 11, 13, 17…

Không phải số nguyên tố:

1
4
6
8
9
10

Cách kiểm tra số nguyên tố

Ta có thể thử chia n cho các số từ 2 đến √n.

Tại sao chỉ cần đến √n?

Nếu:

n = a × b

thì ít nhất một trong hai số a, b phải:

≤ √n

Ví dụ:

36 = 4 × 9

Ta chỉ cần kiểm tra đến:

√36 = 6

Hàm kiểm tra nguyên tố

def la_so_nguyen_to(n):
    if n < 2:
        return False

    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False

    return True

Giải thích

Nếu:

n < 2

thì chắc chắn không phải số nguyên tố.

for i in range(2, int(n ** 0.5) + 1):

Thử các ước từ 2 đến √n.

Nếu:

n % i == 0

thì n chia hết cho i, nghĩa là n có ước khác 1 và chính nó.

→ Không phải số nguyên tố.


3. Duyệt từ A đến B

Ta dùng:

for i in range(A, B + 1):

range() không lấy giá trị cuối nên phải dùng B + 1.

Ví dụ:

A = 10
B = 25
for i in range(A, B + 1):
print(i)

sẽ duyệt:

10
11
12
25

Sau đó kiểm tra từng số:

if la_so_nguyen_to(i):
print(i, end=” “)

4. Phần b — Tìm ƯCLN

Có nhiều cách tìm ƯCLN.

Cách rất quan trọng trong lập trình là thuật toán Euclid.

Công thức:

UCLN(a, b) = UCLN(b, a % b)

Lặp lại cho đến khi:

b = 0

Khi đó:

UCLN = a

Ví dụ UCLN(10, 25)

Ta có:

25 % 10 = 5

nên:

UCLN(10, 25)
= UCLN(25, 10)
= UCLN(10, 5)
= UCLN(5, 0)
= 5

5. GIẢI Code hoàn chỉnh Bài 1

def la_so_nguyen_to(n):
    if n < 2:
        return False

    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False

    return True


def ucln(a, b):
    while b != 0:
        a, b = b, a % b

    return a


A = int(input())
B = int(input())

# Tìm các số nguyên tố từ A đến B
for i in range(A, B + 1):
    if la_so_nguyen_to(i):
        print(i, end=" ")

print()

# Tìm UCLN
print(ucln(A, B))

Với:

Input
10
25

Kết quả:

11 13 17 19 23
5

Đúng với ví dụ trong đề.


6. Độ phức tạp Bài 1

Có:

B – A + 1

số cần kiểm tra.

Mỗi số kiểm tra đến căn bậc hai của nó.

Do đó độ phức tạp khoảng:

O((B-A)√B)

Với B < 100 thì cực kỳ nhanh.

Thuật toán ƯCLN

Thuật toán Euclid có độ phức tạp:

O(log(min(A, B)))

Đây là cách tìm ƯCLN rất hiệu quả.

🟠ĐÁP ÁN BÀI 2: ĐÁNH SỐ CÂY

Đây là bài rất hay vì nhìn đề có vẻ phải mô phỏng rất nhiều cây, nhưng thực ra không cần mô phỏng.

Theo đề:

  • Cây thứ 1 được đánh số 1
  • Hai cây tiếp theo được đánh số 2
  • Ba cây tiếp theo được đánh số 3
  • Bốn cây tiếp theo được đánh số 4

Tức là:

Số 1 xuất hiện 1 lần
Số 2 xuất hiện 2 lần
Số 3 xuất hiện 3 lần
Số 4 xuất hiện 4 lần

1. Viết thử ra giấy

Ta có:

Cây: 1 2 3 4 5 6 7 8 9 10 …
Số ghi: 1 2 2 3 3 3 4 4 4 4 …

Ví dụ:

N = 12

Ta có:

1 cây số 1
2 cây số 2
3 cây số 3
4 cây số 4

Tổng số cây:

1 + 2 + 3 + 4 = 10

Chưa đến cây thứ 12.

Tiếp theo:

5 cây số 5

Các cây:

11 → 5
12 → 5
13 → 5
14 → 5
15 → 5

Do đó:

N = 12
→ kết quả = 5

Đúng với ví dụ của đề.


2. Cách 1 — Mô phỏng đơn giản

Vì đề cho:

N ≤ 10^9

Ta không nên duyệt từ 1 đến N nếu muốn thuật toán tối ưu.

Nhưng để hiểu bài, có thể viết cách đơn giản:

N = int(input())

so = 1
tong = 0

while tong < N:
    tong += so
    if tong >= N:
        print(so)
        break

    so += 1

Ví dụ N = 12:

so = 1 → tong = 1
so = 2 → tong = 3
so = 3 → tong = 6
so = 4 → tong = 10
so = 5 → tong = 15

Vì:

10 < 12 ≤ 15

nên đáp án là:

5

3. Độ phức tạp cách 1

Ta cần tìm k sao cho:

1 + 2 + 3 + … + k ≥ N

Mà:

1 + 2 + … + k = k(k+1)/2

nên:

k(k+1)/2 ≥ N

Suy ra:

k ≈ √(2N)

Vì vậy cách mô phỏng có độ phức tạp:

O(√N)

Với:

N = 10^9

thì khoảng:

√10^9 ≈ 31623

Chỉ khoảng vài chục nghìn vòng lặp → vẫn rất nhanh.

 


🟢 ĐÁP ÁN BÀI 3: TRÒ CHƠI VỚI BĂNG SỐ?

1. Đề bài

Trên một cuộn giấy dài, người ta lần lượt viết N số nguyên dương.

Yêu cầu: Cắt cuộn giấy thành nhiều đoạn nhất sao cho tổng các số trong mỗi đoạn bằng nhau.

Dữ liệu vào:

  • Dòng đầu tiên chứa số nguyên dương N.
  • Dòng thứ hai chứa N số nguyên dương a1, a2, ..., aN.

Dữ liệu ra:

  • In ra số đoạn nhiều nhất có thể chia được.

Theo đề, N ≤ 10^3, vì vậy thuật toán O(N²) hoàn toàn phù hợp.


2. Hiểu đề bằng ví dụ

Ta có dãy:

10 2 6 2 5 2 1 2

Tổng tất cả các số là:

10 + 2 + 6 + 2 + 5 + 2 + 1 + 2 = 30

Có thể chia thành 3 đoạn:

Đoạn 1: 10
Đoạn 2: 2 + 6 + 2 = 10
Đoạn 3: 5 + 2 + 1 + 2 = 10

Như vậy:

10 | 2 6 2 | 5 2 1 2

Mỗi đoạn đều có tổng bằng 10.

Vì vậy kết quả là:

3

3. Nhận xét quan trọng

Gọi tổng toàn bộ dãy là:

S

Nếu chia được thành k đoạn bằng nhau thì tổng mỗi đoạn bắt buộc phải là:

S / k

Do đó:

S % k == 0

Nếu S không chia hết cho k thì chắc chắn không thể chia thành k đoạn có tổng bằng nhau.

Ví dụ:

S = 30

Ta có thể thử:

k = 8 → 30 không chia hết cho 8
k = 7 → 30 không chia hết cho 7
k = 6 → 30 chia hết cho 6
k = 5 → 30 chia hết cho 5
k = 3 → 30 chia hết cho 3
k = 2 → 30 chia hết cho 2
k = 1 → 30 chia hết cho 1

Nhưng mục tiêu là nhiều đoạn nhất, nên phải thử k từ lớn xuống nhỏ.


4. Tại sao thử số đoạn từ lớn xuống nhỏ?

Đề yêu cầu:

Chia thành nhiều đoạn nhất.

Giả sử có thể chia thành:

1 đoạn
2 đoạn
3 đoạn

thì đáp án phải là 3.

Vì vậy ta thử:

N, N-1, N-2, ..., 1

Ngay khi tìm được số đoạn hợp lệ đầu tiên thì đó chính là đáp án lớn nhất.


5. Cách kiểm tra một giá trị k

Giả sử:

S = 30
k = 3

Khi đó tổng mỗi đoạn phải là:

target = S // k
       = 30 // 3
       = 10

Ta duyệt dãy từ trái sang phải.

Ban đầu:

tong = 0

Đọc 10:

tong = 10

Đủ 10 nên tạo được đoạn thứ nhất:

10

Reset:

tong = 0

Đọc tiếp:

2
6
2

Ta có:

2 + 6 + 2 = 10

Tạo đoạn thứ hai.

Tiếp tục:

5 + 2 + 1 + 2 = 10

Tạo đoạn thứ ba.

Như vậy k = 3 hợp lệ.


6. Vì sao không được để tổng vượt target?

Giả sử:

target = 10

nhưng trong quá trình cộng ta có:

tong = 8

và phần tử tiếp theo là:

5

thì:

8 + 5 = 13 > 10

Đoạn hiện tại đã vượt quá 10.

Vì tất cả các số đều là số nguyên dương, ta không thể thêm hoặc bớt số nào để tổng quay lại bằng 10.

Do đó trường hợp này chắc chắn thất bại.


7. Thuật toán Bài 3

Các bước thực hiện:

Bước 1

Đọc N và dãy số.

Bước 2

Tính tổng toàn bộ dãy:

S = a1 + a2 + ... + aN

Bước 3

Thử số đoạn k từ N giảm xuống 1.

Bước 4

Nếu:

S % k != 0

thì bỏ qua k.

Bước 5

Tính:

target = S // k

Bước 6

Duyệt toàn bộ dãy.

Nếu:

tong + a[i] > target

thì k không hợp lệ.

Nếu:

tong + a[i] == target

thì hoàn thành một đoạn và đặt:

tong = 0

Bước 7

Nếu tạo được đúng k đoạn thì in k và kết thúc.


8. Code Python Bài 3

import sys

sys.stdin = open("BL3.INP", "r")
sys.stdout = open("BL3.OUT", "w")

n = int(input())
a = list(map(int, input().split()))

tong_all = sum(a)

# Thử số đoạn từ lớn xuống nhỏ
for k in range(n, 0, -1):

    # Tổng không chia hết cho k
    if tong_all % k != 0:
        continue

    target = tong_all // k

    # Nếu target nhỏ hơn phần tử lớn nhất
    # thì chắc chắn không thể chia
    if target < max(a):
        continue

    tong = 0
    dem = 0
    ok = True

    for x in a:

        tong += x

        # Tổng một đoạn đã vượt target
        if tong > target:
            ok = False
            break

        # Hoàn thành một đoạn
        if tong == target:
            dem += 1
            tong = 0

    # Kiểm tra có đúng k đoạn hay không
    if ok and tong == 0 and dem == k:
        print(k)
        break

9. Giải thích từng phần code Bài 3

Đọc dữ liệu

import sys

sys.stdin = open("BL3.INP", "r")
sys.stdout = open("BL3.OUT", "w")

Hai dòng:

sys.stdin = open("BL3.INP", "r")
sys.stdout = open("BL3.OUT", "w")

giúp chương trình đọc dữ liệu từ file BL3.INP và ghi kết quả vào BL3.OUT.

Đây là cách thường dùng trong các bài thi lập trình sử dụng file.


Đọc N và dãy số

n = int(input())
a = list(map(int, input().split()))

Ví dụ:

8
10 2 6 2 5 2 1 2

thì:

n = 8
a = [10, 2, 6, 2, 5, 2, 1, 2]

Tính tổng toàn bộ dãy

tong_all = sum(a)

Ta có:

tong_all = 30

Thử số đoạn từ lớn xuống

for k in range(n, 0, -1):

Nếu:

n = 8

thì:

k = 8
7
6
5
4
3
2
1

Mục đích là tìm số đoạn lớn nhất.


Kiểm tra tổng có chia hết cho k

if tong_all % k != 0:
    continue

Ví dụ:

30 % 7 != 0

nên không thể chia thành 7 đoạn bằng nhau.

Ta bỏ qua:

continue

Tính tổng mỗi đoạn

target = tong_all // k

Ví dụ:

30 / 3 = 10

Do đó mỗi đoạn phải có tổng bằng 10.


Biến tổng

tong = 0

Biến này lưu tổng của đoạn hiện tại.

Ví dụ đang xét:

2 6 2

thì:

tong = 2
tong = 8
tong = 10

Khi bằng target thì hoàn thành một đoạn.


Kiểm tra vượt quá target

if tong > target:
    ok = False
    break

Ví dụ:

target = 10
tong = 8
x = 5

thì:

tong = 13

vượt quá 10.

Do các số đều dương nên không thể sửa lại được.


Khi đủ một đoạn

if tong == target:
    dem += 1
    tong = 0

Ta tăng số đoạn:

dem += 1

sau đó bắt đầu đoạn mới:

tong = 0

10. Chạy thử Bài 3

Input:

8
10 2 6 2 5 2 1 2

Tổng:

30

Thử:

k = 8
30 không chia hết 8

k = 7
30 không chia hết 7

k = 6
target = 5

Phần tử đầu tiên là 10, lớn hơn 5 nên không thể.

Tiếp tục:

k = 5
target = 6

Phần tử đầu tiên 10 > 6, không thể.

Tiếp tục:

k = 3
target = 10

Ta chia được:

10
2 + 6 + 2 = 10
5 + 2 + 1 + 2 = 10

Vậy:

Đáp án = 3

Output:

3

11. Độ phức tạp Bài 3

Với mỗi giá trị k, ta có thể phải duyệt toàn bộ N phần tử.

Có tối đa N giá trị k cần thử.

Do đó độ phức tạp trong trường hợp xấu nhất là:

O(N²)

Bộ nhớ:

O(N)

do cần lưu dãy số.

Với N ≤ 1000 như đề bài, O(N²) tương đương khoảng tối đa một triệu phép kiểm tra, hoàn toàn phù hợp.


🟢GIẢI ĐÁP ÁN BÀI 4: XẾP HÀNG HÓA?

1. Đề bài

Tại một bến cảng, công nhân lần lượt bốc các kiện hàng từ tàu lên xe container.

Các kiện hàng phải được xử lý theo đúng thứ tự:

kiện 1 → kiện 2 → kiện 3 → ... → kiện n

Mỗi xe container có tải trọng tối đa là M.

Khi kiện hàng tiếp theo không thể đặt vào xe hiện tại vì tổng trọng lượng sẽ vượt quá M, phải chuyển sang xe tiếp theo.

Yêu cầu:

Tìm số chuyến xe ít nhất để vận chuyển hết hàng hóa.

Đây là bài toán tham lam – Greedy rất điển hình.


2. Ví dụ

Giả sử:

n = 10
M = 15

Các kiện hàng:

7 6 8 8 7 5 2 4 3 9

Ta xếp lần lượt.

Xe 1

7 + 6 = 13

Thêm 8:

13 + 8 = 21 > 15

Không được.

Xe 1:

7 + 6 = 13

Xe 2

Đặt:

8

Kiện tiếp theo 8:

8 + 8 = 16 > 15

Không được.

Xe 2:

8

Xe 3

Đặt:

8

Tiếp tục 7:

8 + 7 = 15

Vừa đủ.

Sau đó 5:

15 + 5 > 15

nên dừng.

Xe 3:

8 + 7 = 15

Tiếp tục tương tự:

Xe 4: 5 + 2 + 4 + 3 = 14
Xe 5: 9

Vậy cần:

5 chuyến xe

3. Ý tưởng Greedy

Điểm quan trọng nhất của bài này là:

Không được đổi thứ tự các kiện hàng.

Mỗi kiện hàng phải được đưa lên xe theo đúng thứ tự ban đầu.

Vì vậy ta chỉ cần quan tâm đến:

Xe hiện tại đang chở bao nhiêu?

Gọi:

tong

là tổng trọng lượng hàng đang nằm trên xe hiện tại.

Với mỗi kiện hàng x:

Trường hợp 1

Nếu:

tong + x <= M

thì kiện hàng vẫn đặt được lên xe hiện tại.

Ta thực hiện:

tong += x

Trường hợp 2

Nếu:

tong + x > M

thì kiện hàng không thể đặt lên xe hiện tại.

Bắt buộc phải sử dụng xe mới.

Ta:

so_xe += 1
tong = x

4. Tại sao cách Greedy là tối ưu?

Đây là phần rất quan trọng khi giải bài thi.

Giả sử xe hiện tại đang chứa tổng trọng lượng:

tong

và kiện tiếp theo có trọng lượng:

x

Nếu:

tong + x > M

thì xe hiện tại chắc chắn không thể chứa kiện x.

Không có cách nào khác để đưa x vào xe hiện tại, bởi vì:

  • Không được bỏ kiện hàng trước đó.
  • Không được đổi thứ tự.
  • Không được đưa kiện x sang trước.
  • Xe chỉ được chở tối đa M.

Do đó, bắt buộc phải mở xe mới.

Đây chính là lý do thuật toán tham lam hoạt động.


5. Thuật toán Bài 4

Bước 1

Đọc:

n, M

Bước 2

Đọc n trọng lượng.

Bước 3

Khởi tạo:

so_xe = 1
tong = 0

n ≥ 1 nên ban đầu chắc chắn cần ít nhất một xe.

Bước 4

Duyệt từng kiện hàng x.

Nếu:

tong + x <= M

thì:

tong += x

Ngược lại:

so_xe += 1
tong = x

Bước 5

In:

so_xe

6. Code Python Bài 4

import sys

sys.stdin = open("BL4.INP", "r")
sys.stdout = open("BL4.OUT", "w")

n, M = map(int, input().split())
a = list(map(int, input().split()))

so_xe = 1
tong = 0

for x in a:

    if tong + x <= M:
        # Kiện hàng vẫn đặt được vào xe hiện tại
        tong += x
    else:
        # Không đủ chỗ, chuyển sang xe mới
        so_xe += 1
        tong = x

print(so_xe)

7. Giải thích code Bài 4

Đọc dữ liệu

n, M = map(int, input().split())

Ví dụ:

10 15

thì:

n = 10
M = 15

Trong đó:

  • n: số kiện hàng.
  • M: tải trọng tối đa của một xe.

Đọc trọng lượng

a = list(map(int, input().split()))

Ví dụ:

7 6 8 8 7 5 2 4 3 9

Khởi tạo

so_xe = 1
tong = 0

Ban đầu:

Chưa có hàng trên xe
Đang sử dụng xe số 1

Duyệt từng kiện

for x in a:

Mỗi vòng lặp lấy một kiện hàng.

Ví dụ:

x = 7

sau đó:

x = 6

rồi:

x = 8

Kiểm tra sức chứa

if tong + x <= M:

Nếu vẫn còn đủ tải trọng thì cho kiện hàng vào xe.

Ví dụ:

M = 15
tong = 7
x = 6

Ta có:

7 + 6 = 13 <= 15

nên:

tong += x

Kết quả:

tong = 13

Khi xe không chứa được kiện tiếp theo

Ví dụ:

tong = 13
x = 8
M = 15

Ta có:

13 + 8 = 21 > 15

Không thể đặt 8 vào xe hiện tại.

Ta mở xe mới:

so_xe += 1
tong = x

Kết quả:

so_xe = 2
tong = 8

8. Chạy thử Bài 4

Input:

10 15
7 6 8 8 7 5 2 4 3 9

Quá trình:

Xe 1:
7 + 6 = 13

Xe 2:
8

Xe 3:
8 + 7 = 15

Xe 4:
5 + 2 + 4 + 3 = 14

Xe 5:
9

Kết quả:

5

Output:

5

Ví dụ này cũng trùng với ví dụ được đăng lại từ đề bài.


9. Độ phức tạp Bài 4

Ta chỉ duyệt qua dãy đúng một lần.

Nếu có N kiện hàng:

Thời gian: O(N)

Bộ nhớ ngoài mảng đầu vào:

O(1)

Nếu lưu toàn bộ dãy:

O(N)

Có thể viết chương trình tiết kiệm bộ nhớ hơn bằng cách đọc từng số, nhưng với đề thi thông thường thì lưu mảng như trên rất dễ hiểu.


10. So sánh hai bài toán

Nội dungBài 3 – Trò chơi với băng sốBài 4 – Xếp hàng hóa
Dạng bàiChia đoạnChia nhóm liên tiếp
Điều kiệnTổng các đoạn bằng nhauTổng mỗi xe không vượt M
Kỹ thuậtDuyệt thử số đoạnGreedy
Thứ tự phần tửGiữ nguyênGiữ nguyên
Độ phức tạpO(N²)O(N)
Bộ nhớO(N)O(N) nếu lưu mảng
Điểm quan trọngTổng toàn bộ phải chia hết cho số đoạnKhi kiện tiếp theo không vừa thì mở xe mới

11. Những lỗi thường gặp

Lỗi 1: Bài 3 chỉ tìm một cách chia

Đề yêu cầu:

nhiều đoạn nhất

Do đó không được dừng ở cách chia đầu tiên tìm thấy nếu đang thử số đoạn từ nhỏ lên.

Cách tốt hơn là:

N → N-1 → N-2 → ... → 1

Lỗi 2: Quên kiểm tra tổng chia hết

Ví dụ:

S = 30
k = 7

Không thể có tổng mỗi đoạn là:

30 / 7

vì không phải số nguyên.

Do đó cần:

if tong_all % k != 0:
    continue

Lỗi 3: Bài 3 cho phép tổng vượt target

Không được.

Nếu:

target = 10
tong = 8
x = 5

thì:

tong = 13

Đoạn đó thất bại ngay.


Lỗi 4: Bài 4 sắp xếp các kiện hàng

Không được viết:

a.sort()

Bởi vì đề yêu cầu các kiện hàng phải được bốc lần lượt theo thứ tự ban đầu.

Ví dụ:

7 6 8 8 7

không được biến thành:

6 7 7 8 8

Lỗi 5: Dùng bài toán ba lô hoặc tìm mọi cách kết hợp

Bài 4 không yêu cầu tìm cách sắp xếp tối ưu tùy ý.

Thứ tự kiện hàng đã cố định.

Vì vậy chỉ cần:

nhét được → nhét
không nhét được → xe mới

Đây là tư duy Greedy.


12. Mẹo ghi nhớ nhanh

Bài 3

Hãy nhớ 4 bước:

TỔNG → THỬ k → TÍNH TARGET → KIỂM TRA

Trong đó:

target = Tổng / k

và thử:

k từ lớn xuống nhỏ

Bài 4

Chỉ cần nhớ:

Còn chỗ → cho vào
Hết chỗ → xe mới

Công thức kiểm tra:

tong + x <= M

Nếu đúng:

tong += x

Nếu sai:

so_xe += 1
tong = x

13. Phiên bản code ngắn gọn Bài 3

Sau khi đã hiểu thuật toán, có thể viết ngắn hơn:

import sys

sys.stdin = open("BL3.INP", "r")
sys.stdout = open("BL3.OUT", "w")

n = int(input())
a = list(map(int, input().split()))

S = sum(a)

for k in range(n, 0, -1):
    if S % k != 0:
        continue

    target = S // k
    tong = 0
    dem = 0

    for x in a:
        tong += x

        if tong > target:
            break

        if tong == target:
            dem += 1
            tong = 0

    if dem == k and tong == 0:
        print(k)
        break

14. Phiên bản code ngắn gọn Bài 4

import sys

sys.stdin = open("BL4.INP", "r")
sys.stdout = open("BL4.OUT", "w")

n, M = map(int, input().split())
a = list(map(int, input().split()))

xe = 1
tong = 0

for x in a:
    if tong + x <= M:
        tong += x
    else:
        xe += 1
        tong = x

print(xe)

15. Kết luận

Hai bài toán nhìn qua khá giống nhau vì đều yêu cầu chia một dãy số thành các nhóm liên tiếp, nhưng cách tư duy hoàn toàn khác nhau.

Bài 3 – Trò chơi với băng số:

  • Tính tổng toàn bộ dãy.
  • Muốn chia thành k đoạn thì tổng mỗi đoạn phải là S/k.
  • Thử k từ lớn xuống nhỏ.
  • Dùng tổng tích lũy để kiểm tra.
  • Với N ≤ 1000, thuật toán O(N²) là phù hợp.

Bài 4 – Xếp hàng hóa:

  • Không được thay đổi thứ tự kiện hàng.
  • Duyệt từ trái sang phải.
  • Nếu kiện tiếp theo vẫn vừa xe thì cho vào.
  • Nếu không vừa thì mở xe mới.
  • Thuật toán Greedy có độ phức tạp O(N).

Đây là hai dạng bài rất đáng học vì giúp hình thành hai kỹ thuật quan trọng trong lập trình thi đấu:

Bài 3 → Duyệt các khả năng + kiểm tra tổng
Bài 4 → Thuật toán tham lam (Greedy)

Nếu nắm chắc hai mẫu tư duy này, bạn sẽ gặp rất nhiều bài tương tự trong các đề thi học sinh giỏi Tin học.



Tại Sao Bạn Nên Luyện Đề Thi Này?

  • Bám sát thực tế: Đề thi phản ánh đúng độ khó và xu hướng ra đề của các huyện trong khu vực.

  • Rèn tư duy tối ưu: Giúp học sinh chuyển dịch từ tư duy “viết code cho chạy được” sang “viết code tối ưu thời gian $O(N)$ và bộ nhớ”.

  • Đa dạng ngôn ngữ: Đề bài hỗ trợ giải bằng cả Python, Pascal, hoặc C++.

Tải Xuống Trọn Bộ Đề Thi & Đáp Án Chi Tiết

Bộ file tải về bao gồm:

  1. File đề thi gốc định dạng PDF (sắc nét, dễ in ấn).

  2. Đáp án chi tiết và hướng dẫn chấm điểm.

  3. Bộ Test mẫu (Input/Output) và Code mẫu (C++ / Python) đã qua kiểm thử thành công.

👉 LINK TẢI VỀ TRỌN BỘ ĐỀ THI & CODE MẪU (GOOGLE DRIVE) (Nhấp vào để tải miễn phí)

Bí Quyết Ôn Luyện HSG Tin Học Đạt Giải Cao

  • Nắm chắc nền tảng: Ôn tập kỹ kiến thức mảng, chuỗi, các hàm toán học và câu lệnh lặp.

  • Tối ưu thời gian chạy: Luôn chú ý đến giới hạn $N$ của đề bài để chọn thuật toán phù hợp, tránh lỗi TLE (Time Limit Exceeded).

  • Luyện tập thường xuyên: Làm lại đề thi các năm trước và tham gia giải bài trên các hệ thống chấm công khai (Online Judge).

🖥️ Vi Tính Tấn Dân – Đồng Hành Cùng Tri Thức & Công Nghệ

Bên cạnh việc chia sẻ kiến thức và tài liệu học tập miễn phí, Vi Tính Tấn Dân tự hào là đơn vị uy tín chuyên cung cấp:

  • 💻 Dàn máy tính PC Lập trình – Học tập – Chơi game cấu hình tối ưu, giá rẻ.

  • 🛠️ Dịch vụ sửa chữa, nâng cấp Laptop & PC nhanh chóng, tận tâm tại Đồng Tháp.

  • 🎧 Linh phụ kiện máy tính chính hãng (Bàn phím, chuột, màn hình, SSD…).

Nếu bạn đang tìm kiếm một chiếc máy tính mượt mà để phục vụ việc học lập trình C++, Python hay Pascal, hãy liên hệ ngay với Vi Tính Tấn Dân để nhận được sự tư vấn chu đáo nhất!

7. Cách thức đăng ký và đóng học phí như thế nào?

Bạn có thể liên hệ trực tiếp với Thầy qua các kênh sau để được tư vấn và nhận báo giá ưu đãi:

  • Số điện thoại / Zalo: 0937.179.278

  • Hình thức đóng phí: Chuyển khoản ngân hàng hoặc nộp trực tiếp tại cơ sở (nếu học offline).

Đạt giải 3 học sinh giỏi tin học cấp tỉnh

Đạt giải 3 học sinh giỏi tin học cấp tỉnh

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Vui lòng Chấm điểm 5 sao trang cho bài viết hay !

 

 

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

📞 Thông Tin Liên Hệ:

  • Website: vitinhtandan.com

  • Hotline/Zalo: (0937.179.278)

  • Địa chỉ: (Tổ 5, Ấp Tân Lược 1, xã Tân Hương, Đồng Tháp)

Chúc các bạn học sinh ôn luyện thật tốt và đạt kết quả cao nhất trong kỳ thi Học sinh giỏi Tin học lớp 9 sắp tới!

#HSGTinHoc #DeThiHSGTinHoc #TinHocTHCS #TanPhuoc #LapTrinhPython #LapTrinhCPP #HocSinhGioiTinHoc #OnThiHSG #KhungThuatToan #ViTinhTanDan #TinHocTanDan

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Kỳ thi Học sinh giỏi (HSG) Tin học lớp 9 cấp xã và tỉnh luôn là một trong những thử thách lớn đối với các bạn học sinh đam mê lập trình và thuật toán. Để đạt được thành tích cao, việc luyện đề và cọ xát với các dạng bài thi thực tế từ các năm trước là phương pháp ôn luyện vô cùng hiệu quả.

Nhằm đồng hành cùng các bạn học sinh và quý thầy cô trên địa bàn tỉnh, Vi Tính Tấn Dân xin chia sẻ Bộ 21 Đề thi HSG Tin học lớp 9 Đồng Tháp năm học 2026 – 2027 (Kèm đáp án và hướng dẫn giải chi tiết).

📌 Tổng Quan Tệp Tài Liệu Đề Thi HSG Tin Học Lớp 9 Đồng Tháp

Bộ tài liệu được sưu tầm, tuyển chọn và biên soạn kỹ lưỡng, bám sát cấu trúc đề thi chính thức của Sở GD&ĐT Tỉnh Đồng Tháp qua các kỳ thi gần đây.

Thông Tin Tài LiệuChi Tiết
Môn thiTin học (Khối 9)
Khu vựcTỉnh Đồng Tháp
Năm học2026 – 2027
Số lượng21 Đề thi hoàn chỉnh
Định dạngFile PDF / Word (Dễ dàng tải & in ấn)
Đính kèmĐáp án, Test case & Code mẫu (Pascal / C++ / Python)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Đáp án đề thi HSG Tin học lớp 9 cấp thị xã Gò Công:

Đây là một đề HSG THCS khá hay, gồm 5 bài với mức độ từ cơ bản → vận dụng. Mình sẽ phân tích từng bài theo đúng phong cách luyện HSG:

  • Ý tưởng
  • Thuật toán
  • Độ phức tạp
  • Lưu ý dễ sai
  • Code Python dùng sys.stdin=open(...)
  • Giải thích từng dòng

Đáp Án Bài 1: DAY – Ngày lắng nghe:

Đề bài

Cho một ngày dạng

dd/mm
So sánh với
14/02
In ra
BEFORE
nếu trước
AFTER
nếu sau
EXACTLY
nếu đúng.

Phân tích

Ví dụ

15/01
Ngày 15 tháng 1

thì

15/1 < 14/2
=> BEFORE

Ví dụ

01/03
tháng 3

lớn hơn tháng 2

=> AFTER


Ý tưởng

Có hai trường hợp

Nếu tháng nhỏ hơn 2

BEFORE
Nếu tháng lớn hơn 2
AFTER
Nếu tháng bằng 2

So tiếp ngày.

day<14
BEFORE
day==14
EXACTLY
day>14
AFTER

Thuật toán

Đọc chuỗi
Tách ngày và tháng
Nếu month<2
      BEFORE
Nếu month>2
      AFTER
Nếu month==2
      day<14
            BEFORE
      day==14
            EXACTLY
      day>14
            AFTER

Độ phức tạp

Đọc đúng 1 lần

O(1)
Bộ nhớ
O(1)
Nhanh gần như tức thì.

Code Python

import sys
sys.stdin = open("DAY.INP", "r")
sys.stdout = open("DAY.OUT", "w")
s = input()
ngay, thang = map(int, s.split("/"))
if thang < 2:
    print("BEFORE")
elif thang > 2:
    print("AFTER")
else:
    if ngay < 14:
        print("BEFORE")
    elif ngay == 14:
        print("EXACTLY")
    else:
        print("AFTER")

Chú ý

Nhiều bạn so sánh

dd/mm
dưới dạng chuỗi

Ví dụ

9/2
14/2
sẽ sai.

Phải chuyển sang số nguyên.


Đáp Án Bài 2: SUNFLOWER


Đề

Có n bông hoa.

Hoa đặc biệt nếu số hạt là số nguyên tố.

Đếm có bao nhiêu hoa đặc biệt.

1≤n≤10000

ai≤10^12

Phân tích

Ví dụ

1 4 3
chỉ có
3
là nguyên tố.

Đáp án

1

Khó ở đâu?

ai≤10^12
Không thể sàng Eratosthenes.

Ta phải kiểm tra nguyên tố từng số.


Kiểm tra nguyên tố

Một số nguyên tố chỉ cần thử đến

√n
Ví dụ
97
√97≈9

chỉ thử

2
3
5
7
là đủ.

Thuật toán kiểm tra

Nếu

n<2
không nguyên tố.

Nếu

2
nguyên tố.

Nếu

chia hết cho 2
không nguyên tố.

Sau đó

3
5
7
9
11
...
tăng
2
đến
√n
Nếu chia hết

không nguyên tố.

Ngược lại

nguyên tố.


Vì sao đúng?

Nếu

n=a×b
thì luôn tồn tại
a≤√n
nên chỉ cần thử tới căn.

Thuật toán

ans=0
lặp qua từng ai
      nếu nguyên tố
             ans+=1
in ans

Độ phức tạp

Giả sử

M=max(ai)
Mỗi số
O(√M)
Ở đây
√10^12=10^6
Nên
O(n√M)
Trong thực tế rất nhanh vì:
  • gặp ước sẽ dừng sớm
  • nhiều số chẵn
  • n chỉ 10000

Code Python

 
import sys
import math

sys.stdin = open("SUNFLOWER.INP", "r")
sys.stdout = open("SUNFLOWER.OUT", "w")


def nguyen_to(x):
    if x < 2:
        return False

    if x == 2:
        return True

    if x % 2 == 0:
        return False

    i = 3

    while i <= math.isqrt(x):
        if x % i == 0:
            return False
        i += 2

    return True


n = int(input())

a = list(map(int, input().split()))

dem = 0

for x in a:
    if nguyen_to(x):
        dem += 1

print(dem)
 

Vì sao dùng math.isqrt()

Thay vì

int(math.sqrt(x))
ta dùng
math.isqrt(x)
Ưu điểm
  • Chính xác với số rất lớn.
  • Không bị sai số số thực.
  • Nhanh hơn.

Các lỗi thường gặp

Sai 1

1
không phải số nguyên tố.

Sai 2

Quên xét

2

Sai 3

Thử đến

n
thay vì
√n
→ quá chậm.

Sai 4

Dùng

for i in range(2, x):
với
10^12
sẽ không chạy được.

Tổng kết

BàiThuật toánĐộ phức tạpĐộ khó
DAYSo sánh ngày, thángO(1)★☆☆☆☆
SUNFLOWERKiểm tra số nguyên tố đến √nO(n√M)★★☆☆☆

Đáp Án Bài 3: ROBOT (4 điểm)


Đề bài

  • n cây
  • vị trí robot là p
  • pin đủ đi được k đơn vị chỉ từ trái sang phải

Có n cây tại các vị trí

a1 < a2 < ... < an
Đếm xem robot thu hoạch được bao nhiêu cây.

Ví dụ

4 3 4

2 5 6 9
Robot

ở vị trí

3
đi được
4
đơn vị

nên tới

7
Các cây nằm trong đoạn
[3 ; 7]
5
6
=> đáp án
2

Phân tích

Robot KHÔNG quay lại.

Robot chỉ đi

p → p+k
Vậy cây được thu hoạch khi
p ≤ ai ≤ p+k
Bài toán trở thành:

Đếm bao nhiêu số nằm trong đoạn [L,R].


Ý tưởng 1 (dễ hiểu)

Duyệt toàn bộ mảng.

Nếu

p<=ai<=p+k
thì
dem+=1

Thuật toán

 
Đọc dữ liệu

dem=0

For mỗi cây

    nếu p<=ai<=p+k

          dem++

In dem
 

Độ phức tạp

n≤10^6

Chỉ duyệt đúng một lần.

Thời gian

O(n)

Bộ nhớ

O(n)

(vì lưu mảng)

Nếu đọc từng số cũng chỉ O(1) bộ nhớ.


Vì sao đúng?

Mỗi cây chỉ có hai khả năng

  • nằm trong đoạn
  • không nằm trong đoạn

Duyệt hết một lần sẽ không bỏ sót.


Code Python

 
import sys
sys.stdin = open("ROBOT.INP", "r")
sys.stdout = open("ROBOT.OUT", "w")
n, p, k = map(int, input().split())
a = list(map(int, input().split()))
dem = 0
for x in a:
    if p <= x <= p + k:
        dem += 1
print(dem)

Nếu muốn nhanh hơn?

Do dãy đã tăng dần

Có thể dùng

binary search

tìm

  • vị trí đầu tiên ≥ p
  • vị trí cuối cùng ≤ p+k

Độ phức tạp

O(log n)

nhưng đề này O(n) đã đủ.


Các lỗi thường gặp

Sai

if x>p and x<p+k

Sẽ bỏ mất cây ở

p

hoặc

p+k

Phải là

if p<=x<=p+k


Đáp Án Bài 4: LAVENDER


Đề

m dòng

n cột

Ma trận

Đếm số phần tử

>=T

Ví dụ

2 3 50

10 12 50

44 60 55

50

60

55

=>3


Phân tích

Không yêu cầu tìm vị trí.

Không yêu cầu sắp xếp.

Chỉ cần đếm.


Ý tưởng

Đọc từng số

Nếu

>=T

thì tăng biến đếm.


Thuật toán

Đọc
m n T
dem=0
Lặp m lần
      đọc một dòng
      duyệt n số
            nếu >=T
                  dem++
In dem

Độ phức tạp

m,n≤1000
Nhiều nhất
10^6
phần tử.

Thời gian

O(mn)
Bộ nhớ
O(n)
vì chỉ lưu từng dòng.

Vì sao đúng?

Mỗi phần tử được xét đúng một lần.

Không bỏ sót.


Code

 
import sys

sys.stdin = open("LAVENDER.INP", "r")
sys.stdout = open("LAVENDER.OUT", "w")

m, n, T = map(int, input().split())

dem = 0

for _ in range(m):

    dong = list(map(int, input().split()))

    for x in dong:

        if x >= T:
            dem += 1

print(dem)

Tối ưu bộ nhớ

Không cần

a=[]
vì đề không yêu cầu dùng lại.

Đọc từng dòng là tốt nhất.


Lỗi thường gặp

Viết

if x>T
sai.

Đề là

>=T

Đáp Án Bài 5: ESSENCE


Đề

Cho chuỗi

Ví dụ

ABCCDZDC

Độ đậm đặc

=

số lần xuất hiện nhiều nhất của một ký tự.

Ví dụ

A :1

B :1

C :3

D :2

Z :1

Đáp án

3

Phân tích

Đây chính là

tần số lớn nhất.


Cách 1 (đơn giản)

Dùng Dictionary.


Ý tưởng

Duyệt chuỗi.

Nếu ký tự chưa có

thêm vào.

Nếu có

tăng lên 1.

Sau đó lấy giá trị lớn nhất.


Thuật toán

Đọc chuỗi

Dictionary rỗng

For ký tự

      tăng số lần xuất hiện

In max(dictionary.values())

Độ phức tạp

Chuỗi dài

1000
Thời gian
O(n)
Bộ nhớ
O(26)
vì chỉ có chữ cái tiếng Anh in hoa.

Vì sao đúng?

Dictionary lưu đúng số lần xuất hiện từng ký tự.

Giá trị lớn nhất chính là đáp án.


Code Python

import sys

sys.stdin = open("ESSENCE.INP", "r")
sys.stdout = open("ESSENCE.OUT", "w")

s = input()

dem = {}

for ch in s:

    if ch not in dem:
        dem[ch] = 1
    else:
        dem[ch] += 1

print(max(dem.values()))

Cách 2 (đẹp hơn)

Dùng mảng 26 phần tử.


Ý tưởng

A ->0

B ->1

...

Z ->25

Mỗi lần gặp

ord(ch)-ord('A')
thì tăng lên.

Code Python

import sys

sys.stdin = open("ESSENCE.INP", "r")
sys.stdout = open("ESSENCE.OUT", "w")

s = input()

cnt = [0] * 26

for ch in s:

    cnt[ord(ch) - ord('A')] += 1

print(max(cnt))

Vì sao mảng nhanh hơn Dictionary?

  • Truy cập trực tiếp theo chỉ số (O(1) với hằng số rất nhỏ).
  • Không cần băm (hash).
  • Chỉ có 26 chữ cái nên rất phù hợp.

Tổng kết cả đề

BàiÝ tưởngĐộ phức tạpBộ nhớMức độ
Bài 1 – DAYSo sánh ngày, thángO(1)O(1)
Bài 2 – SUNFLOWERKiểm tra số nguyên tố đến √nO(n√M)O(1)⭐⭐
Bài 3 – ROBOTĐếm số vị trí trong đoạn [p, p+k]O(n)O(n) (hoặc O(1) nếu đọc từng số)⭐⭐
Bài 4 – LAVENDERDuyệt ma trận, đếm số ≥ TO(mn)O(n)
Bài 5 – ESSENCEĐếm tần suất ký tự (Dictionary hoặc mảng 26 phần tử)O(n)O(26)

🎯 Nhận xét về Cấu Trúc Trọng Tâm Trong Đề Thi HSG Tin Học 9 Đồng Tháp

Đây là đề HSG THCS thiên về kỹ năng lập trình cơ bản, chưa yêu cầu các thuật toán nâng cao như quy hoạch động, đồ thị hay cây dữ liệu.

Các kiến thức chính được kiểm tra gồm:

  • Bài 1: Rẽ nhánh (if...elif...else).
  • Bài 2: Hàm kiểm tra số nguyên tố và tối ưu đến √n.
  • Bài 3: Duyệt mảng, xử lý đoạn giá trị; có thể mở rộng bằng tìm kiếm nhị phân.
  • Bài 4: Duyệt ma trận và đếm theo điều kiện.
  • Bài 5: Đếm tần suất bằng dict hoặc mảng đếm.

Đây là một đề rất phù hợp để ôn luyện cho học sinh mới bắt đầu thi HSG Tin học vì bao quát nhiều kỹ năng nền tảng quan trọng.

💡 Lời khuyên từ Vi Tính Tấn Dân: Đề thi Tin học lớp 9 hiện nay hướng nhiều đến tư duy thuật toán tối ưu thời gian (O(N \logN) hoặc O(N)). Luyện tập thường xuyên với bộ đề này sẽ giúp bạn làm quen với áp lực thời gian và hạn chế tối đa các lỗi quá thời gian (Time Limit Exceeded).

73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang có ĐÁP ÁN (Mới & Chọn Lọc)

73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang có ĐÁP ÁN (Mới & Chọn Lọc)

📥 Link Tải Bộ 21 Đề Thi HSG Tin Học 9 Đồng Tháp (File Chuẩn)

Các bạn học sinh và thầy cô có thể tải trọn bộ đề thi hoàn toàn miễn phí theo đường dẫn dưới đây:

👉 [LINK TẢI TRỌN BỘ 21 ĐỀ THI HSG TIN HỌC LỚP 9 ĐỒNG THÁP (PDF/WORD)]

Tải bằng google driver

(Lưu ý: Nếu gặp bất kỳ lỗi nào trong quá trình tải file, vui lòng để lại bình luận bên dưới để Vi Tính Tấn Dân hỗ trợ kịp thời!)

🖥️ Vi Tính Tấn Dân – Đồng Hành Cùng Tri Thức & Công Nghệ

Bên cạnh việc chia sẻ kiến thức và tài liệu học tập miễn phí, Vi Tính Tấn Dân tự hào là đơn vị uy tín chuyên cung cấp:

  • 💻 Dàn máy tính PC Lập trình – Học tập – Chơi game cấu hình tối ưu, giá rẻ.

  • 🛠️ Dịch vụ sửa chữa, nâng cấp Laptop & PC nhanh chóng, tận tâm tại Đồng Tháp.

  • 🎧 Linh phụ kiện máy tính chính hãng (Bàn phím, chuột, màn hình, SSD…).

Nếu bạn đang tìm kiếm một chiếc máy tính mượt mà để phục vụ việc học lập trình C++, Python hay Pascal, hãy liên hệ ngay với Vi Tính Tấn Dân để nhận được sự tư vấn chu đáo nhất!

7. Cách thức đăng ký và đóng học phí như thế nào?

Bạn có thể liên hệ trực tiếp với Thầy qua các kênh sau để được tư vấn và nhận báo giá ưu đãi:

  • Số điện thoại / Zalo: 0937.179.278

  • Hình thức đóng phí: Chuyển khoản ngân hàng hoặc nộp trực tiếp tại cơ sở (nếu học offline).

Đạt giải 3 học sinh giỏi tin học cấp tỉnh

Đạt giải 3 học sinh giỏi tin học cấp tỉnh

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Vui lòng Chấm điểm 5 sao trang cho bài viết hay !

 

 

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

📞 Thông Tin Liên Hệ:

  • Website: vitinhtandan.com

  • Hotline/Zalo: (0937.179.278)

  • Địa chỉ: (Tổ 5, Ấp Tân Lược 1, xã Tân Hương, Đồng Tháp)

Chúc các bạn học sinh ôn luyện thật tốt và đạt kết quả cao nhất trong kỳ thi Học sinh giỏi Tin học lớp 9 sắp tới!

Dưới đây là phần Câu Hỏi Thường Gặp (FAQ) chuẩn SEO dành riêng cho bài viết. Đoạn này không chỉ giúp giữ chân người đọc lâu hơn mà còn rất dễ được Google đưa lên vị trí Featured Snippet (Top 0) hoặc hiển thị trong mục “Mọi người cũng hỏi”:

❓ Câu Hỏi Thường Gặp (FAQ) – Đề Thi HSG Tin Học 9 Đồng Tháp

1. Bộ đề thi HSG Tin học lớp 9 Đồng Tháp có đáp án chi tiết không?

Trả lời: Có. Bộ 21 đề thi HSG Tin học 9 Đồng Tháp do Vi Tính Tấn Dân tổng hợp đều đi kèm đáp án, hướng dẫn giải chi tiết, test case mẫu và code tham khảo bằng các ngôn ngữ phổ biến như C++, Python và Pascal.

2. Tải bộ đề thi HSG Tin học 9 Đồng Tháp 2026 – 2027 có mất phí không?

Trả lời: Hoàn toàn MIỄN PHÍ. Bạn chỉ cần bấm vào đường link Google Drive được đính kèm trong bài viết là có thể tải toàn bộ file PDF/Word về máy để in ấn và học tập dễ dàng.

3. Đề thi HSG Tin học lớp 9 Đồng Tháp thường sử dụng ngôn ngữ lập trình nào?

Trả lời: Hiện nay, các kỳ thi Học sinh giỏi Tin học THCS tại Đồng Tháp ưu tiên sử dụng ngôn ngữ C++Python nhờ tối ưu tốc độ và thư viện phong phú. Tuy nhiên, một số bài thi vẫn chấp nhận Pascal. Học sinh nên tập trung luyện tập kĩ năng tư duy thuật toán trên C++ hoặc Python để đạt điểm tối đa.

4. Học sinh lớp 9 cần tập trung những dạng thuật toán nào để thi HSG Tin học?

Trả lời: Cấu trúc đề thi HSG Tin học 9 Đồng Tháp thường xoay quanh các dạng bài trọng tâm:

  • Xử lý chuỗi, mã hóa và số học cơ bản.

  • Thuật toán tìm kiếm nhị phân, kỹ thuật hai con trỏ, mảng cộng dồn.

  • Sắp xếp tối ưu $O(N \log N)$.

  • Quy hoạch động cơ bản (Đếm cách, Tối ưu hóa).

5. Học lập trình nên chọn cấu hình máy tính/laptop như thế nào?

Trả lời: Để phục vụ tốt việc học lập trình C++, Python và chạy các phần mềm như Code::Blocks, VS Code, PyCharm…, bạn nên chọn PC/Laptop có cấu hình tối thiểu:

  • CPU: Core i3/Ryzen 3 trở lên (thế hệ mới).

  • RAM: Tối thiểu 8GB.

  • Ổ cứng: SSD 256GB để khởi động phần mềm mượt mà.

📌 Nếu bạn cần tư vấn chọn máy tính học tập – lập trình phù hợp với ngân sách, hãy liên hệ ngay hotline của Vi Tính Tấn Dân để được hỗ trợ tốt nhất!

Tải 200 Bài lập trình python có lời giải cơ bản đến nâng cao pdf

Phần 2: Tải ngay 200 Bài lập trình Python có lời giải cơ bản đến nâng cao PDF

Bạn đang bắt đầu hành trình chinh phục ngôn ngữ lập trình Python? Bạn đã nắm vững lý thuyết nhưng lại lúng túng khi bắt tay vào viết code thực tế? Tài liệu “200 Bài lập trình Python có lời giải cơ bản đến nâng cao PDF” chính là chiếc chìa khóa vàng giúp bạn chuyển hóa kiến thức thành kỹ năng thực chiến.

Phần 1: 100  Bài lập trình Python có lời giải cơ bản đến nâng cao PDF

Phần 2: 200  Bài lập trình Python có lời giải cơ bản đến nâng cao PDF

Tại sao bạn cần bộ 200 bài tập Python này?

Lập trình là kỹ năng cần sự rèn luyện liên tục. Theo các chuyên gia IT, sai lầm lớn nhất của người mới học là đọc quá nhiều lý thuyết mà thiếu thực hành. Bộ tài liệu PDF này được tổng hợp và chọn lọc kỹ lưỡng nhằm giải quyết các vấn đề sau:

  • Phân loại rõ ràng: Bài tập đi từ cấp độ “vỡ lòng” (Level 1) đến các thuật toán phức tạp (Level 3-4).

  • Có lời giải chi tiết (Source code): Giúp bạn so sánh, đối chiếu và tối ưu hóa cách viết code của mình.

  • Đa dạng chủ đề: Bao quát từ xử lý chuỗi, vòng lặp, đến hướng đối tượng (OOP) và xử lý file.

  • Định dạng PDF tiện lợi: Dễ dàng tải về, in ấn hoặc xem offline trên mọi thiết bị.

Nội dung chi tiết trong bộ tài liệu PDF

Bộ tài liệu được chia làm 3 giai đoạn chính, phù hợp với lộ trình phát triển tư duy lập trình:

1. Giai đoạn Cơ bản (Level 1)

Đây là phần khởi động dành cho người mới bắt đầu (newbie). Các bài tập tập trung vào:

  • Cú pháp cơ bản của Python.

  • Các kiểu dữ liệu: Number, String, List, Tuple, Dictionary.

  • Cấu trúc điều khiển: If-Else, Vòng lặp For/While.

  • Nhập xuất dữ liệu cơ bản.

2. Giai đoạn Trung cấp (Level 2)

Sau khi đã quen tay, bạn sẽ bước vào các bài toán yêu cầu tư duy logic cao hơn:

  • Xây dựng và sử dụng Hàm (Function).

  • Các module toán học (Math, Random).

  • Xử lý chuỗi nâng cao và Biểu thức chính quy (Regex).

  • Thao tác với mảng đa chiều.

3. Giai đoạn Nâng cao (Level 3 & Level 4)

Phần này dành cho những bạn muốn tối ưu code và hiểu sâu về Python:

  • Lập trình hướng đối tượng (Class, Object, Inheritance).

  • Thuật toán sắp xếp và tìm kiếm.

  • Xử lý File (Đọc/Ghi file text, csv, json).

  • Xử lý ngoại lệ (Try/Except).

Lưu ý: Tất cả các bài tập đều đi kèm lời giải mẫu (solution) để bạn tham khảo sau khi tự giải.

Bài 0101. In hình tam giác vuông cân bằng dấu *?

 

h=int(input())
for i in range(1,h+1):
    print(i*'*')

Bài 0102. In hình chữ nhật đặc bằng dấu *?

 

a,b=map(int,input().split())
for i in range(b):
    print(a*'*')

Bài 0103. In tam giác số?

 

a=int(input())
b=[]
for i in range(1,a+1):
    b.append(i)
for i in range(1,len(b)+1):
    print(*b[:i])

Bài 0104. In ra bảng cửu chương của số tự nhiên n theo định dạng phép nhân?

 

n=int(input())
for i in range(1,10):
    print(i,'x',n,'=',n*i)

Bài 0105. Đếm ước của một số nguyên n?

 

n=int(input())
dem=0
for i in range(1,n+1):
    if n%i==0:
        dem+=1
print(dem)

0106. Kiểm tra n có phải là số nguyên tố (Prime)?

 

def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
a=int(input())
if ktnt(a):
    print('Yes')
else:
    print('No')

0107. Kiểm tra một số nguyên có là số hoàn hảo (Perfect)?

 

def kthh(n):
    tong=0
    for i in range(1,n):# cach 2: nhanh hon range(1, int(n/2)+1) chi chay phan nua
        if n%i==0:
            tong+=i
    return tong
n=int(input())
tong=kthh(n)
if tong==n:
    print('Yes')
else:
    print('No')

0108. Kiểm tra một số nguyên có là số tam giác (Triangular)?

 

def kttg(n):
    tong=0
    for i in range(1,int(n/2)+1):
        tong+=i
        if tong==n:
            return True
    return False
n=int(input())
if kttg(n):
    print('Yes')
else:
    print('No')

0109. Kiểm tra một số nguyên có là số đối xứng (Palindrome)?

 

a=input()
if a==a[::-1]:
    print('Yes')
else:
    print('No')

0110. Kiểm tra một số nguyên có là số Chen?

 

def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return  i*i>n and n>1
a=int(input())
if ktnt(a+2) and ktnt(a):
    print('Yes')
else:
    print('No')

0111. Kiểm tra một số nguyên có là số kỳ ảo (Magic)?

 

def so_magic(s):
    for i in range(1,len(s)+1):
        sub=int(s[:i])
        if sub%i!=0:
            return False
    return True
s=input()
if so_magic(s):
    print('Yes')
else:
    print('No')

 

Nguồn : https://xn--300bicode-t1a.vn/

Tác Giả: Trần Phí An Bình

Tải xuống tài liệu PDF (Full Source Code)

Đừng để việc học lập trình dừng lại ở lý thuyết. Hãy tải ngay bộ tài liệu này và bắt đầu “code” ngay hôm nay!

[ [DOWNLOAD] 200 BÀI LẬP TRÌNH PYTHON CÓ LỜI GIẢI (PDF) ]

Hướng dẫn sử dụng:

  1. Tải file về máy.

  2. Mở đề bài và tự làm trước.

  3. Nếu bí hoặc gặp lỗi, hãy tham khảo phần lời giải (solution) đi kèm.

  4. Cố gắng tối ưu code ngắn gọn hơn cả lời giải mẫu.

Chúc các bạn học tốt và sớm trở thành một Python Developer chuyên nghiệp!

Câu hỏi thường gặp về bộ 200 bài tập Python (FAQ)

1. Tài liệu này có phù hợp cho người mới bắt đầu (newbie) không?

Hoàn toàn phù hợp. Bộ 200 bài tập này được thiết kế theo lộ trình thăng tiến rõ ràng, đi từ Level 1 (Cơ bản) đến Level 4 (Nâng cao). Người mới bắt đầu có thể làm quen từ các bài toán nhập xuất dữ liệu, câu lệnh điều kiện đơn giản trước khi chuyển sang các thuật toán phức tạp hơn ở phần sau.

2. Tôi có thể xem lời giải chi tiết ở đâu?

Mỗi bài tập trong file PDF đều đi kèm với Source Code (mã nguồn) lời giải mẫu ở ngay bên dưới đề bài. Để đạt hiệu quả tốt nhất, bạn nên tự mình giải bài toán trước, sau đó mới đối chiếu với đáp án để học cách tối ưu logic và cú pháp.

3. Tải bộ tài liệu PDF này có mất phí không?

Không, bộ tài liệu “200 Bài lập trình Python có lời giải” này được chia sẻ hoàn toàn miễn phí nhằm hỗ trợ cộng đồng học lập trình tại Việt Nam. Bạn có thể thoải mái tải về, lưu trữ trên máy tính hoặc in ra giấy để tiện ôn tập.

4. Tôi cần cài đặt phần mềm gì để chạy code Python?

Để thực hành các bài tập này, bạn cần cài đặt Python (tải từ python.org). Về công cụ viết code (IDE), bạn có thể dùng IDLE mặc định, hoặc các phần mềm chuyên nghiệp hơn như Visual Studio Code (VS Code) hoặc PyCharm Community để hỗ trợ gợi ý code và gỡ lỗi tốt hơn.

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

Tổng Hợp Hàm Python Thi Tỉnh Và Thi Vào Lớp 10 Chuyên Tin

Tổng Hợp Các Hàm Python “Cốt Lõi” Khi Thi HSG Tỉnh Và Vào 10 Chuyên Tin ( Mới Nhất – Chọn Lọc – Cập Nhật Thường Xuyên )

  • Cập nhật mới nhất ngày 11/4 /2026
  • Trong các kỳ thi học sinh giỏi Tin học cấp huyện – cấp tỉnhthi tuyển sinh vào lớp 10 chuyên Tin, Python là ngôn ngữ được sử dụng rất phổ biến. Tuy nhiên, đề thi không yêu cầu viết code dài, mà yêu cầu:
    • Nắm chắc hàm chuẩn

    • Biết áp dụng nhanh đúng chỗ

    • Tối ưu tư duy + thời gian làm bài

Tải về ngay tài liệu Tổng Hợp Hàm Python Thi Tỉnh Và Thi Vào Lớp 10 Chuyên Tin

Tải bằng google driver

 

Các hàm quan trọng ôn thi vào Chuyên Tin 1 Các hàm quan trọng ôn thi vào Chuyên Tin 2

 

 

  • Bài viết này tổng hợp đầy đủ các hàm Python “xương sống” thường xuất hiện trong đề thi tỉnh và đề thi chuyên, được chia theo nhóm bài toán, kèm ví dụ sát đề thật.
  • Tác giả: [Thầy Tấn Dân]
  • Chuyên mục: Lập trình thi đấu Python cấp Tỉnh, Ôn thi Chuyên Tin.
  • Trong những năm gần đây, Python đã trở thành ngôn ngữ được cho phép và ưa chuộng trong các kỳ thi Học sinh giỏi (HSG) cấp Tỉnhthi vào lớp 10 Chuyên Tin nhờ cú pháp ngắn gọn. Tuy nhiên, tốc độ thực thi của Python chậm hơn C++. Để bù đắp điều này, việc nắm vững các hàm có sẵn (built-in functions) và các thư viện chuẩn là chìa khóa để code nhanh hơn và tối ưu thời gian chạy (Time Limit).
  • Bài viết này sẽ tổng hợp “kho vũ khí” các hàm Python quan trọng nhất giúp bạn chinh phục các bài toán xử lý chuỗi, số học và cấu trúc dữ liệu.

1. Tăng Tốc Nhập/Xuất Dữ Liệu (Fast I/O)

Trong các bài thi, dữ liệu đầu vào có thể lên tới $10^5$ hoặc $10^6$ dòng. Hàm input() thông thường có thể khiến bạn bị lỗi TLE (Time Limit Exceeded).

Hãy sử dụng sys.stdin:

Python

import sys

# Thay thế input() bằng sys.stdin.readline
input = sys.stdin.readline

# Đọc mảng số nguyên trên một dòng
a = list(map(int, input().split()))

Lưu ý: Khi dùng sys.stdin.readline, chuỗi nhận được sẽ kèm theo ký tự xuống dòng \n. Bạn có thể cần dùng .strip() để loại bỏ nó.


2. Các Hàm Xử Lý Chuỗi (String Manipulation)

Đề thi cấp Tỉnh và vào 10 thường xuyên có bài tập xử lý xâu. Python là “vua” ở mảng này.

Cắt và Gộp Chuỗi

  • s.split(): Tách chuỗi thành list (mặc định tách theo khoảng trắng).

  • " ".join(list): Gộp list thành chuỗi.

Tìm Kiếm và Thay Thế

  • s.find(sub): Trả về chỉ số đầu tiên tìm thấy, nếu không có trả về -1.

  • s.count(sub): Đếm số lần xuất hiện của chuỗi con.

  • s.replace(old, new): Thay thế chuỗi con.

Kỹ Thuật Slicing (Cắt lát)

Đây là kỹ thuật cực mạnh của Python:

  • s[::-1]: Đảo ngược chuỗi (Cực hay dùng để kiểm tra số Palindrome).

  • s[start:end:step]: Cắt chuỗi linh hoạt.


3. Thư Viện Toán Học (math)

Đừng tự viết hàm tính toán nếu Python đã có sẵn, vì hàm của thư viện C-based chạy nhanh hơn nhiều.

Python

import math
  • math.gcd(a, b): Tìm ước chung lớn nhất (UCLN).

  • math.lcm(a, b): Tìm bội chung nhỏ nhất (BCNN) (Lưu ý: Chỉ có từ Python 3.9 trở lên).

  • math.isqrt(n): Tính căn bậc 2 nguyên (trả về phần nguyên), nhanh và chính xác hơn int(math.sqrt(n)) với số lớn.

  • math.ceil(x) / math.floor(x): Làm tròn lên / xuống.

  • math.factorial(n): Tính giai thừa $n!$.


4. Xử Lý Danh Sách (List) & Sắp Xếp

Sắp xếp (Sorting) là bài toán kinh điển. Python sử dụng thuật toán Timsort với độ phức tạp $O(N \log N)$.

Hàm Sắp Xếp

  • a.sort(): Sắp xếp trực tiếp trên list a (làm thay đổi a).

  • sorted(a): Trả về một list mới đã sắp xếp, giữ nguyên a.

  • Sắp xếp ngược: Thêm tham số reverse=True.

Sắp Xếp Tùy Chọn (Lambda)

Ví dụ: Sắp xếp các cặp số (x, y) theo y tăng dần:

Python

points = [(1, 3), (4, 1), (2, 2)]
points.sort(key=lambda x: x[1])
# Kết quả: [(4, 1), (2, 2), (1, 3)]

List Comprehension (Tạo List nhanh)

Thay vì dùng vòng lặp for, hãy dùng cách này để code ngắn gọn:

Python

# Tạo mảng bình phương các số chẵn từ 0 đến 9
sq = [x**2 for x in range(10) if x % 2 == 0]

5. “Vũ Khí Bí Mật”: Thư Viện collectionsitertools

Đây là phần phân loại thí sinh. Biết dùng các thư viện này sẽ giúp bạn giải quyết bài toán phức tạp trong vài dòng code.

collections.Counter (Đếm tần suất)

Giải quyết bài toán “đếm số lần xuất hiện của phần tử” trong $O(N)$.

Python

from collections import Counter

a = [1, 2, 2, 3, 1, 1]
dem = Counter(a)
print(dem[1]) # Kết quả: 3 (số 1 xuất hiện 3 lần)
print(dem.most_common(1)) # Trả về phần tử xuất hiện nhiều nhất

collections.deque (Hàng đợi hai đầu)

Dùng cho thuật toán BFS hoặc các bài toán cần thêm/xóa phần tử ở đầu mảng (List thường xóa đầu mất $O(N)$, deque chỉ mất $O(1)$).

itertools.permutations & combinations

Dùng để sinh hoán vị và tổ hợp (thay thế cho quay lui – backtracking ở các bài toán có N nhỏ).

Python

from itertools import permutations
# Sinh tất cả hoán vị của [1, 2, 3]
perms = list(permutations([1, 2, 3]))

6. Mẹo Nhỏ Nhưng “Có Võ”

  1. Nới rộng giới hạn đệ quy: Python mặc định giới hạn độ sâu đệ quy khoảng 1000. Với các bài DFS hoặc quy hoạch động đệ quy, hãy thêm dòng này đầu file:

    Python

    import sys
    sys.setrecursionlimit(10**6)
    
  2. Sử dụng hàm set(): Để loại bỏ phần tử trùng lặp hoặc kiểm tra sự tồn tại trong $O(1)$ thay vì $O(N)$ của list.

  3. Hàm zip(): Duyệt song song nhiều list cùng lúc.


I. Các hàm đặc biệt quan trọng – Hay ra nhất trong đề thi

1) các hàm chữ:

  1. s=s.split() #tách các chữ mất khoản cách
  2. s=s.split(‘,’) # tách các phần tử bởi dấu phẩy (, ) (.) (: ) tùy bài
  3. isdigit() # các số 
  4. islower() ( chữ thường )
  5. isupper() (chữ hoa )
  6. sorted() ( Các từ theo thứ tự từ điển)
  7. print(s1.count(s2)) ( điếm trong chuỗi )
  8. s[i].isalnum() lấy kiểu chữ và số ( trừ ký tự đặc biệt )
  9. not s[i].isalnum() lấy ký tự đặc biệt
  10. s=’’.join(a)# chuyển mảng sang chuỗi
  11. a=list(s) # chuyển chuỗi sang mảng
  12. vt=c.index(Max)
  13. vt=s.rfind(‘.’)# tìm vị trí dấu chấm cuối
  14. vt=s.find(‘.’)# tìm vị trí đầu trong chuỗi
  15. abs( a- b) ( hàm trị tuyệt đối)
  16. sqrt ( a) căn bật 2 nhớ import math
  17. BCNN=abs(a*b)/ucln(a,b) # Bội số chung lớn nhất
  18. Ucln=math.gcd(a,b) #Ước số chung lớn nhất

print(s[0].zfill(2),’:’,s[1].zfill(2),’:’,s[2].zfill(2),sep=”)# định dạng thêm số 0 ở phía trước zfill(2) ; số 2 phần chục; 3; phần trăm; 4; phần ngàn,…

7. Kỹ Thuật Lọc Dữ Liệu Bằng “Biểu Thức Chính Quy” (Regex)

Trong đề thi, đôi khi dữ liệu vào là một xâu hỗn độn chứa cả chữ và số (ví dụ: a12b34cd56), và yêu cầu bạn tách riêng số hoặc chữ. Thay vì dùng vòng lặp for để kiểm tra từng ký tự, ta dùng thư viện re (Regular Expression).

Lấy từng số, bỏ chữ (Hoặc ngược lại)

Để sử dụng, bắt buộc phải import re.

Python

import re

s = "hoc123sinh456gioi789"

# 1. Lấy số, bỏ chữ:
# '[^0-9]+' nghĩa là: Những ký tự KHÔNG phải số (0-9)
# Thay thế những cái không phải số bằng khoảng trắng ' ', sau đó split ra.
nums = re.sub('[^0-9]+', ' ', s).split()
# Kết quả nums: ['123', '456', '789'] (Dạng chuỗi)

# 2. Lấy chữ, bỏ số:
# '[^a-zA-Z]+' nghĩa là: Những ký tự KHÔNG phải chữ cái (a-z, A-Z)
words = re.sub('[^a-zA-Z]+', ' ', s).split()
# Kết quả words: ['hoc', 'sinh', 'gioi']

Tại sao nó “xịn”? Cách này xử lý được cả trường hợp số âm hoặc số thực nếu bạn chỉnh pattern một chút, và nó nhanh hơn nhiều so với việc viết hàm if kiểm tra từng ký tự.


8. Sửa Đổi và Làm Sạch Chuỗi (replace & strip)

Nhóm hàm này dùng để chuẩn hóa dữ liệu đầu vào (ví dụ: xoá khoảng trắng thừa, thay thế từ khóa).

Hàm thay thế (replace)

Dùng để thay thế tất cả các chuỗi con tìm thấy.

Python

s = "  hello world  "

# Xóa toàn bộ khoảng trắng trong chuỗi
# Kết quả: "helloworld"
clean_s = s.replace(" ", "") 

# Thay thế từ
s2 = "python is hard"
s2 = s2.replace("hard", "easy") 
# Kết quả: "python is easy"

Hàm cắt khoảng trắng (strip)

Rất quan trọng khi đọc dữ liệu từ input() để tránh lỗi do khoảng trắng thừa ở đầu/cuối dòng.

  • s.strip(): Cắt khoảng trắng 2 đầu.

  • s.lstrip(): Cắt bên trái (đầu dòng).

  • s.rstrip(): Cắt bên phải (cuối dòng).


9. Các Kỹ Thuật Sắp Xếp và Đảo Ngược

Cần phân biệt rõ giữa Sắp xếp (Sort)Đảo ngược (Reverse).

Sắp xếp (Sort)

Đưa các phần tử về trật tự tăng dần hoặc giảm dần.

Python

a = [3, 1, 5, 2]

# Cách 1: a.sort()
# Sắp xếp trực tiếp lên biến a. Không trả về dữ liệu mới.
a.sort() 
print(a) # [1, 2, 3, 5]

# Cách 2: sorted(a)
# Trả về một list MỚI, list a cũ giữ nguyên.
b = sorted(a, reverse=True) # Sắp xếp giảm dần
print(b) # [5, 3, 2, 1]

Đảo ngược (Reverse – Slicing)

Đây không phải là sắp xếp lại giá trị, mà chỉ là lật ngược vị trí (đuôi lên đầu).

Python

s = "ABCDE"
rev_s = s[::-1] 
# Kết quả: "EDCBA"

Kiểm tra đối xứng (Palindrome)

Sử dụng kỹ thuật slicing [::-1] để kiểm tra cực nhanh.

Python

def ktdx(n):
    # Luôn chuyển về chuỗi trước khi đảo ngược
    s = str(n) 
    return s == s[::-1]

print(ktdx(12321)) # True
print(ktdx(123))   # False

10. Tìm Giá Trị Lớn Nhất / Nhỏ Nhất (Min/Max Nâng Cao)

Ngoài việc tìm số lớn nhất/nhỏ nhất thông thường, Python cho phép tìm theo tiêu chí riêng bằng tham số key.

Min/Max cơ bản

Python

arr = [10, 5, 8, 90]
print(max(arr)) # 90
print(min(arr)) # 5

Min/Max theo độ dài (Rất hay thi)

Ví dụ: Tìm từ dài nhất trong một câu.

Python

words = ["ha", "noi", "vietnam", "yeu"]

# Tìm chuỗi có độ dài (len) lớn nhất
longest = max(words, key=len)
print(longest) # "vietnam"

# Tìm chuỗi có độ dài nhỏ nhất
shortest = min(words, key=len)
print(shortest) # "ha"

Giải thích: key=len bảo Python rằng: “Đừng so sánh chữ cái a,b,c… hãy so sánh độ dài của chúng để quyết định ai lớn nhất”.


Tổng kết nhanh các hàm cần nhớ:

Chức năngHàm/Cú phápGhi chú
Lọc sốre.sub('[^0-9]+', ' ', s)Cần import re
Thay thếs.replace(old, new)Thay thế tất cả
Cắt khoảng trắngs.strip()Chỉ cắt 2 đầu
Sắp xếpa.sort() hoặc sorted(a)sort sửa list gốc, sorted tạo list mới
Đảo ngượcs[::-1]Dùng để kiểm tra Palindrome
Max theo dàimax(a, key=len)Tìm chuỗi dài nhất

 

 

9) lấy điểm ra sắp xếp:

 

Def laydiem(s):

          s=s.split()

          return float(s[-1])

kq=sorted(a,key=laydiemm,reverse=True)

for i in range(len(kq)):

          x=kq[i].split()

          diem=float(x[-1])

          x.pop(-1)

          hoten=’’.join(x)

          print(hoten,’%0.1f’%diem)
2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

100 triệu là mức lương của lập trình Python vì sao?

100 triệu là mức lương của lập trình Python vì sao?

1. Vì sao Python là ngôn ngữ lập trình đáng học nhất?

Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay nhờ sự đơn giản, linh hoạt và ứng dụng rộng rãi trong nhiều lĩnh vực công nghệ. Nếu bạn đang phân vân có nên học Python hay không, hãy xem ngay những lợi ích tuyệt vời mà ngôn ngữ này mang lại.

Lợi ích của học lập trình Python

Dễ học, dễ viết code: Cú pháp Python đơn giản, dễ đọc, gần giống với ngôn ngữ tự nhiên, rất phù hợp cho người mới bắt đầu.
Được sử dụng trong nhiều lĩnh vực: Python không chỉ dành cho lập trình web mà còn mạnh mẽ trong trí tuệ nhân tạo (AI), khoa học dữ liệu, tự động hóa, game, v.v.
Cộng đồng lớn, tài liệu phong phú: Python có một cộng đồng lập trình viên đông đảo sẵn sàng hỗ trợ, cùng hàng nghìn tài liệu học tập miễn phí.
Nhu cầu tuyển dụng cao: Các công ty công nghệ luôn cần lập trình viên Python, đặc biệt là trong lĩnh vực AI, Machine Learning, Data Science.


2. Mức lương của lập trình viên Python là bao nhiêu?

Lập trình viên Python có mức lương khá hấp dẫn, tùy thuộc vào kinh nghiệm và lĩnh vực làm việc.

Mức lương trung bình của lập trình viên Python tại Việt Nam:

  • Fresher (dưới 1 năm kinh nghiệm): 8 – 15 triệu VNĐ/tháng
  • Junior (1-3 năm kinh nghiệm): 15 – 30 triệu VNĐ/tháng
  • Senior (trên 5 năm kinh nghiệm): 50 – 100 triệu VNĐ/tháng hoặc cao hơn

Mức lương tại các nước phát triển (Mỹ, châu Âu):

  • Junior: 60.000 – 90.000 USD/năm
  • Senior: 100.000 – 150.000 USD/năm

Với sự phát triển của xu hướng làm việc từ xa (remote), lập trình viên Python hoàn toàn có thể làm việc cho công ty nước ngoài với mức thu nhập cực kỳ hấp dẫn!

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao

Học Python Online Lộ Trình Chi Tiết Cho Người Mới Bắt Đầu

Tại Sao Nên Học Python online?

Python là một trong những ngôn ngữ lập trình phổ biến nhất , được sử dụng rộng rãi trong phát triển web, trí tuệ nhân tạo, khoa học dữ liệu và tự động hóa. Dưới đây là một số lý do khiến Python trở thành lựa chọn hàng đầu cho người mới:

  • ✨ Dễ học: Cú pháp đơn giản , dễ đọc , phù hợp cho người mới bắt đầu .
  • Nhu cầu việc làm cao: Các công ty công nghệ lớn như Google, Facebook, và Amazon đều sử dụng Python.
  • Ứng dụng rộng rãi: Có thể dùng Python để lập trình web , phân tích dữ liệu , AI , Machine Learning và nhiều lĩnh vực khác.

⏳ Học Python Mất Bao Lâu? ‍

Theo kinh nghiệm của nhiều lập trình viên ‍‍, thời gian học Python phụ thuộc vào mục tiêu của bạn :

  • 1-2 tháng: Nắm vững cú pháp cơ bản , làm quen với lập trình Python.
  • 3-6 tháng: Thành thạo Python cơ bản, xây dựng các dự án nhỏ ️.
  • 6-12 tháng: Chuyên sâu vào khoa học dữ liệu , AI hoặc phát triển web .

Lộ Trình Học Python Online Cho Người Mới

1️⃣ Học Python Cơ Bản

✅ Làm quen với cú pháp Python: Biến, kiểu dữ liệu, vòng lặp, ❓ điều kiện. ✅ Thực hành viết các chương trình đơn giản : Máy tính cầm tay, trò chơi đoán số. ✅ Tài liệu tham khảo : Python.org, W3Schools.

2️⃣ Lập Trình Python Ứng Dụng

✅ Học về lập trình hướng đối tượng (OOP) trong Python ️. ✅ Làm quen với thư viện phổ biến : NumPy, Pandas (cho khoa học dữ liệu ), Flask (cho web ). ✅ Bắt đầu làm các dự án nhỏ như chatbot , ứng dụng web đơn giản .

3️⃣ Thực Hành Với Dự Án Thực Tế

✅ Xây dựng ứng dụng web với Django hoặc Flask. ✅ Làm việc với dữ liệu thực tế , phân tích dữ liệu với Pandas. ✅ Tham gia các dự án mã nguồn mở để rèn luyện kỹ năng .

Cách Học Python Online Hiệu Quả

  • Thực hành nhiều hơn lý thuyết: Viết code mỗi ngày ✍️ để nâng cao kỹ năng.
  • Tham gia cộng đồng học Python: Kết nối với các nhóm trên Facebook, Discord, Stack Overflow .
  • Tìm mentor hoặc khóa học online: Học từ những người có kinh nghiệm sẽ giúp bạn tiến bộ nhanh hơn .

Tài Nguyên Học Python Miễn Phí

100 bài tập Python từ cơ bản đến nâng cao online Miễn Phí lời giải

Tự học Python từ cơ bản đến nâng cao giải đề Miễn Phí tài liệu pdf

Kết Luận

Python là một lựa chọn tuyệt vời cho người mới bắt đầu học lập trình. Nếu bạn muốn học Python online một cách bài bản và hiệu quả, hãy tham gia các khóa học có hướng dẫn chi tiết ️, thực hành liên tục ✍️ và tham gia các dự án thực tế . Bắt đầu ngay hôm nay ⏳ và khám phá tiềm năng vô tận của Python!

Bạn đã sẵn sàng học Python chưa?

Đăng ký ngay khóa học Python online để bắt đầu hành trình lập trình của bạn!

Miễn phí 10% khóa học python online “Hãy đăng ký ngay !” còn lại chỉ 3 bạn

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện và cấp tỉnh.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

22 Đề Bồi dưỡng học sinh giỏi Tin 8 Python C++ 2025 – 2026

Sự thành công không đến từ những người chỉ biết mơ mộng, Mà thành công đến từ những nỗ lực không ngừng nghỉ và kết hợp với sự quyết tâm cao ! Đến lúc đó thành công đạt được bằng khen học sinh giỏi cấp huyện ngày càng đến gần với các em hơn ! Vì lý do đó thầy đã soạn ra 22 Đề Bồi dưỡng học sinh giỏi Tin lớp 8 và 9 Python C++  để các em không chỉ không ngừng ôn luyện giải các đề thi mà còn không ngừng sáng tạo các phương pháp học lập trình Python mới sao cho mình cảm thấy yêu mến và ngày càng thích lập trình Python hơn nữa. Chúc các em đạt kết quả cao nhé !

22 Đề Bồi dưỡng học sinh giỏi Tin 8 Python C++ có đáp án các em cần ôn luyện không thể bỏ qua

Rồi các em vào thi thử đề thi HSG Tin học của huyện Cai Lậy

100 đề và đáp an thi HSG tin Python

Tài liệu ôn thi học sinh giỏi Python

De thi học sinh giỏi tin 11 Python

Bồi dưỡng học sinh giỏi Tin học lớp 9

Tài liệu bồi dưỡng học sinh giỏi tin 10

Các chuyên de bồi dưỡng học sinh giỏi Tin học THPT

Tài liệu bồi dưỡng học sinh giỏi C++

Tài liệu bồi dưỡng học sinh giỏi C++

Tài liệu bồi dưỡng học sinh giỏi Tin học lớp 9, 8, 7

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO              BẬC trung học cơ sở

NĂM HỌC 2021-2022

Môn thi: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề)

Ngày thi: 15/02/2022

(Đề thi có 04 trang, gồm 05 bài)

TỔNG QUAN CÁC BÀI THI

 

Tên bài

File chương trìnhFile dữ liệu vàoFile dữ liệu ra
Bài 1Giá cảgiaca.*GIACA.INPGIACA.OUT
Bài 2Lập trìnhlaptrinh.*LT.INPLT.OUT
Bài 3Numbernumber.*NUMBER.INPNUMBER.OUT
Bài 4Dãy ký tự sốdayso.*KTS.INPKTS.OUT
Bài 5Cắt chữcatchu.*CATCHU.INPCATCHU.OUT

Dấu * được thay thế bởi PAS, CPP hoặc PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal hay C++ hay Python,….

Hãy lập trình giải các bài toán sau:

BÀI 1: (4,0đ) Giá cả ?

  • Diễn giải:
    • Một bác nông dân mang a con gà và b con vịt ra chợ bán (a, b là các số nguyên dương và 1 < a, b < 100).
    • Bác gặp một người lái buôn, họ thống nhất giá cả rồi người lái buôn trả cho bác nông dân một số tiền X (X là số nguyên dương, có đơn vị tính là ngàn đồng và 1 < X < 1000).
    • Về nhà, vợ bác nông dân muốn biết giá một con gà và giá một con vịt là bao nhiêu, nhưng bác nông dân đã quên mất.
    • Họ sang nhà nhờ Tí tính giùm, biết rằng giá một con gà và giá một con vịt đều là số nguyên dương có đơn vị tính là ngàn đồng, hơn nữa, giá một con gà luôn cao hơn giá một con vịt.
    • Tí phải tính tới tất cả các phương án giá cả thỏa mãn.
  • Yêu cầu: Viết chương trình giúp Tí tính số phương án có thể xảy ra.
  • Dữ liệu vào: Nhập từ file văn bản GIACA.INP chứa theo thứ tự ba số nguyên dương X, a, b trên một dòng, mỗi số cách nhau một kí tự trắng.
  • Dữ liệu ra: Xuất ra fíle văn bản GIACA.OUT chứa các phương án giá một con gà và giá một con vịt, mỗi phương án hiển thị trên 1 dòng và cách nhau bởi 1 dấu cách.
GIACA.INPGIACA.OUT
100 5 314 10
17 5

BÀI 2: (5,0đ) Lập trình ?

  • Diễn giải:
    • Bạn Cuội thường xuyên tham gia thi lập trình trên mạng.
    • Vì đạt được thành tích cao nên Cuội được gửi tặng 1 phần mềm diệt virus.
    • Nhà sản xuất phần mềm cung cấp cho Cuội một mã số là một dãy gồm các bộ ba chữ số ngăn cách nhau bởi dấu chấm và có chiều dài không quá 255 (kể cả chữ số và dấu chấm).
    • Để cài đặt được phần mềm, Cuội phải nhập vào mật khẩu của phần mềm.
    • Mật khẩu là một số nguyên dương N được tạo ra bằng cách tính tổng giá trị các bộ ba chữ số trong dãy mã số, các bộ ba này được đọc từ phải sang trái.
  • Yêu cầu: Cho biết mã số của phần mềm, hãy tìm mật khẩu của phần mềm đó.
  • Dữ liệu vào: Từ íỉle văn bản có tên LT.INP gồm 1 dòng chứa xâu ký tự S (độ dài xâu không quá 255 ký tự) là mã số của phần mềm.
  • Dữ liệu ra: Ghi ra file văn bản LT.OUT gồm một số nguyên dương là mật khẩu tìm được.
LT.INPLT.OUT
132.501.416950

BÀI 3: (4,0đ) Number ?

  • Diễn giải:
    • Tèo mới được học về phép nhân và phép chia số nguyên, những lúc rảnh rỗi, Tèo ngồi nghĩ đến một số nguyên dương n và thực hiện biến đổi số đó theo quy tắc là nếu n là số chẵn thì chia n cho 2, còn nếu n là số lẻ thì nhân n với 3 rồi cộng 1, cứ như vậy cho đến khi nhận được kết quả là 1.
    • Ví dụ: Nếu n là 14 thì thuật toán hoạt động như sau:
      • 14 ->7 -> 22->11-> 34-> 17-> 52-> 26->13-> 40->20->10->5->16->8->4->2 ->1
  • Dữ liệu vào: Từ file văn bản NUMBER.INP chứa 1 số nguyên dương n và 1 <n< 1200.
  • Dữ liệu ra: Ghi vào file văn bản NUMBER.OUT chứa các số xuất hiện theo thứ tự trong thuật toán, mỗi số cách nhau 1 kí tự trắng.

NUMBER.INP

NUMBER.OUT

1212 6 3 10 5 16 8 4 2 1

BÀI 4: (4,0đ) Dãy ký tự số ?

  • Diễn giải:
    • Bạn Nam rất yêu thích lập trình, nhất là khi gặp những bài toán khó thì bạn ấy càng cố gắng để giải cho xong.
    • Có một lần, trong lúc suy nghĩ về một bài toán, tay bạn ấy đã gõ ngẫu nhiên các phím trên bàn phím, đến khi nhìn lại thì trên bàn phím đã là một dãy các ký tự.
    • Mặc dù là gõ ngẫu nhiên không nhìn bàn phím nhưng có những lúc bạn ấy chỉ toàn gõ vào các phím số.
  • Yêu cầu: Cho xâu ký tự S là dãy các ký tự mà bạn Nam đã gõ vào, hãy cho biết bạn Nam đã gõ liên tiếp các phím số nhiều nhất là bao nhiêu?
  • Dữ liệu vào: Cho từ file văn bản có tên KTS.INP gồm một dòng chứa xâu ký tự S (độ dài xâu không quá 255 ký tự)
  • Dữ kiệu ra: Ghi ra fíle văn bản có tên KTS.OUT có dạng:
    • Dòng đầu tiên ghi số lần nhiều nhất mà bạn Nam gõ liên tiếp các phím số, nếu không có ký tự số trong dãy thì in ra số 0.
    • Nếu có ký tự số được gõ vào, thì dòng thứ hai ghi dãy liên tiếp các ký tự số mà bạn Nam đã gõ liên tiếp nhiều nhất đó, nếu có nhiều dãy cùng có số lần gõ nhiều nhất như nhau thì in ra dãy đầu tiên.
KTS.INPKTS.OUT
Bcbcb 12vvvf4589fvff14vbt4
4589

BÀI 5: (3,0đ) Cắt chữ ?

  • Diễn giải:
    • Trong một kỳ thi học sinh giỏi, Ban tổ chức có ý định in vi tính số báo danh của từng học sinh, sau đó dán lên từng bàn để các em biết vị trí ngồi của mình.
    • Chữ số vi tính là các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 được in ra trên các miếng đề can và dán được lên bàn.
    • Số báo danh của thí sinh được kết hợp từ các chữ số vi tính đó, ví dụ số báo danh 132 được kết hợp từ 3 chữ số vi tính là 1, 3 và 2.
    • Số báo danh của học sinh được đánh từ 1 đến N, trong đó N là số học sinh tham gia.
    • Ban tổ chức muốn biết tổng số chữ số vi tính sẽ được in ra để có thể dự trù kinh phí.
  • Dữ liệu vào: Nhập từ file văn bản CATCHU.INP chứa số nguyên dương N là số thí sinh tham dự kỳ thi (1 < N < 103)
  • Dữ liệu ra: Ghi vào file văn bản CATCHU.OUT tổng số chữ số vi tính cần cắt từ 1 đến N.
CATCHU.INPCATCHU.OUT
1419

———————– hết—————————

  • Các file chương trình phải đặt đúng tên theo quy định (cả phần tên và phần mở rộng)
  • Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh: …………………………………………………… Số báo danh:………………………

Đáp án bài 1: (4,0đ) Giá cả ?

 

import sys
sys.stdin=open('GIACA.INP','r')
sys.stdout=open('GIACA.OUT','w')
#C1
x,a,b=map(int,input().split())
for i in range(1,x+1):
    for j in range(1,x+1):
        if a*i+b*j==x and i>j:
            print(i,j)

 

Đáp án bài 2: (5,0đ) Lập trình ?

 

import sys
sys.stdin=open('LAPTRINH.INP','r')
sys.stdout=open('LAPTRINH.OUT','w')
def daochuoi(n):
    a=str(n)
    return a[::-1]
n=input().split('.')
tong=0
a=[]
for i in range(len(n)):
    if daochuoi(n[i]):
        a.append(daochuoi(n[i]))
for i in range(len(a)):
    tong+=int(a[i])
print(tong)

 

Đáp án bài 3: (4,0đ) Number ?

 

import sys
sys.stdin=open('NUMBER2.INP','r')
sys.stdout=open('NUMBER2.OUT','w')
n=int(input())
a=[]
a.append(n)
while n>1:
    if n%2==0:
        n=n/2
        a.append('%0.0f'%n)
    else:
        n=3*n+1
        a.append('%0.0f'%n)
print(*a)

 

Đáp án bài 4: (4,0đ) Dãy ký tự số ?

 

import sys,re
sys.stdin=open('DAYSO2.INP','r')
sys.stdout=open('DAYSO2.OUT','w')
s=input()
s=re.sub('[^0-9]+',' ',s).split()
if len(s)>0:
    Max=max(s,key=len)
    print(len(Max))
    print(Max)
else:
    print('0')

 

Đáp án bài 5: (3,0đ) Cắt chữ ?

 

import sys
sys.stdin=open('CATCHU.INP','r')
sys.stdout=open('CATCHU.OUT','w')
n=int(input())
a=[]
for i in range(1,n+1):
    a.append(i)
tong=0
for i in range(len(a)):
    tong+=len(str(a[i]))
print(tong)

 

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

bằng khen thi học sinh giỏi Tin Học cấp huyện

Bằng khen thi học sinh giỏi Tin Học cấp huyện

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

Đề tài thi khoa học kỹ thuật cấp huyện:

Học lập trình Python sáng tạo phần mềm nhà thông minh

Học lập trình Python sáng tạo phần mềm ” Nhà Thông Minh “ điều khiển bằng giọng nói hoặc nút bấm

Đề tài Nhà Thông Minh sử dụng năng lượng điện tuần hoàn

Đề tài Nhà Thông Minh sử dụng năng lượng điện tuần hoàn

Đề tài dự án kĩ thuật Ngôi nhà thông minh sử dụng năng lượng điện tuần hoàn

Đề tài dự án kĩ thuật Ngôi nhà thông minh sử dụng năng lượng điện tuần hoàn

Các em muốn theo học hãy nhanh tay đăng ký để được hưởng ưu đãi tốt nhất các em nhé !

 

21 Đề thi học sinh giỏi Tin học THCS Python có đáp án 2025-2026

Để có thể giải đề thi học sinh giỏi Tin học THCS tốt  và đạt được điểm cao không còn cách nào khác là thường xuyên luyện đề thi. Do đó thầy đã tuyển chọn ra được 21 Đề thi học sinh giỏi Tin học THCS Python có đáp án để các em có thể rèn luyện cho tốt nhé !

tai ngay vi tính tấn dân

21 Đề thi học sinh giỏi Tin học THCS Python có đáp án các em cần ôn luyện không thể bỏ qua

Rồi các em vào thi thử đề thi HSG Tin học của huyện Cái Bè

De thi học sinh giỏi tin 11 Python

Đề thi học sinh giỏi tin 9 Python

De thi HSG Tin 10 Python

De thi học sinh giỏi Tin học THCS có đáp AN

Tài liệu ôn thi học sinh giỏi Python

Các chuyên de bồi dưỡng học sinh giỏi Tin học THPT

De thi HSG Tin 9 C++

Tài liệu bồi dưỡng HSG Tin học THCS Python

Tài liệu bồi dưỡng HSG Tin học THCS Python

TỔNG QUAN CÁC BÀI THI

BàiTên hàiTên File                 Dữ liệu vàoFile kết quả
Bài 1Tổng các ướcUSUM.*USUM.INPUSUM.OUT
Bài 2Dây ký tự sốSTRING.*STRING.INPSTRING.OUT
Bài 3Đào vàngGOLD.*GOLD.INPGOLD.OUT
Bài 4

 

Bộ ba hoàn hảoHOANHAO.*HOANHAO.INPNOANIIAO.OUT 1

Dấu .* được thay thế bởi phần mở rộng của các ngôn ngữ lập trình sử dụng.

Em hãy sử dụng ngôn ngữ lập trình để giải các bài toán sau:

 

Bài 1: Tổng các ước (5.0 điểm) ?

  • Viết tính tổng các ước của các ước số (là số chính phương) của số nguyên N.
  • Ví dụ:
    • Với N= 20 có các ước là {1, 2, 4, 5, 10, 20} nhưng ước là số chính phương là (1,4)
    •  Các ước của 1 là (1)
    • Các ước của 4 là {1,2, 4}
    • Tổng các ước của các ước số (là số chính phương) của 20 là: 1 + 1 + 2 + 4 = 8
  • Dữ liệu: Vào từ file văn bản USUM.INP chứa số nguyên N (1<N<I06).
  • Kết quả : Ghi ra file văn bản USUM.OUT chứa tổng các ước của các ước số (là số chính phương) của số nguyên N. Nếu không có xuất số 0.
USUM.INPUSUM.OUT
208
1639

Bài 2: Dãy ký tự số (5,0 điểm) ?

  • Diễn giải: 
    • Cậu bé Bin vừa tròn 4 tuổi thường hay nghịch máy tính của bố.
    • Có lần trong lúc bố đang nghe điện thoại bên ngoài, Bin lại nghịch và gỗ ngẫu nhiên các phím trên bàn phím, đến khi bố cậu trở lại thì trên màn hình đã là một dãy ký tự.
    • Kỳ lạ thay mặc dù là gỗ ngẫu nhiên nhưng có những lúc cậu ấy chỉ toàn gõ vào các phím số
    • Yêu cầu: Cho xâu ký tự s là dãy các ký tự mà Bin đã gõ vào, hãy cho biết Bin đã gõ liên tiếp các phím số nhiều nhất là bao nhiêu lần?
  • Dữ liệu vào: Cho từ tệp văn bản có len STRING.INP gồm một dòng chứa xâu ký tự s (độ dài xâu không quá 250 ký tự).
  • Kết quả: Ghi ra tệp văn bản tên STRING.OUT có dạng:
    • Dòng đầu ghi số lần nhiều nhất mà Bin gõ liên tiếp các phím số.
    • Nếu có ký tự số được gõ vào dòng thứ hai ghi dãy các số mà Bin gõ liên tiếp nhiều nhất đó. Nếu có nhiều dãy cũng có số lần gõ nhiều nhất thì in ra dãy đầu tiên
  • Ví dụ:
STRING.INPSTRING.OUT
sidh25jsh00491sadjh2763smdajk5

00491

Bài 3: Tìm vàng (5,0 điểm) ?

  • Diễn giải:
    • Một thợ đào vàng đào được một khối vật chất (là một chuỗi các kí tự) trong đó các số tự nhiên trong chuỗi được gọi là vàng.
    • Ví dụ: Khối vật chất là B3a34afc. Tổng số vàng tìm được là 3+34=37
    • Khối vật chất là 3a34-123. Tổng số vàng tìm được là 3+34+123=160
  • Yêu cầu: Chuối không quá 255 kí tự. các chữ số liên tiếp nhau sẽ tạo thành một số tự
  • nhiên.
  • Dữ liệu: Vào từ file văn bản GOLD.INP chứa câu chưa được sửa lỗi (có độ dài không quá 255 kí tự).
  • Kết quả: Ghi ra từ file văn bản GOLD.OƯT chứa câu đã được sửa lỗi.
GOLD.INPGOLD.OUT
B3a34afc37
3a34-123160
Virus0

Bài 4: Bộ ba hoàn hảo (5,0 điểm) ?

  • Diễn giải:
    • Một trò chơi có N người tham gia, mỗi người mang trong người một điểm số.
    • Tìm tất cả các bộ ba có thể trở thành bộ ba hoàn hảo, bộ ba hoàn hảo là một bộ ba người có tổng số điểm bằng 100.
    • Ví dụ: Có 10 người tham gia trò chơi với số điểm lần lượt là 10, 20, 30, 40, 50,60,15,25, 35, 45. Danh sách tất cả các bộ ba hoàn hảo có thể là:
      • 10,30,60
      • 10,40,50
      • 20, 30,50
      • 20,35,45
      • 40,15,45
      • 40, 25,35
      • 50,15,35
      • 60,15,25
    • Lưu ý: Không phân biệt vị trí các phần tử trong một bộ chẳng hạn: bộ 10,30,60 hay 30,60,10 đều tính đúng và tính là một bộ hoàn hảo.
  • Yêu cầu:
    • Số người tham gia N là một số tự nhiên (N < 20). Số điểm của mỗi người là một số tự nhiên không vượt quá 100.
    • Trong trường hợp không tìm được bộ ba hoàn hảo thì kết quả là một danh sách trống.
  • Dữ liệu vào: Từ file văn bản HOANHAO.INP chứa hai dòng:
    • Dòng thứ nhất là số người tham gia N
    • Dòng thứ hai số điểm tương ứng của từng người.
  • Kết quả: Ghi ra từ file văn bản HOANHAO.OUT chứa tất cả các bộ ba hoàn hảo.
HOANHAO.INP

HOANHAO.OUT

1010 30 60
10 20 30 40 50 60 15 25 35 4510 40 50
20 30 50
20 35 45
30 25 45
40 15 45
40 25 35
50 15 35
60 15 25

———————————————————————————————————————

510 40 50
10 20 30 40 5020 30 50

HẾT

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh:……………………………. Số báo danh:……………………………….

Đáp án bài 1: Tổng các ước (5.0 điểm) ?

 

import sys,math
sys.stdin=open('USUM.INP','r')
sys.stdout=open('USUM.OUT','w')
def ktcp(n):
    if n<0:
        return False
    x=int(math.sqrt(n))
    return x*x==n
def tonguoc(n):
    tong=0
    for i in range(1,n+1):
        if n%i==0:
            tong+=i
    return tong
n=int(input())
tong=0
for i in range(1,n+1):
    if n%i==0 and ktcp(i):
        tong+=tonguoc(i)
print(tong)

 

Đáp án bài 2: Dãy ký tự số (5,0 điểm) ?

 

import sys,re
sys.stdin=open('STRING2.INP','r')
sys.stdout=open('STRING2.OUT','w')
s=input()
a=re.sub('[^0-9]+',' ',s).split()
b=[]
for i in range(len(a)):
    b.append(len(a[i]))
if len(a)>0:
    for i in range(len(a)):
        if len(a[i])==max(b):
            print(len(a[i]))
            print(a[i])
            break
else:
    print('0')

 

Đáp án bài 3: Tìm vàng (5,0 điểm) ?

 

import sys,re
sys.stdin=open('GOLD.INP','r')
sys.stdout=open('GOLD.OUT','w')
s=input()
a=re.sub('[^0-9]+',' ',s).split()
tong=0
for i in range(len(a)):
    tong+=int(a[i])
print(tong)

 

Đáp án bài 4: Bộ ba hoàn hảo (5,0 điểm) ?

 

import sys
sys.stdin=open('HOANHAO.INP','r')
sys.stdout=open('HOANHAO.OUT','w')
n=int(input())
a=list(map(int,input().split()))
for i in range(len(a)-2):
    for j in range(i+1,len(a)-1):
        for k in range(j+1,len(a)):
            if (a[i]+a[j]+a[k])==100:
                print(a[i],a[j],a[k])

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.
bằng khen thi học sinh giỏi Tin Học cấp huyện

Bằng khen thi học sinh giỏi Tin Học cấp huyện

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

Đề tài thi khoa học kỹ thuật cấp huyện:

Học lập trình Python sáng tạo phần mềm nhà thông minh

Học lập trình Python sáng tạo phần mềm ” Nhà Thông Minh “ điều khiển bằng giọng nói hoặc nút bấm

Đề tài Nhà Thông Minh sử dụng năng lượng điện tuần hoàn

Đề tài Nhà Thông Minh sử dụng năng lượng điện tuần hoàn

Đề tài dự án kĩ thuật Ngôi nhà thông minh sử dụng năng lượng điện tuần hoàn

Đề tài dự án kĩ thuật Ngôi nhà thông minh sử dụng năng lượng điện tuần hoàn

Các em muốn theo học hãy nhanh tay đăng ký để được hưởng ưu đãi tốt nhất các em nhé !

100 đề và đáp án thi HSG tin Python cấp huyện 2025

Thầy mến chào các em đang yêu thích môn tin học lập trình Python! Để có thể thi tốt và đạt giải cao trong kỳ thi học sinh giỏi cấp huyện sắp tới ! Thầy đã soạn ra được các đề hay và bám sát với các đề thi các em phải ôn luyện trong 100 đề và đáp án thi HSG tin Python cấp huyện 2025 là đậu chắc luôn ! Mong các em có thể sắp xếp nhiều thời gian hơn để ôn luyện nhiều hơn để mình được nhiều kinh nghiệm

Đây đã là đề thi số 20 Đề thi học sinh giỏi Tin học THCS có đáp án 

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

nguồn: 300bàicode.vn

Đề thi học sinh giỏi cấp huyện chợ Gạo năm 2022 – 2023:

100 đề và đáp an thi HSG tin Python

Tài liệu On thi HSG Tin học THPT Python

De thi học sinh giỏi tin 11 Python

Tài liệu on thi HSG Tin học THPT C++

De thi học sinh giỏi Tin lớp 10 cấp trường Python

De thi học sinh giỏi Tin lớp 10 cấp trường Python

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO CHỢ GẠO

KỲ THI CHỌN HỌC SINH GIỎI CẤP HUYỆN TRUNG HỌC CƠ SỞ.

NĂM HỌC 2022-2023

Môn: TIN HỌC

Thời gian làm bài: 150 phút (Không kế thời gian giao đề)

Ngày thi: 14/02/2023

(Đề thi có 03 trang, gồm 05 bài)

TỔNG QUAN BÀI THI

Tên bàiFile chương trìnhFile dữ liệu vào

*

File kết quả
Bài 1In sổ léSOLE.*SOLE.INPSOLE.OUT
Bài 2Đối xứngDOIXUNG.*DOIXUNG.INPDOIXUNG.OUT
Bài 3Công tắc đènSWITCH.*SWITCH.INPSWITCH.OUT
Bài 4Giải mã thông điệpGIAIMA.*GIAIMA.INPGIAIMA.OUT
Bài 5Chọn hoaCHONHOA.*CHONHOA.INPCHONHOA.OUT

Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ’ lập trình được sử dụng tương ứng là Pascal, C++, Python hoặc phần mở rộng tương ứng với ngôn ngữ lập trình khác.

Bài 1: In số lẻ (4,0 điểm) ?

  • Cho n là một số nguyên bất kì {0<n<1000).
  • Yêu cầu: Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng số nguyên dương n và đếm xem có bao nhiêu số lẻ được in ra.
  • Dữ liệu vào: Cho từ tệp văn bản SOLE.INP (Có thể nhập từ bàn phím) gồm
  • 1 dòng chứa số nguyên n (0<n<1000).                        ‘
  • Dữ liệu ra: Ghi vào tệp văn bản SOLE.OUT (Có thể in ra màn hình) gồm 2 dòng chứa các thông tin sau:
    • Dòng đầu tiên liệt kê 1 dãy số lẻ.
    •  Dòng thử hai ghi số lượng các số lẻ.
 

Ví dụ:

SOLE.INPSOLE.OUT
201 3 5 7 9 11 13 15 17 19 10

 

 

Bài 2: Đối xứng (4.0 điểm ) ?

  • Số nguyên n gọi là số đối xứng nếu đọc từ trái qua phải, hay từ phải qua trái đều được số giống nhau. Chẳng hạn số 11,121,101 là các số đối xứng.
  • Yêu cầu: Viết chương trình tìm tất cả các số đối xứng có từ 2 chữ số trở lên từ n đến m.
  • Dữ liệu vào: Cho từ file văn bản DOIXƯNG.INP gồm 1 dòng chứa 2 số nguyên n, m (n <m) cách nhau bởi dấu-cách.
  • Dữ liệu ra: Ghi ra file văn bản DOIXUNG.OUT chứa các số đối xứng có 2 chữ số trở lên từ n đến m; các số cách nhau bởi dấu cách. Nếu không tìm được số đối xứng như yêu cầu thì ghi ra
  • Ví dụ:
DOIXUNG.INPDOIXUNG.OUT
80 11088 99 101

Bài 3: Công tắc đèn (4,0 điểm) ?

  • Trên vách tường được bố trí dãy liên tiếp các công tắc để điều khiển một bóng đèn điện, mỗi công tắc có thể được bật hoặc tắt. Được biết đèn chỉ được bật sáng khi có ít nhất hai công tắc được bật và không nằm cạnh nhau.
  • Yêu cầu: Với trạng thái của các công tắc, bạn cần phải xác định xem đèn có được bật sáng hay không.
  • Dữ liệu vào: Cho từ file văn bản SWITCH.INP gồm một xâu chứa các ký hiệu “+” hoặc mô tả các trạng thái của công tắc, từ công tắc đầu tiên đến công tắc cuối cùng và theo thứ tự từ trái sang phải. Ký hiệu “+” cho biêt công tăc ở trạng thái “bật” và chỉ trạng thái “tắt”.
  • Dữ liệu ra: Ghi ra file văn bản SWITCH.OUT chứa chữ “On” (không có dấu nháy kép) nếu đèn được bật sáng hoặc “Off ’ (không có dấu nháy kép) trong trường hợp ngược lại.
  • Ví dụ: 
SVVITCH.INPSWITCH.OUT
+-+-On
+–+-++Off

Bài 4: Giải mã thông điệp (4,0 điểm ) ?

  • Diễn giải:
    • Trong thời đại ngày nay, thông tin cá nhân của mỗi người dễ dàng bị xâm nhập bởi rất nhiều công nghệ hiện đại dùng để nghe lén.
    • Chính vì vậy, một đôi bạn muốn bảo mật thông tin cho nhau đã có sáng kiến nghĩ ra cách trao nhau những thông điệp mà người khác đọc hoặc nghe được thì không hiểu gì.
    • Thông điệp của họ là một câu với nhiều từ được phân biệt bởi ký tự trống (dấu cách) và được sắp xếp lộn xộn để trở thành câu vô nghĩa.
    • Để hiểu nội dung một thông điệp của người bạn gửi cho mình,
    • hai người bạn đã quy ước trước một bộ mã là một dãy số nguyên dương có số lượng số tương ứng với số từ của thông điệp nhằm giải mã thành câu có ý nghĩa.
  • Yêu cầu: Viết chương trình để giúp đôi bạn giải mã một thông điệp cho trước.
  • Dữ liệu vào: Cho từ file văn bản GIAIMA.INP gồm 2 dòng:
    •  Dòng đầu ghi một câu có không quá 255 kí tự là thông điệp được gởi đi.
    •  Dòng thứ hai ghi bộ mã gồm một dãy các số nguyên dương chỉ vị trí các từ của thông điệp trên (mỗi số cách nhau bởi 1 dấu khoảng trắng).
  • Dữ liệu ra: Ghi ra file văn bản GIAIMA.OUT gồm một dòng ghi câu đã được giải mã từ thông điệp đã cho.
  • Ví dụ:
 

GIAIMA.INPGIAIMA.OUT
gioi ban chuc hoc luon

3 2 5 4 1

chuc ban luon hoc gioi

Bài 5: Chọn hoa (4,0 điểm ) ?

  • Diễn giải:
    • Một công ty XYZ nọ, cứ đến mỗi quý là tổ chức sinh nhật cho nhân viên 1 lần.
    • Ông chủ của công ty này tên Bình là người yêu thích hoa lan, cho nên đến lần tổ chức sinh nhật trong quý I năm 2023 này,
    • Ông Bình quyết định đến cửa hàng bán hoa tươi để mua hoa về tặng cho nhân viên.
    • Cửa hàng hiện đang có n (n<= 20) giỏ phong lan rất đẹp được đánh số từ 1 đến n.
    • Các giỏ lan đều đẹp như nhau nên ông phân vân không biết chọn giỏ nào.
    • Ông muốn mua tặng cho nhân viên là k ( k <=n ) giỏ phong lan
  • Yêu cầu: Viết chương trình giúp ông Bình tìm tất cả các cách có the chọn.
  • Dữ liệu vào: Cho từ tệp văn bản CHONIIOA.INP gồm một dòng chứa 2 số nguyên n, k.
  • Dữ liệu ra: Ghi vào tệp văn bản CHONHOA.OUT tất cả các cách chọn có thể và tổng số cách chọn.
  • Ví dụ:
CHONHOA.INPCHONHOA.OUT
4 21 2

1 3

1 4

2 3

2 4

3 4

Tong so cach chon: 6

Đáp án bài 1: In số lẻ (4,0 điểm) ?

 

import sys
sys.stdin=open('SOLE.INP','r')
sys.stdout=open('SOLE.OUT','w')
n=int(input())
dem=0
for i in range(n+1):
    if i%2!=0:
        dem+=1
        print(i,end=' ')
print()
print(dem)

 

Đáp án bài 2: Đối xứng (4.0 điểm ) ?

 

import sys
sys.stdin=open('DOIXUNG.INP','r')
sys.stdout=open('DOIXUNG.OUT','w')
def ktdx(n):
    s=str(n)
    return s==s[::-1]
m,n=map(int,input().split())
for i in range(m,n+1):
    if ktdx(i) and i>1:
        print(i,end=' ')

 

Đáp án bài 3: Công tắc đèn (4,0 điểm) ?

 

import sys
sys.stdin=open('SWITCH.INP','r')
sys.stdout=open('SWITCH.OUT','w')
s=input()
a=list(s)
kq=1
for i in range(len(a)-1):
    if (a[i]=='-'and a[i+1]=='-') or (a[i]=='+'and a[i+1]=='+'):
        kq=0
        break
if kq==1:
    print('On')
else:
    print('Off')

 

Đáp án bài 4: Giải mã thông điệp (4,0 điểm ) ?

 

import sys
sys.stdin=open('GIAIMA.INP','r')
sys.stdout=open('GIAIMA.OUT','w')
a=input().split()
b=list(map(int,input().split()))
c=[]
d=[]
for i in range(len(b)):
    c.append(b[i]-1)
for i in range(len(c)):
    for j in range(len(a)):
        if c[i]==j:
            d.append(a[j])
print(*d)

 

Đáp án bài 5: Chọn hoa (4,0 điểm ) ?

 

import sys
sys.stdin=open('CHONHOA.INP','r')
sys.stdout=open('CHONHOA.OUT','w')
n,k=list(map(int,input().split()))
dem=0
for i in range(1,k+2):
    for j in range(2,n+1):
        if i!=j and i<=j:
            dem+=1
            print(i,j)
print('Tong so cach chon:',dem,sep='')

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

 

19 Đề thi HSG Tin 9 C++ Python có đáp án 2024 – 2025

Rồi các em đã giải đến đề thứ 19 thi HSG Tin 9 C ++ hoặc Python là các em đã có nhiều kinh nghiệm để chuẩn bị thi cấp huyện cho tốt rồi! Các em nào chưa giải bắt đầu từ đề 1 các em nên giải từ đề 1 trước vì mình giải đề từ cơ bản đến nâng cao các em nhé! Chúc các em vượt qua kỳ thi và đạt được kết quả thật tốt các em nhé !

Đây đã là đề thi số 19 Đề thi học sinh giỏi Tin học THCS có đáp án 

  •  Các bạn bạn nào chưa giải tới thì vui lòng chọn lại bắt đầu từ Giải đề 1 các bạn nhé !
  • Vì từ thầy để các đề từ dễ đến nâng cao các bạn nhé! Mình mới vô đừng giải đề khó quá mà phải giải từ dễ trước từ từ sẽ giỏi lên từng ngày các bạn nhé!
  • Các đề ôn thi để chuẩn bị thi Cấp Huyện thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!
    1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
    4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
    5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
    6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
    7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
    8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
    9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
    10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.
    11. Đề thi hsg tin 11 python có đáp án hay nhất 2024
    12. 12 đề và đáp án thi HSG tin Python có sắp xếp
    13. Đề 13 thi học sinh giỏi Tin học THCS có đáp án hay nhất năm 2024.
    14. 14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mới nhất !
    15. 15 Đề thi học sinh giỏi Tin học lớp 9 cấp huyện hay nhất 2024 – 2025
    16. 16 Đề bài tập Python có lời giải PDF thi HSG cấp huyện mới nhất
    17. 17 đề thi tin học trẻ có Đáp Án python THCS cấp huyện PDF
    18. 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025
    19. 19 thi HSG Tin 9 C ++ hoặc Python có đáp án
    20. 100 đề và đáp án thi HSG tin Python cấp huyện 2025

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học

nguồn: 300bàicode.vn

Giải ngay đề 19 thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2024 – 2025 !

TỔNG QUAN CÁC BÀI THI

Thứ tựTên bàiFile

chương

trình

File dữ liệu

vào

File kết quả
Bài 1Phân loại cận thịD201.*D201.INPD201.OUT
Bài 2In những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến nD202.*D202.INPD202.OUT
Bài 3Đếm số lượng số trong mảng có tổng các ước là số lẻD203.*D203.INPD203.OUT
Bài 4Xóa các từ trùng lặp trong xâu sD204.*D204.INPD204.OUT
Bài 5Mã hóa xâu sD205.*D205.INPD205.OUT

Bài 1 ( 4 điểm ): Phân loại cận thị ?

  • Diễn giải:
    • Một robot AI được huấn luyện để làm nhiệm vụ phân loại mức độ cận thị của học sinh, người huấn luyện dựa vào số độ (Diop) được xác định bằng thiết bị chuyên dụng gắn trên robot. Dưới đây là phân loại mức độ cận thị:
    • Cận thị nhẹ: Độ cận dưới 3.0 Diop.
    • Cận thị trung bình: Độ cận từ 3.0 Diop đến dưới 6.0
    • Cận thị nặng: Độ cận từ 6.0 Diop dưới 10.0 Diop.
    • Cận thị cực đoan: Độ cận từ 10.00 Diop trở lên.
    • Nhập vào số độ cận thị của một người, hãy cho biết người này đang ở mức độ cận thị nào.
  • Input: Một số thực có giá trị từ 0 đến 10 mũ 2 cho biết giá trị của độ cận.
  • Output: Kết quả mức độ theo mô tả trên (không có dấu tiếng Việt, ký tự đầu tiên là chữ in hoa).
  • Ví dụ:

D201.INP

D201.OUT

1.75Can thi nhe
3.25Can thi trung bình

Bài 2: (4 điểm) ln những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n ?

  • Diễn giải:
  • Nhập vào hai sổ nguyên m và n (m<=n). In những số nguyên tố mà đảo ngược của
  • sổ đó cũng lả số nguyên tố của các sổ nguyên từ m đến n
  • Input: Hai số nguyên dương m vả n (0<m, n<106), mỗi số trên một dòng.
  • Output: Những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố theo thứ tự từ m đến n, các số cách nhau một dấu cách.
  • Ví dụ:

Input

Output

11

15

11 13
2

13

2 3 5 7 11 13

 

Bài 3: (4 điểm) Đếm số lượng số trong mảng có tổng các ước là số lẻ ?

  • Diễn giải:
    • Nhập vào một mảng a có n số nguyên: a0, a1, a2,…..an
    • Đếm số lượng số trong mảng có tổng các ước dương là số lẻ.
  • Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105
  • Output:
    • Số lượng số trong mảng có tổng các ước dương là số lẻ.
    • Nếu không có số nào có tổng các ước dương là số lẻ trong mảng thì in “-“
  • Ví dụ:
Input

Output

72
9
6
3
15
10
7
-2

 

 

51
7
3
6
0

 

Bài 4: (4 điểm) Xóa các từ trùng lặp trong xâu s ?

  • Diễn giải:
    • Nhập vào một xâu s.
    • Xóa các từ trùng lặp trong xâu s (giữ lại một từ).
  • Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: Xâu s đã được xóa các từ trùng lặp.
  • Ví dụ:

Input

Output

Toi moi mua mot chiec PC moi, PC moi, that su rat moiToi moi mua mot chiec PC that su rat
Chiec PC moi chay that muotChiec PC moi chay that muot

 

Bài 5: (4 điểm) Mã hóa xâu s ?

  • Diễn giải:
    • Nhập vào một xâu s và một số tự nhiên k.
    • Mã hoá xâu s bằng cách đổi tất cả ký tự sang ký tự mới cách ký tự cũ k đon vị trong bảng mã ASCII
  • Input: Xâu s trên một dòng một, có độ dài không vượt quá 105, chứa các ký tự là chữ cái in hoa, chữ sổ, ký hiệu và các dấu cách. Dòng hai là sổ tự nhiên k (0<k<27)
  • Output: Kết quả xâu s đã được mã hoá
  • Ví dụ:
Input

Output

LAP TRINH

3

ODS#WULỌK
XIN CHAO, TOI LA MAY VI TINH 10bSX*MRKY6*AYS*VK*WKc*’S*Ã

 

Bài 1 ( 4 điểm ): Phân loại cận thị ?

 

import sys
sys.stdin=open('D201.INP','r')
sys.stdout=open('D201.OUT','w')
n=float(input())
if n<3.0:
    print('Can thi nhe')
if 3.0<=n<6.0:
    print('Can thi trung binh')
if 6.0<=n<10.0:
    print('Can thi nang')
if n>10.00:
    print('Can thi cuc doan')

 

Bài 2: (4 điểm) ln những số nguyên tố mà đảo ngược của số đó cũng là số nguyên tố của các số nguyên từ m đến n ?

 

import sys
sys.stdin=open('D202.INP','r')
sys.stdout=open('D202.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
def daonguoc(n):
    s=str(n)
    s=s[::-1]
    return int(s)
m=int(input())
n=int(input())
for i in range(m,n+1):
    if ktnt(i) and ktnt(daonguoc(i)):
        print(i,end=' ')

 

Bài 3: (4 điểm) Đếm số lượng số trong mảng có tổng các ước là số lẻ ?

 

import sys
sys.stdin=open('D203.INP','r')
sys.stdout=open('D203.OUT','w')
def tonguoc(n):
    tong=0
    for i in range(1,n+1):
        if n%i==0:
            tong+=i
    return tong
n=int(input())
a=[]
for i in range(n):
    a.append(int(input()))
dem=0
for i in range(len(a)):
    if tonguoc(abs(a[i]))%2!=0:
        dem+=1
if dem==0:
    print('-')
else:
    print(dem)

 

Bài 4: (4 điểm) Xóa các từ trùng lặp trong xâu s ?

 

import sys
sys.stdin=open('D204.INP','r')
sys.stdout=open('D204.OUT','w')
m=input().split()
n=sorted(set(m),key=m.index)
print(*n,sep=' ')

 

Bài 5: (4 điểm) Mã hóa xâu s ?

import sys
sys.stdin=open('D205.INP','r')
sys.stdout=open('D205.OUT','w')
def Mahoaxaus(s,k):
    tong=''
    for i in s:
        tong+=chr(ord(i)+k)
    return tong
s=input()
k=int(input())
ketqua=Mahoaxaus(s,k)
print(ketqua)

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !