Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Операторы передачи управления




Назначение операторов передачи управления заключается в организации ветвлений в программе: условных или безусловных. С помощью этих операторов вычислительный процесс передается в указанную оператором точку программы по указанному в операторе условию либо без условия.

Оператор безусловного перехода

Действие оператора GOTO состоит в передаче управления соответствующему оператору. Структура оператора:

GOTO метка;

Метка в Турбо Паскале – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Перед тем как появиться в программе, метка должна быть задана в разделе описания. Описание меток состоит из зарезервированного слова LABEL (метка), за которым следует список меток.

Пример:

LABEL 1; {в разделе описания};

goto 1; {в разделе операторов} {перейти на метку 1}

1:read(x,y); {строка с меткой 1 в разделе операторов}

При исполнении меток необходимо руководствоваться следующими правилами:

1. метка, на которую ссылается оператор GOTO, должна быть задана в разделе описаний и она обязательно должна встретиться где-нибудь в разделе операторов программы;

2. метки, описанные в процедуре (функции), локализуется в ней, поэтому передача управления извне процедуры (функции) на метку внутри неё невозможна.

Однако в программировании не рекомендуется использование оператора GOTO, т.к. это затрудняет понимание программ, делает ее запутанной и сложной в отладке. Современная технология структурного программирования основана на принципе программирования без GOTO.

Операторы условного перехода

Структура условного оператора имеет следующий вид:

IF <условие> THEN <оператор 1> ELSE <оператор 2>;

где: IF, THEN, ELSE – зарезервированные слова (если, то, иначе);

<условие> – произвольное выражение логического типа;

<оператор 1>, <оператор 2> – любые операторы языка Турбо Паскаль.

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор 1>, а <оператор 2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор 1> пропускается, а выполняется <оператор 2>.

Поскольку любой из операторов <оператор 1> и <оператор 2> может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть ELSE <оператор 2>, то возникает неоднозначность трактовки условий. Эта неоднозначность в Турбо Паскале решается следующим образом: любая встретившаяся часть ELSE соответствует ближайшей к ней «сверху» части THEN условного оператора. Условный оператор позволяет проверить некоторое условие и в зависимости от результатов поверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса.

Операторы условного перехода подразделяются на: простые и составные, короткие и полные.

Простой, короткий IF (если)

Структура оператора имеет вид:

IF (условие) THEN (оператор или метка);

Пример: Написать программу алгоритма ветвления.

Вычислить y: = ln x, если x > 0.

Решение: Программа алгоритма ветвления имеет вид:

Program PR2;

var y, x: real;

begin

writeln(‘ввести x’);

Readln (x);

IF x > 0 THEN y: = ln(x); {простой, короткий IF}

writeln (‘x=’, x: 7:2, ‘y=’, y:7:2);

end.

Простой, полный IF

Пример: Написать программу алгоритма ветвления. Вычислить y = ln x, если х>0, иначе y=cos x. В примере рассматривается не только вариант «тогда», но и «иначе».

Решение: Программа алгоритма ветвления имеет вид:

Program PR3;

var x, y: real;

begin

writeln(‘ввести X’);

Readln (X);

if x>0 THEN y:= ln (x) ELSE y:=cos(x); {простой, полный IF}

Writeln (`x = `, x:6:2, `y = `, y:7:2)

end.

Если х>0, тогда выполняется оператор за словом THEN (тогда), иначе выполняется оператор, следующий за словом ELSE (иначе).

Cоставной, короткий IF

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

Составные операторы – важный инструмент Турбо Паскаля, дающий возможность писать программы по современной технологии структурного программирования (без перехода GOTO).

Язык Турбо Паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор.

Пример: Вычислить y=ln x, z=y–5×x, если x > 0.

Оператор условия запишется в виде:

IF x>0 then Begin y:=Ln(x); z:=y–5*x;

Writeln (‘y=’, y:7:2, ‘z=’, z:8:3);end;

Составной, полный IF

Пример: Вычислить y=ln x, z=y–5×x, если x > 0. Вывод производить для каждого условия.

Решение: Оператор условия запишется в виде:

IF x>0 then Begin

Y:=ln (x);

Writeln (`x = `, x:6:2,`y =`, y:7:2);

End

Else begin

Y:=cos (x);

Writeln (`x = `, x:6:2,`y =`, y:7:2);

End;

В примере оператор условия составной, так как после слов then, еlse операторы заключены в операторные скобки.





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


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


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

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

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

4923 - | 4440 -


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

Ген: 0.008 с.