|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2007, 16:50 | #1 |
Форумчанин
Регистрация: 15.08.2007
Сообщений: 118
|
Перебор заглавных букв в слове
Как перебрать все возможные варианты заглавных букв в слове? Например, слово "привет":
Привет пРивет прИвет ... ПРивет ПрИвет ПриВет ... ПРИВЕТ Результаты занести в мемо |
28.10.2007, 17:52 | #2 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
Для начала устанавливается соответствие между буквами прописными и заглавными- создаешь 2 массива, в одном идут попорядку аски коды алфавита(прописные) а,б,в; во втором идут попорядку аски коды заглавных букв.
Далее начинаешь перебирать. Всего у тебя будет n^2 комбинаций, где n-длина слова. Перебор осуществляешь побуквенно, просто меняя букву на заглавную. Для этого есть функция chr(u:integer), которая выдает символ с кодом u. Заносить в мемо- memo1.lines.add(s:string). Хотя можно заносить и подругому. |
28.10.2007, 19:31 | #3 |
Форумчанин
Регистрация: 15.08.2007
Сообщений: 118
|
2 bill:
А можно подробнее? Желательно уже набросанный примерчик... |
31.10.2007, 20:38 | #4 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
код
Ок. Вот реализация того что я говорил. Думаю сам сможешь остальное доработать(или подправить):
Код:
|
31.10.2007, 21:24 | #5 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
По сути эта задача - перебор всех значений двоичного пятиразрядного числа. Вместо нуля прописная, вместо единицы заглавная буква.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
01.11.2007, 19:53 | #6 |
Форумчанин
Регистрация: 15.08.2007
Сообщений: 118
|
2 bill:
Спасибо, но программа делает явно не то, что надо! Вот смотри результат перебора слова hello: hel he h hel he h hel he h hel he h hel he h |
01.11.2007, 21:06 | #7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Вот вам пример полного перебора для двух символов:
Код:
|
01.11.2007, 21:11 | #8 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
Там надо думаю добавить еще цикл, + сделать сброс новоявленной строки. В общем ошибка идет при вызове процедуры замена(она то написана правильно).
=> Надо переделать ее вызов. Посмотрю попозже. p.s 2 =LeonZone=, хорошо бы если б написал точно все комбинации для одного слова. А то я насчитал почему то (n-2) вариантов, хотя их по идее должно быть n^2 ?! Последний раз редактировалось bill; 01.11.2007 в 21:33. |
02.11.2007, 14:59 | #9 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
не n^2, а 2^n (n-число букв в слове)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать перебор ??? | akasex | Общие вопросы Delphi | 2 | 13.06.2008 09:27 |
Задача на большой перебор | МаксимNEWProgramm | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 06.04.2008 18:15 |