Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика - экзамен.docx
Скачиваний:
8
Добавлен:
16.04.2019
Размер:
59.07 Кб
Скачать

20.Понятие оператора в алгоритмическом языке. Классификация операторов Турбо Паскаля.

Оператор – одно из ведущих понятий языка. Каждый оператор представляет собой фразу языка и определяет вполне законченный этап обработки данных. В Паскале имеется восемь типов операторов, которые можно разбить на две группы:

I группа – основные операторы – это те операторы, которые в своем составе не содержат других операторов. К основным операторам относятся: оператор присваивания, оператор процедуры, оператор перехода и пустой оператор.

II группа – производные операторы. К производным операто­рам относятся: составной оператор, выбирающий оператор, оператор цикла и оператор присоединения.

21.Операторы присваивания. Типы операторов присваивания в Турбо Паскале.

Оператор присваивания изменяет содержимое памяти.

<оператор присваивания>::=<переменная>:=<выражение>

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

24. Условные операторы: полный и сокращенный.

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

<полный условный оператор>::= 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.

25.Оператор варианта Case.

Оператор варианта – это обобщение условного оператора.

<оператор варианта>::= case<селектор оператора>of

<элемент списка вар.>{;<элемент списка вар.>}

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

end

<селектор оператора>::=<выражение>

<элемент списка вар.>::=<список меток вар.>:<оператор>

<список меток варианта>::=<метка варианта>{,<метка варианта>}

<метка варианта>::=<константа>

Таким образом, оператор варианта имеет следующий вид

case A of

C1: S1;

. . . . . .

Cn: Sn;

else S;

end;

Условие ветвления A для оператора case задается выражением порядкового типа, и case-константы C1, … Cn должны иметь тот же тип, что и селектор оператора, причем ни одна из этих констант не может использоваться в качестве метки варианта более одного раза.

Здесь S1, … Sn – операторы, из которых должен выполниться только тот, у которого case-константа равна значению выражения A. Если среди case-констант нет значения выражения A, выполняется опе­ратор S, записанный после else. Ветвь else может отсутствовать. Тогда, если селектор не совпадает ни с одной case-константой, оператор case будет пропущен, т.е. не выполнится ни одного оператора внутри case.