ЦИКЛИЧЕСКИЕ ПРОГРАММЫ
ТИП ДИАПАЗОН
Если программисту необходимо сузить диапазон значений, принимаемых некоторым объектом, то он осуществляет это в явном виде наложением ограничений на стандартный (порядковый) или ранее определенный(порядковый) тип, который в этом случае называется базовым. Например:
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.