Pour envoyer et recevoir des messages électroniques via Internet, chaque utilisateur doit avoir un compte de messagerie caractérisé par une adresse e-mail ayant la forme générale suivante : nom_utilisateur@domaine.suffixe.
Dans une adresse e-mail valide les deux conditions suivantes sont remplies :
1- Le nom d’utilisateur est formé par des caractères alphanumériques, commence obligatoirement par une lettre et peut contenir les caractères spéciaux suivants (l’underscore ‘’_’’, le tiret ‘’-‘’, le point ‘’.’’).
2- Le caractère ‘’@’’ doit figurer une seule fois juste après le nom d’utilisateur.
Exemples d’adresses e-mail valides : foulen.benfoulen@gmail.com, foulen_2014@laposte.net, sections_scientifiques@edunet.tn, foulen.benfoulen@edunet.tn
Travail demandé : écrire un programme Pascal qui permet de saisir une adresse e-mail qui remplie les deux conditions précédentes, puis se générer et d’afficher le mot de passe qui lui correspond en respectant la règle suivante : le mot de passe s’obtient en ajoutant au nom d’utilisateur la première lettre du nom du domaine et la dernière lettre du suffixe.
Exemple : si l’utilisateur du programme saisit l’adresse ali.tounsi@hotmail.fr le programme affichera le mot de passe correspondant est ali.tounsihr
Le nom d’utilisateur = ali.tounsi
La première lettre du nom du domaine = h
La dernière lettre du suffixe = r
Voici le principe d'un algorithme pour saisir une adresse e-mail qui remplit les deux conditions données, et pour générer le mot de passe correspondant :
Étape 1 : Saisie et validation de l'adresse e-mail
1. Saisie de l'adresse e-mail : Demander à l'utilisateur de saisir une adresse e-mail.
2. Vérification du format :
a) Vérification du nom d'utilisateur :
Extraire la partie avant le caractère @
.
Vérifier que le premier caractère est une lettre.
Vérifier que le nom d'utilisateur ne contient que des caractères alphanumériques et les caractères spéciaux permis (_
, -
, .
).
b) Vérification du caractère @
: Vérifier qu'il y a exactement un caractère @
.
c) Vérification de la partie domaine et suffixe : Après le @
, vérifier qu'il y a un domaine et un suffixe séparés par un point (.
).
3. Validation finale :
Si toutes les conditions sont remplies, l'adresse e-mail est considérée comme valide.
Sinon, afficher un message d'erreur et redemander la saisie.
Étape 2 : Génération du mot de passe
1. Extraction des parties de l'adresse e-mail :
a) Extraire le nom d'utilisateur.
b) Extraire la partie domaine et suffixe après le @
.
c) Identifier la première lettre du domaine.
d) Identifier la dernière lettre du suffixe.
2. Construction du mot de passe : Concaténer le nom d'utilisateur avec la première lettre du domaine et la dernière lettre du suffixe.
3. Affichage du mot de passe : Afficher le mot de passe généré.
Dans cet algorithme, On va utiliser une seule fonction :
Algorithme du programme principal
1 2 3 4 5 6 7 8 9 |
Algorithme email_motdepasse Debut Ecrire('donner une adresse email ') Lire(adresse_email) Si verif_generer_motdepasse(adresse_email) alors Ecrire('Le mot de passe genere est '+motdepasse ) Sinon Ecrire('saisir une adress email valide!!!') Fin |
Déclaration des objets
Objet | Type / Nature |
adresse email | chaine des caracteres |
La fonction verif_generer_motdepasse
Cette fonction vérifie la validité de l'adresse email et génère le mot de passe correspondant :
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 |
fonction verif_generer_motdepasse(ch):booleen Début motdepasse<-'' # Verifier si l'adresse commence âr une lettre # et la position du symbole @ est avant du point . Si ('a'<=ch[0]<='z') et (0< Pos(ch,'@') < Pos(ch,'.') < long(ch)-1) faire motdepasse<-motdepasse+ch[0] i<-1 # Verifier que la premiere partie de l'adresse contient des lettres des chiffres et les carcateres spéciaux Tant que ((ch[i] dans {'_','-','.'}) ou ('a'<=ch[i]<='z')) et (i<Pos(ch'@')) alors motdepasse<-motdepasse+ch[i] i<-i+1 Fin tant que Si (i=ch.find('@')) alors i<-i+1 # Verifier que la 2eme partie de l'adresse contient des lettres et un seul point motdepasse=motdepasse+ch[i] Tant que ('a'<=ch[i]<='z') et (i<Pos(ch'.')) faire i=i+1 Fin tant que Si (i=Pos(ch.find('.')) alors i=i+1 # Verifier que la 3eme partie de l'adresse contient des lettres Tant que ('a'<=ch[i]<='z') et (i<long(ch)-1) faire i=i+1 Fin tant que motdepasse=motdepasse+ch[i] retourner 'a'<=ch[i]<='z' Si non: retourner Faux Fin si Si non retourner Faux Fin si Sinon retourner Faux Fin si Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
motdepasse | chaine des caracteres |
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 |
def verif_generer_motdepasse(ch): global motdepasse motdepasse='' # Verifier si l'adresse commence âr une lettre # et la position du symbole @ est avant du point . if ('a'<=ch[0]<='z') and (0<ch.find('@')<ch.find('.')<len(ch)-1): motdepasse=motdepasse+ch[0] i=1 # Verifier que la premiere partie de l'adresse contient des lettres des chiffres et les carcateres spéciaux while ((ch[i] in {'_','-','.'}) or ('a'<=ch[i]<='z')) and (i<ch.find('@')): motdepasse=motdepasse+ch[i] i=i+1 if (i==ch.find('@')): i=i+1 # Verifier que la 2eme partie de l'adresse contient des lettres et un seul point motdepasse=motdepasse+ch[i] while ('a'<=ch[i]<='z') and (i<ch.find('.')): i=i+1 if (i==ch.find('.')): i=i+1 # Verifier que la 3eme partie de l'adresse contient des lettres while ('a'<=ch[i]<='z') and (i<len(ch)-1): i=i+1 motdepasse=motdepasse+ch[i] return 'a'<=ch[i]<='z' else: return False else: return False else: return False adresse_email=input('donner une adresse email ') if verif_generer_motdepasse(adresse_email): print('Le mot de passe genere est '+motdepasse ) else: print ('saisir une adress email valide!!!') |
Exécution du programme
1) En cas de saisie d'un email valide
2) En cas de saisie d'un email invalide
Pour créer une application en Python pour saisir une adresse e-mail valides, puis se générer et d’afficher le mot de passe 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:
QLineEdit
nommé 'email' pour entrer une adresse email.
QPushButton
nommé 'test_bt' pour exécuter le module verif_generer_motdepasse.
QLabel
nommé 'msg' pour afficher un message d'erreur en cas de saisie d'une adresse email invalide.
Enregistrez le fichier avec l'extension .ui
, par exemple suite_aliquote-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 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets app = QApplication([]) windows = loadUi ("email-interface.ui") def verif_generer_motdepasse(): ch=windows.email.text() motdepasse='' # Verifier si l'adresse commence âr une lettre # et la position du symbole @ est avant du point . if ('a'<=ch[0]<='z') and (0<ch.find('@')<ch.find('.')<len(ch)-1): motdepasse=motdepasse+ch[0] i=1 # Verifier que la premiere partie de l'adresse contient des lettres des chiffres et les carcateres spéciaux while ((ch[i] in {'_','-','.'}) or ('a'<=ch[i]<='z')) and (i<ch.find('@')): motdepasse=motdepasse+ch[i] i=i+1 if (i==ch.find('@')): i=i+1 # Verifier que la 2eme partie de l'adresse contient des lettres et un seul point motdepasse=motdepasse+ch[i] while ('a'<=ch[i]<='z') and (i<ch.find('.')): i=i+1 if (i==ch.find('.')): i=i+1 # Verifier que la 3eme partie de l'adresse contient des lettres while ('a'<=ch[i]<='z') and (i<len(ch)-1): i=i+1 motdepasse=motdepasse+ch[i] if 'a'<=ch[i]<='z' : windows.msg.setText('Le mot genere est '+motdepasse) else: windows.msg.setText('Veuillez saisir une adresse valide') else: windows.msg.setText('Veuillez saisir une adresse valide') else: windows.msg.setText('Veuillez saisir une adresse valide') else: windows.msg.setText('Veuillez saisir une adresse valide') def suite_aliquote(): i=0 liste='' u=int(windows.u.text()) if u>=10 : liste=liste+'U'+str(i)+'='+str(u)+'\n' u=somme_diviseurs(u) v=0 while (u>1) and (u!=v): v=u i=i+1 liste=liste+'U'+str(i)+'='+str(u)+'\n' u=somme_diviseurs(u) print('U',i,'=',u) liste=liste+'U'+str(i)+'='+str(u)+'\n' if (u==1): liste=liste+'cette suite est Aliquode' else: liste=liste+'cette suite est non Aliquode' windows.resultat.setText(liste) else: windows.msg.setText('Donner u>=10') windows.test_bt.clicked.connect(verif_generer_motdepasse) windows.show() app.exec_() |
Exécution du programme
1) En cas de saisie d'un email valide
1) En cas de saisie d'un email invalide
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