begin process at 2012 05 27 19:53:48
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > DEVELOPPEMENT/DEVELOPPER D'UNE EXPRESSION

DEVELOPPEMENT/DEVELOPPER D'UNE EXPRESSION


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Niveau :Initié Date de création :26/01/2005 Date de mise à jour :26/01/2005 20:12:02 Vu :2 925

Auteur : DakM

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

 Description

J'ai fais ce code ya bien longtemps (je dirais 3,4 mois) et là j'viens d'me dire pourquoi pas partager cette classe qui ne sert absolument a rien ;)
Si il y a des bug (cela ce peux puique jai pas modifier la classe depuis 3,4 mois) veuillez m'en faire part !
Enjoy !

Source

  • class DV extends Math {
  • var $result;
  • var $type;
  • var $types = array('(a-b)²','(a+b)²','(a-b)(a+b)');
  • var $a;
  • var $b;
  • function settype($choice) {
  • if(!in_array($choice,$this->types)) { return false; }
  • else {
  • $this->type = $choice;
  • return true;
  • }
  • }
  • function calc($a,$b,$xName='',$yName='') {
  • $this->a = $a;
  • $this->b = $b;
  • if($this->type == '(a-b)²') {
  • if($a == $xName) {
  • $this->result = $xName."²";
  • }
  • elseif(strpos($a,$xName)) {
  • $this->result = (substr($a,0,strpos($a,$xName)) * substr($a,0,strpos($a,$xName))).$xName."²";
  • }
  • else {
  • $this->result = $a * $a;
  • }
  • if(strpos($a,$xName) || strpos($b,$yName)) {
  • if(strpos($a,$xName)) {
  • $aTmp = (2 * substr($a,0,strpos($a,$xName))).$xName;
  • }
  • else {
  • $aTmp = 2 * $a;
  • }
  • if(strpos($b,$yName)) {
  • $bTmp = (2 * substr($b,0,strpos($b,$yName))).$yName;
  • }
  • else {
  • $bTmp = 2 * $b;
  • }
  • $this->result .= " - (".$aTmp." + ".$bTmp.")";
  • }
  • else {
  • $this->result .= " - ".bcmul($a * $b,2);
  • }
  • if($b == $yName) {
  • $this->result .= " + ".$yName."²";
  • }
  • elseif(strpos($b,$yName)) {
  • $this->result .= " + ".(substr($b,0,strpos($b,$yName)) * substr($b,0,strpos($b,$yName))).$yName."²";
  • }
  • else {
  • $this->result .= " + ".$b * $b;
  • }
  • }
  • elseif($this->type == '(a+b)²') {
  • if($a == $xName) {
  • $this->result = $xName."²";
  • }
  • elseif(strpos($a,$xName)) {
  • $this->result = (substr($a,0,strpos($a,$xName)) * substr($a,0,strpos($a,$xName))).$xName."²";
  • }
  • else {
  • $this->result = $a * $a;
  • }
  • if(strpos($a,$xName) || strpos($b,$yName)) {
  • if(strpos($a,$xName)) {
  • $aTmp = (2 * substr($a,0,strpos($a,$xName))).$xName;
  • }
  • else {
  • $aTmp = 2 * $a;
  • }
  • if(strpos($b,$yName)) {
  • $bTmp = (2 * substr($b,0,strpos($b,$yName))).$yName;
  • }
  • else {
  • $bTmp = 2 * $b;
  • }
  • $this->result .= " + (".$aTmp." + ".$bTmp.")";
  • }
  • else {
  • $this->result .= " + ".bcmul($a * $b,2);
  • }
  • if($b == $yName) {
  • $this->result .= " + ".$yName."²";
  • }
  • elseif(strpos($b,$yName)) {
  • $this->result .= " + ".(substr($b,0,strpos($b,$yName)) * substr($b,0,strpos($b,$yName))).$yName."²";
  • }
  • else {
  • $this->result .= " + ".$b * $b;
  • }
  • }
  • else {
  • if($a == $xName) {
  • $aResultTmp = $a."²";
  • if(substr($aResultTmp,0,1) == '-') {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • $this->result = $aResultTmp;
  • }
  • elseif(strpos($a,$xName)) {
  • $aResultTmp = (substr($a,0,strpos($a,$xName)) * substr($a,0,strpos($a,$xName))).$xName."²";
  • if(substr($aResultTmp,0,1) == '-') {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • $this->result = $aResultTmp;
  • }
  • else {
  • $aResultTmp = $a * $a;
  • if(substr($aResultTmp,0,1) == '-') {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • $this->result = $aResultTmp;
  • }
  • if(strpos($a,$xName) && strpos($b,$yName)) {
  • $aResultTmp = (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName))).$xName.$yName;
  • $bResultTmp = (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName))).$yName.$xName;
  • if(substr($aResultTmp,0,1) != '-') {
  • $aResultTmp = " + ".$aResultTmp;
  • }
  • else {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • if(substr($bResultTmp,0,1) == '-') {
  • $bResultTmp = " + ".substr($bResultTmp,1,strlen($bResultTmp));
  • }
  • else {
  • $bResultTmp = " + ".$bResultTmp;
  • }
  • $this->result .= $aResultTmp;
  • $this->result .= $bResultTmp;
  • }
  • elseif(strpos($a,$xName) && !strpos($b,$yName)) {
  • $this->result .= (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName))).$xName;
  • $this->result .= (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName))).$yName;
  • if(substr($aResultTmp,0,1) != '-') {
  • $aResultTmp = " + ".$aResultTmp;
  • }
  • else {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • if(substr($bResultTmp,0,1) == '-') {
  • $bResultTmp = " + ".substr($bResultTmp,1,strlen($bResultTmp));
  • }
  • else {
  • $bResultTmp = " + ".$bResultTmp;
  • }
  • $this->result .= $aResultTmp;
  • $this->result .= $bResultTmp;
  • }
  • elseif(!strpos($a,$xName) && strpos($b,$yName)) {
  • $this->result .= (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName))).$yName;
  • $this->result .= (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName))).$xName;
  • if(substr($aResultTmp,0,1) != '-') {
  • $aResultTmp = " + ".$aResultTmp;
  • }
  • else {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • if(substr($bResultTmp,0,1) == '-') {
  • $bResultTmp = " + ".substr($bResultTmp,1,strlen($bResultTmp));
  • }
  • else {
  • $bResultTmp = " + ".$bResultTmp;
  • }
  • $this->result .= $aResultTmp;
  • $this->result .= $bResultTmp;
  • }
  • else {
  • $this->result .= (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName)));
  • $this->result .= (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName)));
  • if(substr($aResultTmp,0,1) != '-') {
  • $aResultTmp = " + ".$aResultTmp;
  • }
  • else {
  • $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
  • }
  • if(substr($bResultTmp,0,1) != '-') {
  • $bResultTmp = " + ".$bResultTmp;
  • }
  • else {
  • $bResultTmp = " - ".substr($bResultTmp,1,strlen($bResultTmp));
  • }
  • $this->result .= $aResultTmp;
  • $this->result .= $bResultTmp;
  • }
  • if($b == $yName) {
  • $bResultTmp = $yName."²";
  • if(substr($bResultTmp,0,1) != '-') {
  • $bResultTmp = " + ".$bResultTmp;
  • }
  • else {
  • $bResultTmp = " - ".substr($bResultTmp,1,strlen($bResultTmp));
  • }
  • $this->result .= $bResultTmp;
  • }
  • elseif(strpos($b,$yName)) {
  • (substr($b,0,1) == '-') ? $sign = '-' : $sign = '+';
  • $bResultTmp = (substr($b,0,strpos($b,$yName)) * substr($b,0,strpos($b,$yName))).$yName."²";
  • $this->result .= " ".$sign." ";
  • $this->result .= (substr($bResultTmp,0,1) == '-') ? substr($bResultTmp,1,strlen($bResultTmp)) : $bResultTmp;
  • }
  • else {
  • (substr($b,0,1) == '-') ? $sign = '-' : $sign = '+';
  • $bResultTmp = $b * $b;
  • $this->result .= " ".$sign." ".(substr($bResultTmp,0,1) == '-') ? substr($bResultTmp,1,strlen($bResultTmp)) : $bResultTmp;
  • }
  • }
  • }
  • function _return($xName) {
  • print('<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD CLASS=CODE>');
  • print('<FONT CLASS=LITTLEBLACK>Developpement de <I>'.$this->type.'</I> avec <I>a='.$this->a.'</I> et <I>b='.$this->b.'</I></FONT><BR><BR>');
  • print($xName." = ".$this->result);
  • print('</TD></TR></TABLE>');
  • }
  • }
