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

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

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

Например пусть мы имеем два массива (запишу лишь начальные элементы):

1 | 2 | -10 | 5 | 0 | 12 | 2 | 8 ....
0 | 3 | 4 | 9 | 7 | 5 | -8 | 3.....
для них программа должна вывести:

-10 меньше 3
12 больше 9
- других сравнений не последует, так как новых из "каждых третьих элементов" в 1-ом массиве больше нет.

program lesson15_17;
type
    myArr = array[1..20] of integer;

procedure compare (a, b: myArr);
var
    i, j: integer;
begin
    i := 3;
    j := 2;
    while (i <= high(a)) and (j <= high(b)) do
    begin
        if(a[i] > b[j]) then
            writeln(a[i], ' > ', b[j])
        else if(a[i] = b[j]) then
            writeln(a[i], ' = ', b[j])
        else
            writeln(a[i], ' < ', b[j]);
        i := i + 3;
        j := j + 2;
    end;
end;

procedure print (a: myArr; c: char);
var
    i: integer;
begin
    for i := low(a) to high(a) do
    begin
        write(a[i], c);
    end;
end;

var
    arr1: myArr;
    arr2: myArr;
    i: integer;
begin
    randomize();
    for i := low(arr1) to high(arr1) do
    begin
        arr1[i] := - 10 + random(21);
        arr2[i] := - 10 + random(21);
    end;

    print(arr1, '|');

    writeln();

    print(arr2, '|');

    writeln();

    compare(arr1, arr2);

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

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

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