У меня тоже проблемы с этим методом, только задание другое:
Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину связных подпоследовательностей отрицательных чисел.
{ Переменные, для вычисления значения функци vi_Scet - общее количество отрицательных чисел в массиве, vi_N - количество цепочек отрицательных символов; vt_Text - дескриптор стандартного типа файлов; vi_x - Буфферная переменая. Служит для обмена с файловыми данными; vr_Long - Переменная фиксирующая значение функции; vb_f0 – флаг принадлежности к цепочке; (Индуктивное расширение имеет два решения vb_f0=true - Данные верны, дополняем множество решений; vb_f0=false -Данные не верны, обрыв цепочки) }
{ Функция inductiv Проверяет принадлежность входных данных к цепочке отрицательных элементов. Входные параметры: x: формальный параметр «входные данные» побочный эффект: ТRUE данные принадлежат к цепочке, FALSE - нет }
function inductiv(x:v_Integer):boolean;
begin if x<0 then inductiv:=true else inductiv:=false; end;
{ Процедура расчёта средней длины связных подпоследовательностей отрицательных чисел. Входные данные хранятся в стандартном файле. vr_Long - выходной параметр «Результат расчёта» }
procedure Sr_Lenght(var: vr_Long: v_Real);
var vt_Text: v_text; vi_x,vi_Scet, vi_N: v_Integer; vr_Long: v_Real; f0: v_Bool;
begin AssignFile(vt_Text,'Dan.txt');//Указавем путь к файлу данных reset(vt_Text); //Устанавливаем готовность к чтению данных
repeat readln(vt_Text,vi_x); //Считываем данные из файла
if inductiv(vi_x)=true then //если «цепочка», подсчитываем кол begin inc(vi_Scet); //Счётчик элементов=+1 f0:=true end //Сохраняем текущее значение функции else // «Обрыв» if f0=true then begin f0:=false; //Сохраняем текущее значение функции inc(vi_N) end; //Счётчик «цепочек»=+1 until Eof(vt_Text); //Повторяем процесс, пока не достигнут конец файла.
{Обрабатываем ситуацию - отрицательных элементов нет} if scet=0 then writeln('ОТРИЦАТЕЛЬНЫХ ЭЛЕМЕНТОВ НЕТ!') else srLong:=scet/n;//Вычисляем значения функции
end; . . . end.
М
Использование тегов - это требование Правил! (Выделить текст программы блоком и выбрать нужный тип кода в меню CODE над окном ввода) Lapp