Bonsoir à tous,
Voilà pour lundi j'ai un exercice mais je bloque pas mal dessus, si vous pouvez m'aidez , ce serait très gentil de votre part
Voici l'énoncé:
On veut créer un algorithme qui permet de vérifier la validité d'une adresse mail saisie par l'utilisateur avant que celle si soit envoyée à la base de données du fichier des clients de l'entreprise.
Les critères de validité de l'adresse retenus pour cet exercice sont les suivants :
- L'adresse ne doit pas dépasser 25 caractères.
- L'adresse doit contenir le signe « @ »
- L'adresse doit contenir un seul point situé après le signe « @ »
- L'adresse ne doit pas contenir de signes interdits « +/ ?% ……etc. »
Pour cela, on vous demande :
- De créer une fonction qui reçoit l'adresse saisie et qui renvoie vrai ou faux selon la validité de l'adresse.
- D'écrire la partie du programme principal qui permet de saisir l'adresse, de la tester et d'afficher le message « adresse valide » ou « adresse erronée ».
Vous disposez
- D'une variable nommée Signes_Interdits contenant tous les signes interdits
(Signes_Interdits = ”+/ ?%.......... ”
- Des fonctions intégrées*
LONGUEUR(mot : chaine ) : entier
EXTRAIRE(mot : chaine, i : entier, j : entier) : chaine
Reçoit en paramètre une chaine et permet d'extraire le nombre i de caractères de la chaine à partir de la position j.
POSITION(mot : chaîne, lettre : chaine) entier
Renvoie le rang du caractère contenu dans « lettre » si celui-ci est contenu dans la chaine « mot », -1 sinon. (Le premier rang étant 0)
*Vous n'êtes pas obligés de les utiliser toutes.
Voici ce que j'ai fais :
Fonction mail1 ()
Booleen : VRAI
VAR
mail : caractère
DEBUT
Afficher(« Entrez une adresse mail : »)
Saisir mail
Pour compteur de 1 à (LONGUEUR :mail)
Si (LONGUEUR :mail) >= 25 Alors
Afficher(« l'adresse mail n'est pas valide »)
Sinon
Afficher(« l'adresse mail est valide »)
Fin si
Si Signes_Interdits dans mail :
Afficher(« l'adresse mail n'est pas valide »)
Sinon
Afficher(« l'adresse mail est valide »)
Fin si
Merci d'avance pour votre aide
Bonsoir,
Tu ne réponds pas aux directives. Voici un début :
Fonction fScanMail(ParValeur cMail:Chaine):Bool;
Var bCaracteresInterdits, bArobase, bPoint : Bool;
iCpt, l : Entier;
Début
bPoint:=Vrai;
bArobase:=Vrai;
bCaracteresInterdits:=Faux;
Si longueur(cMail)>25 alors
retourner(Faux);
Sinon
l=longueur(cMail);
Pour iCpt=1 jusqu'à l
(...) //C'est là où se trouve le plus compliqué à rédiger...
Fin Pour
Fin Si
retourner(bPoint ET bArobase ET PAS bCaracteresInterdits)
Fin
Bonne nuit
Thierry
salut
ça ne va pas du tout ...
à quoi sert ta variable booléenne ?
voici un début ::
vrai = vrai (var. booléenne)
si longueur (adresse) > 25 alors vrai = faux
n = position(adresse, "@")
a = extraire(adresse, 1, n + 1)
si a <> "1" alors vrai = faux
(à traiter les caractères interdits)
...
si vrai alors afficher "l'adresse mail est valide" sinon afficher "l'adresse mail n'est pas valide
à toi de compléter ....
Merci pour vos réponses
Fonction fScanMail(ParValeur cMail:Chaine):Bool;
Var bCaracteresInterdits, bArobase, bPoint : Bool;
iCpt, l : Entier;
Début
bPoint:=Vrai;
bArobase:=Vrai;
bCaracteresInterdits:=Faux;
Si longueur(cMail)>25 alors
retourner(Faux);
Sinon
l=longueur(cMail);
Pour iCpt=1 jusqu'à l
si n = (EXTRAIRE : cmail) = "@" alors
retourner(Vrai)
sinon retourner(Faux)
Finsi
si bCaracteresInterdit égal à LONGUEUR(cmail)
retourner (Faux)
Fin Pour
Fin Si
retourner(bPoint ET bArobase ET PAS bCaracteresInterdits)
Fin
Bon voilà après à part sa je ne vois pas comment faire :/
Merci d'avance
Bonjour,
Visiblement, tu ne fais aucun effort. Voyons... Une adresse mail est nécessairement de la forme ChaineNonVide@ChaineNonVide.ChaineNonVide, où ChaineNonVide est formée seulement de caractères valides. Il y a donc quelques vérifications préliminaires à effectuer :
ePosPoint:=POSITION(cMail, '.')
ePosArobase:=POSITION(cMail, '@')
Si (ePosPoint==-1) OU (ePosArobase==-1) alors retourner(Faux);
Si (ePosArobase==1) alors retourner(Faux);
Si (ePosPoint<ePosArobase) alors
retourner(Faux);
Sinon
Si (ePosPoint-ePosArobase==1) alors
retourner(Faux);
Fin Si
Fin Si
Si (ePosPoint==LONGUEUR(cMail)) alors retourner(Faux);
Là et sauf erreur de ma part, l'on est en présence d'une adresse mail du type voulue. Il faut donc extraire chaque ChaineNonVide et l'analyser de manière à savoir si elle ne contient aucun caractère interdit, y compris les caractères '@' et '.'. Tu peux donc écrire une autre fonction qui se préoccupera d'analyser chacune de ces sous-chaînes.
Thierry
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :