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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2012, 20:33   #1
microlab
Пользователь
 
Регистрация: 06.11.2008
Сообщений: 51
По умолчанию Работа с вводом пароля

Составить программу которая будет запращивать пароль до тех пор пока не введут правильный или кол-во попыток не превысит 5. С каждым вводом пароля выводится кол-во оставшихся попыток. Спасибо.
microlab вне форума Ответить с цитированием
Старый 19.01.2012, 21:02   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const
pass='password';
k=5;
var i:integer;
s:string;
begin
i:=0;
s:='';
repeat
Writeln('InpuT pass');
writeln('Remaining ',k-i,' attempts');
Write('Pass:');readln(s);
i:=i+1;
until (i=k) or (s=pass);
if S=pass then Writeln('Access is restricted')
else Writeln('Access Denied');
readln;
readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 19.01.2012, 21:44   #3
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

а можно таким способом

Код:
uses
  crt;

var
  a: string;

function chek(const pas: string; att: integer): boolean;
var
  c, f: char;
  s: string;
  k: integer;
  charsLt: set of char;
  charsK: set of char;
  numbers: set of char;
begin
  k := 1;
  charsLt := ['А'..'я'];
  numbers := ['0'..'9'];
  charsK := ['A'..'z'];    
  while k <= att do 
  begin
    c := ' ';
    f := ' ';
    s := '';
    writeln('Введите пароль:');
    while c <> #13 do 
    begin
      write(s);
      c := readkey;
      if (c in charsLt) or (c in charsk) or (c in numbers) then s := s + c;
      if c = #8 then delete(s, length(s), 1);
      clrscr;
      writeln('Введите пароль:');    
    end;
    k := k + 1;
    writeln(s);
    if s = pas then 
    begin
      writeln('Пароль верный');
      result := true;
      break;
    end
    else 
    begin
      if k - 1 <> att then 
      begin
        writeln('Пароль не верный, повторите ввод');
        writeln('Осталось ', (att + 1) - k, ' попытки(-ок)...');
        if k = 2 then  writeln('Для повтора ввода нажмите любую клавишу, для выхода нажмите "Esc"');
        f := readkey;      
        if f = #27 then
        begin
          result := false;
          exit;
        end;
      end
      else
      begin
        writeln('Пароль не верный, попытки исчерпаны');
        writeln('Для выхода нажмите любую клавишу');
        readkey;
        exit;
      end;   
    end;
    clrscr;
  end;
end;

begin
  a := 'password';
  chek(a, 5);
end.

Последний раз редактировалось unbanned; 19.01.2012 в 22:35.
unbanned вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с вводом / выводом. С++ Slavytich Помощь студентам 4 28.11.2010 14:02
Проблема с вводом в массив prod87 Общие вопросы Delphi 1 24.11.2009 22:33
Непонятно вводом с клавиатуры lordus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 13.11.2009 16:10
Как реализовать запуск mstsc.exe с вводом ip, логина и пароля? ru3000 Microsoft Office Excel 35 19.07.2009 23:49
работа с файловым вводом выводом... world12_tk Общие вопросы C/C++ 1 13.03.2009 16:31