Дан целочисленный массив из 40 элементов. Элементы массива могут принимать значения от -10000 до 10000. Написать алгоритм, который находит и выводит среднее арифметическое всех отрицательных элементов массива, оканчивающихся цифрой 7. Гарантируется, что хотя бы один такой элемент в массиве есть. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

const N=40
var
a:array [1..N] of integer;
i, s, r, x: integer;
sr: real;
begin
for i:=1 to N do readln (a[i]);
.....

end.

Ответы

Ответ дал: NaaMan
0
//PascalABC.NET
//Дан целочисленный массив из 40 элементов. Элементы массива могут
//принимать значения от -10000 до 10000. Написать алгоритм, который
//находит и выводит среднее арифметическое всех отрицательных элементов
//массива, оканчивающихся цифрой 7. Гарантируется, что хотя бы один
//такой элемент в массиве есть. Исходные данные объявлены так, как
//показано ниже. Запрещается использовать переменные, не описанные
//ниже, но разрешается не использовать часть из них.

const
    N = 40;
var
    //a : array[1..N] of integer;
    i, s, r, x : integer;
    sr: real;
begin
    //Для любителей заполнять вручную:
    //for i := 1 to 40 do readln(a[i]);
    
    //Заполним массив 40-ка случайными значениями
    var a := ArrRandomInteger(N+1, -10000, 10000);
    //Гарантировано разместим число, оканчивающееся на 7
    a[Random(0,40)] := -10 * Random(0,999) - 7;
    //Уберем лишний элемент, созданный автоматически
    a[0] := 0;
    //Напечатаем массив
    a.println;
    writeln('----------------');
    //Просмотрим весь массив и найдя отрицательное, оканчивающееся на 7
    //число, учтём его
    foreach i in a do
        if (i < 0) and (i mod 10 = -7) then begin
            r += i; s += 1; write(i,' ')
        end;
    //Выведем среднее арифметическое
    writeln('Ср.ар: ',r/s)
end.


Приложения:
Вас заинтересует