Определить индексы элементов массива, значение которых лежит в указанном пределе | Язык Паскаль

Определить индексы элементов массива, значение которых лежит в указанном пределе

В массиве определить индексы элементов, значение которых не меньше заданного минимума и не больше заданного максимума.

Это простая задача, если не требуется сохранять индексы элементов, а просто выводить их на экран. Ее можно усложнить, если задать условие сохранения в программе индексов найденных элементов и определение их общего количества. В таком случае потребуется ввести еще один массив.

Описание переменных:

Алгоритм решения задачи:

  1. генерируем массив случайных чисел и выводим его на экран;
  2. запрашиваем у пользователя нижнюю и верхнюю границы поиска;
  3. перебирая массив, если значение очередного элемента больше или равно минимуму и меньше или равно максимуму, то помещаем его индекс в массив id;
  4. выводим общее количество найденных элементов и их индексы в массиве arr, сохраненные в массиве id.

Программа на языке Паскаль:

const N = 10;

var 
    arr: array[1..N] of integer;
    id: array[1..N] of byte;
    min, max: integer;
    i, m: byte;

begin
    randomize;
    for i := 1 to N do begin
        arr[i] := random(100);
        write(arr[i], ' ');
    end;
    writeln;

    write('Min: '); readln(min);
    write('Max: '); readln(max);

    m := 0;
    for i := 1 to N do
        if (arr[i] >= min) and 
           (arr[i] <= max) then begin
            m := m + 1;
            id[m] := i;
        end;

    writeln('Total: ', m);
    write('Id: ');
    for i := 1 to m do
        write(id[i], ' ');
    writeln;
end.

Примеры выполнения кода:

40 18 84 37 72 74 88 85 42 14 
Min: 21
Max: 49
Total: 3
Id: 1 4 9