Hàm tạo, hàm hủy và nạp chồng toán tử khi sử dụng struct

Tổng hai phân số (nạp chồng)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct PhanSo gồm tử số và mẫu số. Viết hàm tạo để khởi tạo phân số (mặc định là 0/1). Nạp chồng toán tử + để thực hiện phép cộng hai phân số. Kết quả phải được tối giản.

Đầu vào:

Dòng 1: Tử và mẫu của phân số thứ nhất.

Dòng 2: Tử và mẫu của phân số thứ hai.

Đầu ra:

Phân số tổng ở dạng tối giản (tu/mau).

Ràng buộc:

Mẫu số khác 0. Giá trị nằm trong khoảng int.

Ví dụ:

Input:
1 2 
1 3
Output:
5/6

So sánh sinh viên (operator<)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct SinhVien gồm Mã (string) và GPA (float). Nạp chồng toán tử < để so sánh hai sinh viên dựa trên GPA. Nếu GPA bằng nhau thì so sánh Mã theo thứ tự từ điển.

Đầu vào:

Dòng 1: N (số lượng sinh viên).

N dòng tiếp theo: Mã và GPA.

Đầu ra:

Danh sách sinh viên sau khi sắp xếp tăng dần theo tiêu chí đã định nghĩa.

Ràng buộc:

1 <= N <= 100.

Ví dụ:

Input:
2 
B2001 3.5 
A1001 3.5
Output:
A1001 3.5 B2001 3.5

Cộng số phức (operator+)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct SoPhuc gồm phần thực và phần ảo. Sử dụng hàm tạo để khởi tạo. Nạp chồng toán tử + để cộng hai số phức (thực cộng thực, ảo cộng ảo).

Đầu vào:

Dòng 1: Phần thực và ảo của số A.

Dòng 2: Phần thực và ảo của số B.

Đầu ra:

Số phức tổng dạng: Thuc Ao (cách nhau bởi dấu cách).

Ràng buộc:

Giá trị là số nguyên.

Ví dụ:

Input:
1 2 3 4
Output:
4 6

Khoảng cách (hàm tạo)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Diem gồm x, y. Viết hàm tạo có tham số để khởi tạo tọa độ. Viết phương thức tính khoảng cách từ điểm hiện tại tới gốc tọa độ (0,0).


Đầu vào:

Dòng 1: N (số điểm).

N dòng sau: x y.

Đầu ra:

Khoảng cách của từng điểm tới gốc tọa độ (làm tròn 2 chữ số thập phân).

Ràng buộc:

-1000 <= x, y <= 1000.


Ví dụ:

Input:
2 
3 4 
0 1
Output:
5.00 1.00

Hiệu thời gian (operator-)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct ThoiGian gồm gio, phut, giay. Nạp chồng toán tử - để tính khoảng cách giữa 2 mốc thời gian (trả về tổng số giây chênh lệch).


Đầu vào:

Dòng 1: gio phut giay (thời điểm 1).

Dòng 2: gio phut giay (thời điểm 2).

Đầu ra:

Số giây chênh lệch tuyệt đối giữa 2 thời điểm.

Ràng buộc:

Thời gian hợp lệ (0 <= gio <= 23, 0 <= phut, giay <= 59).


Ví dụ:

Input:
1 0 0 
1 1 30
Output:
90

Diện tích hình chữ nhật (operator>)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct HinhChuNhat gồm dai, rong. Viết hàm tạo. Nạp chồng toán tử > để so sánh diện tích của 2 hình chữ nhật.

Đầu vào:

Dòng 1: dai rong (hình 1).

Dòng 2: dai rong (hình 2).

Đầu ra:

In ra "Hinh 1 lon hon" nếu diện tích hình 1 > hình 2, ngược lại in "Hinh 1 khong lon hon".

Ràng buộc:

Kích thước là số nguyên dương.

Ví dụ:

Input:
4 5 
2 8
Output:
Hinh 1 lon hon

Tích vô hướng (operator*)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Vector2D gồm x, y. Nạp chồng toán tử * để tính tích vô hướng của 2 vectơ (x1x2 + y1y2).

Đầu vào:

Dòng 1: x1 y1.

Dòng 2: x2 y2.

Đầu ra:

Giá trị tích vô hướng.

Ràng buộc:

Giá trị tọa độ kiểu long long.

Ví dụ:

Input:
1 2 
3 4
Output:
11

Hàm hủy (destructor)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Message lưu trữ một nội dung tin nhắn (string).

Hàm tạo: In ra "Khoi tao: " + nội dung.

Hàm hủy: In ra "Huy: " + nội dung. Viết chương trình nhập vào một chuỗi, tạo đối tượng trong một phạm vi hẹp (trong cặp ngoặc {}) để thấy hàm hủy được gọi tự động.

Đầu vào:

Một dòng chứa nội dung tin nhắn (không khoảng trắng).

Đầu ra:

Dòng 1: Thông báo từ hàm tạo.

Dòng 2: Thông báo từ hàm hủy.

Ràng buộc:

Chuỗi không quá 100 ký tự.

Ví dụ:

Input:
Hello
Output:
Khoi tao: Hello 
Huy: Hello

So sánh ngày tháng (operator==)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Ngay gồm ngay, thang, nam. Nạp chồng toán tử == để kiểm tra xem 2 ngày có trùng nhau không.

Đầu vào:

Dòng 1: ngày tháng năm (ngày 1).

Dòng 2: ngày tháng năm (ngày 2).

Đầu ra:

In ra "TRUNG NHAU" hoặc "KHAC NHAU".

Ràng buộc:

Ngày tháng năm hợp lệ.

Ví dụ:

Input:
20 11 2023 
20 11 2023
Output:
TRUNG NHAU

Nhập xuất điểm (operator>> và operator<<)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng struct Diem2D gồm tọa độ x, y. Nạp chồng toán tử nhập (>>) và xuất (<<) để có thể dùng cin >> p và cout << p một cách trực tiếp. Định dạng xuất là: (x, y).


Đầu vào:

Một dòng chứa 2 số nguyên x và y.

Đầu ra:

In ra tọa độ theo định dạng (x, y).

Ràng buộc:

x, y kiểu int.


Ví dụ:

Input:
5 10
Output:
(5, 10)