Inscription / Connexion Nouveau Sujet
Niveau BTS
Partager :

Algorithme "adresse mail"

Posté par
rootspronos
12-04-14 à 23:46

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

Posté par
ThierryPoma
re : Algorithme "adresse mail" 13-04-14 à 00:14

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

Posté par
carpediem
re : Algorithme "adresse mail" 13-04-14 à 00:24

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 ....

Posté par
carpediem
re : Algorithme "adresse mail" 13-04-14 à 00:25

lire :: si a = "." et non pas : si a = "1"

on teste le point après le symbole @

Posté par
carpediem
re : Algorithme "adresse mail" 13-04-14 à 00:26

pardon :: si a <> "." .....

Posté par
rootspronos
re : Algorithme "adresse mail" 13-04-14 à 09:32

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

Posté par
ThierryPoma
re : Algorithme "adresse mail" 13-04-14 à 10:30

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

Posté par
rootspronos
re : Algorithme "adresse mail" 13-04-14 à 11:53

Merci beaucoup de ta réponse mais étant débutant je n'y arrive vraiment pas , c'est beaucoup trop compliqué

Merci quand même de ta réponse ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !