Calcul d'incertitude

Contenu du snippet

Ce petit programme sert à calculer une incertitude sur une valeur à partir des autres valeurs/incertitudes.

Il est surtout utile lorsque l'opération à réaliser est répétitive et/ou longue.

Utilisation en ligne possible sur cette page: http://minilog.freehostia.com/Calcul_incertitude.php

Source / Exemple :


<html>

<head>
	<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
</head>

<script language="javascript" type="text/javascript">

var numberC , acquisition , wtf , JC , JCV , error , VALOR , total1 , val , taille , i , VAL = new Array() , INC = new Array();

function affich(a , ecrase)
{
	if(ecrase != true){document.forms["incertitude"].elements["affiche"].value += a;}
	else{document.forms["incertitude"].elements["affiche"].value = a;}
	
	document.forms["incertitude"].elements["affiche"].scrollTop = document.forms["incertitude"].elements["affiche"].scrollHeight;
}

function affich_r(r)
{
	affich(r+"\n");
}

function JCVD(x , entier)//...Security
{
	if(wtf != "..."){wtf = "...";}
	if(entier != true){JC = parseFloat(x);}
	else{JC = parseInt(x);}
	JCV = JC.toString();
	if(JCV.length == x.length && JCV != "NaN")
	{
		if(JC == 0){wtf = 0;}
		return JC;
	}
	else
	{
		wtf = x + " ...???";
		return "aie";
	}
}

function process()
{
	if(error == true){err();}
	else
	{
		affich_r(acquisition);
		if(i == 0){affich("Entrer la valeur (1) dont on cherche l'incertitude:  ");}
		else if(i == 1){affich("Indiquer le nombre de valeurs permettant de calculer la valeur (1): ");}
		else if(i >= 2 && i < (taille+2))
		{
			if(i == 2 && VALOR == true)
			{
				affich_r("");
				affich_r("... entrer ces valeurs ...");
			}
			if(VALOR == true)
			{
				affich_r("");
				affich("Valeur (" + i.toString() + ") = ");
			}else{affich("Incertitude sur la valeur (" + i.toString() + ") = ");}
		}
		else
		{
			total1 = 0;
			i = 0;

			do
			{
				total1 = total1 + Math.abs(INC[i]/VAL[i]);
				i++;
			}while(i < taille);
			affich("\n>---------<\nL'incertitude sur la valeur (1) est: ");
			affich_r(total1*val);
			affich(">---------<\n\n)--- Calcul n°" + numberC.toString() + " --- || --- Calcul n°" + (numberC+1).toString() + " ---(\n");
			numberC++;
			init();
		}
	}
}

function init()
{
	acquisition = "";
	error = false;
	wtf = "...";
	VALOR = true;
	i = 0;
	process();
}

function init2()
{
	numberC = 1;
	affich("" , true);
	init();
}

function err()
{
	affich_r(wtf);
	affich(")-> Erreur! Ressaisissez");
	if(i >= 2 && wtf == 0){affich(" (division par 0 impossible)");}
	if(i == 1 && (wtf == "..." || wtf == 0)){affich(" (un entier >= 1)");}
	affich(" :  ");
	error = false;
}

function saisie()
{
	if(i != 1){acquisition = JCVD(document.forms["incertitude"].elements["fact"].value);}
	else{acquisition = JCVD(document.forms["incertitude"].elements["fact"].value , true);}
	
	document.forms["incertitude"].elements["fact"].value = "";
	
	if(acquisition != "aie")
	{
		if(i >= 2)
		{
			if(VALOR == true)
			{
				if(acquisition != 0)
				{
					VAL[i-2] = acquisition;
					VALOR = false;
				}else{error = true;}
			}
			else
			{
				INC[i-2] = acquisition;
				VALOR = true;
				i++;
			}
		}
		else
		{
			if(i == 0)
			{
				val = Math.abs(acquisition);
				i++;
			}
			else
			{
				if(acquisition >= 1)
				{
					taille = acquisition;
					i++;
				}
				else{error = true;}
			}
		}
	}
	else{error = true;}
}

function info(elem)
{
	if(document.getElementById(elem).style.visibility == 'hidden'){document.getElementById(elem).style.visibility = 'visible';}
	else{document.getElementById(elem).style.visibility = 'hidden';}
}

</script>

<body onLoad="init2();" lang="fr-FR">

<h1 >Calcul d'incertitude</h1>

<br />
<form name="incertitude" action="javascript:process();" onsubmit = "javascript:saisie();">
  <textarea name="affiche" rows=6 COLS=71 readonly></textarea>
  <br />
  <input type="text" name="fact" onFocus="info('saisie_vis')" onBlur="info('saisie_vis')"/><i id="saisie_vis" style="visibility:visible;"> <-- Saisie</i>
  <br />
  <input type="submit" value="Entrée"/><input type="button" value="Effacer / recommencer" onClick="init2();"/><input type="button" value="Infos" onClick="info('info');"/>
  <br /><br />
  <i id="info" style="visibility:hidden;"><p>* <u>Formule utilisée:</u> delta(1) = (1)*[ [delta(2)/(2)] + [delta(3)/(3)] + ... ]<br /><br />-> (1) : valeur n°1.<br />-> delta(1) : incertitude sur la valeur n°1.<br /><br />** Entrez les valeurs dans le champ de saisie ci-dessus en appuyant sur la touche "Entrée" de votre clavier, ou en cliquant sur le bouton "Entrée", pour les insérer.</p></i>
</form>

</body>
</html>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.