Процедуры и функции. Возможные ошибки
Материал из Вики проекта 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.