Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





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

Операторы повторения (цикла) служат для организации повторения фрагментов алгоритмов. Имеется три вида таких операторов: оператор цикла с параметром, оператор цикла с предусловием и оператор цикла с постусловием.
Оператор цикла с параметром состоит из заголовка цикла и тела цикла. Тело является оператором, а заголовок имеет одну из двух форм:

for <параметр цикла> := < S1 > to < S2 > do
for < параметр цикла > := < S1 > downto < S2 > do

S1 и S2 в общем случае являются выражениями, вычисляемыми перед выполнением цикла. Заголовок обеспечивает повторное выполнение тела цикла, пока не будут перебраны все значения параметра цикла от начального (S7) до конечного (S2). Параметр цикла, выражения SI и S2 должны иметь один и тот же скалярный порядковый тип.

Перевычисление параметра для заголовка первого вида (to) делается функцией Succ (параметр цикла), а для заголовка второго вида (downto) - функцией Pred (параметр цикла). Отметим, что такие правила определения "шага" изменения параметра вполне естественны, так как параметр может иметь любой из порядковых типов, в том числе символьный и перечислимый.

В частности, использование параметра символьного типа позволяет писать программы эффективно и наглядно, о чем, например, свидетельствует фрагмент программы, выполняющий инициализацию счетчиков для подсчета числа вхождений заглавных латинских букв:

for s := 'A' to 'Z' do A[s] := 0

 

Возможность пересчета параметра цикла с заданным шагом (имеющаяся в других языках) реализуется очень просто — введением другой переменной, значение которой перевычисляется в цикле с помощью выражения, содержащего параметр, или указанием этой зависимости прямо в индексах (массивов или строк).

Например, для массива М[1..30] печать его элементов с четными номерами выполняется оператором:

for i := 1 to 15 do Write( M[2 * i] )

В теле цикла запрещено менять значение параметра цикла (изменение его никак не контролируется системой и, как правило, приводит к "зацикливанию"). После нормального завершения цикла значение его параметра равно конечному значению, а если цикл не выполнялся ни разу, то значение параметра не определено.

В качестве примера вложенных циклов приведем фрагмент программы - построение единичной матрицы:

for i := 1 to 5 do begin M[i, i] := 1;
for j := 1 to i - 1 do
begin M[i, j] := 0; M[j, i] := 0 end {for j}
end {for i};

 

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

Оператор цикла с предусловием состоит из заголовка цикла и тела цикла - оператора и имеет вид:

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

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

В качестве примера приведем фрагмент из функции поиска элемента в массиве:

m := 1; while ( m <= N ) and ( a[m] < > x ) do m := m + 1;

Этот пример, в частности, показывает, что условие повторения цикла нередко является более сложным, чем тело цикла.

 

Оператор цикла с постусловием

Оператор цикла с постусловием состоит из заголовка цикла (ключевого слова repeat), тела цикла, состоящего из последовательности операторов, и условия окончания. Оператор имеет вид:

repeat <Последовательность операторов> until <условие>;

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

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

Вычисление времени суток через заданное число секунд.

Программа демонстрирует использование оператора цикла с постусловием при вводе данных с контролем.

program d_6_8;
{ЗАДАЧА: Вычислить время, прибавив к заданному времени суток заданное число секунд.
ПРИЕМЫ:
- контроль правильности задания исходных данных,   
- использование функции Longint для выполнения longint-вычислений.
РЕКОМЕНДАЦИИ:
-дополнить программу заданием не только времени, но и даты}

 




 

Комментарии:

29.10.2016 ответил Исломбек Н

Всё ок




Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru