Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2009, 21:02   #1
MaxFreeZz
 
Регистрация: 05.06.2009
Сообщений: 6
Восклицание НАРОД ПОМОГИТЕ С ЗАДАЧЕЙ (В ДЕЛФИ ! )

Народ, помогите, сам не прошариваю как сделать. Жду вашей помощи!

Вот Задача!

Дан файл целых чисел. Найти среди компонент этого файла наибольшую последовательность чисел, представляющую собой арифметическую прогрессию. Записать эту последовательность в другой файл.
MaxFreeZz вне форума Ответить с цитированием
Старый 05.06.2009, 21:34   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Ваши наработки?
MaTBeu вне форума Ответить с цитированием
Старый 05.06.2009, 21:45   #3
MaxFreeZz
 
Регистрация: 05.06.2009
Сообщений: 6
По умолчанию

я же говорю не знаю (( проболел тему(( мучаюсь теперь.
MaxFreeZz вне форума Ответить с цитированием
Старый 05.06.2009, 23:33   #4
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Примерный алгоритм:
0. Создаешь 2 временных файла f1 и f2, текущим устанавливаешь f1.
Номер текущего файла можно хранить в переменной.
Так же нужны переменные для хранения:
- длинны максимальной последовательности (в начале 0).
- длинны текущей последовательности (в начале 0).

1. Читаешь первое число из файла.
(если файл пуст, соответственно и посл-ть пуста)
2. Обнуляешь текущий файл и записываешь в него это число.
Если числа нет - выход,
иначе: длина текущей посл-ти = 1.
d = не определено.
3.
4. Читаешь следующее число:
Если чисел в файле больше нет, то переход к шагу 7,
иначе:
Если d (шаг прогрессии) не определено, то определяешь его и идешь к шагу 5.
иначе: проверяешь принадлежит ли оно данной посл-ти.
5. Если принадлежит, то записываешь его в текущий файл и увеличиваешь длину текущей пос-ти на 1.
Переход к шагу 4.
6. Если не принадлежит, то:
7. Если длинна текущей посл-ти > длинны макс. посл-ти, то меняем текущий временный файл.
длинна макс. посл-ти = длинна текущей посл-ти.
длинна текущей посл-ти = 0.
Переход к шагу 2.
8. Если нет, то идем к шагу 2.

Когда достигнут конец файла:
определена длинна макс. посл-ти и в неактивном файле находится самая длинная последовательность.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 06.06.2009, 07:07   #5
MaxFreeZz
 
Регистрация: 05.06.2009
Сообщений: 6
По умолчанию

в 3. шаге ничего ??
MaxFreeZz вне форума Ответить с цитированием
Старый 06.06.2009, 11:14   #6
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

в 3. ничего, оставил, чтобы нумерацию не менять.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей простенькой. Делфи. svobodys Помощь студентам 7 29.03.2009 21:11
Помогите разобраться с задачей в Делфи Middle.Cry Помощь студентам 5 05.03.2009 14:33
Помогите с задачей на Делфи! f1n!Sh Помощь студентам 8 02.05.2008 18:28