begin process at 2010 02 10 11:19:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > UNE CALCULATRICE

UNE CALCULATRICE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :calculatrice, calcul, chiffres, nombres Niveau :Initié Date de création :18/03/2009 Vu / téléchargé :2 958 / 291

Auteur : lgh

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 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

  • 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();
  • }
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.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip PALETTE DE COULEURS
Source avec Zip LES PHASES DE LA LUNE
Source avec Zip RECHERCHER ET REMPLACER UN MOT DANS UN TEXTE
Source avec Zip LE MENU FICHIER DES APPLICATIONS
Source avec Zip UN MENU, UNE BARRE DE MENUS!

 Sources de la même categorie

Source avec Zip MOOTABLEAU par Miky76
Source avec Zip CALCULER VOTRE IMC par lesnouesremy
CONSOLE DOS par djebbipgm
Source avec Zip PLUGIN JQUERY ARTE: AJOUTER DU TEMPS REEL SUR VOS PAGES WEB par arthurobriot
FAIRE UN FILTRE DES VILLES par scropfi01

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CALCULATRICE DE L'IPHONE ! par dlvains
Source avec Zip SUDOKUS PAREIL MAIS EN MIEUX par Laffrey
Source avec Zip Source avec une capture TABLEUR TYPE EXCEL par WhiteDwarf
CALCULATEUR. par lamillor
Source avec Zip Source avec une capture CALCULATRICE AVEC CALCULS DE BASE ET CONVERSION IMMÉDIATE EN... par Guillaume

Commentaires et avis

Commentaire de Phoenix35 le 25/03/2009 14:02:34

Bonjour,

Firefox détecte une erreur :
"Erreur : form12 is not defined
Fichier Source : calculatrice.js
Ligne : 17"

Sinon, if(demicale == false) ; if(!demicale) est plus rapide et plus court :)

Comme ça ne marche pas (cf : erreur ci-dessus), je n'ai pas regardé d'autres choses ;)

Je te suggère de créer avec les name et title des input, étant donné qu'ils se répètent ;)

Commentaire de Phoenix35 le 25/03/2009 14:03:04

Je te suggère de créer avec JS* les name
Désolé ^^

Commentaire de lgh le 25/03/2009 17:10:18

Merci de la remarque. Ceci étant, il suffit de supprimer le formulaire, modifier les <input name= en <input id= puis remplacer les form12.txt[x].value par document.getElementById('text[x]').innerText. Ne reste plus alors qu'à vider l'aire de texte en dernière ligne de script.
Cela devrait marcher comme ça!
J'attends ta confirmation.
Salut.

Commentaire de Phoenix35 le 25/03/2009 18:21:06

Au vu du nombre énorme d'utilisations de "document.getElementById('text2').innerHTML" (pareil pour text1), je te conseille de mettre en variable.

De plus, ton code foire tout le temps.
9² me retourne NaN (comme toutes les opérations)
le bouton = ne marche pas (eval mal utilisé)
.
À revoir tout ça ;)

Commentaire de lgh le 26/03/2009 07:11:12

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

Commentaire de Phoenix35 le 26/03/2009 20:25:58

Revois et corrige toute ta fonction, je téléchargerai le script corrigé :p

Commentaire de lgh le 27/03/2009 08:03:06

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.

Commentaire de Phoenix35 le 27/03/2009 18:40:23

J'ai mis innerHTML, j'ai mis innerText, j'ai mis value, ça me renvoie toujours NaN.

Commentaire de lgh le 28/03/2009 06:50:31

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

calcul des jours feriés [ par michel ] Quelqu'un peut-il me dire si le calcul des jours feriés de l'année X existe en javascript ? Calcul de DATE avec JavaScript [ par Dzeus ] Salut, G besoin d'ecrire une fonction qui renvoie le nombre de jour exact écoulé entre deux dates ; exemple..20/02/2001 et 5/03/2001...ATTENTION : Il Calcul Arithmétique en JS [ par webdev ] Comment arrondir les valeurs numériques en JS.Deux valeurs sont récupérées dans 2 textbox, converties avec 'Eval' et on souhaite en calculer le rappor Calcul dans u formulaire [ par grakel ] Salut a tous, J'ai un piti probleme de javascript. Je souhaites faire un calcul dans un formulaire. schema type J'ai des champs texte puis un input="b calcul d'un nombre de jours entre deux dates [ par borisV ] Bonjour, je cherche à calculer (et afficher...) un nombre de jours en tapant une date d'arrivée et une date de départ.En fait, il faudrait peut-être s calcul score [ par jchv ] Bonjour à tous . Voilà mon problème : Est-il possible de créer une page (genre formulaire peut-être ?) ou on pourrait choisir pour chaque question (30 un javascript qui calcul le nombre de jour entre 2 date? [ par jetlee79 ] Bonjour,Je recherche désespérèment un javascript qui me dise le nombre de jours qu'il y a entre 2 date.Car j'ai une page html ou je saisie dans TXtDat calcul d'un prix dynamique lié à des infos sur formulaire [ par dinosaur ] Bonjourje débute et donc petits problèmesJ'ai des formulaires cases et déroulant auquels il faut que je lie des prix puis suivant les différents choix calcul de la moyenne [ par ludoweb ] Bonjour à tousComment faire pour calculer la moyenne de n champ de texte ?voici le code qui génére les champs de texte (il n'est pas de moi, merci a m Multiplier deux chiffres et resultat avec deux décimales [ par petit-keum ] je fais une petite multiplication du style :nombre = 0.4 * (parseInt(document.forms[0].periode.value) * 7);ou periode varie de 0 à 9pour une valeur de


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales