# Đề 3:
- **Câu 1**:
- Tạo chương trình với hàm `main` (1đ)
- Khai báo và khởi tạo mảng số nguyên `arrNumbers` với các phần tử sau: 5, 12, 7, 3, 9 (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đ)
```markdown
-------------------------------------
| Array Operations |
-------------------------------------
| 1. Calculate factorial |
| 2. Find prime numbers |
| 3. Sort in descending order |
| 4. Calculate sum |
| 5. Reverse array order |
| 6. Calculate product |
| 7. Clear screen |
| 8. Exit |
-------------------------------------
```
- Viết hàm `calculateFactorial` không có giá trị trả về và có hai tham số là một mảng số nguyên `numbers` và kích thước của mảng `size`. Hàm này sẽ tính giai thừa của các số trong mảng và in ra kết quả như sau: (2đ)
```markdown
------------------------------
| Number | Factorial |
------------------------------
| 5 | 120 |
| 12 | 479001600 |
| 7 | 5040 |
| 3 | 6 |
| 9 | 362880 |
------------------------------
```
- Viết hàm `findPrimeNumbers` không có giá trị trả về và có hai tham số là một mảng số nguyên `numbers` và kích thước của mảng `size`. Hàm này sẽ tìm và in ra những số nguyên tố trong mảng (2đ)
- Viết hàm `sortDescending` không có giá trị trả về và có hai tham số là một mảng số nguyên `numbers` và kích thước của mảng `size`. Hàm này sẽ sắp xếp các số trong mảng theo chiều giảm dần và in ra kết quả (2đ)
- Viết hàm `calculateSum` không có giá trị trả về và có hai tham số là một mảng số nguyên `numbers` và kích thước của mảng `size`. Hàm này sẽ tính tổng của các số trong mảng và in ra kết quả (2đ)
- Viết hàm `reverseArrayOrder` không có giá trị trả về và có hai tham số là một mảng số nguyên `numbers` và kích thước của mảng `size`. Hàm này sẽ đảo ngược trật tự các phần tử trong mảng và in ra kết quả (1đ)
- Viết hàm `calculateProduct` không có giá trị trả về và có hai tham số là một mảng số nguyên `numbers` và kích thước của mảng `size`. Hàm này sẽ tính tích của các số trong mảng và in ra kết quả (1đ)
- **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 `calculateFactorial` với tham số là mảng `arrNumbers` và kích thước của mảng để tính giai thừa của các số trong mảng và in kết quả (1đ)
- Nếu người dùng chọn 2: Gọi hàm `findPrimeNumbers` với tham số là mảng `arrNumbers` và kích thước của mảng để tìm và in ra các số nguyên tố trong mảng (1đ)
- Nếu người dùng chọn 3: Gọi hàm `sortDescending` với tham số là mảng `arrNumbers` và kích thước của mảng để sắp xếp các số trong mảng theo chiều giảm dần và in ra kết quả (1đ)
- Nếu người dùng chọn 4: Gọi hàm `calculateSum` với tham số là mảng `arrNumbers` và kích thước của mảng để tính tổng của các số trong mảng và in kết quả (1đ)
- Nếu người dùng chọn 5: Gọi hàm `reverseArrayOrder` với tham số là mảng `arrNumbers` và kích thước của mảng để đảo ngược trật tự các phần tử trong mảng và in kết quả (1đ)
- Nếu người dùng chọn 6: Gọi hàm `calculateProduct` với tham số là mảng `arrNumbers` và kích thước của mảng để tính tích của các số trong mảng và in kết quả (1đ)
- Nếu người dùng chọn 7: Xóa màn hình bằng cách gọi hàm tương ứng (0.5đ)
- Nếu người dùng chọn 8: Kết thúc chương trình (0.5đ)