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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> массив с текстом, и действия с ним
сообщение
Сообщение #1


Гость






Люди, помогите составить программу нахождения в произвольно заданом тексте максимальную по длине последовательность цифр (если можно с вводом исходных данных из текстового файла, и выводом туда результата работы программы)....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Во первых поищи по форуму и загляни в наш FAQ найдешь все что нужно
Вот тебе алгоритм :

перед началом максимальная последовательность max := ''; // пустая строка
Читаешь строку из файла, проходишь по строке, пока не наткнешься на цифру, идешь дальше пока не наткнешься на НЕ цифру , выделяешь кусок с цифрами, и сравниваешь его длинну с длинной max, если больше то записываешь в max.

примерно так :


max := '';
...

i:=1;
while(i<=length(s)) do begin
 while (not(s[i] in ['0'..'9']))and(i<=length(s)) do
   inc(i);
 if i<=length(s) then begin
   start := i;
  while(s[i] in ['0'..'9']) do
    inc(i);
  if i-start>length(max) then
   max := copy(s, start, i-start);
  end;
end;


Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






NIKson, смотри здесь:
FAQ: Как найти в массиве максимальную последовательность одинаковых символов?
меняешь две (!!!) строки и получаешь то, что тебе нужно...

klem4:
Цитата
выделяешь кусок с цифрами, и сравниваешь его длинну с длинной max, если больше то записываешь в max.
Неоптимально. Лучше хранить 2 переменных: индекс начала и длину последовательности (максимум 2 integer-а), чем всю строку символов (она может быть гораздо длинней) ;)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Volvo, в приведенном примере я так и сделал, это я для лучьшего понимания так сказатьнаписал smile.gif :yes:


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






max := '';

Ты кому-нибудь будешь рассказывать сказки, мне не надо smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


аа ты про это smile.gif Да тут можно обойтись и без строки дополнительной. Не понял сначала о чем ты :smilie:

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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