Вопрос задан 22.02.2021 в 01:17. Предмет Информатика. Спрашивает Кирияк Алексей.

Вводится последовательность из N произвольных чисел . Найти среднее значение положительных

элементов последовательности. Решить через процедуру и функцию по отдельности ( то есть 2 задачи ) . Паскаль . Ввод чисел через работу с файлами
0 0
Перейти к ответам

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

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

1. Функция

function avg(a:array of integer):=a.Where(t->t>0).Average;

begin
  var a:=ReadAllText('input.txt').ToIntegers;
  Writeln('Среднее значение положительных элементов ',avg(a))
end.

2. Процедура

procedure avg(a:array of integer; var m:real);
begin
  m:=a.Where(t->t>0).Average
end;

begin
  var a:=ReadAllText('input.txt').ToIntegers;
  var m:real;
  avg(a,m);
  Writeln('Среднее значение положительных элементов ',m)
end.

Хорошо видно, что решение с функцией имеет явное преимущество.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется создать процедуру и функцию для нахождения среднего значения положительных элементов последовательности чисел. Каждый элемент будет считываться из файла.

Вот пример решения задачи на языке Pascal:

pascal
program FindPositiveAverage; var inputFile: Text; num: Integer; sum: Integer; count: Integer; procedure CalculatePositiveAverage; begin sum := 0; count := 0; while not EOF(inputFile) do begin ReadLn(inputFile, num); if num > 0 then begin sum := sum + num; count := count + 1; end; end; if count > 0 then WriteLn('Среднее значение положительных элементов: ', sum / count) else WriteLn('В последовательности нет положительных элементов.'); end; function CalculatePositiveAverageFunction: Real; begin sum := 0; count := 0; while not EOF(inputFile) do begin ReadLn(inputFile, num); if num > 0 then begin sum := sum + num; count := count + 1; end; end; if count > 0 then CalculatePositiveAverageFunction := sum / count else CalculatePositiveAverageFunction := 0.0; end; begin Assign(inputFile, 'input.txt'); Reset(inputFile); CalculatePositiveAverage; // Можно также вызвать функцию отдельно, если нужно получить результат для дальнейшей обработки //var average: Real; //average := CalculatePositiveAverageFunction; //WriteLn('Среднее значение положительных элементов (функция): ', average); Close(inputFile); end.

В этом примере используется файл "input.txt" для ввода чисел. Вы можете изменить имя файла и его содержимое в соответствии с вашими потребностями. Программа считывает числа из файла и вычисляет среднее значение положительных элементов последовательности. Результат выводится на экран.

Убедитесь, что ваша среда разработки поддерживает работу с файлами и имеет соответствующие права доступа к файлу ввода.

0 0

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

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

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