Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LES CALCULETTES DE CRASHTEST


Information sur la source

Catégorie :Divers Classé sous : calculette, pythagore, thales, carré, pourcentage Niveau : Débutant Date de création : 04/03/2005 Date de mise à jour : 08/03/2005 16:52:05 Vu : 2 992

Note :
6 / 10 - par 3 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Bonjour à tous, alors voici 2 calculettes. Dont la premier est très simple, j'ai mis de page web pour une calculette sur chaque page. J'espère que cela peut aider quelq'un.
@++  crashtest
 

Source

  • ------------------------------------------1er calculette------------------------------------------
  • <html><head>
  • <title>calculette</title>
  • <script language="javascript">
  • onerror=erreur;
  • function erreur() {
  • alert("erreur de saisis !");
  • document.formulaire.traitement.value = "";
  • document.formulaire.affichage.value = "Erreur !!!";
  • document.formulaire.traitement.focus();
  • return true;
  • }
  • function calcul() {
  • document.formulaire.affichage.value =
  • eval(document.formulaire.traitement.value);
  • setTimeout('document.formulaire.traitement.value = "" ' , 2000);
  • document.formulaire.traitement.focus();
  • }
  • </script>
  • </head>
  • <body>
  • <form name="formulaire">
  • <pre><center>Une fois ta formule ecrite appuie sur tab<br>
  • Votre formule : <input type="text" name="traitement" onblur="calcul()">
  • Le resultat : <input type="text" name="affichage"></center>
  • </pre></form>
  • </body></html>
  • ------------------------------------------2ieme calculette------------------------------------------
  • <html><head>
  • <title>calculette par crashtest</title>
  • <script>
  • function toto(radio){
  • for (var i=0; i<radio.length;i++) {
  • if (radio[i].checked) {
  • document.frm.nom.value = eval(document.frm.a.value +radio[i].value+ document.frm.b.value) * eval(document.frm.c.value);
  • document.frm.a.focus();
  • }
  • }
  • }
  • function pythagore(radio){
  • this.frm.a² = document.frm.a.value * document.frm.a.value;
  • this.frm.b² = document.frm.b.value * document.frm.b.value;
  • this.frm.ab = this.frm.a²;
  • this.frm.ab2 = this.frm.b²;
  • for (var j=0; j<radio.length;j++) {
  • if (radio[j].checked) {
  • alert('Le total aparaîtra aussi\ndans la case résultat.\nAB = '+document.frm.a.value +radio[j].value+ document.frm.b.value+'\nAB² = '+this.frm.a² +radio[j].value+ this.frm.b²+'\nAB² = '+eval( this.frm.ab +radio[j].value+ this.frm.ab2 )+'\nAB = '+Math.sqrt( eval( this.frm.ab +radio[j].value+ this.frm.ab2 ) )+'');
  • document.frm.nom.value = Math.sqrt( eval( this.frm.ab +radio[j].value+ this.frm.ab2 ) );
  • }
  • }
  • }
  • onerror=erreur;
  • function erreur(){
  • document.frm.a.value = "0";
  • document.frm.b.value = "0";
  • document.frm.c.value = "1";
  • document.frm.nom.value = "Pas de lettre.";
  • document.frm.a.focus();
  • return true;
  • }
  • </script>
  • </head>
  • <body onload="document.frm.a.focus();document.frm.PI.title = Math.PI">
  • <form name="frm">
  • <center><h3>Calculette par Crashtest</h3><table><tr><td align="right">
  • 1er nombre(a) : <input type="text" name="a" size="20" value="0"><br>
  • 2ème nombre(b) : <input type="text" name="b" size="20" value="0"><br>
  • Multiplier par(c) : <input type="text" name="c" size="20" value="1" onclick="document.frm.c.value = 1"><br>Résultat : <input type="text" name="nom" size="20" disabled></td><td align="center">
  • +<input type="radio" value="+" checked name="rnom">
  • -<input type="radio" value="-" name="rnom">
  • x<input type="radio" value="*" name="rnom">
  • /<input type="radio" value="/" name="rnom"><br>
  • <input type="button" style="width:23" name="PI" value="PI" onclick="document.frm.c.value= Math.PI">
  • <input title="Carré du (a)" style="width:23" type="button" value="" onclick="document.frm.nom.value= document.frm.a.value * document.frm.a.value">
  • <input title="Racine carré du (a)" style="width:23" type="button" value="\/&macr;" onclick="document.frm.nom.value= Math.sqrt(document.frm.a.value);document.frm.a.focus();">
  • <input title="Le pourcentage du ((a) x (b))" style="width:23" type="button" value="%" onclick="document.frm.nom.value = (document.frm.a.value * document.frm.b.value) / 100"><br>
  • <input title="(a), (b) (+)ou(-)" type="button" value="Pythagore" onclick="pythagore(this.form.rnom)" style="width:70">
  • <input title="((a) x (b)) / (c) ou (a) / (c) = x / (b)" type="button" value="Thalès" onclick="document.frm.nom.value = (document.frm.a.value * document.frm.b.value) / document.frm.c.value" style="width:70"><br>
  • <input title="[(a) (+, -, x, /) (b)] x (c)" type="button" value="Résultat" onclick="toto(this.form.rnom)" style="width:60">
  • <input title="Remise à 0" type="reset" value="Clear" style="width:60">
  • </td></tr><tr><td colspan=2>Explication :<ol type=I><li>Bouton "Résultat" : le 1er nombre=(a); et le 2ème nombre=(b);<br>avec les boutons radio vous choisissez l'opération que vous allez<br>faire avec (a) et (b). Multiplier par=(c);<br>[(a) (l'opérateur) (b)] est multiplié par (c).<br><hr width=100%></li>
  • <li>Bouton "Clear" : met la calculette à 0<br><hr width=100%></li>
  • <li>Bouton "Pythagore" : (a)=1 côté de votre triangle dont vous connaissez<br>la longueur; (b)=1 autre côté de votre triangle dont vous connaissez<br>la longueur; Suivant le côté que vous cherchez, vous choisissez le (+) ou le (-)<br>dans les boutons radio.<br>Puis cliquer sur le bouton "pythagore", le résultat avec le détail s'affichera<br>dans une boite d'alerte, le résultat simple s'affichera dans la case de texte<br>résultat.<br><hr width=100%></li>
  • <li>Bouton "Thalès" : (a)=AB; (b)=CB; (c)=AC; (x)=DE;<br>donc AB/AC = DE/CB; donc (a)/(c) = (x)/(b).<br>La calculette calcule DE = (x) = (AB x CB)/ AC = ((a) x (b))/ (c).<br><hr width=100%></li>
  • <li>Bouton "PI" : il écrit la valeur PI dans la case (c).<br>Bouton "" : il calcule le carré de la valeur dans la case (a).<br>Bouton "\/&macr;" : il calcule la racine carré de la valeur dans la case (a).<br>Bouton "%" : il calcule le pourcentage de la valeur dans la case (a) x (b),<br>pour calculer une valeur, tapez votre valeur dans la case (a) et tapez "1"<br>dans la case (b).</li>
  • </ol><h5>Fin des explications.</h5></td><td></td></tr></table></center>
  • </form>
  • </body></html>
