# Oic_02 L1-Z : semaine du 03 février 2024 Exercice de formalisation des programmes en binôme. ## TP : Calcul de moyenne *Situation* : l'évaluation dans le cours de programmation fonctionnelle se passe de la manière suivante : l'enseignant.e calcule la moyenne des trois meilleures notes obtenues par chaque étudiant.e. Par ailleurs, pour valoriser la progression des étudiant.es, l'enseignant ajoute un point à la note finale si la moyenne des deux dernières notes est supérieure à la moyenne des deux premières. Ex : J. a eu les notes suivantes au cours du semestre : notes : 12 11 14 13 12 note finale : 13 + 1 = 14. **En binôme** : Écrire un programme qui donne calcule cette moyenne à partir des notes obtenues par les étudiant.es au cours du semestre. Les notes sont lues dans un fichier texte que vous devez créer. Binômes à renseigner ici : https://lite.framacalc.org/f4kbz3tt40-acno ==Avant de vous mettre à coder== : - définissez vos besoins - envisagez tous les cas d'utilisation possibles - listez les tâches (et sous-tâches) à réaliser - décidez d'un mode de fonctionnement avec votre binôme ==Puis, toujours avant de vous mettre à coder== : - décidez des structures de données dont vous allez avoir besoin - décidez des fonctions et éventuellement des modules que vous allez développer - décrivez vos fonctions, par fichier : (ici, la fonction `main` du programme `main.py`) ``` Main.main()->rien Description : fonction principale du programme de calcul de moyennes Paramètres : ??? Valeur de retour : ??? ``` :warning: ces étapes sont obligatoires : vous devez rendre avec votre programme un README.txt (ou README.md) qui explique le fonctionnement du programme et comment vous avez procédé pour travailler en équipe. Prenez donc soin de ==documenter== les obstacles, solutions, et choix qui se présentent à vous. ### Extension pour la semaine prochaine **à rendre pour le 06/03 à 20h**: - l'un.e ajoute une interface de saisie au clavier : le programme demande à l'utilisateur/trice de saisir les notes des étudiant.es - l'autre ajoute un (joli) affichage final qui donne les moyennes des étudiants classés par ordre alphabétique de nom de famille. **4 binômes seront tirés au sort pour présenter ce qu'ils et elles ont fait et expliquer comment ils et elles ont fonctionné.** \+ n'oubliez pas de remplir votre contrat pédagogique https://conpere.univ-paris8.fr ``` Millour_oic_TP2/ src/programme.py test/test_vide.txt test_2_notes.tkt test_5_notes.txt test_doublon_nom.txt docs/ README.txt[md] --------------- README.md --------------- # Tests test_vide.txt : le programme n'affiche rien ``` Test de la fonction de lecture de fichier en python : ```python! print("Premier test (affichage du contenu d'un seul bloc):\n") f = open('test.txt', 'r') contenu = f.read() print(contenu) f.close() print("Deuxième test :\n") with open('test.txt', 'r') as f: lignes = f.readlines() # Retourne une liste print("affichage de l'objet 'lignes'\n") print(lignes) print("affichage ligne par ligne\n") i=0 for ligne in lignes: print(i) print(ligne) i+=1 ```