Создайте новый проект. Сохраните новое приложение в папке Calculator – файл модуля под именем Main.pas, файл проекта – Angle.dpr.
1 этап. Создадим визуальный интерфейс приложения (рис. 4.2.2).
Рис. 4.
Измените значения свойств формы следующим образом:
Name | MainF |
Caption | Перевод из градусной меры угла в радианную |
Поместите на форму компонент Label, измените значения свойств следующим образом:
Name | DegreeLbl |
Caption | Введите градусную меру угла |
Поместите на форму компонент Edit, измените значения свойств следующим образом:
Name | DegreeEdt |
Text |
Поместите на форму компонент Button, измените значения свойств следующим образом:
Name | ExecuteBtn |
Caption | Перевести |
Поместите на форму компонент Label, измените значения свойств следующим образом:
Name | RadianLbl |
Caption | Радианная мера угла |
Поместите на форму компонент Edit, измените значения свойств следующим образом:
Name | RadianEdt |
Enabled | False |
Text |
Измените размеры формы в соответствии с расположенными компонентами (рис. 4.).
2 этап. Создание программного кода.
|
|
Создайте обработчик события OnClick кнопки ExecuteBtn. Нужно взять информацию, введенную в компонент DegreeEdt преобразовать в соответствии с математической формулой:
Радианная_мера_угла = Градусная_мера_угла * ПИ / 180)
и отобразить результат в компоненте RadianEdt.
При выполнении этих манипуляций может возникнуть проблема преобразования форматов данных. Исходные данные (градусная мера угла – это вещественное число) представлены строкой, хранящейся в компоненте DegreeEdt. Для преобразования строки в вещественное число воспользуемся процедурой Val:
procedure Val(S; var V; var Code: integer),
где s – строковое представление числа, v – параметр, через который процедура возвращает число целого или вещественного типа, Code – если строка s не является представлением числа, то параметр Code содержит номер ошибочного символа.
Итак, в обработчике события OnClick кнопки ExecuteBtn введем следующую последовательность операторов:
procedure TForm1.Button1Click(Sender: TObject);
var Angle_degree, Angle_radian: real;
Error: integer;
Begin
val(DegreeEdt.text, Angle_degree, Error);
if Error = 0 Then begin
Angle_radian:= Angle_degree*Pi/180;
RadianEdt.text:=FloatToStr(Angle_Radian);
End