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

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

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

const
  N = 10;
type
  arr = array[1..N] of integer;
var
  mas1, mas2: arr;
  i, j: integer;
function createArray(var newarr: arr; a: integer):arr;
var
  min, max: integer;
begin
  min:= -10;
  max:= 10;
  for a:= low(newarr) to high(newarr) do
  begin
    newarr[a]:= min + random(max - min + 1);
    write(newarr[a], ' ');
  end;
  result:= newarr;
end;
function newArray(var arr1:arr; var arr2:arr; x, y: integer):arr;
begin
  for y:= low(arr2) to high(arr2) do
    for x:= low(arr1) to high(arr2) do
      if arr1[x] = arr2[y] then
        arr1[x]:= 0;
  for x:= low(arr1) to high(arr2) do
    if arr1[x] <> 0 then
      write(arr1[x], ' ');
  result:= arr1;
end;

begin
  randomize();
  createArray(mas1, i);
  writeln();
  createArray(mas2, j);
  writeln();
  writeln();
  newArray(mas1, mas2, i, j);
  readln();
end.
vedro-compota's picture

function newArray(var arr1:arr; var arr2:arr; x, y: integer):arr;

1) x, y: integer -- можно заменить локальными переменными функции
2)

var arr1:arr; var arr2:arr

-- передача по ссылке не нужна.

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


Убрал переменные по ссылке

const
  N = 10;
type
  arr = array[1..N] of integer;
var
  mas1, mas2: arr;
  i, j: integer;
function createArray(var newarr: arr; a: integer):arr;
var
  min, max: integer;
begin
  min:= -10;
  max:= 10;
  for a:= low(newarr) to high(newarr) do
  begin
    newarr[a]:= min + random(max - min + 1);
    write(newarr[a], ' ');
  end;
  result:= newarr;
end;
function newArray(arr1, arr2:arr):arr;
var
  x, y: integer;
  temp_arr: arr;
begin
  for y:= low(arr2) to high(arr2) do
    for x:= low(arr1) to high(arr2) do
      if arr1[x] = arr2[y] then
        arr1[x]:= 0;
  for x:= low(temp_arr) to high(temp_arr) do
    if arr1[x] <> 0 then
      begin
      temp_arr[x]:= arr1[x];
      write(temp_arr[x], ' ');
      end;
  result:= temp_arr;
end;

begin
  randomize();
  createArray(mas1, i);
  writeln();
  createArray(mas2, j);
  writeln();
  writeln();
  newArray(mas1, mas2);
  readln();
end.