Langage C++

Fermé
sali - 10 nov. 2010 à 21:45
 sali - 10 nov. 2010 à 23:08
Bonjour,
j'essaie de compiler ce programme mais je ça marche pas il me signale error linker:(pouver vous m'aidez plz
#include<iostream>
#include<cmath>
using namespace std;
void subd(float a,float b,float f,int n)
{
float h,x;
float T[8],P[10];
int i;
h=(b-a)/n;
for(i=0;i<=n;i++)
{
T[i]=a-i*h;
x=T[i];
P[i]=f;
}
for(i=0;i<=n;i++)
{ cout<< "X=["<< T[i];
cout<< "Y=["<< P[i];
}
main()
{
cout<<"entrez votre fonction";
cin>>f;
subd(1,2,f,3);
}



A voir également:

20 réponses

Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 21:50
Bonjour,
J'ai du mal à saisir un truc : c'est quoi exactement f ?
Quand tu l'exécutes qu'il te demande la fonction te entres quoi ?
Je suis en train de le tester mais là je bloque sur ça
0
f c' est une fonction
par exemple pour a:=1: b:=2: f:=x->x^2 je veux qu'il m'affiche
[X[1, 4/3, 5/3, 2],Y [1, 16/9, 25/9, 4]] HELP ME PLZ
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:03
Bon déjà dans la main, tu n'as pas déclaré f (int, char, float, double,..... ?)
Au vu de la définition de la fonction subd on en déduit que f est de type float.

Donc si j'ai bien compris : quand le programme t'affiche : "entrez votre fonction", toi tu tapes : "x->x^2" ?

Or f est de type float et tu lui entres une string.....
0
alors qu'est ce ke je vais faire?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:09
C'est pour tes études ? Tu as un énoncé pour ton problème ? Parce que si oui, il doit y avoir une façon plus simple que de rentrer une fonction.....
0
oui c pour mes etude :( subd2:=proc(f,a,b,n)local h,x,y,i;
> h:=(b-a)/n:
> for i from 0 to n do
> x[i]:=a+i*h; y[i]:=f(x[i]);
> od:
> x:=[seq(x[i],i=0..n)]; y:=[seq(y[i],i=0..n)];
> [x,y];
> end
exp a:=1: b:=2: f:=x->x^2: liste:=subd1(f,a,b,3)
= [[1, 4/3, 5/3, 2], [1, 16/9, 25/9, 4]]
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:20
comme je t'ai répondu sur l'autre topic, tu n'aurais pas l'énoncé en "français" (je veux dire pas en algo)
0
alright
il faut calculer d'abord h = (b-a)/n;
avec n entrer par le user
une suite une boucle de i=0 jusqu'A n
ensuit x[i] = a+i*h;, pour i = 0;, ... , n;. Ensuite, on
pour chaque xen calcule son immage par la fonction y[i] = f(x[i]);
et on les affiche
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:27
donc si je suis ton énoncé : c'est le n qui doit être entré par le user, pas la fonction
0
le n c'est entrez par le user dans l'argument de fonction le probleme c'est dans la fonction (il faut ke je clacule l'immage des point par cette fonction par exemple si j'ai oubtenus x=3 son immage par la fonction f =x^ 2+1 EST y=f(x)=10 Ayyayay j'espér ke vous me comprend
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:33
oui oui je comprends.
mais je ne vois pas comment faire pour rentrer une fonction c'est ça le problème
0
j'ai cru ke cette fonction est une vatiable de type float alor lorsqu'on remplace le x la fonction renvois directement le y
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:36
si tu mets float f ;
f sera par exemple égal à 14.567 (c'est un exemple au hasard)
0
et si je fait comme ca?include<iostream>
#include<cmath>
using namespace std;
float f()

{ float fct;
cout<<"entrer fct";
cin>> fct;
return fct;
}
void subd(float a,float b,float f,int n)
{
float f();
float h;
float T[8],P[10],x;
int i;
h=(b-a)/n;
for(i=0;i<=n;i++)
{
T[i]=a-i*h;
x=T[i];
P[i]=f();
}
for(i=0;i<=n;i++)
{ cout<< "X=["<< T[i];
cout<< "Y=["<< P[i];
}
main()
{

cout<<"entrez votre fonction";
subd(1,2,f,3);
}
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:46
non ça ne marchera pas non plus : un float c'est pas une fonction !
0
alors comment je vais fair pour calcule de illage par fonction?franchement dzlé mais ça me casse la tete je veu bien arriver a une solution
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:49
le seul truc que je vois, ça ne sera pas rentrée par l'utilisateur !

Tu fais

float f (int x){
float a ;
a = pow(x, 2) ; //je suis pas sûre de la syntaxe
return a ;
}
0
vous voulez dire mais il existe encor des erreurrs#include<iostream>
#include<cmath>
using namespace std;
float f (float x)
{
float a ;
a = x*x ; //je suis pas sûre de la syntaxe
return a ;
}

void subd(float a,float b,float f,int n)
{
float f(float );
float h;
float T[8],P[10],x;
int i;
h=(b-a)/n;
for(i=0;i<=n;i++)
{
T[i]=a-i*h;
x=T[i];
P[i]=f(x);
}
for(i=0;i<=n;i++)
{ cout<< "X=["<< T[i];
cout<< "Y=["<< P[i];
}
main()
{
void subd(float a,float b,float f,int n);
float f(x);

cout<<"entrez votre fonction";
subd(1,2,f,3);
0
Arya Dröttningu Messages postés 581 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 3 janvier 2019 157
10 nov. 2010 à 22:55
il manque une accolade avant le main, une après
0
thanx so much
vrement tu m'a sauver
thanx MR?
0