Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.