Программа должна находить точку пересечения двух линий. Даны следующие уравнения: 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
кто такой «игрик»?..это какой-то местный мелкий хищник(с)?