Задачи по Pascal. Числовой пароль

pascalУсловие задачи : Составить программу которая требует у пользователя ввести числовой пароль. Если пароль правильный, то все строки экрана заполняются сообщением Доступ разрешен. Число попыток 3.

Сложность : средняя .

Для начала давайте решим что нам будет нужно в этой задаче.
1. Нам понадобятся 4 переменные. Две под пароль, одна для количества попыток и еще одна для цикла со счетчиком который мы будем использовать когда нам понадобиться заполнить экран сообщением Доступ разрешен.

2. Также нужен будет цикл, я решил использовать цикл repeat until ,т.к. очень удобно придумать условие для выхода и удобно работать с нашими попытками которых у нас 3.

3. В самом цикле будет 2 условия if else.

4. И цикл for.

Давайте объявим наши переменные :

uses crt ; 
var 
   pass , userpass : longint;
   i , count : integer ;
begin
end.

Для пароля я использовал тип longint, что он был длиннее , т.к. если использовать тип integer, то максимум цифр в пароле будет 5.

А для цикла и для числа попыток можно уже использовать тип integer, т.к. цифры там не большие.

Для начала нам нужно задать пароль и число попыток.

pass := 234124;
count := 3;

Мы задали какой-то пароль и число попыток.
Теперь нам надо сделать цикл, сначала просто напишем его, с условием выхода :

repeat

until(pass = userpass);

Т.е. у нас цикл прекратит работу когда пароль совпадут, вполне все логично.
Теперь самое трудное.

В самом цикле сначала мы выводим число попыток.

writeln('Осталось попыток : ', count);

Дальше пишем наше первое условие :

if count < 1 then
      begin
           writeln('В доступе отказано!!!');
           break; {выход из цикла}
      end
else write('Введите пароль : '); readln(userpass);

Что мы тут делаем ? Мы начинаем смотреть сколько попыток у нас на данные момент. Если их меньше 1 , т.е. ноль, то мы выводим сообщение и прекращаем работу цикла и затем выходим из программы. Иначе т.е. попытки у нас еще остались мы разрещаем пользователю ввести пароль.

Дальше уже идет работа с паролем , пишем условие :

if pass = userpass then
   begin
        clrscr;
        for i:=1 to 25 do
        writeln('Доступ разрешен!!!');
   end
else
    begin
         writeln('Пароль введен не верно');
         count := count - 1 ;
         Delay(1000);
         сlrscr;
    end;

Как я и сказал идет работа с паролем. Если пароли совпадают , то мы очищаем экран, т.е. удаляется всё что было написано ранее и заполняем экран надписью Доступ разрешен!!!.

Если не правильно ввели то выводим что Пароль введен не верно, уменьшаем количество попыток на одну.

Delay(1000);
сlrscr;

Это можно и не писать, я сделал для удобства, эти строки кода, очищают экран после каждой не правильной попытки через одну секунду , чтобы не было лишнего текста.

Вот и все программа готова!!!

Весь код программы :

uses crt ;
var
       pass, userpass : longint ; 
       count, i : integer;
begin
clrscr;

pass := 234124;
count := 3 ;

repeat

        writeln('Осталось попыток : ', count);
        if count < 1 then
                begin
                        writeln('В доступе отказано!!!');
                        break;{выход из цикла}
                end
        else write('Введите пароль : '); readln(userpass);

        if pass = userpass then
                begin
                        clrscr;
                        for i:=1 to 25 do
                                writeln('Доступ разрешен!!!');
                end
        else
                begin
                        writeln('Пароль введен не верно');
                        count := count - 1 ;
                        Delay(1000);
                        clrscr;
                end;
until(pass = userpass);
readln;
end.

Вот результат :

ris17

Написать ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *