A voir également:
- Fonction dscos en C
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Snapchat ils m'ont ajouté par la fonction recherche - Forum Snapchat
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
5 réponses
Quel est le problème ?
Problème compilation, exécution ...
Les messages d'erreur sont les bienvenus (pour ceux du compilateur, seule la première demi-douzaine est utile).
Problème compilation, exécution ...
Les messages d'erreur sont les bienvenus (pour ceux du compilateur, seule la première demi-douzaine est utile).
oui c'est un problème de compilation. Quand je compile ça me met cette phrase d'erreur :
15 C:\Users\Harouna\Documents\DEVCPP\td4_III_4.c conflicting types for 'fact'
15 C:\Users\Harouna\Documents\DEVCPP\td4_III_4.c conflicting types for 'fact'
Et oui, c'est logique... comme toujours avec le compilateur ;-)
Dans la fonction 'dscos' il rencontre la fonction 'fact', 'Tiens, se dit-il, je ne connais pas cette fonction, elle sera sans doute déclarée plus tard; en attendant je parie qu'elle sera de type 'int'.
Quelque temps plus tard, quand il rencontre la fonction 'fact', il se dit: 'Tiens il doit y avoir une erreur car la fonction n'est pas de type 'int'"; alors il s'arrête et retourne une erreur.
On pourrait se dire, je vais recompiler jusqu'à ce qu'il parie sur une fonction 'double'; ce n'est pas la peine, il parie toujours sur une fonction 'int' (c'est ce qu'on lui a dit de faire).
Il existe deux solutions:
- soit déplacer la fonction 'fact' et la mettre avant la fonction 'dcos',
- soit simplement déclarer la fonction 'fact' avant la fonction 'dcos'; c'est ce que l'on appelle le prototypage.
Bon courage... car il y a d'autres erreurs.
Dans la fonction 'dscos' il rencontre la fonction 'fact', 'Tiens, se dit-il, je ne connais pas cette fonction, elle sera sans doute déclarée plus tard; en attendant je parie qu'elle sera de type 'int'.
Quelque temps plus tard, quand il rencontre la fonction 'fact', il se dit: 'Tiens il doit y avoir une erreur car la fonction n'est pas de type 'int'"; alors il s'arrête et retourne une erreur.
On pourrait se dire, je vais recompiler jusqu'à ce qu'il parie sur une fonction 'double'; ce n'est pas la peine, il parie toujours sur une fonction 'int' (c'est ce qu'on lui a dit de faire).
Il existe deux solutions:
- soit déplacer la fonction 'fact' et la mettre avant la fonction 'dcos',
- soit simplement déclarer la fonction 'fact' avant la fonction 'dcos'; c'est ce que l'on appelle le prototypage.
Bon courage... car il y a d'autres erreurs.
Merci Loupius de m'avoir aidé à franchir cette étape ! Je vais essayer de réparer les autres erreurs, mais je crois déjà que je vous solliciterai de nouveau, car j'ai passé tellement de temps là-dessus que je vois plus rien.
Je suis vraiment fatigué par ce programe, là je comprends plus rien du tout :
#include<stdio.h>
#include<conio.h>
#include<math.h>
double fact(unsigned int n)
{ double resultat=1;
int i;
for(i=1;i<=n;i++)
resultat = resultat*i;
return resultat;
}
float p_puiss(float x,unsigned int n)
{ int compteur=0;
float resultat=1;
while(compteur<n)
{ compteur = compteur+1;
resultat = resultat*x;
}
return resultat;
}
float dcos(float x,unsigned int n)
{ float cosx=1;
int i;
for(i=1;i<=n;i++)
cosx = cosx + p_puiss(-1,i)* p_puiss(x,2*i)/ fact(2*i);
return cosx;
}
int main()
{ float angl_rd;
unsigned int n=30,i;
float dcos(float,unsigned int);
printf("\nEntrer la valeur de l'angle en radians : ");
scanf("%f",&angl_rd);
printf("\nLes approximations fournies par dscos sont :");
for(i=1;i<=n;i++)
printf("\ncos(%f) ~~ %f",angl_rd,dscos(angl_rd,n));
printf("\nla valeur de cos(x) par la fonction standard est: %.2f",cos(angl_rd));
getch();
}
Voici les messages d'erreur quand je compile :
C:\Users\Harouna\AppData\Local\Temp\cckXcaaa.o(.text+0x15e) In function `main':
[Linker error] undefined reference to `dscos'
C:\Users\Harouna\AppData\Local\Temp\cckXcaaa.o(.text+0x15e) ld returned 1 exit status
#include<stdio.h>
#include<conio.h>
#include<math.h>
double fact(unsigned int n)
{ double resultat=1;
int i;
for(i=1;i<=n;i++)
resultat = resultat*i;
return resultat;
}
float p_puiss(float x,unsigned int n)
{ int compteur=0;
float resultat=1;
while(compteur<n)
{ compteur = compteur+1;
resultat = resultat*x;
}
return resultat;
}
float dcos(float x,unsigned int n)
{ float cosx=1;
int i;
for(i=1;i<=n;i++)
cosx = cosx + p_puiss(-1,i)* p_puiss(x,2*i)/ fact(2*i);
return cosx;
}
int main()
{ float angl_rd;
unsigned int n=30,i;
float dcos(float,unsigned int);
printf("\nEntrer la valeur de l'angle en radians : ");
scanf("%f",&angl_rd);
printf("\nLes approximations fournies par dscos sont :");
for(i=1;i<=n;i++)
printf("\ncos(%f) ~~ %f",angl_rd,dscos(angl_rd,n));
printf("\nla valeur de cos(x) par la fonction standard est: %.2f",cos(angl_rd));
getch();
}
Voici les messages d'erreur quand je compile :
C:\Users\Harouna\AppData\Local\Temp\cckXcaaa.o(.text+0x15e) In function `main':
[Linker error] undefined reference to `dscos'
C:\Users\Harouna\AppData\Local\Temp\cckXcaaa.o(.text+0x15e) ld returned 1 exit status
Ah oui, on fait des tas de fautes d'orthographe... et tout le monde comprend quand même parce que cerveau est souple... mais pas le compilateur !!!
Dans ton 'main' tu appelles une fonction 'dscos'... qui n'existe pas !!! Le compilateur est intolérant, mais il ne faut surtout pas lui en vouloir ;-)
A suivre.
Dans ton 'main' tu appelles une fonction 'dscos'... qui n'existe pas !!! Le compilateur est intolérant, mais il ne faut surtout pas lui en vouloir ;-)
A suivre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question