Posez votre question Signaler

Calculatrice

doudalopez 19Messages postés 17 mai 2008Date d'inscription - Dernière réponse le 24 mai 2008 à 20:35
Bonjour,
qui peut me faire un programme en C qui permet de lire une expression mathematique simple et la calculer
Lire la suite 

Calculatrice »

22 réponses
Réponse
+0
moins plus
t'as essayé de faire quoi pour l'instant ?
Ajouter un commentaire
Réponse
+0
moins plus
#include <stdio.h>
#include<stdlib.h>
#include <windows.h>
#include <conio.h>
int wait4key(void);
float N1,N2;
float resultat
printf("la somme de %f et de %f donne %f",N1, N2)



et la suis bloqué
ibtor - 20 mai 2008 à 22:06
float resultat ;
resultat = N1 + N2

printf("la somme de %f et de %f donne %f",N1, N2,resultat)
Ajouter un commentaire
Réponse
+0
moins plus
je ne comprend pas ce que vous m'avez envoyé
Ajouter un commentaire
Réponse
+0
moins plus
rajoute cequ'il y'a en gras dans ton code

ça fait une addition de N1 + N2
Ajouter un commentaire
Réponse
+0
moins plus
ca ne me permet pas de lire une expression mathematique
Ajouter un commentaire
Réponse
+0
moins plus
t'as 2 choix :

1/facile

tu poses 3 questions :
-premier nombre ?
-opération (+,-,*,/,^,%) ?
- deuxième nombre ?
et suivant les réponses, tu calcules ton truc

