TP 09 - Parcours séquentiel d'un tableau
| TD n°9 : Parcours séquentiel d'un tableau | Thème 4 : Langages et Programmation |
|---|---|
| EXERCICES TYPE EPREUVE PRATIQUE en Terminale | EXERCICES |
Exercice 9.1 :
Ecrire une fonction qui prend en paramètre un tableau d'entiers non vide et qui renvoie la moyenne de ces entiers. La fonction est spécifiée ci-après et doit passer les assertions fournies.
def moyenne (tab):
'''
moyenne(list) -> float
Entrée : un tableau non vide d'entiers
Sortie : nombre de type float
Correspondant à la moyenne des valeurs présentes dans le tableau
'''
def moyenne (tab):
'''
moyenne(list) -> float
Entrée : un tableau non vide d'entiers
Sortie : nombre de type float
Correspondant à la moyenne des valeurs présentes dans le tableau
'''
somme=0
for elt in tab:
somme+=elt
moy=somme/len(tab)
return moy
#Jeu de tests - A ne pas modifier
assert moyenne([1]) == 1
assert moyenne([1,2,3,4,5,6,7]) == 4
assert moyenne([1,2]) == 1.5
Exercice 9.2 :
Écrire une fonction recherche qui prend en paramètres elt un nombre et tab un tableau de nombres, et qui renvoie le tableau des indices de elt dans tab si elt est dans tab et le tableau vide [] sinon.
Exemples :
>>> recherche(3, [3, 2, 1, 3, 2, 1])
[0, 3]
>>> recherche(4, [1, 2, 3])
[]
def recherche(elt,tab):
reponse=[]
for indice in range(len(tab)):
if elt==tab[indice]:
reponse.append(indice)
return reponse
recherche(3, [3, 2, 1, 3, 2, 1])
recherche(4, [1, 2, 3])
Exercice 9.3 :
On a relevé les valeurs moyennes annuelles des températures à Paris pour la période allant de 2013 à 2019. Les résultats ont été récupérés sous la forme de deux listes :
- l’une pour les températures,
t_moy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7] - l’autre pour les années :
annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]
Écrire la fonction mini qui prend en paramètres le tableau releve des relevés et le tableau date des dates et qui renvoie la plus petite valeur relevée au cours de la période et l’année correspondante.
Exemple : >>> mini(t_moy, annees)
12.5 , 2016
def mini(t1,t2):
minimum=t1[0]
indicemini=0
for indice in range(len(t1)):
if t1[indice]<minimum:
minimum=t1[indice]
indicemini=indice
return minimum,t2[indicemini]
t_moy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7]
annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]
mini(t_moy, annees)
(12.5, 2016)
Exercice 9.4 :
Écrire une fonction maxi qui prend en paramètre une liste tab de nombres entiers et
renvoie un couple donnant le plus grand élément de cette liste, ainsi que l’indice de la
première apparition de ce maximum dans la liste.
Exemple :
>>> maxi([1,5,6,9,1,2,3,7,9,8])
(9,3)
def maxi(tab):
maximum=tab[0]
indicemaxi=0
for indice in range(len(tab)):
if tab[indice]>maximum:
maximum=tab[indice]
indicemaxi=indice
return (maximum,indicemaxi)
maxi([1,5,6,9,1,2,3,7,9,8])
(9, 3)
Exercice 9.5 :
Écrire une fonction RechercheMinMax qui prend en paramètre un tableau de nombres
non triés tab, et qui renvoie la plus petite et la plus grande valeur du tableau sous la
forme d’un dictionnaire à deux clés ‘min’ et ‘max’. Les tableaux seront représentés sous
forme de liste Python.
Exemples :
>>> tableau = [0, 1, 4, 2, -2, 9, 3, 1, 7, 1]
>>> resultat = rechercheMinMax(tableau)
>>> resultat
[ -2, 9]
>>> tableau = []
>>> resultat = rechercheMinMax(tableau)
>>> resultat
[ None, None]
def RechercheMinMax(tab):
if len(tab)==0:
return [None,None]
else:
minimum=tab[0]
maximum=tab[0]
for elt in tab:
if elt>maximum:
maximum=elt
if elt<minimum:
minimum=elt
return [minimum, maximum]
tableau = [0, 1, 4, 2, -2, 9, 3, 1, 7, 1]
RechercheMinMax(tableau)
[-2, 9]
def maxi(tab):
if len(tab)==0:
return None
else:
maximum=tab[0]
for elt in tab:
if elt>maximum:
maximum=elt
return maximum
def mini(tab):
if len(tab)==0:
return None
else:
minimum=tab[0]
for elt in tab:
if elt<minimum:
minimum=elt
return minimum
def rechercheMinMaxbis(tab):
return [mini(tab),maxi(tab)]
tableau = [0, 1, 4, 2, -2, 9, 3, 1, 7, 1]
RechercheMinMax(tableau)
[-2, 9]
Exercice 9.6 :
Écrire une fonction RechercheMin qui prend en paramètre un tableau de nombres non
trié tab, et qui renvoie le minimum et l'indice de la première occurrence du minimum de ce tableau. Les
tableaux seront représentés sous forme de liste Python.
Exemples :
>>> indice_du_min([5])
(5,0)
>>> indice_du_min([2, 4, 1])
(1,2)
>>> indice_du_min([5, 3, 2, 2, 4])
(2,2)
def RechercheMin(tab):
if len(tab)==0:
return None
else:
minimum=tab[0]
indicemini=0
for indice in range(len(tab)):
if tab[indice]<minimum:
minimum=tab[indice]
indicemini=indice
return (minimum, indicemini)
RechercheMin([2, 4, 1])
(1, 2)
Exercice 9.7 :
Écrire une fonction occurrence_max prenant en paramètres une chaîne de caractères chaine et qui renvoie le caractère le plus fréquent de la chaîne. La chaine ne contient que des lettres en minuscules sans accent. On pourra s’aider du tableau
alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o,','p','q','r','s','t','u','v','w','x','y','z']
et du tableau occurrence de 26 éléments où l’on mettra dans occurrence[i] le nombre d’apparitions de alphabet[i] dans la chaine. Puis on calculera l’indice k d’un maximum du tableau occurrence et on affichera alphabet[k]. Exemple :
>>> ch='je suis en terminale et je passe le bac et je souhaite poursuivre des etudes pour devenir expert en informatique’
>>> occurrence_max(ch)
‘e’
def occurrence_max(ch):
alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o,','p','q','r','s','t','u','v','w','x','y','z']
lettremax=''
maxi=0
for lettre in alphabet:
compteur=0
for caract in ch:
if lettre==caract:
compteur+=1
if compteur>maxi:
maxi=compteur
lettremax=lettre
return lettremax,maxi
ch='je suis en terminale et je passe le bac et je souhaite poursuivre des etudes pour devenir expert en informatique'
occurrence_max(ch)
('e', 21)