Ví dụ: Luyện tập: Ôn thi tốt nghiệp
Bài học: Luyện tập Ôn thi tốt nghiệp - Tin học 10 CTST Giới thiệu bài học Các em thân mến, chúng ta đã đi qua những kiến thức trọng tâm của môn Tin học lớp 10. Để chuẩn bị tốt cho kỳ thi tốt nghiệp, việc luyện tập thường xuyên qua các ví dụ cụ thể là vô cùng quan trọng. Bài học h
Bài học: Luyện tập Ôn thi tốt nghiệp - Tin học 10 CTST
Giới thiệu bài học
Các em thân mến, chúng ta đã đi qua những kiến thức trọng tâm của môn Tin học lớp 10. Để chuẩn bị tốt cho kỳ thi tốt nghiệp, việc luyện tập thường xuyên qua các ví dụ cụ thể là vô cùng quan trọng. Bài học hôm nay sẽ hướng dẫn các em từng bước giải quyết một bài toán mẫu, từ phân tích đề bài, xây dựng thuật toán, đến viết và kiểm thử chương trình. Mục tiêu của chúng ta là rèn luyện tư duy logic và kỹ năng lập trình một cách thành thạo.
Lý thuyết cần nhớ
Trước khi đi vào ví dụ, các em cần ôn lại các khái niệm cốt lõi sau:
- Cấu trúc dữ liệu danh sách (list): Biết cách tạo, truy cập phần tử (index), thêm, xóa và duyệt danh sách.
- Các cấu trúc điều khiển: if (rẽ nhánh) và for/while (lặp) để kiểm tra và xử lý dữ liệu.
- Hàm (function): Cách định nghĩa và gọi hàm để tái sử dụng mã nguồn, giúp chương trình rõ ràng hơn.
- Xử lý chuỗi và số: Các thao tác cơ bản như chuyển đổi kiểu dữ liệu (int, str), tìm kiếm, tách chuỗi.
Ví dụ minh họa từng bước
Đề bài: Viết chương trình nhập vào một dãy số nguyên (mỗi số cách nhau bởi dấu cách). Hãy tách và in ra màn hình các số dương (lớn hơn 0) có trong dãy. Đồng thời, tính và thông báo tổng của các số dương đó.
Bước 1: Phân tích bài toán
- Đầu vào: Một xâu ký tự chứa các số nguyên, ví dụ: "5 -3 10 0 -1 7".
- Đầu ra: In danh sách các số dương, ví dụ: 5, 10, 7. In tổng của chúng: 22.
- Yêu cầu: Phải xác định đâu là số dương trong dãy, loại bỏ số âm và số 0.
Bước 2: Xây dựng thuật toán (liệt kê các bước)
- Nhập dữ liệu từ bàn phím (một dòng chứa các số cách nhau bằng dấu cách).
- Chuyển xâu ký tự thành danh sách các phần tử bằng cách tách dựa trên dấu cách (dùng hàm split()).
- Khởi tạo một danh sách rỗng để chứa các số dương, ví dụ so_duong = [].
- Khởi tạo biến tong = 0.
- Duyệt qua từng phần tử trong danh sách vừa tách:
- Chuyển phần tử đó thành số nguyên (dùng int()).
- Nếu số nguyên này lớn hơn 0 (số dương):
- Thêm nó vào danh sách so_duong (dùng append()).
- Cộng dồn nó vào biến tong.
- In ra màn hình các số dương vừa tìm được.
- In ra màn hình tổng của chúng.
Giải thích: Thuật toán này đảm bảo chúng ta kiểm tra từng giá trị một, chỉ lấy những giá trị thỏa mãn điều kiện và cộng dồn chúng lại.
Bước 3: Viết chương trình (mã giả và code)
Mã giả mô tả:
Nhập 'day_so' từ bàn phím
Tách 'day_so' thành danh sách 'cac_so' (ngăn cách bởi dấu cách)
so_duong = danh sách rỗng
tong = 0
Với mỗi 'so' trong 'cac_so':
chuyen_so = số nguyên của 'so'
nếu chuyen_so > 0:
thêm chuyen_so vào 'so_duong'
tong = tong + chuyen_so
In: "Các số dương là:", so_duong
In: "Tổng là:", tong
Chương trình Python hoàn chỉnh:
# Chương trình lọc số dương và tính tổng
# Bước 1: Nhập dữ liệu
input_string = input("Nhập dãy số cách nhau bằng dấu cách: ")
# Bước 2: Tách chuỗi thành danh sách các chuỗi con
number_strings = input_string.split()
# Bước 3: Khởi tạo
so_duong = []
tong = 0
# Bước 4: Duyệt và xử lý
for gia_tri in number_strings:
so_nguyen = int(gia_tri)
if so_nguyen > 0:
so_duong.append(so_nguyen)
tong = tong + so_nguyen
# Bước 5: In kết quả
print("Các số dương có trong dãy là:", so_duong)
print("Tổng các số dương là:", tong)
Bước 4: Kiểm thử chương trình
- Test 1: Nhập "5 -3 10 0 -1 7" -> Kết quả in ra: Các số dương có trong dãy là: [5, 10, 7] và Tổng các số dương là: 22 (Đúng).
- Test 2: Nhập "-2 -5 1" -> Kết quả in ra: Các số dương có trong dãy là: [1] và Tổng các số dương là: 1 (Đúng).
- Test 3: Nhập "0 0 0" -> Kết quả in ra: Các số dương có trong dãy là: [] và Tổng các số dương là: 0 (Hợp lý, vì không có số dương).
Ghi nhớ
- Kỹ năng tách chuỗi: Sử dụng thành thạo split() để chuyển dữ liệu nhập dạng xâu thành danh sách.
- Phân tích bài toán trước khi viết code: Luôn xác định rõ đầu vào, đầu ra và các bước xử lý chính (thuật toán).
- Kiểm thử kỹ lưỡng: Chạy thử với các bộ dữ liệu khác nhau, bao gồm cả trường hợp đặc biệt (đầu vào rỗng, toàn số âm, v.v.) để đảm bảo chương trình hoạt động đúng.
- Tái sử dụng mã nguồn: Nếu bài toán phức tạp hơn, hãy nghĩ đến việc đóng gói xử lý thành một hàm để dễ dàng gọi lại và gỡ lỗi.
Bài tập gợi ý
- Bài tập 1 (Cơ bản): Viết chương trình nhập vào một danh sách các số nguyên (cách nhau bởi dấu phẩy, ví dụ "3, -1, 7, 0, 2"). In ra các số chẵn (chia hết cho 2) và tính tích của chúng.
- Bài tập 2 (Nâng cao): Nhập vào một dãy điểm số (số thực). Hãy đếm xem có bao nhiêu điểm đạt (lớn hơn hoặc bằng 5.0) và in ra danh sách điểm đạt đó. Nếu không có điểm đạt nào, in ra thông báo "Không có học sinh đạt". (Gợi ý: sử dụng hàm float() để chuyển đổi).
- Bài tập 3 (Thử thách): Từ bài toán ví dụ, hãy viết lại chương trình dưới dạng một hàm có tên loc_so_duong(danh_sach) nhận đầu vào là một danh sách các chuỗi số, và trả về hai giá trị: danh sách các số dương và tổng của chúng. Sau đó, gọi hàm này từ chương trình chính.