В программе:
{ P_20_1 – вариант программы с локальной переменной }
var S: string; k: integer; { глобальная переменная }
procedure Scan(arg : string);
var k: integer; { локальная переменная }
begin
for k:=1 to Length(arg) do
if arg[k]=’A’ then arg[k]:=’B’;
end;
begin { главная программа }
for k:=1 to 3 do begin
Write(’Введите строку: ’); Readln(S);
Scan(S);
Writeln(S);
end;
end.
" arg " надо заменить на " S " и программа будет работать.
! Поторопился я. В следующей главе рассказано, что нужно сделать.
Глава 20. Ошибка в основной программе
Модераторы: Oleg_D, Модераторы
Глава 20. Ошибка в основной программе
Последний раз редактировалось Герман 27.10.2016 17:03:45, всего редактировалось 1 раз.
Нет. Просто в декларации перед arg пропущено var.
Герман писал(а):Поторопился я. В следующей главе рассказано, что нужно сделать.
То, что вы заметили ошибку и предложили способ исправления, делает вам честь. Но в данном случае, как вы уже поняли, я сознательно воспроизвёл типичную ошибку новичков.
А использовать внутри процедур глобальные переменные (здесь это S) -- не вполне годная идея, но об этом будет сказано позже.
Спасибо Вам за книгу. Изучаю дальше.
