Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kamchatgtu246.pdf
Скачиваний:
50
Добавлен:
23.02.2016
Размер:
1.2 Mб
Скачать

Пояснения к задаче 3

Как и в задаче 1, длина последовательности обозначена буквой N и должна быть положительной.

В логическое < Условие > ставим N > 0, и до тех пор, пока будет вводиться отрицательное или нулевое значение последовательности, цикл repeat будет работать и требовать: «Bведите длину последовательности N = ». Цикл выполняется до тех пор, пока пользователь будет вводить отрицательное число или ноль, и прервется при вводе положительного числа.

Нижняя граница оператора определена словом until, и нет надобности в операторных скобках Begin – End. Но если поставить операторные скобки, то это не будет ошибкой.

Задача 4

Вычислить значение функции Y = X2 при Х = 8; Х = 6; Х = 4; Х = 2. PROGRAM Lab5_4;

Uses Crt

Var X,Y: real; Begin

ClrScr;

X : = 8;

WriteLn('Табулирование функции'); WriteLn(' X Y '); WriteLn('---------- ');

Repeat

Y : = X * X;

WriteLn(X : 4 : 2, Y : 6 : 2); X : = X – 2;

Until X = 0;

ReadLn;

End.

Пояснения к задаче 4

Мы имеем дело с задачей, которая называется «Табулирование функции». У нас аргумент Х меняет свое значение от 8 до 2 с шагом – 2. Переменные X, Y объявляем как REAL. В переменную Y заносим вычисленное значение функции. Для организации цикла используем оператор цикла с постусловием repeat. До входа в цикл присваиваем начальное значение аргументу Х, равное 8. Затем печатаем шапку таблицы (три оператора WriteLn перед оператором Repeat). Шапка таблицы используется для оформления таблицы.

В теле цикла делаем вычисления по формуле, печать и изменение значений аргумента на шаг, который равен –2.

Окончание цикла осуществляется проверкой в операторе Until. Как только Х примет значение, равное нулю, цикл прервется и далее последует оператор ReadLn..

63

4. Оператор цикла с параметром (со счетчиком) FОR ... DO

Оператор цикла со счетчиком for подходит для программирования только таких циклических фрагментов, в которых до выполнения цикла известны начальное и конечное значения счетчика повторений цикла. Это обусловливает его менее широкую сферу применения, чем более универсальных операторов while и repeat. Однако в тех случаях, когда его использование возможно, оператор for благодаря своей высокой наглядности имеет несомненное преимущество перед операторами циклов с условиями.

Схематично цикл со счетчиком изображается Рис. 23. Цикл со счетчиком следующимобразом(рис. 23).

Упрощенно общую структуру оператора цикла for можно представить одним из следующих способов:

1. Если счетчик при выполнении цикла наращивает свое значение:

FOR I : = N1 ТО N2 DO

< тело цикла >;

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

N1 – начальное значение управляющей переменной цикла;

N2 – конечное значение управляющей переменной цикла. Шаг изменения управляющей переменной равен + 1.

Чтобы оператор выполнился хотя бы один раз, N1 (начальное значение счетчика) должно быть не больше, чем N2 (конечное значение счетчика).

2. Если счетчик при выполнении цикла уменьшает свое значение, то при программировании может быть использован другой оператор цикла:

FOR I : = N2 DOWNTO N1 DO < тело цикла >;

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

N2 – начальное значение управляющей переменной цикла;

N1 – конечное значение управляющей переменной цикла. Шаг изменения управляющей переменной равен –1.

Чтобы оператор выполнился хотя бы один раз, нужно, чтобы N2 (начальное значениесчетчика) былонеменьше, чемN1 (конечноезначение счетчика).

Цикл for выполняется заданное число раз. Чтобы прервать выполнение досрочно, необходимо увеличить I до конечного значения.

Заметим, что для оператора for, в отличие от while и repeat, установка начального значения счетчика циклов выполняется не перед заголовком цикла, а прямо в заголовке. Кроме того, после окончания тела цикла наращивание (уменьшение) значения счетчика происходит автоматически. Таким образом, специального оператора для увеличения значения счетчика I : = I + l не требуется. Более того, этот оператор приведет к неправильной работе цикла.

64

Вбольшинстве реализаций языка Pascal изменение значений переменных, используемых в заголовке цикла for, запрещено и приводит к выдаче сообщения об ошибке на этапе компиляции. В реализации Turbo Pascal этот запрет снят, однако такие действия в рамках цикла for приводят, как правило, к его непредсказуемому поведению и считаются плохим стилем программирования.

ВTurbo Pascal, так же как и во всех других реализациях языка Pascal, оператор for имеет два существенных ограничения:

– шаг изменения счетчика циклов может быть только или + 1 (если используется ключевое слово to), или – 1 (если используется ключевое слово downto);

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

Рассмотрим задачи с применением оператора цикла for.

Задача 5

Вычислить значения двух величин по формулам:

A = 2I и B = 2I + 1, где I меняется от 1 до 4 с шагом 1. Program Lab5_5

Var

I, B, A : Integer; Begin {1}

For I : = 1 Тo 4 Do Begin {2}

A : = 2 * I;

B : = 2 * I + 1; WriteLn (A : 3, B : 3); End; {2}

End. {1}

Пояснения к задаче 5

I – управляющая переменная циклом (по ее значению цикл начинается и завершается) принимает значения: I = 1, I = 2, I = 3, I = 4 (шаг = 1).

Выполняются операторы циклической части: значения А и B вычисляются по формуле и принимают следующие значения в процессе выполнения программы (табл. 12). Всего цикл проработает четыре раза. При I = 4 последний раз идет вычисление A, B и управление передается за пределы цикла.

 

 

 

 

Таблица 12

 

 

 

 

 

I – управляющая переменная

 

Проходы цикла

 

циклом; A, B – выражения

Первый

Второй

Третий

Четвертый

I

1

2

3

4

A : = 2 * I

2

4

6

8

B : = 2 * I + 1

3

5

7

9

65

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]