L1 maths et miashs
Introduction à la programmation TP 2
Exercice 1 Calcul de max
Écrire un programme qui demande à l'utilisateur de saisir 3 nombres réels et qui ache le plus grand des trois.
Exemple :
Quelle est la valeur de x ? 85
Quelle est la valeur de y ? 12
Quelle est la valeur de z ? 75
la valeur du max est 85
Exercice 2 Calcul de frais de port
Il s'agit de calculer des frais de port dans certaines circonstances. On veut écrire un programme qui demande
à l'utilisateur de saisir le poids de son paquet (donc 1 réel) et puis ache le prix de la livraison. Pour obtenir
le tarif, on utilisera :
Exemples :
bonjour
quel est le poids du paquet en kilos ? 1.33
vos frais de livraison seront de 7 euros
bonjour
quel est le poids du paquet en kilos ? 7.8
vos frais de livraison seront de 15 euros
1. Un étudiant a répondu à cette question et est très content de lui : son programme n'ache pas de rouge
quand il le lance et quand il a testé avec un poids de 3 kilos il a obtenu la bonne réponse. Mérite-il le 20
auquel il pense? (spoiler : NON!) Vous trouverez son programme dans le chier a_corriger_2.py sur
ecampus.
Faites d'autres tests, que remarquez-vous? Corriger ce programme!
2. On va maintenant recopier et modier légèrement ce programme :
Ajouter quelques lignes au programme pour que celui-ci demande en plus la valeur de la commande. Par
rapport au frais précédents, si le paquet pèse moins de 2 kilos et et que sa valeur est de plus de 60 euros
la livraison est gratuite , de même que si le paquet fait moins de 10 kilos et a une valeur de plus de 80 euros.
Exemples :
bonjour
quel est le poids du paquet en kilos ? 1.33
valeur de votre commande? 61
livraison gratuite
bonjour
quel est le poids du paquet en kilos ? 7.8
valeur de votre commande? 81
livraison gratuite
Exercice 3 Zorglub
Les habitants de Zorglub paient l'impôt selon les règles suivantes :
les hommes de plus de 20 ans paient l'impôt;
les femmes paient l'impôt si elles ont entre 18 et 35 ans;
les autres ne paient pas d'impôt.
Le programme demandera donc l'âge et le sexe du Zorglubien, et se prononcera ensuite sur le fait que l'habitant
est imposable ou non.
Exercice 4 Tutoriel sur les tuples
Les tuples permettent de regrouper des données en une donnée "composite". Comme pour le tutoriel sur les
strings, essayez de prévoir les réponses.
>>>t_fib=(1,1,2,3,5,8,13,21,34,55)
>>>t_prem=(2,3,5,7,11,13)
>>>t_jeu=((1,"rouge"),(1,"bleu"),(2,"bleu"),(3,"bleu"))
1. Opérations élémentaires sur les chaînes
>>>t_fib+t_prem
>>>t_jeu*2
>>>4*(0,1)
>>>(0,1)*4
2. Longueur d'un tuple :
>>>len (t_fib)
>>>len(())
>>>len((0))
>>>len(t_jeu)
3. Accès aux éléments du tuple
>>>t_fib[0]
>>>t_fib[-1]
>>>t_jeu[0]
>>>t_jeu[1]
4. >>>t_fib[1:4]
>>>t_fib[-1:4]
>>>t_fib[:-2]
>>>t_fib[:4]
>>>t_fib[:]
5. Ajout d'un élément à un tuple
>>>(0,1)+(1,2)
>>>(0,1)+2
>>>((0,1),(1,2)) +(2,3)
>>>((0,1),(1,2)) +((2,3))
6. Modication d'un tuple
Attention on ne peut pas modier directement des valeurs dans un tuple; on peut par contre toujours
recopier ce tuple tout changeant des éléments de ce tuple.
>>>t_jeu[0]=(4,'bleu')
>>>t_jeu=(4,'bleu') +t_jeu[1:]
>>>t_jeu=((4,'bleu')) +t_jeu[1:]
7. Questions
(a) Écrire une instruction pour récupérer la couleur de la première carte de t_jeu
(b) Écrire une instruction pour récupérer le chire de la première carte de t_jeu
(c) Écrire une instruction pour créer le tuple (1,1,1,1,1,1,1,1,0,0,0,0,0) (sans taper le tuple à la
main)
Exercice 5 Notes
1. Ecrire un programme qui demande à l'utilisateur de saisir 3 notes (donc 3 réels) et qui ache la moyenne
des trois notes.
2. Recopier et modier légèrement ce programme :
Ajouter quelques lignes au programme pour que celui-ci ache en plus un commentaire qui sera :
Bravo impossible de ne pas valider : si la somme des notes vaut 40 ou plus
Dommage vous ne pouvez plus valider : si la somme des 3 notes est strictement inférieure à 20
C'est encore possible de valider : dans les autres cas.
3. Recopier et modier légèrement ce programme :
La note nale est obtenue avec une quatrième note : ce sera la moyenne des 4 notes. Suite à l'achage
précédent on indiquera dans le dernier cas la note à obtenir pour avoir au moins 10 de moyenne.
Exemples :
note 1 ? 12
note 2 ? 11
note 3 ? 18
moyenne des 3 notes actuelles 13.666666666666666
bravo impossible de ne pas valider
>>>
note 1 ? 5
note 2 ? 4
note 3 ? 7
moyenne des 3 notes actuelles 5.333333333333333
dommage vous ne pouvez plus valider
>>>
note 1 ? 10
note 2 ? 9
note 3 ? 13
moyenne des 3 notes actuelles 10.666666666666666
c est jouable, il faut avoir au moins 8 la prochaine fois
>>>
'
4. Recopier et modier légèrement ce programme :
Dans le cas où la personne est sûre de valider on lui demandera quelle mention elle souhaite avoir et on
lui indiquera la note à obtenir pour réaliser son objectif.
Exemples :
note 1 ? 13
note 2 ? 15
note 3 ? 15
moyenne des 3 notes actuelles 14.333333333333334
bravo impossible de ne pas valider
vous voulez avoir mention TP, B, AB, P ? TB
ce n est pas possible
'
note 1 ? 13
note 2 ? 15
note 3 ? 15
moyenne des 3 notes actuelles 14.333333333333334
bravo impossible de ne pas valider
vous voulez avoir mention TP, B, AB, P ? B
c est jouable , il faut avoir au moins 13 la prochaine fois
'
Exercice 6 résolution équation du second degré
Écrire un programme qui demande à l'utilisateur de saisir 3 réels a, b et c puis qui ache le résultat de la
résolution de l'équation ax + bx + c = 0 avec a non nul.
2
Remarque : pour calculer la racine carrée vous pourrez utiliser une puissance 0.5 avec x**0.5
Exemples :
resolution de ax2+bx+c=0
valeur de a ? 1
valeur de b ? 2
valeur de c ? 1
l equation 1.0 x2 + 2.0 x + 1.0 = 0 a une solution double qui vaut −1.0
'
resolution de ax2+bx+c=0
valeur de a ? 1.5
valeur de b ? 1.5
valeur de c ? 1.5
l equation 1.5 x2 + 1.5 x + 1.5 = 0 n a pas de solution dans R
' '
resolution de ax2+bx+c=0
valeur de a ? 1
valeur de b ? 1
valeur de c ? -0.75
l equation 1.0 x2 + 1.0 x + −0.75 = 0 a deux solutions dans R −1.5 et 0.5
'
Exercice 7
Ce numéro d'identication unique de l'individu est formé de 13 chires : le sexe (1 chire), l'année de naissance
(2 chires), le mois de naissance (2 chires) et le lieu de naissance (5 chires : 2 chires pour le département
puis 3 chires pour le lieu). Les 3 chires suivants correspondent à un numéro d'ordre qui permet de distinguer
les personnes nées au même lieu à la même période.
Par exemple 199091411111 correspond à un homme né en septembre 99 dans le calvados. Écrire un script qui
demande son nom et son numéro à l'utilisateur puis ache un texte style :
Exemple :
Bonjour Monsieur TRUC
Vous êtes né en septembre 1999 (numero de département 14) et vous avez 22 ans.
Votre identiant sera TRU1499
L'identiant sera fabriqué avec les 3 premières lettres du nom, le département et l'année de naissance. Si le nom
a moins de 3 lettres il sera pris en entier et on rajoute des étoiles comme par exemple DU*5698 Pour l'achage
de l'année de naissance on rajoutera devant 19 ou 20 selon l'année .
Exercice 8 gestions d'heures
a. Écrire un programme qui demande à l'utilisateur trois entiers h,m,s correspondants à h heures m minutes et
s secondes, et qui ache le nombre de secondes écoulées depuis 0h0m0s.
Par exemple si l'utilisateur a saisi h = 1, m = 2, s = 12 le programme devra acher 3732 (car 12 + 2 ∗ 60 + 1 ∗
3600 = 3732)
b. Rajouter à ce programme l'achage de l'heure une seconde après l'heure correspondant aux chires saisis.
Exemples :
Bonjour, quelle est la valeur de h ? 23
Bonjour, quelle est la valeur de m ? 59
Bonjour, quelle est la valeur de s ? 59
il sera 0 h 0 m 0 s
Bonjour, quelle est la valeur de h ? 12
Bonjour, quelle est la valeur de m ? 59
Bonjour, quelle est la valeur de s ? 59
il sera 13 h 0 m 0 s
Bonjour, quelle est la valeur de h ? 12
Bonjour, quelle est la valeur de m ? 56
Bonjour, quelle est la valeur de s ? 59
il sera 12 h 57 m 0 s
Bonjour, quelle est la valeur de h ? 15
Bonjour, quelle est la valeur de m ? 45
Bonjour, quelle est la valeur de s ? 45
il sera 15 h 45 m 46 s