Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 3 курс Pascal.doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
825.86 Кб
Скачать

3. Цикл с постусловием

Repeat

<опреаторы>;

Until <условие>

Оператор повторяет последовательность команд пока условие не станет истинным. Этот цикл всегда выполняется хотя бы 1 раз.

Пример. Найти сумму цифр введенного натурального числа.

Program primer;

var

a, n, s: integer;

begin

Write(‘n=’); Readln(n);

S:=0;

repeat

a:=n mod 10;

s:=s+a;

n:=n div 10;

until n=0;

writeln(‘s=’, s);

readln;

end.

Пример 6. Протабулировать (вывести на экран таблицу значений) функции y=2x+1 интервале [-3; 3] с шагом 0.5.

x= - 3 y=…

x= - 2.5 y=…

x=3 y=…

Program primer;

var

x, y: real;

begin

x:=0;

repeat

y:=sqrt(sqr(sin(x)+2));

writeln(‘x=’, x:6:2, ‘y=’, y:8:4);

x:=x+0.2;

until x>1;

readln;

end.

Пример 7. Вычислить сумму с заданной точностью E=0.0001.

Program primer;

Var S, e, slag: real;

k: integer;

begin

e:=0.0001; s:=0; k:=1;

slag:= k/sqr(k+1);

repeat

s:=s+slag;

k:=k+1;

slag:=k/sqr(k+1);

until slag<e;

write (‘s=’, s:6:2);

readln;

end.

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

Циклическая конструкция может содержать в теле цикла другой цикл. Такие конструкции называют вложенными циклами. Глубина вложения и тип циклов может быть различными.

Например, a) For . . . do – внешний цикл

While . . . do – внутренний цикл (в данном случае глубина = 2)

b) While . . . do

For . . . do

Repeat

. . .

Until (глубина =3)

Рассмотрим механизм работы вложенных циклов на примере:

For a:=1 to 2 do

For b:=1 to 3 do

Writeln(‘a=’, a, ‘ b=’, b);

a=1

a=1

a=1

b=1

b=2

b=3

выполняется внутренний цикл по b при a=1

a=2

a=2

a=2

b=1

b=2

b=3

выполняется внутренний цикл по b при a=2

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

Пример: вывести на экран таблицу Пифагора.

внутренний цикл

внешний цикл

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9



Program primer;

var

i, j: integer;

begin

for i:=1 to 9 do

begin

for j:= 1 to 9 do

write(i*j:4);

writeln;

end;

readln;

end.

Внутренний цикл формирует каждую строку таблицы. Writeln – перевод курсора на новую строку.

Пример. Вводятся k натуральных чисел. Найти сумму цифр каждого из них.

повторить

1. Ввести число N

2. Найти сумму его цифр

3. Вывести результат

Program primer;

var

n, s, a, i, k: integer;

begin

write (‘k=’); readln(k);

for i:=1 to k do

begin

Write(‘n=’); readln (n); s:=0;

Repeat

a:=n mod 10;

s:=s+a;

n:=n div 10;

until n=0;

writeln (‘s=’,s);

end;

readln;

end.

операторы:

Оператор

Назначение

Синтаксис

For

Цикл

с параметром

For <перем>:=<начальное знач> to <кон.знач> do <оператор>;

Значение переменной изменяется от начального значения к конечному с шагом 1.

For <перем>:=<нач. знач> downto <конеч. знач> do <оператор>;

Значение переменной изменяется от начального значения к конечному с шагом -1

While

Цикл

с предусловием

While <условие> do <оператор>;

Цикл выполняется, пока условие истинно.

Repeat

Until

Цикл

с постусловием

Repeat

<Операторы>;

Until <условие>;

Цикл выполняется, пока условие ложно.