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

Algorithmes et structures de données Discussion :

Calculer des moyennes pour chaque groupe


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut Calculer des moyennes pour chaque groupe
    Bonjour à tous,

    Voilà j'ai un exercice à faire, mais je ne sais pas trop comment m'y prendre. Il faut utiliser des boucles "pour". Voici l'énoncé :

    Ecrire un algorithme qui calcule la moyenne de chaque étudiant de chaque groupe de TD. Pour chaque étudiant, on ne compte que les notes des contrôles où il était effectivement présent, il n'y a pas de notion d'étudiant défaillant.

    Quelqu'un peut-il m'aider pour ce sujet ?

    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour chaque professeur
         Faire ton boulot toi-même
    Fin pour.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Je n'ai pas demandé qu'on me le fasse.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Flodelarab t'a donné un bout de pseudo-code .. un peu ironique.

    A toi de tenter un bout de pseudo-code ( comme pseudolarab, en faisant l'impasse sur les problèmes de syntaxe ou de langage informatique) ... et tu obtiendras des réponses.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    J'avais pensé à quelque chose comme ça, mais je suis vite bloqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Afficher("Saisir le nombre de groupe")
    Saisir(NbGroupe)
    Pour i de 1 à NbGroupe faire(Et là je bloque.)

    Je pense qu'il faut rajouter dans l'algo quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       Afficher ("Saisir le nombre d'étudiant dans le groupe", i)
       Saisir (NbEtu)
          Pour k de 1 à NbEtu faire
            Afficher ("saisir le nombre de note dans ce groupe")
            Saisir (NbdeNote)
              Pour j de 1 à NbDeNote faire
                Afficher("saisir la note ")
                Saisir (note)
    Je ne sais pas si c'est une bonne chose d'imbriquer les boucles "Pour", et d'ailleurs je ne sais pas si c'est ça qu'il faut faire.

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    A mon avis, tu es bien parti.
    Je ferais quand même déjà une première remarque à ce niveau.
    A chaque fois que je tape Pour chaque xxxx, je tape systématiquement Fin Pour quelques lignes plus bas, pour être sûr de ne pas l'oublier.
    C'est un très bon principe, que je te conseille d'appliquer.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Oui, sur papier je le fais systématiquement, là j'ai oublié. Il faut faire de même pour fermer les "si", les "selon"…

    Donc pour le moment mon algo devrait ressembler plus ou moins à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Algorithme : MoyenneAlgo
    Variables saisies : NbGroupe, NbEtu, NbDeNote : Entiers ; note : réel
    Variables affichées : /
    Variables intermédiaires : i, j, k : entiers
     
    Début
     
      Afficher("Saisir le nombre de groupe")
      Saisir(NbGroupe)
      Pour i de 1 à NbGroupe faire
         Afficher ("Saisir le nombre d'étudiant dans le groupe", i)
         Saisir (NbEtu)
            Pour k de 1 à NbEtu faire
              Afficher ("saisir le nombre de note dans ce groupe")
              Saisir (NbdeNote)
                 Pour j de 1 à NbDeNote faire
                     Afficher("saisir la note ")
                     Saisir (note)
                 Fpour
            Fpour
      Fpour
     
    Fin
    Maintenant pour calculer la moyenne, je pense qu'il faut insérer une nouvelle variable qu'on appelle Somme. Cette variable, après l'avoir "remplie" des notes de chaque élèves, il faudra la diviser par NbDeNote. Le problème, c'est que je ne sais pas où la mettre dans mon programme (dans les "Pour" ? Après ?) et comment arriver à y "stocker" chaque note de l'étudiant ?
    Pourrais-tu m'aider ?

    Merci

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Déjà, une remarque sur les détails de présentation.
    L'indentation n'est pas correcte; tu décales trop vers la droite les boucles imbriquées... c'est un détail.

    Sinon, oui, il va falloir une variable appelée Somme, et il va falloir faire des opérations avec cette variable.
    Mais le but n'est pas d'y "stocker" chaque note. Le but est de l' "incrémenter" avec chaque note.
    Réfléchis pour voir où ou comment le faire. Par élimination, tu devrais trouver.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    J'ai pensé à ce genre d'algo, pourrais-tu me donner ton avis ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Algorithme : MoyenneAlgo
    Variables saisies : NbGroupe, NbEtu, NbDeNote : Entiers ; note : réel
    Variables affichées : i, k : entiers
    Variables intermédiaires : i, j, k : entiers ; somme : réel
     
    Début
     
      Afficher("Saisir le nombre de groupe")
      Saisir(NbGroupe)
      Pour i de 1 à NbGroupe faire
         Afficher ("Saisir le nombre d'étudiant dans le groupe", i)
         Saisir (NbEtu)
            Pour k de 1 à NbEtu faire
              Afficher ("saisir le nombre de note dans ce groupe")
              Saisir (NbdeNote)
              Afficher (Saisir la note numéro 1)
              Saisir (note)
                 Pour j de 2 à NbDeNote faire
                     Afficher("saisir la note ")
                     Saisir (note)
                     Somme <-- Somme + note
                 Fpour
            Fpour
      Fpour
      Afficher ("la moyenne de l'élève", k, "du groupe", i, "est", Somme/NbDeNote)
    Fin
    Concernant l'indentation, je ne comprends ce qui ne va pas, car avec notre prof, nous imbriquions de cette manière les "pour".

    Merci d'avance

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    On avance pas mal.
    Reste 2 erreurs, et des choix qui peuvent être discutables si vraiment on veut critiquer ton travail.

    Pour vérifier si ça marche, déroule le programme à la main, par exemple avec 1 groupe, 2 étudiants, et 1 ou 2 notes par étudiant. Tu devrais détecter les 2 erreurs.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Je pense avoir identifié mes 2 erreurs. La première c'est celle que j'ai corrigé en rouge.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Algorithme : MoyenneAlgo
    Variables saisies : NbGroupe, NbEtu, NbDeNote : Entiers ; note : réel
    Variables affichées : i, k : entiers
    Variables intermédiaires : i, j, k : entiers ; somme : réel
    
    Début
    
      Afficher("Saisir le nombre de groupe")
      Saisir(NbGroupe)
      Pour i de 1 à NbGroupe faire
         Afficher ("Saisir le nombre d'étudiant dans le groupe", i)
         Saisir (NbEtu)
            Pour k de 1 à NbEtu faire
              Afficher ("saisir le nombre de note dans ce groupe")
              Saisir (NbdeNote)
              Afficher (Saisir la note numéro 1)
              Saisir (note)
              Somme <-- note
                 Pour j de 2 à NbDeNote faire
                     Afficher("saisir la note numéro ", j)
                     Saisir (note)
                     Somme <-- Somme + note
                 Fpour
            Fpour
      Fpour
      Afficher ("la moyenne de l'élève", k, "du groupe", i, "est", Somme/NbDeNote)
    Fin
    La seconde, je pense qu'elle vient du fait que j va de 2 à NbDeNote, or si la valeur de NbDeNote vaut 1, on ne rentre jamais dans la boucle "pour" et on incrémente jamais la variable somme. Alors peut-être qu'on pourrait rajouter une boucle si :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Si NbdeNote >1 alors
       Pour j de 2 à NbDeNote faire
                     Afficher("saisir la note numéro", j)
                     Saisir (note)
                     Somme <-- Somme + note
    Sinon 
      Somme <-- note
    Merci pour l'aide !

  12. #12
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Non, l'idée d'ajouter des instructions si Nbnote > 1 .. n'est pas bonne. Tu ajoutes de la complexité , au lieu d'en enlever.

    En fait tu as 2 groupes instructions quasi similaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Afficher ( "Saisir la note n°1 ")
    Saisir note
    et un peu plus bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Afficher ( "Saisir la note n° ", j )
    Saisir note
    Ca, ce n'est pas bon. Dans un programme, ou dans un algorithme, il faut toujours éviter d'avoir 2 fois la même chose. Donc débrouille toi pour n'avoir qu'une fois la question ' Saisir la note'.
    Le code actuel fonctionne, mais il n'est pas élégant.

    Mais il y a une erreur ailleurs. Je pense que si tu avais une indentation plus clean, tu la verrais. Tu peux aussi ajouter des commentaires dans ton code, pour aider.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Saisir (nbGroupe)
    Pour i = 1 a nbGroupe 
       ... ...  ...
    FPour  // Fin de la boucle  'Pour chaque Groupe'
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  13. #13
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    J'ai rajouté les commentaires comme tu m'as dit. Mais qu'appelles-tu une indentation plus clean ? Parce que je fais exactement comme en cours là…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Algorithme : MoyenneAlgo
    Variables saisies : NbGroupe, NbEtu, NbDeNote : Entiers ; note : réel
    Variables affichées : i, k : entiers
    Variables intermédiaires : i, j, k : entiers ; somme : réel
     
    Début
     
      Afficher("Saisir le nombre de groupe")
      Saisir(NbGroupe)
      Pour i de 1 à NbGroupe faire
         Afficher ("Saisir le nombre d'étudiant dans le groupe", i)
         Saisir (NbEtu)
            Pour k de 1 à NbEtu faire
              Afficher ("saisir le nombre de note dans ce groupe")
              Saisir (NbdeNote)
              Afficher (Saisir la note numéro 1)
              Saisir (note)
              Somme <-- note
                 Pour j de 2 à NbDeNote faire
                     Afficher("saisir la note numéro ", j)
                     Saisir (note)
                     Somme <-- Somme + note
                 Fpour // fin boucle "pour NbDeNote"
            Fpour // Fin boucle "pour NbEtu"
      Fpour // Fin boucle "pour NbGroupe"
      Afficher ("la moyenne de l'élève", k, "du groupe", i, "est", Somme/NbDeNote)
    Fin
    Concernant le problème de saisir 2 fois la note, on pourrait utiliser un "Selon" ?

  14. #14
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    SELON est une variante un peu plus évolué du SI .... Tu n'en as pas besoin. Ton besoin est plus simple que cela.

    Souvent en informatique, si la solution ne vient pas immédiatement, ça ne sert à rien de la chercher pendant des heures. Il faut un regard différent.
    Oublie cet exercice. Refais le demain ou un autre jour, de A à Z, en oubliant tout ce que tu as fait. Et qui sait ? Peut-être que du premier coup, tu écriras un algorithme parfait.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  15. #15
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Je suis entrain de me dire que c'est peut-être moi qui interprète mal le fait d'imbriquer les boucles "pour".

    Imaginons que NbGroupe vaut 3, NbEtu vaut 2, NbDeNote vaut 4. Le "i" passe à 2 quand exactement ?

    Je pense que je comprends mal comment fonctionne les boucles "pour" lorsqu'elles sont imbriquées…

  16. #16
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Pardon pour mes sarcasmes à venir mais c'est un raisonnement niveau école primaire!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Pour 6 carrés dans la longueur
        Pour 4 carrés dans la largeur
            Pour 3 carrés dans la hauteur
                Volume=Volume+1
            Fin Pour
        Fin Pour
    Fin Pour
     
    Le Volume est donc de 6*4*3=72
    Si tu avais compris la multiplication à l'école primaire, tu dois comprendre la boucle "pour".

    Le "i" passe à 2 quand exactement ?
    Tu utilises i, j et k, comme variables muettes pour représenter, respectivement, l' indice de groupes, d'étudiants et de notes. (D'ailleurs, pourquoi ta boucle de notes commence à 2 ? Il n'y a pas de différence entre les notes)
    Quand est-ce que le i passe à 2 ? Quand tu as fini avec le premier groupe d'élèves (chaque note de chaque élève) et que tu passes au second groupe.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  17. #17
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Citation Envoyé par Stéphanois57 Voir le message
    Je suis entrain de me dire que c'est peut-être moi qui interprète mal le fait d'imbriquer les boucles "pour".

    Imaginons que NbGroupe vaut 3, NbEtu vaut 2, NbDeNote vaut 4. Le "i" passe à 2 quand exactement ?

    Je pense que je comprends mal comment fonctionne les boucles "pour" lorsqu'elles sont imbriquées…
    Tu as bien compris la notion de boucle.
    Tu as pris soin d'utiliser 3 variables différentes i,j et k, et ça, c'est essentiel.
    Reste 2 ou 3 détails à corriger, mais c'est du niveau du détail.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  18. #18
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Je ne vois pas comment arriver à ne mettre qu'une fois "Afficher("saisir la note numéro", j)". Moi je l'ai mis 2 fois, afin que la variable "Somme" prenne une première valeur, pour qu'on puisse l'incrémenter avec les N-ièmes autres valeurs de NbDeNote.
    En effet, je ne connais pas d'autres méthodes pour incrémenter une variable "de 1 à N", car ça voudrait dire dans mon programme : somme <-- note + note + … + note , et je ne sais pas si c'est traduisible en algorithmique.

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Stéphanois57 Voir le message
    Je ne vois pas comment arriver à ne mettre qu'une fois "Afficher("saisir la note numéro", j)". Moi je l'ai mis 2 fois, afin que la variable "Somme" prenne une première valeur, pour qu'on puisse l'incrémenter avec les N-ièmes autres valeurs de NbDeNote.
    En effet, je ne connais pas d'autres méthodes pour incrémenter une variable "de 1 à N", car ça voudrait dire dans mon programme : somme <-- note + note + … + note , et je ne sais pas si c'est traduisible en algorithmique.
    Et pourquoi n'initialiserais-tu pas somme à la valeur de départ que doit avoir une somme avant de la calculer, c'est à dire 0 ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  20. #20
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    C'est vrai que dans ce cas je n'affiche qu'une fois "saisir la note"… Merci ! C'est là où tu voulais en venir tbc92 ?
    J'étais obnubilé par le fait de donner une valeur concrète de départ à ma variable "somme"…

    Si le problème est réglé, pourriez-vous maintenant me guider sur les "2 ou 3 détails à corriger" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    
    Algorithme : MoyenneAlgo
    Variables saisies : NbGroupe, NbEtu, NbDeNote : Entiers ; note : réel
    Variables affichées : i, k : entiers
    Variables intermédiaires : i, j, k : entiers ; somme : réel
    
    Début
    
      Afficher("Saisir le nombre de groupe")
      Saisir(NbGroupe)
      Pour i de 1 à NbGroupe faire
         Afficher ("Saisir le nombre d'étudiant dans le groupe", i)
         Saisir (NbEtu)
            Pour k de 1 à NbEtu faire
              Afficher ("saisir le nombre de note dans ce groupe")
              Saisir (NbdeNote)
              Somme <-- 0
                 Pour j de 1 à NbDeNote faire
                     Afficher("saisir la note numéro ", j)
                     Saisir (note)
                     Somme <-- Somme + note
                 Fpour // fin boucle "pour NbDeNote"
            Fpour // Fin boucle "pour NbEtu"
      Fpour // Fin boucle "pour NbGroupe"
      Afficher ("la moyenne de l'élève", k, "du groupe", i, "est", Somme/NbDeNote)
    Fin

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/04/2014, 21h47
  2. [AC-2007] Calcul sur une date et obtenir des valeurs pour chaque date obtenue
    Par missalias dans le forum Modélisation
    Réponses: 38
    Dernier message: 07/04/2014, 09h22
  3. Réponses: 3
    Dernier message: 16/07/2013, 15h07
  4. calculer des moyennes pour des sous groupes
    Par madib dans le forum SAS Base
    Réponses: 3
    Dernier message: 04/02/2009, 16h50
  5. [Sessions] Comment creer des sessions pour chaque visiteur
    Par developower dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2005, 12h55

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