Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatica / lin.doc
Скачиваний:
76
Добавлен:
09.04.2015
Размер:
776.19 Кб
Скачать

Оператор перехода

Оператор перехода записывается следующим образом

<оператор перехода>::=goto <метка>

Он позволяет изменить естественный порядок выполнения опе­раторов и перейти к выполнению программы, начиная с оператора, помеченного данной меткой

Запрещен переход внутрь любого производного оператора и с одной альтернативы на другую в выбирающем операторе.

Использование операторов перехода может повысить эффектив­ность программы, но ухудшает ее наглядность, затрудняет понимание и проверку, а тем самым снижает ее надежность. Использование оператора перехода считается плохим стилем программирования.

Пустой оператор

Пустой оператор не задает никаких действий, кроме определения своего преемника, которым является следующий по порядку оператор. Синтаксически непомеченному пустому оператору соответствует отсут­ствие каких-либо символов.

<пустой оператор>::=<пусто>

<пусто>::=

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

Пример. begin 22:; i:=0; end

Здесь записано три оператора: помеченный меткой 22 пустой оператор, оператор присваивания i:=0 и следующий за ним непомечен­ный пустой оператор.

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

Пример.

begin

1:;2:x:=0;

3:end;

Раздел типов

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

<раздел типов>::=<пусто>| type<описание типа>{;<описание типа>};

<описание типа>::=<имя типа>=<тип>

<тип>::=<имя типа>|<задание типа>

В алгоритмическом языке с каждым типом связаны:

  • структура программного элемента, т.е. интерпретация памяти;

  • множество допустимых значений;

  • совокупность возможных операций с ним.

Задавая тип, нельзя задать операции над его данными.

Ранее были рассмотрены стандартные типы значений, которые определены самим языком и не должны вводиться в программе. Програм­мист может вводить в употребление и другие, удобные для него типы значений. Простейшие из них – перечислимые и ограниченные типы. Оба эти класса относятся к скалярным типам, т.е. каждое их значение состоит из единственного данного (является тривиальной структурой).

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

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

<полный условный оператор>::= if<логическое выражение>then

<оператор>else<оператор>

Здесь if,then,else– служебные слова.

Полный условный операторвыглядит следующим образом

if B then S1 else S2 ,

где B– логическое выражение, аS1иS2– операторы.

Выполнение такого условного оператора сводится к выполнению одного из входящих в него операторов S1или S2. ЕслиB=true, то выполняется S1, еслиB=false, то – S2.

В сокращенной форме условного оператора отсутствует альтер­нативная часть с else, т.е.

<сокращенный усл опер.>::=if<лог. выраж.> then<оператор>

и if B then S1

Если B=true, то выполняется S1, еслиB=false, то никаких иных действий, кроме вычисления значения B, не производится.

Наличие сокращенной формы условного оператора требует боль­шой осторожности при использовании условных операторов.

Например, оператор вида if A then if B then S1 else S2

можно истолковать двумя спосовами

I. if B then begin if B2 then S1 end else S2

II. if B then begin if B2 then S1 else S2 end

По правилам Паскаля имеет место вторая трактовка, т.е. считает­ся, что каждый символ elseсоответствует первому предшествующему ему символуthen. Во избежание недоразумений и ошибок рекомендуется в подобных случаях четко выделять желаемую форму путем использова­ния операторных скобокbeginиend.

Соседние файлы в папке Informatica