Количество и сумма элементов массива, принадлежащих интервалу

Задача

Найдите сумму и количество элементов массива, попавших в интервал [a; b]. Границы интервала вводятся с клавиатуры.

Решение

Пусть переменная qty содержит количество элементов, попавших в заданный интервал, а переменная sum сумму этих элементов. В цикле будем проверять каждый элемент на то, что его значение одновременно больше либо равно нижней границе диапазона и меньше или равно верхней. Если это так, то элемент принадлежит заданному интервалу и его значение следует добавить к переменной sum, а qty увеличить на 1.

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

const N = 20;
var
    arr: array[1..N] of integer;
    i, qty: byte;
    a, b, c, sum: integer;
begin
    randomize;
    for i:=1 to N do begin
        arr[i] := random(100)-50;
        write(arr[i]:4);
    end;
    writeln;
    write('Интервал: ');
    readln(a, b);
    if a > b then begin
        c := a;
        a := b;
        b := c;
    end;
    qty := 0;
    sum := 0;
    for i:=1 to N do 
        if (arr[i] >= a) and (arr[i] <= b) then begin
            qty := qty + 1;
            sum := sum + arr[i];
        end;
    writeln('Количество: ', qty);
    writeln('Сумма: ', sum);
end.

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

 -25 -28  41  35  28  33 -46  35   2 -35 -49  49 -31   5  34 -46 -32 -40 -14   5
Интервал: 5 -10
Количество: 3
Сумма: 12

Тема

Одномерные массивы

Уровень

Комбинированные задачи

Последняя редакция

Добавить комментарий