Remise en jambe STID - TP Noté
Consignes
- À rendre soit seul, soit par groupe de 2
- Déposez sous Moodle (Compléments d’informatique et d’économie), vos 3 fichiers Python nommés :
ex1.py
ex2.py
ex3.py
- Date limite : 12/09/24 19:00
- Lisez attentivement et respectez les consignes
- Commentez et expliquez ce que font vos algorithmes
Vos fichiers devront ressembler à ceci :
ex1.py
"""
Remise en jambe - TP Noté
12/09/2024
Élève 1 : ?
Élève 2 : ?
"""
def ma_fonction(?) -> ?:
# TODO coder fonction
if __name__ == "__main__":
# TODO charger fichier si nécessaire
# exemple = """coller ici l'exemple"""
# print(ma_fonction(exemple), ma_fonction(exemple) == "mettez ici le résultat attendu pour l'exemple")
= ma_fonction(?)
resultat print(resultat) # résultat obtenu : ?
Avant de commencer
Créez votre espace de travail
La même chose en lignes de commande :
-
- Sur le bureau > clic droit > Git Bash here
-
cp -r /u/Eleves/Informatique/TP2 /p/Cours1A/UE0-Info-Remise-en-jambe/
- Dans Git Bash ➡️ clic droit > Paste ou MAJ + INSER
Ouvrez votre espace de travail dans Visual Studio Code
-
- Allez dans le dossier P:/Cours1A/UE0-Info-Remise-en-jambe/
- Cliquez une seule fois sur TP2
- Cliquez sur le bouton
- Votre dossier apparait à gauche dans l’explorer
1 Exercice 1
Vous allez coder une fonction qui reçoit en entrée une chaine de caractères représentant des lignes d’entiers.
Cette fonction effectue ensuite les actions suivantes :
- Pour chaque ligne, elle fait la différence entre plus grande et plus petite valeur
- Somme les résultats obtenus pour chaque ligne
- Retourne cette somme
1.1 Exemple
somme.txt
4 1 9 5
7 5 3 2 4 4 8
Ligne | Min | Max | Différence |
---|---|---|---|
Ligne 1 | 1 | 9 | 8 |
Ligne 2 | 3 | 7 | 4 |
Ligne 3 | 2 | 8 | 6 |
Total | 18 |
Résultat : 18
1.2 Travail à faire
-
- Ecrivez en commentaire le résultat obtenu
2 Exercice 2
Votre objectif est de compter le nombre de mots de passe valides entre 153517 et 630395.
Un mot de passe valide vérifie les conditions suivantes :
- taille : 6 digits
- les digits sont rangés dans l’ordre croissant
- il doit y avoir à minima 2 digits de même valeur
2.1 Exemples
334561
: ❌ les digits ne sont pas dans l’ordre croissant456789
: ❌ absence de 2 digits de même valeur224789
: ✔️ ordre croissant avec 2 digits de même valeur223344
: ✔️ ordre croissant avec au moins 2 digits de même valeur
2.2 Travail à faire
-
- vérifie que ces 2 paramètres sont de type int
- vérifie que ces 2 paramètres contiennent exactement 6 digits
- retourne le nombre de mots de passe valides compris entre ces 2 paramètres
-
- Écrivez en commentaire le résultat obtenu
2.3 Bonus
-
- ⚠️ Ici un triplet ou un quadruplet n’est pas une paire
223344
: ✔️222345
: ❌ car 222 n’est pas une paire mais un triplet222244
: ✔️ grâce à la paire 44
3 Exercice 3
3.1 Objectif
Vous allez recevoir en entrée un fichier contenant une liste d’instructions pour mettre à jour des variables.
Au départ, toutes les variables utilisées sont initialisées à 0.
Pour chaque instruction :
- Si la condition est valide, vous appliquez la mise à jour
- Sinon vous passez à l’instruction suivante
3.2 Exemple
Voici ci-dessous une liste d’instructions.
instructions.txt
b inc 4 if a > 1
a inc 1 if b < 2
c dec -5 if a >= 1 c inc -10 if c == 5
Votre programme doit lire et appliquer ces instructions dans l’ordre :
b inc 4 if a > 1
: signifie que l’on va incrémenter la variable b de 4 si la variable a est strictement supérieure à 1- or initialement a=0 ➡️ condition a > 1 ❌ ➡️ la mise à jour de b n’est pas appliquée
a inc 1 if b < 2
: a est incrémenté de 1 si b est strictement inférieur à 2- b = 0 ➡️ condition b < 2 ✔️ ➡️ a = a + 1 ➡️ a = 1
c dec -5 if a >= 1
- a = 1 ➡️ condition ✔️ ➡️ c = c - (-5) ➡️ a = 1, c = 5
c inc -10 if c == 5
- c = 5 ➡️ condition ✔️ ➡️ c = c + (-10) ➡️ a = 1, c = -5
Vous pourriez également rencontrer les opérateurs <=
(inférieur ou égal à) ou !=
(différent de).
Le résultat final attendu est le produit de :
- la plus grande valeur d’une variable à la fin (une fois toutes les intructions passées)
- la plus grande valeur d’une variable rencontrée au cours des instructions
- La plus grande valeur à la fin est 1 (a).
- La plus grande valeur au cours des instructions est 5 (c à la 3e étape).
Le résultat attendu est 1 x 5 = 5.
3.3 Travail à faire
-
- en entrée : une chaine de caractères
- en sortie : retourne le résultat numérique
-
- Ecrivez en commentaire le résultat obtenu
Exercices inspirés du site AdventOfCode qui propose chaque année en décembre, un problème à résoudre par jour.