class DV extends Math {
	var $result;
	var $type;
                var $types = array('(a-b)²','(a+b)²','(a-b)(a+b)');
	var $a;
	var $b;
	function settype($choice) {
	        if(!in_array($choice,$this->types)) { return false; }
	        else {
			$this->type = $choice;
			return true;
		}
	}
	function calc($a,$b,$xName='',$yName='') {
	        $this->a = $a;
	        $this->b = $b;
		if($this->type == '(a-b)²') {
			if($a == $xName) {
			        $this->result = $xName."²";
			}
			elseif(strpos($a,$xName)) {
			       $this->result = (substr($a,0,strpos($a,$xName)) * substr($a,0,strpos($a,$xName))).$xName."²";
			}
			else {
			       $this->result = $a * $a;
			}
			if(strpos($a,$xName) || strpos($b,$yName)) {
				if(strpos($a,$xName)) {
				        $aTmp = (2 * substr($a,0,strpos($a,$xName))).$xName;
				}
				else {
				        $aTmp = 2 * $a;
				}
				if(strpos($b,$yName)) {
				        $bTmp = (2 * substr($b,0,strpos($b,$yName))).$yName;
				}
				else {
				        $bTmp = 2 * $b;
				}
			        $this->result .= " - (".$aTmp." + ".$bTmp.")";
			}
			else {
			        $this->result .= " - ".bcmul($a * $b,2);
			}
			if($b == $yName) {
			        $this->result .= " + ".$yName."²";
			}
			elseif(strpos($b,$yName)) {
			        $this->result .= " + ".(substr($b,0,strpos($b,$yName)) * substr($b,0,strpos($b,$yName))).$yName."²";
			}
			else {
			        $this->result .= " + ".$b * $b;
			}
		}
		elseif($this->type == '(a+b)²') {
			if($a == $xName) {
			        $this->result = $xName."²";
			}
			elseif(strpos($a,$xName)) {
			       $this->result = (substr($a,0,strpos($a,$xName)) * substr($a,0,strpos($a,$xName))).$xName."²";
			}
			else {
			       $this->result = $a * $a;
			}
			if(strpos($a,$xName) || strpos($b,$yName)) {
				if(strpos($a,$xName)) {
				        $aTmp = (2 * substr($a,0,strpos($a,$xName))).$xName;
				}
				else {
				        $aTmp = 2 * $a;
				}
				if(strpos($b,$yName)) {
				        $bTmp = (2 * substr($b,0,strpos($b,$yName))).$yName;
				}
				else {
				        $bTmp = 2 * $b;
				}
			        $this->result .= " + (".$aTmp." + ".$bTmp.")";
			}
			else {
			        $this->result .= " + ".bcmul($a * $b,2);
			}
			if($b == $yName) {
			        $this->result .= " + ".$yName."²";
			}
			elseif(strpos($b,$yName)) {
			        $this->result .= " + ".(substr($b,0,strpos($b,$yName)) * substr($b,0,strpos($b,$yName))).$yName."²";
			}
			else {
			        $this->result .= " + ".$b * $b;
			}
		}
  		else {
			if($a == $xName) {
				$aResultTmp = $a."²";
				if(substr($aResultTmp,0,1) == '-') {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
				$this->result = $aResultTmp;
			}
			elseif(strpos($a,$xName)) {
			        $aResultTmp = (substr($a,0,strpos($a,$xName)) * substr($a,0,strpos($a,$xName))).$xName."²";
			        if(substr($aResultTmp,0,1) == '-') {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
				$this->result = $aResultTmp;
			}
			else {
			        $aResultTmp = $a * $a;
			        if(substr($aResultTmp,0,1) == '-') {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
				$this->result = $aResultTmp;
			}
                        if(strpos($a,$xName) && strpos($b,$yName)) {
			        $aResultTmp = (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName))).$xName.$yName;
			        $bResultTmp = (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName))).$yName.$xName;
			        if(substr($aResultTmp,0,1) != '-') {
			                $aResultTmp = " + ".$aResultTmp;
				}
				else {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
			        if(substr($bResultTmp,0,1) == '-') {
					$bResultTmp = " + ".substr($bResultTmp,1,strlen($bResultTmp));
				}
				else {
					$bResultTmp = " + ".$bResultTmp;
				}
				$this->result .= $aResultTmp;
				$this->result .= $bResultTmp;
			}
			elseif(strpos($a,$xName) && !strpos($b,$yName)) {
			        $this->result .= (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName))).$xName;
			        $this->result .= (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName))).$yName;
			        if(substr($aResultTmp,0,1) != '-') {
			                $aResultTmp = " + ".$aResultTmp;
				}
				else {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
			        if(substr($bResultTmp,0,1) == '-') {
					$bResultTmp = " + ".substr($bResultTmp,1,strlen($bResultTmp));
				}
				else {
					$bResultTmp = " + ".$bResultTmp;
				}
				$this->result .= $aResultTmp;
				$this->result .= $bResultTmp;
			}
			elseif(!strpos($a,$xName) && strpos($b,$yName)) {
			        $this->result .= (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName))).$yName;
			        $this->result .= (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName))).$xName;
			        if(substr($aResultTmp,0,1) != '-') {
			                $aResultTmp = " + ".$aResultTmp;
				}
				else {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
			        if(substr($bResultTmp,0,1) == '-') {
					$bResultTmp = " + ".substr($bResultTmp,1,strlen($bResultTmp));
				}
				else {
					$bResultTmp = " + ".$bResultTmp;
				}
				$this->result .= $aResultTmp;
				$this->result .= $bResultTmp;
			}
			else {
			        $this->result .= (substr($a,0,strpos($a,$xName)) * substr($b,0,strpos($b,$yName)));
			        $this->result .= (substr($b,0,strpos($b,$yName)) * substr($a,0,strpos($a,$xName)));
			        if(substr($aResultTmp,0,1) != '-') {
			                $aResultTmp = " + ".$aResultTmp;
				}
				else {
				        $aResultTmp = " - ".substr($aResultTmp,1,strlen($aResultTmp));
				}
			        if(substr($bResultTmp,0,1) != '-') {
			                $bResultTmp = " + ".$bResultTmp;
				}
				else {
				        $bResultTmp = " - ".substr($bResultTmp,1,strlen($bResultTmp));
				}
				$this->result .= $aResultTmp;
				$this->result .= $bResultTmp;
			}
			if($b == $yName) {
			        $bResultTmp = $yName."²";
			        if(substr($bResultTmp,0,1) != '-') {
			                $bResultTmp = " + ".$bResultTmp;
				}
				else {
				        $bResultTmp = " - ".substr($bResultTmp,1,strlen($bResultTmp));
				}
				$this->result .= $bResultTmp;
			}
			elseif(strpos($b,$yName)) {
				(substr($b,0,1) == '-') ? $sign = '-' : $sign = '+';
			        $bResultTmp = (substr($b,0,strpos($b,$yName)) * substr($b,0,strpos($b,$yName))).$yName."²";
				$this->result .= " ".$sign." ";
				$this->result .= (substr($bResultTmp,0,1) == '-') ? substr($bResultTmp,1,strlen($bResultTmp)) : $bResultTmp;
			}
			else {
			        (substr($b,0,1) == '-') ? $sign = '-' : $sign = '+';
			        $bResultTmp = $b * $b;
			        $this->result .= " ".$sign." ".(substr($bResultTmp,0,1) == '-') ? substr($bResultTmp,1,strlen($bResultTmp)) : $bResultTmp;
			}
		}
	}
	function _return($xName) {
		print('<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%><TR><TD CLASS=CODE>');
		print('<FONT CLASS=LITTLEBLACK>Developpement de <I>'.$this->type.'</I> avec <I>a='.$this->a.'</I> et <I>b='.$this->b.'</I></FONT><BR><BR>');
		print($xName." = ".$this->result);
		print('</TD></TR></TABLE>');
	}
}

 Conclusion

