Discussion:Textiles
je avoir un programme en langage c pour l'evaluation des expression arithmetique et logique
- Vous voulez diffuser un tel programme ou vous rechercher un programme qui permet d'évaluer des expressions arithmétiques ? Pouvez vous donner un exemple d'expression. Merci Merrheim 7 février 2006 à 18:29 (UTC)
- Sur l'évaluation des expressions arithmétiques (je ne sais pas si c'est cela que vous recherchez), j'ai ce programme en réserve :
#include <stdio.h> #include<stdlib.h> int getInt(char **s,int *val) { int signe=1; while(**s =='+' || **s=='-'){if(**s=='-')signe=-signe;*s=*s+1;} *val=0; while(**s<='9' && **s>='0'){*val=*val*10+signe*(**s-'0');*s=*s+1;} if(*val==0)return -1; else return 0; } int eval(char **s,int *val,int level) { int val2,e; if(level==0) { if(**s!='(') return getInt(s,val); else { *s=*s+1; if(eval(s,val,2)!=0)return -1; if(**s==')'){*s=*s+1;return 0;} else return -1; } } else if(level==1) { if(eval(s,val,0)!=0)return -1; if(**s=='*'){*s=*s+1;e=eval(s,&val2,1);*val=*val*val2;return e;} return 0; } else if(level==2) { if(eval(s,val,1)!=0)return -1; if(**s=='+'){*s=*s+1;e=eval(s,&val2,2);*val=*val+val2;return e;} else if(**s=='-'){*s=*s+1;e=eval(s,&val2,2);*val=*val-val2;return e;} return 0; } } int evaluate(char **s,int *val) { int e= eval(s,val,2); if(e==-1 ||**s!='\0')return -1; else return 0; } int main(int argc, char *argv[]) { char c[1000]; int e,v; char *p; p=c; printf( "Tapez une expression : "); scanf("%s",c); e=evaluate(&p,&v); if(e==0)printf ("L'expression vaut %i\n",v); else printf("erreur\n"); system("PAUSE"); return 0; }
Démarrer une discussion sur Textiles
Les pages de discussion sont l’endroit où diverses personnes peuvent discuter de la manière d’améliorer le contenu de Wikilivres. Vous pouvez utiliser cette page pour démarrer une discussion avec les autres utilisateurs sur la façon d’améliorer la page « Textiles ».