Tính khoảng cách Euclid giữa 2 điểm trong hệ tọa độ Oxy Tính khoảng cách Euclid giữa 2 điểm trong hệ tọa độ Oxy ( code có mở thư mục freopen )
Tham khảo câu trả lời từ Trợ lý ảo Lazi Để tính khoảng cách Euclid giữa hai điểm trong hệ tọa độ Oxy, bạn có thể sử dụng công thức: \[ d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} \] Dưới đây là một đoạn mã C++ để tính khoảng cách Euclid giữa hai điểm và sử dụng `freopen` để mở tệp tin đầu vào và đầu ra: ```cpp #include #include #include using namespace std; int main() { // Mở tệp tin đầu vào và đầu ra freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); // Khai báo biến để lưu tọa độ của hai điểm double x1, y1, x2, y2; // Đọc tọa độ từ tệp tin đầu vào cin >> x1 >> y1 >> x2 >> y2; // Tính khoảng cách Euclid double distance = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); // Ghi kết quả ra tệp tin đầu ra cout << "Khoang cach Euclid giua hai diem la: " << distance << endl; // Đóng tệp tin fclose(stdin); fclose(stdout); return 0; } ``` ### Giải thích: 1. **freopen**: Dùng để mở tệp tin đầu vào (`input.txt`) và đầu ra (`output.txt`). 2. **cin** và **cout**: Được sử dụng để đọc dữ liệu từ tệp tin đầu vào và ghi dữ liệu ra tệp tin đầu ra. 3. **sqrt**: Hàm trong thư viện `cmath` để tính căn bậc hai. 4. **fclose**: Đóng các tệp tin sau khi hoàn thành việc đọc và ghi. ### Cách sử dụng: 1. Tạo tệp tin `input.txt` và ghi tọa độ của hai điểm vào đó. Ví dụ: ``` 1.0 2.0 4.0 6.0 ``` 2. Chạy chương trình. Kết quả sẽ được ghi vào tệp tin `output.txt`. ### Lưu ý: - Đảm bảo rằng tệp tin `input.txt` tồn tại trong cùng thư mục với chương trình. - Kiểm tra quyền truy cập tệp tin nếu gặp lỗi khi mở tệp.