<?php
// utilisation de la classe pour les noobs

$DV = New DV;                     // declaration de la classe
$DV->settype('(a+b)²');       // pose le type dexpression
$DV->calc("5","2x","","x");   // 5=a; 2x=b; Si il y a une inconnue, nommez la, comme pour 2x je la nomme x après..
$DV->_return("A");              // A ? Petite aide: A= 25 + 20x² + 4x² (si jarrive encore a calculer :x)

JE SAIS JEXPLIQUE TRES MAL !
Plus d'outils ? mailto:nico_zb@hotmail.com
Exemples ? header('Location: http://gfx.themagma.fr/'); // Maintenance technique


 Historique

26 janvier 2005 20:12:04 :
Changement du titre

 Sources de la même categorie

EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
CLEF POUR EAN 13 ET 14 par RaftY
FONCTION DE CALCUL DU NOMBRE DE DUEL UNIQUE POUR UN NOMBRE N... par mtrix000
Source avec Zip Source avec une capture TRIANGLE DE PASCAL ET SON ÉQUATION par vendeeHdLR89
Source avec Zip CONVERTISSEUR LAMBERT2 ÉTENDU EN COORDONNÉE GÉOGRAPHIQUE (LO... par varfendell

Commentaires et avis

Commentaire de JulioDelphi le 26/01/2005 17:26:09 administrateur CS

Ouais cool une classe qui ne sert a rien ! c de la pollution ou de l'humour ?
et puis le titre, quel titre ! tu pourrais le modifier en "Classe maths" par exemple ?
merci a toi !

Commentaire de DakM le 26/01/2005 19:12:26

Bah non developpement c'est bien, a la limite developpement d'expression mais classe math personne ne cherche sa !
si quelquuun veut developper une expression il cherchera en premier developper ou developpement !
Pourquoi merci si tu critiques ma source ? :)

