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

uses crt;
const n=30;
var a,b:array[1..n] of integer;
    i,j,f,k:byte;
    mn:integer;
begin
clrscr;
randomize;
writeln('Массив A:');
for i:=1 to n do
 begin
  a[i]:=random(50);
  write(a[i]:4);
 end;
writeln;
writeln;
writeln('Массив B:');
for i:=1 to n do
 begin
  b[i]:=random(50);
  write(b[i]:4);
 end;
writeln;
writeln;
{найдем любой элемент в массиве А, которого нет в В, он будет начальным минимальным}
f:=0;
for i:=1 to n do
 begin
  k:=0;
  for j:=1 to n do
  if a[i]=b[j] then{если есть такой}
   begin
    k:=1;{фиксируем}
    break;{выходим из цикла}
   end;
  if k=0 then{если дошли до конца и нет}
   begin
    f:=1;{фиксируем}
    mn:=a[i];{пока он мин.}
    break;{выходим из цикла}
   end;
 end;
if f=0 then write('В массиве А нет элементов, не встреченных в массиве В!')
else{если есть такой элемент, также проверяем все остальные и выбираем меньший}
 begin
  for i:=1 to n do
   begin
    k:=0;
    for j:=1 to n do
    if a[i]=b[j] then
     begin
      k:=1;
      break;
     end;
    if (k=0)and(a[i]<mn) then mn:=a[i];
   end;
  write('Минимальный элемент в массиве А, которого нет в массиве В=',mn);
 end;
readln
end.

Leave a Comment

3 + = 10