Accueil > > > CALCUL D'INCERTITUDE
CALCUL D'INCERTITUDE
Information sur la source
Description
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. Exécutables disponibles sur cette page: http://minilog.freehostia.com/telechargements.php
Source
- #include <iostream>
- #include <vector>
- #include <cmath>
- #include <sstream>
-
- template<typename numbr3s> void nb(numbr3s &num , const bool &entier)
- {
- std::string saisie;
- std::string verif;
-
- size_t found;
- bool good = true;
- bool trouble = false;
- numbr3s num1;
-
- do
- {
- if(good == false)
- {
- std::cout << std::endl << "-> Saisie incorrecte, ressaisissez: ";
- }
-
- std::cin>>saisie;
-
- if(entier != true)
- {
- found = saisie.find_first_of(",");
- while(found != std::string::npos)
- {
- saisie[found] = '.';// les virgules françaises seront automatiquement transformées en point.
- found = saisie.find_first_of("," , found+1);
- }
- }
-
- std::istringstream iss(saisie);// conversion du type string en type double.
- iss >> num1;
-
- if(iss.fail())
- {
- good = false;
- trouble = true;
- }
- else
- {
- std::ostringstream oss;
- oss << num1;
-
- verif = oss.str();
-
- if(verif.size() < saisie.size())
- {
- good = false;
- trouble = true;
- }
- else{good = true;}
- }
-
- if(good == true && trouble == true)
- {
- std::cout << "-> OK!" << std::endl << std::endl;
- }
-
- }while(good == false);
-
- num = num1;
- }
-
- int main()
- {
- std::cout<<">-------------------- CALCUL D'INCERTITUDE --------------------<"<<std::endl<<std::endl;
- double val , total1;
- int taille , quitter = 0 , Z;
-
- do//pour le "quitter" de fin
- {
- if(quitter == 0)// ce cas ne se présentera qu'une seule fois.
- {
- std::cout << " |------------------------------------------------------------|" << std::endl;
- std::cout << " | delta(1)/(1) = [delta(2)/(2)] + [delta(3)/(3)] + ... |" << std::endl;
- std::cout << " |------------------------------------------------------------|" << std::endl << std::endl;
- }
-
- std::cout << "Entrer la valeur (1) dont on cherche l'incertitude: ";
- nb(val , 0);
- val = std::abs(val);
-
- do
- {
- std::cout << "Indiquer le nombre de valeurs permettant de calculer la valeur (1): ";
- nb(taille , 1);
- if(taille < 1){std::cout << std::endl << "--> ATTENTION! Il doit subsister au moins une valeur. Ressaisissez." << std::endl << std::endl;}
- }while(taille < 1);
-
- std::vector<double> VAL(taille,0);// définition du "tableau" de stockage des valeurs.
- std::vector<double> INC(taille,0);// même chose que ci-dessus mais pour les incertitudes.
-
- std::cout << std::endl << "Entrer ces valeurs: " << std::endl;
-
- Z = 0;
-
- do
- {
- std::cout << std::endl << "<----->";
- std::cout << std::endl << "Valeur (" << Z+2 << ") = ";
- nb(VAL[Z] , 0);
- std::cout << "Incertitude sur la valeur (" << Z+2 << ") = ";
- nb(INC[Z] , 0);
- Z++;
- std::cout << "<----->" << std::endl;
- }while(Z < taille);
-
- total1 = 0;
- Z = 0;
-
- do
- {
- total1 = total1 + std::abs(INC[Z]/VAL[Z]);
- Z++;
- }while(Z < taille);
-
- std::cout << std::endl << "L'incertitude sur la valeur (1) est: " << total1 * val;
- std::cout << std::endl << std::endl << ">--------------------------------------------------------------<" << std::endl;
- std::cout << std::endl << "--> Faire un autre calcul d'incertitude? (1=oui/0=non): ";
- nb(quitter , 1);
- std::cout << std::endl << ">--------------------------------------------------------------<" << std::endl << std::endl;
- }while(quitter > 0);
- return 0;
- }
#include <iostream>
#include <vector>
#include <cmath>
#include <sstream>
template<typename numbr3s> void nb(numbr3s &num , const bool &entier)
{
std::string saisie;
std::string verif;
size_t found;
bool good = true;
bool trouble = false;
numbr3s num1;
do
{
if(good == false)
{
std::cout << std::endl << "-> Saisie incorrecte, ressaisissez: ";
}
std::cin>>saisie;
if(entier != true)
{
found = saisie.find_first_of(",");
while(found != std::string::npos)
{
saisie[found] = '.';// les virgules françaises seront automatiquement transformées en point.
found = saisie.find_first_of("," , found+1);
}
}
std::istringstream iss(saisie);// conversion du type string en type double.
iss >> num1;
if(iss.fail())
{
good = false;
trouble = true;
}
else
{
std::ostringstream oss;
oss << num1;
verif = oss.str();
if(verif.size() < saisie.size())
{
good = false;
trouble = true;
}
else{good = true;}
}
if(good == true && trouble == true)
{
std::cout << "-> OK!" << std::endl << std::endl;
}
}while(good == false);
num = num1;
}
int main()
{
std::cout<<">-------------------- CALCUL D'INCERTITUDE --------------------<"<<std::endl<<std::endl;
double val , total1;
int taille , quitter = 0 , Z;
do//pour le "quitter" de fin
{
if(quitter == 0)// ce cas ne se présentera qu'une seule fois.
{
std::cout << " |------------------------------------------------------------|" << std::endl;
std::cout << " | delta(1)/(1) = [delta(2)/(2)] + [delta(3)/(3)] + ... |" << std::endl;
std::cout << " |------------------------------------------------------------|" << std::endl << std::endl;
}
std::cout << "Entrer la valeur (1) dont on cherche l'incertitude: ";
nb(val , 0);
val = std::abs(val);
do
{
std::cout << "Indiquer le nombre de valeurs permettant de calculer la valeur (1): ";
nb(taille , 1);
if(taille < 1){std::cout << std::endl << "--> ATTENTION! Il doit subsister au moins une valeur. Ressaisissez." << std::endl << std::endl;}
}while(taille < 1);
std::vector<double> VAL(taille,0);// définition du "tableau" de stockage des valeurs.
std::vector<double> INC(taille,0);// même chose que ci-dessus mais pour les incertitudes.
std::cout << std::endl << "Entrer ces valeurs: " << std::endl;
Z = 0;
do
{
std::cout << std::endl << "<----->";
std::cout << std::endl << "Valeur (" << Z+2 << ") = ";
nb(VAL[Z] , 0);
std::cout << "Incertitude sur la valeur (" << Z+2 << ") = ";
nb(INC[Z] , 0);
Z++;
std::cout << "<----->" << std::endl;
}while(Z < taille);
total1 = 0;
Z = 0;
do
{
total1 = total1 + std::abs(INC[Z]/VAL[Z]);
Z++;
}while(Z < taille);
std::cout << std::endl << "L'incertitude sur la valeur (1) est: " << total1 * val;
std::cout << std::endl << std::endl << ">--------------------------------------------------------------<" << std::endl;
std::cout << std::endl << "--> Faire un autre calcul d'incertitude? (1=oui/0=non): ";
nb(quitter , 1);
std::cout << std::endl << ">--------------------------------------------------------------<" << std::endl << std::endl;
}while(quitter > 0);
return 0;
}
Historique
- 01 mars 2010 21:06:46 :
- Rajout d'un screenshot
- 11 mars 2010 18:14:49 :
- Refonte des fonctions de traitement d'erreur de saisie.
- 24 août 2010 20:04:19 :
- Rectification d'un bug sévissant lors de la saisie d'un nombre négatif + templatisation de la fonction de saisie (permet de combiner anciennement "entier()" et "reel()" en une seule fonction "nb()".
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
DEVOIR A EFFECTUER DANS LE CADRE DE MES ETUDES [ par tommar ]
J'AI UN ALGORITHME A ECRIRE ET A TRADUIRE EN LANGAGE C (IL S'AGIT D'UN DOSSIER "POLYNÔME").JE DEBUTE EN PROGRAMMATION ET J'AI DU MAL A M'EN SORTIR CAR
Challenge - VC++ VB Split/Join [ par dpincon ]
Voici, j ai l algo suivant (qui fonctionne tres bien en vb). Si qq un arrive à le mettre en C++, je lui offre un irish cooofffee. Objectif :
Calcul en multi précision de la valeur de pi [ par nico_rs4 ]
Bonjour à tous, je dois réaliser un programme en C (calculant pi avec 1000 décimales) sachant que pi= 16( ((1/5^1)-(1/3*1/5^3)+ ((1/5*1/5^5)-(1/7*1/5
taille maximum d une valeur [ par maloudre ]
bonjour a tousje suis en train de faire un petit prog en c++ sous linux et j ai un petit prob ...j aimerai savoir si cette declaration de variable : l
initialiser des valeur [ par maloudre ]
bonjoursuite a mon autre post " taille mximum d une valeur "je voudrais savoir comment initialiser avec des valeurs par defaut ( par ex 0 ) ma valeur
les valeur de structure COMMTIMEOUTS ?????????? [ par hattabfethi ]
Je veux faire une communication PC automate S7-200 via le port rs232.Si qq peut me donner les valeurs de la structure COMMTIMEOUTS. typedef stru
effacer o fure et à mesure lorsquon exécute [ par sy3ns ]
j'aimerais savoir sil exite une instruction qui permet d'effacer ce qu'on veut sur le stdout autrement dit jaffichele tour un de mon damier il sefface
Position du curseur par rapport au texte d'un EDITTEXT [ par julien_boss ]
Une nouvelle fois bonjour à tous,dans le message de notification EN_CHANGE d'un EDITTEXT, je cherche à savoir si la valeur entrée
Valeur dans un fichier TXT [ par norton ]
Bonjour, Mon programme doit affecter une valeur à une variable, cette valeur se trouve dans un fichier txt.jusque la ok, mais une fois que m
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MATRICE TEMPLATEMATRICE TEMPLATE par hjr2610
Cliquez pour lire la suite par hjr2610 RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|