Une calculatrice

Description

Une caculatrice: Il en existe plus d'une dizaine sur ce site, celle-ci n'est donc qu'une variante. son intérêt réside dans sa fonction unique et très compacte d'intégration des fonctions de calcul fournies par javascript. (Tester avec IE et Opéra)

Source / Exemple :


function operer(signe, rang) {
    if (signe == 'CE' || signe == 'C') {
        memoire1 = "";
        memoire2 = "";
        form12.text2.value = "";
        form12.text1.value = form12.text1.value + '\r';
        vide = true;
        decimale = false;
    }
    else {
        var fonction = new Array(Math.round(form12.text2.value), Math.exp(form12.text2.value), Math.log(form12.text2.value), Math.sqrt(form12.text2.value), Math.tan(form12.text2.value), Math.cos(form12.text2.value), Math.sin(form12.text2.value), eval(form12.text2.value / 100), eval(1 / form12.text2.value), eval(0.017453292519 * form12.text2.value), eval(-1 * form12.text2.value), eval(form12.text2.value * form12.text2.value), Math.ceil(form12.text2.value));
        var texte = new Array(' Arrondi=', ' Exponentielle=', ' Logatithme=', ' Racine carré=', ' Tangente=', ' Cosinus=', ' Sinus=', '%=', ' Inverse=', ' En radian=', ' Opposé=', '²=', ' < ');
        if (form12.text2.value == '') { form12.text2.value = "0"; form12.text1.value += "0"; }
        if (rang < fonction.length) {
            form12.text2.value = fonction[rang];
            form12.text1.value += texte[rang];
            if (form12.text2.value == 'NaN' || form12.text2.value.indexOf('Infinity') != '-1') { decimale = false; vide = true; form12.text1.value += "Opération impossible "; form12.text2.value = ""; memoire2 = ""; memoire3 = ""; }
            if (form12.text2.value != '') form12.text1.value += Math.round(eval(form12.text2.value * 1000000000)) / 1000000000;
        }
        if (form12.text2.value.indexOf('.') != '-1') decimale = true;
        if (memoire2 != '') {
            form12.text2.value = Math.round(Math.pow(eval(memoire2), form12.text2.value) * 1000000000) / 1000000000;
            memoire2 = "";
            if (signe != '=') form12.text1.value += "=" + form12.text2.value;
        }
        if (signe != '' && signe != '=') {
             vide = true;
             decimale = false;
             if (signe == 'xy') {
                 memoire2 = form12.text2.value;
                 form12.text1.value += " Puissance"
                 form12.text2.value = "";
             }
             else {
                 memoire1 += form12.text2.value + signe;
                 form12.text1.value += signe;
                 form12.text2.value = "";
             }
         }
         if (signe == '=') {
             memoire1 += form12.text2.value;
             form12.text2.value = eval(memoire1);
             memoire1 = "";
             if (form12.text2.value == 'NaN' || form12.text2.value == 'Infinity') { form12.text1.innerText += "=Opération impossible"; form12.text2.value = ""; }
             else form12.text1.value += "=" + (Math.round(form12.text2.value * 1000000000)) / 1000000000;
         }
    }
    if (signe == 'C') form12.reset();
}

Conclusion :


Un exemple dans le zip.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.