Материал: Алгоритмический язык Turbo Pascal 7.0. Юршин Е.Д., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

(выполняются нижерасположенные после цикла операторы).

Работу данного оператора можно проиллюстрировать структурной схемой:

.

.

.

Установка

условия

не выполняется

Условие

выполняется

Оператор

продолжение программы

Рис. 4.2.3. структурная схема работы оператора цикла

Рассмотрим конкретный пример.

Пусть требуется составить программу для вычисления элементарного ряда:

S

1

1

1

1

...

1

 

 

 

 

 

 

 

 

n2

12

22

32

n2

n 1

 

с заданной погрешностью:

1*10 4 12 n

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

Вариант программы: Program_win; Var

S, eps: real; n:integer;

Begin

read (eps); S:=0; n:=1;

While_1/sqr (n)>eps_do Begin

S:=S+1/sqr (n); n:=n+1;

End;

Write (´S=´, S, ´n=´, n);

End.

ОПЕРАТОР ЦИКЛА REPEAT-UNTIL

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

В общем виде данный оператор можно представить:

Repeat

Оператор 1; Оператор 2;

.

. тело (поле) цикла

.

Оператор n;

Until (условие)

Здесь repeat – повторять;

until – до тех пор (пока выполнится условие после слова until)

Компьютер выполняет операторы 1, 2, …, n в цикле до тех пор пока выполнится условие (неравенство) после служебного слова until.

Отличие данного оператора от WHILE – DO заключается в том, что здесь можно использовать несколько операторов (1,2,…,n) в отличие от предыдущего, где требовалось использовать BEGIN – END. Кроме того, отличие заключается ещѐ и в том, что здесь условие проверяется после выполнения каждого цикла (в предыдущем операторе – условие проверялось ещѐ до того, как произвести (выполнить оператор) первый или очередной цикл.

Таким образом, одну и туже задачу возможно решить, как с помощью предыдущего оператора, так и с помощью данного.

В тоже время, следует отметить, что предыдущий оператор while-do используется чаще, чем repeat-until. Это связано с тем, что во многих практических случаях желательно осуществить проверку условия на окончание цикла до его выполнения и иметь

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

Работу данного оператора можно проиллюстрировать на следующей структурной схеме:

.

.

.

Оператор

нет Условие

Продолжение да программы после

Рис. 4.2.4. Структурная схема работы оператора цикла.

Рассмотрим конкретный пример:

Составить программу (с помощью данного оператора) для вычисления предыдущего примера:

S

1

1

1

...

 

 

 

 

 

n2

12

22

n 1

 

n

с заданной точностью

1

1 10

4

 

n2

 

 

 

Вариант программы следующий.

Program_sum; Var

S, eps: real; n: integer;

Begin

read (eps); S:=0; n:=1;

Repeat

S:=S+1/sqr (n); n:=n+1;

Until 1/sqr (n) <=eps;

Write (´S=´, S, ´n=´, n);

End.

4.2.4. ПРОЦЕДУРЫ И ФУНКЦИИ

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

В алгоритмах такого рода в различных местах встречаются фрагменты, одинаковые по выполняемым действиям и различающиеся только в числовых исходных данных.

При составлении программы по такому алгоритму приходится писать одну и туже группу операторов по несколько раз.

Источник: https://studfile.net/preview/16565609/