bonjour,
je fais un programme qui code les lettres en chiffres
par exemple 'a vaut 2' signifie que toutes les lettres sont décalé d'un cran. et donc le mot {ab,c} donneras {2,3,4}.

mon soucis est que mon programme renvoie 'undefined', je veux dire, ma page s'affiche sans erreur, mais quand je lance le programme, la réponse est non définis. Et je ne vois pas trop ou est l'erreur

pour info :
dans des inputs, type text, j'ai:
  • "textOriginal" qui corresponds au texte à traduire
  • "lettreOriginal" (1 seul caractère) qui correspond à 'a' dans mon exemple ci dessus
  • "lettreCoder" (1 seul carectère) qui correspond à '2' dans mon exemple

et enfin, j'ai une balise pour indiquer ou écrire la solution : <div id="textCoder"></div>

J'espère que vous pourrez me dépanner. Je précise que ce n'est pas pour un devoir et que j'apprends le JS pour mon site (pour le plaisir).

mon code javascript
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
 
		function b_alphadeca(monForm)
		{	// on code en chiffre !
			var i=0;
			var regelText = /^[a-zA-Z]$/;
			var regelNum = /^[0-9]$/;
			var long=monForm["textOriginal"].value.length;	// longueur du texte à traduire
			var clee=0;										// entier
			var textFinal = new Array(long);				// tableau d'entier
 
			// clee de codage : c'est le décalage introduit
			clee = monForm["lettreCoder"] - lettre_chiffre(monForm["lettreOriginal"]);
 
			// on transforme le texte original en chiffrage numérique, avec la cléé de codage
			for (i=0; i<long; i++)
			{
				if (regelText.test(monForm["textOriginal"].value.charAt(i) ) )  
				{ 	// (int) on prend une lettre à traduire et on la chiffre
					textFinal[i] = lettre_chiffre(monForm["textOriginal"].value.charAt(i))+clee;	// modulo 26
				}
				else { textFinal[i]= monForm["textOriginal"].value.charAt(i) }						
			}
 
			document.getElementById('textCoder').innerHTML=textFinal.value;
		};
 
// retourne le chiffre correspondant à la lettre : a-1, b-2 ...		
		function lettre_chiffre(lettre){  
			var tableau= new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
			var i=0;
			for ( i=0; i<26; i++)
			{
				if (lettre = tableau[i])
				{ return i+1;
				}
			}
		};
nb : il y avait une petite erreur, dans la clee de codage, mais meme en la changeant, le problème reste le même...