Algorithme "adresse mail "
Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

Algorithme "adresse mail "



  1. #1
    rootspronos

    Algorithme "adresse mail "


    ------

    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 :
    Code:
    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

    -----
    Dernière modification par Jack ; 13/04/2014 à 02h04. Motif: ajout balises code

  2. #2
    Jack
    Modérateur

    Re : Algorithme "adresse mail "

    Code:
            Si (LONGUEUR :mail) >= 25 Alors
                Afficher(« l’adresse mail n’est pas valide »)
            Sinon
                 Afficher(« l’adresse mail est valide »)
    Un algorithme, c'est 90% de bon sens. Tu es en train de dire que du moment que le nombre de caractère est inférieur à 25, l'adresse email est correcte. Ça ne te choque pas?

  3. #3
    Chanur

    Re : Algorithme "adresse mail "

    D'autre part, tu n'a pas besoin de tester plusieurs fois la longueur : pourquoi mettre le test dans une boucle ?
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  4. #4
    rootspronos

    Re : Algorithme "adresse mail "

    Merci de vos remarques ! je n'avais pas fais attention à ma grossière erreur pour la longueur désolé.

    Mais maintenant je suis bloqué comment faire pour tester si il y a le '@' dans le mail et comment savoir si il est suivit d'un ' . '

    Merci d'avance à tous

  5. A voir en vidéo sur Futura
  6. #5
    bisou10

    Re : Algorithme "adresse mail "

    Code:
    Si....
    Alors...
    Sinon Si...
        Alors....
        Sinon Si...
              Alors...
              Fin Si
        Fin Si
    Fin Si
    La solution élégante est d'utiliser une expression rationnelle (Regexp) !

  7. #6
    albanxiii
    Modérateur

    Re : Algorithme "adresse mail "

    Bonjour,

    Si vous voulez comparer vos solutions respectives : http://www.ilemaths.net/forum-sujet-601608.html

    @+
    Not only is it not right, it's not even wrong!

  8. #7
    Optimix

    Smile Re : Algorithme "adresse mail "

    Bien vu albanxiii

    Comme il est toujours intéressant de tracer les erreurs de saisie, voici comment je procèderais :
    - on fait l'inventaire précis de toutes les erreurs possibles dans la saisie d'une adresse e-mail
    - on affecte la valeur 0 à la variable errNum (initialisation)

    Analyse :
    - si l'adresse contient plus de 25 caractères : errNum = errNum + 2^0
    - si l'adresse ne contient pas le symbole @ : errNum = errNum + 2^1
    - si l'adresse contient un caractère interdit : errNum = errNum + 2^2
    - si l'adresse ne contient que des espaces blancs : errNum = errNum + 2^3
    - si l'adresse contient plus d'un point après l'arobase : errNum = errNum + 2^4
    - si l'adresse commence ou se termine par l'arobase : errNum = errNum + 2^5
    - si l'adresse est vide : errNum = errNum + 2^6

    Si errNum vaut 0 en fin d'analyse, l'adresse est valide, sinon on affiche en un seul message les différentes erreurs rencontrées (lecture binaire d'errNum ou par exemple 13 = erreurs 1,3 et 4 [1101]).
    Ce système est lourd, mais il a l'avantage d'être très facile à lire, donc à maintenir.

  9. #8
    rootspronos

    Re : Algorithme "adresse mail "

    Merci de ta réponse mais pour l'exo je dois créer obligatoirement un Booléen
    Concernant ta réponse j'ai très bien compris mais comment faire un algorithme qui additionne à chaque fois un O ou 1 et dernière questiocomment faire en algo pour savoir si l'adresse mail comporte bien un @ et un . dans les caractère suivant l'@ ??

    Merci énormément !

  10. #9
    PA5CAL

    Re : Algorithme "adresse mail "

    Bonjour

    Il s'agit de questions basiques auxquelles tu devrais pouvoir répondre sans faire appel au forum.

    Sans parler d'informatique, d'ordinateur ou de langage, comme fais-tu pour voir « à la main » s'il y a un @ dans un texte, et pour voir s'il est suivi d'un seul point ?

    Si tu peux répondre à ces questions, alors tu as tes algorithmes, et il ne te reste plus qu'à les traduire avec les mots et la syntaxe de ton langage de programmation. (... Mais si tu ne peux pas y répondre, alors ... ).
    Dernière modification par PA5CAL ; 13/04/2014 à 16h48.

  11. #10
    rootspronos

    Re : Algorithme "adresse mail "

    Je ne vois pas c'est sa le problème ...

  12. #11
    PA5CAL

    Re : Algorithme "adresse mail "

    C'est-à-dire qu'en regardant les lignes suivantes, tu ne serais pas capable de dire lesquelles ne correspondent pas à une adresse mail valable d'après les critères donnés ???

    toto.monsite.com
    toto@mon.site.com
    toto@monsite.com
    Dernière modification par PA5CAL ; 13/04/2014 à 17h08.

  13. #12
    rootspronos

    Re : Algorithme "adresse mail "

    Ba si évidemment ^^
    Mais le faire en algorithme je n'y arrive pas , je n'ai pas la logique pour résoudre l'exo ..

  14. #13
    PA5CAL

    Re : Algorithme "adresse mail "

    Mais c'est justement tout l'intérêt de l'exercice.

    Tu dois faire l'effort de trouver et de décrire ce que tu fais lorsque tu résous le problème, parce que cela revient ni plus ni moins à écrire en français l'algorithme demandé. Ensuite seulement tu pourras coder le programme, en transcrivant la suite des opérations trouvées avec les éléments du langage de programmation.


    Si on fait le travail à ta place, l'exercice n'aura servi à rien. Tu n'auras rien appris, ni rien mis en pratique, ni démontré tes capacités et tes lacunes.

    Quoi qu'il en soit, sur la question des devoirs, la politique de la maison est très claire (voir par ici). On ne te donnera pas les solutions, on t'aidera juste à les trouver par toi-même.


    Pour commencer, pourrais-tu m'expliquer comment je peux vérifier si un caractère (par exemple un @) est présent ou absent dans une suite de caractères ?

  15. #14
    Optimix

    Re : Algorithme "adresse mail "

    D'accord à 100% avec PA5CAL. Je trouve cet exercice d'autant plus intelligent qu'il fait appel aux qualités qu'on attend d'un programmeur (du grand débutant à l'expert) :
    - analyse : dresser la liste exhaustive des erreurs possibles
    - synthèse : écriture d'un algorithme cohérent, dans le langage de M. tout-le-monde
    - connaissances : maîtriser les fonctions chaînes (string) du langage utilisé, en particulier des splits
    - intuition : placer le curseur à la hauteur de l'attente de votre professeur. S'il vous impose une variable booléenne, il vous aura bien facilité la tâche.

    Quand vous écrivez "je n'ai pas la logique pour résoudre l'exo.." vous ne cherchez pas à vous dépasser parce que vous avez probablement au départ une mauvaise opinion de vos propres capacités.
    Je serais heureux de vous voir vous investir totalement sur le fil que vous avez ouvert et ne suis manifestement pas seul sur cette passerelle.

  16. #15
    Bluedeep

    Re : Algorithme "adresse mail "

    Encore heureux que personne ne lui ait répondu d'utiliser une Regex

  17. #16
    Jack
    Modérateur

    Re : Algorithme "adresse mail "

    Citation Envoyé par Bluedeep Voir le message
    Encore heureux que personne ne lui ait répondu d'utiliser une Regex
    Tu n'as pas bien lu (voir bisou10)

  18. #17
    Optimix

    Re : Algorithme "adresse mail "

    Je vois le problème comme suit : un enseignant en informatique propose à ses élèves de pondre un filtre (donc une fonction) permettant de rejeter une adresse e-mail invalide.
    Ce qui parait simple au départ l'est beaucoup moins à l'arrivée, car il faudrait pour cela se taper la lecture attentive de la norme RFC 2822.

    Faire la part de ce qui est autorisé dans une adresse e-mail à gauche du caractère "@" (local) et à droite (domaine) n'est pas si simple et la liste des interdits est longue.

    Mais je sens que Bluedeep a mieux à proposer que les expressions rationnelles, aujourd'hui passées de mode.

  19. #18
    Bluedeep

    Re : Algorithme "adresse mail "

    Citation Envoyé par Optimix Voir le message
    Mais je sens que Bluedeep a mieux à proposer que les expressions rationnelles, aujourd'hui passées de mode.
    Pourquoi passées de mode ? Nonobstant leur consommation élevée de ressource CPU, qui ne doit faire considérer leur utilisation dans des batchs de masses qu'avec beaucoup de précautions, c'est une solution assez pratique de validaton sur des patterns un peu "tordus".
    Dernière modification par Bluedeep ; 16/04/2014 à 08h17.

  20. #19
    Bluedeep

    Re : Algorithme "adresse mail "

    Citation Envoyé par Jack Voir le message
    Tu n'as pas bien lu (voir bisou10)
    Exact, je n'avais pas lu; donc ma tentative d'humour tombe à plat ....

  21. #20
    danyvio

    Re : Algorithme "adresse mail "

    Pour ce genre d'exo, il me semble intéressant d'utiliser des diagrammes d'état.
    On trouve des chercheurs qui cherchent ; on cherche des chercheurs qui trouvent !

  22. #21
    Jack
    Modérateur

    Re : Algorithme "adresse mail "

    Citation Envoyé par Optimix Voir le message
    Je vois le problème comme suit : un enseignant en informatique propose à ses élèves de pondre un filtre (donc une fonction) permettant de rejeter une adresse e-mail invalide.
    Ce qui parait simple au départ l'est beaucoup moins à l'arrivée, car il faudrait pour cela se taper la lecture attentive de la norme RFC 2822.

    Faire la part de ce qui est autorisé dans une adresse e-mail à gauche du caractère "@" (local) et à droite (domaine) n'est pas si simple et la liste des interdits est longue.

    Mais je sens que Bluedeep a mieux à proposer que les expressions rationnelles, aujourd'hui passées de mode.
    C'est un exercice et l'analyse n'a pas besoin d'être complète. Il siffit juste de respecter les contraintes (simplifiées) de l'énoncé.

Discussions similaires

  1. Algorithme "suppression des espaces chaine de caractère"
    Par tim-tam dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 05/05/2012, 13h07
  2. TPE "le vieillissement de la peau" : Sondage adressé au forumeur !
    Par invitef8a32ab0 dans le forum TPE / TIPE et autres travaux
    Réponses: 6
    Dernier message: 28/11/2008, 10h45