Задача
Самолёт летит из пункта в [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].
