- Mã:
- OOP17.FINAL1
- Tên:
- OOP17.FINAL1
- Dạng thi:
- oi
- Thang điểm:
- 10 điểm
- Giới hạn thời gian:
- 1 giây
- Giới hạn bộ nhớ:
- 256 MB
- Được tạo bởi:
- admin
Yêu cầu 1:
Xây dựng lớp Set dùng để mô tả đối tượng tập hợp các
số nguyên trong toán học. Trong một tập hợp không thể có 2 phần tử trùng nhau
(tức bằng nhau). Lớp Set gồm có những thành phần sau đây:
- Hàm khởi tạo mặc định để tạo ra
một tập hợp rỗng
- Hàm khởi tạo 1 tham số là số
nguyên N để tạo ra 1 tập hợp
có n phần tử lần lượt có giá trị từ 1
đến N. Nếu N = 0, thì tạo ra tập hợp
rỗng.
- Hàm khởi tạo 2 tham số lần lượt
là 2 số nguyên A và B (A <= B) để tạo ra
1 tập hợp có (B–A+1) phần tử lần lượt có giá trị từ
a đến b. Nếu A>B, thì tạo ra tập
hợp rỗng.
- Hàm khởi tạo sao chép
- Phương thức bool Contain(int x): cho biết tập hợp đó có chứa x hay không
- Phương thức bool Add(int x): thêm x vào tập hợp. Nếu x đã có rồi thì trả về là
false
- Phương thức bool Remove(int x): lấy x ra khỏi tập hợp. Nếu x chưa có trong tập
hợp thì trả về là false
- Phép toán & trả về 1 tập hợp
chứa các phần tử thuộc cả 2 tập hợp
- Phép toán | trả về 1 tập hợp chứa
các phần tử thuộc ít nhất 1 tập hợp
- Phương thức nạp chồng toán tử <<
để in các phần tử trong tập hợp. Lưu ý, các phần tử sẽ được in ra theo thứ tự
tăng dần, mỗi phần tử cách nhau 1 khoảng trắng. Nếu là tập hợp rỗng thì in ra
chữ “NULL
Yêu cầu 2:
Sử dụng lớp ở trên, giải bài tập
với các yêu cầu sau:
Input:
- Dòng đầu tiên là 1 số nguyên không âm N để khởi tạo ra tập hợp S1 theo
phương thức khởi tạo 1 tham số
- Dòng thứ hai là 2 số nguyên A và B (A<=B) để khởi tạo ra tập hợp S2
theo phương thức khởi tạo 2 tham số
Output:
- Dòng đầu tiên là kết quả của phép toán S1 | S2
- Dòng thứ hai là kết quả của phép toán S1 & S2
Ví dụ:
Input |
Output |
5 1 10 |
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 |
0 -1 2 |
-1 0 1 2 NULL |
10 -10 -5 |
-10 -9 -8 -7 -6 -5 1 2 3 4 5 6 7 8 9 10 NULL |
Theme :
Mời bạn soạn code