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

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


Новичок
*

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

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


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

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

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


Новичок
*

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

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


smile.gifАндрей, приветик, вот проверяй...а ты уверен, что функция NegChainL - индуктивная? У нас просто называют её рекурсивной...или я так поняла, это всё взаимосвязано? Ещё по заданию, эта подпрограмма должна написана в стиле защитного программирования, то есть должны быть предусмотрены всевозможные коды ошибок. Здесь я так понимаю, тоже это есть. Вот..мне ещё нужно описать необходимые типы данных и составить полную спецификацию, которая должна содержать задачу функции (самой подпрограммы)...входные, выходные данные..и вот те возможные значения функции, ей присваиваемые...Как это оформить..? wacko.gif yes2.gif

{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.
wub.gif


Сообщение отредактировано: Olya -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Что проверять? комментарии? они программу не портят smile.gif.
Почему-то опять появилось несколько непонятных сдвигов.. почему ты их так любишь? Неправильные сдвиги - это так же плохо, как и отсутствие сдвигов..
Цитата(Olya @ 28.03.2007 9:50) *

а ты уверен, что функция NegChainL - индуктивная? У нас просто называют её рекурсивной...или я так поняла, это всё взаимосвязано?
Да, связано. Индуктивная - это название из математики, а рекурсивная - из программирования. Индуктивность означает вычисляемость через последний результат и новый элемент.
Цитата(Olya @ 28.03.2007 9:50) *

Ещё по заданию, эта подпрограмма должна написана в стиле защитного программирования, то есть должны быть предусмотрены всевозможные коды ошибок. Здесь я так понимаю, тоже это есть.
Нет, не учтено. Я так понял, что должна быть защита, например, от случая, когда во входном файле вместо числа вдруг появится буква.. Этот вариант программы на этом обломается - можешь попробовать. Вставить такую защиту - дело не самое тривиальное, если все учитывать.
Цитата(Olya @ 28.03.2007 9:50) *

Вот..мне ещё нужно описать необходимые типы данных и составить полную спецификацию,
...
Как это оформить..?
Как с вас требуют, так и оформляй smile.gif, я тут не помощник. Если посмотреть на твой начальный текст, так вас там так учат, что и не расхлебаешь.. Так что - я не хочу потом упреков, что все неправильно сказал. Программа работает - вот весь с меня спрос..
Если хочешь - можешь советоваться, конечно. Пиши тут, в чем сомневаешься, сли сможем - поможем..
Успехов!


Добавлено через 2 мин.
PS
Как тебе удалось навставлять столько пробелов в конце программы?.. blink.gif насилу вычистил..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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