------------------------------------------1er calculette------------------------------------------
<html><head>
	<title>calculette</title>
<script language="javascript">

onerror=erreur;

function erreur() {
alert("erreur de saisis !");
    document.formulaire.traitement.value = "";
    document.formulaire.affichage.value = "Erreur !!!";
    document.formulaire.traitement.focus();
    return true;
}

function calcul() {
    document.formulaire.affichage.value =
	eval(document.formulaire.traitement.value);
	setTimeout('document.formulaire.traitement.value = "" ' , 2000);
	document.formulaire.traitement.focus();
}

</script>
</head>

<body>
<form name="formulaire">
<pre><center>Une fois ta formule ecrite appuie sur tab<br>
Votre formule : <input type="text" name="traitement" onblur="calcul()">
Le resultat : <input type="text" name="affichage"></center>
</pre></form>

</body></html>

------------------------------------------2ieme calculette------------------------------------------
<html><head>
  <title>calculette par crashtest</title>
<script>
function toto(radio){
    for (var i=0; i<radio.length;i++) {
       if (radio[i].checked) {
document.frm.nom.value = eval(document.frm.a.value +radio[i].value+ document.frm.b.value) * eval(document.frm.c.value);
document.frm.a.focus();
         }
      }
}

function pythagore(radio){
this.frm.a² = document.frm.a.value * document.frm.a.value;
this.frm.b² = document.frm.b.value * document.frm.b.value;
this.frm.ab = this.frm.a²;
this.frm.ab2 = this.frm.b²;
for (var j=0; j<radio.length;j++) {
       if (radio[j].checked) {
alert('Le total aparaîtra aussi\ndans la case résultat.\nAB = '+document.frm.a.value +radio[j].value+ document.frm.b.value+'\nAB² = '+this.frm.a² +radio[j].value+ this.frm.b²+'\nAB² = '+eval( this.frm.ab +radio[j].value+  this.frm.ab2 )+'\nAB = '+Math.sqrt( eval( this.frm.ab +radio[j].value+  this.frm.ab2 ) )+'');
document.frm.nom.value = Math.sqrt( eval( this.frm.ab +radio[j].value+  this.frm.ab2 ) );
    }
  }
}


