Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль(шпоры).doc
Скачиваний:
1
Добавлен:
20.04.2019
Размер:
225.79 Кб
Скачать

11. Уловный оператор. Оператор множ-ного ветвления(выбора).

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

Если логическое выражение, выступающее в качестве условия, принимает значение False, то выполняются операторы, расположенные после else (серия2), если True, — операторы, следующие за then. Поскольку развилка может быть неполной, то возможна и неполная форма записи условного оператора:

IF <логическое выражение> then серия;

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

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

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

Запись оператора выбора

CASE K OF

A1: серия 1;

A2: серия 2;

...

AN: серия N

ELSE серия N + 1

END;

Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки begin..end). Выражение K здесь может быть любого порядкового типа (все целые типы, Boolean, Char, перечисляемый тип, диапазонный тип)

12. Цикл с предусловием., с постусловием. Связь с другими циклами.

Командой повторения или циклом назыв-ся такая форма орган-ии действий, при j одна и та же послед-ть действий повторяется до тех пор, пока сохраняется значение некоторого лог-ого выр-ия. Если какие-либо операторы необходимо выполнить несколько раз, то их не переписывают каждый раз заново, а организуют цикл: -предусловием(while ЛВ do S): вычисл-ся значение ЛВ, если это значение истинно, то выполняется серия операторов S и вновь происходит переход к вычислению значения ЛВ, если знач-ие ложь, то цикл завершается. Цикл может выполнятся от 0 до ∞ кол-ва раз; 0 раз, когда знач-ие ЛВ=лжи, обычно цикл выполняется некоторое кол-во раз, зацикливание явл-ся неприемлемым, т.к. нарушается cв-во алг-ма, и может произойти в том случае, если не предусмотрено изменение знач ЛВ с истины на ложь. S - тело цикла (операторы, j здесь используются). -постусловием(repeat S until ЛВ) - выпол-ся серия операторов S, после чего вычисляется знач ЛВ, если знач ЛВ ложь, происходит повторение действий, завершение цикла происходит, когда знач ЛВ=истине. Цикл может выпол-ся от 1 до ∞ кол-ва раз. - цикл с параметром: используется в тех случаях, когда число повторений тел цикла заранее известно. Структура цикла, организованного с помощью этого оператора, имеет вид:

For ПЦ: = НЗ To КЗ Do Begin <операторы> End;

For ПЦ: = НЗ DownTo КЗ Do Begin <операторы> End; ПЦ - параметр цикла; НЗ и КЗ - началь-ое и конеч-ое знач параметра цикла.

Пример: найти сумму тех членов ряда 1/2+1/3+1/4+…, j не меньше заданного епсилон.

Program sum; (с предусловием)

Var i:integer; s:real; eps:real;

Begin

Writeln(‘число eps=’);

Readln(eps);

S:=0;

I:=2;

While 1/i>=eps do

Begin

S:=s+1/I;

I:=i+1;

End;

Writeln(s:10:7);

End.

Program sum;(с постуловием)

Var i:integer; s:real; eps:real;

Begin

Writeln(‘число eps=’);

Readln(eps);

S:=0;

I:=2;

Repeat if 1/I >=eps then s:=s+1/I;

I:=i+1;

Until 1/i<eps

End;

Writeln(s:10:7);

End.