![]() |
![]() |
||
![]() Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Оператор цикла с параметром Операторы повторения (цикла) служат для организации повторения фрагментов алгоритмов. Имеется три вида таких операторов: оператор цикла с параметром, оператор цикла с предусловием и оператор цикла с постусловием.
S1 и S2 в общем случае являются выражениями, вычисляемыми перед выполнением цикла. Заголовок обеспечивает повторное выполнение тела цикла, пока не будут перебраны все значения параметра цикла от начального (S7) до конечного (S2). Параметр цикла, выражения SI и S2 должны иметь один и тот же скалярный порядковый тип. Перевычисление параметра для заголовка первого вида (to) делается функцией Succ (параметр цикла), а для заголовка второго вида (downto) - функцией Pred (параметр цикла). Отметим, что такие правила определения "шага" изменения параметра вполне естественны, так как параметр может иметь любой из порядковых типов, в том числе символьный и перечислимый. В частности, использование параметра символьного типа позволяет писать программы эффективно и наглядно, о чем, например, свидетельствует фрагмент программы, выполняющий инициализацию счетчиков для подсчета числа вхождений заглавных латинских букв:
Возможность пересчета параметра цикла с заданным шагом (имеющаяся в других языках) реализуется очень просто — введением другой переменной, значение которой перевычисляется в цикле с помощью выражения, содержащего параметр, или указанием этой зависимости прямо в индексах (массивов или строк). Например, для массива М[1..30] печать его элементов с четными номерами выполняется оператором:
В теле цикла запрещено менять значение параметра цикла (изменение его никак не контролируется системой и, как правило, приводит к "зацикливанию"). После нормального завершения цикла значение его параметра равно конечному значению, а если цикл не выполнялся ни разу, то значение параметра не определено. В качестве примера вложенных циклов приведем фрагмент программы - построение единичной матрицы:
Оператор цикла с предусловием Оператор цикла с предусловием состоит из заголовка цикла и тела цикла - оператора и имеет вид:
Заголовок обеспечивает выполнение тела цикла каждый раз, когда истинно условие, задаваемое логическим выражением. Последнее перевычисляется при каждом повторении цикла и зависит, как правило, от переменных, перевычисляемых в цикле. В качестве примера приведем фрагмент из функции поиска элемента в массиве:
Этот пример, в частности, показывает, что условие повторения цикла нередко является более сложным, чем тело цикла.
Оператор цикла с постусловием Оператор цикла с постусловием состоит из заголовка цикла (ключевого слова repeat), тела цикла, состоящего из последовательности операторов, и условия окончания. Оператор имеет вид:
Условие является логическим выражением. Поскольку проверка условия повторения цикла стоит в конце, то обеспечивается выполнение тела цикла по крайней мере один раз. Цикл выполняется до тех пор, пока не станет истинным условие, которое перевычисляется при каждом повторении цикла. Цикл с постусловием удобно, например, использовать для организации повторного ввода данного до тех пор, пока оно не будет задано верно. Вычисление времени суток через заданное число секунд. Программа демонстрирует использование оператора цикла с постусловием при вводе данных с контролем. program d_6_8;
|
||
Библиотека программиста. 2009. |
|