Что выведет следующая программа? объясните результат. 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