В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.