К упорядоченному одномерному массиву приписать, не нарушая порядка, те элементы другого одномерного массива, которых нет в первом массиве — Pascal(Паскаль)

uses crt;
const max=100;
type mas=array[1..max] of integer;
procedure Vvod(var a:mas;var n:byte;c:string);//создание массивов
var i:byte;
begin
repeat
write('Размер массива ',c,'=');
readln(n);
until n in [1..max];
for i:=1 to n do
a[i]:=random(50)+10;
clrscr;
end;
procedure Vyvod(var a:mas;n:byte;c:string);//вывод массивов на экран
var i:byte;
begin
writeln(c);
for i:=1 to n do
write(a[i]:4);
writeln;
writeln;
end;
procedure Vst(b:integer;var a:mas;var n:byte);//вставка элемента на место в упорядоченном массиве
var i,j:byte;
begin
n:=n+1;
if b>=a[n-1] then a[n]:=b
else
 begin
  for i:=1 to n-1 do
   if a[i]>=b then
    begin
     for j:=n downto i+1 do
     a[j]:=a[j-1];
     a[i]:=b;
     break;
    end;
 end;
end;
var m1,m2:mas;
    n1,n2,i,j,k:byte;
    x:integer;
begin
clrscr;
randomize;
Vvod(m1,n1,'M1:');
Vvod(m2,n2,'M2:');
Vyvod(m1,n1,'Исходный массив M1:');
Vyvod(m2,n2,'Массив M2:');
for i:=1 to n1-1 do
for j:=i+1 to n1 do
if m1[i]>m1[j] then
 begin
  x:=m1[i];
  m1[i]:=m1[j];
  m1[j]:=x;
 end;
Vyvod(m1,n1,'Упорядоченный массив M1:');
for i:=1 to n2 do
 begin
  k:=0;
  for j:=1 to n1 do//поиск элементов, которых нет в первом массиве
  if m2[i]=m1[j] then//если есть
   begin
    k:=1;//фиксируем
    break;//выходим из цикла
   end;
  if k=0 then Vst(m2[i],m1,n1);//если нет, вставляем
 end;
Vyvod(m1,n1,'Объединеннный массив M1 :');
readln
end.

Leave a Comment

62 + = 63