Даны два массива. надо найти их общие элементы — Pascal(Паскаль)

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.

Leave a Comment

− 5 = 3