CSharp

OOP Vector vs Point

Thời gian làm bài từ 22:00:00 ngày 19/9/2025 đến 23:59:59 ngày 20/9/2025

Zip toàn bộ các file .cs thành Họ tên ví dụ NguyenPhanChiThanh.zip rồi nộp vào link sau https://forms.gle/nZJmLp5P3a3vMEKt5

Câu 1 (3 điểm)

Trên mặt phẳng tọa độ Oxy, một điểm có tọa độ (x, y) sẽ được đánh mã số là: mặt phẳng tọa độ Oxy

Người ta muốn tạo một chương trình thực hiện các công việc sau:

Lưu ý: Giả sử các đầu vào đều hợp lệ và không cần kiểm tra.


Câu 2 (2 điểm)

Số nguyên dương 45805 có thể được biểu diễn dưới dạng tổng thập phân 5 + 800 + 5000 + 40000.

Viết chương trình nhập vào số nguyên dương n. Chương trình xuất ra biểu diễn dưới dạng tổng thập phân của n. Giả sử các đầu vào đều hợp lệ và không cần kiểm tra.


Câu 3 (3 điểm)

Trong không gian n-chiều, một vector được biểu diễn bởi một bộ n số thực, gọi là tọa độ của vector.

Hai vector u = (a₁, a₂, ..., aₙ) và v = (b₁, b₂, ..., bₙ) được gọi là trực giao (vuông góc với nhau) nếu tích vô hướng của chúng là a₁b₁ + a₂b₂ + ... + aₙbₙ = 0.

Tập hợp trực giao là tập hợp các vector, trong đó mỗi cặp vector khác nhau trong tập hợp là trực giao.

  1. Viết chương trình thực hiện các yêu cầu sau:
    • Hàm ScalarProduct tính tích vô hướng của hai vector n-chiều u và v.
    • Hàm IsOrthogonal kiểm tra hai vector n-chiều u và v có trực giao hay không. Hàm trả về 1 nếu hai vector trực giao, ngược lại trả về 0.
  2. Viết chương trình nhập vào m vector n-chiều. Chương trình kiểm tra và xuất ra thông báo cho biết tập hợp m vector có là tập hợp trực giao hay không.

Lưu ý: Giả sử các đầu vào đều hợp lệ và không cần kiểm tra.

Lưu ý

Học viên sử dụng code do AI tạo ra nộp bài sẽ tính 0 điểm