Top.Mail.Ru
Ответы

Паскаль. Как переместить значение локальной переменной в глобальную?

В программе есть процедура, по окончанию которой получается значение Х, как потом это значение использовать в основной программе?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
11лет

Несколько вариантов:

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 и без использования лишних переменных }

Аватар пользователя
Знаток
11лет

Раз вторая переменная глобальная, то вы можете прямо в процедуре присвоить этой глобальной переменной значение.
Но почему бы не написать функцию, которая вернёт значение Х?

Аватар пользователя
Мастер
11лет

описАть переменную (что-бы она стала глобальной) до процедуры, и присвоить ей значение в процедуре, после завершения процедуры использовать это значение.. .
Ну или по завершению процедуры, но еще внутри процедуры, перенести значение из локальной переменной в глобальную...