TP Révision Programmation
TP Révision Programmation
Terminale NSI
TP révision NSI
Exercice 1
Programmer une fonction renverse, prenant en paramètre une chaîne de caractères non vide mot et
renvoie cette chaîne de caractères en ordre inverse.
Exemple :
>>> renverse("")
""
>>> renverse("abc")
"cba"
>>> renverse("informatique")
"euqitamrofni"
Exercice 2
Écrire une fonction moyenne qui prend en paramètre un tableau d’entiers non vide et qui renvoie un
nombre flottant donnant la moyenne de ces entiers.
Attention : il est interdit d’utiliser la fonction sum ou la fonction mean (module statis#tics) de
Python.
Exemples
>>> moyenne([1])
1.0
>>> moyenne([1, 2, 3, 4, 5, 6, 7])
4.0
>>. moyenne([1, 2])
1.5
Exercice 3
Écrire une fonction compte_occurrences prenant en paramètres une valeur x et un tableau tab (de
type list) et renvoyant le nombre d’occurrences de x dans tab.
L’objectif de cet exercice étant de parcourir un tableau, il est interdit d’utiliser la méthode count des
listes Python.
Exemples :
>>> compte_occurrences(5, [])
0
>>> compte_occurrences(5, [-2, 3, 1, 5, 3, 7, 4])
1
>>> compte_occurrences('a', ['a','b','c','a','d','e','a'])
3
Exercice 4
Page 2/4 TP1 révision
Terminale NSI
Écrire une fonction recherche_min qui prend en paramètre un tableau de nombres tab, et qui
renvoie l’indice de la première occurrence du minimum de ce tableau. Les tableaux
seront représentés sous forme de liste Python.
Exemples :
>>> recherche_min([5])
0
>>> recherche_min([2, 4, 1])
2
>>> recherche_min([5, 3, 2, 2, 4])
2
>>> recherche_min([-1, -2, -3, -3])
2
Exercice 5
Écrire une fonction recherche qui prend en paramètres elt un nombre entier et tab un tableau de
nombres entiers (type list), et qui renvoie l’indice de la dernière occurrence de elt dans tab si elt est
dans tab et None sinon.
Exemples :
>>> recherche(1, [2, 3, 4]) # renvoie None
>>> recherche(1, [10, 12, 1, 56])
2
>>> recherche(1, [1, 0, 42, 7])
0
>>> recherche(1, [1, 50, 1])
2
>>> recherche(1, [8, 1, 10, 1, 7, 1, 8])
5
Exercice 6
Exemples :
>>> recherche_indices_classement(3, [1, 3, 4, 2, 4, 6, 3, 0])
([0, 3, 7], [1, 6], [2, 4, 5])
>>> recherche_indices_classement(3, [1, 4, 2, 4, 6, 0])
([0, 2, 5], [], [1, 3, 4])
>>>recherche_indices_classement(3, [1, 1, 1, 1])
([0, 1, 2, 3], [], [])
>>> recherche_indices_classement(3, [])
([], [], [])
Page 3/4 TP1 révision
Terminale NSI
Exercice 7
Exercice 8
Exemples :
>>> 5 % 2
1
>>> 5 // 2
2
>>> ecriture_binaire_entier_positif(0)
'0'
>>> ecriture_binaire_entier_positif(2)
'10'
>>> ecriture_binaire_entier_positif(105)
'1101001'
Exercice 9
Page 4/4 TP1 révision
Terminale NSI
On considère des chaînes de caractères contenant uniquement des majuscules et des caractères *
appelées mots à trous.
Par exemple INFO*MA*IQUE, ***I***E** et *S* sont des mots à trous.
Programmer une fonction correspond :
• qui prend en paramètres deux chaînes de caractères mot et mot_a_trous où mot_a_trous est un mot
à trous comme indiqué ci-dessus ;
• et qui renvoie :
– True si on peut obtenir mot en remplaçant convenablement les caractères '*' de mot_a_trous ;
– False sinon.
Exemple :
>>> correspond('INFORMATIQUE', 'INFO*MA*IQUE')
True
>>> correspond('AUTOMATIQUE', 'INFO*MA*IQUE')
False
>>> correspond('STOP', 'S*')
False
>>> correspond('AUTO', '*UT*')
True
Exercice 10
Écrire une fonction couples_consecutifs qui prend en paramètre un tableau de nom#bres entiers tab
non vide (type list), et qui renvoie la liste Python (éventuellement vide) des couples d’entiers
consécutifs successifs qu’il peut y avoir dans tab.
Exemples :
>>> couples_consecutifs([1, 4, 3, 5])
[]
>>> couples_consecutifs([1, 4, 5, 3])
[(4, 5)]
>>> couples_consecutifs([1, 1, 2, 4])
[(1, 2)]
>>> couples_consecutifs([7, 1, 2, 5, 3, 4])
[(1, 2), (3, 4)]
>>> couples_consecutifs([5, 1, 2, 3, 8, -5, -4, 7])
[(1, 2), (2, 3), (-5, -4)]