Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
61
Добавлен:
04.06.2015
Размер:
7.62 Mб
Скачать

Var n, s : Word;

Begin

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);

WriteLn;

End;

4.после окончания работы цикла значение параметра цикласохраняется,

5.в область цикла можно входить только через заголовок циклаFor;неразрешаетсяпереход с помощью операторовIfиGoTo, расположенныхвнеданного цикла, на операторы в области цикла:

If (p Mod s > 10)

Then GoTo 5; ошибка – переход в тело цикла, минуя его заголовок

For i := 1 To 10 Do

Begin

s := s + i;

5: p := p + i;

End;

6.операторамиIfиGoTo, расположеннымивнутритела цикла,можно переходитьна любой оператор в теле цикла или вне его, при этом значение параметра цикласохраняется:

For i := 1 To 100 Do

Begin

If (a[i]=0)

Then Goto 2; переход внутри тела цикла

a[i] := 1 / a[i];

2:

End;

7.с помощью оператораBreakможнодосрочновыйти из цикла:

For i := 1 To 100 Do

Begin

k := i;

If (a[i] < 0)

Then Break; поиск первого отрицательного элемента в векторе

End;

8.операторContinueпозволяетдосрочноперейти к следующей итерации цикла:

For i := 1 To 100 Do

Begin

If (a[i] = 0)

Then Continue; если ноль, то на следующую итерацию

a[i] := 1 / a[i];

End;

Основное назначение циклов с параметром – обработка массивов, причем параметр цикла отождествляется с индексом (номером) элемента массива.