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.
Хорошо видно, что решение с функцией имеет явное преимущество.
const
IN_FILENAME = 'INPUT.txt';
OUT_FILENAME = 'OUTPUT.txt';
var
fileIn,fileOut: TextFile;
s,t: string;
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.