Основы языка Delphi

  8b693973     

В1 Процедура обработки



Листинг В1. Процедура обработки события OnClick на кнопке Button1 (Вычислить)

// нажатие кнопки Вычислить

procedure TForm1.ButtonlClick(Sender: TObject);

var

dist : integer; // дистанция, метров

t: real; // время как дробное число

min : integer; // время, минуты

sek : integer; // время, секунды


v: real; // скорость

begin

// получить исходные данные из полей ввода

dist := StrToint(Edit1.Text);
t := StrToFloat(Edit2.Text);

// предварительные преобразования

min := Trunc(t);
// кол-во минут — это целая часть числа t

sek := Trunc(t*100) mod 100;

// кол-во секунд — это дробная часть

// числа t

// вычисление

v := (dist/1000) / ((min*60 + sek)/3600);

// вывод результата

label4.Caption := 'Дистанция: '+ Edit1.Text

+ ' м' + #13 + 'Время: ' + IntToStr(min)

+ ' мин ' + IntToStr(sek) + ' сек ' + #13 +

'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

end;

Функция Button1click выполняет расчет скорости и выводит результат расчета в поле Label4. Исходные данные вводятся из полей редактирования Editl и Edit2 путем обращения к свойству Text. Свойство Text содержит строку символов, которую во время работы программы введет пользователь. Для правильной работы программы строка должна содержать только цифры. Для преобразования строки в числа в программе используются функции StrToInt и strToFloat. Функция strToInt проверяет символы строки, переданной ей в качестве параметра (Edit1.Text - это содержимое поля Editl), на допустимость и, если все символы верные, возвращает соответствующее число. Это число записывается в переменную dist. Аналогичным образом работает функция strToFioat, которая возвращает дробное число, соответствующее содержимому поля Edit2. Это число записывается в переменную t.

После того как исходные данные будут помещены в переменные dist и t, выполняются подготовительные действия и расчет. Первоначально с использованием функции Trunc, которая "отбрасывает" дробную часть числа, выделяется целая часть переменной t — это количество минут. Значением выражения Trunc(t*100) mod 100 является количество секунд. Вычисляется это выражение так. Сначала число t умножается на 100. Полученное значение передается функции Trunc, которая возвращает целую часть результата умножения t на 100. Полученное таким образом число делится по модулю на 100. Результат деления по модулю — это остаток от деления.

После того как все данные готовы, выполняется расчет. Так как скорость должна быть выражена в км/час, то значения дистанции и времени, выраженные в метрах и минутах, преобразуются в километры и часы.

Вычисленное значение скорости выводится в поле Label4 путем присваивания значения свойству Caption. Для преобразования чисел в строки используются функции IntToStr И FloatToStr.

В результате нажатия кнопки Завершить программа должна завершить работу. Чтобы это произошло, надо закрыть, убрать с экрана, главное окно программы. Делается это при помощи метода close. Процедура обработки события Onclick для кнопки Завершить приведена в листинге В2.



Содержание раздела