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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2012, 10:42   #1
Студент2009
 
Регистрация: 18.01.2009
Сообщений: 5
Печаль Генератор паролей (Paskal)

Здравствуйте... Задача состоит в том чтобы сделать генератор паролей... А именно вывод на экран сгенерированных 20 паролей длиной 6 символов каждая, содержащие Латинские прописные буквы(A-Z) и Русские строчные буквы(а-я). ASCII коды мне понятны: коды английских символов «A»=65,…,«Z»=90, коды русских символов «а» - 160,…, «п» - 175, «р» - 224,…, «я» - 239... Не могу сообразить как правильно реализовать цикл... У меня выводить только Латинские прописные буквы...

Код:
program IIOPOJIu;
var
   a,b,i,j:byte;
   L:array[1..6] of char;
begin
     a:=240;
     b:=240;
     writeln;
     for j:=1 to 20 do
     begin
          i:=1;
          while (i<7) do
          begin
               while (a=b) do
               begin
                     a:=random(240);
                     randomize;
               end;
               b:=a;
               if (((a>=65)and(a<=90))or(((a>=160)and(a<=175))and((a>=175)and(a<=224))and((a>=224)and(a<=239)))) then
               begin
                     L[i]:=chr(a);
                     i:=i+1;
               end;
          end;
          for i:=1 to 6 do
          write(L[i]);
          writeln;
     end;
     readln;
end.

Последний раз редактировалось Студент2009; 19.04.2012 в 10:52.
Студент2009 вне форума Ответить с цитированием
Старый 19.04.2012, 11:08   #2
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Напутали с условием, вместо кучи and-ов явно должно быть чуть-чуть or-ов. Таблицу кодов ASCII не помню, точнее не скажу

Upd
Если у Вас коды правильные то надо как-то
Цитата:
((a>=65) and (a<=90)) or ((a>=160) and (a<=175)) or ((a>=224) and (a<=239))
З.Ы. randomize достаточно вызываь 1 раз до входа в цикл, и не понятно зачем вы сравниваете предыдущее и следующее число (b=a) в условии задачи про неповторяемость рядом стоящих символов ничего нету, да и вероятность такой повторяемости не велика, к чему этот лишний код?

Последний раз редактировалось astecenko; 19.04.2012 в 11:22.
astecenko вне форума Ответить с цитированием
Старый 19.04.2012, 11:13   #3
Студент2009
 
Регистрация: 18.01.2009
Сообщений: 5
По умолчанию

А. Точно. Спасибо.

Это выглядить так будет:

Код:
if (((a>=65)and(a<=90))or((a>=160)and(a<=175))or((a>=224)and(a<=239))) then

Последний раз редактировалось Студент2009; 19.04.2012 в 11:21.
Студент2009 вне форума Ответить с цитированием
Старый 19.04.2012, 11:17   #4
Студент2009
 
Регистрация: 18.01.2009
Сообщений: 5
По умолчанию

Исправил... Спасибо!!!

Последний раз редактировалось Студент2009; 19.04.2012 в 11:20.
Студент2009 вне форума Ответить с цитированием
Старый 19.04.2012, 11:45   #5
Студент2009
 
Регистрация: 18.01.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от astecenko Посмотреть сообщение
З.Ы. randomize достаточно вызываь 1 раз до входа в цикл, и не понятно зачем вы сравниваете предыдущее и следующее число (b=a) в условии задачи про неповторяемость рядом стоящих символов ничего нету, да и вероятность такой повторяемости не велика, к чему этот лишний код?
Все таки возможны повторения символов...
Студент2009 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор паролей pleezee Microsoft Office Excel 1 20.05.2010 00:59
Генератор паролей artyomz JavaScript, Ajax 0 15.10.2009 19:01
Генератор паролей Dimixis Помощь студентам 2 03.07.2007 13:08