Bonjour, je viens demander de l'aide car je ne sais pas comment m'en sortir.
Je débute en codage javascript. Je dois faire un convertisseur binaire > décimale avec contrôle de saisie
Je sais qu'il existe des fonctions déjà toutes faites mais ce n'est pas le but de cet exercice, car je dois aussi écrire un pseudo code que je comprends.
J'ai fait ceci pour avoir mon convertisseur :
Jusqu'ici ça marche bien, je saisi la valeur dans la pop-up et j'ai mon résultat qui est ok.
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 <script> var valbin = prompt("Entrez une valeur "); var i = 0 ; var tab=[]; var valeur = 0 ; var resultat = 0 ; while (valbin.charAt(i) != "") { tab[i] = valbin.charAt(i) ; i++; } tab.reverse(); var i=0; while (tab[i] == 1 || tab[i] == 0) { if ((tab[i]) == 1) { resultat += Math.pow(2,i); } i++; } document.write(resultat) ; </script>
Là ou ça se complique c'est que j'ai voulu en faire une fonction, avec des champs comme les formulaires pour que l'utilisateur tape sa valeur binaire.
Et j'ai tenté de mettre en place un contrôle grace a regexp et ça ne fonctionne pas du tout.
Je vous montre ce que j'ai fait :
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 <script> function Bintodec_onClick() { var valbin = document.getElementById( "valbin" ) ; var i = 0 ; var tab=[]; var valeur = 0 ; var resultat = 0 ; var chiffres = new RegExp("[^0-1]"); if (chiffres.test(valbin)) { alert("Vous n'avez pas saisi un nombre!"); } else { while (valbin.charAt(i) != "") { tab[i] = valbin.charAt(i) ; i++; } tab.reverse(); var i=0; while (tab[i] == 1 || tab[i] == 0) { if ((tab[i]) == 1) { resultat += Math.pow(2,i); } i++; } result.value = resultat ; } } </script> <label>Valeur binaire</label> <input id="valbin" /> <br> <label>Convertis en décimale : </label> <input id="result" /> <br> <button onclick="Bintodec_onClick() ;">Convertir en décimale !</button>
A ce moment j'ai dans tous les cas mon Alert qui s'affiche.
J'ai tenté de passer par une autre variable en faisant ajoutant
et en modifiant mon alert de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var binaire = valbin.value ;
La le contrôle s'éffectue bien mais j'ai un message d'érreur dont je n'arrive pas a me débarasser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (chiffres.test(binaire)) { alert("Vous n'avez pas saisi un nombre!"); }
Sans passer par des choses trop compliqué ou des fonctions déjà toute prête pouvez vous m'aider corriger ce script?object #<HTMLInputElement> has no method 'charAt'
Merci par avance
Partager