begin process at 2010 08 01 01:41:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs Amusants

 > RÉSOUDRE UNE ÉQUATION EN 6 ÉTAPES

RÉSOUDRE UNE ÉQUATION EN 6 ÉTAPES


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs Amusants Classé sous :équation, equation, regex, RegExp, javascript Niveau :Débutant Date de création :18/11/2009 Date de mise à jour :21/11/2009 19:17:13 Vu / téléchargé :2 445 / 173

Auteur : Zestyr

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

 Description

Cliquez pour voir la capture en taille normale
Manipulation de regexs pour résoudre une équation à une ou deux inconues  !
Les inconues peuvent etre n'importe qu'elle lettre de l'alphabet.

Source

  • /* Code source codé et commenté par Zestyr */
  • sNbSpec = "+0.000000000000001";
  • emePres = 12;
  • function resoudreEq(membreGauche, membreDroite, oAlgo)
  • {
  • /* Initialisation de l'objet algo */
  • var algoIsNull = (oAlgo == undefined || oAlgo == null || oAlgo == "")
  • var algo = ((algoIsNull) ? document.getElementById("algo") : oAlgo);
  • /* Récupération des valeurs passées en arguments */
  • var mG = membreGauche;
  • var mD = membreDroite;
  • var inconue; //Déclaration de la variable qui va stocker l'inconue (a, b , c ... x, y, z)
  • /* Extraction de l'inconue dans mG ou mD */
  • if(mG.match(/[^0-9+-\/*]/) != null || mD.match(/[^0-9+-\/*]/) != null)
  • {
  • inconue = (mG.match(/[^0-9+-\/*]/) != null) ? mG.match(/[^0-9+-\/*]/)[0] : mD.match(/[^0-9+-\/*]/)[0]; //On commence par vérifier si l'inconue se trouve dans mG, s'il elle n'y est pas on ch dans mD et si elle n'y est dans ni l'une ni l'autre: Syntax Error!
  • }
  • else
  • {
  • alert("Syntax Error !");
  • }
  • /* Affichage du calcul à effectuer*/
  • algo.innerHTML = mG + " = " + mD;
  • /* etape1: regroupement des inconues et calcul des nombres disociés de l'inconue de mD */
  • mD = mD.replace(/(\d+\.?\d*)(?!\D)([*\/])(\d+\.?\d*)(?!\D)/g, "($1$2$3)");//multiplication et division en premier, on remplace a*b par (a*b)
  • var regex1 = new RegExp("([-+])*(\\d+)("+inconue+")", "g"); //motif: un nombre qui peut commencer par (+ ou -) avec une inconue
  • var regex2 = new RegExp("([-+])*(\\d+)(?="+inconue+")", "g"); //motif: un nombre qui peut commencer par (+ ou -) et qui est suivi par une inconue
  • var calcul1 = mD.replace(regex1, "");// calcul de nombres disocié de l'inconue
  • var calcul2_tab = mD.match(regex2, ""); //tableau contenant les produit de l'inconue
  • var calcul2 = ""; //calcul des produit des inconue, si l'inconue = x: 4x+3x-2x = (4+3-2)x = 5x
  • if(calcul2_tab != null)
  • {
  • i = 0;
  • while(calcul2_tab[i] != undefined)
  • {
  • calcul2 += calcul2_tab[i];
  • i++;
  • }
  • mD_preced = mD; //variable stockant mD avant qu'on le modifie
  • /* on factorise les inconues et on effecte les calculs disocié de l'inconue */
  • mD = arrondir(eval(calcul2+sNbSpec), emePres) + inconue + ((calcul1 != undefined) ? "+"+arrondir(eval(calcul1+sNbSpec),12) : "");
  • /* On affiche les calculs s'il ya eu des changements */
  • if(mD_preced != mD)
  • {
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • }
  • }
  • else
  • {
  • mD = eval(calcul1);
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • }
  • /* etape2: on fait passer les inconues dans mG */
  • mD_preced = mD;
  • mG_preced = mG;
  • mD = (calcul1 != undefined && calcul1 != "" && calcul1 != null) ? arrondir(eval(calcul1+sNbSpec), 12) : ("");
  • mG += (calcul2_tab != null && calcul2 != "" ) ? eval(calcul2)*(-1)+inconue : "";
  • /* On affiche les calculs s'il ya eu des changements */
  • if(mD_preced != mD || mG_preced != mG)
  • {
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • }
  • /* etape3: regroupement des inconues et calcul des nombres disociés de l'inconue de mD */
  • mG = mG.replace(/(\d+\.?\d*)(?!\D)([*\/])(\d+\.?\d*)(?!\D)/g, "($1$2$3)");
  • var regex1 = new RegExp("([-+])*(\\d+)("+inconue+")", "g");
  • var regex2 = new RegExp("([-+])*(\\d+)(?="+inconue+")", "g");
  • var calcul1 = mG.replace(regex1, "");
  • var calcul2_tab = mG.match(regex2, "");
  • var calcul2 = "";
  • if(calcul2_tab != null)
  • {
  • i = 0;
  • while(calcul2_tab[i] != undefined)
  • {
  • calcul2 += calcul2_tab[i];
  • i++;
  • }
  • mG_preced = mG;
  • /*========= Correction d'un bug ===========*/
  • calcul1_def = (/^([*\/]*)(\d+\.?\d*)/g.test(calcul1)) ? calcul1.match(/^([*\/]*)(\d+\.?\d*)/g) : false; //réctification d'un bug
  • calcul1Ap = (calcul1_def != null && /^([\/]+)(\d+\.?\d*)/g.test(calcul1)) ? calcul1.replace(/^([\/]*)(\d+\.?\d*)/g, "*$2") : calcul1.replace(/^([*]*)(\d+\.?\d*)/g, "/$2");
  • calcul1 = (calcul1 != null) ? calcul1.replace(/^([*\/]+)(\d+\.?\d*)/g, "") : calcul1;
  • mD += (calcul1Ap != null && calcul1Ap != calcul1 && calcul1Ap != "" && calcul1Ap != undefined) ? calcul1Ap : "";
  • /*========================================*/
  • mG = eval(calcul2) + inconue + ((calcul1 != undefined && calcul1 != "") ? "+" + eval(calcul1) : "");
  • /* On affiche les calculs s'il ya eu des changements */
  • if(mG_preced != mG)
  • {
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • }
  • }
  • /* etape4: on fait passer les nombre disocié de l'inconue dans mD*/
  • mD_preced = mD;
  • mG_preced = mG;
  • mG = ((calcul2 != "") ? arrondir(eval(calcul2+sNbSpec),emePres)+inconue : mG);
  • if(calcul2 != "")
  • {
  • mD += ((calcul1 != undefined && calcul1 != "") ? arrondir(eval(calcul1+sNbSpec),12)*(-1) : "");
  • }
  • /* On affiche les calculs s'il ya eu des changements */
  • if(mD_preced != mD || mG_preced != mG)
  • {
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • }
  • /* etape5: on met l'inconue à l'unité */
  • mG_preced = mG;
  • var regex4 = new RegExp(inconue, "");
  • var produit = mG.replace(regex4, "");
  • mG = mG.replace(produit, "");
  • mD += "/"+produit;
  • /* On affiche les calculs s'il ya eu des changements */
  • if(mG_preced != mG)
  • {
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • }
  • /* etape6: on fait les dernier calculs a droite (division) et on affiche le résultat */
  • mD = eval(mD);
  • algo.innerHTML += "<br />" + mG + " = " + mD;
  • return mD;
  • }
  • function resoudreSystemParCombinaison(mG1, mG2, mD1, mD2, oAlgo)
  • {
  • var algoIsNull = (oAlgo == undefined || oAlgo == null || oAlgo == "")
  • var algo = ((algoIsNull) ? document.getElementById("algo") : oAlgo);
  • var mGRef = mG1;
  • var mDRef = mD1;
  • var inconue1;
  • var inconue2;
  • /* Extraction des inconues dans mG1 */
  • if(mG1.match(/[^0-9+-\/*]/g) != null)
  • {
  • inconue1 = ((mG1.match(/[^0-9+-\/*]/g) != null) ? mG1.match(/[^0-9+-\/*]/g)[0] : "");
  • inconue2 = ((mG1.match(/[^0-9+-\/*]/g) != null) ? mG1.match(/[^0-9+-\/*]/g)[1] : "");
  • mD1 = eval(mD1);
  • mD2 = eval(mD2);
  • algo.innerHTML = "[ "+mG1 + " = " + mD1 + "<br />" + "[ "+mG2 + " = " + mD2;
  • }
  • else
  • {
  • alert("Syntax error !");
  • }
  • /* etape1: multiplication des mG */
  • var regex1 = new RegExp("([-+])*(\\d+)(?="+inconue1+")", "g"); //produit de l'inconue1
  • var regex2 = new RegExp("([-+])*(\\d+)(?="+inconue2+")", "g"); //produit de l'inconue2
  • /* mG1 */
  • var calcul1_tab = mG1.match(regex1, ""); //tableau contenant les produit de l'inconue1
  • var calcul1 = "";
  • var calcul2_tab = mG1.match(regex2, ""); //tableau contenant les produit de l'inconue2
  • var calcul2 = "";
  • if(calcul1_tab != null)
  • {
  • i = 0;
  • while(calcul1_tab[i] != undefined)
  • {
  • calcul1 += calcul1_tab[i];
  • i++;
  • }
  • }
  • if(calcul2_tab != null)
  • {
  • i = 0;
  • while(calcul2_tab[i] != undefined)
  • {
  • calcul2 += calcul2_tab[i];
  • i++;
  • }
  • }
  • calcul1 = arrondir(eval(calcul1+sNbSpec),emePres);
  • calcul2 = arrondir(eval(calcul2+sNbSpec),emePres);
  • /* mG2 */
  • var calcul3_tab = mG2.match(regex1, ""); //tableau contenant les produit de l'inconue1
  • var calcul3 = "";
  • var calcul4_tab = mG2.match(regex2, ""); //tableau contenant les produit de l'inconue2
  • var calcul4 = "";
  • if(calcul3_tab != null)
  • {
  • i = 0;
  • while(calcul3_tab[i] != undefined)
  • {
  • calcul3 += calcul3_tab[i];
  • i++;
  • }
  • }
  • if(calcul4_tab != null)
  • {
  • i = 0;
  • while(calcul4_tab[i] != undefined)
  • {
  • calcul4 += calcul4_tab[i];
  • i++;
  • }
  • }
  • calcul3 = arrondir(eval(calcul3+sNbSpec),emePres);
  • calcul4 = arrondir(eval(calcul4+sNbSpec),emePres);
  • //On multiplie les 2 lignes
  • var produit1 = (calcul3);
  • var produit2 = (calcul1*(-1));
  • /* on affiche le résutat */
  • mG1 ="("+produit1+") [ "+(((calcul1)*produit1)+inconue1)+"+"+(((calcul2)*produit1)+inconue2);
  • mG2 ="("+produit2+") [ "+(((calcul3)*produit2)+inconue1)+"+"+(((calcul4)*produit2)+inconue2);
  • mD1 *= produit1;
  • mD2 *= produit2;
  • algo.innerHTML += "<br /><br />"+mG1+" = "+mD1+"<br />"+mG2+" = " + mD2;
  • /* etape2: on combine les 2 equations */
  • var mGEq = (((calcul2)*produit1)+inconue2)+"+"+(((calcul4)*produit2)+inconue2);
  • alert(mGEq);
  • var mDEq = mD1+mD2;
  • algo.innerHTML += "<br /><br />"+mGEq+" = "+mDEq;
  • var inconue2Value = resoudreEq(mGEq, mDEq+"", document.getElementById("algo2"));
  • /* etape3: on en enduit l'inconue1 */
  • var regex3 = new RegExp(inconue2, "");
  • mGEq = mGRef.replace(regex3, "*"+inconue2Value);
  • var inconue1Value = resoudreEq(mGEq+"", mDRef+"", document.getElementById("algo3"));
  • document.getElementById("algo4").innerHTML = "Le couple solution est ("+inconue1Value+" ; "+inconue2Value+").";
  • }
  • function arrondir(x, n)
  • {
  • var decalage = Math.pow(10, n);
  • x *= decalage;
  • x = Math.round(x);
  • x /= decalage;
  • return x;
  • }
/* Code source codé et commenté par Zestyr */
sNbSpec = "+0.000000000000001";
emePres = 12;

function resoudreEq(membreGauche, membreDroite, oAlgo)
{
	/* Initialisation de l'objet algo */ 
	var algoIsNull = (oAlgo == undefined || oAlgo == null || oAlgo == "")
	var algo = ((algoIsNull) ? document.getElementById("algo") : oAlgo);
	
	/* Récupération des valeurs passées en arguments */
	var mG = membreGauche; 
	var mD = membreDroite;
	
	var inconue; //Déclaration de la variable qui va stocker l'inconue (a, b , c ... x, y, z)
	
	/* Extraction de l'inconue dans mG ou mD */
	if(mG.match(/[^0-9+-\/*]/) != null || mD.match(/[^0-9+-\/*]/) != null)
	{
		inconue = (mG.match(/[^0-9+-\/*]/) != null) ? mG.match(/[^0-9+-\/*]/)[0] : mD.match(/[^0-9+-\/*]/)[0]; //On commence par vérifier si l'inconue se trouve dans mG, s'il elle n'y est pas on ch dans mD et si elle n'y est dans ni l'une ni l'autre: Syntax Error!
	}
	else
	{
		alert("Syntax Error !");
	}
	/* Affichage du calcul à effectuer*/
	algo.innerHTML = mG + " = " + mD;

	
	/* etape1: regroupement des inconues et calcul des nombres disociés de l'inconue de mD */
	mD = mD.replace(/(\d+\.?\d*)(?!\D)([*\/])(\d+\.?\d*)(?!\D)/g, "($1$2$3)");//multiplication  et division en premier, on remplace a*b par (a*b)

	var regex1 = new RegExp("([-+])*(\\d+)("+inconue+")", "g"); //motif: un nombre qui peut commencer par (+ ou -) avec une inconue
	var regex2 = new RegExp("([-+])*(\\d+)(?="+inconue+")", "g"); //motif: un nombre qui peut commencer par (+ ou -) et qui est suivi par une inconue
	var calcul1 = mD.replace(regex1, "");// calcul de nombres disocié de l'inconue
	var calcul2_tab = mD.match(regex2, ""); //tableau contenant les produit de l'inconue
	var calcul2 = ""; //calcul des produit des inconue, si l'inconue = x: 4x+3x-2x = (4+3-2)x = 5x  
	if(calcul2_tab != null)
	{
		i = 0;
		while(calcul2_tab[i] != undefined)
		{
			calcul2 += calcul2_tab[i];
			i++;
		}
					
			mD_preced = mD; //variable stockant mD avant qu'on le modifie 
			/* on factorise les inconues et on effecte les calculs disocié de l'inconue */
			mD = arrondir(eval(calcul2+sNbSpec), emePres) + inconue + ((calcul1 != undefined) ? "+"+arrondir(eval(calcul1+sNbSpec),12) : "");
					
			/* On affiche les calculs s'il ya eu des changements */
			if(mD_preced != mD)
			{
				algo.innerHTML += "<br />" + mG + " = " + mD;
			}
	}
	else
	{
		mD = eval(calcul1);
		algo.innerHTML += "<br />" + mG + " = " + mD;
	}
				
	/* etape2: on fait passer les inconues dans mG */
	mD_preced = mD;
	mG_preced = mG;
	mD = (calcul1 != undefined && calcul1 != "" && calcul1 != null) ? arrondir(eval(calcul1+sNbSpec), 12) : (""); 
	mG += (calcul2_tab != null && calcul2 != "" ) ? eval(calcul2)*(-1)+inconue : "";
	/* On affiche les calculs s'il ya eu des changements */
	if(mD_preced != mD || mG_preced != mG)
	{
		algo.innerHTML += "<br />" + mG + " = " + mD;
	}
				
				
	/* etape3: regroupement des inconues et calcul des nombres disociés de l'inconue de mD */
	mG = mG.replace(/(\d+\.?\d*)(?!\D)([*\/])(\d+\.?\d*)(?!\D)/g, "($1$2$3)"); 
	var regex1 = new RegExp("([-+])*(\\d+)("+inconue+")", "g");
	var regex2 = new RegExp("([-+])*(\\d+)(?="+inconue+")", "g");
	var calcul1 = mG.replace(regex1, "");
	var calcul2_tab = mG.match(regex2, ""); 
	var calcul2 = ""; 
				
		if(calcul2_tab != null)
		{
			i = 0;
			while(calcul2_tab[i] != undefined)
			{
				calcul2 += calcul2_tab[i];
				i++;
			}
			mG_preced = mG;
			
			/*========= Correction d'un bug ===========*/
			calcul1_def = (/^([*\/]*)(\d+\.?\d*)/g.test(calcul1)) ? calcul1.match(/^([*\/]*)(\d+\.?\d*)/g) : false; //réctification d'un bug
			calcul1Ap = (calcul1_def != null && /^([\/]+)(\d+\.?\d*)/g.test(calcul1)) ? calcul1.replace(/^([\/]*)(\d+\.?\d*)/g, "*$2") :  calcul1.replace(/^([*]*)(\d+\.?\d*)/g, "/$2");
			calcul1 = (calcul1 != null) ? calcul1.replace(/^([*\/]+)(\d+\.?\d*)/g, "") : calcul1;
			mD += (calcul1Ap != null && calcul1Ap != calcul1 && calcul1Ap != "" && calcul1Ap != undefined) ? calcul1Ap : "";
			/*========================================*/
			
			mG = eval(calcul2) + inconue + ((calcul1  != undefined && calcul1  != "") ? "+" + eval(calcul1)  : "");
			/* On affiche les calculs s'il ya eu des changements */
			if(mG_preced != mG)
			{
				algo.innerHTML += "<br />" + mG + " = " + mD;
			}
		}
				
		/* etape4: on fait passer les nombre disocié de l'inconue dans mD*/
		mD_preced = mD;
		mG_preced = mG;
		mG = ((calcul2 != "") ? arrondir(eval(calcul2+sNbSpec),emePres)+inconue : mG);
		if(calcul2 != "")
		{
			mD += ((calcul1  != undefined && calcul1  != "") ? arrondir(eval(calcul1+sNbSpec),12)*(-1) : "");
		}
		/* On affiche les calculs s'il ya eu des changements */
		if(mD_preced != mD || mG_preced != mG)
		{
			algo.innerHTML += "<br />" + mG + " = " + mD;
		}
				
		/* etape5: on met l'inconue à l'unité */
		mG_preced = mG;
		var regex4 = new RegExp(inconue, "");
		var produit = mG.replace(regex4, "");
		mG = mG.replace(produit, "");
		mD += "/"+produit;
		/* On affiche les calculs s'il ya eu des changements */
		if(mG_preced != mG)
		{
			algo.innerHTML += "<br />" + mG + " = " + mD;
		}
				
		/* etape6:  on fait les dernier calculs a droite (division) et on affiche le résultat */
		mD = eval(mD);
		algo.innerHTML += "<br />" + mG + " = " + mD;
				
	return mD;
}

function resoudreSystemParCombinaison(mG1, mG2, mD1, mD2, oAlgo)
{
	var algoIsNull = (oAlgo == undefined || oAlgo == null || oAlgo == "")
	var algo = ((algoIsNull) ? document.getElementById("algo") : oAlgo);
	var mGRef = mG1;
	var mDRef = mD1;
	
	var inconue1;
	var inconue2;
	/* Extraction des inconues dans mG1 */
	if(mG1.match(/[^0-9+-\/*]/g) != null)
	{
		inconue1 = ((mG1.match(/[^0-9+-\/*]/g) != null) ? mG1.match(/[^0-9+-\/*]/g)[0] : ""); 
		inconue2 = ((mG1.match(/[^0-9+-\/*]/g) != null) ? mG1.match(/[^0-9+-\/*]/g)[1] : "");
		mD1 = eval(mD1);
		mD2 = eval(mD2);
		algo.innerHTML = "[ "+mG1 + " = " + mD1 + "<br />" + "[ "+mG2 + " = " + mD2;
	}
	else
	{
		alert("Syntax error !");
	}
	
	/* etape1: multiplication des mG */
	var regex1 = new RegExp("([-+])*(\\d+)(?="+inconue1+")", "g"); //produit de l'inconue1
	var regex2 = new RegExp("([-+])*(\\d+)(?="+inconue2+")", "g"); //produit de l'inconue2
	
	/* mG1 */
	var calcul1_tab = mG1.match(regex1, ""); //tableau contenant les produit de l'inconue1
	var calcul1 = "";
	var calcul2_tab = mG1.match(regex2, ""); //tableau contenant les produit de l'inconue2
	var calcul2 = ""; 
	if(calcul1_tab != null)
	{
		i = 0;
		while(calcul1_tab[i] != undefined)
		{
			calcul1 += calcul1_tab[i];
			i++;
		}
	}	
	if(calcul2_tab != null)
	{
		i = 0;
		while(calcul2_tab[i] != undefined)
		{
			calcul2 += calcul2_tab[i];
			i++;
		}
	}
	calcul1 = arrondir(eval(calcul1+sNbSpec),emePres);
	calcul2 = arrondir(eval(calcul2+sNbSpec),emePres);
	
	/* mG2 */
	var calcul3_tab = mG2.match(regex1, ""); //tableau contenant les produit de l'inconue1
	var calcul3 = "";
	var calcul4_tab = mG2.match(regex2, ""); //tableau contenant les produit de l'inconue2
	var calcul4 = ""; 
	if(calcul3_tab != null)
	{
		i = 0;
		while(calcul3_tab[i] != undefined)
		{
			calcul3 += calcul3_tab[i];
			i++;
		}
	}	
	if(calcul4_tab != null)
	{
		i = 0;
		while(calcul4_tab[i] != undefined)
		{
			calcul4 += calcul4_tab[i];
			i++;
		}
	}
	calcul3 = arrondir(eval(calcul3+sNbSpec),emePres);
	calcul4 = arrondir(eval(calcul4+sNbSpec),emePres);
	
	//On multiplie les 2 lignes
	var produit1 = (calcul3);
	var produit2 = (calcul1*(-1));
	
	/* on affiche le résutat */
	mG1 ="("+produit1+") [ "+(((calcul1)*produit1)+inconue1)+"+"+(((calcul2)*produit1)+inconue2);
	mG2 ="("+produit2+") [ "+(((calcul3)*produit2)+inconue1)+"+"+(((calcul4)*produit2)+inconue2);
	mD1 *= produit1;
	mD2 *= produit2;
	algo.innerHTML += "<br /><br />"+mG1+" = "+mD1+"<br />"+mG2+" = " + mD2;
	
	/* etape2: on combine les 2 equations */
	var mGEq = (((calcul2)*produit1)+inconue2)+"+"+(((calcul4)*produit2)+inconue2);
	alert(mGEq);
	var mDEq = mD1+mD2;
	algo.innerHTML += "<br /><br />"+mGEq+" = "+mDEq;
	var inconue2Value = resoudreEq(mGEq, mDEq+"", document.getElementById("algo2"));
	
	/* etape3: on en enduit l'inconue1 */
	var regex3 = new RegExp(inconue2, "");
	mGEq = mGRef.replace(regex3, "*"+inconue2Value);
	var inconue1Value = resoudreEq(mGEq+"", mDRef+"", document.getElementById("algo3"));
	document.getElementById("algo4").innerHTML = "Le couple solution est ("+inconue1Value+" ; "+inconue2Value+").";
}		
function arrondir(x, n)
{
     var decalage = Math.pow(10, n);
     x *= decalage;
     x = Math.round(x);
     x /= decalage;
     return x;
}

 Conclusion

Default:
   opérateurs: +-*/
   il faut marquer 1x au lieu de x.
  
Ps: Si y a un bug merci de le signaler (undefined, NaN) ou meme faux résultat

 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


 Historique

18 novembre 2009 20:23:27 :
<!-- -->
18 novembre 2009 20:23:36 :
<!-- -->
19 novembre 2009 16:20:23 :
code source commenté
19 novembre 2009 17:03:58 :
Correction d'un bug et réctification d'un oubli sur la source html
20 novembre 2009 16:58:55 :
Rectification de certaines erreurs et ajout d'un algo pour résoudre les équations à 2 inconues
20 novembre 2009 17:07:21 :
default d'une regex: mD = mD.replace(/(\d+)(?!x)([*\/])(\d+)(?!x)/g, "($1$2$3)"); ==> mD = mD.replace(/(\d+\.*\d*)(?!x)([*\/])(\d+\.*\d*)(?!x)/g, "($1$2$3)");
20 novembre 2009 17:14:16 :
default encore un prob sur cette regex xD: mD = mD.replace(/(\d+\.*\d*)(?!x)([*\/])(\d+\.*\d*)(?!x)/g, "($1$2$3)"); ==> mG = mG.replace(/(\d+\.*\d*)(?!x)([*\/])(\d+\.*\d*)(?!\D)/g, "($1$2$3)");
20 novembre 2009 17:25:17 :
ptin j'ai du mal avec celle la: mD = mD.replace(/(\d+\.?\d*)(?!x)([*\/])(\d+\.?\d*)(?!\D)/g, "($1$2$3)"); ==> mD = mD.replace(/(\d+\.\d*)(?!x)([*\/])(\d+\.\d*)(?!\D)/g, "($1$2$3)"); eh oui qu'une seul virgule maxi
21 novembre 2009 19:17:14 :
Rectification de 2 bugs

 Sources du même auteur

Source avec Zip LES COOKIES ET JAVASCRIPT

 Sources de la même categorie

Source avec Zip Source avec une capture DEFILEMENT DE BANNIERE PUBLICITAIRE ; ROTATION DE CADRE par zulrigh
Source avec Zip Source avec une capture EFFET DE SURBRILLANCE EN JAVASCRIPT par zulrigh
Source avec Zip JEU DE TAQUIN par yann078
Source avec Zip Source avec une capture POST-IT POUR LE WEB par jululu
Source avec Zip Source avec une capture ENIGMES, CASSE-TÊTES À RÉSOUDRE par Bul3

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FADEIN EFFET DE FONDU, ANIMATION D'OPACITE TOUT EN JAVASCRIP... par zulrigh
AUTOMATION EXCEL PAR JAVASCRIPT par Cpustack
Source avec Zip Source avec une capture TROUVER UN ITINÉRAIRE AVEC GOOGLE MAP par amrounix
Source avec Zip DECOMPTEUR ET CHECKBOX TEMOIN par dialvb
Source avec Zip Source avec une capture JDMATH : LE PREMIER ÉDITEUR D'ÉQUATION EN HTML WYSIWYG par jdmcreator

Commentaires et avis

Commentaire de lefter le 19/11/2009 13:05:15 10/10

Pas mal du tout...

Bon exemple pour les regex.

Commentaire de defis91 le 19/11/2009 16:08:55

Bonjour
Que doit-on rentrer ?
5/2x=2
ou 2x+5/2=2 génèrent une erreur de script
A+
Dom

Commentaire de Zestyr le 19/11/2009 16:30:28

Salut, merci de vos commentaires,
j'ai ajoutés une source commentée (hier j'avais pas le temps)

Merci def, jvais voire c'est quoi le bug (5/2x=2),
de mon coté 2x+5/2=2 ne génère aucunes ereurs.

Commentaire de defis91 le 19/11/2009 16:43:34

Ok Zestyr

pour la deuxième j'avais saisi 2*x+5/2=2 !
A+
Dom

Commentaire de Zestyr le 19/11/2009 17:08:42

C'est bon j'ai corrigé le bug et ça ma même permis de voir que j'avais oublier une ligne sur la source html dnc pour éviter ça j'ai mis la fonction sur un script appart commun(js).  
Pour ce qui l'en ai de 2*x il faut faire 2*1x car mon algo ne peut pas marcher sans un nombre devant x!

++

Commentaire de defis91 le 19/11/2009 17:29:22

Ok ça progresse !

Pour le 1x, il suffit de remplacer au début :
1) si la chaine commence par une lettre, insérer 1 en début de string
2) supprimer les espaces
3) insérer 1 devant toute lettre si celle-ci est directement précédée d'un signe.

autrement pour 5/2x prenez-vous 5/ (2x) ou (5/2)x ?

Votre prochain programme est la réalisation d'un système d'équation à 2 inconnues !
Bon courage
A+
Dom

Commentaire de Zestyr le 19/11/2009 17:37:04

Nn mais ça c'était un bug (ou erreur de code) maintenant on peut faire 5/2x=2 (x=0.8) !
Le système jle ferais un autre jour, c'est le meme principe que ça.

Commentaire de Zestyr le 20/11/2009 17:04:21

Slt tout le monde, j'ai codé l'algo pour les systèmes avec la méthode par combinaison,

Commentaire de defis91 le 20/11/2009 17:20:20

Ben dis donc, t'es motivé !
teste avec 5/2x=2

et système
1x+2y=3
4x-1y=1

Quelques petites surprises..

Commentaire de Zestyr le 20/11/2009 17:31:30

Et dire que je croyait mettre débarasser de ce script xD,
nn jdec, c juste que j'avais rien à foutre mais la j'ivais jverrai ça se soir.

++

Commentaire de Zestyr le 21/11/2009 19:19:08

C bn j'ai rectifier les 2 bugs:

Pour le premier une petite regex ma suffit et pour le deuxième l'ajout d'un "+" m'a suffit.

Commentaire de defis91 le 22/11/2009 02:18:35

Salut Zestyr,
J'ai fait plusieurs tests et à chaque fois le résultat est faux.
5/2x=2 génère maintenant une erreur fatale.
Ton programmes est très intéressant du point de vue didactique.
Mais un évaluateur d'expression ne s'improvise pas.
Ce programme, en Delphi, est mis au point en moins d'une heure.
En Javascript, plusieurs jours après il y a encore un doute sur la fiabilité.
(ou plutôt aucun doute)
Cordialement
Dom

Commentaire de Zestyr le 22/11/2009 19:17:54

Le réelle probleme est que je me suis pas bcp investi, que c'était plus un défi qu'un projet, il faudrais que je revoye la structure de mon script car à force de réctifier les bug à la va vite c'est devenu nimporte quoi.

de plus le javascript n'est pas trop adapter pour faire des calculs précis

Commentaire de Neo_Ryu le 26/01/2010 21:11:04

Je viens d'effectuer un test, le changement de signe ne se fait pas et le résultat deviens érronné. L'aperçu du détails est sympathique cependant pour permettre à des jeunes d'apprendre facilement... si le résultat était bon a la fin bien sur ^^

Démonstration :
14x - 23 = 8x + 4
14x-23 = 8x+4
14x-23-8x = 4
6x+-23 = 4
6x = 423 <- Ca cloche ici...
x = 423/6
x = 70.5

Ca aurait du donner :
14 x - 23 = 8 x + 4
14X - 8X = 4 + 23 <- Ce qui aurait du être affiché.
6X = 27
X = 27/6
X = 9/2

Voila, en espérant voir ta source modifiée =)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

RegExp javascript pour téléphonne [ par helene20 ] Bonjour, je dois faire un programme (un formulaire entre autre) avec un champ de téléphonne, je dois faire la validation avec une expression réguliere RegExp javascript pour visa [ par helene20 ] Bonjour, je dois faire un champ qui valide une carte visa avec une expression régulière de la façon suivante : Les cartes Visa commencent toutes par u regex javascript compatibilité [ par camellion2 ] Bonjour à tous, J'ai un souci avec une regex sous javascript qui me permet de verifier que l'utilisateur a bien tapé un entier ou un décimal du type probleme javascript + area shape [ par AlexC31 ] Bonjour, J'ai un code en Javascript qui permet d'afficher des images en fonction de la résolution de l'écran. Si la résolution est par exemple en 10 Affichage d'un tableau [ par tagadax ] Bonjour voila j'ai un problème j'ai une fonction en Javascript qui permet d'afficher un tableau selon un choix effectué dans un select [code=js] func redirection en javascript [ par belleva ] Bonjours a tous, Je n'y connais rien en javascript mais j'aurais besoin d'une fonction qui, lorsque j'essaye d'aller sur une partie de mon site que j Javascript ne sait pas compter [ par chino18 ] Bonjour à tous. Je plante depuis des heures sur un problème de soustraction!! Par exemple, 978.35 - 931.8 = 46.55000000000007 !!! Quelqu'un a-t fonction javascript [ par medhamdi12 ] Bonsoir à tous, il y a quelqu'un peut me donner une fonction javascript qui permet de vérifier si une valeur du zone de texte est une chaine de cara intrusion javascript [ par majong ] Bonjour, pour la transformation du bbcode à l'html, que faut-il faire comme test pour éviter des injections de codes. Le code [code=js]u = u.replace(/ l'object window de javascript [ par izem23 ] Bonjour, Je débute en javascript et j'ai utilisé javascript dans mon application Web, effete je l'est utiliser pour ouvrir un popup avec window.ope


Nos sponsors


Sondage...

CalendriCode

Août 2010
LMMJVSD
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

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,671 sec (4)

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