# Đề 1: - **Câu 1**: - Tạo chương trình với hàm `main` (1đ) - Tạo mảng số nguyên `arrNum` với 10 phần tử sau: `1,7,9,14,9,16,2,1,18,1` (1đ) - Viết hàm `showMenu` không có giá trị trả về và không có tham số. Hàm này sẽ vẽ Menu của phần mềm như sau: (1đ) ``` ------------------------------------- | My First Application | ------------------------------------- | 1. Print numbers | | 2. Find numbers | | 3. Find average | | 4. Sort numbers by asc/desc | | 5. Group by numbers | | 6. Clear screen | | 7. Exit | ------------------------------------- ``` - Viết hàm `printNumber` không có giá trị trả về và có 2 tham số đầu vào là mảng số `numbers` và độ dài mảng `size`. Hàm này sẽ tiến hành in ra màn hình kết quả như sau: (1.5đ) ``` // The last character of the string is the `!` Numbers : 1 , 7 , 9 , 14 , 9 , 16 , 2 , 1 , 18 , 1 ! ``` - Viết hàm `findNumbers` không có giá trị trả về và có 3 tham số đầu vào là một `int flag`, mảng số `numbers` và độ dài mảng `size`. Hàm này sẽ tiến hành in ra màn hình những số trong dãy số NHỎ HƠN giá trị `flag` (1.5đ) - Viết hàm `findAverage` trả về một giá trị `double` và mảng số `numbers` và độ dài mảng `size`. Hàm này sẽ tiến hành tính toán giá trị trung bình của mảng số trên và TRẢ VỀ giá trị đó (2.5đ) - Viết hàm `sortBy` không có giá trị trả về và có 3 tham số đầu vào là một `int flag`, mảng số `numbers` và độ dài mảng `size`. Hàm này sẽ tiến hành kiểm tra xem tham số `flag` nếu là số chẵn thì sẽ sắp xếp theo chiều tăng dần, nếu là số lẻ thì sắp xếp theo chiều giảm dần (2.5đ) - Viết hàm `groupByNumber` không có giá trị trả về và có tham số đầu vào là mảng số `numbers` và độ dài mảng `size`. Hàm này sẽ tiến hành đếm số lần xuất hiện của một số trong mảng số ban đầu như sau: (1đ) ``` ----------------------- | Number | Count | ----------------------- | 1 | 3 Time | | 7 | 1 Time | | 9 | 2 Time | | 14 | 1 Time | | 16 | 1 Time | | 2 | 1 Time | | 18 | 1 Time | ----------------------- ``` - **Câu 2**: - Viết chương trình chạy trong hàm `main` và triển khai các yêu cầu sau: - Hiển thị menu bằng cách gọi hàm `showMenu` khi bắt đầu chương trình. - Yêu cầu người dùng lựa chọn theo menu: - Nếu người dùng chọn 1: Gọi hàm `printNumber` để hiển thị các số (0.5 đ) - Nếu người dùng chon 2: Yêu cầu người dùng nhập vào một số, gọi hàm `findNumbers` với tham trị tương ứng và tiến hành thực hiện chức năng của hàm. (1 đ) - Nếu người dùng chọn 3: Gọi hàm `findAverage` với tham trị tương ứng và in kết quả dưới dạng tối đa 2 số trong phần thập phân (1 đ) - Nếu người dùng chon 4: Yêu cầu người dùng nhập vào một số, gọi hàm `sortBy` với tham trị tương ứng và tiến hành thực hiện chức năng của hàm. (1 đ) - Nếu người dùng chon 5: Yêu cầu người dùng nhập vào một số, gọi hàm `groupByNumber` với tham trị tương ứng và tiến hành thực hiện chức năng của hàm. (0.5 đ) - Nếu người dùng chon 6: Clear màn hình nhưng không làm tắt phần mềm. (1 đ) - Nếu người dùng chon 7: Tắt phần mềm. (1 đ) - Yêu cầu triển khai phần mềm trong vòng lặp vô hạn để mỗi khi chọn một chức năng, có thể chọn lại chức năng đó (2đ)