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

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

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

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

program project1;  // процедура заполнеия массива
var x,y,i,j,C : integer;
    a: array [1..20] of integer;
    b: array[1..20] of integer;
{ Процедура получает значение переменной a и b по ссылке }
procedure vvodDvuxMassivov(var a: array of integer; var b: array of integer);
var min, max: integer;
begin
   randomize(); // инициал. датчик случайных чисел (вызов стандартной процедуры)

   min := -5; // левая граница
   max := 10; // правая граница

   { обходим первый переданный массив
     и инициализируем массив случайными числами (1 вариант заполнения)}
   for i:=low(a) to high(a) do
      a[i] := min + random(max - min + 1);
    { обходим второй переданный массив
     и инициализируем массив случайными числами (2 вариант заполнения)}
    for i:=1 to 20 do
       b[i]:=random(10)-5;

end;

begin    // далее программа использующая нашу процедуру

  vvodDvuxMassivov(a,b); { заполняем массивы случайными числами,
          передаем переменную в процедуру по ссылке }
  writeln('1-y massiv:');
  for i:=low(a) to high(a) do // обходим первый массив
    write(a[i], ' ');  // выводим очередное его значение
   writeln();

   writeln('2-y massiv:'); // обходим второй массив
   for i:=1 to 20 do    // выводим очередное его значение
     write(b[i],' ');

  for i:=1 to 20 do
    if (i mod 3) = 0 then
      write(a[i],' ');
  writeln();
  for i:=1 to 20 do
    if (i mod 2) = 0 then
      write(b[i],' ');
  writeln();
  i := 1;
  C := 1;
  while i <= 20 do      // цикл - пока не законичтся выборка
  begin
    if ((i mod 3) = 0) then  // проверяем большее условие
    begin
      x := a[i];
      y := b[i - C];
      begin
        if x > y then
          writeln(x, ' bolshe ', y)
        else if (x = y) then
          writeln(x, ' ravno ', y)
        else
          writeln(x, ' menshe ', y);
      end;
      C := C + 1;
    end;
    i := i + 1;
  end;
  readln();
end.

  readln();
end.
vedro-compota's picture

засчитано

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