Типовая задача на разбор случаев. Разбирать случаи будем не простым последовательным перечислением, а более сложной конструкцией из вложенных условных операторов.
Решение задачи.
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2,b2,c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
BEGIN
ReadLn( a1, b1, c1);
ReadLn( a2, b2, c2);
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
Использовать Чертежник алг Слон нач опустить перо сместиться на вектор(2, 0) сместиться на вектор(0, 2) сместиться на вектор(1, 0) сместиться на вектор(0, -2) сместиться на вектор(2, 0) сместиться на вектор(0, 2) сместиться на вектор(1, 1) сместиться на вектор(0, 2) сместиться на вектор(1, -2) сместиться на вектор(-1, 2) сместиться на вектор(-1, 1) сместиться на вектор(-3, 0) сместиться на вектор(-1, 1) сместиться на вектор(-1, 0) сместиться на вектор(-1, -2) сместиться на вектор(-1, 0) сместиться на вектор(0, 3) сместиться на вектор(-1, 0) сместиться на вектор(0, -3) сместиться на вектор(1, -1) сместиться на вектор(2, -1) сместиться на вектор(0,-3) поднять перо сместиться на вектор(1, 3) опустить перо сместиться на вектор(1, 1) сместиться на вектор(0, 2) поднять перо сместиться на вектор(-2, -1) опустить перо сместиться на вектор(-0.1, 0.1) сместиться на вектор(-0.1, -0.1) сместиться на вектор(0.1, -0.1) сместиться на вектор(0.1, 0.1) поднять перо сместиться на вектор(0, -5) кон
Типовая задача на разбор случаев. Разбирать случаи будем не простым последовательным перечислением, а более сложной конструкцией из вложенных условных операторов.
Решение задачи.
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2,b2,c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
BEGIN
ReadLn( a1, b1, c1);
ReadLn( a2, b2, c2);
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
then WriteLn( 'прямые совпадают.' )
else
if a1*b2 = a2*b1 {условие параллельности}
then WriteLn('прямые параллельны.')
else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);
y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);
WriteLn('координаты точки пересечения :',
' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);
end;
END.
алг Слон
нач
опустить перо
сместиться на вектор(2, 0)
сместиться на вектор(0, 2)
сместиться на вектор(1, 0)
сместиться на вектор(0, -2)
сместиться на вектор(2, 0)
сместиться на вектор(0, 2)
сместиться на вектор(1, 1)
сместиться на вектор(0, 2)
сместиться на вектор(1, -2)
сместиться на вектор(-1, 2)
сместиться на вектор(-1, 1)
сместиться на вектор(-3, 0)
сместиться на вектор(-1, 1)
сместиться на вектор(-1, 0)
сместиться на вектор(-1, -2)
сместиться на вектор(-1, 0)
сместиться на вектор(0, 3)
сместиться на вектор(-1, 0)
сместиться на вектор(0, -3)
сместиться на вектор(1, -1)
сместиться на вектор(2, -1)
сместиться на вектор(0,-3)
поднять перо
сместиться на вектор(1, 3)
опустить перо
сместиться на вектор(1, 1)
сместиться на вектор(0, 2)
поднять перо
сместиться на вектор(-2, -1)
опустить перо
сместиться на вектор(-0.1, 0.1)
сместиться на вектор(-0.1, -0.1)
сместиться на вектор(0.1, -0.1)
сместиться на вектор(0.1, 0.1)
поднять перо
сместиться на вектор(0, -5)
кон