Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie_1_chast.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
4.45 Mб
Скачать

5.7 Создание проектов с использованием условного оператора и генератора случайных чисел

Пример. Создать проект «Ромашка», в котором при щелчке на выбранном лепестке в надписи отображается случайное предсказание, и данный лепесток становится невидимым.

Рис. 83 Графический интерфейс проекта «Ромашка»

Создадим графический интерфейс проекта по образцу (рис. 83). Лепестки ромашки поместим в компоненты Image1-Image5.

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

Для задания случайных величин в Delphi используется генератор случайных чисел, который запускается процедурой Randomize. Эта процедура делает выбор случайных чисел еще более случайным. Случайное число в диапазоне от 0 до (Х-1) возвращает функция Random (Х). При этом сама граница в диапазон не входит. Например, функция Random(10) может выдать случайное число в интервале от 0 до 9, а число 10 не выдаст никогда.

Генератор случайных чисел запустим при открытии формы. Для этого на вкладке Events (События) Инспектора объектов у компонента Form1 выберем событие OnCreate и дважды щелкнем по нему. В появившемся обработчике события TForm1.FormCreate включаем генератор случайных чисел процедурой Randomize.

procedure TForm1.FormCreate(Sender: TObject);

begin

Randomize;

end;

Введем переменную х, которая будет принимать одно из пяти случайных значений (по количеству лепестков ромашки). Чтобы эта переменная могла принимать пять случайных значений, ей необходимо выполнить следующее присвоение:

х:= random(5);

Если переменная х окажется равной 0, то в надписи должно появиться первое предсказание:

if x=0 then Label1.Caption:='Счастье';

Аналогично задаются остальные предсказания.

Чтобы затем сделать компонент Image1 невидимым нужно добавить оператор:

Image1.Visible:=false;

Обработчик события щелка OnClick у компонента Image1 будет следующим:

procedure TForm1.Image1Click(Sender: TObject);

var x:integer;

begin

х:=random(5);

if x=0 then Label1.Caption:='Счастье';

if x=1 then Label1.Caption:='Любовь';

if x=2 then Label1.Caption:='Удача';

if x=3 then Label1.Caption:='Богатство';

if x=4 then Label1.Caption:= 'Здоровье';

Image1.Visible:=false

end;

У остальных лепестков обработчики событий будут подобными.

Так как в данном проекте во всех процедурах используется одна и та же переменная х, то ее можно описать уже не как локальную, а как глобальную. Для этого уберем строку Var x:integer; из каждой процедуры и укажем тип переменной х в уже имеющемся разделе описания переменных, где пока имеется лишь описание формы.

var

Form1: TForm1;

х: integer;

Рис. 84 Окно работающего приложения