Epreuve Pratique Flashcards
(4 cards)
- Écrire une fonction voisins_entrants(adj, x) qui prend en paramètre le graphe donné sous forme de liste d’adjacence et qui renvoie une liste contenant les voisins entrants du sommet x, c’est-à-dire les sommets y tels qu’il existe une arête de y vers x.
- def nombre_suivant(s):
resultat = ‘’
chiffre = s[0]
compte = 1
for i in range(…):
if s[i] == chiffre:
compte = …
else:
resultat += … + …
chiffre = …
…
lecture_… = … + …
resultat += lecture_chiffre
return resultat
def voisins_entrants(adj,x):
resultat = []
for i in range(len(adj)):
if x in adj[i]:
resultat.append(i)
return resultat
def nombre_suivant(s):
resultat = ‘’
chiffre = s[0]
compte = 1
for i in range(1, len(s)):
if s[i] == chiffre:
compte = compte + 1
else:
resultat += str(compte) + chiffre
chiffre = s[i]
compte = 1
lecture_chiffre = str(compte) + chiffre
resultat += lecture_chiffre
return resultat
- Écrire une fonction max_et_indice qui prend en paramètre un tableau non vide tab (type Python list) de nombres entiers et qui renvoie la valeur du plus grand élément de ce tableau ainsi que l’indice de sa première apparition dans ce tableau.
L’utilisation de la fonction native max n’est pas autorisée.
2.
def est_un_ordre(tab):
‘’’
Renvoie True si tab est de longueur n et contient tous les
entiers de 1 à n, False sinon
‘’’
n = len(tab)
# les entiers vus lors du parcours
vus = …
for x in tab:
if x < … or x >… or …:
return False
… .append(…)
return True
def nombre_points_rupture(ordre):
‘’’
Renvoie le nombre de point de rupture de ordre qui représente
un ordre de gènes de chromosome
‘’’
# on vérifie que ordre est un ordre de gènes
assert …
n = len(ordre)
nb = 0
if ordre[…] != 1: # le premier n’est pas 1
nb = nb + 1
i = 0
while i < …:
if … not in [-1, 1]: # l’écart n’est pas 1
nb = nb + 1
i = i + 1
if ordre[i] != …: # le dernier n’est pas n
nb = nb + 1
1.
def max_et_indice(tab):
max_val = tab[0]
indice = 0
for i in range(1,len(tab)):
if tab[i] > max_val:
max_val = tab[i]
indice = i
return max_val,indice
2.
def est_un_ordre(tab):
n = len(tab)
vus = []
for x in tab:
if x < 1 or x > n or x in vus:
return False
vus.append(x)
return True
def nombre_points_rupture(ordre):
assert est_un_ordre()
n = len(ordre)
nb = 0
if ordre[0] != 1:
nb = nb + 1
i = 0
while i < n-1:
if ordre[i+1] - ordre[i] not in [-1, 1]:
nb = nb + 1
i = i + 1
if ordre[i] != n:
nb = nb + 1
- Écrire en Python une fonction fibonacciquiprendenparamètreunentier nsupposé
strictement positif et qui renvoie le terme d’indice n de cette suite. - def eleves_du_mois(eleves, notes):
note_maxi = 0
meilleurs_eleves = …
for i in range(…):
if notes[i] == …:
meilleurs_eleves.append(…)
elif notes[i] > note_maxi:
note_maxi = …
meilleurs_eleves = […]
return (note_maxi, meilleurs_eleves)
1.
def fibonnaci(n):
if n == 1 or n == 2:
return 1
a,b = 1,1
for _ in range(3, n+1):
a,b = b, a+b
return b
- def eleves_du_mois(eleves, notes):
note_maxi = 0
meilleurs_eleves = []for i in range(len(eleves)):
if notes[i] == note_maxi:
meilleurs_eleves.append(eleves[i])
elif notes[i] > note_maxi:
note_maxi = notes[i]
meilleurs_eleves = [eleves[i]]return (note_maxi, meilleurs_eleves)