Editorial for C bài 5.C2: Hai đường thẳng


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

Author: buitrunghieu

Lời giải chi tiết

Để làm được bài này, ta cần nắm vững kiến thức về vị trí tương đối giữa 2 đường thẳng trong mặt phẳng tọa độ \(Oxy\). Theo đó, có 3 vị trí tương đối:

  • Nếu \(a_1 \neq a_2\) thì 2 đường thẳng cắt nhau
  • Nếu \(a_1 = a_2\) \(b_1 \neq b_2\) thì 2 đường thẳng song song với nhau.
  • Nếu \(a_1 = a_2\) \(b_1 = b_2\) thì 2 đường thẳng trùng nhau. Sau đó, với mỗi trường hợp cụ thể, ta sẽ thực hiện chúng theo yêu cầu đề bài:
  • Nếu 2 đường cắt nhau, ta cần in ra tọa độ giao điểm. Theo 2 phương trình đường thẳng có được, ta sẽ có một hệ phương trình. Sử dụng hệ phương trình để tìm được 2 điểm \(x_0, y_0\). Đó là tọa độ giao điểm của 2 đường thẳng cắt nhau.
  • Nếu 2 đường song song. Ta chọn một điểm có tọa độ \((x_1, y_1)\) thuộc 1 trong 2 đường thẳng (chọn ~x_1 = 0 để dễ tính toán), rồi từ đó tính khoảng cách giữa điểm đó với đường thẳng còn lại bằng công thức:
\(d = \frac{|ax_1-y_1+b|}{a^2+1}\)

Theo công thức gốc để tính khoảng cách giữa điểm \(A(x_1, y_1)\) với phương trình đường thẳng \(ax+by+c=0\) là:

\(d = \frac{|ax_1+by_1+c|}{a^2+b^2}\)

Các bước giải:

  • Bước 1: Khai báo và nhập vào 4 số thực \(a1, b1, a2, b2\).
  • Bước 2: So sánh từng điều kiện của 3 trường hợp của 2 đường thẳng trong mặt phẳng tọa độ. Nếu thuộc trường hợp nào thì thực hiện yêu cầu của bài toán như cách làm phía trên. Đừng quên làm tròn đến phần thập phân thứ 2 của số thực.

Đăng ký khóa học: https://www.facebook.com/clblaptrinhfullhouse

SĐT liên hệ: 0372229686

Youtube: CLB Lập Trình Full House

Fullhouse dev đồng hành trên từng dòng code


Comments

There are no comments at the moment.