Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 20:25   #1
s2dentishe
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 70
По умолчанию Работа со строкой

Добрый вечер! Есть задача, последовательным перебором и добавлением символов к основному слову подобрать нужное. То есть, есть пароль, например "кот". нужно взять строку с одним символом, перебрать последовательно от "а" до "я" этот символ, если он не равен паролю, значит установить первый символ в "а". Теперь строка примет вид "аа", нужно перебирать второй символ строки от "а" до "я" и так пока строка не станет равной паролю, т.е. слову "кот"
s2dentishe вне форума Ответить с цитированием
Старый 04.12.2009, 20:33   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

И какие же трудности возникают у Вас в связи с выполнением данной задачи?
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 04.12.2009, 20:41   #3
s2dentishe
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 70
По умолчанию

дело в том что пароль может быть из 3 символов, а может из 7 или 8. То есть количество вложенных циклов заранее не известно. Не знаю как решить эту проблему
s2dentishe вне форума Ответить с цитированием
Старый 04.12.2009, 20:51   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Написал алгоритм и понял, что наврал.
Что-то ничего в голову кроме дерева, причём не бинарного, в голову не лезет. А Вы уверены, что никаких ограничений на задачу не дано? Просто она уж больно тяжёлой в смысле времени работы и требуемой памяти получается
Росли вроде умными, выросли дурнями... (c)А.Васильев

Последний раз редактировалось Greblin; 04.12.2009 в 20:58.
Greblin вне форума Ответить с цитированием
Старый 04.12.2009, 20:57   #5
s2dentishe
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 70
По умолчанию

Вместо символов я использую кодировку
На счет ограничений, можно рассмотреть вариант когда пароль от 3 до 6 символов.

Последний раз редактировалось s2dentishe; 04.12.2009 в 21:04.
s2dentishe вне форума Ответить с цитированием
Старый 05.12.2009, 10:22   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
function provpass(const r: string; provfunc: TFunc; maxlen: integer): string;
var
  x: char;
begin
  result:='';
  if length(r)>maxlen then Exit;
  for x:='a' to 'я' do 
  begin
    if provfunc(r+x) then begin result:=r+x; break; end;
  end;
  if result<>'' then Exit;
  for x:='a' to 'я' do 
  begin
    result:=provpass(r+x);
    if result<>'' then break;
  end;
end;
provfunc это функция которая должна проверить нашу строчку и вернуть TRUE если она подходит
Tprovfuтс = function(const teststr: string): boolean;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 05.12.2009 в 10:27.
evg_m вне форума Ответить с цитированием
Старый 05.12.2009, 15:09   #7
s2dentishe
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 70
По умолчанию

Большое спасибо!
s2dentishe вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строкой + repeat...until Hom9IchOK Помощь студентам 5 18.11.2009 19:31
работа со строкой. D_E_N Общие вопросы Delphi 4 25.10.2009 16:19
Работа со строкой в С помогите плиз :-) Daedra Помощь студентам 2 25.12.2008 15:48
Работа с командной строкой lyryks Помощь студентам 2 16.11.2007 13:06
Работа в Делфи с командной строкой Noor Общие вопросы Delphi 6 30.12.2006 12:49