Требуется составить программу удаления из заданного текста a всех символов, расположенных на нечетных местах другого заданного текста b. Функции и процедуры удаления частей текста и их вывода на экран не применять — Pascal(Паскаль)

uses crt;
var a,b:array[1..1000] of char;{текст-массив символов}
    n,m,i,j,k:integer;
    c:char;
begin
clrscr;
writeln('Введите первый текст, окончание ввода Enter:');
n:=0;
repeat
c:=readkey;{ожидаем нажатия клавиши}
if c<>#13 then{если не Enter}
 begin
  n:=n+1;{считаем}
  a[n]:=c;{записываем в массив}
  write(a[n]);{выводим на экран}
 end;
until c=#13;
writeln;
writeln('Введите второй текст, окончание ввода Enter:');
m:=0;
repeat
c:=readkey;
if c<>#13 then
 begin
  m:=m+1;
  b[m]:=c;
  write(b[m]);
 end;
until c=#13;
writeln;
for i:=1 to m do{идем по второму тексту}
if odd(i) then{если индекс нечетный}
 begin
  c:=b[i];{запоминаем}
  j:=1;{встаем в начало первого текста}
  while j<=n do{пока не конец}
  if a[j]=c then{если символ совпадает}
   begin
    for k:=j to n-1 do{сдвигаем на него хвост массива, он исчезает}
    a[k]:=a[k+1];
    n:=n-1;{уменьшаем размер}
   end
  else j:=j+1;{иначе идем вперед}
 end;
if n=0 then write('Все символы удалены!')
else
for i:=1 to n do
write(a[i]);
readln
end.

Leave a Comment

61 − = 60