Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы Delphi / Лабораторная работа 4.doc
Скачиваний:
52
Добавлен:
17.04.2015
Размер:
129.54 Кб
Скачать

Задания для самостоятельного выполнения: Проследите за изменением состояния компонентов Label, Edit и Button при изменении свойств, перечисленных выше.

Задание. Напишите программу для перевода градусной меры угла в радианную.

РешениеСоздайте новый проект. Сохраните новое приложение в своей папке – файл модуля под именемMain.pas, файл проекта –Calculate.dpr.

1 этап. Создадим визуальный интерфейс приложения.

Измените значения свойств формы следующим образом:

Name

MainF

Caption

Перевод из градусной меры угла в радианную

Поместите на форму компонент Label, измените значения свойств следующим образом:

Name

DegreeLbl

Caption

Введите градусную меру угла

Поместите на форму компонент Edit, измените значения свойств следующим образом:

Name

DegreeEdt

Text

0

Поместите на форму компонент Button, измените значения свойств следующим образом:

Name

ExecuteBtn

Caption

Перевести

Поместите на форму компонент Label, измените значения свойств следующим образом:

Name

RadianLbl

Caption

Радианная мера угла

Поместите на форму компонент Edit, измените значения свойств следующим образом:

Name

RadianEdt

Enabled

False

Text

0

Измените размеры формы в соответствии с расположенными компонентами.

2 этап.Создание программного кода.

Создайте обработчик события OnClickкнопкиExecuteBtn. Нужно взять информацию, введенную в компонентDegreeEdtпреобазовать в соответствии с математической формулой (Радианная_мера_угла = Градусная_мера_угла * ПИ / 180) результат отобразить в компонентеRadianEdt.

При выполнении этих манипуляций может возникнуть проблема преобразования форматов данных. Исходные данные (градусная мера угла – это вещественное число) представлена строкой, хранящейся в компоненте DegreeEdt. Для преобразования строки в вещественное число воспользуемся процедуройval:

procedureVal(S;varV;varCode: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

Else Begin

Application.MessageBox(‘Ошибка при вводе градусной меры угла', 'Ошибка', MB_OK);

DegreeEdt.text:='0';

RadianEdt.text:='0';

End;

End;

Поясним операторы обработчика события OnClick.

Первый оператор преобразует введенную в строковом формате градусную меру угла в вещественное число.

Если параметр Errorравен нулю, то ошибок при введении числа нет. В этом случае получаем радианную меру угла, функцияFloatToStrпреобразует вещественное число в строку.

В противном случае воспользуемся методом объекта Applicationдля отображения диалогового окна об ошибке, и восстановим нулевые значения в компонентахDegreeEdtиRadianEdt.

Сохраните изменения, внесенные в проект. Запустите приложение.

Создайте обработчик события onKeyDown компонента DegreeEdt:

If key = 13 then ExecuteBtn.click;