Dans le cadre de mes études ,je dois réaliser une calculatrice en langage C.
Je vous expose le sujet :
la calculatrice que je dois créer,doit pouvoir evaluer des expressions,declarer des fonctions ,affecter une valeur à un symbole
exemple de calcul:
eval + 1 2
doit renvoyer 1+2 -> 3
set x = 100
doit donner x = 100
set f(x) = - * 3 x y
doit donner f(x) = 3*x-y
eval f@1 + 1 x
doit donner f(x+1) = 293
@... désigne le nombre de parametres de la fonction
Les opérateurs sont:
+,-,/,*,~(moins unaire),@(plus unaire)
IL faut également pouvoir définir une fonction qui a des valeurs suivant un intervalle(cf le lien)
Je mets également le ligne sur des explications que le prof nous a donné :
http://www-igm.univ-mlv.fr/~bedon/Enseignement/superCalculette/img0.htm
Si quelqu'un pouvait m'aider,ce serait sympa.
Merci d'avance
Voici les structures que j'ai fait:
typedef double feuille;
typedef struct noeud2/*Pour les operateurs binaires*/
{
char operateur;
struct noeud2*fg;
struct noeud2*fd;
}Noeud2;
typedef struct noeud1/*Pour les operateurs unaires*/
{
char operateur;
struct noeud1*fils;
}Noeud1;
typedef struct noeud
{
int arite;
union{
Noeud2 n2;
Noeud1 n1;
feuille f;
}Type_noeud
}Noeud;
typedef Noeud*Arbre;
typedef struct
{
int type;/*0:variable,1:fonction*/
char*nom;
char*parametres[];/*dans le cas d'un symbole representant une fonction*/
int nb_parametres;
Arbre a;/*valeur du symbole*/
}SymbInfo;
typedef struct
{
int taille;/*nombres d'element constituant la table*/
SymbInfo tab[];
}TableSymboles;
Si quelqu'un a des ajouts ou des modifs à faire et peut m'aider à démarrer,ce serait sympa car j'ai du mal
Partager