
Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину связных подпоследовательностей отрицательных чисел.
Что здесь можно сделать?


![]() |
Olya |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Женский Реальное имя: Olya Репутация: ![]() ![]() ![]() |
![]() Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину связных подпоследовательностей отрицательных чисел. Что здесь можно сделать? ![]() ![]() |
![]() ![]() |
Olya |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Женский Реальное имя: Olya Репутация: ![]() ![]() ![]() |
![]() ![]() ![]() {Average negative chain length calculating}
{by Lapp}var
f:text;
n,l,m:integer;
{функция NegChainL
если значение считанного элемента отрицательно, значение функции увеличивается на 1
в противном случае обнуляется}
function NegChainL:integer;:
var
a:real;
begin
ReadLn(f,a); // чтение входных данных
if EoF(f) or(a>0) then NegChainL:=0 else NegChainL:=NegChainL+1//если конец файла или
//a>0 то значение функции=0, иначе значение функции+1;
end;
begin
Assign(f,'NegChain.dat');//связываемем имя файла с файловой переменной
Reset(f); //готовим файл к чтению
n:=0; //инициализируем переменные
m:=0;
repeat
// (*)
l:=NegChainL; //переменной l присваиваем значение функции
if l>0 then begin //Если l>0
Inc(n); //счётчик цепочек+1
m:=m+l //счётчик орицательных элементов+!
end
until EoF(f); //если не конец файла, повторяем процесс (*)
Close(f); //Закрываем файл
//Вывод результата
if n=0 then
WriteLn('No negative chains found')
else WriteLn('The average negative chain length is ',m/n:8:3);
end.
![]() Сообщение отредактировано: Olya - |
![]() ![]() |
![]() |
Текстовая версия | 12.04.2025 6:52 |