Немного непонятно, о каком именно коэффициенте сопротивления идёт речь (если задача действительно по информатике, а не по физике). По размерности подходит такое выражение для силы сопротивления (я буду считать, что дано именно оно, плотность воздуха ρ примем равной 1,25 кг/м3):
Уравнение движения парашютиста:
Для решения задачи создадим таблицу, в которой будут столбцы: время, координата, скорость и ускорение. Со временем проще всего, это последовательные шаги, начиная с 0 с с некоторым шагом t. Затем вычисляем по формуле ускорение, скорость (изменение скорости есть a * t), и координату (изменение координаты есть v * t). Когда парашютист достигнет земли, его координата не должна меняться, это можно сделать при функции ЕСЛИ.
Получившийся файл Excel и графики приложены к ответу.
#include <iostream> using namespace std; double val, p; //вводимые параметры значения функции и степень полинома //x - значение функции //res - значение, которое изменяется в процессе рекурсии по схеме Горнера //s - рассматриваемая текущая степень x double rec(double x, double res, double s) { if (s == 0.0) return res; return rec(x, x * res + s - 1, s - 1); } int main(){ cin >> val >> p; //старший коэффициент в схеме Горнера сначала сносится вниз, //поэтому его передаем в качестве начального параметра для результата cout << fixed << rec(val, p, p) << endl; return 0; }
Немного непонятно, о каком именно коэффициенте сопротивления идёт речь (если задача действительно по информатике, а не по физике). По размерности подходит такое выражение для силы сопротивления (я буду считать, что дано именно оно, плотность воздуха ρ примем равной 1,25 кг/м3):
Уравнение движения парашютиста:
Для решения задачи создадим таблицу, в которой будут столбцы: время, координата, скорость и ускорение. Со временем проще всего, это последовательные шаги, начиная с 0 с с некоторым шагом t. Затем вычисляем по формуле ускорение, скорость (изменение скорости есть a * t), и координату (изменение координаты есть v * t). Когда парашютист достигнет земли, его координата не должна меняться, это можно сделать при функции ЕСЛИ.
Получившийся файл Excel и графики приложены к ответу.
using namespace std;
double val, p;
//вводимые параметры значения функции и степень полинома
//x - значение функции
//res - значение, которое изменяется в процессе рекурсии по схеме Горнера
//s - рассматриваемая текущая степень x
double rec(double x, double res, double s)
{
if (s == 0.0)
return res;
return rec(x, x * res + s - 1, s - 1);
}
int main(){
cin >> val >> p;
//старший коэффициент в схеме Горнера сначала сносится вниз,
//поэтому его передаем в качестве начального параметра для результата
cout << fixed << rec(val, p, p) << endl;
return 0;
}