Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Programmation > C > Création d'une calculatrice simple ( en console ) > Lecture du tutoriel

Création d'une calculatrice simple ( en console )

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : seebb
Note : 12 / 20 (12 votes)
Visualisations : 4 940

Plus d'informations Plus d'informations
Que va-t-on faire ici ? ( question bête mais à se poser ;) )


Dans ce mini tuto je vais vous apprendre à coder une calculatrice assez simple et qui marche en console. Ce que j'entends par "assez simple" c'est qu'elle effectue les 4 opérations de base ( pour ceux qui ne les connaissent pas, mais à ce moment c'est grave ^^ , l'addition, la soustraction, la multiplication et la division).

pour cela il faut au moins être arrivé à la fin de la partie I du cours de M@téo21

Vous allez donc effectuer avec ce mini tuto une révision de la grand partie des choses que vous avez apprises dans la partie I du cours.
Sommaire du tutoriel :
Icône du chapitre

Première approche du sujet

Comment va-t-on s'y prendre pour réaliser ce projet ?


Ce tutoriel étant fait pour des personnes arrivées à la fin de la partie 1 du cours de M@téo nous utiliserons ici le langage C. Mais rassurez-vous il n'y aura rien de bien compliqué. Personnellement j'utilise comme IDE Dev-C++, le programme que je vous donnerai sera donc adapté pour cet IDE.

Bon quand il faut y aller, il faut y aller ! alors commençons !

Tout d'abord il faut créer un nouveau projet ( Cela normalement vous savez le faire, je ne vous le rappelle donc pas ). Vous vous retrouvez donc avec le programme le plus basique possible. ( Je sais même pas si on peut appeler ça un programme. :p )

Code : C
1
2
3
4
5
6
7
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
  
}


Nous allons pouvoir commencer à écrire notre programme.

Pour mettre en place l'ensemble des "modules" qui composeront notre programme il faut essayer de se faire une idée du programme final.


Ici la calculatrice est un programme qui permet de calculer ( logique vous allez me dire :-° ), mais ce n'est pas ici que se trouve la subtilité. Après avoir effectué notre calcul il ne faut pas que notre programme se ferme tout de suite ( et oui des personnes ont parfois besoin de faire plus d'un calcul :p ).
Pour éviter cela, nous allons donc mettre en place une boucle qui s'exécutera tant que l'on ne lui dira pas de s'arrêter.
Il faut donc initialiser la boucle:

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int continuer = 1;
    
    while (continuer)//initialisation de la boucle
    {
    }
}


Si vous observez bien mon code ( enfin il y a pas encore grand chose à observer :-° ) vous pouvez vous apercevoir que j'ai déclaré une variable.

Code : C
1
int continuer = 1;

En effet cette variable nous permet de mettre en pause le programme en attendant que la boucle renvoie une valeur fausse de cette variable et par la même occasion que cela brise la boucle.
J'utilise ici une variable de type int car les valeurs attribuées à "continuer" seront soit 1 soit 0.

Remplir la boucle

Nous allons maintenant remplir la boucle. Pour que la calculatrice soit un peu sympathique nous allons ajouter une sorte d'interface. En fait cette interface est un menu qui reviendra à chaque fin de calcul ( Et voilà c'est ici que l'on voit l'intérêt de la boucle :p ).
Nous allons commencer la boucle en déclarant une variable où l'on stockera l'opération choisie :

Code : C
1
int operation;

Après cette variable nous créons un menu. Le menu doit contenir au minimum le nom de chaque opération que l'on effectuera par la suite.

Code : C
1
2
3
4
5
6
7
8
9
printf("   !====================!\n");
printf("   !   Vos Operations   !\n");
printf("   !====================!\n\n");
printf("        1. Addition\n");
printf("        2. Soustraction\n");
printf("        3. Multiplication\n");
printf("        4. Division\n\n");
printf("        5. Quitter le programme\n\n");
printf("    Votre operation ?\n");


Vous remarquerez que je n'ai pas mis seulement les opérations. J'ai aussi intégré un titre :

Code : C
1
2
3
printf("   !====================!\n");
printf("   !   Vos Operations   !\n");
printf("   !====================!\n\n");

ainsi qu'un moyen de quitter le programme ( mais cela nous l'étudierons dans la prochaine partie :p ) et une question pour que l'on puisse recueillir la demande de l?utilisateur:

Code : C
1
2
printf("        5. Quitter le programme\n\n");
printf("    Votre operation ?\n");


Maintenant que nous avons fait apparaître le menu il nous faut recueillir les informations que va nous donner l'utilisateur de la calculatrice. C'est à dire l'opération que veut exécuter cet utilisateur. Pour cela nous allons utiliser:

Code : C
1
scanf("%d", &operation);

Ici nous recevons un chiffre que nous mettons dans la variable "operation".
Nous allons maintenant déclarer les variables où l'on stockera les nombres à calculer. Nous utiliserons ici des variables double pour pouvoir calculer des nombres à virgule ainsi que le résultat obtenu.

