Lorenfar
Messages postés2Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention30 avril 2004
-
29 avril 2004 à 18:27
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
1 mai 2004 à 07:09
Salut à toute la communauté.
J'ai un problème avec mon premier scrip.Et oui je suis un noob.
Avant de vous le montrer, je vais vous expliquez à quoi il aurait du servir si il avait marché.
Vous connaissez Raymond Queneau, un écrivain mathématicien. Pour un sujet d'école( je suis en 4°), on doit réaliser un exposé sur lui et les maths.
Donc voilà, le but du script était de prendre un texte et de le modifier avec sa méthode S+n.
J'explique: à chaque lettre du texte on ajoute un nombre donné à sa suite dans l'alphabet. En sachant que le A vaut 1, avec S+7, A devient un H.
Le principe du code est le suivant :
-la chaine de caractère du texte est mise dans un tableau.
-Chaque caractère est transformé en nombre (1=A 2=B etc.)
-on applique un division modulaire par le nombre donné (ex: si on veut transformé x avec S+7, en sachant que x=24, on a 24+7mod26=31mod26=5 donc x vaut E)
-onreforme ensuite une chaine et on l'affiche.
Voici le code:
<html>
<head>
<title>
Transformation de texte avec la méthodee S+n ede Raymond Quenaud
</title>
<script>
//Déclaration de toutes les fonction necessaires au déroulement du programme
function allfunction(txt,n){
transtext(txt)
change()
transform(n)
regroup()
function transtext(txt){
var chaine = new String(txt)
var nb = chaine.length
var cararct = new Array(chaine.length)
for (t=0;t<=nb;t++){
caract[t]=chaine.charAt(t)}}
function change(){
for (rt=0,rt<=chaine.charAt(rt),rt++){
if (caract[rt]="a"){caract[rt]=1} else {}
if (caract[rt]="b"){caract[rt]=2} else {}
if (caract[rt]="c"){caract[rt]=3} else {}
if (caract[rt]="d"){caract[rt]=4} else {}
if (caract[rt]="e"){caract[rt]=5} else {}
if (caract[rt]="f"){caract[rt]=6} else {}
if (caract[rt]="g"){caract[rt]=7} else {}
if (caract[rt]="h"){caract[rt]=8} else {}
if (caract[rt]="i"){caract[rt]=9} else {}
if (caract[rt]="j"){caract[rt]=10} else {}
if (caract[rt]="k"){caract[rt]=11} else {}
if (caract[rt]="l"){caract[rt]=12} else {}
if (caract[rt]="m"){caract[rt]=13} else {}
if (caract[rt]="n"){caract[rt]=14} else {}
if (caract[rt]="o"){caract[rt]=15} else {}
if (caract[rt]="p"){caract[rt]=16} else {}
if (caract[rt]="q"){caract[rt]=17} else {}
if (caract[rt]="r"){caract[rt]=18} else {}
if (caract[rt]="s"){caract[rt]=19} else {}
if (caract[rt]="t"){caract[rt]=20} else {}
if (caract[rt]="u"){caract[rt]=21} else {}
if (caract[rt]="v"){caract[rt]=22} else {}
if (caract[rt]="w"){caract[rt]=23} else {}
if (caract[rt]="x"){caract[rt]=24} else {}
if (caract[rt]="y"){caract[rt]=25} else {}
if (caract[rt]="z"){caract[rt]=26} else {}
if (caract[rt]=""){caract[rt]=-12313151312135121} else { }
} }
function transform(n){
for (rt=0,rt<=chaine.charAt(rt),rt++){
var np=caract[rt]+n
var bn=np%26
if (caract[bn]=1){caract[bn]="a"} else {}
if (caract[bn]=2){caract[bn]="b"} else {}
if (caract[bn]=3){caract[bn]="c"} else {}
if (caract[bn]=4){caract[bn]="d"} else {}
if (caract[bn]=5){caract[bn]="e"} else {}
if (caract[bn]=6){caract[bn]="f"} else {}
if (caract[bn]=7){caract[bn]="g"} else {}
if (caract[bn]=8){caract[bn]="h"} else {}
if (caract[bn]=9){caract[bn]="i"} else {}
if (caract[bn]=10){caract[bn]="j"} else {}
if (caract[bn]=11){caract[bn]="k"} else {}
if (caract[bn]=12){caract[bn]="l"} else {}
if (caract[bn]=13){caract[bn]="m"} else {}
if (caract[bn]=14){caract[bn]="n"} else {}
if (caract[bn]=15){caract[bn]="o"} else {}
if (caract[bn]=16){caract[bn]="p"} else {}
if (caract[bn]=17){caract[bn]="q"} else {}
if (caract[bn]=18){caract[bn]="r"} else {}
if (caract[bn]=19){caract[bn]="s"} else {}
if (caract[bn]=20){caract[bn]="t"} else {}
if (caract[bn]=21){caract[bn]="u"} else {}
if (caract[bn]=22){caract[bn]="v"} else {}
if (caract[bn]=23){caract[bn]="w"} else {}
if (caract[bn]=24){caract[bn]="x"} else {}
if (caract[bn]=25){caract[bn]="y"} else {}
if (caract[bn]=26){caract[bn]="z"} else {}
if (caract[bn]<1 || caract[bn]>26 ){caract[rt]=-""} else { }
} }
function regroup(){
var txtf= new String(chainef)
for(rt=0,rt<=chaine.charAt(rt),rt++){
chainef=chainef+caract[rt]
} }
</script>
</head>
<form>
<center>
<textarea cols=50 rows=10 name="txtatransformer" >
Entrez ici le texte que vous voulez transformez
</textarea>
</center>
<center>
</center>
<center>
</center>
<center>
<script>
document.write(chainef)
</script>
</center>
</form>
</html>
Mon code est très brouillon ( il marche pas,ça bien sur ), si quelqu'un comprend ce que je voulais faire et pourrais m'aider merci beaucoup.
Lorenfar
Messages postés2Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention30 avril 2004 30 avril 2004 à 17:36
Merci beaucoup bultez, ton code marche bien.
Le seul truc qui me gênait c'est qu'il n'y avait pas d'espace mais des virgules entre 2 mot mais j'ai trouvé la solution :
-traiter tous les mots séparément avec comme séparateur " ", un espace.
-Appliquer ta fonction à tous les mots.
Même si mon code n'est pas bon, je voudrais savoir pourquoi, quand je le débugue, il me dit à un moment ("caract[rt]=1") ligne 29 que ce qu'il y a à gauche d'une assignation doit être une variable ou un objet, pourtant mon tableau est déclaré comme variable ?
Un peu d'aided SVP
Merci quand même.
__________________________________________________________
Même un noob peut faire de belles choses ........
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 1 mai 2004 à 07:09
quand on définit un tableau, on ne donne pas
le nombre de postes, mais la valeur des postes.
var t=new Array(10); ne veut pas dire un vecteur de 10
postes, mais un vecteur dont le 1er poste [0] contient 10.
et donc si on utilise t[5] => undefined.
var t=new Array(0,1,2,....); est bien sur possible.
Cordialement. Bul.