Exercice 1 (65 points): ----------------------------------- Question 1 : structures de donnée (8 points): --------------------------------------------- Type Vaccin : 2 points Structure Renne (ou équivalent) : 4 points (1 pt pour la coquille vide, 0.5 pour les attributs simple et 1 pour le vecteur de Vaccin). Bonus de 1 point pour des typedef utiles Type Cheptel : 2 points Type "ensemble de rennes" pour faciliter les valeurs de retour des fonctions (Selection dans le corrigé) : 1 pt de bonus Question 2 : fonctionnalités (42 points prévu): ----------------------------------------------- Note: Toute conception plausible est acceptable Pour chacune des fonctionnalités un malus entre 0.25 et 0.5 pourra être attribué en cas de paramètres inutiles. Bonus de 2 points globalement si le passage par référence constante est utilisé à bon escient. Fonctionnalité 1 (afficher un cheptel) : 2 points (1 pour le paramètre et 1 pour le type de retour) + 1 point bonus s'il y a unne fonction pour l'affichage d'un renne Fonctionnalité 2 (ajouter un renne ) : 4 points (1 par paramètre et 1 pour le type de retour et 1 pour la passage par référence) Fonctionnalité 3 (supprimer un renne de matricule donné) : 4 points (1 par paramètre et 1 pour le type de retour et 1 pour la passage par référence) Fonctionnalité 4 (compter tous les rennes de sexe donné) : 3 points (1 par paramètre, 1 pour le type de retour) Fonctionnalité 5 (sélectionner un renne capable de tirer un traîneau) : 6 points (1 pour le premier paramètre, 1.5 pour les deux suivants, 2 pour le type de retour) Fonctionnalité 6 (administrer un vaccin donné à un renne): 4 points (1 par paramètre, 1 pour le type de retour et 1 pour le passage par référence. void est ok comme type de retour, s'ils mettent un bool et qu'ils commentent que c'est pour dire que ça retourne faux si le rennes avait déjà fait le vaccin par exemple c'est bien aussi) Fonctionnalité 7 (administrer un vaccin donné à tous les rennes dans une tranche d'âge) 6 points (1 par paramètre, 1 pour le type de retour, 1 pour le passage par référence. void est naturel comme type de retour, mais il peuvent mettre autre chose de justiifé, comme un size_t s'ils disent qu'ils retournent le nombre de rennes effectivement vaccinés) Fonctionnalité 8 (trouver tous les rennes non vaccinés): 4 points (1 pour le paramètre, 2 pour le type de retour) Fonctionnalité 9 (trouver tous les rennes qui n'ont pas reçu un vaccin donné): 4 points (1 pour le paramètre, 2 pour le type de retour) Fonctionnalité 10 (trouver tous les rennes qui n'ont pas reçu aucun vaccin d'un eensemble donné): 6 points (1 pour le premier paramètre, 3 pour le second et 2 pour le type de retour) Question 3 : programmation (15 points) + Fonctionnalité 5 (6 points) : - itération jusqu'à trouver le bon renne 1.5 pt - test sur l'age le sexe et le poids 2 points - return correct 2.5 (dont 1 pour le cas "aucun renne trouvé") + Fonctionnalité 10 (9 points) : - itération sur les animaux : 1.5 pts - itération sur les vaccins d'un renne : 1.5 pts - traitement pour trouver si un vaccin fait partie de l'ensemble : 2.5 pts (+ 2 en bonus si c'est fait avec une fonction) - push du rennes dans le vecteur resultat au bon moment : 2.5 pts - return 1 Exercice 2 : questions de cours (30 points) -------------------------------------- (1) 4 points (2 pour (a) et 2 pour (b)), pour (a) il suffit de faire mention d'un problème de portée + 1 pt bonus si l'explication ets bien faire (2) 5 points ( 3 pour l'affichage et 2 pour l'explication) (3) 6 points (1 pour (a), 2 pour (b) dont la moitié pour la faute d'algorithme et 3 pour (c)) (4) 4 points (3 pour l'affichage et 3 pour les explications, puis plafonnez le total à 4) + 1 point bonus si l'affichage est correct et les explications complètes et bien faites. (5) 5 points : 3 pour le point (a) et 2 pour le point (b) (question délibérément "bien payée" car facile s'ils ont suivi le cours) (6) 6 points : - pour (a) 3 pour l'affichage et 3 pour les explications, la somme des deux plafonnée à 4 points - pour (b) 1 pour l'affichage et 1 pour l'explication Exercice 3 : Déroulement de programme (20 points) ------------------------------------------------- Affichage: + 3 points pour la première ligne d'affichage (moitié si l'ordre n'est pas le bon) + 4 points pour la troisième ligne (seulement 1 point si l'ordre n'est pas le bon) + 1.5 points par ligne à la bonne place pour l'affichage des couleurs ligne par ligne -> total 6 + 2 points pour la dernière ligne + 1 point pour les ***** Total pour l'affichage : 18 points Explication: + 2 points pour expliquer ce que fait la fonction d + 3 pour expliquer ce que fait g + 4 pour expliquer ce que fait f Total pour les explications: 9 Question sur la gestion de la mémoire (en bonus): 2 points pour les explications et 2 pour le code Le total pour l'exercice vaut min (total affichage + total explication + bonus, 20) Un bonus de 1 point sera attribué si l'affichage et correct et les explications complètes et bien faites.