Nội dung Bài tập
Mã:
OPERATOR2
Tên:
Điểm trong không gian
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
5 giây
Giới hạn bộ nhớ:
64 MB
Được tạo bởi:
HCMUP1
Điểm trong không gian

Xây dựng cấu trúc điểm trong không gian Oxyz
  1. Viết quá tải toán tử nhập ( >> ) , xuất ( << ) (xuất theo dạng (x,y,z) )
  2. viết quá tải toán tử cộng ( + ) để cộng toạ độ 2 điểm 
  3. viết quá tải toán tử trừ ( - ) để tính khoảng cách giữa 2 điểm 
  4. viết quá tải toán tử so sánh nhỏ hơn ( < )  để so sánh toạ độ của 2 điểm (theo thứ tự từ điển)
  5. viết quá tải so sánh bằng ( == ) để kiểm tra 2 điểm trùng nhau 
Xây dựng cấu trúc mảng lưu trữ cấu trúc điểm ở trên 
  1. Viết quá tải toán tử nhập ( >> ) , xuất ( << ) 
  2. viết quá tải toán tử cộng ( + ) để cộng toạ độ 2 điểm tương ứng giữa 2 mảng   
  3. viết quá tải toán tử trừ ( - ) trả về 1 mảng với các phần tử là khoảng cách giữa 2 điểm tương ứng giữa 2 mảng  (c[i] = khoảng cách từ điểm a[i] đến b[i] )
  4. viết hàm tìm khoảng cách lớn nhất giữa 2 điểm trong mảng (tìm trong mảng 2 điểm sao cho khoảng cách giữa 2 điềm đó là lớn nhất )
  5. viết quá tải so sánh bằng ( == ) để kiểm tra 2 mảng có tất cả các điểm trùng nhau không 
  6. viết hàm sắp xếp mảng tăng dần
  7. viết hàm sắp xếp mảng giảm dần

Dữ liệu nhập từ file "OPERATOR.inp": 
  • dòng 1: n là số phần tử của mảng 1, n dòng tiếp theo là n phần tử của mảng 1 (n >= 2)
  • dòng n + 2: m là số phần tử của mảng 2, m dòng tiếp theo là m phần tử của mảng 2 (m >= 2)

Dữ liệu xuất ra file "OPERATOR.out":
  • dòng 1 : xuất ra danh sách các phần tử của mảng 1 theo thứ tự tăng dần , mỗi phần tử cách nhau 1 khoảng trắng
  • dòng 2: xuất ra khoảng cách lớn nhất giữa 2 điểm trong mảng 1, làm tròn đến 3 chữ số thập phân
  • dòng 3 : xuất ra danh sách các phần tử của mảng 2 theo thứ tự giảm dần, mỗi phần tử cách nhau 1 khoảng trắng
  • dòng 4: xuất ra khoảng cách lớn nhất giữa 2 điểm trong mảng 2, làm tròn đến 3 chữ số thập phân
  • dòng 5 : xuất ra mảng với các phần tử là toạ độ tổng của 2 phần tử tương ứng của 2 mảng , mỗi phần tử cách nhau 1 khoảng trắng
  • dòng 6 : xuất ra mảng với các phần tử là khoảng cách giữa 2 điểm tương ứng giữa 2 mảng, mỗi phần tử cách nhau 1 khoảng trắng ,mỗi phần tử làm tròn đến 3 chữ số thập phân 
  • dòng 7: nếu 2 mảng có tất cả các điểm tương ứng bằng nhau thì xuất ra "TRUE", ngược lại xuất "FALSE"
lưu ý: sử dụng roundf(n * 1000) / 1000 ; để làm tròn n tới 3 chữ số thập phân 


input:
1 2 3
5 6 7
2 3 4
3
1 2 3
3 4 2
6 7 5

output:
(1,2,3) (2,3,4) (5,6,7) 
6.928 
(6,7,5) (3,4,2) (1,2,3) 
7.348 
(2,4,6) (8,10,9) (8,10,9) 
0 5.745 5.745 
FALSE

input:
1 2 3
5 6 7
2 3 4
2
1 2 3
3 4 2

output:
(1,2,3) (2,3,4) (5,6,7) 
6.928 
(3,4,2) (1,2,3) 
3
(2,4,6) (8,10,9) (2,3,4) 
0 5.745 0
FALSE

input:
2
0 0 0
1 2 3
2
0 0 0
1 2 3

ouput:
(0,0,0) (1,2,3) 
3.742 
(1,2,3) (0,0,0) 
3.742 
(0,0,0) (2,4,6) 
0 0 
TRUE




    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận