Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Сложные (структурные) операторы




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

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

Формат записи:

BEGIN

<Оператор 1>;

<Оператор 2>;

..............

<Оператор N>;

END;

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

Условные операторы

В Turbo Pascal существуют два условных оператора: IF и CASE.

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

IF <условие> THEN <оператор 1> {Полный формат}

ELSE <оператор 2>;

IF < условие > THEN < оператор >; {Сокращенный формат}

Условие - логическое выражение булевского типа, т.е. принимает лишь два значения true или false. В случае записи условного оператора в полном формате, если значение выражения истинно, выполняется <оператор 1>, если ложно, то <оператор 2>. В случае сокращенной записи условного оператора, если результат логического выражения True, выполняется <оператор>, если False - оператор, следующий за оператором IF. Операторы if могут быть вложенными или сложными (структурными).

Пример:

if a*b=0 then beta:=a+b else beta:=(a*c+b*d)/(a*b);

if m=0 then sigma:=1 else if m<0 then sigma:=ln(abs(m))/ln(2)

else sigma:=exp(m-z);

Оператор выбора CASE. Обобщением условного оператора является оператор выбора, позволяющий одну из нескольких альтернативных ветвей программы в зависимости от значения некоторого выражения, называемого индексом выбора или селектором. Оператор выбора CASE позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором или индексом выбора, и списка параметров, каждому из которых предшествует список констант выбора, список может состоять и из одной константы.

Тип констант должен быть совместимым с типом селектора. Для индекса выбора запрещены типы real и string.

Формат:

CASE <индекс выбор -селектор> OF

<метки 1>:<Оператор 1>;

< метки 2>:<Оператор 2>;

.......................

< метки N>:<Оператор N>;

ELSE <Оператор m>;

END;

Пример: case alfa of 0: y:=sqr(x);

1: y:=exp(n*ln(x));

2: y:=cos(x);

7: y:=sin(x)/cos(x);

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

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

Цикл с параметром

Если число повторений цикла известно к началу выполнения, например равно n, и величина шага равна единице или минус единицы, то можно использовать оператор цикла с параметром FOR.

Оператор повтора FOR состоит из заголовка и тела цикла. Он может быть представлен в двух форматах:

для шага параметра цикла равного единице (1)

FOR <параметр цикла>:=<нач.знач.> TO <кон.знач.> DO <оператор>;

для шага параметра цикла равного минус единице (-1)

FOR <параметр цикла>:=<нач.знач.> DOWNTO <кон.знач.> DO <оператор>;

FOR... DO - заголовок цикла; <нач.знач.> <кон.знач.> - выражения, определяющие соответственно начальное и конечное значение параметра цикла; <оператор> - тело цикла, представляющее собой совокупность простых, составных и структурных операторов, но может быть представлено и одним оператором.

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

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

Пример: for i:=1 to n do begin s:=0;

for k:=1 to n do s:=s+b[ i, k ];

a[ i ]:=s;

writeln(‘a[ ‘, i,‘ ] = ‘,a[ i ]:12:6);

End;

Цикл с предусловием

Оператор повтора REPEAT состоит из заголовка, тела и условия окончания UNTIL.

Формат:

REPEAT <Оператор 1>;

<Оператор 2>;

..............

<Оператор N>;

UNTIL <условие - логическое выражение>;

Операторы, заключенные между словами REPEAT... UNTIL, являются телом цикла. В начале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат булевского выражения равен False, то цикл активизируется еще раз, если результат True - происходит выход из цикла. По крайней мере один из операторов тела цикла должен влиять на значение условия, иначе цикл будет выполняться бесконечно.

Цикл с постусловием

Оператор повтора WHILE аналогичен оператору REPEAT, но проверка условия выполнения цикла производится в начале оператора.

Формат:

WHILE <условие> DO <тело цикла>;

<условие> - булевское выражение, <тело цикла> - простой или составной оператор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, то тело цикла выполняется и снова вычисляется выражение условия, если результат равен False, происходит выход из цикла и переход к первому после WHILE оператору.

Оператор WITH

Для обращения к полям записи используется оператор WITH (с) который имеет формат:

WITH <переменная типа запись> DO <оператор>;

Указав переменную типа запись можно работать как с обычной переменной Turbo Pascal.

Пример: With RV do begin name:=‘ Сидоров В.С.’;

data:=‘ 15.11.78’;

End;





Поделиться с друзьями:


Дата добавления: 2015-11-05; Мы поможем в написании ваших работ!; просмотров: 816 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наука — это организованные знания, мудрость — это организованная жизнь. © Иммануил Кант
==> читать все изречения...

2256 - | 2056 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.