uses crt;
const nmax=100;
type mas=array[1..nmax] of integer;
{процедура создания массивов, чтоб не писать 2 раза}
procedure vvod(var v:mas;var x:byte;c:char);
var i:byte;
begin
repeat
write('Размер массива ',c,'=');
readln(x);
until x in [1..nmax];
for i:=1 to x do
begin
v[i]:=random(20);
write(v[i]:4);
end;
writeln;
writeln;;
end;
var n,m,i,j,k,p,f:byte;
a,b:mas;
begin
clrscr;
randomize;
Vvod(a,n,'A');
Vvod(b,m,'B');
writeln('Общие элементы массивов:');
i:=1;f:=0;
while i<=n do
begin
j:=1;p:=0;
while j<=m do
begin
if b[j]=a[i] then{нашли общий элемент}
begin
p:=1;{фиксируем для данного числа}
f:=1;{фиксипуем что есть вообще}
write(a[i]:4);{выводим его}
for k:=i to n-1 do
a[k]:=a[k+1];{удаляем его левым чдвигом из первого массива}
n:=n-1;{уменьшаем размер}
for k:=j to m-1 do
b[k]:=b[k+1];{из второго}
m:=m-1;
break;{больше это число не ищем}
end
else j:=j+1;{если не такое, вперед по второму массиву}
end;
if p=0 then i:=i+1;{если для данного элемента первого массива нет совпадений
смотрим следующий}
end;
if f=0 then write('Общих элементов нет!');
readln
end.