Что выведет следующая программа? Объясните результат. program test; var a,b: integer; procedure p (Var x:integer; y:integer); begin x:=x+1; y:=x+y; end; begin a:=1;b:=2; p(a,b); writeln(a,’ ‘,b); p(a,b); writeln(a,’ ...

Что выведет следующая программа? Объясните результат. program test; var a,b: integer; procedure p (Var x:integer; y:integer); begin x:=x+1; y:=x+y; end; begin a:=1;b:=2; p(a,b); writeln(a,’ ‘,b); p(a,b); writeln(a,’ ‘,b); readln; end. ⦁1 2 1 2 ⦁2 4 3 7 ⦁1 4 1 6 ⦁2 2 3 2 ⦁Нет правильного ответа
Гость
Ответ(ы) на вопрос:
Гость
выведет ⦁2 2 3 2  сначала переменная а=1 и b =2 вызов процедуры p(a,b) к а добавит 1 и а станет = 2, перед b в заголовке процедуры не стоит var, поэтому данная переменная является параметром-значением и передается по значению, т.е. значение у b всегда остается 2.  После writeln(a,’ ‘,b); на экране выведется 2  2 повторный вызов процедуры p(a,b) к а добавит 1 и а станет = 3, а значение b при выводе вне процедуры по-прежнему останется 2 получим : 3  2
Не нашли ответ?
Ответить на вопрос
Похожие вопросы