IPB
ЛогинПароль:

> Метод индуктивной функции..часть 2
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Olya

Репутация: -  0  +


blink.gif У меня тоже проблемы с этим методом, только задание другое:

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

Что здесь можно сделать? wacko.gif smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Olya

Репутация: -  0  +


Вот попытка написать подпрограмму, проверяйте:
blink.gif
{
Переменные, для вычисления значения функци
vi_Scet - общее количество отрицательных чисел в массиве,
vi_N - количество цепочек отрицательных символов;
vt_Text - дескриптор стандартного типа файлов;
vi_x - Буфферная переменая. Служит для обмена с файловыми данными;
vr_Long - Переменная фиксирующая значение функции;
vb_f0 – флаг принадлежности к цепочке;
(Индуктивное расширение имеет два решения
vb_f0=true - Данные верны, дополняем множество решений;
vb_f0=false -Данные не верны, обрыв цепочки)
}

type
v_Integer: integer;
v_Bool: boolean;
v_Text: text;
v_Real: real;
.
.
.

{
Функция 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); //Устанавливаем готовность к чтению данных

//Инициализируем переменные
vi_Scet:=0; vi_N:=0; f0:=true;

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.
no1.gif yes2.gif

М
Использование тегов - это требование Правил!
(Выделить текст программы блоком и выбрать нужный тип кода в меню CODE над окном ввода)
Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 20:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name