Exercice - Calculer la moyenne des scores de devoir de l’étudiant
Dans cet exercice, vous allez calculer et stocker la moyenne des scores de devoir de chaque étudiant. Étant donné que vous connaissez le nombre de devoirs notés pour chaque étudiant, la moyenne est calculée en divisant la somme des scores de devoir par le nombre de devoirs. Pour stocker les moyennes, vous allez utiliser le type de données Décimal.
Crée des variables pour stocker la moyenne
Dans cette tâche, vous allez créer une variable pour chaque étudiant qui peut être utilisée pour stocker le score moyen de leurs devoirs notés.
Dans l’éditeur .NET, recherchez les instructions
Console.WriteLine()
utilisées pour afficher les scores additionnés de chaque étudiant.Créez une ligne de code vide au-dessus des instructions
Console.WriteLine()
.Dans la ligne de code vide que vous avez créée, pour déclarer les variables décimales qui seront utilisées pour les scores actuels des étudiants, entrez le code suivant :
decimal sophiaScore; decimal nicolasScore; decimal zahirahScore; decimal jeongScore;
Notez que vous vous contentez de déclarer les variables
decimal
; vous ne les initialisez pas. Vous avez choisi le typedecimal
car vous représentiez une note moyenne et que vous souhaitez inclure une décimale qui ne serait pas disponible si vous utilisiez un entier. De cette façon, si vous constatez qu’un étudiant a obtenu un score de 89,9, vous pouvez lui attribuer un A plutôt qu’un B.Dans l’exercice précédent, vous avez initialisé les variables entières afin de pouvoir les utiliser immédiatement dans la sortie de votre console. Dans le cas présent, ces variables
decimal
seront initialisées à l’étape suivante au moyen de calculs avec vos données existantes, en commençant par le score de Sophia.Pour affecter le score actuel de Sophia dans la classe à la variable decimal
sophiaScore
, mettez à jour la variable avec le code suivant :decimal sophiaScore = sophiaSum / currentAssignments;
Pour calculer le score actuel d’un étudiant pour la classe, vous divisez la somme des scores des devoirs par le nombre total de devoirs. Chaque étudiant de la classe a cinq devoirs, représentés par
currentAssignments
, que vous avez initialisé lors de la configuration.Pour affecter le reste des scores des étudiants, entrez le code suivant :
decimal nicolasScore = nicolasSum / currentAssignments; decimal zahirahScore = zahirahSum / currentAssignments; decimal jeongScore = jeongSum / currentAssignments;
Au final, vous souhaitez afficher les notes de chaque étudiant dans cette application. À l’étape suivante, vous allez modifier le code pour afficher le score de chaque étudiant plutôt que la somme de ses devoirs.
Pour afficher le score actuel de chaque étudiant, remplacez les variables de somme dans les instructions d’affichage par les variables de score :
Console.WriteLine("Sophia: " + sophiaScore); Console.WriteLine("Nicolas: " + nicolasScore); Console.WriteLine("Zahirah: " + zahirahScore); Console.WriteLine("Jeong: " + jeongScore);
Prenez quelques minutes pour réfléchir à l’approche incrémentielle que vous utilisez pour développer cette application.
La décomposition d’un problème en petits morceaux est une compétence importante pour les développeurs. La génération incrémentielle de votre code et la vérification fréquente de votre travail vous permettent de développer rapidement des applications fiables. Dans le cas présent, vous pouvez réaffecter
Console.WriteLine()
afin de vérifier que vos calculs sont corrects à la fin de chaque étape du processus.Pour afficher les valeurs de la note actuelle de chaque étudiant, sélectionnez Exécuter.
Vous devez normalement voir la sortie suivante.
Sophia: 94 Nicolas: 83 Zahirah: 83 Jeong: 95
Notez que les scores sont affichés sous forme d’entiers plutôt que de décimales.
Quand vous souhaitez que le résultat d’une division soit une valeur décimale, le dividende, le diviseur ou les deux doivent être de type décimal. Quand vous utilisez des variables entières dans le calcul, vous devez appliquer une technique de cast pour « convertir » un entier en décimal.
Pour le calcul du score, vous pouvez obtenir un résultat décimal en castant la variable de la somme ou
currentAssignments
en tant que type décimal. Dans le cas présent, vous allez caster la somme en tant que décimale.Dans vos opérations de division, pour caster une variable entière en tant que décimal, mettez à jour votre code comme suit :
decimal sophiaScore = (decimal) sophiaSum / currentAssignments; decimal nicolasScore = (decimal) nicolasSum / currentAssignments; decimal zahirahScore = (decimal) zahirahSum / currentAssignments; decimal jeongScore = (decimal) jeongSum / currentAssignments;
Il suffit que le dividende ou le diviseur soit de type décimal pour que la division aboutisse à une valeur décimale. Ici, vous castez uniquement la variable de la somme utilisée comme dividende.
Passez en revue l’échelle de notation suivante que l’enseignant utilise pour attribuer des notes sous forme de lettre :
97 - 100 A+ 93 - 96 A 90 - 92 A- 87 - 89 B+ 83 - 86 B
L’étape suivante consiste à inclure une note sous forme de lettre pour chaque étudiant en fonction de son score total. L’ajout de la note sous forme de lettre à la sortie affichée est un processus manuel.
Pour déterminer la valeur de la note actuelle de chaque étudiant, sélectionnez Exécuter.
Utilisez la note actuelle de chaque étudiant pour déterminer la note sous forme de lettre appropriée, en arrondissant vers le haut ou vers le bas si nécessaire.
Pour ajouter une note sous forme de lettre après le score numérique de chaque étudiant, mettez à jour votre code comme suit :
Console.WriteLine("Sophia: " + sophiaScore + " A"); Console.WriteLine("Nicolas: " + nicolasScore + " B"); Console.WriteLine("Zahirah: " + zahirahScore + " B"); Console.WriteLine("Jeong: " + jeongScore + " A");
Vérifier votre travail
Dans le cadre de cette tâche, vous allez exécuter le code et vérifier que la sortie est correcte.
Comparez votre code au suivant :
int currentAssignments = 5; int sophia1 = 93; int sophia2 = 87; int sophia3 = 98; int sophia4 = 95; int sophia5 = 100; int nicolas1 = 80; int nicolas2 = 83; int nicolas3 = 82; int nicolas4 = 88; int nicolas5 = 85; int zahirah1 = 84; int zahirah2 = 96; int zahirah3 = 73; int zahirah4 = 85; int zahirah5 = 79; int jeong1 = 90; int jeong2 = 92; int jeong3 = 98; int jeong4 = 100; int jeong5 = 97; int sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5; int nicolasSum = nicolas1 + nicolas2 + nicolas3 + nicolas4 + nicolas5; int zahirahSum = zahirah1 + zahirah2 + zahirah3 + zahirah4 + zahirah5; int jeongSum = jeong1 + jeong2 + jeong3 + jeong4 + jeong5; decimal sophiaScore = (decimal) sophiaSum / currentAssignments; decimal nicolasScore = (decimal) nicolasSum / currentAssignments; decimal zahirahScore = (decimal) zahirahSum / currentAssignments; decimal jeongScore = (decimal) jeongSum / currentAssignments; Console.WriteLine("Sophia: " + sophiaScore + " A"); Console.WriteLine("Nicolas: " + nicolasScore + " B"); Console.WriteLine("Zahirah: " + zahirahScore + " B"); Console.WriteLine("Jeong: " + jeongScore + " A");
Pour exécuter votre code et afficher les scores des étudiants avec des notes sous forme de lettre, sélectionnez Exécuter.
Pour vérifier que votre code fonctionne comme prévu, comparez la sortie de votre application avec la sortie suivante :
Sophia: 94.6 A Nicolas: 83.6 B Zahirah: 83.4 B Jeong: 95.4 A
Votre code doit maintenant afficher les scores des étudiants sous forme de valeur décimale, et vous devez voir la note sous forme de lettre que vous avez attribuée.
Si votre code affiche des résultats différents, vous devez le passer en revue afin de trouver votre erreur et d’effectuer des mises à jour. Réexécutez le code pour voir si vous avez résolu le problème. Continuez à mettre à jour et à exécuter votre code jusqu’à ce qu’il produise les résultats attendus.
Important
Veillez à ne pas supprimer le code que vous avez écrit jusqu’à présent. Vous allez utiliser ce code dans l’exercice suivant.