Хелпикс

Главная

Контакты

Случайная статья





переменная цикла:=переменная цикла+шаг;



 

Занятие 8                                             Цикл WHILE                                                   1 курс

1. Цикл WHILE (цикл с предварительным условием)

Практически универсальный цикл (может применяться во всех случаях, когда необходим цикл). Чаще всего применяется тогда, когда нельзя использовать For: то есть неизвестно сколько раз выполнять цикл или до какого значения изменяется переменная цикла.

Общий вид:

Переменная цикла:=начальное значение;       /Может быть заменено вводом начального

значения с клавиатуры/

Команды, стоящие между begin и end, выполняются до тех пор, пока условие истинно.
while    <условие>    do                                                   

begin

   команды;

   переменная цикла:=переменная цикла+шаг;

end;

ВНИМАНИЕ! В цикле While очень легко допустить ошибку! Цикл WHILE выполняется до тех пор, пока условие цикла истинно, поэтому обязательно в какой-то момент условие должно стать ложным, иначе программа будет выполняться бесконечно (будет зациклена). Прерывание выполнения программы – кнопка Stop.

Сравним решение задачи:

Пример 1: Найти сумму чисел от 1 до N, кратных 5.


С помощью For:

Program prim1;

var s, i, N : integer;

Begin

s:=0;

Write ( 'Введите N: ');

Readln (N);

For i:=1 to N do

if  i mod 5=0  then

s:=s+i;

Writeln ( 'Сумма S= ' , s);

End.


С помощью While:

Program prim1;

var s,i,N:integer;

Begin

s:=0;

Write ( 'Введите N: ');

Readln(N);

i:=5;

While  i<=N  do

begin

s:=s+i;

i:=i+5;

end;

Writeln ( 'Сумма S= ' , s);

End.


Обратите внимание на то, что решение с циклом For проще записать, однако цикл For перебирает все значения от 1 до n с шагом 1 и отбирает кратные 5, а цикл While «перепрыгивает» через 5 (шаг между числами, кратными 5). Поэтому начальное значение i:=5, а шаг изменения переменной – тоже 5 (заметьте, что он может быть любым, в том числе и дробным!). Если Вы забудете набрать строку i:=i+5; программа при выполнении «зациклится» (цикл будет выполняться бесконечно!).

С помощью цикла While можно решать задачи, которые нельзя решить с помощью цикла For.

Пример 2: Найти произведение чисел от 1, кратных 5.

Умножать до тех пор, пока произведение не станет больше N.

Program prim2;

Var P, i, N : integer;

Begin

Write ( 'Введите N: ');

Readln(N);

P:=1;

i:=5;



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.