onerror=erreur;

function erreur(){
    document.frm.a.value = "0";
    document.frm.b.value = "0";
    document.frm.c.value = "1";
    document.frm.nom.value = "Pas de lettre.";
    document.frm.a.focus();
    return true;
}
</script>
</head>

<body onload="document.frm.a.focus();document.frm.PI.title = Math.PI">
<form name="frm">
<center><h3>Calculette par Crashtest</h3><table><tr><td align="right">
1er nombre(a) : <input type="text" name="a" size="20" value="0"><br>
2ème nombre(b) : <input type="text" name="b" size="20" value="0"><br>
Multiplier par(c) : <input type="text" name="c" size="20" value="1" onclick="document.frm.c.value = 1"><br>Résultat : <input type="text" name="nom" size="20" disabled></td><td align="center">
+<input type="radio" value="+" checked name="rnom">
-<input type="radio" value="-" name="rnom">
x<input type="radio" value="*" name="rnom">
/<input type="radio" value="/" name="rnom"><br>
<input type="button" style="width:23" name="PI" value="PI" onclick="document.frm.c.value= Math.PI">
<input title="Carré du (a)" style="width:23" type="button" value="R²" onclick="document.frm.nom.value= document.frm.a.value * document.frm.a.value">
<input title="Racine carré du (a)" style="width:23" type="button" value="\/&macr;" onclick="document.frm.nom.value= Math.sqrt(document.frm.a.value);document.frm.a.focus();">
<input title="Le pourcentage du ((a) x (b))" style="width:23" type="button" value="%" onclick="document.frm.nom.value = (document.frm.a.value * document.frm.b.value) / 100"><br>
<input title="(a), (b) (+)ou(-)" type="button" value="Pythagore" onclick="pythagore(this.form.rnom)" style="width:70">
<input title="((a) x (b)) / (c) ou (a) / (c) = x / (b)" type="button" value="Thalès" onclick="document.frm.nom.value = (document.frm.a.value * document.frm.b.value) / document.frm.c.value" style="width:70"><br>
<input title="[(a) (+, -, x, /) (b)] x (c)" type="button" value="Résultat" onclick="toto(this.form.rnom)" style="width:60">
<input title="Remise à 0" type="reset" value="Clear" style="width:60">
</td></tr><tr><td colspan=2>Explication :<ol type=I><li>Bouton "Résultat" : le 1er nombre=(a); et le 2ème nombre=(b);<br>avec les boutons radio vous choisissez l'opération que vous allez<br>faire avec (a) et (b). Multiplier par=(c);<br>[(a) (l'opérateur) (b)] est multiplié par (c).<br><hr width=100%></li>
<li>Bouton "Clear" : met la calculette à 0<br><hr width=100%></li>
<li>Bouton "Pythagore" : (a)=1 côté de votre triangle dont vous connaissez<br>la longueur; (b)=1 autre côté de votre triangle dont vous connaissez<br>la longueur; Suivant le côté que vous cherchez, vous choisissez le (+) ou le (-)<br>dans les boutons radio.<br>Puis cliquer sur le bouton "pythagore", le résultat avec le détail s'affichera<br>dans une boite d'alerte, le résultat simple s'affichera dans la case de texte<br>résultat.<br><hr width=100%></li>
<li>Bouton "Thalès" : (a)=AB; (b)=CB; (c)=AC; (x)=DE;<br>donc AB/AC = DE/CB; donc (a)/(c) = (x)/(b).<br>La calculette calcule DE = (x) = (AB x CB)/ AC = ((a) x (b))/ (c).<br><hr width=100%></li>
<li>Bouton "PI" : il écrit  la valeur PI dans la case (c).<br>Bouton "R²" : il calcule le carré de la valeur dans la case (a).<br>Bouton "\/&macr;" : il calcule la racine carré de la valeur dans la case (a).<br>Bouton "%" : il calcule le pourcentage de la valeur dans la case (a) x (b),<br>pour calculer une valeur, tapez votre valeur dans la case (a) et tapez "1"<br>dans la case (b).</li>
</ol><h5>Fin des explications.</h5></td><td></td></tr></table></center>
</form>
</body></html>

