![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
КириллV |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
Помогите пожалуйста отладить программу, задача такая:
Вводится текст. Создается новый массив подстрок, выделяется из каждой строки подстроки: Разделенные более чем тремя знаками звездочка <*>.Среди выделенных подстрок находится подстрока: Cодержащая минимальное число латинских букв. Неполадка заключается в том что программа формирует и выводит массив строк даже, если символа звездочка нет или меньше 3х... Вот код программы:
Сообщение отредактировано: КириллV - 16.01.2008 13:58 |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
приведи пару примеров входных/выходных данных
напримет вот в этом примере 2 подстроки или ни одной ? qwerty***123456 ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
КириллV |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
входные данные: qwerty***123456
выходные: qwerty***123456 тоесть подстроки прога не выделила, но она и не должна, она должна выделять только когда больше 3х символов звездочка... пример: входные данные: qwerty****123456 выходные: Подстроки: qwerty 123456 строка с мин. кол-вом лат букв: 123456... а вот если ввести : qwerty123456 то программа просто выводит всю строку а должна ничего не выводить... |
Rian |
![]()
Сообщение
#4
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
несколько строк, конечно не помешают
по условию в той строке нет подстрок он и проверяет через pos() четыре снежинки. (должно быть >3) Может лучше проверять строку вручную, по символьно циклом? если появляется снежинка, то индекс увеличить, ещё одна-ещё увеличить, А если снежинки закончились и следующий не снежинка, то проверить их количество. Если их мало обнулить индекс, если достаточно скопировать подстроку и удалить... -------------------- Objective-C, Unity3d
|
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
update
изивиняюсь, вопрос неверный задал. В общем разделитель - последователность символов '*' в количестве 4 и более, так ? Сообщение отредактировано: klem4 - 16.01.2008 19:31 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
КириллV |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
update изивиняюсь, вопрос неверный задал. В общем разделитель - последователность символов '*' в количестве 4 и более, так ? Да совершенно верно... и программа как раз должна выделять подстроки если он есть, а если нет то писать что их нет...) Я щас думаю над разными вариантами исправления, если у кого появятся идеи пишите код прямо здесь, заранее спасибо) Сообщение отредактировано: КириллV - 16.01.2008 20:42 |
klem4 |
![]()
Сообщение
#7
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
проверь вот это:
uses crt; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Rian |
![]()
Сообщение
#8
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
Народ, не пойму где глюк!
если раскоментировать {else count:=0;} то выбивает ошибку "акцес виолатион", а условие if st[i+1]<>'*' then вообще не проверяется или всегда true??? единственное, что контролирует количество снежинок это if count>3 ПОЧЕМУ? uses crt; -------------------- Objective-C, Unity3d
|
Yevgeny |
![]()
Сообщение
#9
|
![]() The matrix has me!!! ![]() ![]() Группа: Пользователи Сообщений: 74 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Если раскоментить {else count:=0;}, то тогда у ветви THEN по окончании не должно быть ";", попробуй убрать после End точку с запятой)))
Добавлено через 4 мин. А почему ты count нигде не обнуляешь, если не ошибаюсь то тут это надо делать при каждом повторном входе в цикл!!! -------------------- "Брать производную можно научить даже обезьяну" - мой препод по матану! :-)
|
КириллV |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
проверь вот это: uses crt; неработает, ввожу строку, даже как в примере, и ничего не происходит... |
Rian |
![]()
Сообщение
#11
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если раскоментить {else count:=0;}, то тогда у ветви THEN по окончании не должно быть ";", попробуй убрать после End точку с запятой))) дело не в ней я её убираю Добавлено через 4 мин. А почему ты count нигде не обнуляешь, если не ошибаюсь то тут это надо делать при каждом повторном входе в цикл!!! count-это глобальная переменная я её использую как накопитель и флаг и в цикле я хочу её обнулять при определённых условиях, но именн оно не работает. -------------------- Objective-C, Unity3d
|
klem4 |
![]()
Сообщение
#12
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
а вот вранья не надо, моя программа проходит _все_ тексты приведенные на этой странице, только единственное ищется подстрока с максимальным содержанием букв, не ужели так сложно догадаться по префиксам max_ ? Изменить нужно буквально три строчки ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Rian |
![]()
Сообщение
#13
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 394 Пол: Мужской Репутация: ![]() ![]() ![]() |
Закончил я свой код.
Боже, какое ламерство, столько паники, а всего единичку не дописал. klem4, спасибо за функцию. Прикрепленные файлы ![]() -------------------- Objective-C, Unity3d
|
КириллV |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
а вот вранья не надо, моя программа проходит _все_ тексты приведенные на этой странице, только единственное ищется подстрока с максимальным содержанием букв, не ужели так сложно догадаться по префиксам max_ ? Изменить нужно буквально три строчки ... Извини не заметил... ![]() Всем спасибо за помощь... |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 11:07 |