Pour accéder à son compte sur un site, un utilisateur doit disposer d’un identifiant id et d’un mot de passe pw. L’identifiant id doit être unique et le mot de passe pw doit contenir au moins six caractères.
Ecrire un programme Python qui permet de :
1- Remplir 2 tableaux tid et tpw contenant respectivement N identifiants distincts et N mots se passe (2≤N≤10) de façon à ce que tid[i] correspond à tpw[i].
2- Vérifier l’accès à un compte donné et ce comme décrit ci-dessous : Saisir un identifiant id et pw.
3- Afficher le message « id, bienvenue sur notre site » si l’id existe dans tid et le pw correspondant est correcte.
4- Afficher le message « Vérifier votre identificateur et/ou votre mot de passe » si l’id n’existe pas dans le tableau tid et/ou le pw correspondant est incorrecte.
Exemple : Pour N=4
tid:
Azerty | Tunisia1 | Ali58 | soltan |
tpw:
AZer12 | DF4567edc | ALI58ali | 00aqwZygN |
1er cas : id =Tunisia1 et pw= DF4567edc à Le programme affiche « Tunisia1, bienvenue sur notre site »
2ème cas : id =Tunisia et pw= DF4567edc à Le programme affiche « Vérifier votre identificateur »
3ème cas : id =Tunisia1 et pw= DF456 à Le programme affiche « Vérifier votre mot de passe »
1. Saisie des identifiants et des mots de passe
Le programme commence par demander à l'utilisateur de remplir deux tableaux :
Un tableau tid
contenant N identifiants distincts.
Un tableau tpw
contenant N mots de passe correspondants aux identifiants dans tid
.
Chaque identifiant dans tid
est unique, et chaque mot de passe dans tpw
doit avoir au moins 6 caractères.
L'utilisateur doit entrer un identifiant id
et un mot de passe pw
pour accéder à son compte.
Le programme vérifie si l'identifiant saisi existe dans le tableau tid
.
Si l'identifiant est trouvé dans le tableau tid
:
Le programme vérifie si le mot de passe saisi correspond au mot de passe associé à cet identifiant dans le tableau tpw
.
Si le mot de passe est correct, le programme affiche : « id
, bienvenue sur notre site ».
Si le mot de passe est incorrect, le programme affiche : « Vérifier votre mot de passe ».
Si l'identifiant n'existe pas dans le tableau tid
, le programme affiche : « Vérifier votre identificateur et/ou votre mot de passe ».
1- Initialisation et remplissage des tableaux tid
et tpw
:
Le programme initialise deux tableaux de taille N pour stocker les identifiants et les mots de passe.
Pour chaque entrée i (de 0 à N−1), il demande à l'utilisateur de saisir un identifiant unique pour tid[i]
et un mot de passe valide (au moins 6 caractères) pour tpw[i]
.
2- Vérification des identifiants et des mots de passe :
Le programme demande à l'utilisateur de saisir un identifiant id
et un mot de passe pw
.
Il vérifie si l'identifiant id
existe dans le tableau tid
.
Si l'identifiant existe, il vérifie si le mot de passe correspondant est correct.
Si l'identifiant n'existe pas ou si le mot de passe est incorrect, il affiche un message d'erreur approprié.
3- Affichage du message :
Si l'identifiant et le mot de passe sont corrects, le programme affiche un message de bienvenue.
Sinon, il affiche un message demandant de vérifier l'identifiant et/ou le mot de passe.
Dans cet algorithme, On va utiliser deux fonctions et deux procédures :
Algorithme du programme principal
1 2 3 4 5 6 7 8 9 10 |
Algorithme acces_compte_site Debut n<-saisie_taille() remplir(tid,tpw,n) Ecrire("donner votre identifiant: ") lire(ch_id) Ecrire("donner votre mot de passe: ") lire(ch_pw) verif_acces(tid,tpw,ch_id,ch_pw,n) Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
tid | tableau de 30 chaînes des caractères |
tpw | tableau de 30 chaînes des caractères |
ch_id | chaîne des caractères |
ch_pw | chaîne des caractères |
La fonction saisie_taille
Cette fonction retourne la taille du tableau saisie par l'utilisateur.
1 2 3 4 5 6 7 8 9 10 |
Procedure saisie_taille(): Début Ecrire('donner un entier entre 2 et 10') lire (n) Tant que n<2 ou n>10 faire Ecrire('donner entre entre 2 et 10') lire (n) Fin tant que retourner n Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La procédure remplir
Cette procédure remplit 2 tableaux tid et tpw contenant respectivement n identifiants distincts et N mots se passe (2≤n≤10) de façon à ce que tid[i] correspond à tpw[i]
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 |
Procédure remplir(tid:Tab,tpw:Tab;n:entier) Début Ecrire("donner identifiant N°0: ") lire(tid[0]) Ecrire("donner mot de passe pour identifiant N°0: ") lire(tpw[0]) Tant que (long(tpw[0])<6) faire Ecrire("donner mot de passe pour identifiant N°0: ") lire(tpw[0]) Fin tant que Pour i de 1 à n-1 faire Ecrire("donner identifiant N°"+i+": ") lire(tid[i]) Fin pour Tant que verif_distinct(tid,i)=Faux faire Ecrire("donner identifiant N°"+i+": ") lire(tid[i]) Fin tant que Ecrire("donner mot de passe pour identifiant N°"+i+": ") lire(tpw[i]) Tant que (long(tpw[i])<6): Ecrire("donner mot de passe pour identifiant N°"+str(i)+": ") lire(tpw[i]) Fin tant que Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
La procédure verif_acces
Cette procédure vérifie si l'identifiant id
existe dans le tableau tid
et le mot de passe pw
dans le tableau tpw
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Procedure verif_acces(tid:Tab;tpw:Tab,ch_id:chaîne,ch_pw:chaîne,n:entier) Début i<-0 Tant que (i<n) et (tid[i]!=ch_id) et (tpw[i]!=ch_pw) faire i<-i+1 Fin tant que Si (tid[i]=ch_id) et (tpw[i]=ch_pw) alors Ecrire(ch_id+' bienvenue sur notre site') Sinon Si (tid[i]=ch_id) alors Ecrire('Vérifier votre identificateur') Sinon Ecrire('Vérifier votre mot de passe') Fin si Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
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 |
from numpy import array tid=array([str]*30) tpw=array([str]*30) def saisie_taille() : n=int(input("donner un entier entre 2 et 10: ")) while(n<2) or (n>10) : n=int(input("donner un entier entre 2 et 10: ")) return n def verif_distinct(t,i): j=0 while (j<i-1) and (t[j]!=t[i]): j=j+1 return t[j]!=t[i] def remplir(tid,tpw,n): tid[0]=input("donner identifiant N°0: ") tpw[0]=input("donner mot de passe pour identifiant N°0: ") while (len(tpw[0])<6): tpw[0]=input("donner mot de passe pour identifiant N°0: ") for i in range (1,n) : tid[i]=input("donner identifiant N°"+str(i)+": ") while verif_distinct(tid,i)==False: tid[i]=input("donner identifiant N°"+str(i)+": ") tpw[i]=input("donner mot de passe pour identifiant N°"+str(i)+": ") while (len(tpw[i])<6): tpw[i]=input("donner mot de passe pour identifiant N°"+str(i)+": ") def verif_acces(tid,tpw,ch_id,ch_pw,n): i=0 while (i<n) and (tid[i]!=ch_id) and (tpw[i]!=ch_pw): i=i+1 if (tid[i]==ch_id) and (tpw[i]==ch_pw) : print(ch_id+' bienvenue sur notre site') elif (tid[i]!=ch_id): print('Vérifier votre identificateur') else: print('Vérifier votre mot de passe') n=saisie_taille() remplir(tid,tpw,n) ch_id=input("donner votre identifiant: ") ch_pw=input("donner votre mot de passe: ") verif_acces(tid,tpw,ch_id,ch_pw,n) |
Exécution du programme
1) Si l'identifiant existe et le mot de passe correspondant est correct.
2) Si l'identifiant existe et le mot de passe est incorrect.
3) Si l'identifiant est incorrect.
Pour créer une application en Python pour valider l'accès au site en utilisant Qt Designer pour l'interface graphique, suivez ces étapes :
a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.
b- Ajoutez ces widgets:
QLabel
nommé 'ch_id' pour entrer la liste des identificateurs.
QLabel
nommé 'ch_pw' pour entrer la liste des mots de passe.
QPushButton
nommé 'remplir_id_bt' pour exécuter le module createTabID.
QPushButton
nommé 'remplir_pw_bt' pour exécuter le module createTabPW.
QPushButton
nommé 'valider_bt' pour exécuter le module verif_acces.
QLabel
nommé 'msg' pour afficher un message d'erreur et le résultat de la validation de compte.
QLineEdit
nommé 'id' pour entrer l'identificateur.
QLineEdit
nommé 'pw' pour entrer le mot de passe.
QLabel
nommé 'tabtid_label' pour contenir les identificateurs.
QLabel
nommé 'tabtpw_label' pour contenir les mots de passe.
Enregistrez le fichier avec l'extension .ui
, par exemple parfait-interface.ui
.
Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.
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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets from numpy import array tid=array([str]*30) tpw=array([str]*30) app = QApplication([]) windows = loadUi ("tabtab-2.ui") # Fonction qui supprime des espaces de la chaine des carcatères def supprimer_espaces (ch) : while(ch[0]==' '): # elimnier tous les espaces au début de la chaine ch=ch[1:len(ch)] while(ch[len(ch)-1]==' '): # elimnier tous les espaces a la fin de la chaine ch=ch[0:len(ch)-1] while (ch.find(' ')>0): ch=ch.replace(" ", " ") # remplacer les doubles espaces apar un seul espace return ch def verif_distinct(t,i): j=0 while (j<i-1) and (t[j]!=t[i]): j=j+1 return t[j]!=t[i] # Procedure qui remplit un tableau par des identifiants a partir d'une chaine des caractère def createTabID(): windows.tabtid_label.clear() windows.msg.clear() ch = windows.ch_id.text() global n # pour la taille di tableau if ch=="": windows.msg.setText("Veuillez remplir la chaîne") else: windows.msg.clear() # effacer le message d erreur ch= supprimer_espaces(ch) i=0 j=0 ch1='' # parcourir les caracteres de la chaine test_distinct=True while(i<len(ch)) and test_distinct : if (ch[i]!=' '): ch1=ch1+ch[i] if ((ch[i]==' ') or (i==len(ch)-1)) : tid[j]=ch1 if j>0: test_distinct=verif_distinct(tid,j) print(test_distinct) ch1='' j=j+1 i=i+1 if test_distinct: if 1<=j<=10: n=j tab='' for k in range (j) : tab=tab+ 'tid['+str(k)+']= '+tid[k]+ '\n' #afficher les elements du tableau windows.tabtid_label.setText(tab) else: windows.msg.setText("le nombre des mots n'est pas entre 1 et 10") else: windows.msg.setText("les identifiants doit etre uniques") # Procedure qui remplit un tableau par des mots a partir d'une chaine des caractère def createTabPW(): windows.tabtpw_label.clear() windows.msg.clear() ch = windows.ch_pw.text() if ch=="": windows.msg.setText("Veuillez remplir la chaîne") else: windows.msg.clear() # effacer le message d erreur ch= supprimer_espaces(ch) i=0 j=0 ch1='' # parcourir les caracteres de la chaine test_long=True while(i<len(ch)) and test_long : if (ch[i]!=' '): ch1=ch1+ch[i] if ((ch[i]==' ') or (i==len(ch)-1)) : tpw[j]=ch1 if len(tpw[j])<6: test_long=False ch1='' j=j+1 i=i+1 if test_long: if j==n: tab='' for k in range (j) : tab=tab+ 'tpw['+str(k)+']= '+tpw[k]+ '\n' #afficher les elements du tableau windows.tabtpw_label.setText(tab) else: windows.msg.setText("la taille du tableau TPW doit etre egal au tableau TID") else: windows.msg.setText("la longueur du mot de passe doit etre >=6") def verif_acces(): i=0 ch_id = windows.id.text() ch_pw = windows.pw.text() while (i<n) and (tid[i]!=ch_id) and (tpw[i]!=ch_pw): i=i+1 if (tid[i]==ch_id) and (tpw[i]==ch_pw) : windows.msg.setText(ch_id+' bienvenue sur notre site') elif (tid[i]!=ch_id): windows.msg.setText('Vérifier votre identificateur') else: windows.msg.setText('Vérifier votre mot de passe') windows.remplir_id_bt.clicked.connect ( createTabID ) windows.remplir_pw_bt.clicked.connect ( createTabPW ) windows.valider_bt.clicked.connect (verif_acces ) #windows.bt_etoile.clicked.connect (ajouter_etoile ) #windows.bt_crypter.clicked.connect (crypter_message ) windows.show() app.exec_() |
Exécution du programme
1) Entrer les identificateurs
2) Entrer les mots de passe correspondants
3) Si l'identifiant existe et le mot de passe correspondant est correct.
4) Si l'identifiant existe et le mot de passe est incorrect.
5) Si l'identifiant est incorrect.
Vous pouvez voir aussi :
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info