Даны два массива чисел. Найти в них минимальные элементы. Если они равны, то исключить их из массивов. Процедуру повторять до тех пор, пока минимальные элементы массивов не окажутся разными — Pascal(Паскаль)

type
  MyArr=array [1..100] of integer;
var
  a,b:MyArr;
  max1,max2:integer;

procedure Writing(var a:MyArr; const max:integer);
var
  i:integer;
begin
  for i:=1 to max do
    a[i]:=random(8)-4
end;

procedure Print(a:MyArr;max:integer;ch:char);
var
  i:integer;
begin
  writeln('Ìàññèâ ',ch,':');
  write('[ ');
  for i:=1 to max do
    write(a[i]:2,' ');
  writeln(']')
end;

function FindMin(a:MyArr;max:integer):integer;
var
  tempi,i,min:integer;
begin
  min:=a[1];
  tempi:=1;
  for i:=2 to max do
    if a[i]<min then
    begin
      min:=a[i];
      tempi:=i
    end;
  FindMin:=tempi
end;

procedure Del(var a:MyArr;var max:integer; const pos:integer);
var
  i:integer;
begin
  if pos<max then
  begin
    for i:=pos to max-1 do
      a[i]:=a[i+1];
    dec(max)
  end
  else
    dec(max)
end;

begin
  writeln('Первый элемент...');
  readln(max1);
  writeln('Второй элемент....');
  readln(max2);
  Writing(a,max1);
  Writing(b,max2);
  Print(a,max1,'A');
  Print(b,max2,'B');
  repeat
    if a[FindMin(a,max1)]=b[FindMin(b,max2)] then
    begin
      Del(a,max1,FindMin(a,max1));
      Del(b,max2,FindMin(b,max2))
    end
  until
    a[FindMin(a,max1)]<>b[FindMin(b,max2)];
  Print(a,max1,'A');
  Print(b,max2,'B');
end.

Leave a Comment

32 − = 31