IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Кривые второго порядка
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


С клавиатуры вводится общее уравнение кривой второго порядка. Необходимо определить: является данная кривая гиперболой параболой или элипсом. :molitva:


Эх сессия... Спасите и помогите :molitva: :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата(Ivon @ 4.06.05 1:09)
С клавиатуры вводится общее уравнение кривой второго порядка.
Пример ввода с клавиатуры приведи, чтобы знать, что может быть введено... А еще лучше - несколько примеров.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


общее уравнение кривой имеет вид Ax*x+Bxy+Cy*y+Dx+Ey+F=0 или к примеру x*x-2x+4y+y*y-20=0. Ввести я должен 1; 0; -2; 1; 4; -20.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(Ivon @ 4.06.05 2:44)
общее уравнение кривой имеет вид Ax*x+Bxy+Cy*y+Dx+Ey+F=0

Ну, так это же канонический вид общего уравнения прямой... Тогда в чем проблема? Я думал, тебе нужно анализировать строку, приводить подобные, и т.д.

Если у тебя уже известны коэффициенты канонического представления кривой, то ее тип определяется так:
если B, D, E = 0 и A, C, F <> 0:
A > 0 и F < 0: Эллипс
A < 0 и F <> 0: Гипербола

если B, C, D = 0 и A, E, F <> 0:
E <> 0: парабола
E = 0: Пара прямых (действительных или мнимых)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






не спрю, если B, D, E = 0 то будет каноническое уравнение. Но вводить надо общее. т.е. данный алгоритм не подходит :p2:
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Нет, ты не понял, вводишь все коэффициенты общего уравнения:
readln(A, B, C, D, E, F);

и потом проверяешь:
Цитата
если B, D, E = 0 и A, C, F <> 0:
A > 0 и F < 0: Эллипс
A < 0 и F <> 0: Гипербола

если B, C, D = 0 и A, E, F <> 0:
E <> 0: парабола
E = 0: Пара прямых (действительных или мнимых)

дело в том, что определить тип кривой можно только в том случае, если она задана канонически, и если B, D, E = 0 не выполняется, то попробуй сам (не программно, и не строя графика, а аналитически) определить тип кривой rolleyes.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Аналитичиски можно. Пробовал получалось. Алгорит там довольно сложный и написать его программно не смогу.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Тогда опиши алгоритм, поможем реализовать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


x2+y2+8x4y-5=0
x2+8x+16-16+y2-4y+4-4-5=0
(x+4)2+(y-2)2=25 – уравнение окружности (эллипса)

В файлах методичка по кривым второго порядка


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






А проверь-ка вот это со своими значениями:
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.

Что она тебе выдаст на тестовых примерах? (наверняка они у тебя есть ;) )
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.12.2021 1:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name