Nạp chồng toán tử trong Struct C++
Tổng hai phân số (nạp chồng)
Nộp bàiPoint: 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àiPoint: 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 (làm tròn lấy 1 chữ số sau phần thập phân).
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àiPoint: 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
Nhập xuất điểm (operator>> và operator<<)
Nộp bàiPoint: 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)
Khoảng cách (hàm tạo)
Nộp bàiPoint: 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àiPoint: 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àiPoint: 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àiPoint: 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
So sánh ngày tháng (operator==)
Nộp bàiPoint: 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 đơn thức (nạp chồng cin, cout)
Nộp bàiPoint: 1
Xây dựng struct DonThuc gồm hệ số (số thực) và số mũ (số nguyên).
Nạp chồng toán tử >> để nhập hệ số và số mũ.
Nạp chồng toán tử << để in ra đơn thức theo định dạng: heSo*x^soMu.
Lưu ý: In ra các hệ số của đơn thức luôn lấy 1 chữ số sau phần thập phân
Đầu vào:
Một dòng chứa hệ số và số mũ.
Đầu ra:
Chuỗi biểu diễn đơn thức.
Ràng buộc:
Số mũ >= 0.
Ví dụ:
Input:
5.5 2
Output:
5.5*x^2
Nhập xuất hỗn số (nạp chồng cin, cout)
Nộp bàiPoint: 1
Xây dựng struct HonSo gồm phần nguyên, tử số, mẫu số.
Nạp chồng toán tử >> để nhập 3 thành phần theo thứ tự: nguyên, tử, mẫu.
Nạp chồng toán tử << để in ra hỗn số theo định dạng: phannguyen(tuso/mau_so).
Đầu vào:
Một dòng chứa 3 số nguyên dương: phần nguyên, tử số, mẫu số.
Đầu ra:
Biểu diễn hỗn số.
Ràng buộc:
Mẫu số khác 0. Các giá trị trong khoảng int.
Ví dụ:
Input:
3 1 2
Output:
3(1/2)
Nhập xuất tài khoản ngân hàng (nạp chồng cin, cout)
Nộp bàiPoint: 1
Xây dựng struct TaiKhoan gồm Số tài khoản (chuỗi) và Số dư (số nguyên long long).
Nạp chồng toán tử >> để nhập Số tài khoản và Số dư.
Nạp chồng toán tử << để in ra thông báo số dư theo định dạng: "Tai khoan: [SoTK] | So du: [SoDu] VND".
Đầu vào:
Dòng 1: Số tài khoản (không chứa khoảng trắng).
Dòng 2: Số dư.
Đầu ra:
Chuỗi thông báo định dạng.
Ràng buộc:
Số dư >= 0.
Ví dụ:
Input:
0123456789
5000000
Output:
Tai khoan: 0123456789 | So du: 5000000 VND