Nina |
Le 16/05/2008 à 11:43  |
|
bonjour a tous !!!!! voila je suis nouvelle et j'ai vraiment besoin d'aide avant ce soir c'est tres tres tres tres urgent! je voudrai que quelqu'un me traduit ce programme du c en pascal (je suis encore' debutante donc je connais pas trop le langage c) ce programme traduit une expression arithmétique en 1 expression post-fixée
#define operande 1 #define operateur 0 typedef struct {int type; union {float op_r;char op_c;}val; }composante; void saisie(void) Données et Algorithmique − P.TRAU 7.3 utilisations 32 /* marche pour toute notation puisque ne vérifie rien */ { composante x; char txt[100],*deb; char rep; init_pile(); printf("entrez opérandes (nombres) et opérateurs (+,−,*,/,C (cos),S)\n"); printf("séparés par des blancs ou virgules\n"); fflush(stdin); gets(txt); /* on lit un texte qui sera traité par après */ deb=txt; /* deb pointe le début du texte non encore traité */ do { while(*deb==' '||*deb==',') deb++; if(*deb==0)break; if(isdigit(*deb)||*deb=='.'||(*deb=='−'&&isdigit(*(deb+1)))) { x.type=operande; sscanf(deb,"%f",&(x.val.op_r)); empiler(&x); while(isdigit(*deb)||*deb=='.') deb++; /*pointer la suite*/ } else /*cas d'un opérateur */ { x.val.op_c=toupper(*(deb++)); x.type=operateur; empiler(&x); } } while(1); } float eval_post(void) { float r1,r2; composante x; if(depiler(&x)!=0) {puts("expression non postfixée");return(0);} if(x.type==operande) return(x.val.op_r); /* else inutile car les autres cas se finissent par return */ /* on traite d'abord les opérateurs unaires */ if (x.val.op_c=='C') return(cos(eval_post())); if (x.val.op_c=='S') return(sin(eval_post())); /* les deuxaires maintenant */ r2=eval_post(); r1=eval_post(); switch (x.val.op_c) { case '+':return(r1+r2); case '−':return(r1−r2); case '*':return(r1*r2); case '/':return(r1/r2); } puts("erreur (code opératoire inconnu par exemple)"); return(0); } void main(void) { saisie(); printf("l'expression postfixée vaut %6.1f\n",eval_post()); }
merci d'avance |
Anthony |
Le 16/05/2008 à 15:36  |
Fou du volant |
Salut :)
Si t'as de l'argent je pense que quelqu'un pourra te le faire ;) |
Nina |
Le 16/05/2008 à 15:42  |
|
sérieux? tu plaisantes j'espere |
Marculinos |
Le 16/05/2008 à 16:31  |
Viconaute Modérateur |
Bienvenue au pays des Bisounours...  -- The Matrix has you... Vous êtes ici ^ |
Anthony |
Le 16/05/2008 à 16:33  |
Fou du volant |
Nina a écrit :sérieux? tu plaisantes j'espere Oui je plaisante, je pense que même contre de l'argent personne ne voudrait le faire  Tu croyais vraiment que quelqu'un allait te faire tes devoirs comme ça tout cuit ? sur n'importe quel forum, les gens n'aiment pas trop ce genre de demandes  . C'est un peu comme si je te disais "je voudrais que tu me nettoies ma voiture avant ce soir c'est super urgent je vais au bal", tu vois le truc ? |
Nina |
Le 16/05/2008 à 16:51  |
|
bon ok tant pis dsl j'ai tapé sur la mauvaise porte |
Marculinos |
Le 16/05/2008 à 23:01  |
Viconaute Modérateur |
Serieux, Antho, tu vas au bal? tu vas sortir?  Bon ok, moi, par contre,  Du coup,  -- The Matrix has you... Vous êtes ici ^ |