![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| MotoArhangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
Сижу не могу сообразить как реализовать.
Есть допустим многочлен -7x^4-8x^2-1x-9 Его необходимо запихнуть в массив в виде -9 -1 -8 0 -7 Вот мое кривое, не рабочее творение:d
|
|||
|
||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 2 Всего: 6 |
||||
|
||||
| MotoArhangel |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
Поясню в чем проблемма
Вот эта части отрабатывается нормально. Для -7x^4-8x^2. -Проходим в цикле и записываем в строку: - и числа -Если встречаем x пропускаем -Попадается ^ тогда указываем, что следующее число будет указателем на месте в массиве +1 - записываем в массив - убираем указатель - очищаем строку Беда в том что для участка -1x-9 это не пройдет, т.к. нет ^. Попробовал что то придумать
, но как то не то. |
||||
|
|||||
| MotoArhangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
А как последнее число записать не соображу. -9
|
|||
|
||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 2 Всего: 6 |
рисуй диаграмму состояний/переходов
|
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Мне почему-то кажется, что тут очень хорошо покажут себя регулярки. Если не разберешься сам, постараюсь вечером скинуть выражение.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| MotoArhangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
||||
|
||||
| PointerToNil |
|
|||
![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 17.6.2013 Репутация: 2 Всего: 6 |
это что, ваша диаграмма??????????????????
состояния: начало строки, знак, основание степени, идентификатор переменной, оператор возведения, показатель степени, конец строки переходы - отдельные символы и их группы: +, -, ^, цифра, буква |
|||
|
||||
| MotoArhangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
||||
|
||||
| Poseidon |
|
||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Тут, конечно, надо бы узнать какие в принципе могут быть входные строки. Но для выражения, которое в примере, подойдет вот такая вот регулярка:
Пример использования:
Это сообщение отредактировал(а) Poseidon - 26.5.2014, 22:13 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||
|
|||||
| MotoArhangel |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
В чем ошибка? Почему в строка при записи пустая?
Добавлено @ 22:23 Функция рабочая? Проверяли?
В какой версии Delphi уже есть? Просто сейчас в Lazarus'e пишу =) Но если функция нормально работает и в delphi не долго перенести или к lazarusу прицепить регулярку. И вопрос если массив в 10 строк то
И соответственно Pattern поправить? Это сообщение отредактировал(а) MotoArhangel - 26.5.2014, 22:33 |
||||||
|
|||||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
В XE3 точно есть. В более ранних, если нет, то можно воспользоваться сторонними модулями для регулярок. Их полно в сети.
Нужно смотреть саму регулярку. Как там указаны группировки, так и разносить их по массиву. Это сообщение отредактировал(а) Poseidon - 26.5.2014, 22:34 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| MotoArhangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
По логике, даже так
Буду пробовать=) Спасибо что отозвались. Посмотрите мой код выше. Что в нем не так, просто по правильности написания хотя бы. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Судя по справке, в XE2 появилась.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| MotoArhangel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 13.3.2011 Репутация: нет Всего: нет |
Сам все же разобрался с автоматами =)
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |