Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : projet [ Archives / Java2D et java3D ] (med_mt)

vendredi 27 janvier 2006 à 15:25:56 | projet

med_mt

ecrire une application en java avec interface graphique ,permettant de traiter des fonction arithmetique d'une variable( par exemple f(x)= 2(3x^2+log x)ou bien f(x)=sin x -7)) aplication : de saisie via une zone texte la fonction de visialiser dans une zone graphique contenant un repére orthonormé ,le tracer sur un intervale choisie par l'utilisateur mercie de me répondre

samedi 28 janvier 2006 à 10:42:46 | Re : projet

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Et tu veux qu'on te fasse ton projet à ta place c'est cà ? Donc quand tu travaillera, à chaque programme qu'on te demandera, tu viendras nous voir pour qu'on fasse le boulot à ta place et ainsi gagner de l'argent sur notre dos ?

Notre but n'est pas de faire des programmes prêt à l'emploi pour ceux qui le demande, mais de répondre à des problèmes précis.

Donc essaye au moins d'avancer sur ton projet, et lorsque tu butte sur des problèmes, vient nous demander de l'aide.

_____________________________________________________________________


dimanche 29 janvier 2006 à 00:16:27 | Re : projet

med_mt

Bonsoir , Non, j’ai pas demandé de me faire mon travail, mais je veux un homme qui mon cadre pour commencer ce projet. C’est la premier projet que je le fais. Je suis un étudiant débutant. Je suis heureux de votre aide. Dans ce projet : J’ai commencé a tracer le repère et insérer des boutons des zones textes ??? Mon problème c’est comment calculer f(x) à partir de la zone texte. Je vais t’expliquer par exemple si la zone texte contient 2x^2*(los(x)-2x) comment je calcule f(1) puis f(2) et ainsi de suite. ?? Mon idée c’est de calculer tout les coordonnés des points de l’intervalle puis le tracer point à point en jouant sur le repère . Mercier de votre attention.

dimanche 29 janvier 2006 à 10:10:48 | Re : projet

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Oui, c'est le plus dur à faire je pense : l'interprêteur de fonction.

J'ai eu à faire un projet similaire cette année, et l'interprêteur nous étais donné par le prof car assez balaise à faire ! En plus de cà, il avait simplifier le problème en imposant une saisie non pas naturelle (3 + X) mais en mettant les opérateurs avant (du style : 3X * cos(X) donne : * ((* 3 X (cos X)))) comme le lisp en fait...

Le principe : utiliser la récursion pour récupèrer chaque opérations (avec des StringTokenizer) et construire des fonctions de base (multiplications, addition, etc.) pour calculer le tout.

Voici le contenu de la classe qui permettait d'interprêter les fonctions entrées (le code n'est pas de moi mais de mon prof donc) :

package functions;

import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;

import curves.SyntaxErrorException;


public class Functions {
    public static final Function SIN = new Function() {
        public double value(double x) {
            return Math.sin(x);
        }

    };

    public static final Function COS = new Function() {
        public double value(double x) {
            return Math.cos(x);
        }
    };

    public static final Function X = new Function() {
        public double value(double x) {
            return x;
        }
    };

    public static final Function compose(final Function f1, final Function f2) {
        return new Function() {
            public double value(double x) {
                return f1.value(f2.value(x));
            }
        };
    }

    public static final Function plus(final Function f1, final Function f2) {
        return new Function() {
            public double value(double x) {
                return f1.value(x) + f2.value(x);
            }
        };
    }

    public static final Function minus(final Function f1, final Function f2) {
        return new Function() {
            public double value(double x) {
                return f1.value(x) - f2.value(x);
            }
        };
    }

    public static final Function times(final Function f1, final Function f2) {
        return new Function() {
            public double value(double x) {
                return f1.value(x) * f2.value(x);
            }
        };
    }

    public static final Function over(final Function f1, final Function f2) {
        return new Function() {
            public double value(double x) {
                return f1.value(x) / f2.value(x);
            }
        };
    }

    public static final Function constant(final double c) {
        return new Function() {
            public double value(double x) {
                return c;
            }
        };
    }

    public static final Map<String, Operator> operators = new HashMap<String, Operator>();

    private static abstract class Operator {
        final String name;

        final int arity;

        public Operator(String name, int arity) {
            this.name = name;
            this.arity = arity;
        }

        public abstract Function eval(Function... args);
    }

    private static Operator[] entries = { new Operator("x", 0) {
        public Function eval(Function... functions) {
            return X;
        }
    }, new Operator("sin", 1) {
        public Function eval(Function... args) {
            return compose(SIN, args[0]);
        }
    }, new Operator("cos", 1) {
        public Function eval(Function... args) {
            return compose(COS, args[0]);
        }
    }, new Operator("+", 2) {
        public Function eval(Function... args) {
            return plus(args[0], args[1]);
        }
    }, new Operator("-", 2) {
        public Function eval(Function... args) {
            return minus(args[0], args[1]);
        }
    }, new Operator("*", 2) {
        public Function eval(Function... args) {
            return times(args[0], args[1]);
        }
    }, new Operator("/", 2) {
        public Function eval(Function... args) {
            return over(args[0], args[1]);
        }
    } };

    static {
        for (Operator e : entries) {
            operators.put(e.name, e);
        }
    }

    private static final Function parseFunction(StreamTokenizer st)
            throws SyntaxErrorException, IOException {
        switch (st.ttype) {
        case StreamTokenizer.TT_NUMBER:
            return constant(st.nval);
        case StreamTokenizer.TT_WORD:
            Operator op = operators.get(st.sval);
            if (op == null) {
                throw new SyntaxErrorException(st, "Unknown operator");
            }
            Function[] args = new Function[op.arity];
            for (int i = 0; i < op.arity; ++i) {
                st.nextToken();
                args[i] = parseFunction(st);
            }
            return op.eval(args);
        default:
            throw new SyntaxErrorException(st);
        }
    }

    public static final Function parse(String s) throws SyntaxErrorException,
            IOException {

        StreamTokenizer st = new StreamTokenizer(new StringReader(s));
        st.wordChars('!', '~');
        st.eolIsSignificant(false);
        st.nextToken();
        Function f = parseFunction(st);
        st.nextToken();
        if (st.ttype != StreamTokenizer.TT_EOF) {
            throw new SyntaxErrorException(st);
        }
        return f;
    }

}
_____________________________________________________________________


dimanche 29 janvier 2006 à 10:46:53 | Re : projet

kaloway

bonjour med_mt, j'ai toujours révé de faire un interpréteur de fonction.
Sur ce site tu peux trouver un code qui montre graphiquement la décompisition d'une fonction par arbre binaire.


Remarque:
pour ceux qui vienne chercher de l'aide sur ce site, si vous précisez vos questions dans votre premier post cela fera gagner du temps à tout le monde et évitera de vous faire passé pour un gros glandeur.

dimanche 29 janvier 2006 à 11:25:53 | Re : projet

Dobel

Il existe des parsers pour expressions mathématiques libres en Java
https://sourceforge.net/projects/jep/ par exemple. Ça peut faire gagner un peu de temps :)

Dobel
[Une fois rien, c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour trois fois rien, on peut déjà s'acheter quelque chose, et pour pas cher]

mardi 31 janvier 2006 à 21:27:20 | Re : projet

med_mt

D’abord mercier de votre aide, Ça fait deux jours que j’essaie à comprendre le code que tu as ma donnée mais je n’ai pas trot compris. Même aussi le principe le principe de récursivité et la transformation de {3X * cos(X) en : * ((* 3 X (cos X)))) } C’est vrai, c’est la partie la plue dure du projet. S.V.P Vous pouvez m’expliqué se principe in ci une explication brève sur le code de votre prof Mercie



Cette discussion est classé dans : fonction, projet, graphique, zone


Répondre à ce message

Sujets en rapport avec ce message

classe graphique [ par carhartt62 ] Bonjour, Etant novice en java, je vous demande de l'aide :Mon projet de fin d'année est bassé sur une applet java qui doit envoyer et revevoir des inf zone interactive sur un graphique [ par bat99 ] je dois recree un graphique sur lequel figure plusieur zone interactive quel serait le meilleur solution pour realiser cela? Mise à jour d'une piece graphique sur un damier [ par NeT0n ] Bonjour,J'ai un problème que je n'arrive pas à résoudre et qui commence à m'énerver.J'explique :Je suis entrain de programmer avec un collegue un jeux Fonction de reconnaissance de caractère dans une image [ par XBOX116_4ever ] Je suis débutant en java et je suis en train de développez une petite application qui télécharge une image se trouvant sur un serveur. Ensuite, je vou Focus [ par refre ] Bonjour à tous... J'ai un probleme de focus avec une application... j'ai une zone graphique et j'aimerai qu'elle prenne le focus... mais dans la fenet Graphique [ par knd ] j aimerais savoir comment construire un graphique en java ==> est ce methode "bourrin" avec l utilisation d un canvas et de la classe graphique ou bie interface graphique avec swing [ par stickasia ] bonjour j'essai de faire déplacer un carre de gauche a droite avec un timer et avec swing pouvez vous maider SVP scintillement image de fond [ par Juls ] BonjourJe rencontre un problème de scintillement d'une image de fond (image.jpeg) . Le prog redessine un objet mobile (voiture simulée par un cercle ) Recherche fonction dans l'API DOM de Java [ par minime ] Salut, voila mon problème, en Java pour insèrer un élément de type String dans un document DOM, il y a la fonction 'createTextNode(String)'. Mais si o PROG-Zone, la programmation sous tous les langages [ par sebrs1 ] Salut à tous les développeurs, je viens de mettre en ligne mon tout nouveaux site qui servira à tout le monde quelque soit le langage dans lequel vous


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.