begin process at 2010 02 10 05:09:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > CALCULATRICE

CALCULATRICE


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :12/09/2003 Date de mise à jour :12/09/2003 21:56:08 Vu :4 047

Auteur : ceacy

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

 Description

C'est une simple calculatrice. Elle donne le résultat en nombres décimaux, binaires, octaux et hexas. C'est mon premier projet en PHP, alors soyez indulgents ;-)

Source

  • <?php
  • if(ereg("[a-zA-Z]|[;§µ£\$°'\"&@_!]", $_POST['calcul']))
  • {
  • echo "Syntaxe de l'opération non valide : pas de ponctuation ni de lettres, SVP";
  • }
  • elseif($_POST['calcul'])
  • {
  • $calcul='$result='.$_POST['calcul'].';';
  • $calcul=str_replace(",", ".", $calcul);
  • $calcul=str_replace("²", "^2", $calcul);
  • /* On recherche les occurrence de "nombre^exposant" dans la chaîne de calcul
  • afin de le remplacer par leur valeur */
  • while(ereg("\(*[0-9\*/%\+.\-]+\)*\^\(*[0-9\*/%\+.\-]+\)*", $calcul, $puissance))
  • {
  • $puissance[1]='$puissance[1]=pow('.str_replace("^", ",", $puissance[0]).');';
  • eval($puissance[1]);
  • $calcul=str_replace($puissance[0], $puissance[1], $calcul);
  • }
  • /* C'est ici qu'on effectue le calcul (sauf les puissances, c'est déjà fait ;-) */
  • eval($calcul);
  • /* C'est là qu'on convertit en binaire, hexa, octal */
  • $hexa = base_convert($result, 10, 16);
  • $binaire = base_convert($result, 10, 2);
  • $octal = base_convert($result, 10, 8);
  • $conversions = '<br><table align="center">
  • <tr>
  • <td><b>Ecriture décimale :</b></td><td align="right">'.$result.'</td>
  • </tr><tr>
  • <td><b>Ecriture hexadécimale :</b></td><td align="right">'.$hexa.'</td>
  • </tr><tr>
  • <td><b>Ecriture octale : </b></td><td align="right">'.$octal.'</td>
  • </tr><tr>
  • <td><b>Ecriture binaire :</b></td><td align="right">'.$binaire.'</td>
  • </tr>
  • </table>';
  • };
  • ?>
  • <html>
  • <head>
  • <title>Calculatrice</title>
  • </head>
  • <body bgcolor="#E6E7E6">
  • <form name="calc" action="calc.php" method="post">
  • <table align="center" width="300">
  • <tr>
  • <td>Calcul : </td>
  • <td><input type="text" name="calcul" value="<?=$result?>" align="right"></td>
  • </tr>
  • <tr>
  • <td colspan="2" align="center"><input type="submit" value="Enter"</td>
  • </tr>
  • </table>
  • </form>
  • <?=$conversions?>
  • </body>
  • </html>
<?php
if(ereg("[a-zA-Z]|[;§µ£\$°'\"&@_!]", $_POST['calcul']))
{
	echo "Syntaxe de l'opération non valide : pas de ponctuation ni de lettres, SVP";
}
elseif($_POST['calcul'])
{
	$calcul='$result='.$_POST['calcul'].';';
	$calcul=str_replace(",", ".", $calcul);
	$calcul=str_replace("²", "^2", $calcul);

	/* On recherche les occurrence de "nombre^exposant" dans la chaîne de calcul
	   afin de le remplacer par leur valeur */
	while(ereg("\(*[0-9\*/%\+.\-]+\)*\^\(*[0-9\*/%\+.\-]+\)*", $calcul, $puissance))
	{
		$puissance[1]='$puissance[1]=pow('.str_replace("^", ",", $puissance[0]).');';
		eval($puissance[1]);
		$calcul=str_replace($puissance[0], $puissance[1], $calcul);
	}

	/* C'est ici qu'on effectue le calcul (sauf les puissances, c'est déjà fait ;-) */
	eval($calcul);

	/* C'est là qu'on convertit en binaire, hexa, octal */
	$hexa = base_convert($result, 10, 16);
	$binaire = base_convert($result, 10, 2);
	$octal = base_convert($result, 10, 8);
	$conversions = '<br><table align="center">
			   <tr>
				<td><b>Ecriture décimale :</b></td><td align="right">'.$result.'</td>
			   </tr><tr>
				<td><b>Ecriture hexadécimale :</b></td><td align="right">'.$hexa.'</td>
			   </tr><tr>
				<td><b>Ecriture octale : </b></td><td align="right">'.$octal.'</td>
			   </tr><tr>
				<td><b>Ecriture binaire :</b></td><td align="right">'.$binaire.'</td>
		           </tr>
			</table>';
};
?>
<html>
  <head>
	<title>Calculatrice</title>
  </head>
  <body bgcolor="#E6E7E6">
    <form name="calc" action="calc.php" method="post">
      <table align="center" width="300">
   	<tr>
		<td>Calcul : </td>
		<td><input type="text" name="calcul" value="<?=$result?>" align="right"></td>
	</tr>
	<tr>
		<td colspan="2" align="center"><input type="submit" value="Enter"</td>
	</tr>
      </table>
    </form>
    <?=$conversions?>
  </body>
