Приклад1. Скласти програму, де потрібно ввести
два цілі числа А, В. Менше замінити добутком цих чисел, більше їх сумою.
procedure
TForm1.Button1Click(Sender: TObject);
var
a,b,x,y:integer;
begin
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
if a>b
then
begin
x:=a+b;
y:=a*b;
end
else
begin
x:=a*b;
y:=a+b;
end;
a:=x;
b:=y;
Edit3.Text:=IntToStr(a);
Edit4.Text:=IntToStr(b);
end;
Приклад2. Як приклад використання інструкції
if розглянемо програму обчислення вартості послуг за Інтернет.
Як відомо,
ціна за користування Інтернетом у вихідні дні нижча, ніж в звичайні. Програма,
текст якої був приведений в лістингу нижче, запрошує тривалість користування
Інтернетом і день тижня, а потім обчислює вартість послуги. Якщо день тижня —
субота або неділя, то вартість зменшується на величину знижки. Ціна хвилини
роботи в Інтернеті і величина знижки задаються в тексті програми як
константи.
Діалогове вікно програми Вартість розмови
Для введення
початкових даних (тривалість роботи в Інтернеті , номер дня тижня)
використовуються поля редагування, для виведення результату і тексту пояснення
— текстові поля . В табл. “Компоненти форми додатку Вартість розмови”
перераховані компоненти і вказано їх призначення, а табл. “Значення
властивостей компонентів” приведені значення властивостей цих компонентів.
Табл. Компоненти форми додатку Вартість розмови
Компонент
|
Призначення
|
Edit1
Edit2
|
Для
введення тривалості роботи в Інтернеті в хвилинах
Для
введення номера дня тижня
|
Label1,
Label2
|
Для
виведення тексту пояснення про призначення полів введення
|
Label3
|
Для
виведення результату обчислення — вартості послуг
|
Button1
|
Для
активізації процедури обчислення вартості послуг користування Інтернетом
|
Примітка
Тут і далі
при описі форми додатку приводяться значення тільки тих властивостей
компонентів, які використовуються в програмі. Значення решти властивостей,
зокрема визначаючих розмір і положення компонентів, можуть бути залишені без
зміни або змінені довільним чином, природно, в розумних межах (очевидно, що
положення командної кнопки або поля редагування може бути вибрано в межах форми
довільним чином).
Табл. Значення властивостей компонентів
Властивість
|
Значення
|
Form1 .
Caption
|
Вартість
роботи в Інтернеті
|
Edit1.Text
|
|
Edit2.Text
|
|
Label1
.Caption
|
Тривалість
(хв.)
|
Label2
.Caption
|
Номер дня
тижня
|
Label3
.Caption
|
|
Button1 .
Caption
|
Обчислити
|
Примітка
В таблицях,
що містять опис значень властивостей компонентів форми, вказується ім'я
компоненту і через крапку — ім'я властивості. Наприклад, рядок таблиці
Form1.Caption Плата за Інтернет означає, що під час створення форми додатку
властивості Caption форми додатку треба привласнити вказане значення — текст
"Плата за Інтернет".
Програма
проводить обчислення в результаті клацання на командній кнопці Обчислити. При
цьому виникає подія onclick, яка обробляється процедурою TForm1.Button1Click.
Лістинг.
Обчислення вартості користування інтернетом
Unit Inet;
interface
Windows, Messages, SysUtils, Classes
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Editl: TEdit; // поле введення тривалості роботи в
Інтернеті
Edit2: TEdit; // поле введення номера дня тижня
Button1: ТВutton; // кнопка Обчислити
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure ButtonlClick(Sender: TObject); private
/ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
implementation
($R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
Cina =0.03; // ціна однієї хвилини роботи 0.03 грн.
DISCOUNT = 0.2; // знижка 20 відсотків
var
Time:Real; // тривалість роботи
Day:integer; // день тижня
Suma:real; // вартість послуг
Begin // отримати початкові дані
Time:=StrToFloat(Editl.Text) ;
Day:=StrToInt(Edit2.Text);
// Обчислити вартість послуг
Suma:= Cina*Time;
// Якщо день субота або неділя, то зменшити //
вартість на величину знижки
if (Day = 6) OR (Day = 7) then
Suma:=Suma*(1 - DISCOUNT);
// виведення результату обчислення
label3.caption:='До оплати '+ FloatToStr(Suma)+ '
грн.'; end;
end.
Проект «Вгадай число»
Завдання.
Складіть програму «Вгадай число». Комп’ютер загадує випадкове число від 0 до
100. Користувач робить спробу вгадати число. Комп’ютер порівнює введене число і
видає відповідь «мало» або «багато». Якщо користувач вгадав число, виводиться
надпис «Ура! Ти вгадав число!»
1. Створіть
проект. Розмістіть на формі елементи відповідно до приведеного прикладу.
Задайте властивості компонент згідно таблиці
Властивість
|
Значення
|
Form1 .
Caption
|
Вгадай
число
|
Edit1.Text
|
|
Label1
.Caption
|
Ваша
спроба
|
Label2
.Caption
|
|
Label3
.Caption
|
Ура! Ти
вгадав число
|
Label3
.Visible
|
False
|
Button1 .
Caption
|
Загадати
нове число
|
Button2 .
Caption
|
Перевірити
|
2. Для
одержання випадкових чисел в Lazarus існує функція Random(k), яка
повертає випадкове ціле число, що лежить у діапазоні від 0 до k. Наприклад, щоб
отримати випадкове число від 0 до 100, необхідно записати оператор присвоєння:
x:=Random(100). Для того, щоб при кожному запуску програми одержувати різні
випадкові числа необхідно перед використанням функції Random використати
процедуру Randomize
Отже, кнопці
«Загадати нове число» відповідає процедура обробки події:
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
b:=Random(100);
Label2.Visible:=False;
Label3.Visible:=False;
Edit1.Clear;
Edit1.SetFocus;
end;
Змінну b
потрібно описати як глобальну змінну, а саме перед початком виконавчої частини
після слів var Form1: TForm1; b:integer;
3. Для
кнопки перевірити потрібно записати такий код:
procedure TForm1.Button2Click(Sender: TObject);
var a:integer;
begin
Label2.Visible:=False;
a:=StrToInt(Edit1.Text);
if a=b then
begin
Label3.Visible:=True;
Label2.Visible:=False;
end
else
if not a>b then
begin
Label2.Visible:=True;
Label2.Caption:='МАЛО';
end
else
begin
Label2.Visible:=True;
Label2.Caption:='БАГАТО';
end;
end;
4. Збережіть проект. Запустіть програму на виконання.
Для того, щоб вгадати швидко число потрібно використати так званий метод «половинного
ділення».
Комментариев нет:
Отправить комментарий