Найти точки пересечения прямой и параболы - C (СИ)
Формулировка задачи:
Здравствуйте. Дана парабола: 6х^2+y+2=0. И прямая: 2x-5y-2=0. Надо найти их точку пересечения. Чисто в математике надо их приравнять и, найдя дискриминант, найти две точки.
Может ли такой код работать(после компиляции - не работал). Напишите в чём недочёты, пожалуйста)
int main()
{
int x, x1, x2, y;
float D;
y = 30*(x*x) - 2*x + 8;
D = 2*2 - 4*30*8;
if(D>0)
{
x1 = (2+D)/60;
x2 = (2-D)/60;
}
printf("%d and %d", x1, x2);
return 0;
}Решение задачи: «Найти точки пересечения прямой и параболы»
textual
Листинг программы
int main()
{
int x, x1, x2, y;
float D, a = 30, b = -2, c = 8;
D = b*b - 4*a*c;
if(D>0)
{
x1 = (2+D)/60;
x2 = (2-D)/60;
printf("%d and %d", x1, x2);
} else printf("Korney net");
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Задаются и переменные и их значения:
x,x1,x2,y- переменные для хранения координат точек пересечения прямой и параболыD,a,b,c- переменные для хранения коэффициентов параболы (D - дискриминант, a, b, c - коэффициенты уравнения параболы в общем виде)- Значения переменных a, b, c задаются в коде (a = 30, b = -2, c = 8)
- Вычисляется значение переменной D:
- D = bb - 4a*c - это формула для вычисления дискриминанта параболы
- С помощью условного оператора if проверяется, больше ли значение переменной D нуля:
- Если D больше нуля, то выполняется следующий блок кода
- Если D меньше или равно нулю, то выводится сообщение
Korney netи программа завершается
- В блоке кода внутри условия if вычисляются значения переменных x1 и x2:
- x1 = (2+D)/60 - это формула для вычисления координаты одной из точек пересечения прямой и параболы
- x2 = (2-D)/60 - это формула для вычисления координаты другой точки пересечения
- С помощью функции printf выводится сообщение с координатами точек пересечения:
- printf(
%d and %d, x1, x2) - это вызов функции, которая выводит сообщение в консоль - %d - это спецификатор формата, который указывает на то, что нужно выводить целочисленное значение
- printf(
- Программа завершается возвратом значения 0 из функции main()