Что будет выведено на экран в результате работы программы?Объясните эту задачу.

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
donTosha
Сообщения: 1
Зарегистрирован: 22 ноя 2016, 19:24

22 ноя 2016, 19:34

Почему a присваивается 3?

Код: Выделить всё

Program Main;
Uses crt;
Var a,b,c,d:integer;
Function f(var b:integer; c:integer):integer;
Var d:integer;
Begin
a:=2; b:=b+1; d:=3; c:=b-a;
Writeln(a,b,c,d);
f:=d;
end;
begin
a:=0; b:=0; c:=0; d:=0;
d:=f(a,b); Writeln(a,b,c,d);
end.
garmayev
Сообщения: 26
Зарегистрирован: 19 дек 2013, 17:40
Откуда: Irkutsk
Контактная информация:

21 дек 2016, 07:23

donTosha писал(а):Почему a присваивается 3?

Код: Выделить всё

Program Main;
Uses crt;
Var a,b,c,d:integer;
Function f(var b:integer; c:integer):integer;
Var d:integer;
Begin
a:=2; b:=b+1; d:=3; c:=b-a;
Writeln(a,b,c,d);
f:=d;
end;
begin
a:=0; b:=0; c:=0; d:=0;
d:=f(a,b); Writeln(a,b,c,d);
end.

1. Само тело программы:

Код: Выделить всё

begin
a:=0; b:=0; c:=0; d:=0;
d:=f(a,b); Writeln(a,b,c,d);
end.
Здесь задаются все переменные равные нулю
2. B строке

Код: Выделить всё

d:=f(a,b);
Вызывается функция f, которая пишет определенные цифры -
2 1 -1 3
и возвращает значение переменной d, в нашем случае это 3
3. Затем идет вывод из тела программы:
0 0 0 3

Читайте, линейные алгоритмы, глобальные/локальные переменные

Там не должно быть а=3
Ответить