Выполнение цикла с параметром




Циклические алгоритмы

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Цикл – это последовательность операторов, которая может выполняться более одного раза.

В языке Паскаль существуют три конструкции для реализации циклов:

  • цикл с предусловием;
  • цикл с постусловием;
  • цикл со параметром.

Цикл с предусловием

Применяется, когда неизвестно количество повторений одного и того же действия.

Выполнение

· Проверка условия происходит перед очередным исполнением тела цикла

· Пока условие выполняется, повторяется исполнение тела цикла. Как только условие перестало выполнятся – прекращается выполнение цикла (выход из цикла по лжи)

Если условие не выполняется ни разу, то тело цикла может не быть исполнено ни разу.

while <условие\логическое выражение (занчения True False> do <тело цикла>
begin
группа операторов
end;

Пример: Рассмотрим следующую задачу: для проверки физического развития проверяют рост школьников. Составьте программу, запрашивающую рост очередного школьника и вычисляющую после завершения медосмотра средний рост прошедших осмотр. Количество школьников, подлежащих медосмотру заранее не известно.

Решение. Чтобы получить средний рост С, надо знать количество школьников К и их суммарный рост S. Для вычисления величин K и S воспользуемся циклом WHILE. Однако, здесь возникает проблема, какое условие следует выбрать для завершения цикла. Проще всего договориться – в конце рабочего дня в ответ на запрос о росте школьника ввести какое-либо фиктивное значение, например, 0.

var k, s, r: integer; c: real;
begin s:= 0; k:= 0;
write (‘введите рост школьника’);
readln (r);
while r <> 0 do begin
k:= k + 1;
s:= s + r;
write (‘введите рост школьника’);
readln (r);
end; c:= s/k;
writeln (‘средний рост школьников’,c)
readln;
end.

Цикл с постусловием

Оператор Repeat (повторять) – Until (до тех пор, пока) содержит логическое выражение, которое управляет повторением выполнения последовательным операторов, записанных между Repeat и Until. Повторения продолжается до тех пор, пока логическое выражение не примет значения True

Последовательность циклов выполняется не менее одного раза

repeat {повторяй}
{оператор 1}
until <логическое выражение>; {до тех пор, пока условие не будет истинным}

При использование данного оператора необходимо учитывать

· Перед первым выполнением оператора логическое выражение его окончания должно быть определено

· Последовательность операторов должна содержать хотя бы один оператор, влияющий на значение логического выражения, иначе оператор работает бесконечно долго, происходит зацикливание

· Логическое выражение в конечном итоге должно принять значение – True

Пример

Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.

Решение

Обозначим через x, k - соответствующую цену и количество товара, через p - заданную предельную сумму, через s - общую стоимость покупки. Начальное значение общей стоимости покупки (S) равно нулю. Значение предельной суммы считывается с клавиатуры. необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран нужно вывести сообщение о превышении.

Program Example_10;
Var x, k, p, s: Integer;
Begin
WriteLn('Введите цену товара и его количество');
ReadLn(x,k);
s:=s+x*k;
WriteLn('Стоимость покупки равна ',s);
Until s>p;
WriteLn('Суммарная стоимость покупки превысила предельную сумму');
End.

 

Цикл с параметром

Оператор цикла с параметром применяют тогда, когда известно число повторений одного и того же действия. Выход по лжи

FOR переменная-счётчик:= начальное_значение [TO / DOWNTO] конечное_значение DO{Действия}

Начальное и конечное значение параметра могут быть представлены

· Константами

· Переменными

· Арифметическими выражениями

Выполнение цикла с параметром

1. Вычисления значения выражения А и В

2. Если А<=B, то параметр последовательно принимает значения А, А+1. А+2…В-1, В, и для каждого из этих значений выполняется тело цикла

3. Если А>B, то тело цикла не будет выполнено ни разу и выполнение цикла с параметром сразу же закончится. Выполнение цикло For-DownTo происходит аналогично, но с шагом равным -1.

!!!! Изменение параметра в теле цикла For может привести к ошибкам, что считается неправильным в программировании !!!!

Если тело цикла состоит из нескольких операторов, то операторы заключаются в операторные скобки Begin End

Пример:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: