Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Оператор цикла WHILE (цикл ПОКА).

Читайте также:
  1. Begin IF умова 2 THEN оператор 1 end
  2. Begin оператори; end.
  3. While <булево выражение> do
  4. Анализ динамики рынка, модель жизненного цикла
  5. Арифметические операторы
  6. Арифметические операторы и операторы присваивания
  7. Влияние жизненного цикла туристского продукта на оценку туристских ресурсов
  8. Возврат заявок на участие в электронном аукционе оператором электронной площадки.
  9. Действия оператора поста централизации при отравлении работника.
  10. Действия оператора поста централизации при получении работником ожогов.

Формат оператора:
WHILE логическое выражение DO;

Оператор будет повторятся пока истинно логическое выражение. Перед каждым повторением оператора значение логического выражения вычисляется заново. Если необходимо повторить несколько операторов, их следует объединить в составной оператор, т.е. заключить в операторные скобки begin... end. Этот цикл может не выполниться ни разу, если условие при входе в него оказалось ложным. Таким образом, цикл ПОКА содержит условие повторения цикла.

Пример 1. Программа подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+...1/N.

Program Summa;
Var S:real;
N:integer;
Begin
S:=0;N:=0;
While n<1000 do
Begin
N:=n+1;
S:=s+1/n
End;
Writeln(s);
Readln
End.

Пример 2. Вычислить наибольший общий делитель двух натуральных чисел А и В.

Воспользуемся для этого алгоритмом Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равны.

Program NOD;
Var a,b:integer;
Begin
Write ('введите два натуральных числа')
Readln(a,b)
While a<>b do If a>b then a:=a-b else b:=b-a;
Writeln('НОД=',a);
Readln
End.

Пример 3. Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100км.

Program prim_10;
Var S:real;
N:integer;
Begin
S:=10;N:=1;
While s<20 do
Begin
N:=n+1;
S:=s*0.1
End;
Writeln(' дневной пробег больше 20 км на ',n,' день');
S:=10;N:=1;
While s<100 do
Begin
N:=n+1;
S:=s+s*0.1 {накапливаем суммарный пробег}
End;
Writeln('за ',n,' пробежит больше 100 км');
Readln
End.

 


11.1.Оператор цикла REPEAT (цикл ДО).

Формат оператора:
REPEAT оператор; оператор;...оператор UNTIL логическое условие;

Часть программы, заключенная между служебными словами REPEAT и UNTIL, повторяется до тех пор, пока не станет истинным логическое выражение, стоящее после слова UNTIL. Между словами REPEAT (повторить) и UNTIL(до тех пор, пока) можно записать любое количество операторов без использования операторных скобок.
В отличие от оператора WHILE вычисление логического выражения происходит не до, а после очередного повторения цикла. Из-за этого цикл REPEAT обязательно выполнится хотя бы раз, а цикл WHILE может не выполнится ни разу. Если условие в цикле ПОКА является условием продолжения повторений, то условие в цикле ДО - условием выхода из цикла, его завершения. Поэтому для одной и той же задачи эти условия противоположны.

Пример 1. Составить программу подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+...1/N используя оператор цикла REPEAT.

Program Summa;
Var S:real;
N:integer;
Begin
S:=0;N:=0;
repeat
N:=n+1;
S:=s+1/n
Until n>1000;
Writeln(s);
Readln
End.




Дата добавления: 2014-12-19; просмотров: 89 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.396 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав