Var a,b: integer; procendure proc(var a: integer; b: integer) begin b:=4; а:=6; b:=а+b; end; begin a:=2; b:=3; proc(a,b); writeln(a,' ',b);end.

Var a,b: integer; procendure proc(var a: integer; b: integer) begin b:=4; а:=6; b:=а+b; end; begin a:=2; b:=3; proc(a,b); writeln(a,' ',b);end.
Гость
Ответ(ы) на вопрос:
Гость
Прежде всего, код надо отформатировать и исправить имеющиеся в нем ошибки. А затем приступать к его рассмотрению. var   a, b: integer; procedure proc(var a: integer; b: integer); begin   b := 4; a := 6; b := a + b end; begin   a := 2; b := 3;   proc(a, b);   Writeln(a, ' ', b) end. Описаны две целочисленные переменные a и b. Им присваиваются значения 2 и 3 соответственно. Затем следует вызов процедуры proc, в которую эти переменные передаются в качестве параметров. На входе в proc получаем a=2, b=3. Далее b получает значение 4, а получает значение 6 и затем b получает значение суммы a+b, т.е. 4+6=10. На этом работа процедуры завершается. Поскольку параметр процедуры a имеет описатель var, то в основную программу вернется значение, которое a имело внутри процедуры (т.е. 6). Значение b=10 действует только внутри процедуры и в основную программу не вернется. Следовательно, в основной программа значение а поменяется на 6, а значение b сохранится прежним (3). В результате на выходе будет строка: 6 3
Не нашли ответ?
Ответить на вопрос
Похожие вопросы