Commentaire de JulioDelphi le 26/01/2005 19:25:42 administrateur CS

merci d'avance de changer le titre ;)

Commentaire de eXon le 27/01/2005 03:40:48

Ta fonction manque énormément de modularité. Tu mets pratiquement tout dans la fonction calc que tu pourrais séparé en beaucoup d'autre fonction privé, ce qui aurait mieu utilisé le système de classe.

Commentaire de coucou747 le 27/01/2005 21:20:11 administrateur CS

"JE SAIS JEXPLIQUE TRES MAL !"
je confirme, t'as pas une ligne de commentaire...

Commentaire de DakM le 27/01/2005 22:40:28

coucou747, le code est tres clair ... et ya aucune modification a apporter, jai juste mis comment utiliser la classe (de toute facon je commente jamais ce que je fais (perte de temp) et aussi car elles nont pas pour but detre mses ici, mais javais envie detre gentil :) de participer :D

Commentaire de kezac007 le 02/03/2005 11:23:26

bravo si tu arrives à décrypter ton code 1 an après sans commentaire.
je dirai que ton code manque beaucoup de modularité.
Le principe même de la POO n'est pas appliqué. est ce du bidouillage?

Commentaire de DakM le 04/03/2005 01:01:09

Jai jamais touché à autre chose que php ;)
et jai mis cette source ici au cas ou que quelquun en a besoin (de developper)
apres la modularite, ya pas a en avoir puisque sa sert a une seule chose !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



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

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