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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2009, 00:23   #1
Ramal
Пользователь
 
Аватар для Ramal
 
Регистрация: 13.07.2009
Сообщений: 15
По умолчанию Генератор слов - что к чему?

Всем привет!
Помогите разобраться,как создать Генератор слов на Дельфи? Типа генератор паролей но только в алфавитном порядке,вместо цифр будет буквы ...
Если можно с исходниками плз !
Молитва программиста:Господи перезагрузи этот мир!
Ramal вне форума Ответить с цитированием
Старый 16.07.2009, 00:45   #2
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Елементарно, в два цикла For.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 16.07.2009, 00:47   #3
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

за тебя писать никто не будет.. если хочешь - то ищи в инете готтовое.. а нет - то делай сам.. смотри на функцыи Random и CHR
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 16.07.2009, 00:57   #4
The Best
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию

Так всё просто. Допустим, тебе надо создать пароль 11-тисимвольный. Ты включаешь рандом (во всяком случае на паскале надо было врубать его), ставишь цикл от 1 до 11 и побуквенно собираешь новое слово.. правда, оно может повторяться.. После всегй процедуры этой надо будет проверку ставить, еси не надо,чтобы повторялись. Во примерный код:
Код:
const sim='тут все символы допустимые для составления пароля'; их кол-во будет использоваться тут, так что считай их))
...                                                                                                                                        |
var                                                                                                                                      |
 i,j,sch: integer;                                                                                                                  | 
 s,s1: array [1..100] of string; //список в 100 паролей                                                     |
begin                                                                                                                                  |
 for I:= 1 to 100 do                                                                                                            |
  s[i]:=''; //чистим массив пролей перед забиванием                                                       |
 randomize; //включаем генератор случайных чисел                                                      /
 for i:= 1 to 100 do                            /--------------------------------------------------------------
  for J:= 1 to 11 do                            |
   s[i]:=s[i]+sim[1+random(кол-во символов)]; //формируем пароли
 for I:= 1 to 99 do
  for J:= i+1 to 100 do
   if s[i]=s[j] then
    s[j]:=''; //выявляем повторы
 sch:=1;
 for I :=1 to 100 do
  if s[i]<>'' then
   begin
    s1[sch]=s[i];
    inc(sch);
   end; //убираем повторы
end;
а вот что значит в алфавитном порядке?..

Последний раз редактировалось The Best; 16.07.2009 в 01:06.
The Best вне форума Ответить с цитированием
Старый 16.07.2009, 00:59   #5
Ramal
Пользователь
 
Аватар для Ramal
 
Регистрация: 13.07.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Вавел из ГМТУ Посмотреть сообщение
Елементарно, в два цикла For.
как именно? подскажите пожалуйста мне это очень нужно
Молитва программиста:Господи перезагрузи этот мир!
Ramal вне форума Ответить с цитированием
Старый 16.07.2009, 01:00   #6
The Best
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Ramal Посмотреть сообщение
как именно? подскажите пожалуйста мне это очень нужно
ыть) я же тебе написал уже)
The Best вне форума Ответить с цитированием
Старый 16.07.2009, 01:05   #7
Ramal
Пользователь
 
Аватар для Ramal
 
Регистрация: 13.07.2009
Сообщений: 15
По умолчанию

Спасибо тебе большое!!! +5
Молитва программиста:Господи перезагрузи этот мир!
Ramal вне форума Ответить с цитированием
Старый 16.07.2009, 01:09   #8
Ramal
Пользователь
 
Аватар для Ramal
 
Регистрация: 13.07.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от The Best Посмотреть сообщение
Так всё просто. Допустим, тебе надо создать пароль 11-тисимвольный. Ты включаешь рандом (во всяком случае на паскале надо было врубать его), ставишь цикл от 1 до 11 и побуквенно собираешь новое слово.. правда, оно может повторяться.. После всегй процедуры этой надо будет проверку ставить, еси не надо,чтобы повторялись. Во примерный код:
Код:
const sim='тут все символы допустимые для составления пароля'; их кол-во будет использоваться тут, так что считай их))
...                                                                                                                                        |
var                                                                                                                                      |
 i,j,sch: integer;                                                                                                                  | 
 s,s1: array [1..100] of string; //список в 100 паролей                                                     |
begin                                                                                                                                  |
 for I:= 1 to 100 do                                                                                                            |
  s[i]:=''; //чистим массив пролей перед забиванием                                                       |
 randomize; //включаем генератор случайных чисел                                                      /
 for i:= 1 to 100 do                            /--------------------------------------------------------------
  for J:= 1 to 11 do                            |
   s[i]:=s[i]+sim[1+random(кол-во символов)]; //формируем пароли
 for I:= 1 to 99 do
  for J:= i+1 to 100 do
   if s[i]=s[j] then
    s[j]:=''; //выявляем повторы
 sch:=1;
 for I :=1 to 100 do
  if s[i]<>'' then
   begin
    s1[sch]=s[i];
    inc(sch);
   end; //убираем повторы
end;
а вот что значит в алфавитном порядке?..

Я уже два дня бился над этим,вот и подумал зарегиться здесь чтобы получить ответ ! Спасибо тебе - то что надо !
не знаю как вы здесь ставите оценки,моя оценка +5
Молитва программиста:Господи перезагрузи этот мир!
Ramal вне форума Ответить с цитированием
Старый 16.07.2009, 01:11   #9
Виталий Серов
Заснувший
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 213
По умолчанию

Объяви массив из букв, потом составляй из этого массива строку нужной длинны.
При этом номер очередной буквы(номер элемента массива) выбирай с помощью функции random().

Код:
......
Massiv - это массив букв;
33 - их количество
stroka - это собственно ваше "слово"(результат)
......
randomize;
stroka := '';
for i := 1 to Dlinna do
begin
stroka := stroka + Massiv[random(33)];
end;
Если надо по алфовитному порядку, то результатом всегда бедет строка "Абвгдеё ........"

...............................

Пока писал автор что-то сам сообразил. Но мой код проще...

Последний раз редактировалось Виталий Серов; 16.07.2009 в 01:14.
Виталий Серов вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор слов!создание вопросы . kzmd Общие вопросы Delphi 15 16.10.2010 20:04
Объясните что к чему в SQL запросе Gulik БД в Delphi 14 15.06.2009 21:07
дойти не может что к чему if-soft Паскаль, Turbo Pascal, PascalABC.NET 7 07.10.2008 10:45
C++ Builder 6! Задача! помогите Разобраться что к чему {[HelPix]} Помощь студентам 1 12.05.2008 19:18