IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Début en Javascript


Sujet :

JavaScript

  1. #21
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut veuillez m'excuser par avance pour ce très flagrant hors sujet ^^
    Citation Envoyé par Watilin Voir le message
    Ah oui. Euh… Oups ^^ Mais c'est parce que j'aime bien NaN
    ...et bon appétit ! (et ben voilà tu m'as donné faim )

  2. #22
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Avec vos conseils et aides, voila ce que j'ai réalisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <body>
    	<script type="text/javascript" >
    		<!--
    			function calculatrice()
    			{
    				var resultat;
    				var nombre1;
    				var nombre2;
    				var type;
     
    				type = saisieSigne();
    				nombre1 = saisie();
    				nombre2 = saisie2();
     
    				function saisieSigne(){
    					return signe = prompt("Quel type d'operation voulez-vous faire ? (+,-,*,/)");
    				}
     
    				function saisie(){
    					nb1 = parseInt(prompt("Saisissez le premier nombre.","nombre"));
    					return nb1;
    				}
    				function saisie2(){
    					nb2 = parseInt(prompt("Saisissez le premier nombre.","nombre"));
    					return nb2;
    				}
     
    				if (type == "+"){
    					function addition(nb1,nb2)
    					{
    						res = nb1 + nb2;
    						return res;
    					}
    					resultat = addition(nombre1,nombre2);
    				} else if (type == "-"){
    					function soustraction(nb1,nb2)
    					{
    						res = nb1 - nb2;
    						return res;
    					}
    					resultat = soustraction(nombre1, nombre2);
    				} else if (type == "*"){
    					function multiplication(nb1,nb2)
    					{
    						res = nb1 * nb2;
    						return res;
    					}
    					resultat = multiplication(nombre1, nombre2);
    				} else if (type == "/") {
    					function division(nb1,nb2)
    					{
    						res = nb1 / nb2;
    						return res;
    					}
    					resultat = division(nombre1, nombre2);
    				}
     
    				function affichage(res)
    				{
    					alert("Resultat : "+res);
    				}
     
    				affichage(resultat);
    			}
    		//-->
    	</script>
    	<br /><br /><br /><br />
    	<center><input type="submit" value="calculatrice" onclick="calculatrice();"/></center>
    </body>
    Si vous avez des conseils pour améliorer un peu n'hésitez pas.

  3. #23
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Pareil ^^ tu utilises ici des variables globales inutiles...

    Je proposerais quelques simplifications :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    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
             function calculatrice() {
                var resultat;
                var nombre1;
                var nombre2;
                var type;
     
                type = saisieSigne();
                nombre1 = saisie("Saisissez le premier nombre.");
                nombre2 = saisie("Saisissez le deuxième nombre.");
     
                function saisieSigne() {
                   return prompt("Quel type d'operation voulez-vous faire ? (+,-,*,/)");
                } 
                function saisie(message) {
                   return parseInt(prompt(message, "nombre"), 10);
                }
                function addition(nb1,nb2) {
                   return (nb1 + nb2);
                }
                function soustraction(nb1,nb2) {
                   return (nb1 - nb2);
                }
                function multiplication(nb1,nb2) {
                   return (nb1 * nb2);
                }
                function division(nb1,nb2) {
                   return (nb1 / nb2);
                }
                function affichage(res) {
                   alert("Resultat : "+res);
                }
     
                switch (type) {
                   case "+": resultat = addition(nombre1, nombre2);
                   case "-": resultat = soustraction(nombre1, nombre2);
                   case "*": resultat = multiplication(nombre1, nombre2);
                   case "/": resultat = division(nombre1, nombre2);
                }
                affichage(resultat);
             }

  4. #24
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Tora21
    Si vous avez des conseils pour améliorer un peu n'hésitez pas.
    J'avoue qu'il y en aurait pas mal

    Tout d'abord, l'intérêt d'une fonction est de pouvoir exécuter plusieurs fois la même portion de code. Donc faire une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function saisie(){
    	nb1 = parseInt(prompt("Saisissez le premier nombre.","nombre"));
    	return nb1;
    }
    c'est bien, mais à quoi sert la fonction saisie2() qui fait exactement la même chose ???
    Ensuite, vu que tu peux passer des arguments à une fonction, saisieSigne() devient aussi superfétatoire ()
    Et surtout, définir une fonction qui refait exactement la même chose qu'une méthode native, c'est bien mais pas top

    Ensuite, une variable sert à stocker une donnée, mais stocker une donnée qui va être détruite à l'instruction suivante a ma foi assez peu d'intérêt, donc saisie() peut facilement devenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function saisie(texte, valeur){
        return prompt(texte, valeur);
    }
    Autre chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (type == "+"){
    	function addition(nb1,nb2){
    		res = nb1 + nb2;
    		return res;
    	}
    	resultat = addition(nombre1,nombre2);
    }
    A part le plaisir masochiste de se faire de noeuds à l'encéphale, je comprends difficilement l'intérêt de définir une fonction puis une variable qui récupèrera le résultat de la fonction pour le retourner immédiatement...
    Ne crois-tu pas que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (type == "+"){
    	return nb1 + nb2;
    }
    est plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function calculatrice(){
        var nb1 = prompt('Entrez le premier nombre', 'Nombre');
        var nb2 = prompt('Entrez le deuxième nombre', 'Nombre');
        switch(prompt('Quelle opération ?', '+,-,*,/'){
            case '+':
                alert(parseInt(nb1, 10) + parseInt(nb2, 10));
                return;
            case '-':
                alert(nb1 - nb2);
                return;
            case '*':
                alert(nb1 * nb2);
                return;
            case '/':
                alert(nb1 / nb2);
                return;
            default:
                alert('Erreur de saisie...');
                calculatrice();
        }
    }

  5. #25
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Ne nous arrêtons pas en si bon chemin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function calculatrice() {
       var resultat, type, nombre1, nombre2;
       var Operations = {
          "+": function (nb1,nb2) { return (nb1 + nb2); },
          "-": function (nb1,nb2) { return (nb1 - nb2); },
          "*": function (nb1,nb2) { return (nb1 * nb2); },
          "/": function (nb1,nb2) { return (nb1 / nb2); }
       };
       function saisieSigne() { return prompt("Quel type d'operation voulez-vous faire ? (+,-,*,/)"); } 
       function saisie(message) { return parseInt(prompt(message, "nombre"), 10); }
       function affichage(res) { alert("Resultat : " + res); }
     
       type = saisieSigne();
       nombre1 = saisie("Saisissez le premier nombre.");
       nombre2 = saisie("Saisissez le deuxième nombre.");
       resultat = Operations[type](nombre1, nombre2);
       affichage(resultat);
    }
    edit : le code ci-dessus constitue un retour en arrière par rapport aux remarques de bon sens de Bovino, mais j'étais pris dans mon élan de factorisation, indépendamment du pragmatisme général (le "pour quoi faire ?")

    Etant donné que l'idée du post initial était d'apprendre à manipuler les fonctions... ^^

    --- (ci-dessous, supplément hors-sujet)

    Citation Envoyé par Bovino
    superfétatoire ()
    Attends ne me dis rien... Vous faites une sorte de loto avec des copains et tu devais essayer de placer celui-là quelque part... Bravo c'était pas évident ^^

  6. #26
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(nombre1 + type + nombre2);

  7. #27
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(nombre1 + type + nombre2);
    J'y ai pensé mais j'avais pas osé

  8. #28
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    c'est pour ça que j'ai pas voulu participer

  9. #29
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Eh ben je vois que ça vous motive mon post.

    J'ai encore amélioré mon code avec des petits morceaux de RomainVALERI et Bovino. Mais la ton dernier affichage de code Romain ma donné mal à la tête je pense que je dois encore m'enfoncer un peu plus dans le javascript avant d'attaquer les réductions de code.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14
  2. Javascript, début & exercice
    Par Farr3ll dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/03/2009, 12h46
  3. javascript début difficile
    Par shyx21 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/03/2008, 22h16
  4. Début javascript : remplir une dropdownlist
    Par jbrasselet dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2006, 15h43
  5. Toutes les bonnes choses ont un début ...
    Par Bols2000 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/08/2002, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo