Для выполнения практической работы вам потребуется язык программирования Turbo Delphi, но в силу того, что Delphi сейчас нигде не распространяется на бесплатной основе, нам нужна будет альтернатива. И она есть, программа Lazarus, которая при том является кроссплатформенной. Это значит, что она есть и на Windows, и на Linux и даже на Mac. Cкачать можно по этой ссылке.
Проект "Диапазон углов" на языке Turbo Delphi / Lazarus
1. Для начала создадим форму, на которую поместим следующие объекты:
- три текстовых поля для ввода значений (не забудьте дать этим объектам, точно такие имена):
EditV0 - начальной скорости;
EditS - расстояние до стенки;
EditH - высота стенки;
- надпись Label1 для вывода диапазона значений углов, при которых происходит попадание мячика в стенку;
- восемь надписей для обозначения переменных и единиц измерения;
- кнопку Button1 для запуска событийной процедуры.
2. Укажите данные для всех объектов (как указано на рисунке ниже).
2. Ввести в программный код в оператор uses модуль Math, который обеспечивает подключение математических функций (Cos(), Tan() и т.д.).
uses Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math;
3. Объявить переменные:
const G=9.81; Pi=3.14; var V0:real; A:integer; S:real; H:real; L:real;
4. Ввести программный код событийной процедуры:
procedure TForm1.Button1Click (Sender: TObject);
begin
Label1.Caption:=' ';
V0:=StrToFloat(EditV0.Text);
S:=StrToFloat(EditS.Text);
H:=StrToFloat(EditH.Text);
for A:=0 to 90 do
begin
L:=S*Tan(A*Pi/180)-G*Sqr(S)/(2*Sqr(V0*Cos(A*Pi/180)));
if (0<L) And (L<H) then Label1.Caption:=Label1.Caption+' '+IntToStr(A);
end;
end;
end.
5. Запустить проект и ввести скорость бросания мячика, расстояние до стенки и её высоту.
Щёлкнуть по кнопке Диапазон углов.
Будет получен неочевидный результат, оказывается, существует два диапазона углов: от 33° до 36° и от 56° до 57°, которые обеспечивают попадание мячика при скорости бросания v0=18 м/с в стенку высотой h=1 м, находящуюся на расстоянии s = 30 м.