Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
іНФОРМАТИКА 1.doc
Скачиваний:
24
Добавлен:
15.08.2019
Размер:
13.85 Mб
Скачать
  1. Додайте у форму дві командні кнопки: Обчислити і Завершити.

Командна кнопка, компонент Button, додається у форму точно так, як і інші компоненти. Значок компоненту Button знаходиться на вкладці Standard. Та встановіть властивості .

Свойство

Компонент

Button1

Button2

Caption

Вычислить

Завершить

Тор

176

176

Left

16

112

Height

25

25

Width

75

75

  1. Створити процедуру обробки події для кнопки „Обчислити”

Спочатку у вікні Object Inspector вибрати компонент, для якого створюється процедура обробки події. Потім в цьому ж вікні потрібно вибрати вкладку Events (Події).

Для того щоб створити функцію обробки події, потрібно зробити подвійне клацання мишею в полі імені процедури обробки відповідної події (Подія OnClick). В результаті цього відкриється вікно редактора коду, в яке буде доданий шаблон процедури обробки події, а у вікні Object Inspector поряд з ім'ям події з'явиться ім'я функції його обробки .

У вікні редактора коду між словами begin і end можна друкувати інструкції, що реалізовують функцію обробки події.

У лістингу 1 приведений текст функції обробки події onclick для командної кнопки Обчислити.

Лістинг 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;

Функцsя 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.