Паскаль. Как переместить значение локальной переменной в глобальную?
В программе есть процедура, по окончанию которой получается значение Х, как потом это значение использовать в основной программе?
Несколько вариантов:
1) Описать переменную как глобальную:
var X : Double;
procedure Square(Y : Double);
begin
X := Y*Y;
end;
…
Square(2);
WriteLn(X); { будет выведено 4 }
2) Описать переменную в параметрах процедуры как изменяемую:
procedure Square(Y : Double; var X : Double);
begin
X := Y*Y;
end;
var Z : Double
…
Square(2, Z);
WriteLn(Z); { будет выведено 4 }
3) Воспользоваться функцией (самый лучший вариант) :
function Square(Y : Double) : Double;
begin
Square := Y*Y;
end;
…
WriteLn(Square(2)); { будет выведено 4 и без использования лишних переменных }
Раз вторая переменная глобальная, то вы можете прямо в процедуре присвоить этой глобальной переменной значение.
Но почему бы не написать функцию, которая вернёт значение Х?
описАть переменную (что-бы она стала глобальной) до процедуры, и присвоить ей значение в процедуре, после завершения процедуры использовать это значение.. .
Ну или по завершению процедуры, но еще внутри процедуры, перенести значение из локальной переменной в глобальную...