ign="justify"> Оператор циклу з Передумови (что почінається з ключовими словами while) містіть в Собі вирази, Який управляє повторно Виконання оператора (Який может буті ськладової оператором).
вирази, с помощью которого здійснюється управління повторенням оператора, винен мати булевий тип. Обчислення его проводитися до того, як Внутрішній оператор буде Виконання. Внутрішні оператори віконуються повторно до тихий пір, поки вирази пріймає значення Тruе. Если вирази з самого качана пріймає значення False, то оператор, что містіться усередіні оператора циклу з Передумови, що не віконується.
приклада Операторів циклу з Передумови могут служити следующие оператори:
Data [I] lt; gt; X do I:=I + 1;
I gt; 0 doOdd (I) then Z:=Z * X;:=I div 2;:=Sqr (X) ;;
not Eof (InFile) do (InFile, Line); (Line) ;;
. 9.3 Оператор циклу з параметром (for)
Оператор циклу з параметром (Які почінаються Із слова for) віклікає виконан оператора, что повторюється (Який может буті ськладової оператором) поки управляючої змінної прісвоюється ЗРОСТАЮЧИЙ послідовність значень.
Як управляюча змінна винен використовуват Ідентифікатор зміною (без которого-небудь кваліфікатора), Який позначає змінну, Оголошення локальній в блоці, в якому містіться оператор for. Управляюча змінна винна мати перелічувальній тип. Початкове и кінцеве значення повінні мати тип сумісний по прівласненню з перелічувальнім типом.
Колі начинает Виконувати оператор for, Початкове и кінцеве значення визначаються один раз, и ЦІ значення зберігаються на протязі Всього виконан оператора for.
Оператор, Який містіться в тілі оператора for, віконується один раз для шкірного значення в діапазоні между початково и кінцевім значенням. Управляюча змінна всегда ініціалізувалася початково значенням. Колі працює оператор for, значення управляючої змінній (лічильника ціклів) збільшується при шкірному повторенні на одиницю. Если Початкове значення перевіщує кінцеве значення, то що містіться в тілі оператора for оператор не віконаються. Колі в операторі циклу вікорістовується ключовими словами downto, значення управляючої змінної зменшується при шкірному повторенні на одиницю. Если Початкове значення в такому операторі менше чем кінцеве значення, то що містіться в тілі оператора циклу оператор не віконаються.
Если оператор, что містіться в тілі оператора for, змінює значення управляючої змінної, то це є ошибку. После виконан оператора for значення управляючої змінної стає невизначенності, если только виконан оператора for НЕ Було перерване помощью оператора переходу.
Если взяти до уваги ЦІ обмеження, то оператор
V:=Expr1 to Expr2 do Body;
еквівалентній оператору:
:=Expr1;:=Expr2; Temp1 lt;=Temp2 then:=Temp1 ;; V lt; gt; Temp2 do:=Succ (V) ;;;;;
и оператор циклу:
V:=Expr1 downto Exp2 do Body;
еквівалентній операторам ::=Expr1;:=Expr2; Temp1 gt;=Temp2 then:=Temp1 ;; V lt; gt; Temp2 про:=Pred (V) ;;;;;
де Temp1 и Temp2 - Допоміжні змінні, тип якіх збігається з основним типом змінної V и Які НЕ зустрічаються в ІНШОМУ місці програми.
Наведемо приклад оператора циклу з параметром:
I:=2 to 63 doData [I] gt; Max then Max:=Data [I]
I:=1 to 10 doJ:=1 to 10 do:=0; До:=1 to 10 do:=X + Mat1 [I, K] * Mat2 [K, J]; [I, J]:=X ;; З:=red to blue do Check (C);
. 10 Оператор with
У операціях над записом оператор with Зручне використовуват для короткого Звернення до полів запису. У операторі with до полів однієї або більш конкретних змінніх типом запису можна Звертатися, вікорістовуючі только ідентіфікаторі полів.
Візьмемо Наступний описание:
=record: Integer :: Integer ;: Integer:;
OrderDate: TDate;
З урахуванням даного Опису наведемо приклад оператора with:
OrderDate doMonth=12 then:=1;:=Year + 1else:=Month + 1;
Це еквівалентно Наступний: OrderDate.Month=12 then.Month:=1; .Year:=TDate.Year + 1.month:=TDate.Month + 1;
У операторі with спочатку проводитися перевірка шкірного посилання на агентство змінну, а самє: чі можна ее інтерпретуваті, як поле записів. Если це так, то вона всегда інтерпретується самє таким чином, даже если є доступ до змінної з тім же ім'ям.
Припустимо описати следующие т...