Оператор цикла с предусловием while — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Оператор цикла с предусловием while

2017-12-13 285
Оператор цикла с предусловием while 0.00 из 5.00 0 оценок
Заказать работу

 

Синтаксис оператора цикла с предусловием while

while выражение do оператор;

выражение, стоящее после ключевого слова while (англ., while – пока), является условием повторения цикла. Оно должно иметь логический тип, это может быть выражение, содержащее операцию отношения (например, ), или просто логическая переменная (например,varflag:boolean). выражение обязательно должно содержать переменную цикла (параметр цикла), а в теле цикла должен присутствовать оператор, изменяющий значение переменной цикла таким образом, чтобы условие выхода из цикла было достижимо (иначе цикл будет выполняться бесконечное число раз). После ключевого слова do (англ., do – делай) следует оператор, который многократно повторяется в цикле. В качестве оператора может быть любой оператор языка программирования Паскаль (if, for, while, repeat и др.), в т.ч. составной оператор. Если в теле цикла требуется выполнить несколько операторов, они должны быть заключены в блок с помощью операторных скобок beginend.

Рассмотрим порядок выполнения оператора цикла с предусловием while. Сначала до оператора цикла (до служебного слова while) необходимо задать начальное значение переменной цикла. Во время выполнения цикла перед каждой итерацией цикла находится значение логического выражения, стоящего после ключевого слова while. Если логическое выражение принимает значение истина (true), тогда выполняется оператор, стоящий после ключевого слова do.Если логическое выражение принимает значение ложь (false), тогда происходит выход из цикла. После окончания цикла управление передается на следующий за ним оператор. Таким образом, пока выражение, стоящее после ключевого слова while, принимает значение истина, выполняется оператор, стоящий после ключевого слова do. Как только значение выражения стало ложным, осуществляется выход из цикла. Блок-схема оператора цикла с предусловием while приведена на рис. 5.3.

Выражение
Тело цикла
Истина
Ложь

 

 


Рис. 5.3. Блок-схема, соответствующая оператору цикла с предусловием

 

Если логическое выражение, стоящее после ключевого слова while, принимает значение ложь в самом начале цикла, то тело цикла не выполнится ни разу.

Для корректного выполнения оператора цикла while должны выполняться следующие правила:

1) до оператора цикла (т.е. до служебного слова while) обязательно нужно задать начальное значение переменной цикла;

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

Конец
Начало
a,b,h
x=a;b
y=cos(x)
x=x+h
Да
x,y
Конец
Начало
a,b,h
x>b
y=cos(x)
Нет
x=a
x=x+h
Да
x,y
Конец
Начало
a,b,h
x<=b
y=cos(x)
Нет
x=a

 


а) б) в)

Рис. 5.4. Блок-схема алгоритма построения значения функции:

а – цикл с предусловием; б – универсальная блок-схема; в – цикл с постусловием

 

Пример 5.8. Таблица значений функции. Составить таблицу значений функции , для аргумента, изменяющегося на отрезке с постоянным шагом , где , , – вещественные числа, , . Блок-схема алгоритма построения значения функции для цикла с предусловием приведена на рис. 5.4, а, б.

program prog;

var x,y,a,b,h:real;

begin

writeln('Введите a,b,h');

read(a,b,h);

x:=a;//переменной цикла присваивается начальное значение

whilex<=bdo//проверяется условие выхода из цикла

begin

y:=cos(x);

writeln('х=',x:5:2,' y=',y:5:2);

x:=x+h;{значение переменной цикла увеличивается на величину шага}

end;

end.

Далее приведены результаты выполнения программы при , , :

х=4.00 y=-0.653643620863612

х=4.20 y=-0.490260821340699

х=4.40 y=-0.307332869978419

х=4.60 y=-0.112152526935054

х=4.80 y=0.0874989834394473

x=5.00 y=0.283662185463226

Пример 5.9. Наибольшее значения функции на отрезке. Вычислить наибольшее значение функции на отрезке c шагом .

program prog;

const h=0.1;

var x,y,max,a,b:real;

begin

x:=1;//переменной цикла присваивается начальное значение

max:=sqr(x)+cos(x);

whilex<2do//проверяется условие выхода из цикла

begin

x:=x+h;{значение переменной цикла увеличивается на величину шага}

y:=sqr(x)+cos(x);

if y>max then

max:=y;

end;

writeln('max=',max:5:2)

end.

Пример 5.10. Наименьшее значения функции на отрезке. Вычислить наименьшее значение функции на отрезке c шагом , где , , – вещественные числа, , .

program prog;

var x,y,min,a,b,h:real;

begin

writeln('Введитеа,b,h');

read(a,b,h);

x:=a;

min:=sqr(x)+cos(x);

while x<b do

begin

x:=x+h;

y:=sqr(x)+cos(x);

if y<min then

min:=y;

end;

writeln('min=',min:5:2)

end.

 


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.