После каждой вставки или удаления выводить обновленную строку. Режим ввода или удаления задается в диалоге клавишами I или D, а вводимый символ определяется нажатием соответствующей клавиши.
Program PascalGuru;
uses crt;
label 1;
var
M: integer;
s: string;
{ ------------------------------------------------------------------- }
Procedure InsertDelete;
label 1;
var
n: integer;
option: char;
c: char;
begin
1:
clrscr;
writeln('Redaktiruem stroky "', s, '" ; M=', M);
writeln;
writeln;
writeln('[I]) Vstaviti simvol');
writeln('[D]) Udaliti simvol');
writeln;
writeln('[E]) exit');
option := Readkey;
if (Ord(option) = 101) or (Ord(option) = 69) then
exit;
if (Ord(option) = 105) or (Ord(option) = 73) then
begin
clrscr;
if length(s) >= M then
begin
writeln('Vstavka zaprescena (>M)');
readln;
goto 1;
end;
write('Vstavka v N-oe mesto. N= ');
readln(n);
write('Simvol= ');
readln(c);
insert(c, s, n);
goto 1;
end;
if (Ord(option) = 100) or (Ord(option) = 68) then
begin
clrscr;
if length(s) <= 1 then
begin
writeln('Udalenie zapresceno (slovo imeet 1 simvol)');
readln;
goto 1;
end;
write('Udalenie s N-ogo mesta. N= ');
readln(n);
delete(s, n, 1);
goto 1;
end;
goto 1;
end;
{ ------------------------------------------------------------------- }
begin
write('M= ');
readln(M);
1:
clrscr;
write('Vvedite stroky (ne bolee ', M, ' sivolov): ');
readln(s);
if length(s) > M then
begin
writeln('Vvedennaya stroka soderjit bolee ', M, ' sivolov!');
readln;
goto 1;
end;
InsertDelete;
end.