</html>
 

 Conclusion

La calculatrice gère (tant bien que mal ;-)) les puissances (il y a un bug avec les opérations du type "(x^y)^z", mais ça fonctionne avec les autres schémas).
Il lui manque actuellement : le support des racines carrées, un symbole valant pi, les exponentielles et bien d'autres ...


 Sources du même auteur

Source avec Zip UPLOAD D'IMAGE SIMPLE ET FONCTIONNEL
Source avec Zip SIGNATURE DYNAMIQUE PNG
Source avec Zip IMAGE RÉVÉLANT VOTRE PRÉSENCE ONLINE/OUTLINE
Source avec Zip COMPTEUR DE VISITES SOUS FORME D'IMAGE
Source avec une capture LISTER LES IMAGES D'UN RÉPERTOIRE

 Sources de la même categorie

Source avec une capture CALCUL DE TVA MARGE AVEC REMISE FOURNISSEUR SPÉCIALE POUR LE... par lcomb
Source avec Zip EVALUER UNE EXPRESSION À PARTIR D'UNE CHAINE DE CARACTÈRE par TheWeasel47
FONCTION EQUATION LÉGÈRE par ff5
Source avec Zip Source avec une capture TRACEUR DE COURBE EN COORDONNÉES CARTÉSIENNES (MAJ) par fredbonmatin
CONVERTIR LES RÉFÉRENCES DE COLONNE EXCEL DE CHIFFRE EN LETT... par computman007

Commentaires et avis

Commentaire de unzipped le 17/09/2003 04:31:36

Je doute que ce code soit de toi sincèrement, tu dis débuter et ce code n'a rien d'un code de débutant, je sais même ou tu as pris ce code :p

Commentaire de ceacy le 22/09/2003 19:30:08

???
Je te jure que je l'ai fait. J'ai codé ça pour mon cours de MPI, où on vient de faire les bases 16 et 60, et où on fera bientôt le binaire et l'octal (programme de seconde).
Je sais pas pourquoi tu délires ... j'aime pas trop qu'on m'accuse de plagiat, c'est bel et bien mon premier script PHP. Avant, je faisais de l'ASP.

Commentaire de ceacy le 22/09/2003 19:37:54

???
Je te jure que je l'ai fait. J'ai codé ça pour mon cours de MPI, où on vient de faire les bases 16 et 60, et où on fera bientôt le binaire et l'octal (programme de seconde).
Je sais pas pourquoi tu délires ... j'aime pas trop qu'on m'accuse de plagiat, c'est bel et bien mon premier script PHP. Avant, je faisais de l'ASP.

Commentaire de jeff le 23/09/2003 11:36:26

pas mal, et en plus, ya pas d'buggs

Commentaire de TiotBour le 24/09/2003 12:39:45

Les exponentielles c'est au programme de Terminale non ?

Commentaire de ceacy le 24/09/2003 12:49:23

Les exponentielles, oui. C'est pour ça que je l'ai pas mis : je sais pas comment faire ;-)

Commentaire de PereNoel le 08/06/2004 20:59:06

J'arrive trois ans plus tard et je dis que en mpi (option bidon) y'a vraiment ca au "programme" et c'est innutile ^^ et vive l'ES

Commentaire de stanilou le 15/10/2004 20:43:21

Les exponentiels je suis en premiere et je l'ai fait !!!

Commentaire de lafoudre1523 le 22/03/2008 22:06:50

Jolie source vraiment si c'est vraiment ton premier code chapeau ^^

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

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,468 sec (3)

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