Programme de calcul d'une note moyenne (langage C)
Introduction sur le programme
Difficulté:
Ce tutorial va expliquer comment créer un petit programme en langage C pour calculer une note moyenne.
Je vais essayer de détailler au maximum ce que je fais. Cependant, si vous voulez mieux comprendre il vous faut de petite connaissance en langage C.
Si vous trouver que ce programme est trop dur à réaliser, alors je vous suggère d'aller lire (ou relire) le premier tutorial qui réalise un programme de rendu de monnaie.
J'ai souhaité réaliser un tutorial suffisamment complet pour permettre à un maximum d'entre vous de le réaliser, donc si vous trouvez qu'il est trop détaillé dites-vous que pour certains ce n'est pas assez expliqué.
Bonne chance.
Plan du tutorial
Cahier des charges
Le but du jeu, c'est que l'utilisateur du programme rentre plusieurs notes à la suite.
Exemple : l'utilisateur rentre les notes suivante : 15, 14, 13.
Le programme doit alors donner la note moyenne. Et après je vous donnerais des infos pour l'améliorer (comme par exemple indiquer la note minimal, la note maximal), mais pour le moment c'est déjà pas mal.
Il ne y a juste un petit point qui va poser problème. On demande à l'utilisateur des notes, mais comment faire pour que celui-ci disent : "c'est bon c'était la dernière note, donne moi le résultat". Et bien il va falloir rentré une note négative, et le programme comprendra alors qu'il doit arrêter, et donner le résultat.
Voici donc un exemple concret que vous serez capable de faire à la fin de ce tuto :
Pratique
Pour réaliser ce programme, il faut toutefois avoir quelques notions de mathématique. Mais je pense que tout le monde sait calculer une note moyenne. Il conviendra d'additionner toutes les notes rentrées, et ensuite de les diviser par le nombres de notes rentrée. Et ça nous donneras donc la valeur moyenne.
Le reste des opérations est expliqué dans ce chapitre, je vais détailler ce que doit contenir la source du programme. Bonne chance.
Bibliothèque
Tout d'abord il faut appeler les bibliothèques nécessaire au bon fonctionnement. Maintenant j'appelle plusieurs bibliothèques. Les 3 principales, avec ça il n'y aura pas de problème si vous voulez faire un programme plus élaboré.
#include <stdlib.h>
#include <conio.h>
Fonction principale et initialisation des variables
Dans la fonction principale il va falloir appelé des variables. Pour rappel, la fonction principal est appelée de cette manière :
{
/* le programme sera appelé ici */
}
Et voici les variables que nous allons utiliser. Je les ai commentées, pour que vous compreniez mieux à quoi elle vont servir.
int compteur=0; /* On utilise un int pour compter le nombre de note qu'on rentrera */
float tot=0,/* "tot" va faire le total de toutes les notes */
note=0;
Cette partie de code sera donc à mettre dans le début de la fonction principale.
Après avoir fait tout ceci, je vous conseil d'afficher un petit message à l'utilisateur. Ce sera un petit message qui indique le titre du programme (par exemple).
Pour ma part je met le titre de cette façon :
Ainsi à l'écran on verra affiché :
|
Et voilà, la première partie est terminée. Il reste maintenant à faire l'essentiel du programme.
Programme partie 1
Tout d'abord, il y a quelque chose d'important à faire. Souvenez-vous, il va falloir demander à l'utilisateur si c'est la dernière note qu'il rentre. Pour que l'utilisateur indique que c'est la dernière note, il doit donner une note négative. Ainsi, on doit tout d'abord vérifier que la note rentré n'est pas négative. Donc on va faire une boucle (une boucle "tant que", représentée par un while), qui auras pour condition : "tant que la valeur rentré est supérieur à zéro". Et dans cette boucle on fera :
- Demander à l'utilisateur de rentrer une note.
- Faire le total de la note rentré + les notes rentrées précédemment.
Donc voilà, pour l'instant on va se contenter de ces fonctions.
La boucle "tant que" doit être représentée en langage c de cette manière :
{
/* action à faire */
}
Cette fonction va faire les actions qui sont entre les 2 accolades tant que la condition est vrai.
La condition à rentrer dans le while c'est que la note rentré est supérieur ou égal à zéro. Et la variable dans laquelle on va enregistré la note rentré sera la variable "note". Donc on va devoir écrire :
{
/* action à faire */
}
Il faut bien noter que la symbolique ">=" représente en français : "supérieur ou égal à". Voici dont un tableau des différentes symbolique que l'ont peut rencontrer en langage c :
Symbole | Signification |
---|---|
== | X est égal à Y |
> | X est supérieur à Y |
>= | X est supérieur ou égal à Y |
< | X est inférieur à Y |
< | X est inférieur ou égal à Y |
!= | X est différent de Y |
Voilà donc pour cette première condition c'est bon, vous avez compris.
Programme partie 2
Voilà maintenant que l'histoire du while est réglé, nous devons nous intéresser à ce qu'il va y avoir dedans. Dans un premier temps on va demander à l'utilisateur de rentré une note, et ce à l'aide de ce code :
Ce bout de code va donc afficher à l'écran du programme :
|
La note rentré par l'utilisateur sera enregistré dans la variable : "note".
Programme partie 3
Souvenez-vous maintenant, comme on fait pour calculer une moyenne. Il faut calculer la somme de toutes les notes, et diviser ce résultat par le nombre de notes total. Et bien juste après avoir rentré la note il va falloir faire :
compteur = compteur+1;
La variable "tot" va contenir le total de toutes les notes rentré. Et "compteur", va lui compter le nombres de notes qui ont été rentré.
En effet "tot" additionne sa précédente valeur, avec la valeur que l'utilisateur à enregistré à l'instant.
Exemple :
De plus compteur était lui aussi égal à zéro au début, mais après avoir entré la note 12, il va être égal à : 0 + 1 = 1.
Ensuite, l'utilisateur entre la valeur 8. Alors tot = 12 + 8 = 20.
Et compteur va s'incrémenter, il va être égal à 2. Ce calcul va se répéter jusqu'à ce que l'utilisateur entre une valeur négative. On auras alors juste à faire le calcul : tot divisé par compteur.
Et voilà, ça c'est fais.
Récapitulatif
Je suppose qu'avec tout ce que je vous ai donné, il serait intéressant de faire un petit récapitulatif. Alors voici ce que l'ont à fait pour l'instant :
#include <stdlib.h>
#include <conio.h>
int main(void)
{
float tot=0,/* "tot" va faire le total de toutes les notes */
note=0;
printf("Statistiques relatives a une suite de notes\n");
while (note>=0)
{
compteur = compteur+1;
/* Affichage du résultat */
system ("pause");
return 0;
Donc pour l'instant le programme va afficher ceci :
introduisez une note:
|
Affichage des résultats
Il y a une situation qui peut poser problème dans notre exemple. Imaginons, l'utilisateur comme par rentrer une note négative. Cela signifie qu'il n'y a pas de note pour calculer une moyenne. Dans ce cas-ci, il faudra indiquez à l'utilisateur qu'aucune note n'est valide.
Pour faire ça, on va devoir faire un bout de programme qui dit : "si le compteur est différent de zéro, alors on affiche le résultat". Et en langage c, on traduit cette précédente phrase par ceci :
{
/* action à faire */
}
Vous reconnaissez un peu la même structure que le while. Dans notre exemple, il va falloir dire que la condition c'est "compteur différent de zéro". Et dans le tableau que j'ai donné tout à l'heure le symbole correspondant à cette condition c'est : "!=".
Donc le code qu'on écrira sera :
{
/* action à faire */
}
Si compteur est égal à zéro que va t'il se passer? Il faut alors dire que aucune note n'est valide. Et on va le faire de cette manière :
{
else
Maintenant, juste avant que l'ont affiche le résultat il va falloir faire le petit calcul.
Ce calcul ce traduira en langage c, par ceci :
tot = tot / (compteur-1);
Il y a juste une petite subtilité. Il ne faut pas prendre en compte la dernière note que l'utilisateur à rentré. C'est à dire qu'il faut soustraire la note négative qui à été entré pour pouvoir quitter le programme.
Et enfin l'affichage de la note comprise dans la variable tot :
Il faut bien remarquer que l'ont utilise "%f" pour pouvoir afficher un nombre à virgule. Et dans l'affichage de la note moyenne, le %f sera remplacé par la valeur comprise dans tot.
Et voilà, vous savez tout. Pour afficher les résultats il faut mettre tout ce code :
{
tot = tot / (compteur-1);
printf("note moyenne :%f\n", tot);
else
Programme final
Et voilà on a finit.
N'oublions pas de mettre à la fin :
return 0;
Le programme est totalement finit, vous pouvez si vous le souhaitez maintenant l'améliorer. Pour tester ce programme je vous donne tout le code que l'ont à fait ensemble :
#include <stdlib.h>
#include <conio.h>
int main(void)
{
float tot=0,/* "tot" va faire le total de toutes les notes */
note=0;
printf("Statistiques relatives a une suite de notes\n");
while (note>=0)
{
compteur = compteur+1;
if (compteur!=0)
{
tot = tot / (compteur-1);
printf("note moyenne :%f\n", tot);
else
return 0;
Copiez le dans Dev-c++ et essayez de le tester.
Idée d'amélioration
Je vais vous donner plusieurs consignes pour rendre le programme plus efficace :
- Faire en sorte que le programme regarde quel était la note maximum et la note minimum
- Qu'il regarde combien de fois la note maximum et la note minimum on été rentré
Rien qu'avec ça, vous allez bien vous amuser. J'ai mis le résultat du programme avec ces modification dans les téléchargement de programme et ci-dessous.
Télécharger le programme
Voici un petit tableau où vous pourrez télécharger le programme au complet, et aussi le programme amélioré. Vous pourrez donc le tester.