Составить процедуру вставки или удаления символов в строке не более M символов с N-го места (на N-ое место) данной строки

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

code: #pascal
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.      
Поделиться:

Похожие статьи: