notation pix
Le programme:
#On importe le fichier des scores
fichier = open("NSI1.csv", encoding="utf8")
ligne = fichier.readline()
noms_colonnes = ligne.strip().split(";")
print("noms colwsw-12">#Cette ligne a un problème elle ne s'affiche pas correctement
Liste_y=[]
for ligne in fichier:
elements = ligne.strip().split(";")
Liste_y.append(int(elements[9]))
#Calcul de la moyenne
def moyenne(liste):
somme=0
compteur=0
for i in liste:
print (i)
somme=i+somme
compteur=compteur+1
print (somme)
print (compteur)
print (somme/compteur)
return (somme/compteur)
a=moyenne(Liste_y)
#Calcule de la valeur minimum et maximum
def minimum(liste):
minimun_liste=liste[0]
for i in liste:
if i<minimun_liste:
minimun_liste=i
print (minimun_liste)
return minimun_liste
b=minimum(Liste_y)
def maximum(liste):
maximun_liste=liste[0]
for i in liste:
if i>maximun_liste:
maximun_liste=i
print (maximun_liste)
return maximun_liste
c=maximum(Liste_y)
#Clacule des quotient pour la note de chaques élèves
moyenneclasse=(int(input("Quelle moyenne voulez vous pour la classe:")))
d=(20-moyenneclasse)/(c-a)
e=20-((20-moyenneclasse)/(c-a))*c
print (e)
print (d)
# Graphique
import matplotlib.pyplot as plt
fichier = open("NSI1.csv", encoding="utf8")
ligne = fichier.readline()
noms_colonnes = ligne.strip().split(";")
print("noms colwsw-12">#Cette ligne a un problème elle ne s'affiche pas correctement
note_liste=[]
Liste_x=[]
for ligne in fichier:
elements = ligne.strip().split(";")
Liste_x.append(elements[4])
for score in Liste_y:
print (score)
note_liste.append(round(d*score+e,1))
print(Liste_x, note_liste)
fichier.close()
def tracer_figure(liste1,liste2):
plt.figure(figsize = (16, 10))
plt.plot(liste1,liste2, label='score=f(t)')
plt.xlabel('Nom')
plt.xticks(rotation = 60)
plt.ylabel('en score')
plt.title("score des étudiants")
plt.legend()
plt.show()
if __name__=="__main__":
tracer_figure(Liste_x,note_liste)
Explication:
La première ligne du programme va importer le fichier NSI1.cvs qui est le fichier contenant les scores de chaque élève sur pix, et ce fichier est codé en utf8. La troisième ligne va séparer les informations contenues dans ce fichier par des points virgules. Dans la quatrième ligne on affiche le noms de toutes les colonnes dans la console pour vérifier que ce soit le bon fichier.
La cinquième ligne on créer une liste nommée Liste_y qui va prendre les valeurs séparées par des points virgules de la neuvième colonne du fichier.
Pour le calcul de la moyenne on va créer une fonction appelée moyenne. Dans cette fonction on créer deux variable nommé "somme" et "compteur" qui valent toutes deux 0. On va créer une boucle où "i" va prendre successivement toutes les valeurs de la liste_y. Pour calculer la somme on va ajouter, à cette dernière, la valeur de "i" plus la valeur de la somme au tour de boucle précédent. Pour calculer le compteur on va lui ajouter 1 à chaque tour de boucle. Puis on affiche le compteur, la somme et la somme divisée par le compteur qui donne ainsi la moyenne. On fait un "return" de la moyenne pour qu'elle revienne dans le programme car sinon elle resterait que dans la console et on affecte cette valeur à la variable "a".
Pour calculer la valeur minimum on va créer une fonction minimum qui va prendre les valeur de la Liste_y. Puis on va créer une nouvelle liste "minimum_liste" qui va être vide d'où le [0]. On va ensuite faire une boucle où "i" va prendre successivement toutes les valeurs de la Liste_y et les comparer avec les valeurs de la "minimum_liste". Ainsi, si les éléments de la Liste_y sont inférieur aux éléments de la "minimum_liste", cette dernière va prendre la valeur de la Liste_y. Au premier tour la "minimum_liste" prend automatiquement la première valeur de la Liste_y car il n'y a rien. On affiche la valeur de la "minimum_liste" pour vérifier que le programme fonctionne, on le remet ensuite dans le programme avec le "return" et on affecte à "b" cette valeur. Cependant le calcul de la valeur minimum ne servira pas dans ce programme car nous allons utiliser la valeur maximum.
Pour calculer la valeur maximum on va créer une fonction maximum qui va prendre les valeur de la Liste_y. Puis on va créer une nouvelle liste "maximum_liste" qui va être vide d'où le [0]. On va ensuite faire une boucle où "i" va prendre successivement toutes les valeurs de la Liste_y et les comparer avec les valeurs de la "maximum_liste". Ainsi, si les éléments de la Liste_y sont supérieur aux éléments de la "maximum_liste", cette dernière va prendre la valeur de la Liste_y. Au premier tour la "maximum_liste" prend autometiquement la première valeur de la Liste_y car il n'y a rien. On affiche la valeur de la "maximum_liste" pour vérifier que le programme fonctionne, on le remet ensuite dans le programme avec le "return" et on affecte à "c" cette valeur.
Pour calculer la note finale que chaque élève aura, il faut d'abord donner la moyenne que l'on veut pour la classe. Ainsi on affecte à la variable "moyenneclasse" la valeur que l'utilisateur aura rentrée suite à la demmende du programme grâce au "(int(imput("Quelle moyenne voulez vous pour la classe:")))". Enfin pour calculer les notes il nous faut connaître des coéfficients, ici appelés "e" et "d". Pour ce il suffit d'affecter à la variable "e" le résultat du calcul : 20 moins la moyenne entrée par l'utilisateur divisée par la valeur maximale moins la moyenne des score. Pour le deuxième coéfficient, on affecte à la variable "d" la valeur du résultat du calcule :20 moins la moyenne entrée par l'utilisateur divisée par la valeur maximale moins la moyenne des score puis le résultat multiplié par la valeur maximale et moins 20. On affiche ensuite dans la console les deux coéfficient pour vérifier le programme.
Pour pouvoir réaliser le graphique des notes il faut tout d'abord importer une blibliothèque, qui calcul les tracés géommétriques, dans le programme python. On va ensuite réintroduire le fichier NSI1.cvs avec toutes ses particularitées (les valeurs séparées par les points virgules etc...) pour pouvoir reprendre des valeur contenues à l'intérieur. On déffinie les listes "note_liste" et "Liste_x" comme des listes vides. Puis on va affecter(ajouter) à la "Liste_x" les valeurs contenues dans la neuvième colonne du tableau du fichier (tout en précisant au programme que les informations sont séparées par des points virgules), pour pouvoir avoir les noms des participants. Puis on créer une boucle où "score" va prendre successivement toutes les valeurs de la "Liste_y" et on va affecter(ajouter) à la liste "note_liste" le résultat du calcul des notes de chaque élève éffectué avec les coéficients calculés précédament et le score, c'est valeurs seront arrondit à un chiffre après la virgule car il y aura l'instruction "round" donc arrondir et le ",1" à la fin pour un chiffre après la virgule. On affiche dans la console la valeur des deux liste pour vérifier le programme. On ferme le fichier car on a toutes les valeurs qu'il nous faut pour faire le graphique. On définie la fonction "tracer_figure" qui prendra les valeur des liste 1 et 2. On définie les proportion de la figure "plt.figure(figsize = (16, 10))". Puis on place les valeurs de la listes 1 en abscisse et les valeurs de la liste 2 en ordonnées "plt.plot(liste1,liste2, label='score=f(t)')". On place ensuite le titre des abscisses "plt.xlabel('Nom')" et le titre des ordonnées "plt.ylabel('en score')" . On met les valeur des abscisses en biais "plt.xticks(rotation = 60)". On met un titre pour le graphique "plt.title("score des étudiants")". Puis on écrit "plt.legend()" et "plt.show()" pour pouvoir afficher les légendes et afficher le graphique.
Enfin on écrit "if __name__=="__main__":" car dans un programme python c'est le fichier main qui s'execute en premier seulement ici il n'y a pas de fichier main donc c'est le fichier que l'on a qui va s'executer. Pour terminé on demmande de tracer la figure avec les valeurs des listes "Liste_x" et "note_liste" avec "tracer_figure(Liste_x,note_liste)"