Консультация № 180427
23.10.2010, 21:04
0.00 руб.
0 3 1
Помогите пожалуйста написать программу.

Задание:
Создать форму в которой должно быть реализовано следующая задача:
Даны окружность x^2 + y^2 =R^2 и прямая y = ax + b. Проверить взаимное расположение кривых. Указать точки пересечения (точку касания), если такие имеются.

Обсуждение

давно
Мастер-Эксперт
325460
1469
25.10.2010, 12:05
общий
Здравствуйте в данной задаче нужно проверить имеет ли вещественные корни выражение (a^2+1)*x^2+2*a*b*x+(b^2-R^2)=0
b^2-4*a*c>=0
для нашего случая 4*a^2*b^2-4*(a^2+1)*(b^2-R^2)>=0

поясните что значит создать форму, это может быть консольное приложение или достаточно функции?
Об авторе:
to live is to die
Неизвестный
27.10.2010, 22:37
общий
cradlea:
Если хотите, напишите просто функцию, которая вычисляет эти точки, и разместите ответом вместе с формулой из Вашего сообщения.
давно
Мастер-Эксперт
325460
1469
28.10.2010, 11:48
общий
28.10.2010, 12:19
это ответ
Здравствуйте, Azarov88!
вот функция по нахождению координат по x

// a,b,R - соответственно пораметры которые вводятся в уравнении
// ret - указатель на массив x-ов
// функция возвращает 1 - при наличии пересечения графиков, 0 - при отсутствии пересечения
int CalcPoint(int a, int b, int R, double * ret)
{

double Disc=0;
Disc=4*a*a*b*b-4*(a*a+1)*(b*b-R*R);// вычислить дискрименант
if (Disc>=0)// проверить наличие действительных решений
{
*ret=(-(2*a*b)+sqrt(Disc))/2*(a*a+1);// получить первый корень
*(ret+1)=(-(2*a*b)-sqrt(Disc))/(2*(a*a+1));// получить второй корень
return 1;// пересечения есть
}
return 0;// пересечений нет
}




для того чтобы найти координату по y нужно поставить в выражение y=ax+b полученные значения x

Об авторе:
to live is to die
Форма ответа