IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pascal Discussion :

Mot de passe avec blocage au 3ème essai ?


Sujet :

Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut Mot de passe avec blocage au 3ème essai ?
    Bonjour,

    Je commence a programmer en Pascal (4h de cours) alors soyez indulgent

    Notre prof souhaite que l'on crée un mot de passe avec un bloquage au bout du 3eme essai si celui-ci est incorrect...

    Pour le moment je ne sais faire qu'un mot de passe sans bloquage à l'aide de repeat/until. Comment faire pour le bloquer au bout de 3?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Program Entrainement;
     
    Uses Wincrt;
     
    Var
    	mot:string [10];
    	rep:char;
     
    	Begin
    		repeat
    			Write('Taper votre mot de passe: ');
    			Readln (Mot);
    			Until (Mot='12345');
    			clrscr;
         End.
    Merci d'aider un pauvre débutant

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    Il te faut utiliser un compteur, que tu incrémentes à chaque fois qu'un mot de passe est tapé. Ensuite, tu peux vérifier dans ta condition until si le mot de passe est bon ou si les trois tentatives ont été faites. Si une des deux conditions sont remplies, tu sort de ta boucle, il te suffit ensuite de tester avec un if, si le nombre de tentative est 3 ou si le mot de passe rentré est bon.

    n'hésite pas si tu as besoin de plus d'infos
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Merci mais comment fais-tu un compteur?
    Si tu peux me donner un exemple, ca m'arrangerai bien.

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    Un compteur est juste une variable de type entier, initialisée à 0.

    Je te donne l'algo :

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    compteur = 0;
    répète
      lire mot de passe;
      compteur = compteur + 1;
    jusqu'à ce que (mot de passe = '123456') ou (compteur = 3)
    si compteur = 3
    alors blocage
    sinon mot de passe trouvé
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Il y a une erreur dans ton algorithme wormful_sickfoot, supposons que l'utilisateur entre le bon mot de passe à la 3ième fois, le compteur aura la valeur 3 évidemment donc blocage... il faut plutôt tester le mot de passe.
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    compteur = 0;
    répète
      lire mot de passe;
      compteur = compteur + 1;
    jusqu'à ce que (mot de passe = '123456') ou (compteur = 3)
    
    si (mot de passe = '123456') alors 
       mot de passe trouvé
       sinon blocage
    fin si
    Écrire une procédure dont le temps de création dépend essentiellement de ma vitesse de frappe au clavier n'a pas le moindre intérêt !
    --- droggo.

  6. #6
    Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 56
    Points
    56
    Par défaut
    on peut aussi utiliser la boucle FOR.
    j'avais fait ce programme en débutant en utilisant la boucle FOR je crois.
    mais je trouve que le derniere alghortime est très bien.

  7. #7
    Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 56
    Points
    56
    Par défaut
    A quoi sert l'unité "wincrt" ??

  8. #8
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    wincrt est l'unité CRT pour les programmes compilés avec Turbo Pascal for Windows (entre autre). Donc elle sert à l'utilisation d'une console sous windows pour ces programmes là.

  9. #9
    Membre du Club
    Profil pro
    Collégien
    Inscrit en
    Juin 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2006
    Messages : 62
    Points : 56
    Points
    56
    Par défaut
    ah ok ...
    Je ne savais pas...
    merci pour l'info.

  10. #10
    Membre du Club Avatar de amine6441
    Inscrit en
    Novembre 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 85
    Points : 64
    Points
    64
    Par défaut salut mon frere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    program motdepasse;
    uses crt;
    var mot:string[20];
        rep:string;
        var i:integer;
        trouve:integer;
    begin
         clrscr;
         for i:=1 to 3do
                     begin
                     writeln('entrer un mots de passe');
                     readln(mot);
                     if mot='12345' then
                     begin
                          i:=3;
                          trouve:=1;
                     end ;
         end;
    if trouve=1 then begin
       writeln('le mots de passe et bonne ');
       end;
    readln;
    end.
    merci mon frere

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    program motdepasse;
    uses wincrt;
    var mot:string[20];
        i:integer;
        begin
         clrscr;
                    i:=0;     
                     repeat
                     i:=i+1;
                     writeln('entrer un mot de passe');
                     readln(mot);
                     until (mot ='12345')or (i=3);
            end.
    je crois ce code devra donner un résultat

  12. #12
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par proff
    je crois ce code devra donner un résultat
    oui mais qu'est ce que tu penses du fait de pouvoir dire a l'utilisateur s'il a trouvé ou pas le bon mot de passe,dans ton code l'utilisateur ne sais pas s'il a trouvé le bon mot de passe(n'oublies pas que le programmeur n'est pas forcement l'utilisateur )
    @
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  13. #13
    Membre du Club Avatar de amine6441
    Inscrit en
    Novembre 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 85
    Points : 64
    Points
    64
    Par défaut
    Le code que prof a ecrit marche bien mais une petite remarque il faut qu'il afiche si le mot de passe qui a donne est bon ou non

  14. #14
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    c'est ce ke je j'ai essaye de le faire comprendre
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  15. #15
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par krachik
    c'est ce ke je j'ai essaye de le faire comprendre
    Je propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    { -ed- 
    mon compilateur support le précompilateur C ou C++, 
    ce qui est bien pratique... }
    #define AMINE 0
     
    program snippet;
     
    #if 0
     procedure main_amine;
     var
      mot:string[20];
     
    { -ed- 
      rep:string;
      variable non utilisee }
     
     var i:integer; 
     { -ed- a quoi sert ce var }
     
     trouve:integer;
     { -ed- un boolean ne serait-il pas mieux adapte ? }
     
     begin
      for i := 1 to 3 do
      begin
       writeln('entrer un mots de passe');
       { -ed- beaucoup de fautes d'orthographe pour une simple ligne... }
     
       readln(mot);
       if mot='12345' then
       begin
        i := 3;
        { -ed- Mon compilateur n'aime pas que l'on modifie un indice de boucle for. 
        Ne compile pas. repeat until s'impose...}
        trouve:=1;
       end ;
      end;
     
      if trouve = 1 then begin
       writeln('le mots de passe et bonne ');
       { -ed- beaucoup de fautes d'orthographe pour une simple ligne... }
     
      end;
     end;
    #endif
     
     procedure main_proff;
     var
      mot:string[20];
      i:integer;
     begin
      i:=0;     
      repeat
       i := i + 1;
       writeln('entrer un mot de passe');
       readln(mot);
      until (mot ='12345') or (i=3);
     
      { -ed- il manque l'exploitation du resultat... est-on passe ou non ? }
      if mot ='12345' then
      begin
       writeln ('Welcome to Heaven');
      end else begin
       writeln ('Go to Hell...');
      end;
     end;
     
     procedure main_ed;
     var
      mot:string [10];
      rep:integer;
      ok:boolean;
      err:boolean;
     
     begin
      rep := 0;
      repeat
       write ('Taper votre mot de passe: ');
       readln (Mot);
       ok := Mot = '12345';
       if not ok then
       begin
        inc (rep);
        err := rep = 3;
       end;
      until ok or err;
     
      if ok then
       writeln ('Welcome to Heaven');
     
      if err then 
       writeln ('Go to Hell...');
     
     end;
     
    begin
    #if AMINE
     main_amine;
    #endif
     main_proff;
     main_ed;
     readln;
    end.
    Pas de Wi-Fi à la maison : CPL

  16. #16
    Membre du Club Avatar de amine6441
    Inscrit en
    Novembre 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 85
    Points : 64
    Points
    64
    Par défaut
    MR Emmanuel Delahaye
    vous reclamer qu'il y a des fotes pouvons nous savoire ou il sont?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    begin
      for i := 1 to 3 do
      begin
       writeln('entrer un mots de passe');
       { -ed- beaucoup de fautes d'orthographe pour une simple ligne... }
     
       readln(mot);
       if mot='12345' then
       begin
        i := 3;
        { -ed- Mon compilateur n'aime pas que l'on modifie un indice de boucle for. 
        Ne compile pas. repeat until s'impose...}
        trouve:=1;
       end ;
      end;
     
      if trouve = 1 then begin
       writeln('le mots de passe et bonne ');
       { -ed- beaucoup de fautes d'orthographe pour une simple ligne... }
     
      end;
     end;

  17. #17
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    Citation Envoyé par amine6441
    vous reclamer qu'il y a des fotes pouvons nous savoire ou il sont?
    Là, j'en compte 6, sans la ponctuation

    Sinon y'en a ici :

    entrer un mots de passe
    le mots de passe et bonne
    Qui donne en français : "Entrez un mot de passe", et "Le mot de passe est bon".
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  18. #18
    Membre du Club Avatar de amine6441
    Inscrit en
    Novembre 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 85
    Points : 64
    Points
    64
    Par défaut
    hhhhhhhhhhhhhhhhh
    oui MR mais se sont des fotes d'ortographes
    le sytaxe est bon

    merci comme meme

  19. #19
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    Oui mais l'orthographe est importante quand même
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2007, 18h19
  2. Réponses: 1
    Dernier message: 27/12/2006, 21h04
  3. Réponses: 2
    Dernier message: 17/09/2006, 20h21
  4. gestion des mot de passe avec Access
    Par cyberbiker dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 07/09/2006, 16h42
  5. problème de MOT DE PASSE avec mysql
    Par u_brush_u dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/07/2006, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo