Pbm d'ignorance en C
rageatm
-
kij_82 Messages postés 4102 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4102 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je débute dans la programmation en C et j'ai deux petit soucis:
- est ce qu'il existe un opérateur spécial ou une feinte de sioux pour exprimer la puissance d'un nombre (du genre 1e-200)
- je dois fournir un certain nombre de données contenues dans un fichier externe à mon programme. Pour l'instant, je le fais manuellement en tapant son nom dans la fenetre dos. Mais est ce qu'il y a un moyen de scanner ce fichier automatiquement en inserant une ligne de code supplémentaire?
Je remercie d'avance les personne qui prendrons le temps de me repondre.
Je débute dans la programmation en C et j'ai deux petit soucis:
- est ce qu'il existe un opérateur spécial ou une feinte de sioux pour exprimer la puissance d'un nombre (du genre 1e-200)
- je dois fournir un certain nombre de données contenues dans un fichier externe à mon programme. Pour l'instant, je le fais manuellement en tapant son nom dans la fenetre dos. Mais est ce qu'il y a un moyen de scanner ce fichier automatiquement en inserant une ligne de code supplémentaire?
Je remercie d'avance les personne qui prendrons le temps de me repondre.
2 réponses
-
Bonjour,
Je débute dans la programmation en C et j'ai deux petit soucis:
- est ce qu'il existe un opérateur spécial ou une feinte de sioux pour exprimer la puissance d'un nombre (du genre 1e-200)
En C tu précise le format dans lequel tu affiches ton nombre :
%lf pour les flottants
%G pour écrire au format ingénieur
%d ou %i pour les entiers
Tu peux préciser le nombre de chiffres significatifs et de nombre après la virgule : par exemple %8.2G pour deux chiffres après la virgules...
Pour ton 1e-200 il semblerait que ton calcul soit sensé donner 0 mais qu'il n'a pas tout à fait atteint cette valeur. On peut imaginer que tu introduises une constante :
#define EPSILON 0.000001
Et que tu testes si ta valeur est inférieure...
- je dois fournir un certain nombre de données contenues dans un fichier externe à mon programme. Pour l'instant, je le fais manuellement en tapant son nom dans la fenetre dos. Mais est ce qu'il y a un moyen de scanner ce fichier automatiquement en inserant une ligne de code supplémentaire?
Je remercie d'avance les personne qui prendrons le temps de me repondre.
Bien sûr !
FILE *fid=fopen("MonFichier","r");
Ca suppose bien entendu de connaître au préalable le nom du fichier (le programme peut pas le deviner ;o))... Bien penser au fclosef(fid) à la fin du programme...-
merci de tes réponses,
en fait pour mon problème de puissance, je suis obligé de définir un epsilon très faible ( je travail sur un programme de simulation par élements finis). Le paramètre que je veux soumettre à un test est normalement de l'ordre de 1e-20. Mais dans les cas de divergence, ce critère va effectiviement tendre vers 0 sans jamais l'atteindre. C'est pourquoi j'aurais aimé definir l'epsilon d'arrêt des calculs par une valeur du genre 1e-50 sans etre obligé de taper ce chiffre énorme.
-
-
double y=y0; #define EPSILON 0.00001 ... unsigned int it=0; //le nombre d'itération unsigned int nbMaxIt=10000; for(it=0;it<nbMaxIt && y<EPSILON;it++){ y=f(y); } ...
Non ?