ЦИКЛИЧЕСКИЕ ПРОГРАММЫ

ТИП ДИАПАЗОН

 

Если программисту необходимо сузить диапазон значений, принимаемых некоторым объектом, то он осуществляет это в явном виде наложением ограничений на стандартный (порядковый) или ранее определенный(порядковый) тип, который в этом случае называется базовым. Например:

var

a,b:1900..2000;

с: 'a'..'z';

Для переменных a и b базовым является целый тип, для с –символьный. Сначала указывается нижняя граница, затем – верхняя (при этом нижняя граница не должна быть больше верхней). Попытки присвоить переменной ограниченного типа значение, не входящее в заданный диапазон, приведет к возникновению ошибки при счете. Таким образом, введение ограниченных типов перекладывает проверку допустимости значений с программиста на ЭВМ. К переменным типа диапазон применимы все операции и стандартные функции, которые допустимы с переменными соответствующего порядкового типа. Теперь, в свете вышеприведенных сведений, программа про шахматное поле будет следующей:

program pr8;

var k,l,n,m: 1..8;

begin

writeln('Введите кооpдинаты полей k,l,n,m: ');

read(k,l,n,m);

if odd(k+l) and odd(n+m) or not odd(k+l) and not odd(n+m)

then writeln('Поля одного цвета')

else writeln('Поля pазного цвета');

end.

 

К циклическим программам приводят задачи, в которых часть действий выполняется многократно.

Пусть необходимо протабулировать функцию F(x) на интервале [a,b] c шагом h (где, F(x)=x*sin(x), a<b, h>0 ) и вывести полученные значения функции и аргумента.

Протабулировать функцию – это значит вычислить значения функции F(x) на отрезке [a,b] в точках a, a+h, a+2h и т.д.

Графическая схема алгоритма приведена на рис.9, а программа – в примере pr9.

Program pr9;

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

begin

writeln('Введите a,b,h:');

read(a,b,h);

x:=a;

repeat

y:=x*sin(x);

writeln('x = ',x:5, ' y= ',y:5);

x:=x+h; {К "старому" значению х добавляется

h и результат пересылается снова в х}

until x>b;

end.

Рис. 9

 

В этой программе оператор цикла используется для многократного выполнения группы операторов, расположенных между словами repeat, until. Каждый раз в цикле вычисляется значение y, выводятся x и y, задается новое значение х и проверяется, не выходит ли х за пределы интервала. В результате работы этой программы будут напечатаны в два столбика значения x и y.