Задача 18 Урок 15

Задача 18 Урок 15

У вас есть два массива целых чисел по 10 элементов в каждом.
Выведите на экран все числа из первого массива, которые не содержаться во втором.

var a, b: array [1..10] of integer;
    i, k,  min, max: integer;
    flag: boolean;

begin
  min := 0;
  max := 25;
  randomize();
  for i := 1 to 10 do
    begin
      a[i] := random(max - min + 1) + min;
      write(a[i], ' ');
    end;
  writeln();
  for i := 1 to 10 do
    begin
      b[i] := random(max - min + 1) + min;
      write(b[i], ' ');
    end;
  writeln('');
  writeln('vo vtorom nety ');
  for i := low(a) to high(a) do
    begin
      for k := low(b) to high(b) do
        begin
          if(a[i] = b[k]) then
            begin
              flag := true; //элемент найден
              break;        //выход для проверки следующего числа
            end
          else
            flag := false;
        end;
        if(flag = false) then
          begin
            write(a[i], ' ');
          end;
    end;
  readln();
end.
         
1 3 0 10 16 11 7 19 20 21
13 21 11 25 23 8 22 18 0 25
vo vtorom nety
1 3 10 16 7 19 20
vedro-compota's picture

          if(a[i] = b[k]) then
            begin
              flag := true; //элемент найден
              break;        //выход для проверки следующего числа
            end
          else
            flag := false;

-- подумать как избавиться от ветки else

_____________
матфак вгу и остальная классика =)

var a, b: array [1..10] of integer;
    i, k,  min, max: integer;
    flag: boolean;

begin

  min := 0;
  max := 25;
  randomize();
  for i := 1 to 10 do
    begin
      a[i] := random(max - min + 1) + min;
      write(a[i], ' ');
    end;
  writeln();
  for i := 1 to 10 do
    begin
      b[i] := random(max - min + 1) + min;
      write(b[i], ' ');
    end;
  writeln('');
  writeln('vo vtorom nety ');
  for i := low(a) to high(a) do
    begin
      for k := low(b) to high(b) do
        begin
          flag := false;
          if(a[i] = b[k]) then
            begin
              flag := true; //элемент найден
              break;        //выход для проверки следующего числа
            end
        end;
        if(flag = false) then
          begin
            write(a[i], ' ');
          end;
    end;
  readln();
end. 
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)