// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!
begin
Writeln('Введите начальную скорость снаряда, расстояние до стены, высоту стены');
var (v,S,h):=ReadReal3;
var A:=ReadReal('Введите угол наклона ствола пушки');
if v<=0 then begin<br> Writeln('Скорость должна быть положительной');
Exit
end;
if v>1000 then begin
Writeln('Скорость слишком велика');
Exit
end;
if S<=0 then begin<br> Writeln('Расстояние должно быть положительным');
Exit
end;
if h<=0 then begin<br> Writeln('Высота стены должна быть положительной');
Exit
end;
if A<=0 then begin<br> Writeln('Пушка не должна стрелять в землю');
Exit
end;
if A>=pi/2 then begin
Writeln('Пушка направлена не в сторону стены');
Exit
end;
var L:=S*Tan(A)-9.81*S/(2*v*v*Sqr(Cos(A)));
if L>h then begin
Writeln('Снаряд не попал в стену...');
Exit
end;
if L<0 then Writeln('Снаряд не попал в стену...')<br> else Writeln('Попал!!!')
end.
Пример
Введите начальную скорость снаряда, расстояние до стены, высоту стены
300 500 8.5
Введите угол наклона ствола пушки 0.2
Снаряд не попал в стену...