Процедуры и функции. Возможные ошибки
Материал из Вики проекта PascalABC.NET
Невозвращение значения функции по одной из ветвей алгоритма
function Bad(x: integer): integer; begin if x>0 then Result := 777 // При x<=0 значение функции непредсказуемо end; begin writeln(Bad(-2)); end.
Описание переменной цикла, используемого в процедуре, как глобальной
var i: integer; procedure Bad; begin for i := 1 to 10 do // Переменная-параметр цикла for должна описываться подпрограмме, где используется цикл write(i); end; begin for i := 1 to 10 do Bad; end.
Передача выходных параметров по значению
procedure BadInc(i: integer); begin i := i + 1; end; var i: integer; begin i := 5; writeln(i); BadInc(i); // меняется копия переменной i, а не сама переменная i. Нееобходимо использовать var-параметр writeln(i); end.
