4.4. Оператор цикла с постусловием - repeat
Этот оператор аналогичен предыдущему оператору WHILE и отличается от него, во-первых, тем, что условие проверяется после выполнения очередной итерации (таким образом гарантируется хотя бы однократное выполнение цикла), а, во-вторых, тем, что критерием прекращения цикла является равенство выражения константе true. Если выражение равно false, то цикл повторяется.
Например:
REPEAT
PROC1(X, Y+ I) ;
I := I - 1 ;
UNTIL
I = 0;
Этот цикл будет выполняться до тех пор, пока I не будет = 0.
Примеры:
1). REPEAT
K := I MOD J ;
I := J ;
J := K;
UNTIL J = 0 ;
2). REPEAT
WRITE ( ‘ Введите целое число :’) ;
READLN (I) ;
PROCESS (I) ;
UNTIL (I < 0) AND (I > 9)
Вложенные циклы.
Циклы могут быть вложены один в другой. Иногда их называют сложными циклами. При использовании вложенных циклов необходимо составлять программу таким образом, чтобы внутренний цикл полностью укладывался в циклическую часть внешнего цикла. Внутренний цикл может в свою очередь содержать другой внутренний цикл и так далее.
Пример 1:
Вычислить значение переменной Y=2K+N при всех значениях переменных N=1,2,3 и K=2,4,6
Program D2 ;
Uses CRT ;
Var N, K, Y : integer ;
Begin
Clrscr ;
For N := 1 to 3 do
begin
K := 2 ;
while K <= 8 do
begin
Y := 2K+N ;
Writeln( N:4, K:4, Y:4 ) ;
K := K + 2 ;
end ;
end ;
readln
end .
Пример 2:
Программа вычисления n!
1-й вариант программы:
Program Fact1 ;
Uses CRT ;
Var n, i, p : integer ;
Begin
Read(n) ;
p:=1 ; i:=0 ;
While i < n do
Begin
i := i + 1 ;
p := p i ;
End ;
Write ( ‘n! = ’, p ) ;
Readln
End .
2-й вариант программы:
Program Fact2 ;
Uses CRT ;
Var n, p : integer ;
Begin
Read(n) ;
p:=1 ;
While n < 0 do
Begin
p := p i ;
n := n - 1 ;
End ;
Write ( ‘n! = ’, p ) ;
Readln
End .
5. Пример решения задачи.
Индивидуальное задание.
Вычислить :
а) Y=X10+ 2X9+3X8+ . . . +10X+11
б) Y=11X10+ 10X9+9X8+ . . . +2X+1
5.2. Описание работы.
5.2.1. Выберите алгоритм решения задачи.
5.2.2. Используя таблицы, приведенные в приложениях лабораторной работы 3, выберите стандартные функции, необходимые для решения задачи.
5.2.3. Выберите форму представления данных. Используйте следующие типы переменных: INTEGER, REAL, BOOLEAN, CHAR.
5.2.4. Для ввода данных используйте диалоговый режим. Результат решения задачи выведите на экран дисплея. При составлении текста программы используйте операторы цикла: FOR, WHILE, REPEAT, оператор ввода, оператор вывода. Введите текст программы.
5.2.5. Для этого необходимо войти в программу-оболочку TP7, как указано выше. Загрузить в редактор Турбо-Паскаль новый (NEW) файл. Для этого нажмите одновременно клавиши [ALT]+[F] , установите курсор на подменю «NEW» и нажмите клавишу [ENTER].
5.2.6. Сохраните набранный текст программы. Нажмите клавишу [F2]. На запрос системы укажите, где и с каким именем будет сохранена ваша программа. Например, C:\PROG.PAS, если программа сохраняется на жесткий диск или A:\PROG.PAS, если программа сохраняется на дискету.
5.2.7. После того, как программа набрана, откомпилируйте ее. Нажмите одновременно клавиши [ALT]+[F9]. Если в программе есть ошибки, то в левом верхнем углу появится сообщение об ошибке, а курсор укажет место ошибки. Если в программе ошибок нет, то появится сообщение об успешной компиляции.
5.2.8. После компиляции программу необходимо выполнить. Для этого нажмите одновременно клавиши [CTRL]+[F9]. Для просмотра результатов одновременно нажмите клавиши [ALT]+[F5].
5.2.9. Убедитесь в правильности решения задачи. Введите данные, для которых легко устно просчитать результат. Выполните программу и убедитесь в правильности полученного результата.
Выведите полученные результаты на печать.
