Programmation en Python
DS
Exercice1 : ( 7 pts)
Mathématiquement q est un diviseur commun de m et n si q divise à la fois m et n (le reste de la division
entière est 0). Le plus grand diviseur commun (pgcd) de m et n est le plus grand entier q divisant à la fois m et
n. Pour trouver le pgcd de deux entiers m et n il suffit de trouver tous les diviseurs de a et b, et trouver le
diviseur commun le plus grand
L'exemple ci-dessous illustre le calcul de pgcd de 30 et 105.
Diviseurs de 30: 1, 2, 3, 5, 6, 10, 15, 30
Diviseurs de 105: 1, 3, 5, 7, 15, 21, 35, 105
pgcd(30, 105) = 15
Pour cela nous proposons d'exploiter un tableau afin de trouver le pgcd de deux entiers a et b.
Question 1. Ecrire une fonction d’entête def Diviseurs(T,n) qui permet de mémoriser dans le
tableau T tous les diviseurs de n.
Exemples de la fonctionnalité attendue:
>>>Diviseurs(T,6) >>>Diviseurs(T,9)
1236 139
Question 2. Ecrire une fonction d’entête def Existe(T,x) qui retourne True si x existe dans le tableau T
ou False sinon.
Exemples de la fonctionnalité attendue:
>>>T=[1,3,10,15,12,0] >>>T=[10,2,10,120]
>>>Existe(T,100) >>>Existe(T,2)
False True
Question 3. Ecrire une fonction d’entête def EltCom(T1,T2) qui retourne un nouveau tableau qui
contient les éléments communs de deux tableaux T1 et T2.
Exemples de la fonctionnalité attendue:
>>>T1=[1,2,3,6] >>>T1=[1,2,10,120]
>>>T2=[1,3,6] >>>T2=[1,5]
>>>EltCom(T1,T2) >>>EltCom(T1,T2)
[1,3,6] [1]
Question 4. Écrire une fonction d'entête def maxTab(T) qui retourne la valeur maximale du tableau T.
Exemples de la fonctionnalité attendue:
>>>T=[1,3,10,15,12,0] >>>T=[1,3,12,0]
>>>MaxTab(T) >>>MaxTab(T)
15 12
Question 5. Écrire une fonction d'entête def pgcd(a,b) qui retourne le pgcd de a et b en utilisant les
fonctions précédentes.
-1-
Exercice 2 : (7 pts)
Question 1. Ecrire une fonction d’entête def NbrPaires(T) qui retourne le nombre des éléments pairs
qui existent dans le tableau T.
Exemples de la fonctionnalité attendue:
>>>T=[1,3,10,15,12,0] >>>T=[1,3,11,15,101,21]
>>>NbrPaires(T) >>>NbrPaires(T)
3 0
Question 2. Ecrire une fonction d’entête def TousPaires(T) qui retourne True si tous éléments de T
sont paires ou False sinon.
Exemples de la fonctionnalité attendue:
>>>T=[1,3,10,15,12,0] >>>T=[10,2,10,120]
>>>TousPaires(T) >>>TousPaires(T)
False True
Question 3. Ecrire une fonction d’entête def Occurencepaire(T) qui retourne la position du premier
nombre paire dans le tableau T ou retourne -1 si T ne contient aucun nombre paire
Exemples de la fonctionnalité attendue:
>>>T=[1,3,10,15,12,0] >>>T=[1,3,11,15,917]
>>>Occurencepaire(T) >>>Occurencepaire(T)
2 -1
Question 4. Ecrire une fonction d’entête def Extrait(T) qui retourne un nouveau tableau contenant
que les éléments paires de T
Exemples de la fonctionnalité attendue:
>>>T=[1,3,10,15,12,0] >>>T=[2,3,11,16,917]
>>>Extrait(T) >>>Extrait(T)
10 12 0 2 16
Exercice 3 (6 pts)
Question 1. Ecrivez une fonction d’entête def Somme2Tab(T1,T2,n), qui à partir de deux tableaux de
même longueur n retourne un nouveau tableau qui sera la somme des éléments des deux tableaux de départ.
Exemples de la fonctionnalité attendue:
>>>T1=[4,8,7,9,1,5] >>>T1=array('i',range(4))
>>>T2=[7,2,-6,1,3,5] >>>T2=array('i',range(4))
>>>Somme2Tab(T1,T2,6) >>>Somme2Tab(T1,T2,4)
11 10 1 10 4 10 0246
Question 2. Ecrivez une fonction d’entête def T1inclusT2(T1,T2), qui retourne True si le tableau T1
est inclus dans le tableau T2 c-à-d tous les éléments de T1 appartient au tableau T2. La fonction retourne
False dans le cas contraire.
Exemples de la fonctionnalité attendue:
>>>T1=[4,8,7] >>>T1=[4,8,17]
>>>T2=[8,20,4,14,7,11] >>>T2=[8,20,4,14,7,11]
>>>T1inclusT2(T1,T2) >>>T1inclusT2(T1,T2)
True False
Question 3. Ecrivez une fonction d’entête def SupprimerDernier(T) qui retourne le même tableau T
en supprimant le dernier élément. (il ne faut pas utiliser la fonction del ou remove)
Exemples de la fonctionnalité attendue:
>>>T=[4,8,7,9,1,5,4,6] >>>T1=array('i',range(6))
>>>SupprimerDernier(T) >>>SupprimerDernier(T)
[4,8,7,9,1,5, 4] [0,1,2,3,4]
-2-