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

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.

26. Использование условных операторов для организации разветвляющихся вычислительных процессов

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

Направления, по которым может следовать вычислительный процесс, называются ветвями. В программах разветвляющихся процессов естественный порядок выполнения операторов нарушается и обеспечивается выполнение той последовательности операторов, которая соответствует выбранным условиям. В языке Паскаль это реализуется специальными управляющими операторами или операторными структурами, которые называются операторами перехода. Схему алгоритма разветвленной структуры характеризует наличие блока "условие", который имеет два выхода, помеченные словами "да" и "нет". Еще этот блок называют логическим блоком. В этом блоке осуществляется проверка выполнения некоторого логического условия. Если условие "истинно", вычислительный процесс идет по выходу "да", в противном случае - по выходу "нет".

IF < выражение > THEN < оператор >

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

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

IF < выражение > THEN < оператор 1 > ELSE < оператор 2 >;

CASE < индекс выбора > OF < элементы списка выбора >