Програмування в Delphi і не тільки - Інструкція if

можна переписати так:

Якщо будь-яка дія має бути виконана лише при виконанні певної умови та пропущена, якщо ця умова не виконується, то інструкція if може бути записана так:

На рис. 2.3 представлений алгоритм, який відповідає інструкції if-then.

збільшує значення змінної тільки в тому випадку, якщо значення змінних n і m рівні.

Для введення вихідних даних (тривалість розмови, номер дня тижня) використовуються поля редагування, для виведення результату та пояснювального тексту поля міток. У табл. 2.3 перераховані компоненти та зазначено їх призначення, а в табл. 2.4 наведено значення властивостей цих компонентів.

Тут і далі при описі форми програми наводяться значення тих властивостей компонентів, які використовуються в програмі. Значення інших властивостей, зокрема визначальних розмір і положення компонентів, можуть бути залишені без зміни або змінені довільним чином, природно, в розумних межах (очевидно, що положення командної кнопки або поля редагування може бути вибрано в межах форми довільним чином).

Таблиця 2.3.Компоненти форми докладанняВартість розмови
КомпонентПризначенняEdit1Для введення тривалості розмови у хвилинахEdit2Для введення номера дня тижня 2Label1, LabelДля виведення пояснювального тексту призначення полів введенняLabel3Для висновку результату обчислення – вартості розмовиButton1Для активізації процедури обчислення вартості розмови

У таблицях, що містять опис значень властивостей компонентів форми, вказується ім'якомпонента та через точку - ім'я властивості. Наприклад, рядок таблиці Form1 . Caption Вартість розмови означає, що під час створення форми програми властивості Caption форми програми треба привласнити зазначене значення - текст "Вартість розмови".

Таблиця 2.4.Значення властивостей компонентів
ВластивістьЗначення
Form1.CaptionВартість розмови
Edit1.Text
Edit2.Text
Label1.CaptionТривалість (хв.)
Label2.CaptionНомер дня тижня
Label3.Caption
Button1.CaptionОбчислити

Програма здійснює обчислення в результаті клацання на командній кнопціОбчислити.При цьому виникає подія onclick, яка обробляється процедурою TForm1.Button1Click.

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

Editl: TEdit; // поле введення тривалості розмови

Edit2: TEdit; // поле введення номера дня тижня

Button1: TButton; // кнопка Обчислити

procedureButtonlClick(Sender: TObject); private

/Private declarations > public

procedureTForm1.Button1Click(Sender: TObject);

PAY = 0.15; // Вартість однієї хвилини розмови 0.15 рубля

DISCOUNT = 0.2; // знижка 20 відсотків

Time:Real; // Тривалість розмови

Day:integer; // день тижня

Summa: real; // вартість розмови

// отримати вихідні дані

// Обчислити вартість розмови

// Якщо день субота чи неділя, то зменшити

// ціна на величину знижки

thenSurama: = Suma * (1 - DISCOUNT);

// Висновок результату обчислення

+ FloatToStr(Summa) + 'руб.'; end;

Часто у програмі необхідно реалізувати вибір з двох варіантів. Наприклад, відомо, що для кожної людини існує оптимальне значення ваги, яке може бути обчислене за такою формулою:

Реальна вага може відрізнятися від оптимального: вага може бути меншою за оптимальну, дорівнювати їй або перевищувати оптимальне значення.

Наступна програма, діалогове вікно якої наведено на рис. 2.5, запитує вагу та зростання, обчислює оптимальне значення, порівнює його з реальною вагою та виводить відповідне повідомлення.

тільки
Мал. 2.5.Вікно програмиКонтроль ваги

Алгоритм програмиКонтроль вагизображено на рис. 2.6.

Як і в попередній програмі, обчислення виконуються при натисканні на кнопціОбчислити(її ім'я Buttoni). У лістингу 2.2 наведено текст програми.

інструкція

Мал. 2.6.Алгоритм програмиКонтроль ваги

Листинг 2.2.Контроль ваги

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

TForm1 = class(TForm) Label1: TLabel;

Edit1: TEdit; // поле введення ваги

Edit2: TEdit; // поле введення зростання

Button1: TButton; // кнопка Обчислити

Label3: TLabel; // поле виведення повідомлення-результату роботи

procedureButtonlClick(Sender: TObject);