Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
второй вопрос.docx
Скачиваний:
3
Добавлен:
14.04.2019
Размер:
51.13 Кб
Скачать

22.Оператор арифметического цикла

Если число повторений заранее известно, то можно воспользоваться следующим оператором цикла, который часто называют оператором цикла арифметического типа. Синтаксис этого оператора таков:

for (А; В; I){S}

Выражение А служит для инициализации параметра цикла и вычисляется один раз в начале выполнения цикла. Выражение в (условие продолжения) управляет работой цикла. Если значение выражения ложно, то выполнение цикла завершается, если истинно, то выполняется оператор s, составляющий тело цикла. Выражение i служит для изменения значения параметра цикла. После выполнения тела цикла s вычисляется значение выражения i, затем опять вычисляется значение выражения вит. д. Цикл может прекратить свою работу в результате выполнения оператора break в теле цикла. Опишем функцию sumdei, которая находит сумму делителей числа п, не считая самого числа.

function sumdei (n)

{ var s=l;

for (var i=2; i <= n/2; i++)

{ if (n % i == 0) s += i }

return s }

Параметр цикла i описывается с помощью оператора var i = 2. Условие продолжения выполнения цикла i <= n/2. Все делители натуральных чисел находятся в интервале [1; п]. Параметр цикла i увеличивается на 1 при выполнении 1++. Тело цикла состоит из условного оператора. Если очередное число является делителем, то оно добавляется к переменной s, служащей для "накапливания" суммы делителей числа п. До цикла переменной s присваивается значение 1, т. к. 1 — делитель любого натурального числа.

23.Оператор итеративного цикла с предусловием

Оператор цикла с предусловием (начинающийся с ключевого слова while) содержит в себе выражение, которое управляет повторным

выполнением оператора (который может быть составным оператором).

┌─────┐ ┌─────────┐ ┌──┐ ┌────────┐

оператор ───>│while├──>│выражение├──>│do├──>│оператор├──>

while └─────┘ └─────────┘ └──┘ └────────┘

Выражение, с помощью которого осуществляется управление повторением оператора, должно иметь булевский тип. Вычисление его производится до того, как внутренний оператор будет выполнен.Внутренний оператор выполнятся повторно до тех пор, пока выражение принимает значение Тruе. Если выражение с самого начала принимает значение False, то оператор, содержащийся внутри оператора цикла с предусловием, не выполняется.

Примерами операторов цикла с предусловием могут служить следующие операторы:

while Data[I] <> X do I := I + 1;

begin

if Odd(I) then Z := Z * X;

I := I div 2;

X := Sqr(X);

end;

while not Eof(InFile) do

begin

Readln(InFile,Line);

Process(Line);

end;

24.Оператор итеративного цикла с постусловием

Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз. В языке Паскаль этот цикл реализует оператор repeat..until; в Си — do…while.

На языке Pascal цикл с постусловием имеет следующий вид::

repeat

<тело цикла>

until <условие выхода>

На языке Си:

do

{

<тело цикла>

}

while(<условие продолжения цикла>)

В трактовке условия цикла с постусловием в разных языках есть различия. В Паскале и языках, произошедших от него, условие такого цикла трактуется как условие выхода (цикл завершается, когда условие истинно, в русской терминологии такие циклы называют ещё «цикл до»), а в Си и его потомках — как условие продолжения (цикл завершается, когда условие ложно, такие циклы иногда называют «цикл пока»).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]