Đếm số phần tử của mảng thỏa mãn điều kiện cho trước là một bài toán khá quen thuộc trong lập trình. Hãy cũng Cao đẳng FPT Polytechnic học tập, chia sẻ về vấn đề này nhé!
Một trong những vấn đề chúng ta thường gặp trong cuộc sống hằng ngày là đếm số đối tượng thỏa mãn một điều kiện nào đó ví dụ như đếm số sinh viên đạt loại giỏi trong một lớp. Để giải quyết bài toán này chúng ta phải duyệt lần lượt điểm số của các sinh viên để kiểm tra xem có lớn hơn hoặc bằng ngưỡng của điểm loại giỏi hay không. Mỗi khi gặp sinh viên thỏa mãn điểm loại giỏi thì chúng ta tăng biến đếm lên 1. Để lưu điểm số của các sinh viên chúng ta có thể sử dụng cấu trúc dữ liệu kiểu mảng, mỗi phần tử của mảng lưu điểm số của một sinh viên.
Như vậy, bài toán đếm số sinh viên đạt loại giỏi trong lớp sẽ trở thành đếm số phần tử của mảng thỏa mãn điều kiện điểm loại giỏi. Do đó bài toán được phát biểu như sau: Cho một mảng số thực dương với n phần tử, nhập vào một số thực dương f (điểm tối thiểu đạt loại giỏi). Đếm xem trong mảng có bao nhiêu phần từ lớn hơn hoặc bằng f.
Để duyệt lần lượt các phần tử của mảng chúng ta sử dụng một vòng lặp for với biến điều khiển vòng lặp chính là chỉ số của mảng. Mỗi khi gặp phần tử nào thỏa mã điều kiện lớn hơn hoặc bằng f thì tăng biến đếm lên 1, biến đếm ban đầu được khởi tạo bằng 0. Đoạn mã lệnh bên dưới minh họa cho hàm count với 3 tham số truyền vào là mảng scores, số phần tử của mảng n và số thực dương f.
Đầu tiến chúng ta khai báo biến count và khởi tạo bằng 0 dùng để đếm số phần tử của mảng thỏa mãn điều kiện lớn hơn hoặc bằng f (dòng 5). Tiếp theo, khai báo biến điều khiển vòng lặp index dùng làm chỉ số các phần tử của mảng (dòng 6). Dòng lệnh 7 là vòng lặp for dùng để quét các phần tử của mảng, ứng với mỗi phần tử của mảng thì dòng lệnh 8 kiểm tra xem nó có thỏa mãn điều kiện không (dòng 8). Nếu thỏa mãn điều kiện thì biến count được tăng lên 1 (dòng lệnh 9). Kết thúc hàm trả về biến count (dòng 12)
Hàm main() sẽ thực hiện validate dữ liệu nhập của biên f để đảm bảo f>0. Tiếp theo gọi hàm count() lưu kết quả trả về vào biến good và hiển thị kết quả ra màn hình. Kết quả thu được khi chạy chương trình như sau:
Khi nhập số âm thì yêu cầu nhập lại đến khi nhập được số dương, sau đó sẽ in ra số phần tử của mảng thỏa mãn điều kiện >= điểm nhập vào.
Chúc các bạn thành công!
Giảng viên Nguyễn Thị Như Trang
Bộ môn Ứng dụng phần mềm Cao đẳng FPT Polytechnic Hà Nội