...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(); } }
Pas de question technique par MP !
Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
Mes formations video2brain : La formation compl�te sur JavaScript � JavaScript et le DOM par la pratique � PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum
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...Envoy� par Bovino
Bravo c'�tait pas �vident ^^
Code JS : S�lectionner tout - Visualiser dans une fen�tre � part eval(nombre1 + type + nombre2);![]()
La FAQ JavaScript � Les cours JavaScript
Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !
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.
Partager