Une calculatrice

Soyez le premier à donner votre avis sur cette source.

Vue 6 988 fois - Téléchargée 522 fois

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

Ajouter un commentaire

Commentaires

Messages postés
41
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 avril 2009

Au fait ce serait sympa de proposer au moins un code source avent de réclamer!
Mais bon, pour t'encourager, cherche un peu, ce n'est pas compliqué. Je peux te dire que j'ai essayée la fonction avec firefox et que cela marche si tu suis les indications que je t'ai données.
Messages postés
12
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
27 mars 2009

J'ai mis innerHTML, j'ai mis innerText, j'ai mis value, ça me renvoie toujours NaN…
Messages postés
41
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 avril 2009

Je te répète que ça marche si tu suis les indications que je t'ai données.
Je laisse le script tel quel.
Messages postés
12
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
27 mars 2009

Revois et corrige toute ta fonction, je téléchargerai le script corrigé :p
Messages postés
41
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 avril 2009

Autant pour moi, ce n'est pas innerText mais value qui convient.
Cela devrait marcher!
Sinon je ne vois pas.
Afficher les 9 commentaires

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.