Langage C++

sali -  
 sali -
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);
}

20 réponses

  1. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    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
  2. sali
     
    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
  3. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    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
  6. sali
     
    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
  7. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    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
  8. sali
     
    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
  9. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    donc si je suis ton énoncé : c'est le n qui doit être entré par le user, pas la fonction
    0
  10. sali
     
    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
  11. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    oui oui je comprends.
    mais je ne vois pas comment faire pour rentrer une fonction c'est ça le problème
    0
  12. sali
     
    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
  13. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    si tu mets float f ;
    f sera par exemple égal à 14.567 (c'est un exemple au hasard)
    0
  14. sali
     
    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
  15. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    non ça ne marchera pas non plus : un float c'est pas une fonction !
    0
  16. sali
     
    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
  17. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    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
  18. sali
     
    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
  19. Arya Dröttningu Messages postés 650 Statut Membre 157
     
    il manque une accolade avant le main, une après
    0
  20. sali
     
    thanx so much
    vrement tu m'a sauver
    thanx MR?
    0