---
# System prepended metadata

title: ĐỀ 2

---

# Đề 2:

- **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 chuỗi `arrFruits` với các phần tử sau: "Apple", "Banana", "Orange", "Mango", "Grapes" (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
        -------------------------------------
        | My Fruit Application              |
        -------------------------------------
        | 1. Print fruits                   |
        | 2. Find fruits                    |
        | 3. Concatenate fruits             |
        | 4. Sort fruits by length          |
        | 5. Count vowels in fruits         |
        | 6. Clear screen                   |
        | 7. Exit                           |
        -------------------------------------
        ```
    - Viết hàm `printFruits` không có giá trị trả về và có hai tham số là mảng chuỗi `arrFruit` và kích thước của mảng `size`. Hàm này sẽ in ra danh sách các quả và thêm dấu "!" vào cuối cùng của kết quả in được như sau: (2đ)
        ```markdown
        Fruits: Apple, Banana, Orange, Mango, Grapes!
        ```
    - Viết hàm `findFruits` không có giá trị trả về và có ba tham số là chuỗi `searchFruit`, mảng chuỗi `arrFruit`, và kích thước của mảng `size`. Hàm này sẽ tìm và in ra danh sách các quả trong mảng mà chứa chuỗi `searchFruit` như sau: (1đ)
        ```markdown
        Fruits containing "an":
        Banana, Mango, Grapes
        ```
    - Viết hàm `reverseFruits` không có giá trị trả về và có hai tham số là mảng chuỗi `arrFruit` và kích thước của mảng `size`. Hàm này sẽ đảo ngược thứ tự các quả trong mảng và in ra kết quả như sau: (2đ)
        ```markdown
        Reversed Fruits: Grapes, Mango, Orange, Banana, Apple
        ```
    - Viết hàm `sortByLength` không có giá trị trả về và có hai tham số là mảng chuỗi `arrFruit` và kích thước của mảng `size`. Hàm này sẽ sắp xếp các quả trong mảng theo độ dài tăng dần và in ra kết quả như sau: (2đ)
        ```markdown
        Sorted Fruits by Length: Apple, Mango, Grapes, Banana, Orange
        ```
    - Viết hàm `countVowels` không có giá trị trả về và có ba tham số là mảng chuỗi `arrFruit`, kích thước của mảng `size`. Hàm này sẽ đếm số lượng nguyên âm (các ký tự `a, e, i, o, u`) trong mỗi quả trong mảng , sau đó in ra danh sách số lượng nguyên âm như sau: (1đ)
        ```markdown
        -----------------------------
        | Fruit        | Vowel Count |
        -----------------------------
        | Apple        | 2           |
        | Banana       | 3           |
        | Orange       | 3           |
        | Mango        | 2           |
        | Grapes       | 2           |
        -----------------------------
        ```

- **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 `printFruits` với tham số là mảng `arrFruits` và kích thước của mảng để hiển thị các quả (1đ)
            - Nếu người dùng chọn 2: Yêu cầu người dùng nhập vào một chuỗi, sau đó gọi hàm `findFruits` với tham số là chuỗi đã nhập, mảng `arrFruits` và kích thước của mảng để tìm và in ra danh sách các quả chứa chuỗi đã nhập (1 đ)
            - Nếu người dùng chọn 3: Gọi hàm `concatenateFruits` với tham số là mảng `arrFruits` và độ dài mảng `size`, in ra kết quả (2đ)
            - Nếu người dùng chọn 4: Gọi hàm `sortByLength` với tham số là mảng `arrFruits` và độ dài mảng `size`, in ra mảng đã sắp xếp (1đ)
            - Nếu người dùng chọn 5: Gọi hàm `countVowels` với tham số là mảng `arrFruits`, độ dài mảng `size`, sau đó in ra danh sách số lượng nguyên âm (1đ)
            - Nếu người dùng chọn 6: 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 7: Kết thúc chương trình (0.5đ)
        - Yêu cầu triển khai với vòng lặp vô hạn để phần mềm luôn chạy. (2đ)
