Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Структурированные операторы

3.1. Оператор выбора CASE

 Синтаксис

CASE <Выражение> OF

<Список значений 1>:<Оператор 1>;

<Список значений 2>:<Оператор 2>;

∙ ∙ ∙

<Список значений N-1>:<Оператор N-1>;

<Список значений N>:<Оператор N>

[ELSE

<Список операторов>]

END

 

Выражение может быть только порядкового типа. В списках значений через запятую указываются константы или интервалы значений. Если значение выражения находится в одном из списков значений, выполняется соответствующий оператор. Одно и то же значение не может находиться в нескольких списках (если рассматривать Delphi, так как в других версиях языка Паскаль это иногда допускается, при этом выполняется только первый из операторов, для которого значение – в списке). Если значение выражения не содержится ни в одном из списков и присутствует раздел ELSE, то выполняется список операторов. После последнего оператора перед ELSE и перед END точку с запятой ставить не обязательно, но допускается.

 Пример

CASE S[n] OF

'0'..'9':WriteLn('Цифра');

'A'..'Z','a'..'z':WriteLn('Буква');

'+','-','*','/':WriteLn('Операция');

ELSE

WriteLn('Неизвестный символ');

END;

 

 

3.2. Оператор цикла FOR

 Синтаксис

FOR <Имя переменной>:= <Выражение 1> {TO | DOWNTO} <Выражение 2> DO <Оператор>

 

 Алгоритм действия оператора FOR для фраз TO / DOWNTO

1. Вычислить начальное и конечное значения переменной цикла (выражения 1 и 2).

2. Присвоить переменной цикла начальное значение.

3. Если значение переменной не больше/меньше конечного значения, то

А. Выполнить оператор.

Б. Изменить значение переменной цикла на следующее/предыдущее.

В. Перейти к шагу 3.

4. Конец оператора.

 

Действия, выполняемые на шаге 3.Б (изменение значения переменной цикла на следующее или предыдущее), требуют, чтобы <Выражение 1>, <Выражение 2> и переменная цикла имели одинаковый порядковый тип, так как такие действия определены только для порядковых типов. Если использована фраза TO и начальное значение больше конечного, либо фраза DOWNTO и начальное значение меньше конечного, то оператор не будет выполнен ни разу. После выполнения цикла значение переменной цикла изменяется и не должно использоваться.

 Пример

FOR n:=1 TO 10 DO

WriteLn('n=',n);

 

 Результат выполнения

n=1

n=2

...

n=10

 

 

3.3. Оператор цикла WHILE

 Синтаксис

WHILE <Логическое выражение> DO <Оператор>

 

Принцип действия оператора можно сформулировать так: пока значение логического выражения истинно, выполнять оператор. Т.е. сначала происходит вычисление значения логического выражения. Если оно истинно, то выполняется оператор, и все повторяется сначала до тех пор, пока выражение не станет ложным.

Если выражение окажется ложным с самого начала, оператор не выполнится ни разу.

 Пример

n:=1;

WHILE n<=10 DO

BEGIN

WriteLn('n=',n);

Inc(n);

END;

 

 Результат выполнения

n=1

n=2

...

n=10

 

Функции Inc и Dec определены для порядковых типов.

 Синтаксис

Inc(<Порядковая переменная>[,<Целое число>])

Dec(<Порядковая переменная>[,<Целое число>])

 

Они выполняют соответственно увеличение и уменьшение значения переменной на 1 или на указанное число.

 Пример

Inc(n); { Увеличение значения пременной n на 1 }

Dec(n,5); { Уменьшение n на 5 }

 

 

3.4. Оператор цикла REPEAT

 Синтаксис

REPEAT

<Список операторов>

UNTIL <Логическое выражение>

 

Список операторов в цикле REPEAT имеет такую же структуру, как и в составном операторе BEGIN END.

Действие оператора: выполнять список операторов до тех пор, пока логическое выражение не станет истинным. Сначала происходит выполнение списка операторов, затем выселяется значение логического выражения. Если оно ложно, все повторяется сначала до тех пор, пока выражение не станет истинным.

В отличие от оператора WHILE, цикл REPEAT заканчивается, когда выражение становится истинным. Также, в отличие от оператора WHILE, здесь сначала выполняется список операторов, и только потом вычисляется значение логического выражения, поэтому независимо от того, каким будет логическое выражение, список операторов выполнится хотя бы один раз.

 Пример

n:=1;

REPEAT

WriteLn('n=',n);

Inc(n);

UNTIL N>10

 

 Результат выполнения

n=1

n=2

...

n=10

 

 

<== предыдущая лекция | следующая лекция ==>
Лекция 3. Стандартные математические и арифметические функции | Строковый тип. Раздел описания типов
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 277; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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