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

СТРУКТУРНАЯ СХЕМА ОПЕРАТОРА ВЫБОРА

 
 

Селектор должен относиться к одному из целочисленных типов (находящихся в диапазоне – 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. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (т.е. повторения констант в альтернативах не допускается); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.

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

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

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

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

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

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

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

 
 

СТРУКТУРНЫЕ СХЕМЫ ОПЕРАТОРОВ ЦИКЛА

В языке Pascal имеется три вида операторов цикла: 1) оператор цикла с предварительным условием (предусловием); 2) оператор цикла с последующим условием (постусловием); 3) оператор цикла с параметром. Операторы для записи циклов являются сложными, так как в их состав входят другие операторы. Для всех операторов цикла характерна следующая особенность. Повторяющиеся вычисления записываются всего лишь один раз. Вход в цикл возможен только через его начало. Переменные оператора цикла должны быть определены до входа в циклическую часть. Необходимо предусмотреть выход из цикла: или по естественному его окончанию, или по оператору перехода. Если этого не предусмотреть, то циклические вычисления будут повторяться бесконечно. В этом случае говорят, что произошло «зацикливание» выполнения программы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: