Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sitkin_Informatika_Programmirovanie_v_DELPHI.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
600.56 Кб
Скачать

Пример5.2

Разработаем алгоритм определенияотношения (принадлежит или не принад-лежит) точки плоскости с заданными ко-ординатами области, представленной нарис. 5.7 и напишем проект, реализующийэтоталгоритм.

Основнаязадачазаключаетсявформулированииусловийввидесово-

Рис.5.7

купности неравенств, описывающих множество точек, принадлежа-щих выделенной области. Если введённые координаты точки удовле-творяютусловиюпринадлежностиобласти,тоследуетвывестина

форму сообщение, что точка принадлежит области, в противном слу-чаене принадлежит. Представленную область можно разделить надве треугольные части первого и третьего квадрантов. Часть области,относящаяся к первому квадранту, описывается тремя неравенствами:yx;y0;x3. Для попадания точки в первую часть должны выпол-нитьсявсетринеравенстваэтоозначает,чтоихследуетсоединить

связкой «и», что соответствует логи-ческойоперацииумноженияand.Второй части соответствуют неравен-ства:yx;y0;x3,которыетакжедолжныбытьсоединеныоперациейand.Междусобойдветройкинера-венствследуетобъединитьсвязкой

«или»,чтосоответствуетлогическойоперации сложенияor. Это объясня-ется тем, что если точка принадлежитобласти,тоонапринадлежитлибопервой части, либо второй, но не мо-жетпринадлежатьобеимчастямод-новременно.Описанныйспособре-шенияпредставленввидеблок-схемы

Рис.5.8

алгоритманарис.5.8.

Длявводазначенийкоординат

точки разместим на форме двакомпонентаLabeledEdit, для выводаинформациикомпонентLabel, процесс определения принадлежно-ститочкиобластисвяжемсощелчком(событиемOnClick)длякнопкиButton.

procedureTForm1.Button1Click(Sender:TObject);

varx,y:real;

a,b:boolean;

begin

x:= StrToFloat(LabeledEdit1.Text);y:= StrToFloat(LabeledEdit2.Text);a:=(y<=x)and(y>=0)and(x<=3);b:=(y>=x)and(y<=0)and(x>=-3);

ifaorbthenLabel1.Caption:='Точкапринадлежитобласти'

elseLabel1.Caption:='Точканепринадлежитобласти';

end;

ВданномслучаепривыводерезультатавкомпонентLabel1неиспользовалисьфункциипреобразованийFloatToStr.Этообъясняется

тем, что выводится не число-войрезультат,атекст(типString),что соответствует ти-пу свойстваCaptionи преоб-разованияне нужны.

Примерработыприложения

представленнарис.5.9.

Рис.5.9

Операторвыбора

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

caseключof

константы1:операторS1;

константы2:операторS2;

…………………………………

константыN:операторSN;

elseоператорSN+1;

end;

гдеcase,of,else,endслужеб-ныеслова;ключперемен-ная или выражение порядковоготипа(обычно,целыйилисим-вольныйтипы);константыN

  • список констант порядковоготипа;операторSNоператор,

Рис.5.10

выполняемый в случае совпадения значенияключасо значением изспискаконстантыN.Еслинеобходимовыполнениенесколькихоператоров в ветви, то они заключаются в операторные скобкиbeginиend.

Сначала вычисляется значениеключа, затем оно сравниваетсясо значениями констант из списков. В случае совпадения выполняетсясоответствующий оператор. Константа не должна входить в несколь-ко списков. Если значениеключане совпало ни с одной из кон-стант из списков, то выполняетсяоператорSN+1. Ветвьelse(опера-торSN+1)можетотсутствовать,тогдаприотсутствиисовпаденийоператор выбора пропускается, такая конструкция соответствует не-полнойформеоператоравыбора.

КомпонентCheckBox(независимыйпереключатель/флажок/)

Предназначендляустановкипараметровсдвумявозможнымисостояниями.Основныесвойствакомпонентаописанывтабл.5.2.

Таблица5.2

ОсновныесвойствакомпонентаCheckBox

Свойство

Описание

Name

Имякомпонента.Используетсядлядоступак

компонентуиегосвойствам

Caption

Текстрядомспереключателем

Alignment

Определяетпозициютекстаотносительнопере-ключателя: taRightJustify (справа), taLeftJustify

(слева)

Checked

True/FalseСостояниепереключателя установ-лен(естьгалочка)/сброшен(нет галочки)

AllowGrayed

True/FalseВозможностьнахожденияпереключа-

телявпромежуточномсостоянии

State

Состояниепереключателя.Вотличиеотсвойства

Checked позволяет различать установленное(cbChecked), промежуточное (cbGrayed), сбро-

шенное(cbUnChecked)состояние

WordWrap

True/FalseВозможностьпереносасловнасле-

дующуюстроку

Обычно независимый переключательCheckBoxможет иметь двасостояния, определяемые свойствомChecked: установлен (True)илисброшен (False). Бывает, что переключатель может иметь еще и тре-тье состояниепромежуточное. В этом состоянии переключатель за-крашивается серым цветом. Если переключатель может находиться втрёх состояния, то вместо свойстваCheckedиспользуется свойствоState,авсвойствеAllowGrayedустанавливается значениеTrue.

Состояние независимого переключателя не зависит от состоя-нийдругихпереключателей,отсюда иназваниенезависимый.

КомпонентRadioButton(зависимыйпереключатель) Предназначендляустановкивзаимоисключающихпараметров.

Основныесвойствакомпонентаописанывтабл.5.3.

ОсновныесвойствакомпонентаRadioButton

Таблица5.3

Свойство

Описание

Name

Имякомпонента.Используетсядлядоступак

компонентуиегосвойствам

Caption

Текстрядомспереключателем

Alignment

Определяетпозициютекстаотносительнопере-ключателя: taRightJustify (справа), taLeftJustify

(слева)

Checked

True/FalseСостояниепереключателя установ-лен(есть точка)/сброшен(нет точки)

WordWrap

True/FalseВозможностьпереносасловнасле-

дующуюстроку

На форме должно находиться несколько зависимых переключа-телей. Из группы зависимых переключателей в установленном состо-янииможетнаходитьсятолькоодин,отсюдаиназваниезависимый.