Examen Programmation Python
Télécharger PDFCPGE Mohammedia
Durée: 1h
DS N°5
Module: Programmation Python
Barème: Note /20
Classe: TSI
Année de formation: 2013 - 2014
Documents non autorisés
Exercice 1 (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
Écrire 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) 1 2 3 6 >>>Diviseurs(T,9) 1 3 9
Question 2
Écrire 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] >>>Existe(T,100) False >>>T=[10,2,10,120] >>>Existe(T,2) True
Question 3
Écrire 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] >>>T2=[1,3,6] >>>EltCom(T1,T2) [1,3,6] >>>T1=[1,2,10,120] >>>T2=[1,5] >>>EltCom(T1,T2) [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) 15 >>>MaxTab(T) 12
Question 5
Écrire une fonction d'entête int pgcd (int a, int b ) qui retourne le pgcd de a et b en utilisant les fonctions précédentes.
Exercice 2 (7 pts)
Question 1
Écrire une fonction d’entête def NbrPaires(T) qui retourne le nombre des éléments paires 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) 3 >>>NbrPaires(T) 0
Question 2
Écrire 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) False >>>TousPaires(T) True
Question 3
Écrire 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) 2 >>>Occurencepaire(T) -1
Question 4
Écrire 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) 10 12 0 >>>Extrait(T) 2 16
Exercice 3 (6 pts)
Question 1
Écrivez 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)
11 10 1 10 4 10
>>>Somme2Tab(T1,T2,4)
0 2 4 6
Question 2
Écrivez 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) True >>>T1inclusT2(T1,T2) False
Question 3
Écrivez 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)
[4,8,7,9,1,5,4]
>>>SupprimerDernier(T)
[0,1,2,3,4]
FAQ
Qu'est-ce que le pgcd de deux entiers?
Le pgcd (plus grand commun diviseur) de deux entiers m et n est le plus grand entier q qui divise à la fois m et n.
Comment trouver les diviseurs d'un entier?
Pour trouver les diviseurs d'un entier n, il suffit de vérifier quels nombres divisent n sans laisser de reste.
Qu'est-ce qu'un tableau en Python?
Un tableau en Python est une structure de données qui permet de stocker une collection d'éléments de même type.