2/plus difficile
-l'utilisateur tape sa formule (par ex 2+2)
et là tu vérifie pour chaque caractères s'il s'agit d'un nombre, d'une lettre qui n'a rien à faire là, d'un espace,d'un opérateur, etc... et tu fais ton ptit bazar après
Ajouter un commentaire
Réponse
+0
moins plus
#include <stdio.h>
#include<stdlib.h>
#include <windows.h>
#include <conio.h>
int wait4key(void);
float N1,N2;
float resultat
char op=+
printf("tapez le premier nombre\n");
scanf(" %f", &N1");
printf("tapez le second nombre\n");
scanf(" %f, &N2");
float resultat=N1+N2
printf("la somme de%f et de %f donne %f",resultat);

ca ne marche pas
Ajouter un commentaire
Réponse
+0
moins plus
met

float resultat=N1+N2;

à l'avant dernière ligne
Ajouter un commentaire
Réponse
+0
moins plus
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

char *nb1;
char *nb2;
double double1,double2;
char *op;

printf("Nombre1 : ");
scanf("%s", nb1);
printf("Opérateur : ");
scanf("%s", op);
printf("Nombre1 : ");
scanf("%s", nb1);

double1 = atof(nb1);
double2 = atof(nb2);

if (!strcasecmp(op, "+")){
printf("%e\n", double1 + double2);
}else if (!strcasecmp(op, "-")){
printf("%e\n", double1 - double2);
}else if (!strcasecmp(op, "%")){
printf("%e\n", fmod(double1,double2));
}else if (!strcasecmp(op, "*")){
printf("%e\n", double1 * double2);
}else if (!strcasecmp(op, "/")){
if (double2 != 0){
printf("%e\n", double1 + double2);
}else{
printf("Division par zero\n");
}
}

Ne pas oublier de faire l'édition des liens avec -lm
Ajouter un commentaire
Réponse
+0
moins plus
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
int wait4key(void);

void demo_ASCII_extended();

void demo_couleurs(void);
HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
WORD wOldColorAttrs;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
GetConsoleScreenBufferInfo(h, &csbiInfo);
wOldColorAttrs = csbiInfo.wAttributes;
int main(int argc, char* argv[])
{

float N1,N2;
float resultat;
int op;
float a, b, res;
printf("tape un nombre\n");
scanf(" %f",&a);
printf("tape un nombre\n");
scanf(" %f",&b);
printf("tape 1\t pour + \n tape 2 \t pour - \n tape 3 \t pour * \n tape 4 pour /\n");
scanf(" %d",&op);
if(op==1)
{
res=a+b;
}
else
if(op==2)
{
res=a-b;
}

else
if(op==3)
{
res=a*b;
}

else
{
res=(float)a/(float)b;
}
printf("le resultat est %f\n",res);


printf("\t*---* *---* *---*\n");
printf("\t| 9 | | 8 | | 7 |\n");
printf("\t*---* *---* *---*\n");
printf("\t*---* *---* *---*\n");
printf("\t| / | | * | | 6 |\n");
printf("\t*---* *---* *---*\n");
printf("\t*---* *---* *---*\n");
printf("\t| 5 | | 4 | | - |\n");
printf("\t*---* *---* *---*\n");
printf("\t*---* *---* *---*\n");
printf("\t| 3 | | 2 | | + |\n");
printf("\t*---* *---* *---*\n");
printf("\t*---* *---* *---*\n");
printf("\t| 1 | | 0 | | |\n");
printf("\t*---* *---* *---*\n");


system("pause");
return 0;
}
je dois creer un outil qui permet de faire des calculs simples:
-implémenter les operations arithmetiques courantes
-implémenter une interface graphique faciles à utiliser
-et en fin lire une expression mathematique et la calculer
Ajouter un commentaire
Réponse
+0
moins plus
le programme que vous avez fait a plein d'erreurs est ce que vous pouvez les corrigé car j'ai essayé mais ca ne marche pas
Ajouter un commentaire
Réponse
+0
moins plus
vous pouvez m'aider a corriger mes erreurs
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>



float calcul(float operateur1, float operateur2, float operande);


void demo_couleurs(void)
{

HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
WORD wOldColorAttrs;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
GetConsoleScreenBufferInfo(h, &csbiInfo);
wOldColorAttrs = csbiInfo.wAttributes;
SetConsoleTextAttribute ( h, FOREGROUND_BLUE ); // on ecrit en bleu

}

//int main(int argc, char* argv[])




int main(int argc, char* argv[])
{


float resultat,resultat_temp,resultat_temp1,resultat_temp2,resultat_temp3;
float a,b,c,d,e;

char op1,op2,op3,op4;







demo_couleurs();




if(argc > 9){
printf("Nombre d'arguments doit etre inferieur à 9\n");

}
if(argc == 3) //deux operandes
{
scanf("%f%c%f",&a, &op1, &b);
printf("%f %c %f\n", a, op1, b);
// resultat = calcul(a, b, op1);
}
if(argc == 5) //trois operandes
{
if(op1 == '*' || op1 == '/'){
scanf("%f%c%f%c%f",&a, &op1, &b);
printf("%f %c %f %c %f\n", a, op1, b,op2,c);
resultat_temp= calcul(a, b, op1);
resultat = calcul(resultat_temp, c, op2);

}else{
if(op2 == '*' || op2 == '/'){
resultat_temp = calcul(b, c, op2);
resultat = calcul(a, resultat_temp, op2);
}else {
resultat_temp = calcul(a, b, op1);
resultat = calcul(resultat_temp, c, op2);

}

}

}

if(argc == 7) //quatre operandes
{
if(op1 == '*' || op1 == '/')
{
scanf("%f%c%f%c%f%c%f",&a, &op1, &b,op2,c,op3,d);
printf("%f %c %f %c %f %c %f\n", a, op1,b,op2,c,op3,d);
resultat_temp1 = calcul(a, b, op1);
resultat_temp2 = calcul(resultat_temp1, c, op2);
resultat_temp = calcul(resultat_temp2, d, op3);



}else{
if(op2 == '*' || op2 == '/')
{
resultat_temp1 = calcul(b, c, op2);
resultat_temp2 = calcul(a,resultat_temp1,op2);
resultat_temp = calcul(resultat_temp2,d, op3);
}else

{
resultat_temp1 = calcul(c,d, op3);
resultat_temp2 = calcul(b,resultat_temp1,op2);
resultat_temp = calcul(a,resultat_temp2,op3);

}
}

}

if(argc == 9) //cinq operandes
{

if(op1 == '*' || op1 == '/')
{
scanf("%f%c%f%c%f%c%f%c%f",&a, &op1, &b,op2,c,op3,d,op4,e);
printf("%f %c %f %c %f %c %f %c %f\n", a, op1,b,op2,c,op3,d,op4,e);
resultat_temp1 = calcul(a, b, op1);
resultat_temp2 = calcul(resultat_temp1, c, op2);
resultat_temp3 = calcul(resultat_temp2, d, op3);
resultat_temp = calcul(resultat_temp3, e, op4);

}else
{
if(op2 == '*' || op2 == '/')
{
resultat_temp1 = calcul(b, c, op2);
resultat_temp2 = calcul(a,resultat_temp1, op1);
resultat_temp3 = calcul(resultat_temp2,d, op3);
resultat_temp = calcul(resultat_temp3,e, op4);

}
else

{
resultat_temp1 = calcul(c,d, op3);
resultat_temp2 = calcul(b,resultat_temp1,op2);
resultat_temp3 = calcul(a,resultat_temp2,op3);
resultat_temp = calcul(resultat_temp3,e,op4);
}
}else

{
resultat_temp1 = calcul(d,e,op4);
resultat_temp2 = calcul(c,resultat_temp1,op3);
resultat_temp3 = calcul(b,resultat_temp2,op2);
resultat_temp = calcul(a,resultat_temp3,op1);

}else // nombre d'operandes invalides

{

printf("Nombre d'operandes invalides");
}

}
}


float calcul(float operateur1, float operateur2, float operande)
{

//void calcul(operateur1, operateur2, operande){
if(op == '+'){
retour = operateur1 + operateur2
}
if(op == '-'){
retour = operateur1 - operateur2
}
if(op== '/'){
retour = operateur1 / operateur2
}
if(op == '*'){
retour = operateur1 * operateur2
}

return retour;
}
Ajouter un commentaire
Réponse
+0
moins plus
bonjour
vous pouvez m'aider a corriger mes erreurs
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>



float calcul(float operateur1, float operateur2, float operande);


void demo_couleurs(void)
{

HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
WORD wOldColorAttrs;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
GetConsoleScreenBufferInfo(h, &csbiInfo);
wOldColorAttrs = csbiInfo.wAttributes;
SetConsoleTextAttribute ( h, FOREGROUND_BLUE ); // on ecrit en bleu

}

//int main(int argc, char* argv[])




int main(int argc, char* argv[])
{


float resultat,resultat_temp,resultat_temp1,resultat_temp2,resultat_temp3;
float a,b,c,d,e;

char op1,op2,op3,op4;







demo_couleurs();



if(argc > 9){
printf("Nombre d'arguments doit etre inferieur à 9\n");

}
if(argc == 3) //deux operandes
{
scanf("%f%c%f",&a, &op1, &b);
printf("%f %c %f\n", a, op1, b);
// resultat = calcul(a, b, op1);
}
if(argc == 5) //trois operandes
{
if(op1 == '*' || op1 == '/'){
scanf("%f%c%f%c%f",&a, &op1, &b);
printf("%f %c %f %c %f\n", a, op1, b,op2,c);
resultat_temp= calcul(a, b, op1);
resultat = calcul(resultat_temp, c, op2);

}else{
if(op2 == '*' || op2 == '/'){
resultat_temp = calcul(b, c, op2);
resultat = calcul(a, resultat_temp, op2);
}else {
resultat_temp = calcul(a, b, op1);
resultat = calcul(resultat_temp, c, op2);

}

}

}

if(argc == 7) //quatre operandes
{
if(op1 == '*' || op1 == '/')
{
scanf("%f%c%f%c%f%c%f",&a, &op1, &b,op2,c,op3,d);
printf("%f %c %f %c %f %c %f\n", a, op1,b,op2,c,op3,d);
resultat_temp1 = calcul(a, b, op1);
resultat_temp2 = calcul(resultat_temp1, c, op2);
resultat_temp = calcul(resultat_temp2, d, op3);



}else{
if(op2 == '*' || op2 == '/')
{
resultat_temp1 = calcul(b, c, op2);
resultat_temp2 = calcul(a,resultat_temp1,op2);
resultat_temp = calcul(resultat_temp2,d, op3);
}else

{
resultat_temp1 = calcul(c,d, op3);
resultat_temp2 = calcul(b,resultat_temp1,op2);
resultat_temp = calcul(a,resultat_temp2,op3);

}
}

}

if(argc == 9) //cinq operandes
{

if(op1 == '*' || op1 == '/')
{
scanf("%f%c%f%c%f%c%f%c%f",&a, &op1, &b,op2,c,op3,d,op4,e);
printf("%f %c %f %c %f %c %f %c %f\n", a, op1,b,op2,c,op3,d,op4,e);
resultat_temp1 = calcul(a, b, op1);
resultat_temp2 = calcul(resultat_temp1, c, op2);
resultat_temp3 = calcul(resultat_temp2, d, op3);
resultat_temp = calcul(resultat_temp3, e, op4);

}else
{
if(op2 == '*' || op2 == '/')
{
resultat_temp1 = calcul(b, c, op2);
resultat_temp2 = calcul(a,resultat_temp1, op1);
resultat_temp3 = calcul(resultat_temp2,d, op3);
resultat_temp = calcul(resultat_temp3,e, op4);

}
else

{
resultat_temp1 = calcul(c,d, op3);
resultat_temp2 = calcul(b,resultat_temp1,op2);
resultat_temp3 = calcul(a,resultat_temp2,op3);
resultat_temp = calcul(resultat_temp3,e,op4);
}
}else

{
resultat_temp1 = calcul(d,e,op4);
resultat_temp2 = calcul(c,resultat_temp1,op3);
resultat_temp3 = calcul(b,resultat_temp2,op2);
resultat_temp = calcul(a,resultat_temp3,op1);

}else // nombre d'operandes invalides

{

printf("Nombre d'operandes invalides");
}

}
}


float calcul(float operateur1, float operateur2, float operande)
{

//void calcul(operateur1, operateur2, operande){
if(op == '+'){
retour = operateur1 + operateur2
}
if(op == '-'){
retour = operateur1 - operateur2
}
if(op== '/'){
retour = operateur1 / operateur2
}
if(op == '*'){
retour = operateur1 * operateur2
}

return retour;
}
Ajouter un commentaire
Réponse
+0
moins plus
c'est quoi les messages erreurs ?
Ajouter un commentaire
Réponse
+0
moins plus
y'a des erreurs sur mon code que j'arrive pas corriger
ibtor - 23 mai 2008 à 22:56
1/si y'a des erreurs à la compil, publie les
2/qu'est ce qui marche pas PRECISEMMENT ?
Ajouter un commentaire
Réponse
+0
moins plus
je l'ai fait c'est le derneir code que j'ai envoyé
ibtor - 23 mai 2008 à 22:59
bon je vais essayer de faire le plus simple possible :

QUAND TU LANCES LE PROGRAMME, QU'EST CE QUI MARCHE PAS ???
Ajouter un commentaire
Réponse
+0
moins plus
a chaque fois que je compile ca me fait appui sur une touche pour continuer
Ajouter un commentaire
Réponse
+0
moins plus
dans ton main, tu n'as pas de printf ni de scanf indiquant (saisir le calcul...)

à placer juste avant ton premier if
Ajouter un commentaire
Réponse
+0
moins plus
salut
je fais ce que vous m'avez dit mais ca ne marche pas
Ajouter un commentaire
Ce document intitulé « calculatrice » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook