Процедуры и функции. Возможные ошибки: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) |
Mikst (обсуждение | вклад) мНет описания правки |
||
Строка 1: | Строка 1: | ||
__NOTOC__ | |||
=== Невозвращение значения функции по одной из ветвей алгоритма=== | === Невозвращение значения функции по одной из ветвей алгоритма=== | ||
<source lang="Delphi">function Bad(x: integer): integer; | <source lang="Delphi">function Bad(x: integer): integer; | ||
Строка 41: | Строка 42: | ||
== Ссылки == | == Ссылки == | ||
[[ | *[[Программы для начинающих]] | ||
*[http://pascalabc.net/ru/programmyi-i-algoritmyi-dlya-nachinayuschih.html Сайт PascalABC.NET: Программы и алгоритмы для начинающих] |
Текущая версия от 15:50, 19 января 2010
Невозвращение значения функции по одной из ветвей алгоритма
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.