Naeel Maqsudov » 24 июн 2004, 08:14
Код: Выделить всё
function reflect0(n,a:longint):longint;
begin
if n=0
then reflect0:=a
else reflect0:=reflect0(n div 10,a*10 + n mod 10);
end;
function reflect(X:longint):longint;
begin
reflect:=reflect0(X,0);
end;
begin
writeln(reflect(12345));
readln;
end.
Фунция reflect0 требует указания 0 в качестве второго аргумента, по этому, для повышения читебельности программ в таких случаях вводят еще одну функцию (в данном случае reflect), которая скрывает технологические аргументы функций, оставляя только те, смысл которых понятен.
[code]
function reflect0(n,a:longint):longint;
begin
if n=0
then reflect0:=a
else reflect0:=reflect0(n div 10,a*10 + n mod 10);
end;
function reflect(X:longint):longint;
begin
reflect:=reflect0(X,0);
end;
begin
writeln(reflect(12345));
readln;
end.
[/code]
Фунция reflect0 требует указания 0 в качестве второго аргумента, по этому, для повышения читебельности программ в таких случаях вводят еще одну функцию (в данном случае reflect), которая скрывает технологические аргументы функций, оставляя только те, смысл которых понятен.