ELOÏSE NSI
Projet 1 : Notation PIX
Élaboration du programme Python
Tout d'abord, je suis partie du programme étudié en classe qui permet de tracer une figure. En modifiant le fichier csv utilisé, le titre du graphique et autres, j'ai donc pu réaliser un graphique qui affiche les scores PIX en fonction de chaque élève.
import matplotlib.pyplot as plt
fichier =open("nsi1.csv", encoding="utf8")
ligne = fichier.readline()
noms_colonnes = ligne.strip().split(";")
Liste_x=[]
Liste_y=[]
for ligne in fichier:
elements = ligne.strip().split(";")
Liste_x.append(elements[4])
Liste_y.append(int(elements[9]))
print(Liste_x, Liste_y)
fichier.close()
def tracer_figure(liste1,liste2):
plt.figure(figsize = (16, 10))
plt.plot(liste1,liste2, label='score')
plt.xlabel('noms')
plt.xticks(rotation = 60)
plt.ylabel('scores')
plt.title("Scores pix")
plt.legend()
plt.show()
if __name__=="__main__":
tracer_figure(Liste_x,Liste_y)
-
Étape 1 : Tracé du graphique
-
Étape 2 : Calcul de la moyenne
J'ai ensuite utilisé le programme permettant de calculer la moyenne d'une liste. Grâce à cela, j'ai pu calculer la moyenne de tous les scores PIX de la classe.
​
def moyenne(liste):
somme=0
compteur=0
for i in liste:
print(i)
somme=i+somme
compteur=compteur+1
print(somme)
print(compteur)
return (somme/compteur)
a=moyenne(Liste_y)
print(a)
-
Étape 3 : Calcul du minimum et du maximum
Après cela, j'ai mis au point un programme pour calculer le maximum, sur la même principe que celui réalisé en classe qui calcule le minimum. Cela m'a donc permis d'avoir le minimum et le maximum de la liste de scores PIX.
def minimum(liste):
minimum_liste=1000
for i in liste:
if i<minimum_liste:
minimum_liste=i
return minimum_liste
b=minimum(Liste_y)
print(b)
def maximum(liste):
maximum_liste=0
for i in liste:
if i>maximum_liste:
maximum_liste=i
return maximum_liste
c=maximum(Liste_y)
print(c)
-
Étape 4 : Calcul de la note
En classe, nous avons défini les calculs des variables que j'ai appelées x et y et qui permettent de calculer la note sur 20. Ce calcul nécessite les données calculées précédemment et la moyenne de la classe sur 20 qui doit être rentrée par l'utilisateur.
notemoyenne=int(input("Choisissez la note moyenne"))
x=(20-notemoyenne)/(c-a)
y=20-((20-notemoyenne)/(c-a))*c
print(x)
print(y)
Liste_N=[]
for i in Liste_y:
note=x*i+y
print(round(note))
Liste_N.append(int(note))
-
Étape 5 : Affichage du graphique final
Enfin, la dernière étape fut de tracer le graphique avec les notes sur 20 calculées pour chaque élève. Pour cela, j'ai utilisé le programme qui trace une figure en remplaçant la liste utilisée par celle des notes sur 20 et pas des scores comme précédemment. J'ai également modifié le titre et la légende du graphique.
def tracer_figure2(Liste_x,Liste_N):
plt.figure(figsize = (16, 10))
plt.plot(Liste_x,Liste_N, label='note')
plt.xlabel('noms')
plt.xticks(rotation = 60)
plt.ylabel('notes')
plt.title("Notes pix")
plt.legend()
plt.show()
tracer_figure2(Liste_x,Liste_N)
Résultat du programme
Voici donc ce qu'il se passe lorsqu'on exécute le programme.
- Le graphique avec les scores pix est affiché
- Une fenêtre s'ouvre pour demander à l'utilisateur d'entrer la moyenne de classe souhaitée
- Le graphique avec les notes sur 20 des élèves est affiché
​
L'objectif est donc atteint, le programme convertit les score PIX en notes sur 20 et les affiche dans un graphique.