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

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

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

> Кривые второго порядка
Ivon
сообщение 4.06.2005 1:09
Сообщение #1





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

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


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


Эх сессия... Спасите и помогите :molitva: :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
volvo
сообщение 4.06.2005 2:09
Сообщение #2


Гость






Цитата(Ivon @ 4.06.05 1:09)
С клавиатуры вводится общее уравнение кривой второго порядка.
Пример ввода с клавиатуры приведи, чтобы знать, что может быть введено... А еще лучше - несколько примеров.
 К началу страницы 
+ Ответить 
Ivon
сообщение 4.06.2005 2:44
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 9:07
Сообщение #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: Пара прямых (действительных или мнимых)
 К началу страницы 
+ Ответить 
Guest
сообщение 4.06.2005 11:47
Сообщение #5


Гость






не спрю, если B, D, E = 0 то будет каноническое уравнение. Но вводить надо общее. т.е. данный алгоритм не подходит :p2:
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 11:58
Сообщение #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
 К началу страницы 
+ Ответить 
Guest
сообщение 4.06.2005 12:21
Сообщение #7


Гость






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


Гость






Тогда опиши алгоритм, поможем реализовать...
 К началу страницы 
+ Ответить 
Ivon
сообщение 4.06.2005 15:54
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2005 16:38
Сообщение #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

 



- Текстовая версия 22.06.2025 9:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"