Объявление функции
function ИмяФ-ции(var Параметр1: Тип 1; var ПараметрJ: TиnJ ) : Тип;
const
{ описание констант }
var
{ описание переменных }
begin
{ инструкции функции }
Result:=Значение;
end;
Примечание
Слово var ставится перед именем параметра в том случае, если параметр используется для возврата значения из функции в вызвавшую ее программу.
Пример
function Max(A: array of Real; N: Integer): Real;
var
X: Real;
I: Integer;
begin
X := A[0];
for I := 1 to N - 1 do
if X < A[I] then X := A[I];
Max := X;
end;
Инструкции выбора Инструкция if
Вариант 1:
if Условие then begin
{ Инструкции, которые выполняются, ) { если условие истинно. }
end else begin
{ Инструкции, которые выполняются, } { если условие ложно }
end ;
Вариант 2. if-then.
if Условие then begin
{ Инструкции, которые выполняются, } { если условие истинно. }
end;
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Примеры
if J = 0 then Exit
else Result := I/J;
if J <> 0 then begin
Result := I/J;
Count := Count + 1;
end else begin
Done := True
end;
Инструкция for
Вариант 1 (с увеличением счетчика):
for Счетчик:=НачальноеЗначение to КонечноеЗначение do begin
{ здесь инструкции }
end;
Инструкции между begin и end выполняется (КонечноеЗначение - НачальноеЗначение) + 1 раз.
ЕСЛИ НачальноеЗначение > КонечноеЗначение, ТО инструкции между begin И end не выполняются.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
Вариант 2 (с уменьшением счетчика)'.
for Счетчик:=НачальноеЗначение downto КонечноеЗначение do begin
{ здесь инструкции } end;
Инструкции между begin и end выполняется (НачальноеЗначение - КонечноеЗначение) + 1 раз.
Если НачальноеЗначение < КонечноеЗначение, то инструкции между begin и end не выполняются.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
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;
Инструкция while
while Условие do begin
{ инструкции )
end;
Сначала проверяется Условие, если оно истинно, то выполняются инструкции между begin и end. Затем снова проверяется Условие. Если оно выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока Условие не станет ложным.
Примечание
Если между begin и end находится только одна инструкция, то слова begin и end можно не писать.
while I > 0 do begin
if Odd(I) then Z := Z * X;
I := I div 2;
X := Sqr(X);
end;
while not Eof(InputFile) do begin
Readln(InputFile, Line);
Process(Line);
end;
Инструкция repeat
repeat
{ инструкции }
until Условие;
Сначала выполняются инструкции цикла, которые расположены между repeat и until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения Условие не станет равным True.
repeat
K := I mod J;
I := J;
J := K;
until (J = 0);
repeat
Write('Enter a value (0..9): ');
Readln(I);
until (I >= 0) and (I <= 9);
