Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

Генератор   Найти похожие ветки 

 
Res   (2008-02-27 00:08) [0]

Здраствуйте уважаемые Мастера, пытаюсь написать генератор всех последовательностей. Но пока ничего путного не вышло :(
var
list,password:string;
x,y,z:integer;
begin
x:=1;
list:=form1.Edit1.Text;

for x:=1 to 3 do
begin
y:=0;
z:=0;
 while(y<length(list)) do
 begin
 Inc(y);
 password:=list[y];
   while(z<length(list)) do
   begin
   Inc(z);
       if(length(password)=x) then
       begin
       form1.Memo1.Lines.Add(password);
       break;
       end;
     password:=password+list[z];
   end;
 end;

end;

end;


 
Res   (2008-02-27 00:16) [1]

Задача: сгенерировать в таком порядки: допустим в маске стоит (list) 1234
1
2
3
4
11
12
13
14
21
22
23
24
31
32
33
34
41
42
43
44


 
Германн ©   (2008-02-27 00:49) [2]


>
> Res   (27.02.08 00:08)
>
> Здраствуйте уважаемые Мастера, пытаюсь написать генератор
> всех последовательностей. Но пока ничего путного не вышло
> :(
> var
> list,password:string;
> x,y,z:integer;
> begin
> x:=1;                                         //а это зачем?
> list:=form1.Edit1.Text;
>
> for x:=1 to 3 do                       //почему 1-3, а не 1-4?
> begin
> y:=0;
> z:=0;
>  while(y<length(list)) do
>  begin
>  Inc(y);
>  password:=list[y];
>    while(z<length(list)) do
>    begin
>    Inc(z);
>        if(length(password)=x) then                            //по примеру из [1] длина строки тут не причем.
>        begin
>        form1.Memo1.Lines.Add(password);
>        break;
>        end;
>      password:=password+list[z];
>    end;
>  end;
>
> end;
>
> end;
>

Короче продолжай думать и пробовать.


 
Res   (2008-02-27 00:56) [3]

Спасибо за совет :) но лучше хоть бы что нить подсказали )))


 
Германн ©   (2008-02-27 01:03) [4]


> Res   (27.02.08 00:56) [3]
>
> Спасибо за совет :) но лучше хоть бы что нить подсказали
> )))
>

А я разве не подсказал? Я что для своего собственного развлечения ставил комментарии? Или тебе нужен готовый код? Тогда ты ошибся адресом. Здесь не подают. Здесь помогают исправлять ошибки тем, кто что-то сам делает.


 
Res   (2008-02-27 01:38) [5]

Прошу прощения что еще раз беспокою, но никак не могу понять почему печатает:
1
2
11
21
112
212

Хотя должно
1
2
11
12
21
22
...

var
list,password:string;
x,y,z,t:integer;
begin
list:=form1.Edit1.Text;
 for x:=1 to 3 do  //Какое макс кол-во символов
 begin
   for y:=1 to length(list) do  //Делаем от начала списка
   begin
   password:=list[y]; //Начальный символ
     for z:=1 to length(list) do //
     begin
       if(length(password)=x{Если длина пароля равна x}) and (z=length(password){и z равна последнему символу в маске}) then break;
       password:=password+list[z];
     end;
     form1.Memo1.Lines.Add(password);
   end;
 end;
end;


 
Германн ©   (2008-02-27 02:08) [6]


>  for x:=1 to 3 do  //Какое макс кол-во символов

Объясни смысл этого цикла с учётом комментария.


 
Бегущий человек ©   (2008-02-27 13:05) [7]

Д.Кнут , том первый. глава первая.  Или том четвертый, который полностью посвещен проблеме генерации всех кортежей и перестановок.



Страницы: 1 вся ветка

Текущий архив: 2008.03.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
6-1183235019
TNMNNTP
2007-07-01 00:23
2008.03.23
TNMNNTP


15-1202598877
Ламот
2008-02-10 02:14
2008.03.23
Прошу помощи в выборе системы видеонаблюдения.


9-1168206700
akaValerius
2007-01-08 00:51
2008.03.23
Направление движения при повороте


2-1203861728
batya-x
2008-02-24 17:02
2008.03.23
мерцание на Timage


2-1203486854
серж
2008-02-20 08:54
2008.03.23
ComboBox