Nom et Prénom: ANONJARA Josias Hamlain
Numéro: 05
Mention: Génie Mathématiques
EXERCICE PARTIE 1
Exercice 1
On écrit une fonction qui reçoit trois nombres entiers en paramètre et qui renvoie True si au moins deux
des trois entiers sont égaux, sinon False.
def au moins deux egaux(a, b , c)
return a == b or a == c or b == c
Exercice 2
On écrit une fonction qui reçoit un nombre entier en paramètre et qui renvoie true si cet entier est divisible
par 10 mais pas par 3.
def divisible par 10 mais pas par 3(n)
return(n % 10)==0 and(n % 3)= 0,
Exercice 3
écrivons une fonction qui prend en paramètre donné en heurs minute , seconde et qui retourne ce temps
converti en seconde
def temps en secondes(heures, minutes, secondes )
return heures * 3600 + minutes * 60 + secondes
Exercice 4
On écrit une fonction qui reçoit un nombre entier en paramètre et qui retourne le factoriel de ce nombre
.Calculer n! pour un entier n ≥ 0. On gère les erreurs si n n’est pas un entier ou est négatif.
def factorielle(n):
resultat=1
for k in range (1, n+1):
result *= k
return resultat
Exercice 5
On écrit une fonction qui reçoit un nombre entier en paramètre et qui retourne la valeur Un
def fibonacci(n)
if n < 2:
return n
else:
return Fibonacci (n -1) + Fibonacci (n - 2)
Exercice6
On écrit une fonction qui reçoit une chaîne de caractères en paramètre et qui retourne le nombre de
voyelles dans une chaîne .
def compter_voyelles(s):
voyelles = ("aeiouy")
compteur=0
for c in chaine :
if c in voyelle:
compteur += 1
return compteur
Exercice 7
On écrit une fonction qui reçoit un mot (chaine de caractères ) en paramètre et qui retourne True si le mot
(chaîne) ne contient que des voyelles minuscules sans accents, False sinon (pas de voyelles).
def tout_voyelles(mot):
voyelles (a,e,i,o,u,y)
for c in mot:
if c mot in voyelles:
return false
return True
Exercice 8
On écrit une fonction qui reçoit deux mots (chaînes de caractères) en paramètre et qui retourne True si
les deux mots contiennent autant de voyelles (minuscules, sans accents)
def tr voyelles(mot1, mot2):
voyelles = "aeiouy"
ph1 = 0
ph2 = 0
for lettre in mot1:
if lettre in voyelles:
ph1 += 1
for lettre in mot2:
if lettre in voyelles:
ph2 += 1
return ph1 == ph2
Exercice9
Une fonction qui reçoit deux nombres entiers en paramètre et qui retourne leur PGCD.
def pgcd(a, b):
while b== 0
a, b = b, a % b
return a
EXER ICE PARTIE 2
Exercice 1
1) Fonction coder en python
def f(n):
if n == 0:
print("Partez!")
else:
print(n)
f(n-1)
a. Le commande f(5) affiche :
f(5)
-> print(5)
->f(4)
->print (4)
->f(3)
->print(3)
->f(2)
->print(2)
->f(1)
-> print(1)
->f(0)
->print ("partez!")
D'où
5,4,3,2,1 ,"partez"
[Link] dit que cette fonction est récursive parce qu'elle s'appelle elle-même dans le bloc "else"avec
"f(n-1)"
2-a)On recopie le code et complete:
def ajouter(s, liste):
res = [ ]
for m in liste:
[Link](s + m)
return res
b. Le commande ajouter par ("b", ["a","b","c"]) renvoie :
=>["ba", "bb", "bc"]
c. Le commande ajouter par ("a", [""]) renvoie :
=>["a"]
3) Fonction en Python
def produit(s, n):
if n == 0:
return [""]
else:
res = [ ]
for i in range(len(s)):
res = res + ajouter(s[i], produit(s, n-1))
return res
a. La commande de produit("ab", 0) renvoie :
=> [""].
Non, ce n'est pas une liste vide parce qu'elle contenant la chaîne vide.
b. La commande produit("ab", 1) renvoie
= ajouter ("a" ,[" "])+ ajouter ("b" ,[" "])
= ["a"]+["b"]
= ["a" ,"b"]
Donc ("ab",1) renvoie ["a","b"]
c. La commande produit("ab", 2) renvoie :
comme ("ab" ,1)=["a" ,"b"], alors on ajoute ( "a" ,[ "a", "b"]) + ("b", ["a", "b"])
on a : ["aa", "ab"] + ["ba", "bb"]= ["aa" ,"ab" ,"ba" ,"bb"]
D'où ("ab",2) = ["aa","ab","ba","bb"].
Exercice 2
Tableau de données :
flotte = {
12: {"type": "electrique", "etat": 1, "station": "Prefecture"},
80"type": "classique", "etat": 0, "station": "Saint-Leu"},
45: {"type": "classique", "etat": 1, "station": "Baraban"},
41: {"type": "classique", "etat": -1, "station": "Citadelle"},
26: {"type": "classique", "etat": 1, "station": "Coliseum"},
28: {"type": "electrique", "etat": 0, "station": "Coliseum"},
74: {"type": "electrique", "etat": 1, "station": "Jacobins"},
13: {"type": "classique", "etat": 0, "station": "Citadelle"},
83: {"type": "classique", "etat": -1, "station": "Saint-Leu"},
22: {"type": "electrique", "etat": -1, "station": "Joffre"}
1
1-a) L 'instruction flotte[26] renvoie
= > {"type": "classique", "etat": 1, "station": "Coliseum"}
1.b)L 'instruction flotte[80]["etat"] :
80"type": "classique", "etat": 0, "station": "Saint-Leu"},
Donc [80]["etat"] =0
1.c) L'instruction flotte[99]["etat"] :
=> comme 99 n'est pas dans cette flotte
alos que [99 ]["etet"] renvoie un" Erreur "
[Link] script d'une fonction
def proposition(choix):
for v in flotte:
if flotte[v]["type"] == choix and flotte[v]["etat"] == 1:
return flotte[v]["station"]
2.a) Les valeurs possibles de la variable choix sont :
=> choix "electrique" ou choix " classique"
2.b) Explication ce que renvoie la fonction lorsqu'on choisit comme paramètre l'une de valeur possible de
la variable choix
→ Elle renvoie où se trouve ce vélos (for v in flotte:)
→ elle s'arrête dès que trouve un vélo du type choix et disponible (etat
== 1),
3.a) On écrit un script en langage Python qui affiche les identifiants (id velo) de tous les velos disponibles
à la station "citadelle".
for v in flotte:
if flotte[v]["station"] == "Citadelle" and flotte[v]["etat"] == 1:
print(v)
=> Il n y a pas de velo disponible à "citadelle" dans le donnée
donc il n y a rien affiche.
3.b) On écrit un script en langage Python qui affiche l’identifiant ( id , velo) et la station de tous les vélos
électriques qui ne sont pas en panne.
Vélo 12 -> station : Prefecture
Vélo 28 -> station : Coliseum
Vélo 74 -> station : Jacobins
4.)
stations = {
'Prefecture': (49.8905, 2.2967),
'Saint-Leu': (49.8982, 2.3017),
'Coliseum': (49.8942, 2.2874),
'Jacobins': (49.8912, 2.3016)}
=>On écrit une fonction qui prend les coordonnées GPS de l’utilisateur
def stations_proches(user pos):
resultat = {}
for nom station, coord in [Link]():
d = distance(user pos, coord)
if d < 800:
velos dispos = [v for v in flotte if flotte[v]["station"] ==
nom station and flotte[v]["etat"] ==1]
if len(velos dispos) :
resultat [nom station] = {"distance": d, "velos": velos
dispos}
return resultat