Calculatrice(langage C)
Christophe -
svp aidez moi a faire ce programme
Ecrire un programme qui fait le travail d'une calcutrice
avec les fonctions et les pointeurs
et merci d'avance
Configuration: Windows XP Internet Explorer 7.0
12 réponses
Plusieurs échanges portent sur la réalisation d'une calculatrice en C utilisant les pointeurs et les fonctions, capable d'opérer sur plusieurs opérandes et de respecter la priorité des opérateurs. Des propositions émergent: définir des fonctions simples pour additionner, soustraire, multiplier et diviser, puis les appeler dans un switch, ou stocker les valeurs dans des tableaux et envisager des piles. Certaines contributions évoquent des limites liées à l'usage des pointeurs et à la gestion d'erreurs, notamment la division par zéro et les expressions mal formées, qui compliquent l'implémentation. En dernier lieu, certains évoquent l'extension vers des expressions plus complexes, par exemple l'usage d'un tableau pour stocker les opérandes et de la priorité via une structure pile, sans conclure.
-
voila ce que j'ai fait dans le programme de la calculatrice
#include<stdio.h>
#include<conio.h>
main()
{
clrscr();
char op;
int a,b;
printf("Donner l'opérande a:");
scanf("%d",&a);
printf("Donner l'opérateur (+,-,*,/,%)");
scanf("%c",&op);
printf("Donner l'opérande b:");
scanf("%d",&b);
switch(op)
{
case'+':printf("%d+%d=%d",a,b,a+b);break;
case'-':printf("%d-%d=%d",a,b,a-b);break;
case'*':printf("%d*%d=%d",a,b,a*b);break;
case'/':if(b)
printf("%d/%d=%d",a,b,a/b);break;
else
printf("Impossible division par 0");break;
case'%':if(b)
printf("%d%%%d=%d",a,b,a%b);break;
else
printf("Erreur division par 0");break;
dfault:printf("Opérateur non accepté");
}
getch();
}
voila ce que j'ai fait
mais le problème c'est je dois faire la fonction qui fait ce travail pr plus de 2 nombres et la je trouve des difficultés-
De quelle forme doit être l'entrée du programme ? Par exemple, est-ce que tu veux faire quelque chose comme :
"Saisissez le nombre d'opérateurs : "
"Saisissez l'opérateur 1 : "
...
"Saisissez l'opérande 1 : "
...
ou plutôt :
"Saisissez le calcul à effectuer : " // ex : 7 + 45 * 5
Est-ce que tu dois gérer la priorité des opérateurs ?
Le programme risque d'être assez compliqué... -
-