probleme avec calcul exponentiel - C - Programmation
Marsh Posté le 10-11-2004 à 02:37:21
t'as le droit d'utiliser i, j comme compteur de boucle
du reste c'est un problème d'algo. revois ton algorithme. fais tourner ton algo à la main.
mais attention que
((born_max-born_min)/nb_n);
est un calcul entier et peut ne pas donner ce que tu veux (par exemple (10 - 5) / 3 va donner 1 et pas 1.6666...
Marsh Posté le 10-11-2004 à 02:46:23
tu veux dire quoi par le fait que je peux utiliser i et j pour les boucles de compteur?
par contre pour le calcul du pas je suis sur de ce que j'ecris!
C'est un de mes tout premier programme alors faut etre indulgent avec le petit newbies que je suis
Marsh Posté le 10-11-2004 à 20:33:23
il veut dire que cpt, cpt1 etc... c'est pas super lisible, car dans les standards de programmation classique, les compteurs de boucle s'appelle i, j, k...
Marsh Posté le 11-11-2004 à 12:32:57
Taz a écrit : mais attention que |
Suis pas d'accord ! Dans une opération, le calcul se fait dans le type de l'opérande le plus précis qui est présent dans le calcul. S'il y a des opérandes "int", "double" et "float", le calcul sera fait en "double".
"born_max" et "born_min" étant des float, le calcul sera flottant et "pas" contiendra la bonne valeur...
Juste que les parenthèses autour de l'opération ne sont pas obligatoires
Code :
|
Marsh Posté le 11-11-2004 à 13:56:53
non. la promotion se fait étape par étape et pas globalement. les opérateurs sont unaire ou binaire, pas plus. donc non
Marsh Posté le 11-11-2004 à 18:34:18
Taz a écrit : non. la promotion se fait étape par étape et pas globalement. les opérateurs sont unaire ou binaire, pas plus. donc non |
Hum... l'opérateur "expr ?e1 :e2" est souvent cité comme opérateur "ternaire"...
Je n'ai pas testé (et je ne pourrai pas tester avant lundi) mais même étape par étape, il me semble que le calcul commencera par faire "b - a" en valeur flottantes et que le résultat restera mémorisé tel quel. Puis ce résultat sera divisé par un "int" mais l'opération restera (devrait rester) float non ???
Marsh Posté le 14-11-2004 à 21:25:34
L'opération reste float
Marsh Posté le 10-11-2004 à 02:27:24
Salut à tous;
J'ai besoin d'une petite aide, j'essaie d'afficher les points de la courbe exponentielle de x(y=exp(x)). L'utilisateur saisit d'abord l'intervalle dans lequel il désire avoir les points de la fonction ainsi que le nombre de points voulue.
Le problemes c'est quand j'execute mon programme je n'ai pas les bonnes valeur qui s'affiche. Quelqu'un peut il me signaler ou se trouve l'erreur ?
1.#include <stdio.h>
2.
3.int main()
4 .{
5. int nb_n,a;
6. int cpt,cpt1;
7. float born_min;
8. float born_max;
9. float x;
10. float y;
11. float pas;
12. float som;
13.
14. printf("Min? \n" );
15. scanf("%f", &born_min);
16. printf("Max? \n" );
17. scanf("%f", &born_max);
18. printf("nombre de points? \n" );
19. scanf("%d", &nb_n);
20. pas=((born_max-born_min)/nb_n);
21. x=born_min;
22. y=1;
23. som=0;
24. for(cpt=0;cpt<nb_n;cpt++)
25. {
26. a=1;
27. for(cpt1=0;cpt1<20;cpt1++)
28. {
29. y=(x/a)*y;
30. som=som+y;
31. a++;
32. }
33. printf("%f %f \n",x, som);
34. x=(x+pas);
35. }
36. system("pause" );
37.}
---------------
Hihi j'suis là ou pas?