Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
77
Добавлен:
27.04.2015
Размер:
290.5 Кб
Скачать

2.5.2.4. Средства программирования регулярных циклических структур

 

Алгоритмы регулярной циклической структурыхарактеризуются заданным (известным) числом повторений: иногда это число за­дается явно, иногда его предварительно вычисляют. К таким ал­горитмам относятся: алгоритмы вычисления значений функций одной или нескольких переменных, у которых аргументы изменяются в известном диапазоне и с заданным шагом изме­нения; алгоритмы вычисления конечных сумм и произведений и многие дру­гие. Программирование такой алгоритмической структуры на языкеС++производится при помощи оператораfor..., имеющего следующий формат:

for ( выражение_1 ; выражение_2 ; выражение_3 ) тело_цикла

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

Выражение_2это выражение, определяющее условие, при котором тело цикла будет выполняться.

Выражение_3определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.

В качестве тела_цикламожет быть использован любой оператор, в том числе пустой или составной.

Любое из выражений, а также все сразу, могут быть опущены, при этом разделяющие их символы « ; » пропускать нельзя.

Схема выполнения оператора for:

  1. Вычисляется выражение_1.

  2. Вычисляется выражение_2.

  3. Если значения выражения_2отлично от нуля (истина), выполняется тело цикла, вычисляетсявыражение_3и осуществляется переход к пункту 2, есливыражение_2равно нулю (ложь), выполнение оператораforзавершается и управление передается на оператор, следующий за операторомfor.При отсутствиивыражения_2его значение равно истина.

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

Int main ( )

{

int i,b;

for ( i=1; i<10; i++) b=i*i;

return 0;

}

В этом примере вычисляются квадраты чисел от 1 до 9.

При организации вложенных циклов (цикл в цикле) используются пары операторов for… , которые не должны “пересекаться” друг с другом. Для преждевременного выхода из цикла по условию используется оператор break;.

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

for (i=0; i<100; i++)

for (j=0; j<100; j++)

{ :

if (a[i][j]<0) { break; break; }

:

}

при выполнении условия a[i][j]<0 завершится выполнение только внутреннего цикла по переменной j, а выполнение внешнего цикла по переменной i продолжится, несмотря на то, что оператор break повторен дважды.

По своей сути оператор break является оператором перехода и операторы, записанные после него, выполняться не будут, если только им не будет передано управление с помощью других операторов перехода.

Для выхода из обоих циклов можно использовать дополнительную переменную, которая будет принимать значение отличное от нуля только при необходимости выхода из внешнего цикла. Например,

for (i=0; i<100; i++)

{ for (br2=j=0; j<100; j++)

{ :

if ( a[i][j]<0 ) { br2=1; break;}

:

}

Соседние файлы в папке 2 Уровень повыше. Теоретика