С клавиатуры вводится общее уравнение кривой второго порядка. Необходимо определить: является данная кривая гиперболой параболой или элипсом. :molitva:
Эх сессия... Спасите и помогите :molitva: :p2:
общее уравнение кривой имеет вид Ax*x+Bxy+Cy*y+Dx+Ey+F=0 или к примеру x*x-2x+4y+y*y-20=0. Ввести я должен 1; 0; -2; 1; 4; -20.
не спрю, если B, D, E = 0 то будет каноническое уравнение. Но вводить надо общее. т.е. данный алгоритм не подходит :p2:
Нет, ты не понял, вводишь все коэффициенты общего уравнения:
readln(A, B, C, D, E, F);
Аналитичиски можно. Пробовал получалось. Алгорит там довольно сложный и написать его программно не смогу.
Тогда опиши алгоритм, поможем реализовать...
x2+y2+8x4y-5=0
x2+8x+16-16+y2-4y+4-4-5=0
(x+4)2+(y-2)2=25 – уравнение окружности (эллипса)
В файлах методичка по кривым второго порядка
Эскизы прикрепленных изображений
А проверь-ка вот это со своими значениями:
const
eps = 0.001;
var
A, B, C, D, E, F: real;
begin
readln(A, B, C, D, E, F);
if abs( C ) > eps then begin { центральные кривые }
if (C > 0) and (F < 0) then writeln('эллипс');
if (C > 0) and (F > 0) then writeln('мнимый эллипс');
if (C < 0) and (abs(F) > eps) then writeln('гипербола');
end
else begin { параболические прямые }
if abs(E) > eps then writeln('парабола')
else begin
writeln('пара прямых (действительных или мнимых)');
end;
end
end.