Урок 14.1 Задача 3

Урок 14.1 Задача 3:

У вас есть код:

var b: integer;
 
procedure pishi();
var a: integer;
begin
  a:=4;
  writeln(a);
  b:=2;
  writeln(b);
end;
 
begin  // тело программы
  b:=3;
  pishi();
  writeln(b);
end. 

-- эта программа в конечном итоге присваивает и выводит на экран 3 значения.

Задача: Уберите зависимость процедуры от глобальной области видимости (т.е. процедура более не должна обращаться к глобальной области видимости), при этом пусть для нового кода выполняются все требования из списка:

вывод программы останется тем же
процедура, как и раньше работает с двумя переменными
а тело программы как и раньше с 1 глобальной переменной
Постарайтесь максимально сохранить использующиеся имена переменных.

var b: integer;

procedure pishi();
var a, b: integer;        // объявляем локальную b
begin
  a:=4;
  b:=2;
  writeln(a);
  writeln(b);             // процедура выводит локальную b
end;

begin
  b:=2;                   // изменяем значение глобальной b (чтобы вывод остался тем же)
  pishi();                // вызываем процедуру
  writeln(b);             // выводим глобальную b
  readln ();
end.         

Вывод в консоли:

4
2
2