
Вопрос задан 22.02.2021 в 01:17.
Предмет Информатика.
Спрашивает Кирияк Алексей.
Вводится последовательность из N произвольных чисел . Найти среднее значение положительных
элементов последовательности. Решить через процедуру и функцию по отдельности ( то есть 2 задачи ) . Паскаль . Ввод чисел через работу с файлами

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

Отвечает Жеребцов Даниил.
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.
Хорошо видно, что решение с функцией имеет явное преимущество.
Внимание! Если программа не работает, обновите версию!
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.
Хорошо видно, что решение с функцией имеет явное преимущество.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения данной задачи вам потребуется создать процедуру и функцию для нахождения среднего значения положительных элементов последовательности чисел. Каждый элемент будет считываться из файла.
Вот пример решения задачи на языке Pascal:
pascalprogram 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" для ввода чисел. Вы можете изменить имя файла и его содержимое в соответствии с вашими потребностями. Программа считывает числа из файла и вычисляет среднее значение положительных элементов последовательности. Результат выводится на экран.
Убедитесь, что ваша среда разработки поддерживает работу с файлами и имеет соответствующие права доступа к файлу ввода.


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