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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

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

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

 

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

1. В операторе цикла с предусловием while выход из цикла осуществляется, когда логическое выражение, указанное после ключевого слова while, становится ложным (false). В операторе цикла с постусловием repeat наоборот, выход из цикла осуществляется, когда логическое выражение, указанное после ключевого слова until становится истинным (true).

2. В операторе цикла с предусловием while проверка условия производится до выполнения тела цикла. А в операторе цикла с постусловием repeat проверка условия производится после выполнения тела цикла, поэтому тело цикла всегда выполняется хотя бы один раз.

3. Тело цикла в операторе цикла с постусловием repeat заключено между служебными словами repeatuntil, поэтому его не требуется заключать в блок с помощью операторных скобок beginend. В операторе цикла с предусловием while в случае выполнения в циыкленаскольких операторов beginend обязательны.

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

repeat оператор_1;...;оператор_n until выражение;

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

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

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

 

 


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

 

Для корректного выполнения оператора цикла с постусловием repeat должны соблюдаться те же правила, которые были рассмотрены для оператора цикла с предусловием while.

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

program prog;

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

begin

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

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

repeat

y:=cos(x);

writeln('x=',x:8:3,' y=',y:8:3);

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

untilx>b;//проверяется условие выхода из цикла

end.

Пример 5.12. Наименьшее значения функции на отрезке. Вычислить наибольшее значение функции на отрезке c шагом , где , , – вещественные числа, , . Пример блок-схемы алгоритма вычисления наибольшего значения функции на отрезке для оператора цикла с постусловием приведен на рис. 5.6, a.

program prog;

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

begin

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

read(a,b,h);

x:=a;

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

repeat

x:=x+h;

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

if y>max then

max:=y

until x>b;

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

end.

Начало
e=1e–4, S=0, k=1,  
u=1/(1+k2)
k, S
S=S+u
|u|<=e
Kонец
Да
Нет
k=k+1
Начало
x=a  
max=x2+cosx
max=y
x, max
Конец
Да
x=x+h
y>max
Нет
y=x2+cosx
x>b
Да
Нет
a,b,h

 


а) б)

Рис. 5.6. Примеры блок-схем алгоритмов:

а – вычисление наибольшего значения функции на отрезке;

б – вычисление суммы сходящегося бесконечного ряда.

 

Пример 5.13. Сумма сходящегося бесконечного ряда. Дан сходящийся бесконечный ряд с общим членом ряда . Вычислить сумму первых членов ряда , считая последним тот член ряда, абсолютное значение которого не превосходит величины . Пример блок-схемы алгоритма вычисления суммы сходящегося бесконечного ряда для оператора цикла с постусловием приведен на рис. 5.6, б.

program prog;

const e=1e-4;

var s,u:real;

k:integer;

begin

s:=0;//начальное значение суммы

k:=1;//номер первого слагаемого

repeat

u:=1/(1+sqr(k));{вычисление значения очередного члена ряда}

s:=s+u;//вычисление суммы ряда

k:=k+1;

until abs(u)<e;

writeln('Количество членов ряда k=',k);

writeln('Суммаряда s=',s:10:3);

end.

Вложенные циклы

 

Внутри одного цикла может выполняться один или несколько других циклов. Цикл, внутри которого выполняется другой цикл, называется внешним циклом. Цикл, который выполняется внутри внешнего цикла, называется внутренним циклом. Вся конструкция называется вложенные циклы.

Рассмотрим несколько примеров применения вложенных циклов.

Пример 5.14. Вычислить значение выражения .

Начало
j=1,2
y=0
k=1,5
у
Конец
y=y+cos(k∙j)

 

 


Рис. 5.7. Блок-схема к задаче на вложенные циклы

program prog;

var k,j:integer; y:real;

begin

y:=0;

for k:=1 to 5 do

for j:=1 to 2 do

y:=y+cos(k*j);

writeln('y=',y);

