Когда вы пишете функцию, нужно
-----------------------------------------------------------------
Когда вы пишете функцию, нужно убедиться, что перед тем, как
функция возвращает управление, ее имени присваивается некоторое
значение. Рассмотрим следующий пример кода:
const
NLMax = 100;
type
NumList = array[1...NLMax] of integer;
...
function FindMax(List : Numlist; Count : integer) : integer;
var
I,MAX : integer;
begin
Max := List[1];
for I := 2 to Count do
if List[I] > Max then
begin
Max := List[I];
FindMax := Max
end
end; { FindMax }
TDeb 3.0 #2-3 = 136 =
Эта функция будет прекрасно работать, если максимальным зна-
чением в List не является List[1]. В этом случае никогда не будет
присвоено значение. Правильный вариант функции должен выглядеть
следующим образом:
begin
Max := List[1];
for I := 2 to Count do
if List[I] > Max then
Max := List[I];
FindMax := Max
end; { FindMax }
Уменьшение значения переменных размером в байт или слово
-----------------------------------------------------------------
Будьте внимательны и не уменьшайте беззнаковое скалярное
значение (размером в слово или байт) при проверке на >= 0. Следу-
ющий фрагмент программы образует бесконечный цикл:
var
w : word;
begin
w:= 5;
while w >= 0 do
w := w - 1;
end.
После пятой итерации w равно 0. При следующем проходе оно