Conclusion

Si quelq'un à des idées pour réduire le code de la 2ieme calculette je suis preneur.
 

Historique

04 mars 2005 22:28:16 :
J'ai retiré les (value="") et (document.) car il ne servait à rien thx pour ta remarque coucou747
06 mars 2005 00:30:28 :
J'ai réduit au maximum la 2ieme calculette.
06 mars 2005 16:59:31 :
Amélioration de la 2ieme calculette. Rajouts : d'une case text, de PI, du carré,de la racine carré, du pourcentage et du bouton clear.
08 mars 2005 16:52:08 :
J'ai rajouté plein de truc en plus dont pythagore thales....

Commentaires et avis

signaler à un administrateur
Commentaire de bibi_81 le 04/03/2005 21:02:35

le code est pas mal, mais j'ai aps envie de tester dsl, moi et les maths sa fais 15 :P

signaler à un administrateur
Commentaire de coucou747 le 04/03/2005 21:32:57

c'est marant :
-il prends tout type de code... y compris les divisions par 0
-ce n'est pas une calculette mais un terminale de calcul... (on tape les formules au lieu de cliquer...)
-c'est vraiment pas super quand on veut calculer qqch...

document.location='javascript:'+radio[i].value+';toto();'
pour cette ligne c'est vraiment dégeulasse.. sous gecko ça ne passe pas... et un alert sufirait...

onerror=calcul;
je ne sais pas si c'est vraiment corect... en tout cas ça ne doit pas passer très bien...

t'as une return true qui ne sert à rien...

quand à tes éval, on pourrait condenser vraiment...

tu demandes de l'aide pour diminuer le code... bah je dirais que tu devrais plutot chercher à augmenter les fonctionalitées...
pour t'aider :
value=""
c'est inutile...

signaler à un administrateur
Commentaire de crashtest le 04/03/2005 22:50:39

Bonjour,
pour la petite calculette il y a une autre façon de se genre la :
<html><head>
  <title>calculette</title>
<script language="javascript">

onerror=erreur;

function erreur() {
alert("erreur de saisis !");
    document.formulaire.traitement.value = "";
    document.formulaire.affichage.value = "Erreur !!!";
    document.formulaire.traitement.focus();
    return true;
}

function calcul() {
    document.formulaire.affichage.value =
  eval(document.formulaire.traitement.value);
    document.formulaire.traitement.focus();
}

</script>
</head>

<body>
<form name="formulaire">
<pre><center>Une fois ta formule ecrite appuie sur tab<br>
Votre formule : <input type="text" name="traitement">&nbsp;<input type="button" value="Calculé" onclick="calcul()">
Le resultat : <input type="text" name="affichage"></center>
</pre></form>

</body></html>

document.location='javascript:'+radio[i].value+';toto();'
ba j'ai retiré (document) mais sinon je ne c'est pas comment le faire plus beau.

pour le onerror=calcul;oui il sert car quand on ecrit une lettre dans le calcul le onerror s'active et cela evite de faire bugger le script.

et pour le return je ne connais pas exactement sa définition mai je croit bien qu'il faut le mettre pour evité tout les bugs de calcul

signaler à un administrateur
Commentaire de coucou747 le 04/03/2005 23:08:43

il y a énormément de façons, mais celle que tu as utilisée n'est pas super super...

signaler à un administrateur
Commentaire de crashtest le 05/03/2005 00:26:22

ba si tu pouvais me donner quelques une des plusieurs façons s'il te plaît cela m'aiderait à apprendre.
Merci d'avance.

signaler à un administrateur
Commentaire de newbie70 le 05/03/2005 00:30:50

ben moi ca m'a aidé, lol ca fesait longtemps que j'essaye de faire une calculette mais en vain, et grace au deux script différents jvai pouvoir comparé les fonctions, merci crash.
++

signaler à un administrateur
Commentaire de coucou747 le 05/03/2005 00:31:08

il existe plein d'exemples sur ce site....
personnellement je n'en ai codé aucun...

tu peux pe la faire OO....

signaler à un administrateur
Commentaire de coucou747 le 05/03/2005 00:48:56

