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

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

Читайте также:
  1. I.3. Оператор цикла с предусловием.
  2. Цикл с предусловием
  3. Цикл с предусловием

Если заранее не известно число повторений цикла, то используются циклы с условием. В Паскале имеется два типа таких циклов. Цикл While называют циклом с предусловием. Он имеет вид:

WHILE <логич.выражение> DO <оператор>;

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

Общий вид: While <условие продолжения повторений> do

<тело цикла>;

Тело цикла – простой или составной оператор или операторы. Если операторов в теле цикла несколько, то тело цикла заключается в операторные скобки begin…end.

Цикл While организует выполнение одного (возможно составного) оператора пока истинно логическое выражение, стоящее в заголовке цикла. Поскольку значение логического выражения проверяется в начале каждой итерации, то тело цикла может не выполниться ни разу. Таким образом, в этом цикле логическое выражение – это условие продолжения работы в цикле. Перед выполнением этого цикла должны быть заданы значения для всех переменных входящих в логическое выражение. В первом цикле вычисляется значение логического выражения. Если значение логического выражения ИСТИНА, то выполняется тело цикла, затем происходит возврат на начало цикла и снова вычисляется логическое выражение; если логическое выражение ИСТИНА, то цикл повторяется и т.д. Цикл завершится, когда значение логического выражения будет ЛОЖЬ. Если в первом цикле сразу же логическое выражение ЛОЖЬ, то цикл не выполнится ни разу и происходят выход из цикла и переход к первому после while оператору.

ПРАВИЛА для цикла WHILE:

1) если значение логического выражения ИСТИНА изначально, в теле цикла обязательно должен присутствовать оператор, изменяющий значение хотя бы одной переменной, входящей в логическое выражение;

2) возможен случай, когда в теле цикла записан оператор перехода, передающий управление за пределы цикла, тогда цикл может, завершится до его естественного окончания;

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

ПРИМЕР 1: Величину Y=A·X2 требуется вычислить для следующих значений X:0,2,4,6,8,10. Следовательно, цикл необходимо повторить шесть раз. Программу с использованием этого оператора назовем “OWHILE”.

Program OWHILE;

Uses Crt;

Const A=2;

XMIN=0; {Минимальное значение X}

XMAX=10; { Максимальное значение X }

HX=2; {Шаг, может быть вещественным}

Var X,Y,I:Integer;

Begin

ClrScr;

X:=XMIN; {Начальное значение аргумента}

WHILE X<=XMAX DO {предусловиe, условие входа в цикл}

begin

Y:=A*Sqr(X);

Writeln(‘X=’:4,X:3,’ A=‘, A,‘ Y=’:5,Y:4);

X:=X+HX; {Изменение значения аргумента}

End;

Readln;

End. { OWHILE }

 

В цикле WHILE тело цикла определяется составным оператором, образованным при помощи операторных скобок Begin и end.

Цикл WHILE исполняется только в том случае, когда выполняется условие ввода в цикл. В нашей программе – это выполнение условия о том, чтобы аргумент был равен или меньше XMAX. Каждый новый шаг этого цикла осуществляется лишь тогда, когда выполняется условие выхода в цикл. Поэтому этот цикл называют циклом с предусловием. Если условие входа в цикл не выполняется уже до первого шага, то цикл игнорируется и выполняется оператор, следующий за этим циклом. В теле цикла обязательно должен быть оператор, влияющий на условие входа в цикл. Иначе цикл будет выполняться бесконечно

.

Пример блок-схемы WHILE

 

ПРИМЕР 2: Найти сумму 10 произвольных чисел.

Program z;

Const

N=10;

Var k, x, s: integer;

Begin

k:=0; s:=0; {k- количество введенных чисел}

While k < N do

Begin

k:=k+1;

Write (‘Введите число’); Readln (x);

s:=s+x;

End;

Writeln (‘Сумма чисел равна’, s);

End.

 

ПРИМЕР 3: На склад привозят однородный груз на машинах различной грузоподъемности. На компьютер, управляющий работой склада, поступает информация о весе груза очередной машины. Составить программу подсчета количества машин, прибывших на склад до его заполнения, если вместимость склада не более 100 тонн.

Program strome;

Var sum, W: real; num: integer;

begin

num:=0; sum:=0;

while sum<100 do

begin

write (‘ введите вес груза машины’); readln (W);

sum:=sum+W;

if sum<=100 then num:=num+1 else

writeln (' груз уже не поместился');

end;

writeln (' число разгруженных машин=', num:3);

end.


Дата добавления: 2015-07-08; просмотров: 422 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Цикл с параметром - цикл For| Цикл с постусловием

mybiblioteka.su - 2015-2024 год. (0.01 сек.)