Delphi. Pascal
Урок 15. Пример передачи по ссылке
Вот пример на передачю параметров по ссылке. Пример решает квадратное уравнение. Так как у такого уравнения может быть 2 корня, то функция не возвращает их, а передает в двух своих последних параметрах. В качестве же возвращаемого значения функция возвращает число корней (т. е. 0, 1 или 2).
...
//Объявление функции.
function sq(A, B, C: Single; var X1, X2: Single): Integer;
var
//Дискриминант.
d: Single;
begin
d:=B*B-4*A*C;
//Два корня.
if d>0 then
begin
sq:=2;
X1:=(-B-sqrt(d))/(2*A);
X2:=(-B+sqrt(d))/(2*A);
end;
//Один корень.
if d=0 then
begin
sq:=1;
X1:=(-B)/(2*A);
X2:=(-B)/(2*A);
end;
//Корней нет.
if d<0 then
begin
sq:=0;
end
end;
var
x1, x2: Single;
n: Integer;
begin
//Вызываем функцию.
n:=sq(1, -3, 2, x1, x2);
if n>2 then
begin
//Выведется 1.
Writeln(x1);
//Выведется 2.
Writeln(x2);
end;
Readln;
end.