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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2012, 01:28   #1
BArt2000
 
Регистрация: 07.02.2012
Сообщений: 6
По умолчанию Программа перебора вариантов (изменить перебор цифровой на перебор буквенный)

Нужно отредактировать имеющеюся программу. Вообщем суть в том что пользователь вводить число букв. буквы программа сама берёт рандомные и поставить все эти буквы во все возможные варианты. Ответ записать в текстовый документ. Вот программа только она делает все тоже самое только с цифрами и не выводит в текстовый документ.
Код:
type stroka=string;
Var k,a:integer;
procedure perest(n:integer; s:stroka);
{n-элемент, который будет вставляться в строку. На данный момент, в строке n-1 символ}
var i:integer;
    st1,st:stroka;
begin
  if n=k+1 then   {В строке n символов, она сформирована, выводим на экран}
              begin
                writeln(s);   exit;
              end
else {В строке  меньше n символов}
    for i:=1 to n do    {Вставляем символ n в строку на i-е место (от 1 до n)}
      begin
        st:=s; {Копируем строку s во вспомогательную переменную st}
        str(n,st1); {Переводим цифру n в строку st1}
        insert(st1,st,i); {Вставляем строку st1 в строку st}
        perest(n+1,st); {Вызываем процедуру perest для следующей цифры n+1}

      end;
      

end;
Begin {Начало основной программы}
  writeln('Введите количкство букв'); readln(k);
  perest(1,''); {Изначально вызываем процедуру для элемента 1, вставляем его в пустую строку}
  readln;
end.
Заранее большое спасибо



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.02.2012 в 09:10.
BArt2000 вне форума Ответить с цитированием
Старый 07.02.2012, 09:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
программа сама берёт рандомные и поставить все эти буквы во все возможные варианты.
противоречие.
Вы уж определитесь - Вам нужно получить несколько случайных вариантов (кстати, совпасть они могут?), либо перебрать ВСЕ ВОЗМОЖНЫЕ..

Да, сходите в этот пост на форуме - ТЫРК
возможно опубликованное там решение перебора элементов строки Вам устроит...


Цитата:
Ответ записать в текстовый документ
ну, это совсем просто.
объявляете переменную типа Text (TextFile, если исходник компилируется в Delphi)
открываете её на запись в начале программы,
заменяете все нужные WriteLn(Текст) на WriteLn(ФайловаяПеременная, Текст);
в конце программы (перед финальным Readln) закрываете файл.
вот и всё, вывод будет записан в текстовый файл.

Последний раз редактировалось Serge_Bliznykov; 07.02.2012 в 09:21.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.02.2012, 12:28   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
Радость

Цитата:
Сообщение от BArt2000 Посмотреть сообщение
Нужно отредактировать имеющеюся программу. Вообщем суть в том что пользователь вводить число букв. буквы программа сама берёт рандомные и поставить все эти буквы во все
Заранее большое спасибо



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Могу помочь исходником подобной программы на Delphi
создания списка паролей для перебора Delphi/Pascal/Исходник


Код:
procedure sleep(m:integer);
var i,t:integer;
begin
t:=windows.GetTickCount;
  repeat
   i:=windows.GetTickCount;
   if ((i-t)>m) then exit;
   application.ProcessMessages;
  until true
end;

function StartAndWait(cmdline: String): Boolean;
var
  si: Startupinfo;
  pi: Process_information;
begin
  result := false;
  zeromemory( @si,sizeof(si) );
  si.cb := sizeof(si);
  //пробуем создать процесс, используя заданную командную строку
  //в случае неудачи выходим из функции с результатом False
  if not createprocess( nil, pchar(cmdline), nil, nil, false, 0, nil, Pchar(GetDirectFromFileName(cmdline)), si, pi ) then
    exit;
  //ждем пока процесс не завершится
  //infinite - означает, что ждем без ограничения во времени
  WaitForSingleObject( pi.hprocess, infinite );
  //завершаем процесс
  closehandle( pi.hprocess );
  closehandle( pi.hthread );
  //возвращаем True
  Result := True;
end;
Вложения
Тип файла: zip Перебор вариантов.zip (205.9 Кб, 38 просмотров)
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 07.02.2012, 23:29   #4
BArt2000
 
Регистрация: 07.02.2012
Сообщений: 6
По умолчанию

Спасибо БОЛЬШОЕ, но нужно именно на паскале)
BArt2000 вне форума Ответить с цитированием
Старый 02.03.2015, 12:00   #5
levenecav
Новичок
Джуниор
 
Регистрация: 02.03.2015
Сообщений: 4
По умолчанию

Цитата:
Сообщение от denisbrain Посмотреть сообщение
Могу помочь исходником подобной программы на Delphi
создания списка паролей для перебора Delphi/Pascal/Исходник


Код:
procedure sleep(m:integer);
var i,t:integer;
begin
t:=windows.GetTickCount;
  repeat
   i:=windows.GetTickCount;
   if ((i-t)>m) then exit;
   application.ProcessMessages;
  until true
end;

function StartAndWait(cmdline: String): Boolean;
var
  si: Startupinfo;
  pi: Process_information;
begin
  result := false;
  zeromemory( @si,sizeof(si) );
  si.cb := sizeof(si);
  //пробуем создать процесс, используя заданную командную строку
  //в случае неудачи выходим из функции с результатом False
  if not createprocess( nil, pchar(cmdline), nil, nil, false, 0, nil, Pchar(GetDirectFromFileName(cmdline)), si, pi ) then
    exit;
  //ждем пока процесс не завершится
  //infinite - означает, что ждем без ограничения во времени
  WaitForSingleObject( pi.hprocess, infinite );
  //завершаем процесс
  closehandle( pi.hprocess );
  closehandle( pi.hthread );
  //возвращаем True
  Result := True;
end;
Привет!
Очень нужна такая программка, но в ней отображается только 1000 вариантов. Я честно не шарю, но если вы мне поможете буду благодарен. Как увеличить это число?
levenecav вне форума Ответить с цитированием
Старый 02.03.2015, 12:56   #6
levenecav
Новичок
Джуниор
 
Регистрация: 02.03.2015
Сообщений: 4
По умолчанию

Уже не надо, разобрался...
levenecav вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перебор вариантов luffi Общие вопросы Delphi 2 05.12.2011 16:47
Рекурсия. Перебор всевозможных вариантов элементов матрицы Mr_freeman Помощь студентам 15 02.03.2011 21:08
Перебор всех возможных вариантов phenix Помощь студентам 3 03.12.2010 21:29
Перебор всех возможных вариантов [MI_nor] Общие вопросы C/C++ 9 01.04.2009 21:17
Перебор вариантов... или что-то такое elsin Общие вопросы Delphi 3 15.01.2009 22:13