Bonjour à toutes et à tous !
Je viens de publier les notes du devoir à la maison
et vais vous envoyer sous peu un email votre programme et les points obtenus.
Vos correcteurs ont PEUT ETRE ajouté des commentaires dans votre code
(qui va vous être retourné), mais sinon, les principales erreurs sont
détaillées ci-dessous.
Veuillez donc bien lire les commentaires ci-dessous avant toute autre question.
exercice très bien réussi en moyenne (voir la distribution de points en fin de message ;
le total maximum hors bonus était de 36 points) ;
les rendus globalement sont très bons ;
avec un peu plus de difficulté sur la fonction répartition().
Beaucoup d’étudiants prennent bien en compte les cas limite (mais pas toujours au bon endroit).
Un certain nombre font aussi des références constantes malgré que cela ne soit pas exigé.
Les principales erreurs sont :
- les oublis d'unsigned int (p.ex. volume, capacité)
- ne pas tester la division par 0
- mauvaise borne dans boucle for: i <= tab.size() au lieu de i < tab.size()
- effet de bord : typiquement validation mal placée. Chaque fonction ne doit avoir qu'UNE seule « responsabilité », un seul objectif (pas deux ou plus)
- non respect des types : comparaison d'int avec size_t
- les boucles qui se font directement sur les camions, sans copie
- containers est passé par référence à repartition() sans être constant
- mauvais ordre des boucles containers/camions dans repartition()
A améliorer :
- Une partie non négligeable des étudiant(e)s fait encore des boucles for avec une variable incrémentée plutôt que des boucles for(auto ...) lorsque l'index n’est pas utilisé.
- N'utilisez pas de « tableaux synchronisés » (co-évoluants) mais préférez des tableaux de struct (un tableau de Caracteristique ici dans repartition())
- Utilisez typedef (lorsqu'approprié)
- Des codes un peu compliqués sans raison
- L'identation/espaces n'est pas forcément toujours bien faite.
Voici la distribution des points (le total maximum hors bonus était de 36 points) :
Bravo donc à la classe !
A tout à l'heure.