en lisant nimporte quel tutorial, on aprend la fonction eval... la suite, c'est deux cases de texte, newbie, t'as pas du chercher loin....

pour une calculette, pour la faire OO, on pourait faire une méthode qui permètrais d'ajouter des touches qui donneraient des fonctions particuliètres... ça pourait être sympas, et un peu moins basic...

signaler à un administrateur
Commentaire de crashtest le 06/03/2005 11:16:19

j'ai utilisé la fonction eval() car pour 2 objet entre si tu met un simple + il ne va pas te faire une addition mais un incrément alors pour faire une addition je fait
eval(document.frm.a.value) + eval(document.frm.b.value) .
J'ai minimisé au maximum la 2ieme calculette.

signaler à un administrateur
Commentaire de coucou747 le 06/03/2005 11:30:09

ah.... t'as des fonctions de converstions de chaines en int en javascript.....

signaler à un administrateur
Commentaire de crashtest le 06/03/2005 17:03:57

Je n'ai pas trouver la fonction de converstion de chaine en int.
Mais par contre j'ai amélioré la 2ieme calculette, et après sa je ne vois plus trop comment l'améliorer.
Mais j'y réfléchi.

signaler à un administrateur
Commentaire de crashtest le 08/03/2005 17:14:30

Bon voila alors j'ai pensé à plein de trucs alors je les ai  mise mais je pensai mettre aussi la trigonométrique mais le résultat sera en rad (j'aime pas), donc dès que j'aurais réussi à le mettre en deg je le mettrais voila @++

signaler à un administrateur
Commentaire de coucou747 le 11/03/2005 07:08:15

je t'ai expliqué sur une source... les converstions d'angles.... fais un peu de POO, trouveras

signaler à un administrateur
Commentaire de crashtest le 11/03/2005 10:55:46

ba oui mais j'ai essayer se que tu mas expliké et sa marche pour le sin mais c'est tout à moin que je mi suis mal pris.
c'est quoi exactement le POO, je n'en n'est jamais entendu parler

signaler à un administrateur
Commentaire de coucou747 le 11/03/2005 21:04:08

POO= Programmation orientée Objet...

cherche sur google !!!!!!!!!!!!!!!!!

c'est un sujet compliqué, mais la tu poses une question alors que tu n'en a même pas entendu parler (et que tout le monde en parle...)

ça existe en Js, C++, Perl, Java, Php ...
je crois que ça existe même en VB

c'est hyper important comme concept de programmation, je pourais t'en écrire 10 pages...

signaler à un administrateur
Commentaire de crashtest le 11/03/2005 23:36:01

moi j'ai programmer en vb et maintenan en javascript mais j'ai rarement lut les tutoriauxvoir en faite j'en n'est lu un seul sur internet sa parlai des tableau c'est tt mai sinon je me suis acheter un livre sur le js j'ai lu 2page car j'aime pas lire mais dans le sommaire il ne parle pas de POO.
Mais je vai me renseigner sur google

signaler à un administrateur
Commentaire de coucou747 le 12/03/2005 08:37:13

je n'ai pas lu de livres sur le js, j'ai lu un livre sur le C, et un sur le C++...

la poo, je la connaissais avant, en C++, (et oui, je connaissais le C++ avant de lire le livre...)

lis des sources, et tu comprendras...

signaler à un administrateur
Commentaire de lgh le 17/06/2005 18:16:51

Faites donc 12.99+11 et vous verez que le résultat n'est qu'approché!
LGH

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Problème de taille d'iframe [ par LeJulius ] voila les gas !! ::je souhaite choper la taille d'une iframe qui est défini commeun pourcentage d'une cellule d'un tableau et ce tableau est dans la racine carré en javascript [ par littlemarley ] Pourriez vous m'indiquer comment faire la racine carr&#233; d'une variable pck g essay&#233; : sqrt ou encor e^(1/2) mais ca ne marche pas, si vous po pb dans code: marche pas [ par nanonerie ] nanonerie &lt;html&gt; &lt;head&gt;  &lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;  &lt;title&gt;calcul Fonction qui ne marche pas !!! [ par nicomilville ] Salut tout le monde,j'ai une fonction js qui ne marche pas, pourrai t-on m'expliquer pourquoi ???function carré(valeur) { return valeur*valeur;}functi calcul pourcentage [ par samyweb ] Bjr j'aimerais avoir une aide je débute totalement en javascript pourrais-je avoir un peu d'aide j'ai un calcul à faire qui est le suivant : un somme


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.