Code : C
1
2
3
4
double nombre1, nombre2;
  nombre1 = 0.0;
  nombre2 = 0.0;
double resultat = 0.0;


Le plus facile pour gérer les actions d'un menu est le switch. C'est d'ailleurs ce que nous allons utiliser ici.

Code : C
1
2
3
4
switch (operation)
{
 
}


Mise en place des calculs

Voilà, maintenant que nous avons mis en place le switch nous allons pouvoir le remplir avec les fonctions de calcul. Notre swich sera composé de 5 cas (logique vous allez me dire :p une pour chaque choix du menu ).
Nous allons donc remplir la case 1 avec le calcul de l'addition. Il faut tout d'abord commencer par recueillir les variables "nombre1" et "nombre2":

Code : C
1
2
3
4
5
6
7
8
case 1:
              
              printf("Entrez le nombre 1 : ");
              scanf("%f", &nombre1);
              printf("\n");
              printf("Entrez le nombre 2 : ");
              scanf("%f", &nombre2);
              printf("\n");

Après avoir reçu une réponse pour ces deux valeurs nous allons passer au calcul proprement dit.

Premièrement l'addition...



Code : C
1
2
resultat = nombre1 + nombre2;
printf ("%f + %f = %f\n\n\n", nombre1, nombre2, resultat);

Nous avons donc fait le calcul et recueilli le résultat que l'on affiche en reprenant le calcul.

Il ne faut pas oublier d'utiliser "break;" pour finir la case et pouvoir continuer. N'oubliez pas non plus de recréer une case pour chaque opération.

Ensuite la soustraction...



Code : C
1
2
3
resultat = nombre1 - nombre2;
printf ("%f - %f = %f\n\n\n", nombre1, nombre2, resultat);
break;

Puis la multiplication...



Code : C
1
2
3
resultat = nombre1 * nombre2;
printf ("%f * %f = %f\n\n\n", nombre1, nombre2, resultat);
break;

Et enfin la division...



Code : C
1
2
3
resultat = nombre1 / nombre2;
printf ("%f / %f = %f\n\n\n", nombre1, nombre2, resultat);
break;



Ce n'est pas parce que nous avons rentré tous les calculs que nous avons fini. Il faut remplir la case 5. Cette case est faite pour les personnes souhaitant quitter le programme. Il faut donc rompre la boucle et fermer le programme. Pour cela nous remplirons la case par:

Code : C
1
2
continuer = 0;// permet quitter notre boucle
break;


Bien, maintenant que nous avons rempli toutes nos cases il ne faut pas oublier qu'il existe des petits malins qui s'amusent à rentrer d'autres choses que ce que vous leur proposez.


Et c'est une des raisons qui expliquent l'existence du default:. Le default: englobe toutes les valeurs qui ne sont pas comprises par les cases précédentes. Nous pouvons donc écrire un petit message disant que nous ne pouvons pas effectuer le programme.

Code : C
1
2
3
default:
                 printf("Vous n'avez pas rentre un nombre correct. Aucune operation ne sera effectuee!\n"); // tout est sur la même ligne
                 break;


Solution du TP

Voilà nous avons enfin fini la calculatrice. Je vous donne quand même le code entier pour que vous puissiez corriger vos erreurs ( enfin si vous en avez ). ;)

Code : C
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int continuer = 1;
    
    while (continuer)//initialisation de la boucle
    {
  int operation;
  
  printf("   !====================!\n");
  printf("   !   Vos Operations   !\n");
  printf("   !====================!\n\n");
  printf("        1. Addition\n");
  printf("        2. Soustraction\n");
  printf("        3. Multiplication\n");
  printf("        4. Division\n\n");
  printf("        5. Quitter le programme\n\n");
  printf("    Votre operation ?\n");
  
  scanf("%d", &operation);
  
  printf("\n");
  
  double nombre1, nombre2;
  nombre1 = 0.0;
  nombre2 = 0.0;
  double resultat = 0.0;
  
     switch (operation)
        {
         case 1:
              
              printf("Entrez le nombre 1 : ");
              scanf("%f", &nombre1);
              printf("\n");
              printf("Entrez le nombre 2 : ");
              scanf("%f", &nombre2);
              printf("\n");
              
              resultat = nombre1 + nombre2;
              printf ("%f + %f = %f\n\n\n", nombre1, nombre2, resultat);
              break;
              
         case 2:
              
              printf("Entrez le nombre 1 : ");
              scanf("%f", &nombre1);
              printf("\n");
              printf("Entrez le nombre 2 : ");
              scanf("%f", &nombre2);
              printf("\n");
              
              resultat = nombre1 - nombre2;
              printf ("%f - %f = %f\n\n\n", nombre1, nombre2, resultat);
              break;
              
         case 3:
              
              printf("Entrez le nombre 1 : ");
              scanf("%f", &nombre1);
              printf("\n");
              printf("Entrez le nombre 2 : ");
              scanf("%f", &nombre2);
              printf("\n");
              
              resultat = nombre1 * nombre2;
              printf ("%f * %f = %f\n\n\n", nombre1, nombre2, resultat);
              break;
              
         case 4:
              
              printf("Entrez le nombre 1 : ");
              scanf("%f", &nombre1);
              printf("\n");
              printf("Entrez le nombre 2 : ");
              scanf("%f", &nombre2);
              printf("\n");
              
              resultat = nombre1 / nombre2;
              printf ("%f / %f = %f\n\n\n", nombre1, nombre2, resultat);
              break;
              
         case 5:
              
              continuer = 0;// permet de quitter notre boucle
              break;
         
         
              
         default:
                 printf("Vous n'avez pas rentre un nombre correct. Aucune operation ne sera efectuee!\n");
                 break;
         }
    }
}


