Задача
Самолёт летит из пункта в [latex]A[/latex] в пункт [latex]B[/latex] и обратно со скоростью [latex]V[/latex] км/час. Всё время дует ветер с постоянной скоростью [latex]U[/latex] км/час под углом [latex]\alpha[/latex] радиан к направлению движения (0 соответствует попутному ветру). Расстояние между пунктами составляет [latex]S[/latex] км. Для любых неотрицательных действительных значений угла, расстояния и скоростей вычислите время в пути.
Входные данные
[latex]V[/latex]-скорость самолета, [latex]U[/latex]-скорость ветра, [latex]S[/latex]-расстояние [latex]AB[/latex], [latex]\alpha[/latex]-угол направления ветра.Выходные данные
Время полета [latex]t[/latex] в часах.
Тесты
Входные данные | Выходные данные | |||
[latex]V[/latex] | [latex]U[/latex] | [latex]S[/latex] | [latex]\alpha[/latex] | [latex]t[/latex] |
600 | 20 | 1200 | 1,5708 | 4.0013 |
600 | 20 | 1200 | 0 | 4.00445 |
600 | 20 | 1200 | 3,1415 | 4.00436 |
600 | 20 | 1200 | 1,0472 | 4.0013 |
600 | 20 | 1200 | 2,6179 | 4.00077 |
600 | 601 | 1200 | 0 | inf |
0 | 20 | 1200 | 0 | inf |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <cmath> using namespace std; int main() { double V, U, S, a, t; cin >> V >> U >> S >> a; t=S/(V+cos(a)*U)+S/(V-cos(a)*U);//Сумма времени полета от A к B и обратно cout << (U>=V ? 1/tan(0) : t); return 0; } |
Решение
Учитывая скорость ветра [latex]U[/latex] и угол [latex]\alpha[/latex] под которым ветер дует на самолет, на пути от [latex]A[/latex] к [latex]B[/latex] скорость самолета будет равна [latex]V+cos(\alpha)\cdot U[/latex] , а на обратном пути от [latex]B[/latex] к [latex]A[/latex] скорость самолета будет равна [latex]V-cos(\alpha)\cdot U[/latex].Общее время полета узнаем по формуле [latex]t =\frac{S}{V+cos(\alpha)\cdot U} +\frac{S}{V-cos(\alpha)\cdot U}[/latex].