Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_dlya_studentov_2_matematika.doc
Скачиваний:
56
Добавлен:
25.11.2018
Размер:
2.93 Mб
Скачать

Практическое занятие № 5. Программирование. Циклы

1. Цель занятия

Цель занятия – знать операторы цикла. Уметь записать алгоритм цикла в виде программы Turbo Pascal, ввести в компьютер и запустить программу, получить результат.

2. Теоретический материал для практического занятия № 5

2.1. Оператор цикла с параметрами

Счетный оператор цикла FOR имеет структуру:

а) FOR i:=a TO b DO <оператор>;

Здесь FOR, TO, DO – зарезервированные слова (для, до, выполнить);

i – переменная цикла типа INTEGER;

a – начальное значение переменной цикла (тип INTEGER);

b – конечное значение переменной цикла (тип INTEGER);

<оператор> – произвольный оператор Турбо Паскаля.

Шаг изменения параметра цикла равен единице.

Алгоритм выполнения оператора цикла с параметрами при выполнении оператора FOR:

  1. вначале осуществляется присваивание i:=a;

  2. проверяется условие i > b; если это условие выполняется, то следует выход из цикла, иначе на пункт 3;

  3. выполняется тело цикла;

  4. счётчик увеличивается на единицу: i:=i + 1;

  5. переход на 2;

  6. при выполнении условия i > b цикл заканчивается.

Пример 1.

Найти сумму значений переменной цикла. Фрагмент программы с оператором цикла запишется в виде:

For i: =1 to 10 do s:=s+i;

Writeln(‘s=’, s);

В примере 1 рассматривается простой оператор цикла.

Счётный оператор цикл FOR может иметь такую структуру:

б) FOR i:= b DOWNTO a DO <оператор>;

Замена зарезервированного слова TO на DOWNTO означает, что шаг изменения переменной цикла равен (-1).

Пример 2.

Найти сумму значений переменной цикла.

Фрагмент программы с оператором цикла запишется в виде:

For i: =10 to 1 downto s:=s+i;

Writeln(‘s=’,s:8:3);

{Результат получится тот же, что и в примере 1}.

При работе с оператором FOR следует соблюдать ряд правил.

Правила оператора FOR.

  1. Нельзя войти в цикл, минуя оператор FOR.

  2. Нельзя изменять параметры цикла (a,b) внутри цикла.

  3. Параметры цикла и переменная цикла должны быть целыми.

  4. Шаг цикла может быть единица или минус единица.

  5. Естественное окончание цикла осуществляется при условии i > b.

  6. Из цикла можно выйти до естественного окончания цикла по условию.

2.2. Оператор цикла while с предусловием

Структура оператора имеет вид:

WHILE <условие> DO <оператор>;

Здесь WHILE, DO – зарезервированные слова:

WHILE –пока; DO – выполнить,

<условие> – выражение логического типа;

<оператор> – произвольный оператор Турбо Паскаля.

Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу.

Пример 3.

Переписать фрагмент примера 1, используя оператор цикла с предусловием.

Фрагмент программы с оператором цикла запишется в виде:

s:=0; i:=1;

while i<=10 do

Begin

s:=s+i;

i:=i+1;

End;

Writeln(‘s=’,s);

В примере 3 рассматривается составной оператор цикла, тело цикла заключено в операторные скобки. Оператор цикла начинается со строки while i<=10 do, которая читается «пока выполняется условие i<=10 делать …». После чего начинается словом Begin выполнение операторов внутри цикла до слова End;

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

Структура оператора имеет вид:

REPEAT <тело_цикла> UNTIL <условие>;

Здесь REPEAT, UNTIL – зарезервированные слова (REPEAT –повторять, UNTIL не переводится , <условие> -условие выхода из цикла);

<тело_цикла> – произвольная последовательность операторов Турбо Паскаля; <условие> – выражение логического типа.

Операторы, входящие в <тело_цикла>, выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу.

Пример 4.

Выполнить задание примера 3.

Фрагмент программы с оператором цикла запишется в виде:

s:=0; i:=1;

repeat

s:=s+i;

i:=i+1;

Until i>10;

Writeln(‘s=’,s); В примере 4 цикл выполняется пока переменная i  10, при i>10 цикл закончится.