Et pour tous ceux qui ont rencontré des problèmes vous feriez mieux de relire le cours de M@téo pour remettre au clair tout ce que vous n'avez pas compris.

Des opérations suplémentaires

Voilà maintenant que nous avons mis en place la base de la calculatrice, vous pouvez avoir envie d'effectuer d'autres opérations avec celles-ci. Je vais donc vous en donner ici que vous pourrais ensuite intégrer à votre calculatrice.

Mais tu vas pas nous fournir tout le code, avec les nouvelles opérations intégrer dedans comme tu l'as fait jusqu'ici ?

Eh non, il faut bien que vous travaillez un peut par vous même. :p

Pour commencer nous devons tout d'abord nous demander quelles opérations nous pourrions rajouter à notre calculatrice.
Vous avez une idée ?
Moi je vous en propose quelques une:


Maintenant que l'on a nos nouvelles opérations nous allons nous attaquer au code.


Le carré :



On multiplie le nombre entré par lui même.

Code : C
1
2
3
resultat = nombre1 * nombre1;
printf ("%f * %f = %f\n\n\n", nombre1, nombre1, resultat);
break;

Attention ici nous n'avons qu'un seul nombre. Il faut donc adapter la demande d'information. (Je vous laisse y réfléchir. ) ;)

Les autres puissances :



Ici on nous avons notre nombre1 qui doit être multiplié par lui même et ceci au temps de fois que nous l'indique le nombre2.

Code : C
1
2
3
resultat = pow(nombre1, puissance);
printf ("%f ^ %f = %f\n\n\n", nombre1, puissance, resultat);
break;

Remarquez qu'ici nous n'avons pas la variable nombre2, mais puissance. Il ne faut donc pas oublier de modifier la demande à l'utilisateur ainsi que de déclarer cette variable.

La racine carrée



On revient à notre variable de départ nombre1. Cette variable étant seul ne demandé pas à l'utilisateur de remplir la variable nombre2.

Code : C
1
2
3
resultat = sqrt(nombre1);
printf ("racine de %f  = %f\n\n\n", nombre1, resultat);
break;


Nos trois fonctions trigonométriques :



Les fonctions trigonométriques sont appelées ainsi car on les utilise dans le cercle trigonométrique. Il s'agit en fait des fonctions sinus, cosinus et tangente.
Ici encore nous n'utilisons que la variable nombre1. Cependant il faut savoir que les valeurs qui doivent être rentrées dans la variable nombre1 doivent être en radian. Je vous conseille donc de mettre une annotation "en radian" lorsque vous demandez à l'utilisateur de remplir votre variable.
Après ces avertissement le code:

Cosinus :



Code : C
1
2
3
resultat = cos(nombre1);
printf (" cos(%f) = %f\n\n\n", nombre1, resultat);
break;


Sinus :



Code : C
1
2
3
resultat = sin(nombre1);
printf (" sin(%f) = %f\n\n\n", nombre1, resultat);
break;


Tangente :



Code : C
1
2
3
resultat = tan(nombre1);
printf (" tan(%f) = %f\n\n\n", nombre1, resultat);
break;



Conclusion



Voilà nous avons fini avec nos nouvelles opérations. Elles sont là, bien sûr à titre d'exemple, mais sont tout de même intéressantes à étudier. Vous pouvez bien sûr et je vous y encourage, ajouter d'autre opérations à cette calculatrice afin de l'enrichir.

Voilà nous avons effectué ensemble un bilan assez conséquent de la partie I du cours de M@teo21.
J'espère que ce TP vous aura plu et que vous aurez appris des choses. Et si jamais vous avez un problème vous pouvez toujours m'envoyer un message privé je serais ravie de vous répondre. ;)
Retour en haut Retour en haut


Créé : le 20/10/2006 à 20:17:44
Modifié : le 22/08/2008 à 16:06:13
Avancement : 90%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 478 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.037s (0.0249s)