Два массива размером 200 и 5 элементов, соответственно, заполните в случайном порядке символами, коды которых расположены в диапазоне от 40 до 200. Проверить входит ли меньший массив полностью в больший и, если это так, то в большем массиве все элементы, принадлежащие меньшему массиву, заменить на символы «пробел». Выполните сортировку полученных массивов. Для контроля результата сделайте распечатку массивов, в том числе исходного — Pascal(Паскаль)

uses crt;
const na=200;
      nb=5;
var a,b,a1:array[1..na] of char;
    i,na1,j,k,p:byte;
    c:char;
begin
clrscr;
randomize;
writeln('Массив А:');
for i:=1 to na do
 begin
  a[i]:=chr(random(161)+40);{символы с кодами от 40 до 200}
  write(a[i]);
 end;
writeln;
writeln;
writeln('Массив B:');
for i:=1 to nb do
 begin
  b[i]:=chr(random(161)+40);
  write(b[i]);
 end;
a1:=a;na1:=na;p:=0;{запомним массив а и его размер, 
при поиске из него будем вычеркивать элементы, чтоб совпало количество повторяющихся}
for i:=1 to nb do
for j:=1 to na1 do
if a1[j]=b[i] then{если совпал}
 begin
  for k:=j to na1-1 do{сдвигаем хвост массива на 1 влево, елемент стирается}
  a1[k]:=a1[k+1];
  na1:=na1-1;{уменьшаем размер массива}
  p:=p+1;{считаем совпадения}
 end;
if p<nb then{если не все}
 begin
  writeln('    Не входит полностью!');
  writeln;
 end
else{если все}
 begin
  writeln('     Входит полностью!');
  writeln;
  for i:=1 to nb do
   begin
    for j:=1 to na do
    if a[j]=b[i] then a[j]:=' ';{замена на пробелы}
   end;
  writeln('Измененный массив А:');
  for i:=1 to na do
  write(a[i]);
  writeln;
 end;
for i:=1 to na-1 do{сортируем оба массива обменом(пузырьком)}
for j:=i+1 to na do
if a[i]>a[j] then
 begin
  c:=a[i];
  a[i]:=a[j];
  a[j]:=c;
 end;
writeln;
writeln('Отсортированный массив А:');
for i:=1 to na do
write(a[i]);
writeln;
writeln;
for i:=1 to nb-1 do
for j:=i+1 to nb do
if b[i]>b[j] then
 begin
  c:=b[i];
  b[i]:=b[j];
  b[j]:=c;
 end;
writeln;
writeln('Отсортированный массив B:');
for i:=1 to nb do
write(b[i]);
readln
end.

Leave a Comment

77 − = 68