begin writeln('Загружаю входные данные...'); t := ''; AssignFile(fileIn, IN_FILENAME); AssignFile(fileOut, OUT_FILENAME); reset(fileIn); while not eof(fileIn) do begin readln(fileIn, s); if (s = '0') then break else t := t + s; end; CloseFile(fileIn); rewrite(fileOut); writeln(fileOut, Length(t)); CloseFile(fileOut); 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.
Хорошо видно, что решение с функцией имеет явное преимущество.