Оператор цикла со счетчиком( с параметром ) (for). — КиберПедия 

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Оператор цикла со счетчиком( с параметром ) (for).

2019-08-03 413
Оператор цикла со счетчиком( с параметром ) (for). 0.00 из 5.00 0 оценок
Заказать работу

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

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

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

 

  FOR переменная := начальноеЗначениеСчетчика

  TO КонечноеЗначениеСчетчика DO Оператор

 

Чтобы оператор выполнился хотя бы один раз НачальноеЗначениеСчетчика должно быть не больше, чем КонечноеЗначениеСчетчика.

 

2) Если счетчик при выполнении цикла уменьшает свое значение:

  

  FOR переменная := начальноеЗначениеСчетчика

  DOWNTO КонечноеЗначениеСчетчика DO Оператор

Чтобы оператор выполнился хотя бы один раз НачальноеЗначениеСчетчика должно быть не меньше, чем КонечноеЗначениеСчетчика.

Заметим, что для оператора FOR, в отличие от WHILE и REPEAT, установка начального значения счетчика циклов выполняется не перед заголовком, а прямо в заголовке записью переменная:= начальноеЗначениеСчетчика. Кроме того, после окончания тела цикла наращивание или уменьшение значения счетчика происходит автоматически. Таким образом, специальный оператор для увеличения или уменьшения значения счетчика не требуется, более того, такой оператор приведет к неправильной работе цикла.

    В качестве управляющей переменной должен использоваться идентификатор переменой (без какого-либо квалификатора), который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. Управляющая переменная должна иметь перечислимый тип. Начальное и конечное значения должны иметь тип, совместимый по присваиванию с перечислимым типом.

Когда начинает выполняться оператор for, начальное и конечное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for.

Оператор, который содержится в теле оператора for, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением. Управляющая переменная всегда инициализируется начальным значением. Когда работает оператор for, значение управляющей переменной увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле оператора for оператор не выполнятся. Когда в операторе цикла используется ключевое слово downto, значение управляющей переменной уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполнятся.

Если оператор, содержащийся в теле оператора for, изменяет значение управляющей переменной, то это является ошибкой. После выполнения оператора for значение управляющей переменной становится неопределенным, если только выполнение оператора for не было прервано с помощью оператора перехода.

  Приведем примеры оператора цикла с параметром:

1) for I:= 2 to 63 do

if Data > Max then Max:=Data

2) for I:= 1 to 10 do

 

for J:= 1 to 10 do begin X:= 0;

                              for K:= 1 to 10 do X:= X + Mat1[I,K]*Mat2[K, J];

                               Mat[I,J]:= X;

                               end;

3) for C:= red to blue do Check(C);

Решить задачу1 с применением цикла с параметрами нельзя, так как приращение значения х=0.2, а не 1. Хотя, если подсчитать сколько раз вычисляется функция можно постараться и применить цикл с параметрами, но это не лучший вариант решения задачи.

К решению следующей задачи так и просится применение этого цикла.

Задача2. Найти произведение и сумму всех четных чисел из интервала [-100,300].

Var x, Summa, Proizvedenie: integer;

begin summa:=0;       Proizvedenie:=1;

for x:=-100 to 300 do  begin {от -100 до 300 выполняем}

                                     if x mod 2=0 then begin summa:=summa+x;

   {если число четное то находим сумму и произведение}

                                         Proizvedenie:= Proizvedenie *x;

                                         end; 

        end; writeln(‘summa=’, summa,’ Proizvedenie=’, Proizvedenie);

end.

   Если число повторений заранее известно, то подходящей конструкций является оператор for. В противном случае следует использовать операторы while или repeat.


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.