Программа должна находить точку пересечения двух линий. Даны следующие уравнения: y = ax2 + bx + c и y = dx + k. Как вы уже могли понять, это уравнения линий, где a, b, c, d, k — это числа, которые вводятся с клавиатуры. Необходимо найти значение икса.
Итак необходимо организовать ввод чисел с клавиатуры. После этого, второе уравнение подставить вместо игрика в первое, получися равенство, которое не сложно решается. В итоге, программа должна вернуть два числа: x и y. Вот пример программы:
Исходник предоставил Евгений Привалов :
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int main()
{
float a, b, c, d, k, x1, x2, y1, y2;
setlocale(0, "");
cout << "y = ax^2+bx+c - первое уравнение. Введите коэффициенты a, b, c" << endl;
cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout << "c = ";cin >> c;
cout << "y = dx+k - первое уравнение. Введите коэффициенты d, k" << endl;
cout << "d = "; cin >> d; cout << "k = "; cin >> k;
x1 = (-(b-d) + sqrt(pow((b-d),2)-4*a*(c-k))) / (2*a);
x2 = (-(b-d) - sqrt(pow((b-d),2)-4*a*(c-k))) / (2*a);
y1 = d*x1+k;
y2 = d*x2+k;
if(x1 == x2) cout << "Точка пересечения двух данных линий: ["<< x1 << ", " << y1 << "]" << endl;
else
cout << "Данные линии имеют две точки пересечения:" << endl << "[" << x1 << ", " << y1 << "] и "
<< "[" << x2 << ", " << y2 << "]" << endl;
}
Смотрим результат работы программы:
CppStudio.com
y = ax^2+bx+c - первое уравнение. Введите коэффициенты a, b, c a = 2 b = 2 c = 2 y = dx+k - первое уравнение. Введите коэффициенты d, k d = 2 k = 2 Точка пересечения двух данных линий: [0, 2]
Комментарии
Login
кто такой «игрик»?..это какой-то местный мелкий хищник(с)?