Vous êtes sur la page 1sur 2

PROG - TP - fonctions 2023-2024

Exercices de programmation
Il est fortement conseillé de garder fenêtres Variables et Assistant dans Thonny-l1test.
Ce travail est à rendre impérativement dans un fichier fonctions.py.
Vous devez respecter la méthodologie vue en cours et notamment :
• utiliser des noms de fonctions et de paramètres qui ont du sens ;
• écrire une documentation pour la fonction, y compris des annotations de type dans la signature de la fonction
;
• écrire des tests exécutables avec l1test avant d’écrire le code de la fonction ;
• écrire un code qui respecte les bonnes pratiques de cette UE.

1 Répétition
1. Écrire une fonction repetition qui renvoie la chaîne de caractères obtenue en répétant n fois la chaîne de
caractères chaine. Par exemple :
>>> repetition('la', 3)
'lalala'
>>> repetition('go', 0)
''

2 Calcul de moyenne entière


Pour simplifier on a choisi de travailler avec des notes entières uniquement, de plus la valeur calculée est la partie
entière de la moyenne. Par exemple, on renverra 16 au lieu de 16.8 (rassurez-vous, on ne calculera votre moyenne
à l’UE ainsi !)
2. Écrire une fonction moyenne_entiere qui prend en paramètre 2 notes note1 et note2 de type entier et renvoie
la partie entière de la moyenne de ces 2 notes. Par exemple :
>>> moyenne_entiere(10, 20)
15
>>> moyenne_entiere(10, 15)
12
3. Écrire une fonction moyenne_entiere_ponderee qui calcule la partie entière de la moyenne de 2 notes note1
et note2 passées en paramètres, pondérées par des coefficients coeff1 et coeff2 passés en paramètre. Les pa-
ramètres apparaîtront dans la signature de moyenne_entiere_ponderee dans l’ordre suivant : note1, coeff1,
note2, coeff2. Par exemple :
>>> moyenne_entiere_ponderee(10, 2, 20, 3)
16
4. Écrire une nouvelle fonction moyenne_entiere2 qui a la même spécification que moyenne_entiere mais dont
le corps utilise un appel à la fonction moyenne_entiere_ponderee.

3 En minutes !
Un jour est composé de 24 heures, une heure de 60 minutes.
5. Écrire une fonction heure2minute() de conversion d’heures en minutes. Cette fonction prend en paramètre
un nombre d’heures heures et renvoie sa conversion en minutes. Par exemple :
>>> heure2minute(2)
120
6. Écrire une fonction jour2heure() de conversion de jours en heures. Cette fonction prend en paramètre un
nombre de jours jours et renvoie sa conversion en heures. Par exemple :
PROG - TP - fonctions 2023-2024
Exercices de programmation
>>> jour2heure(3)
72
7. Proposez ensuite une fonction de conversion en minutes d’une durée exprimées en jours, heures et minutes.
Cette fonction en_minutes() acceptera donc trois paramètres dans cet ordre : un nombre de jours, un nombre
d’heures et un nombre de minutes.
Par exemple :
>>> en_minutes(0, 3, 0)
180
>>> en_minutes(0, 0, 2)
2
>>> en_minutes(1, 2, 3)
1563
On utilisera les fonctions précédemment définies.

4 Salutation
8. Écrire une fonction qui renvoie une chaîne de caractères formée par la concaténation :
• d’une salutation (par ex “Coucou”, “Bonjour”, “Bonsoir” etc)
• de la chaîne de caractères “je m’appelle”
• d’une chaîne représentant un prénom
• d’une chaîne représentant un nom
• du caractère “!” répété n fois avec des espaces entre les chaînes. On aura par exemple :
>>> salutation("Salut", "Camille", "DUPONT", 4)
"Salut je m'appelle Camille DUPONT !!!!"

5 Partage équitable
9. Écrire une fonction bonbons_par_enfant qui renvoie le nombre de bonbons par enfants, étant donné un
nombre de bonbons bonbons à partager de manière équitable entre un nombre d’enfants enfants donné. Par
exemple :
>>> bonbons_par_enfant(20, 3)
6
On rappelle la syntaxe d’une fonction qui renvoie un couple de valeurs entières :
def mafonction(x : int) -> tuple[int, int]:
''' ... '''
return (..., ...)
avec un appel du style :
res1, res2 = mafonction(x)
qui affecte à res1 le premier élément du couple renvoyé par mafonction et à res2 le second élément du couple
renvoyé.
10. Écrire une fonction partage_bonbons qui prend en paramètre un nombre de bonbons et un nombre d’enfants
et renvoie un couple contenant d’abord le nombre de bonbons par enfants puis le nombre de bonbons restants,
dans le cas d’un partage équitable. Par exemple :
>>> bonbons, reste = partage_bonbons(20, 3)
>>> bonbons
6
>>> reste
2

Vous aimerez peut-être aussi