IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

graphique de n'import quelle fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 3
    Par défaut graphique de n'import quelle fonction
    Bonjour a tous!
    J'envisage de traser en C le grahique de n'import quelle fonction.
    Comment ca se fait pour une fonction particuliere je sais,mais pour une aleatoire?
    Aidez-moi de repuperer le string qui designe la future fonction,et de le transformer dans une fonction "compreheansible" pour mon program.
    C'est tres important pour moi.Merci de me conseiller!
    Bon week-end

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut Re:
    On demande à l'utilisateur d'entrer une expression paramétrée (une chaîne de caractères) qui est donc l'expression d'une fonction. On évalue l'expression (la chaîne) à l'intérieur d'une boucle en modifiant à chaque itération la valeur du paramètre. A la base tu dois donc avoir une fonction qui permette d'évaluer par exemple "10*ln(2)" (=> 6.9)

  3. #3
    Membre éprouvé Avatar de siegfried64
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Par défaut
    ce que tu cherche a faire c'est loin d'etre evidant, il te faudra chercher une librerie qui fait, un interpreteur de formules mathematiques.
    Tu peux integrer matlab dans ton application, ou bien utiliser un interpreteur Tcl

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par siegfried64 Voir le message
    ce que tu cherche a faire c'est loin d'etre evidant,
    il te faudra chercher une librerie qui fait, un interpreteur de formules mathematiques.
    Tu peux integrer matlab dans ton application, ou bien utiliser un interpreteur Tcl
    http://www.developpez.net/forums/sho...d.php?t=387473

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    siegfried64, ta fonction ne remplace que la première occurence du caractère dans la chaîne, le remplacant ensuite par un autre caractère qui est censé être la valeur du paramètre. Mais t'es sur la bonne voie. Le paramètre est une chaîne (il peut y avoir plusieurs paramètres mais fixons-nous les idées) et la valeur un double. On crée une boucle, comme je l'ai déjà dit, ou remplace à chaque itération le paramètre par une valeur, et on évalue l'expression. En réalité, on remplace le paramètre pendant l'évaluation et non avant, c'est plus facile à coder, et plus rapide. On a ainsi un ensemble fini de points ce qui permet de tracer la courbe.

  6. #6
    Membre éprouvé Avatar de siegfried64
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Par défaut
    Citation Envoyé par Melem Voir le message
    siegfried64, ta fonction ne remplace que la première occurence du caractère dans la chaîne,.
    en fait ma fonction remplace toute les occurences, c'est reccursive et tu peux l essayer.
    Mais comme je viens de m en rendre compte elle neccessite plusieurs modification pour fonctionner parfaitement, mais c'etais juste a titre d exemple

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 3
    Par défaut
    Citation Envoyé par Melem Voir le message
    On demande à l'utilisateur d'entrer une expression paramétrée (une chaîne de caractères) qui est donc l'expression d'une fonction. On évalue l'expression (la chaîne) à l'intérieur d'une boucle en modifiant à chaque itération la valeur du paramètre. A la base tu dois donc avoir une fonction qui permette d'évaluer par exemple "10*ln(2)" (=> 6.9)
    Melem,pls plus detaille...
    j'ai fait une calculatrice qui modifie la valeur du paralmetre,mais prce que la on opere avec des valeurs,comme ca:
    sin(5+2.2)+5=>sinA+5(pour la 1e iteration)=>B+5(iteration 2)=>C(pour la 3e iteration),les valeurs de A,B,C sont stockees dans une tableau
    mais comment tu me propose...
    je introduit par ex.sin(x/2)+5,on fait quoi d'abord?
    merci

  8. #8
    Membre éprouvé Avatar de siegfried64
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Par défaut
    Citation Envoyé par andrik Voir le message
    Melem,pls plus detaille...
    j'ai fait une calculatrice qui modifie la valeur du paralmetre,mais prce que la on opere avec des valeurs,comme ca:
    sin(5+2.2)+5=>sinA+5(pour la 1e iteration)=>B+5(iteration 2)=>C(pour la 3e iteration),les valeurs de A,B,C sont stockees dans une tableau
    mais comment tu me propose...
    je introduit par ex.sin(x/2)+5,on fait quoi d'abord?
    merci
    je suppose que tu sais comment faire pour la calculatrice, pour cette formule il faudra connaitre au prealable tes variables (X Y ...) ou demander a l'utilisateur de les fournir, puis a chaque evaluation de la fonction tu les change par le valeur demandé et tu renvoie ta chaine au calculatrice.

    voila une fonction qui s en chargera de changer les variables par les valeurs demander.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <string.h>
     
     
    void evaluer(char *formule, char variable,char valeur)
    {
        char *occ=NULL;
        occ=strchr(formule,variable);
        if(occ==NULL)
        {
            return 0;
        }
        occ[0]=valeur;
        evaluer(occ+1,variable,valeur);
        return 0;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Passer de l'intégration de x^2 à celle de n'importe quelle fonction
    Par Zapatista dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/10/2012, 10h07
  2. Réponses: 4
    Dernier message: 13/07/2010, 18h23
  3. Réponses: 6
    Dernier message: 26/11/2008, 21h59
  4. tracer n'importe quelle fonction
    Par judge06 dans le forum C
    Réponses: 3
    Dernier message: 26/03/2007, 09h49
  5. Réponses: 9
    Dernier message: 19/10/2006, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo