Вопрос задан 16.07.2023 в 11:54. Предмет Информатика. Спрашивает Назарова Вероника.

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

0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Орешко Дарья.

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 - находит среднее отобранных элементов


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

pascal
program 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 и выполните код для получения результата.

0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос