TURBO PASCAL |
Новости
|
Операторы цикла с параметром (for)Операторы цикла с параметром (которые начинаются со слова for) вызывает повторяющееся выполнение оператора (который может быть составным оператором) пока управляющей переменной присваива- ется возрастающая последовательность значений. ┌───┐ ┌───────────┐ ┌──┐ ┌────────┐ оператор ───>│for├──>│управляющая├──>│:=├──>│исходное├───┐ for └───┘ │переменная │ └──┘ │значение│ │ └───────────┘ └────────┘ │ ┌────────────────────────────────────────────────┘ │ ┌──┐ │ ┌─>│to├─────┐ ┌────────┐ ┌──┐ ┌────────┐ └───┤ └──┘ ├──>│конечное├──>│do├──>│оператор├───> │ ┌──────┐ │ │значение│ └──┘ └────────┘ └─>│downto├─┘ └────────┘ └──────┘ ┌────────────────────────┐ управляющая переменная ───>│идентификатор переменной├───> └────────────────────────┘ ┌─────────┐ исходное значение ────>│выражение├───> └─────────┘ ┌─────────┐ конечное значение ────>│выражение├───> └─────────┘ В качестве управляющей переменной должен использоваться идентификатор переменой (без какого-либо квалификатора), который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. Управляющая переменная должна иметь пе- речислимый тип. Начальное и конечное значения должны иметь тип, совместимый по присваиванию с перечислимым типом. Примечание: О локальности и области действия рассказы- вается в Главе 8. Когда начинает выполняться оператор for, начальное и конеч- ное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for. Оператор, который содержится в теле оператора for, выполня- ется один раз для каждого значения в диапазоне между начальным и конечным значением. Управляющая переменная всегда инициализирует- ся начальным значением. Когда работает оператор for, значение уп- равляющей переменной (счетчика циклов) увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле оператора for оператор не выпол- нятся. Когда в операторе цикла используется ключевое слово downto, значение управляющей переменной уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполнятся. Если оператор, содержащийся в теле оператора for, изменяет значение управляющей переменной, то это является ошибкой. После выполнения оператора for значение управляющей переменной стано- вится неопределенным, если только выполнение оператора for не бы- ло прервано с помощью оператора перехода. Если принять во внимание эти ограничения, то оператор for V := Expr1 to Expr2 do Body; эквивалентен оператору: begin Temp1 := Expr1; Temp2 := Expr2; if Temp1 <= Temp2 then begin V := Temp1; Body; while V <> Temp2 do begin V := Succ(V); Body; end; end; end; и оператор цикла: for V := Expr1 downto Exp2 do Body; эквивалентен операторам: begin Temp1 := Expr1; Temp2 := Expr2; if Temp1 >= Temp2 then begin V := Temp1; Body; while V <> Temp2 o begin V := Pred(V); Body; end; end; end; где Temp1 и Temp2 - вспомогательные переменные, тип которых сов- падает с основным типом переменной V и которые не встречаются в другом месте программы. Приведем примеры оператора цикла с параметром: for I := 2 to 63 do if Data[I] > Max then Max := Data[I] 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; for C := red to blue do Check(C); |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |