krolle | Bonjour,
Cela fait des heures que je suis sur un exercice et j'aurais vraiment besoin d'un petit coup de main car on dirait que je suis vraiment sur la mauvaise piste. Voici l'énoncé:
"Soient N et M des constantes données par [B]#define[/B] définissant la taille de deux tableaux [B]tabnotes[/B] et [B]distribution[/B].
Soit[B] tabnotes[/B] un tableau de N valeurs flottantes représentant des notes d’examen :
Code :
- float tabnotes[N]= {14.5,17.9,6.4,9.2,12.0,13.1,11.4,10.9}
|
Soit [B]distribution [/B]un tableau de M = 5 valeurs entières représentant le nombre de notes correspondant à chacune des cinq mentions possibles (échec, passable, assez bien, bien, très bien). Par exemple, distribution [2] doit représenter le nombre de notes donnant droit à la mention assez bien. Ce tableau sera initialisé avec des zéros au début du programme.
1. On souhaite déterminer le nombre de notes dans tabnotes qui sont comprises entre 0 et 10.0 (échec), entre 10.0 et 12.0 (passable), entre 12.0 et 14.0 (assez bien), entre 14.0 et 16.0 (bien), et celles comprises entre 16.0 et 20.0 (très bien).
Donnez une fonction fourchette_notes qui remplit le tableau distribution.
2. Donnez le programme principal pour tester votre fonction.
3. On souhaite afficher un histogramme des notes triées par mention :
échec, passable, assez bien, bien, très bien. Un histogramme est une graphique qui contient une barre verticale pour chacune des cinq mentions, dont la hauteur dépend du nombre de notes qui entrent dans cette fourchette.
Une barre peut être représenté par un rectangle de largeur 10 pixels. Pour chaque note, le rectangle aura 10 pixels de hauteur supplémentaire. Pour mieux distinguer les barres, on laissera un espace de 5 pixels entre deux barres.
La fonction s’appelera dessin_histogramme. Déterminez ses paramètres et son type de retour, puis écrivez le corps de la fonction.
Ajoutez l’appel à cette fonction au programme principal. "
Je vous montre ce que j'ai fait, c'est à dire que je n'ai pas rajouté l'histogramme (et qui ne marche pas du tout mais je pense que vous pourrez plus m'aider en voyant mes erreurs):
Code :
- #include <cini.h>
- #define N 8
- #define M 5
- void fourchette_notes ( float tabnotes[N], int taille, int distribution[M] ) {
- int i;
- int echec = 0;
- int passable = 0;
- int AB = 0;
- int B = 0;
- int TB = 0;
- for (i = 0; i <= taille; i++) {
- if (tabnotes[i] < 10) {
- echec = echec + 1 ;
- }
- if (tabnotes[i] >= 10 && tabnotes[i] < 12) {
- passable = passable + 1 ;
- }
- if (tabnotes[i] >= 12 && tabnotes[i] < 14) {
- AB = AB + 1 ;
- }
- if (tabnotes[i] >= 14 && tabnotes[i] < 16) {
- B = B + 1 ;
- }
- if (tabnotes[i] >= 16) {
- TB = TB + 1 ;
- }
- distribution[0]=echec;
- distribution[1]=passable;
- distribution[2]=AB;
- distribution[3]=B;
- distribution[4]=TB;
- }
- }
- void afficheTab(float tabnotes[N], int taille) {
- int i;
- for (i = 0; i < taille; i++) {
- printf("%f ", tabnotes[i]);
- }
- printf("\n" );
- }
- int main() {
- float tabnotes[N]= {14.5, 17.9, 6.4, 9.2, 12.0, 13.1, 11.4, 10.9} ;
- int distribution[M]={0,0,0,0,0};
- int i;
-
- fourchette_notes(tabnotes, distribution);
-
- for (i = 0; i < N; i++) {
- printf("Note %d : ", (i+1));
- printf("%.2f \n", tabnotes[i]);
- }
- for (i = 0; i < 1; i++) {
- printf("Echec: %d \n ", distribution[0]);
- printf("Passable: %d \n ", distribution[1]);
- printf("Assez bien: %d \n ", distribution[2]);
- printf("Bien: %d \n ", distribution[3]);
- printf("Très bien: %d \n ", distribution[4]);
- }
- return 0;
- }
|
J'espère que vous pourrez m'aider. Merci d'avance, |