Fonction retourne valeur x en c++
Fermé
k'
-
21 mai 2009 à 11:38
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 22 mai 2009 à 17:13
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 22 mai 2009 à 17:13
A voir également:
- Fonction retourne valeur x en c++
- Fonction si et - Guide
- Ecran retourne - Guide
- Direct x runtime - Télécharger - Pilotes & Matériel
- Fonction moyenne excel - Guide
- Homday x-pert mode d'emploi ✓ - Forum Casque et écouteurs
13 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
21 mai 2009 à 11:43
21 mai 2009 à 11:43
Langage C++ - Les fonctions
Merci , mais c'est pas ce que je voulais la discute que tu m'as envoyer n'as aucun rapport avec ce que je cherche
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
21 mai 2009 à 20:50
21 mai 2009 à 20:50
Alors explique mieux ce que tu cherches !
je vais essayer d'expliquer le maximeum possible ,je veux une fonction qui retourne la
valeur f(x) pour une valeur de x passée en paramètre , la fonction est la suivante f(x)=4xpow3 – 3xpow2 + 5
par ex : je donne x=0
elle me renvoie f(0)=5 une fonction comme on connait en math après je devrais faire son intégral mais j'en suis pas encore là merci pour tes reponce en tout cas! ^^
valeur f(x) pour une valeur de x passée en paramètre , la fonction est la suivante f(x)=4xpow3 – 3xpow2 + 5
par ex : je donne x=0
elle me renvoie f(0)=5 une fonction comme on connait en math après je devrais faire son intégral mais j'en suis pas encore là merci pour tes reponce en tout cas! ^^
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 mai 2009 à 21:08
21 mai 2009 à 21:08
Salut,
Tu n'as même pas besoin de pow. Tu peux faire x*x*x pour réaliser x au cube.
Cela évitera d'inclure la bibliothèque math pour rien.
Sinon je te donne la structure :
A toi de trouver ce qu'il faut mettre dans le return ;-))).
Cdlt
Tu n'as même pas besoin de pow. Tu peux faire x*x*x pour réaliser x au cube.
Cela évitera d'inclure la bibliothèque math pour rien.
Sinon je te donne la structure :
#include <stdio.h> double f(double x) { return ........ ; } int main(void) { double x; printf("x = "); scanf("%f",&x); getchar(); printf("f(x) = %lf\n",f(x)); getchar(); //si t'es sur windows; return 0; }
A toi de trouver ce qu'il faut mettre dans le return ;-))).
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon je connais pas du tout la fonction prinft normalement on travail avec les cin et les cout donc la bibliothéque
<iostream> mais bon d'après ta première fonction je devrais retourner f(x) mais le problème c'est que le programme il marche pas après il bug , merci commém pour ta réponce
<iostream> mais bon d'après ta première fonction je devrais retourner f(x) mais le problème c'est que le programme il marche pas après il bug , merci commém pour ta réponce
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
22 mai 2009 à 00:11
22 mai 2009 à 00:11
C'est parce que fiddy te parlait en C et non en C++, je te traduis :
#include <iostream> double f(double x) { return ........ ; } int main(void) { double x; cout << "x = "; cin >> x; cout << "f(x) = " << f(x) << endl; system("PAUSE"); //si t'es sur windows; return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
22 mai 2009 à 00:21
22 mai 2009 à 00:21
Et encore mal lu. Décidément je lis mal ce soir ^^.
Oui en C++, cela donnerait la version de KX. N'oublie pas non plus le using namespace std;
Et évite, si tu utilises system, faut importer cstdlib aussi.
Cdlt
Oui en C++, cela donnerait la version de KX. N'oublie pas non plus le using namespace std;
Et évite, si tu utilises system, faut importer cstdlib aussi.
Cdlt
oui ça marche on ajoutant le h à la bibliothéque iostram.h pour reconnaitre les cin et les cout sinon ils seront indéfinies je vous remercie tout les deux ^^ , je sais pas comment ça se fait mais pour toute les questions que j'ai posé , on me répond avec du c tu peux me traduire cette fonction en c++ s'il te plait elle convertit à nombre en base de 2 n'empèche elle est pas comléte elle donne que les deux premiers nombre en binaire , merci
voila la fonction
#include <iostream.h>
#include <stdio.h>
int main()
{
int entierLu;
int puissanceDe2 = 1;
int reste = 0;
int reste1 = 0;
scanf("%d", &entierLu);
while (puissanceDe2 <= entierLu)
{
puissanceDe2 *= 2;
}
puissanceDe2 /= 2;/* trouve la plus grande puissance de deux inférieur au nombre entré */
reste=entierLu-puissanceDe2;/* reste est égal au nombre entier MOINS la plus grande puissance de deux inférieur au nombre entré */
if (reste > 0)/* On affiche 0 ou 1 puisque l'on doit mettre le nombre entré en base 2 */
{
printf("1");
}
else
{
printf("0");
}
while (puissanceDe2!=0) /* tant que la valeur de la puissance de deux est différente de 0, on divise par deux la puissance de deux, reste1 est égal reste-puissance de 2 */
{
puissanceDe2/=2;
reste1= reste-puissanceDe2;
if (reste1 > 0)
{
printf("1");
}
else
{
printf("0");
}
system("PAUSE");
return 0;
}
}
#include <iostream.h>
#include <stdio.h>
int main()
{
int entierLu;
int puissanceDe2 = 1;
int reste = 0;
int reste1 = 0;
scanf("%d", &entierLu);
while (puissanceDe2 <= entierLu)
{
puissanceDe2 *= 2;
}
puissanceDe2 /= 2;/* trouve la plus grande puissance de deux inférieur au nombre entré */
reste=entierLu-puissanceDe2;/* reste est égal au nombre entier MOINS la plus grande puissance de deux inférieur au nombre entré */
if (reste > 0)/* On affiche 0 ou 1 puisque l'on doit mettre le nombre entré en base 2 */
{
printf("1");
}
else
{
printf("0");
}
while (puissanceDe2!=0) /* tant que la valeur de la puissance de deux est différente de 0, on divise par deux la puissance de deux, reste1 est égal reste-puissance de 2 */
{
puissanceDe2/=2;
reste1= reste-puissanceDe2;
if (reste1 > 0)
{
printf("1");
}
else
{
printf("0");
}
system("PAUSE");
return 0;
}
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
22 mai 2009 à 13:04
22 mai 2009 à 13:04
Ne mélange pas iostream avec stdio.h.
De plus, ce n'est pas iostream.h qu'il faut inclure mais iostream pour rester dans l'esprit C++.
Dans ce cas, soit tu précises l'espace de nom : std devant chacune de tes fonctions, soit tu importes cette espace dans l'espace courant via using namespace std;
De plus, ce n'est pas iostream.h qu'il faut inclure mais iostream pour rester dans l'esprit C++.
Dans ce cas, soit tu précises l'espace de nom : std devant chacune de tes fonctions, soit tu importes cette espace dans l'espace courant via using namespace std;
voila la fonction
#include <iostream.h>
#include <stdio.h>
int main()
{
int entierLu;
int puissanceDe2 = 1;
int reste = 0;
int reste1 = 0;
scanf("%d", &entierLu);
while (puissanceDe2 <= entierLu)
{
puissanceDe2 *= 2;
}
puissanceDe2 /= 2;/* trouve la plus grande puissance de deux inférieur au nombre entré */
reste=entierLu-puissanceDe2;/* reste est égal au nombre entier MOINS la plus grande puissance de deux inférieur au nombre entré */
if (reste > 0)/* On affiche 0 ou 1 puisque l'on doit mettre le nombre entré en base 2 */
{
printf("1");
}
else
{
printf("0");
}
while (puissanceDe2!=0) /* tant que la valeur de la puissance de deux est différente de 0, on divise par deux la puissance de deux, reste1 est égal reste-puissance de 2 */
{
puissanceDe2/=2;
reste1= reste-puissanceDe2;
if (reste1 > 0)
{
printf("1");
}
else
{
printf("0");
}
system("PAUSE");
return 0;
}
}
#include <iostream.h>
#include <stdio.h>
int main()
{
int entierLu;
int puissanceDe2 = 1;
int reste = 0;
int reste1 = 0;
scanf("%d", &entierLu);
while (puissanceDe2 <= entierLu)
{
puissanceDe2 *= 2;
}
puissanceDe2 /= 2;/* trouve la plus grande puissance de deux inférieur au nombre entré */
reste=entierLu-puissanceDe2;/* reste est égal au nombre entier MOINS la plus grande puissance de deux inférieur au nombre entré */
if (reste > 0)/* On affiche 0 ou 1 puisque l'on doit mettre le nombre entré en base 2 */
{
printf("1");
}
else
{
printf("0");
}
while (puissanceDe2!=0) /* tant que la valeur de la puissance de deux est différente de 0, on divise par deux la puissance de deux, reste1 est égal reste-puissance de 2 */
{
puissanceDe2/=2;
reste1= reste-puissanceDe2;
if (reste1 > 0)
{
printf("1");
}
else
{
printf("0");
}
system("PAUSE");
return 0;
}
}
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
22 mai 2009 à 12:55
22 mai 2009 à 12:55
Les seules différences c'est l'utilisation de printf/scanf et cout/cin
scanf("%d", &entierLu); cin >> entierLu; printf("1"); cout << "1"; printf("0"); cout << "0";
oui merci à vous j'ai même appris à faire du c en même temps
Bon là c'est impeu plus difficile en tout cas moi je suis completement dépassé je dois calculer l'intergal entre a et b [a,b] de la fonction que j'ai écris au début en utilisant la méthodedes rectangles. Les bornes et le nombred'intervalle permettant de calculer
l'approximation seront des paramètresde la fonction.
http://homeomath.imingo.net/methrect.htm voici le lien pour la l'integral avec les methodes des regtangles en math j'éspère que vous avez une idée
Bon là c'est impeu plus difficile en tout cas moi je suis completement dépassé je dois calculer l'intergal entre a et b [a,b] de la fonction que j'ai écris au début en utilisant la méthodedes rectangles. Les bornes et le nombred'intervalle permettant de calculer
l'approximation seront des paramètresde la fonction.
http://homeomath.imingo.net/methrect.htm voici le lien pour la l'integral avec les methodes des regtangles en math j'éspère que vous avez une idée
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
22 mai 2009 à 17:11
22 mai 2009 à 17:11
Bien sûr qu'on a une idée, mais c'est à toi de faire l'exercice, pas à nous...
Une intégrale c'est "juste" une somme d'aire, voici un plan pour t'aider :
fais une fonction double aire(double x, double delta); qui calcule l'aire du rectangle dont les points sont (x,0) (x+delta,0) (x,f(x)) (x+delta,f(x))
ensuite fais une fonction double integrale(double a, double b, double delta); qui calcule la somme des aire(x,delta); pour x qui varie de a à b avec un pas de delta...
Une intégrale c'est "juste" une somme d'aire, voici un plan pour t'aider :
fais une fonction double aire(double x, double delta); qui calcule l'aire du rectangle dont les points sont (x,0) (x+delta,0) (x,f(x)) (x+delta,f(x))
ensuite fais une fonction double integrale(double a, double b, double delta); qui calcule la somme des aire(x,delta); pour x qui varie de a à b avec un pas de delta...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
22 mai 2009 à 17:13
22 mai 2009 à 17:13
Salut,
T'as fait presque le plus dur avec la fonction f(x).
Maintenant, il faut que tu vois le calcul d'une intégrale comme un calcul d'aires.
Imagine, tu prends un point sur la courbe Cf d'abscisse (a+b)/2, et tu traces un rectangle passant par ce point. Pour calculer l'aire, ça sera :Hauteur*largeur = f((a+b)/2)*(b-a)
Comme tu peux te douter, la précision n'est pas top. Pour cela, tu vas mettre autant de point que possible pour approcher au maximum la fonction et faire la somme algébrique des aires. C'est la méthode des rectangles.
Dans le lien que tu as donné, tout en bas, tu as la formule que tu dois implémenter. Une bête boucle for.
Si tu as des questions, n'hésite pas.
T'as fait presque le plus dur avec la fonction f(x).
Maintenant, il faut que tu vois le calcul d'une intégrale comme un calcul d'aires.
Imagine, tu prends un point sur la courbe Cf d'abscisse (a+b)/2, et tu traces un rectangle passant par ce point. Pour calculer l'aire, ça sera :Hauteur*largeur = f((a+b)/2)*(b-a)
Comme tu peux te douter, la précision n'est pas top. Pour cela, tu vas mettre autant de point que possible pour approcher au maximum la fonction et faire la somme algébrique des aires. C'est la méthode des rectangles.
Dans le lien que tu as donné, tout en bas, tu as la formule que tu dois implémenter. Une bête boucle for.
Si tu as des questions, n'hésite pas.