Ví dụ: Luyện tập: Ôn thi tốt nghiệp
Bài: Luyện tập - Ôn thi tốt nghiệp (Ví dụ minh họa từng bước) Giới thiệu Trong quá trình ôn thi tốt nghiệp môn Tin học lớp 11, việc luyện tập thường xuyên với các bài toán thực tế giúp các em củng cố kiến thức về cấu trúc dữ liệu, thuật toán và kỹ năng lập trình. Bài học hôm nay
Bài: Luyện tập - Ôn thi tốt nghiệp (Ví dụ minh họa từng bước)
Giới thiệu
Trong quá trình ôn thi tốt nghiệp môn Tin học lớp 11, việc luyện tập thường xuyên với các bài toán thực tế giúp các em củng cố kiến thức về cấu trúc dữ liệu, thuật toán và kỹ năng lập trình. Bài học hôm nay sẽ hướng dẫn các em từng bước giải một bài toán cụ thể, từ phân tích đề, xây dựng thuật toán cho đến viết mã nguồn hoàn chỉnh. Đây là một ví dụ điển hình thường xuất hiện trong đề thi tốt nghiệp, với yêu cầu xử lý mảng và tính toán.
Lý thuyết cần nhớ
Trước khi đi vào ví dụ, chúng ta cần ghi nhớ một số khái niệm và kỹ thuật cơ bản:
- Mảng một chiều: Dùng để lưu trữ dãy các giá trị có cùng kiểu dữ liệu (ví dụ: danh sách điểm số).
- Các thao tác cơ bản trên mảng: duyệt mảng bằng vòng lặp, tính tổng, tìm giá trị lớn nhất/nhỏ nhất.
- Câu lệnh rẽ nhánh (if-else): Dùng để kiểm tra điều kiện và thực hiện các hành động khác nhau.
- Thuật toán tính giá trị trung bình: Tổng các phần tử chia cho số lượng phần tử.
Ví dụ minh họa từng bước
Đề bài: Cho một mảng A gồm n số nguyên dương (n ≤ 100). Hãy tính trung bình cộng của các số trong mảng, và cho biết có bao nhiêu số lớn hơn giá trị trung bình đó.
Bước 1: Phân tích đề bài
Chúng ta cần thực hiện hai yêu cầu:
- Tính giá trị trung bình cộng của tất cả các phần tử trong mảng.
- Đếm số lượng phần tử có giá trị lớn hơn giá trị trung bình vừa tính.
Đây là bài toán thuộc dạng "xử lý dữ liệu trên mảng" — vừa tính toán tổng quát, vừa so sánh từng phần tử.
Bước 2: Xác định dữ liệu và biến
- Input: Số nguyên dương n và mảng A có n phần tử.
- Output: Giá trị trung bình cộng (số thực) và số lượng phần tử lớn hơn trung bình.
- Biến trung gian: tong (tổng các phần tử), dem (biến đếm), tbc (trung bình cộng).
Bước 3: Xây dựng thuật toán (mô tả bằng ngôn ngữ tự nhiên)
- Nhập số lượng phần tử n và các giá trị của mảng A.
- Khởi tạo tong = 0.
- Lặp qua từng phần tử từ chỉ số 0 đến n-1:
- Gán tong = tong + A[i].
- Tính tbc = tong / n.
- Khởi tạo dem = 0.
- Lặp lại qua từng phần tử từ chỉ số 0 đến n-1:
- Nếu A[i] > tbc thì tăng dem lên 1.
- In ra giá trị tbc và dem.
Bước 4: Mô phỏng với bộ dữ liệu nhỏ
Giả sử: n = 5, mảng A = [10, 20, 30, 40, 50].
- Bước 1: Tính tổng = 10 + 20 + 30 + 40 + 50 = 150.
- Bước 2: tbc = 150 / 5 = 30.
- Bước 3: Duyệt lại mảng:
- 10 > 30? → Không.
- 20 > 30? → Không.
- 30 > 30? → Không (bằng nhau, không thỏa mãn).
- 40 > 30? → Có, dem = 1.
- 50 > 30? → Có, dem = 2.
- Kết quả: tbc = 30.0, dem = 2.
Vậy có 2 số lớn hơn giá trị trung bình.
Bước 5: Mã nguồn (ví dụ bằng ngôn ngữ giả)
Các em có thể viết chương trình dựa trên thuật toán như sau:
Bắt đầu
Nhập n
Khai báo mảng A có n phần tử
Nhập các giá trị cho A
tong ← 0
Với i từ 0 đến n-1:
tong ← tong + A[i]
tbc ← tong / n
dem ← 0
Với i từ 0 đến n-1:
Nếu A[i] > tbc thì dem ← dem + 1
Xuất tbc
Xuất dem
Kết thúc
Lưu ý: Trong ngôn ngữ lập trình cụ thể (như Python hay C++), các em cần khai báo kiểu dữ liệu phù hợp (ví dụ, tbc nên là số thực).
Ghi nhớ
- Khi làm bài tập ôn thi tốt nghiệp, cần đọc kỹ đề bài để xác định chính xác yêu cầu (tính gì, so sánh với gì).
- Trong quá trình luyện tập, chúng ta nên mô phỏng bằng tay với một bộ dữ liệu nhỏ để kiểm tra thuật toán trước khi viết chương trình.
- Kỹ thuật duyệt mảng kết hợp với câu lệnh rẽ nhánh (if) là một trong những kỹ năng cốt lõi thường gặp trong đề thi.
- Giá trị trung bình cộng được tính bằng tổng chia cho số lượng, kết quả thường là số thực để tránh mất độ chính xác.
Bài tập gợi ý
Các em hãy tự luyện tập với các đề bài tương tự sau đây:
- Cho mảng B gồm n số nguyên. Tính trung bình cộng của các số chẵn trong mảng và đếm xem có bao nhiêu số lẻ lớn hơn trung bình đó.
- Cho mảng C gồm n số thực. Tìm giá trị nhỏ nhất của mảng, sau đó tính tổng của các phần tử có giá trị bằng giá trị nhỏ nhất đó.
- Cho mảng D gồm n số nguyên dương. Hãy in ra các phần tử là số nguyên tố (kiểm tra tính nguyên tố cho từng số).