...et bon appétit ! (et ben voilà tu m'as donné faim )
...et bon appétit ! (et ben voilà tu m'as donné faim )
Avec vos conseils et aides, voila ce que j'ai réalisé:
Si vous avez des conseils pour améliorer un peu n'hésitez pas.
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>
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); }
J'avoue qu'il y en aurait pas malEnvoyé par Tora21
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
c'est bien, mais à quoi sert la fonction saisie2() qui fait exactement la même chose ???
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; }
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
Autre chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function saisie(texte, valeur){ return prompt(texte, valeur); }
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...
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); }
Ne crois-tu pas que
est plus simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (type == "+"){ return nb1 + nb2; }
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(); } }
Ne nous arrêtons pas en si bon chemin
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 ?")
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); }
Etant donné que l'idée du post initial était d'apprendre à manipuler les fonctions... ^^
--- (ci-dessous, supplément hors-sujet)
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 ^^Envoyé par Bovino
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part eval(nombre1 + type + nombre2);
c'est pour ça que j'ai pas voulu participer
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager