projet ISN
image de code HTML

Introduction


Bienvenu sur mon site internet !


Je m'appelle Romain MARTIN, je suis en terminale S en spécialité Math et ISN. Dans le cadre de ma spé ISN, je dois réaliser un projet informatique. Par exemple, un site internet, un programme ou un jeu vidéo. J'ai choisi d'améliorer un ancien programe, FGraph, que j'ai réalisé en 2015 et qui permet d'afficher des fonctions. Dans sa version actuelle, FGraph est limité aux polynomes du second degré (même s'il est possible de combiner des fonctions entre elles) et est limité à 10 polynomes.

J'ai décidé de réaliser une nouvelle version de ce FGraph qui pourra afficher n'importe quelles fonctions sans limites de nombre.

Photo de mon logiciel FGraph

Présentation du projet


afficher n'importe quelles fonctions

Le but est de pouvoir afficher n'importe quels types de fonction. Or, il n'existe pas de fonction prédéfinie en java pour traiter les fonctions mathématiques ni dans aucun autre language de programmation. La fonction mathématique doit être entrée par l'utilisateur sous une forme textuelle, dans une variable de type String. Le programme doit alors identifier dans la String, les différents composants de la fonction mathématique en cherchant par exemple, les opérateurs et les opérandes. Une des difficultés de cette analyse est de gérer les priorités entre les opérateurs (+ et *) en présence des parenthèses. Une solution consiste à convertir l'expression en notation polonaise inverse à l'aide de l'algorithme de l'université de shunting yard.

exemple : (5+3)*2 --> 5e3+2*

étapes de calcul :

  1. convertir l'expression en notation polonaise inverse
  2. remplacer la variable x par un nombre
  3. calculer l'expression et enregistrer le résultat dans un tableau
  4. recommencer à 2 après avoir incrémenté x d'une certaine valeur qui sera définit par l'utilisateur.

afficher un nombre infinie de fonctions

Pour afficher un nombre infini de fonctions, j'envisage de créer un objet "fonction" qui aura, entre autre, 2 String stockant l'expression normale et la notation inverse. Une tableau sera utilisé pour ranger les différentes fonctions mathématiques. Une variable int servira à identifier les fonctions et sera incrémentée de 1 à chaque nouvelle fonction. Lors du calcul, les valeurs en x et y sont stockées dans deux tableau x[] et y[]