- •Язык Турбо-Паскаль. Общие сведения о языке
- •Структура блока описаний
- •Типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Символьный тип
- •Функции преобразования типов
- •Приоритеты операций
- •Выполняемые операторы языка (для программ линейной структуры)
- •Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Оператор прекращения (прерывания) цикла.
- •Понятие составного оператора, операторные скобки
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных
- •Классификация составных типов
- •Массивы Основные определения
- •Сортировки массива
- •Алгоритмы основных методов сортировок
Оператор арифметического цикла
Оператор состоит из заголовка и тела цикла. Заголовок имеет вид:
for <имя параметра цикла> := <начальное значение> to <конечное значение> do
или
for <имя параметра цикла> := <начальное значение> downto <конечное значение> do
Далее идет тело цикла: простой или составной оператор (до символа ";"). Если оператор составной оператор представляет собой группу операторов, он заключается в операторные скобки begin ... end;
В качестве параметра цикла можно использовать любую целочисленную переменную, в которой в это время не хранится нужное в дальнейшем значение. Эта переменная изменяется в цикле автоматически. Параметр цикла – это переменная, обычно играющая роль не только счетчика количества выполненных повторений цикла, но одновременно служащая порядковым номером обрабатываемого числа или элемента массива.
Начальное и конечное значения параметра цикла могут быть выражениями, но они вычисляются только один раз – при первом входе в цикл. В теле цикла они не должны меняться. При каждом возврате к заголовку в цикле, счетчик автоматически увеличивается на единицу.
Тело цикла выполняется, пока счетчик не станет больше конечного значения (если счетчик равен конечному значению – цикл выполняется). Если требуется организовать цикл, в котором параметр уменьшается на единицу с каждым возвратом, то используют ключевое слово "downto", вместо "to".
Арифметическому оператору соответствует структура, изображенная на рисунке
Рисунок 9. Структура
оператора арифметического цикла
Примеры написания оператора:
for i:=1 to 25 do write('*'); {вывод строки из 25 *}
for k:=L+1 to N-1 do { значения L и N должны }
begin { быть определены до цикла }
. . .
end;
for i:=N downto 2 do S:=S+i; {Сумма целых чисел 2..N}
Если нужно менять счетчик с другим шагом (не единица), используют второй счетчик, изменяющийся в теле цикла по рекуррентной формуле, например j:=j+3; или вычисляемый через первый счетчик, например: j:= 2+(i-1)*3;
Внутри тела цикла можно использовать операторы продолжения (continue) и операторы прерывания (break) цикла. Например, операторы, вычисляющие произведение N чисел с пропуском отрицательных, и досрочно прекращающих перемножение при вводе нуля, могут выглядеть так:
P := 1;
for i:=1 to N do
begin
WriteLn(‘Введите сомножитель’);
ReadLn (A);
if A=0 then break;
if A<0 then continue;
P := P * A;
end;
. . .
Операторы итеративных циклов
Итеративные циклы – это циклы с заранее не известным количеством шагов. Для завершения, они требуют проверки такого условия, результат которого может измениться в процессе выполнения тела цикла. По выполнении этого условия, осуществляется переход на оператор, следующий за телом цикла.
Могут быть только два варианта условий окончания цикла – по исходным данным (если они вводятся в теле цикла), или по достижении заданных результатов расчета. Иными словами, признаком конца может выступать появление определенного значения, заранее принятого в качестве обозначения конца данных; или достижение такого результата расчета, значение которого удовлетворяет заданному отношению (сравнению) к определенной константе.
Организация итеративного цикла может быть выполнена одним из трех способов:
- используя операторы условного (и безусловного) перехода;
- используя оператор итеративного цикла с предусловием;
- используя оператор итеративного цикла с постусловием.