
ПАСКАЛЬ ABC.NET Найти среднее арифметическое первых подряд идущих положительных элементов массива.


Ответы на вопрос

begin
var n := ReadInteger('n =');
var a := ArrRandom(n, -10, 99);
a.Println;
a.TakeWhile(p -> p > 0).DefaultIfEmpty.Average.Println
end.
Объяснение:
TakeWhile(p -> p > 0) - отбирает элементы от начала до тех пор, пока условие p > 0 истинно, т.е. со значением, большим нуля.
DefaultIfEmpty - если первое же значение не положительно, результатом будет один элемент, равный нулю (нельзя найти среднее, если элементов не отобрано вообще, получим 0/0)
Average - находит среднее отобранных элементов




Для решения этой задачи вам потребуется написать программу на языке Pascal, которая будет находить среднее арифметическое первых подряд идущих положительных элементов массива. Вот пример решения:
pascalprogram AveragePositiveElements; const N = 10; // Размер массива var arr: array[1..N] of Integer; i, count, sum: Integer; average: Real; begin // Вводим элементы массива writeln('Введите элементы массива:'); for i := 1 to N do begin write('arr[', i, ']: '); readln(arr[i]); end; // Ищем среднее арифметическое первых подряд идущих положительных элементов count := 0; sum := 0; for i := 1 to N do begin if arr[i] > 0 then begin count := count + 1; sum := sum + arr[i]; end else if count > 0 then begin // Если текущий элемент не положительный и уже были положительные элементы, // то прекращаем цикл, так как нас интересуют только первые подряд идущие положительные элементы break; end; end; if count > 0 then begin average := sum / count; writeln('Среднее арифметическое первых подряд идущих положительных элементов: ', average:0:2); end else writeln('В массиве нет положительных элементов.'); readln; end.
В этом примере массив arr
имеет фиксированный размер N
, равный 10. Вы можете изменить значение N
в соответствии с вашими требованиями. Затем программа запрашивает у пользователя ввести элементы массива. После этого программа ищет первые подряд идущие положительные элементы и вычисляет их среднее арифметическое. Если в массиве нет положительных элементов, программа выведет соответствующее сообщение.
Пожалуйста, убедитесь, что ваша среда разработки поддерживает язык Pascal и выполните код для получения результата.


Похожие вопросы


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili