ClrScr;
s := 0;
For n:=1 To 100 Do
s := s + n;
WriteLn(‘Сумма равна ’, s);
ReadLn;
End.
Эту же задачу можно решить, суммируя числа справа налево, то есть от 100 до 1:
Program Gauss;
Uses CRT;
Var i, s : Word;
Begin
ClrScr;
s := 0;
For i:=100 DownTo 1 Do
s := s + i;
WriteLn(‘Сумма равна ’, s);
ReadLn;
End.
Построение операторов цикла For подчиняется следующим правилам:
1. начальное и конечное значения параметра цикла можно задавать константами (как в примере), заранее определенными переменными или выражениями,
2. внутри области цикла нельзя самому изменять начальное и конечное значения параметра цикла: эти значения задаются в заголовке цикла один раз, запоминаются, и до выхода из цикла не меняются, даже если соответствующие им переменные меняются в теле цикла:
m := 1;
n := 10;
For j := m To n Do
Begin
a[j] := j + 10;
m := m + 1; ошибка!
n := n + 1; ошибка!
End;
Выходим из этого цикла со значением параметра цикла j, равным 10.
Нежелательно внутри области цикла самому изменять значение параметра цикла - это может привести к появлению бесконечных циклов:
s := 0;
n := 10;
For k := 1 To n Do
Begin
k := k + 1;
s := s + k;
End;
Эта программа вычисляет сумму s четных целых чисел от 2 до 10, равную 30. При этом конечное значение параметра цикла k равно 10 .
Зададим n = 11:
s := 0;
n := 11;
For k := 1 To n Do
Begin
k := k + 1;
s := s + k;
End;
Цикл превратится в бесконечный: значение параметра цикла k никогда не будет равным заданному конечному значению 11. Оно перепрыгнет это значение и уйдет в бесконечность.
Если же цикл не выполняется ни разу, то параметр цикла сбрасывается на ноль:
s := 0;
p := 1;
For k := 10 To 1 Do
Begin
p := p * k;
s := s + k;
End;
Выходим из этого цикла со значением k, равным 0.
3. допускается использование цикла в цикле, при этом циклы должны иметь различные параметры цикла:
For i := 1 To n Do эти циклы выводят элементы массива Anm
Begin в виде матрицы, построчно
For j:= 1 To m Do
Write(a[i,j]:5);
Дата добавления: 2015-08-08; просмотров: 711;