IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Algorithme de la moyenne


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Algorithme de la moyenne
    Bonjour,
    je cherche à trouver un programme qui permettrait de saisir les notes des élèves d'une classe :
    -Pour chaque élève, donner sa moyenne.
    -Pour l'ensemble de la classe, sa moyenne générale.

    nb : chaque note est associée à un coefficient.

    J'ai franchement du mal à faire ce programme qui parait simple ..

    Merci de votre aide !

    David.

  2. #2
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    C'est pas des devoirs, au moins ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Non c juste un exercice que j'ai trouvé sympathique : )
    Tu connais la réponse ?

  4. #4
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    Tu connais la réponse ?
    Oui.

    Quelle(s) partie(s) n'arrives-tu pas à faire ?

    Peux-tu nous montrer le code que tu as produit (même s'il s'agit d'un algo en pseudo-code) ?

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut, et bienvenue sur le forum.

    Vu que c'est un exercice que tu souhaites effectuer, il me semblerait dommage de te donner une solution "toute faite"

    Essaye donc dans un premier temps avec des phrases simples mais précises la manière dont tu t'y prendrais si tu devais le faire "à la main" (avec un bon vieux bout de papier et un crayon)...

    Cela te permettra de trouver la logique qu'il te faut mettre en oeuvre sur l'ordinateur

    Généralement, lorsque l'on est face à un problème qu'il faut résoudre ou à un besoin qui demande à être rencontré, il y a quatre grandes questions auxquelles il est important d'essayer d'apporter une réponse.

    Dans l'ordre:
    1. Que doit faire mon application ? tu as, à peu près, déjà répondu à cette question, mais l'as tu fait de manière assez précise ?
    2. De quelles données mon application a-t-elle besoin pour travailler ?
    3. Où mon application va-t-elle trouver ces données ? comment les obtient-elle?
    4. Comment mon application va-t-elle manipuler ces données pour obtenir le résultat souhaité?
    Chaque question t'apportera des éléments de réponse à la question suivante, la dernière devrait t'inciter à réfléchir à la logique à utiliser, et donc, t'inciter à mettre un / des algorithme(s) adapté(s) au point.

    Une fois que tu as l' (les) algorithme(s) utile(s) et nécessaire(s), si tu les représente correctement, il te sera des plus facile de les transformer en code source, quel que soit le langage.

    Par exemple, même si d'aucuns sur le forum n'aiment pas trop cette représentation, j'apprécie énormément le Nassi-Schneiderman pour représenter les algorithmes destinés à être utilisés avec des langages plus évolués que l'assembleur.

    Mais ca, ce n'est qu'un avis perso

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ok , bah déjà pour la saisie des note j'ai fait ça :
    Fichiers attachés Fichiers attachés

  7. #7
    Membre actif Avatar de Grulim
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 234
    Points : 288
    Points
    288
    Par défaut
    C'est pas mal... 4 remarques cependant :
    1/ plutôt que d'allouer un tableau de double, utilise plutôt un std::vector<double>.
    2/ du coup, plus besoin de savoir le nombre note à l'avance, il suffit d'utiliser la methode push_back du conteneur vector (qui a une taille dynamique).
    3/ Tu devrais mieux nommer tes variables et tes noms de fonction.
    4/ Commente plus et mieux ton code (le commentaire que tu as laissé ne correspond pas au code ).

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Ok, mais je ne comprend pas trop ta méthode avec le vecteur ..
    Est ce que quelqu'un pourrait me donner le code d'ici ce soir ??

    J'ai un amis qui vient voir ce que j'ai fait.. Et là à vrai dire jsuis bloqué ^^

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Gia,

    Un ami qui vient te voir ce soir, ou l'exercice à rendre pour demain ?

  10. #10
    darthmower
    Invité(e)
    Par défaut
    Citation Envoyé par polydav Voir le message
    Ok, mais je ne comprend pas trop ta méthode avec le vecteur ..
    Les vector sont des conteneurs dynamiques qui ré-allouent la mémoire dynamiquement, tu n'as pas besoin de t'occuper de sa taille. Cela évite un certain nombre de problème vis à vis de la gestion mémoire et évite tout problème de dépassement de taille du tableau etc.

    Tu peux utiliser les iterator avec ce genre de conteneur aussi.

    http://www.cplusplus.com/reference/stl/vector/

    Citation Envoyé par polydav Voir le message
    Est ce que quelqu'un pourrait me donner le code d'ici ce soir ??

    J'ai un amis qui vient voir ce que j'ai fait.. Et là à vrai dire jsuis bloqué ^^
    Joke?

    Gripsou

  11. #11
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 159
    Points
    3 159
    Par défaut
    Citation Envoyé par polydav Voir le message
    Ok, mais je ne comprend pas trop ta méthode avec le vecteur ..
    As tu seulement un peu cherché ? Regardé les exemples ?

    Citation Envoyé par polydav Voir le message
    Est ce que quelqu'un pourrait me donner le code d'ici ce soir ??
    Allons allons, on est vendredi, tu as tout le week end pour faire ça

  12. #12
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par polydav Voir le message
    Ok, mais je ne comprend pas trop ta méthode avec le vecteur ..
    Est ce que quelqu'un pourrait me donner le code d'ici ce soir ??

    J'ai un amis qui vient voir ce que j'ai fait.. Et là à vrai dire jsuis bloqué ^^
    Et si tu essayais déjà de répondre, ici, sur le forum, aux quatre questions que je t'incite à te poser

    A partir de là, je te guiderai bien volontiers sur la manière de profiter des réponses que tu aura données, mais tu verras, ca aide énormément de se les poser

    (par contre, ce serait un bien mauvais service à te rendre que de te donner le code tout fait )

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Voilà j'ai trouvé la solution après avoir fait du pseudo code sur un bon vieux bout de papier
    Je n'utilise pas la méthode vecteur xD J'ai fait à ma sauce
    J'ai considéré aussi que les élèves avaient le même nombre de notes chacun (ce qui est vrai dans la plupart des cas).
    Demain on remet ça avec un jeux de bataille navale à créer !!! Ow yeah ! mdr..


    nb : Je vend ce programme 2 euros aux professeurs !
    (je suis gentil je vous le donne gratuitement xd)

    Bonne nuit les amis !
    Fichiers attachés Fichiers attachés

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Salut,

    quand on te parlais de std::vector :

    tu as fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double moyenneTableau(int n, double *k)
    {
       double S = 0.0;
       for (int i=0; i<n; i++) S=S+k[i];
       return S/n;
    }
    mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double moyenneTableau(const std::vector<double> & k)
    {
       double S = 0.0;
       for (size_t i=0; i<k.size(); i++) S=S+k[i];
       return S/n;
    }
    et encore mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    double moyenneTableau(const std::vector<double> & k)
    {
      return std::accumulate(k.begin(),k.end(),0.) / k.size();
    }

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour Salseropom,
    Ca c'est vraiment clair
    Quand on disait qu'on pouvait écrire tout un programme en C sur une seule ligne, on y est presque .

Discussions similaires

  1. algorithme moyenne glissante (mobile)
    Par lucky dans le forum C++
    Réponses: 3
    Dernier message: 06/06/2010, 17h16
  2. [TPW] Algorithmes de tri d'un tableau et moyenne pondérée
    Par moharached dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 05/01/2010, 21h56
  3. Algorithmes de classification: C-Means, C-Moyenne
    Par tonguim dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 10/05/2009, 23h00
  4. [Erreur] algorithme qui calcul une moyenne
    Par quaresma dans le forum Algorithmes et structures de données
    Réponses: 29
    Dernier message: 24/04/2008, 20h58
  5. Algorithme récursif de calcul de moyenne
    Par kromartien dans le forum Mathématiques
    Réponses: 25
    Dernier message: 23/10/2007, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo