![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 15.08.2007
Сообщений: 118
|
![]()
Как перебрать все возможные варианты заглавных букв в слове? Например, слово "привет":
Привет пРивет прИвет ... ПРивет ПрИвет ПриВет ... ПРИВЕТ Результаты занести в мемо |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]()
Для начала устанавливается соответствие между буквами прописными и заглавными- создаешь 2 массива, в одном идут попорядку аски коды алфавита(прописные) а,б,в; во втором идут попорядку аски коды заглавных букв.
Далее начинаешь перебирать. Всего у тебя будет n^2 комбинаций, где n-длина слова. Перебор осуществляешь побуквенно, просто меняя букву на заглавную. Для этого есть функция chr(u:integer), которая выдает символ с кодом u. Заносить в мемо- memo1.lines.add(s:string). Хотя можно заносить и подругому. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 15.08.2007
Сообщений: 118
|
![]()
2 bill:
А можно подробнее? Желательно уже набросанный примерчик... |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]()
Ок. Вот реализация того что я говорил. Думаю сам сможешь остальное доработать(или подправить):
Код:
|
![]() |
![]() |
![]() |
#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)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 15.08.2007
Сообщений: 118
|
![]()
2 bill:
Спасибо, но программа делает явно не то, что надо! Вот смотри результат перебора слова hello: hel he h hel he h hel he h hel he h hel he h |
![]() |
![]() |
![]() |
#7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Вот вам пример полного перебора для двух символов:
Код:
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]()
Там надо думаю добавить еще цикл, + сделать сброс новоявленной строки. В общем ошибка идет при вызове процедуры замена(она то написана правильно).
=> Надо переделать ее вызов. Посмотрю попозже. p.s 2 =LeonZone=, хорошо бы если б написал точно все комбинации для одного слова. А то я насчитал почему то (n-2) вариантов, хотя их по идее должно быть n^2 ?! Последний раз редактировалось bill; 01.11.2007 в 21:33. |
![]() |
![]() |
![]() |
#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 |