end.

Пример 5.15. Вычислить значение выражения .

programprog;

var f,n,k:integer; y:real;

begin

y:=0;

for n:=1 to 5 do

begin

f:=1;

for k:=1 to n do

f:=f*k;

y:=y+1/f;

end;

writeln('y=',y);

end.

Начало
y=0
n=1,5
k=1,n
у
Конец
F=F*k
F=1
y=y+1/F

 


Рис. 5.8. Блок-схема к задаче на вложенные циклы

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

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

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

begin

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

read(a,b,h);

x:=a;

while x<=b do

begin

y:=0;

for k:=1 to 5 do

y:=y+cos(k*x);

writeln('x=',x:5:3,' y=',y:5:3);

x:=x+h

end;

end.

Начало
a,b,h
y=0
y=y+cos(k*x)
x=x+h
x>4
Конец
Да
Нет
k=1,5
х=a
x, y
Начало
x=a;b;h
y=0
k=1,5
y=y+cos(k*x)
Конец
a,b,h
x, y

 


Рис. 5.9. Блок-схемы к задаче на вложенные циклы

 

programprog;//оператор цикла с постусловием repeat

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

begin

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

read(a,b,h);

x:=a;

repeat

y:=0;

for k:=1 to 5 do

y:=y+cos(k*x);

writeln('x=',x:5:3,' y=',y:5:3);

x:=x+h;

until x>b;

end.

Контрольные вопросы

 

1. Перечислите операторы циклов, которые имеются в языке программирования Паскаль.

2. Что такое рекуррентное выражение? Опишите порядок выполнения оператора присваивания для рекуррентных выражений.

3. Приведите формат записи оператор цикла с параметром for.

4. Приведите блок-схему соответствующую оператору цикла с параметром for.

5. Какой тип данных имеет переменная цикла в операторе цикла с параметром for?

6. Какой тип данных должны иметь начальное и конечное значение переменой цикла в операторе цикла с параметром for?

7. Опишите ситуации, в которых оператор цикла с параметром for не применим.

8. Приведите формат записи оператора цикла с предусловием while.

9. Приведите блок-схему соответствующую оператору цикла с предусловием while.

10. Приведите формат записи оператора цикла с пост условием repeat.

11. Приведите блок-схему соответствующую оператору цикла с пост условием repeat.

12. Какой тип данных имеет выражение в операторах цикла с пред и пост условием?

13. Какие правила должны соблюдаться для корректного выполнения операторов цикла с пред и пост условием?

14. Каковы отличия оператора цикла с предусловием от оператора цикла постусловием?

15. Какие циклы называются вложенными? Какой цикл называется внешним, а какой внутренним?

 

Рекомендуемая литература

 

1. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. СПб.: Питер, 2007. 393 с.


Глава 6. Массивы

Массивы используются для обработки большого объема однотипных данных. Массив – это упорядоченная последовательность величин одинакового типа, обозначаемая одним именем. Величины, составляющие массив, называются его элементами. Элементы массива располагаются в соседних ячейках памяти. Тип данных и количество элементов массива определяют размер области памяти, которая отводится для размещения массива. Положение элемента в массиве задается его порядковым номером (индексом). При обращении к элементу массива указывают имя массиваи индекс элемента.

Количество элементов и структура массива определяют его размерность. В случае одномерных массивов для нумерации элементов используется один индекс, двумерных – два, трехмерных – три и т.д.

Тип элементов массива может быть любым, кроме файлового, тип индексов массивов – интервальным, перечисляемым или byte.

Ввод, вывод и обработка массивов осуществляется с помощью оператора цикла. Применение массивов и циклов позволяет существенно сократить текст программы.

 

Одномерные массивы

 

В случае одномерного массива для нумерации элементов массива используется один индекс. Размерностьодномерного массива, т.е. число его элементов, по-другому называют длиной массива.


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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...



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

0.396 с.