[BT Lập trình hướng đối tượng – OOP] Class mảng căn bản

Link Submit : LOPMANG

1. Đề bài về Class mảng căn bản

Xây dựng lớp mảng cho phép thực hiện các thao tác sau:

  • Nhập, xuất mảng.
  • Lấy kích thước mảng.
  • Lấy phần tử tại vị trí nào đó.
  • Gán giá trị cho phần tử tại vị trí nào đó.
  • Tìm phần tử nào đó trong mảng.
  • Sắp xếp tăng, giảm

Yêu cầu áp dụng lớp mảng ở trên để viết chương trình giải bài sau:

Input

– Dòng 1: nhập vào 1 số nguyên X (x<=100)
– Nhập vào 1 dãy số (không cho biết trước số lượng phần tử – chỉ biết số lượng phần tử <=100 và mỗi phần tử có giá trị <=100)

Output

– Dòng 1: số lượng phần tử của mảng
– Dòng 2: Xuất TRUE nếu có giá trị X trong mảng, xuất FALSE nếu không có giá trị X trong mảng
– Dòng 3: xuất mảng theo thứ tự tăng dần
– Dòng 4: Sau khi phần tử đầu mảng tăng lên 1 đơn vị (mảng ban đầu) hãy xuất mảng theo thứ tự giảm dần

ví dụ

input
3
2 1 3 4
output
4
TRUE
1 2 3 4
4 3 3 1

2. Code tham khảo về Class mảng căn bản

#include <iostream>
#include <algorithm>
#include<functional> // std::greater
#include <vector>
using namespace std;

class Mang
{
private:
    int a[100];
    int n;
public:
    Mang(){ n =0; }
    ~Mang() {}
    int getAi(int i)
    {
        return a[i];
    }
    void nhap()
    {
        int xx;
        n = 0;
        while (cin >> xx)
        {
            a[n++] = xx;
        }
    }

    void xuat()
    {
        for (int i = 0; i < n; i++)
            cout << a[i] << " ";
        cout << endl;
    }

    int getspt()
    {
        return n;
    }

    void set(int i, int x)
    {
        a[i] = x;
    }

    int tim(int x)
    {
        for (int i = 0; i < n; i++)
            if (a[i] == x)
                return i;
        return -1;
    }
    void sapxep(int tang)
    {
        if (tang == 1)
            sort(a, a+n);
        else
            sort(a , a + n, greater<int>());
    }
};

int main()
{
    int x;
    cin >> x;

    Mang B;
    B.nhap();
    Mang C = B;
    cout << B.getspt() << endl;
    cout << (B.tim(x)!=-1 ? "TRUE" : "FALSE") << endl;
    B.sapxep(1);
    B.xuat();
    C.set(0, C.getAi(0) + 1);
    C.sapxep(0);
    C.xuat();
    system("pause");
    return 0;
}

2 thoughts on “[BT Lập trình hướng đối tượng – OOP] Class mảng căn bản

  1. Ad cho em hỏi chút ạ!
    Em đang học phần Class mà em không biết làm phần chèn 1 nhân viên mới vào vị trí k trong danh sách, ad có thể giúp em được không ạ?
    Em cảm ơn nhiều ạ!!!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *