Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab5(30).doc
Скачиваний:
4
Добавлен:
17.11.2019
Размер:
78.85 Кб
Скачать

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. Вложенные циклы.

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

Пример 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 := 2K+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. Пример решения задачи.

  1. Индивидуальное задание.

Вычислить :

а) 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. Убедитесь в правильности решения задачи. Введите данные, для которых легко устно просчитать результат. Выполните программу и убедитесь в правильности полученного результата.

  1. Выведите полученные результаты на печать.