Ví dụ: y = -3x + 1, y = 5x + 2 => Cắt nhau tại (-1/8, 11/8)
Mã nguồn (Xác định đường thẳng đi qua 2 điểm cho trước):
Mã: Chọn tất cả
Program DuongThang2Diem;
Uses Crt;
Function UCLN(A, B : Integer) : Integer;
Var i : Integer;
Begin
For i := Abs(A) DownTo 1 Do
If (A Mod i = 0) And (B Mod i = 0) Then Exit(i);
Exit(0);
End;
Var x1, y1, x2, y2, aTu, aMau, bTu, bMau : Integer;
Begin
ClrScr;
ReadLn(x1, y1);
ReadLn(x2, y2);
aTu := y1 - y2;
aMau := x1 - x2;
If aMau = 0 Then Begin WriteLn('Khong co'); ReadLn; Exit; End;
aTu := aTu Div UCLN(aTu, aMau);
aMau := aMau Div UCLN(aTu, aMau);
bTu := y1 * aMau - aTu * x1;
bMau := aMau;
If bMau = 0 Then Begin WriteLn('Khong co'); ReadLn; Exit; End;
bTu := bTu Div UCLN(bTu, bMau);
bMau := bMau Div UCLN(bTu, bMau);
If aTu * aMau >= 0 Then Begin aTu := Abs(aTu); aMau := Abs(aMau); End
Else Begin aTu := -Abs(aTu); aMau := Abs(aMau); End;
If bTu * bMau >= 0 Then Begin bTu := Abs(bTu); bMau := Abs(bMau); End
Else Begin bTu := -Abs(bTu); bMau := Abs(bMau); End;
WriteLn('y = (', aTu, '/', aMau, ')x + (', bTu, '/', bMau, ')');
ReadLn;
End.
Mã: Chọn tất cả
Program GiaoDiem;
Uses Crt;
Function UCLN(A, B : Integer) : Integer;
Var i : Integer;
Begin
For i := Abs(A) DownTo 1 Do
If (A Mod i = 0) And (B Mod i = 0) Then Exit(i);
Exit(0);
End;
Var a1, b1, a2, b2, xTu, xMau, yTu, yMau : Integer;
Begin
ClrScr;
ReadLn(a1, b1);
ReadLn(a2, b2);
If (a1 = a2) And (b1 = b2) Then Begin WriteLn('Trung nhau'); ReadLn; Exit; End;
If (a1 = a2) And (b1 <> b2) Then Begin WriteLn('Song song'); ReadLn; Exit; End;
xTu := b2 - b1;
xMau := a1 - a2;
xTu := xTu Div UCLN(xTu, xMau);
xMau := xMau Div UCLN(xTu, xMau);
If xTu * xMau >= 0 Then Begin xTu := Abs(xTu); xMau := Abs(xMau); End
Else Begin xTu := -Abs(xTu); xMau := Abs(xMau); End;
yTu := a1 * xTu + b1 * xMau;
yMau := xMau;
yTu := yTu Div UCLN(yTu, yMau);
yMau := yMau Div UCLN(yTu, yMau);
If yTu * yMau >= 0 Then Begin yTu := Abs(yTu); yMau := Abs(yMau); End
Else Begin yTu := -Abs(yTu); yMau := Abs(yMau); End;
WriteLn('Giao nhau tai: (', xTu, '/', xMau, '), (', yTu, '/', yMau, ')');
ReadLn;
End.