Добавил:
sofyvits@ya.ru на позитиве Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
497
Добавлен:
10.01.2016
Размер:
919.04 Кб
Скачать

Оператор цикла с параметром

Структура оператора:

FOR <парам. цикла> := <нач. знач.> TO <кон. знач.> DO <оператор>

FOR, TO, DO – зарезервированные слова (для, до, выполнить).

<парам. цикла> – параметр цикла (переменная типа integer);

<нач. знач.>– начальное значение (выражение типа integer);

<кон. знач.>– конечное значение (выражение типа integer);

<оператор> – произвольный оператор.

Предполагается, что в выражения <нач. знач.> и <кон. знач.> не входит параметр цикла.

Например,

for i:= 1 to n do s := s + i* i* i

Читается это так: для i от 1 до n выполнить s := s + i3.

При выполнении оператора FOR сначала вычисляется выражение, задающее значение параметру цикла, затем это значение присваивается параметру цикла.

После этого следует:

1) проверка условия <парам. цикла> <= <конеч. знач.>;

если условие выполняется, то перейти к пункту 2, иначе к пункту 4;

2) выполнение оператора <оператор>;

3) наращивание переменной <парам. цикла> на единицу и переход к пункту 1;

4) завершение работы.

Задача. Написать программу расчета среднего роста курсантов в группе.

Схема алгоритма приведена на рис. 1.13, 1.14. Запишем программу.

program task; {Расчет среднего роста курсантов в группе.}

var n,i: integer; s,r: real;

begin

readln(n);

s := 0;

for i :=1 to n do

begin

readln(r);

s := s+r

end;

s := s/n;

write(‘Средний рост =‘,s)

end.

В этой программе: n – количество курсантов в группе; i – номер текущего курсанта; r – рост текущего курсанта; s – переменная, в которой накапливается сумма, а затем в эту же переменную записывается средний рост курсантов, рассчитанный как среднее арифметическое. Эти переменные описаны в программе: i и n как целые, а s и r как вещественные. В программе используется оператор цикла с параметром, так как заранее известно количество повторений. В цикле должны выполняться два оператора, поэтому следует использовать составной оператор begin – end.

Шаг наращивания параметра цикла строго постоянен и равен (+1). Существует другая форма оператора FOR, где шаг (–1).

FOR <парам. цикла> := <нач. знач.>DOWNTO <кон. знач.> DO <оператор>

Задача. Вычислить сумму гармонического ряда h = 1 + 1/2 + 1/3 + ... + 1/n.

Решение этой задачи уже было рассмотрено с использованием операторов while и repeat. Разработаем программу, используя оператор FOR.

Для изображения схемы алгоритма воспользуемся блоком “модификация” (рис. 6).

Рис. 6. Пример блок-схемы алгоритма

Программа.

program task;

var i,n: integer; h: real;

begin

readln(n);

h := 0

for i := n downto 1 do

h := h + 1/i;

writeln(h)

end.

В этой программе в цикле выполняется лишь один оператор, в связи с этим составной оператор опущен.

Соседние файлы в папке Лекции Информатика и программирование