КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операторы if, then, else
Управление вычислениями Подпрограммы Включаемый файл Записи Область видимости идентификаторов Управление вычислениями ПОДПРОГРАММЫ Разыменование указателя
Иногда возникает необходимость разыменования указателя.
Новый термин: «Разыменовать» указатель означает «получить доступ» к тому объекту, на который он указывает.
Обратимся к примеру с записями типа TMailingListRecord:
var APtr: PMailingListRecord; Rec: TMailingListRecord; begin APtr:= AllocMem(SizeOf(TMailingListRecord));
Допустим, что нам необходимо скопировать данные динамической переменной APtr в статическую переменную Rec. Переменная APtr есть указатель на TMailingListRecord, в то время как Rec является переменной типа TMailingListRecord. Поэтому следующее выражение вида Rec:= APtr; некорректно, ибо APtr содержит адрес памяти, а не значения полей записи TMailingListRecord. Чтобы решить рассматриваемую задачу, указатель надо разыменовать. Для этого используется специальный символ разыменования указателя (^):
Rec:= APtr^;
Глава 2. УПРАВЛЕНИЕ ВЫЧИСЛЕНИЯМИ, ЗАПИСИ,
Операторы if – then – else Выполнение нескольких инструкций Вложенные условия Циклы Цикл for Функции Pred и Succ Цикл while Цикл repeat Управление циклами Оператор goto Оператор case Пример записи Оператор with Массивы записей Процедуры и функции Объявление и определение подпрограммы Параметры подпрограмм Локальные подпрограммы Перегрузка подпрограмм Параметры по умолчанию
Файл PASCAL2.DOC. Версия 17/03/2000
Во всех языках программирования есть управляющие операторы, например – if. Оператор if используется для проверки некоторого условия с последующим выполнением (или невыполнением) некоторых операторов. Рассмотрим пример:
var X: Integer; begin X:= StrToInt(Edit1.Text); if X > 10 then Label1.Caption:= 'Вы ввели число больше чем 10.'; end;
В этом фрагменте кода от компонента Edit1 (такой компонент должен быть на форме) мы получаем значение целого числа, которое вводит пользователь. Если введенное число окажется больше 10, значением выражения x > 10 будет True и на экране появится сообщение, а в противном случае – нет. Когда условие истинно, выполняется оператор, который следует сразу после выражения if...then. Иными словами, условная часть оператора следует сразу после then.
Новый термин: Оператор if используется для проверки истинности некоторого условия и выполняет один или несколько операторов если это условие истинно.
Выполнение нескольких инструкций. Допустим, что при истинном условии необходимо выполнить несколько операторов. В данном случае группу операторов следует объединить в один блок – ограничить ключевыми словами begin – end:
if X > 10 then begin Label1.Caption:= 'Вы ввели число больше 10.'; DoSomethingWithNumber(X); end;
Если условное выражение примет значение False, блок кода, связанный с выражением if игнорируется, а выполнение программы продолжается с оператора, следующего за этим блоком.
ПРИМЕЧАНИЕ. При проверки истинности переменной логического типа достаточно употребить ее имя в соответствующем контексте. Пусть
var FileGood: Boolean;
Тогда вместо if FileGood = True then ReadData; можно написать if FileGood then ReadData;
Следующий пример показывает как применить операцию отрицания
var FileGood: Boolean; begin FileGood:= OpenSomeFile; if not FileGood then ReportError; end;
Когда при истинности условия требуется выполнить одно действие, а при его ложности – другое, в состав условного оператора вводят else:
if X = 20 then DoSomething(X) else DoADifferentThing(X);
В этом примере будет выполнено одно из двух действий – либо процедура DoSomething, либо процедура DoADifferentThing.
Новый термин: Оператор else используется совместно с if и обозначает секцию кода, которую следует выполнять когда условие ложно.
Обратите внимание на то, что перед else нет «точки с запятой». Это связано с тем, что вся последовательность if...then...else образует один оператор. Приведем еще несколько примеров синтаксиса if...then...else
if X = 20 then DoSomething(X) else DoADifferentThing(X);
if X = 20 then begin DoSomething(X); end else begin DoADifferentThing(X); end;
if X = 20 then begin DoSomething(X); X:= 200; Y:= 30; end else begin DoADifferentThing(X); X:= 100; Y:= 15; end;
Вложенные условия. Операторы if могут быть вложены друг в друга произвольное число раз:
if X > 10 then if X < 20 then Label1.Caption:= 'Значение X заключено между 10 и 20';
Имейте в виду, что это упрощенный пример. В сложной последовательности вложений легко запутаться, особенно когда много begin – end операторов выделяют блоки кода:
if X > 100 then begin Y:= 20; if X > 200 then begin Y:= 40; if X > 400 then begin Y:= 60; DoSomething(Y); end; end; end else if X < -100 then begin Y:= -20; if X < -200 then begin Y:= -40; if X < -400 then begin Y:= -60; DoSomething(Y); end; end; end;
ПРИМЕЧАНИЕ. Если фрагмент кода содержит две и более последовательностей условий, проверяющих значения одной и той же переменной, то вместо условного оператора лучше применить оператор case (см. ниже). В рассмотренных примерах условием было простое выражение. Если же необходимо связать несколько выражений, то каждое из них следует заключать в скобки:
if (X = 20) and (Y = 50) then DoSomething;
Дата добавления: 2015-04-29; Просмотров: 958; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |