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

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

Даны два массива по 20 элементов каждый (заполните случайными числами, так чтобы среди элементов массива при очередном запуске программы могли встретиться и отрицательные и положительные числа).
Сравните каждый 3-ий элемент 1-ого массива с каждый 2-ым элементов 2-ого массива - сравнение проводите пока не закончится та выборка, которая короче.

const
  N = 20;
type
  arr = array [1..N] of integer;
var
  mas1, mas2: arr;
  i, j: integer;
function newArray(var newarr: arr; a: integer):arr;
var
  min, max: integer;
begin
  min:= -30;
  max:= 30;
  for a:= low(newarr) to high(newarr) do
  begin
    newarr[a]:= min + random(max - min + 1);
    write(newarr[a], ' ');
  end;
  result:= newarr;
end;

begin
 randomize();
 newArray(mas1, i);
 writeln();
 newArray(mas2, j);
 writeln();
 i:= 3;
 j:= 2;
 while i <= N do
 begin
   while j <= N do
   begin
      if (mas1[i] < mas2[j]) then
        writeln(mas1[i], ' menshe ', mas2[j])
      else if (mas1[i] > mas2[j]) then
        writeln(mas1[i], ' bolshe ', mas2[j]);
      j:= j + 2;
      break;
   end;
   if i <= N then
     i:= i + 3
   else
     break;
 end;
 readln();
end.   
vedro-compota's picture

 while i <= N do
 begin
   while j <= N do
   begin

вложенные циклы не нужны

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


Убрал вложенный цикл

const
  N = 20;
type
  arr = array [1..N] of integer;
var
  mas1, mas2: arr;
  i, j: integer;
function newArray(var newarr: arr; a: integer):arr;
var
  min, max: integer;
begin
  min:= -30;
  max:= 30;
  for a:= low(newarr) to high(newarr) do
  begin
    newarr[a]:= min + random(max - min + 1);
    write(newarr[a], ' ');
  end;
  result:= newarr;
end;

begin
 randomize();
 newArray(mas1, i);
 writeln();
 newArray(mas2, j);
 writeln();
 i:= 3;
 j:= 2;
 while i <= N do
 begin
   if (mas1[i] < mas2[j]) then
      writeln(mas1[i], ' menshe ', mas2[j])
   else if (mas1[i] > mas2[j]) then
      writeln(mas1[i], ' bolshe ', mas2[j]);
   j:= j + 2;
   if i <= N then
      i:= i + 3
   else
      break;
 end;
 readln();
end.