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

Структурная схема оператора выбора

Селектор должен относиться к одному из целочисленных типов (находящихся в диапазоне – 32768 .. 32767): булевскому, литерному или пользовательскому. Список констант выбора состоит из произвольного количества значений, или диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разграничитель «..». Тип констант в любом случае должен совпадать с типом селектора.

Пример 4.

Составить программу вычисления площадей различных геометрических фигур:

Решение:

program pr5;

const pi=3.14;

var a,b,h,r: real;

n: integer;

begin

readln(n);

case n of

1: S:=a*b;

2: S:=(a*b)/2;

3: S:=(a+b)*h/2;

4: S:=pi*sqr®

end;

writeln(‘S=’,S)

end.

Пример 5.

Используя оператор варианта, составить программу вычисления значение функции:

Решение:

program pr5;

var a,b,c,x,y:real;

begin

writeln(‘Ввести a,b,c,x’);

readln(a,b,c,x);

case trunc(x) of

1..2: y:=a+b+c*sqr(x);

3..4: y:=exp(c*ln(a*sin(b*x)));

5..6: y:=sqrt(abs(a+b*x*sqr(x)))+c;

7..8: y:=a*ln(abs(b+c/(2*x)));

9..10: y:=exp(a*sin(x))+c*c*c

end;

writeln(‘y=’,y:8:2)

end.

Оператор case предпочтительнее оператора if в тех случаях, если в программе требуется разветвить вычисления на количество направлений, больше двух, и выражение, по значению которого производится переход на ту или иную ветвь, относится к одному из порядковых типов. Часто это справедливо даже для двух ветвей, поскольку улучшает наглядность программы.

При использовании операторов выбора case должны выполняться следующие правила:

  1. Значения выражения «переключателя», записанного после служебного слова case, должны принадлежать дискретному типу; для целого типа они должны лежать в диапазоне integer.

  2. Все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом выражения.

  3. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (т.е. повторения констант в альтернативах не допускается); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.

2. Операторы повтора.

Если вычислительный процесс содержит многократные вычисления по одним и тем же математическим зависимостям, но для различных значений входящих в них величин (переменных), то его называют циклическим. Многократно повторяющиеся участки вычислений называются циклами, а переменные, изменяющиеся в цикле, - переменными цикла. Блок, ради выполнения которого и организуется цикл, называется телом цикла. Остальные операторы служат для управления процессом повторения вычислений: это начальные установки, проверка условия продолжения цикла и модификация параметра цикла. Один проход цикла называется итерацией. Начальные установки служат для того, чтобы до входа в цикл задать значения переменных, которые в нем используются. Проверка условия продолжения цикла выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу. Параметром цикла называется переменная, которая используется при проверке условия цикла и принудительно изменяется на каждой итерации, причем, как правило, на одну и ту же величину. Если параметр цикла целочисленный, он называется счетчиком цикла. Количество повторений такого цикла можно определить заранее. Параметр есть не у всякого цикла. В так называемом итерационном цикле условие продолжения содержит переменные, значения которых изменяются в цикле по рекуррентным формулам (рекуррентной называется формула, в которой новое значение переменной вычисляется с использованием ее предыдущего значения). Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue и goto. Передавать управление извне внутрь цикла не рекомендуется, потому что при этом могут не выполниться начальные установки.

Алгоритм циклической структуры в наиболее общем виде должен содержать:

  1. подготовку цикла: задание начальных значений переменным цикла перед первым его выполнением;

  2. тело цикла: действия, повторяемые в цикле для различных значений переменных цикла;

  3. модификацию (изменение) значений переменных цикла перед каждым новым его повторением;

  4. управление циклом: проверку условия продолжения (или окончания) цикла и переход на начало тело цикла, если выполняется условие продолжения цикла (или выход из цикла по его окончании).

Программно цикл может быть реализован с помощью операторов присваивания, IF, GOTO. Однако в языке Pascal для этой цели существуют специальные операторы цикла, которые исключают необходимость использовать оператор GOTO, обеспечивают более компактную, наглядную, проще контролируемую запись алгоритма, позволяют создавать более эффективные программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]