#include <iostream>
#include <cmath>
using namespace std;
struct Coords { //структура для хранения координат
double x, y;
};
const double PHIS_G = 9.80665;
int main()
{
double rad, speed, height0, deltaX;
cout << "Введите угол падения от 0 до 90 градусов: ";
cin >> rad;
rad *= M_PI/180; //переводим в радианы M_PI - константа из cmath
cout << "Введите начальную скорость: ";
cin >> speed;
cout << "Введите начальную высоту тела: ";
cin >> height0;
cout << "Введите частоту хода: ";
cin >> deltaX;
int LenCoord = static_cast<int>((pow(speed, 2) * sin(2*rad))/(PHIS_G*deltaX)) + static_cast<int>(height0); //вычисляем размер массива координат
Coords *coord = new Coords[LenCoord]; //выделяем память под массив координат
cout << "Вычисление координат в диапазоне от 0 до " << LenCoord+1 << ":\n";
for(int i=0; i<LenCoord; i++){ //обработка формулы падения тела
coord[i].x = deltaX*i;
coord[i].y = coord[i].x*tan(rad) - (PHIS_G * pow(coord[i].x, 2))/(2 * pow(speed, 2) * pow(cos(rad), 2)) + height0;
}
//вывод результата
for(int i=0; i<LenCoord; i++)
cout << (i+1) << ". (" << coord[i].x << "; " << coord[i].y << ");\n";
delete [] coord; //освобождение памяти
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAoKc3RydWN0IENvb3JkcyB7CS8v0YHRgtGA0YPQutGC0YPRgNCwINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINC60L7QvtGA0LTQuNC90LDRggoJZG91YmxlIHgsIHk7CQkKfTsKCmNvbnN0IGRvdWJsZSBQSElTX0cgPSA5LjgwNjY1OwoKCmludCBtYWluKCkKewoJZG91YmxlIHJhZCwgc3BlZWQsIGhlaWdodDAsIGRlbHRhWDsKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INGD0LPQvtC7INC/0LDQtNC10L3QuNGPINC+0YIgMCDQtNC+IDkwINCz0YDQsNC00YPRgdC+0LI6ICI7CiAgICBjaW4gPj4gcmFkOwkKICAgIHJhZCAqPSBNX1BJLzE4MDsJLy/Qv9C10YDQtdCy0L7QtNC40Lwg0LIg0YDQsNC00LjQsNC90YsgTV9QSSAtINC60L7QvdGB0YLQsNC90YLQsCDQuNC3IGNtYXRoCiAgICAKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INC90LDRh9Cw0LvRjNC90YPRjiDRgdC60L7RgNC+0YHRgtGMOiAiOwogICAgY2luID4+IHNwZWVkOwogICAgCiAgICBjb3V0IDw8ICLQktCy0LXQtNC40YLQtSDQvdCw0YfQsNC70YzQvdGD0Y4g0LLRi9GB0L7RgtGDINGC0LXQu9CwOiAiOwogICAgY2luID4+IGhlaWdodDA7CiAgICAKICAgIGNvdXQgPDwgItCS0LLQtdC00LjRgtC1INGH0LDRgdGC0L7RgtGDINGF0L7QtNCwOiAiOwogICAgY2luID4+IGRlbHRhWDsKICAgIAogICAgaW50IExlbkNvb3JkID0gc3RhdGljX2Nhc3Q8aW50PigocG93KHNwZWVkLCAyKSAqIHNpbigyKnJhZCkpLyhQSElTX0cqZGVsdGFYKSkgKyBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodDApOwkvL9Cy0YvRh9C40YHQu9GP0LXQvCDRgNCw0LfQvNC10YAg0LzQsNGB0YHQuNCy0LAg0LrQvtC+0YDQtNC40L3QsNGCCiAgICAKICAgIENvb3JkcyAqY29vcmQgPSBuZXcgQ29vcmRzW0xlbkNvb3JkXTsJLy/QstGL0LTQtdC70Y/QtdC8INC/0LDQvNGP0YLRjCDQv9C+0LQg0LzQsNGB0YHQuNCyINC60L7QvtGA0LTQuNC90LDRggogICAgCiAgICBjb3V0IDw8ICLQktGL0YfQuNGB0LvQtdC90LjQtSDQutC+0L7RgNC00LjQvdCw0YIg0LIg0LTQuNCw0L/QsNC30L7QvdC1INC+0YIgMCDQtNC+ICIgPDwgTGVuQ29vcmQrMSA8PCAiOlxuIjsKICAgIAogICAgZm9yKGludCBpPTA7IGk8TGVuQ29vcmQ7IGkrKyl7CS8v0L7QsdGA0LDQsdC+0YLQutCwINGE0L7RgNC80YPQu9GLINC/0LDQtNC10L3QuNGPINGC0LXQu9CwCgkJY29vcmRbaV0ueCA9ICBkZWx0YVgqaTsKCQljb29yZFtpXS55ID0gY29vcmRbaV0ueCp0YW4ocmFkKSAtIChQSElTX0cgKiBwb3coY29vcmRbaV0ueCwgMikpLygyICogcG93KHNwZWVkLCAyKSAqIHBvdyhjb3MocmFkKSwgMikpICsgaGVpZ2h0MDsKICAgIH0KCQkvL9Cy0YvQstC+0LQg0YDQtdC30YPQu9GM0YLQsNGC0LAKICAgIGZvcihpbnQgaT0wOyBpPExlbkNvb3JkOyBpKyspCgkJY291dCA8PCAoaSsxKSA8PCAiLiAoIiA8PCBjb29yZFtpXS54IDw8ICI7ICIgPDwgY29vcmRbaV0ueSA8PCAiKTtcbiI7CgkJCglkZWxldGUgW10gY29vcmQ7CS8v0L7RgdCy0L7QsdC+0LbQtNC10L3QuNC1INC/0LDQvNGP0YLQuAogICAgCiAgICByZXR1cm4gMDsKfQ==