Donnez vie à vos documents numériques !
 

Répondre à : Réduction fraction

abracadabraPDF Forums PDF – Général Réduction fraction Répondre à : Réduction fraction

#69378
bebarth
Maître des clés

bonjour,
Voici le premier script commenté où tu avais déjà compris certaines choses :

Code:
// Déclaration de la fonction “simplify” avec l’argumet “str”
function simplify(str) {
    // Déclaration de la variable “result” vide
    var result=””;
    // On découpe la chaine de caractères “str” à chaque “/” pour en faire une table
    // Ici, comme il n’y a qu’un “/” la table comporte 2 éléments (avant et après le “/”)
    var data=str.split(“/”);
    // La variable “numOne” est le premier élément de la table “data” (basé sur 0)
    var numOne=Number(data[0]);
    // La variable “numTwo” est le deuxième élément de la table “data” (basé sur 0)
    var numTwo=Number(data[1]);
    // Boucle à partir de la valeur maxi entre numOne et numTwo jusqu’à 1 avec incrément de -1
    for (var i=Math.max(numOne,numTwo); i>1; i–) {
        // Si le reste de la division numOne÷i ET le reste de la division numTwo÷i sont égal à 0
        // i est un diviseur commun des 2 nombres
        if (numOne%i==0 && numTwo%i==0) {
            // donc on divise numOne par i (-> nouveau nombre numOne pour la boucle)
            numOne/=i;
            // et on divise numTwo par i (-> nouveau nombre numTwo pour la boucle)
            numTwo/=i;
        }
    }
    // Si numTwo = 1 (dénominateur ou diviseur = 1) result = numOne (numérateur ou dividende)
    if (numTwo===1) result=numOne.toString();
    // Sinon return = chaine de caractères numOne+”/”+numTwo
    else result=numOne.toString()+”/”+numTwo.toString();
    // Renvoi de la variable “result”
    return result;
}
// Et on applique la fonction à la chaine de caractères “4/6”
this.getField(“Text1”).value=simplify(“4/6”);
// Puis à la chaine de caractères “84810/985612”
this.getField(“Text2”).value=simplify(“84810/985612”);

On peut aussi définir une fonction avec plusieurs arguments :

Code:
// Fonction avec 2 arguments à placer en script de document
function simplify(numerateur,denominateur) {
    for (var i=Math.max(numerateur,denominateur); i>1; i–) {
        if (numerateur%i==0 && denominateur%i==0) {
            numerateur/=i;
            denominateur/=i;
        }
    }
    if (denominateur===1) result=numerateur.toString();
    else result=numerateur.toString()+”/”+denominateur.toString();
    return result;
}

// Et tu appelles la fonction en script de calcul du champ “Text1”
event.value=simplify(this.getField(nombre1).value,this.getField(nombre1).value);

Je te re-laisse étudier ça et je reviens plus tard.
N’hésite pas à demander si tu ne comprends pas.

@Rakesh Kumar: Do you want a translation of my comments? let me know.

@+
:bonjour: