Langage C++

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. thanx so much
    vrement tu m'a sauver
    thanx MR?
    0
    1. il manque une accolade avant le main, une après
      0
      1. 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
        1. 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
          1. 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
            1. non ça ne marchera pas non plus : un float c'est pas une fonction !
              0
              1. 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
                1. si tu mets float f ;
                  f sera par exemple égal à 14.567 (c'est un exemple au hasard)
                  0
                  1. 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
                    1. oui oui je comprends.
                      mais je ne vois pas comment faire pour rentrer une fonction c'est ça le problème
                      0
                      1. 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
                        1. donc si je suis ton énoncé : c'est le n qui doit être entré par le user, pas la fonction
                          0
                          1. 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
                            1. 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
                              1. 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
                                1. 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
                                  1. 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
                                    1. 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
                                      1. 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