Aller au contenu

Ep 26

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Programmer la fonction multiplication, prenant en paramĂštres deux nombres entiers n1 et n2, et qui renvoie le produit de ces deux nombres.

Les seules opĂ©rations autorisĂ©es sont l’addition et la soustraction.

🐍 Script Python
    >>> multiplication(3, 5)
    15
    >>> multiplication(-4, -8)
    32
    >>> multiplication(-2, 6)
    -12
    >>> multiplication(-2, 0)
    0
RĂ©ponse

Complétez le code ci-dessous

###
# Mettez votre code icibksl-nlbksl-nl



Solution

###
def multiplication(n1, n2):bksl-nl # on se ramĂšne d'abord au cas oĂč n1 et n2 sont tous les deux positifs :bksl-nl if n1 < 0:bksl-nl return -multiplication(-n1, n2)bksl-nl if n2 < 0:bksl-nl return -multiplication(n1, -n2)bksl-nlbksl-nl resultat = 0bksl-nl for py-und in range(n2):bksl-nl resultat += n1bksl-nl return resultatbksl-nlbksl-nl



EXERCICE 2⚓

Recopier et compléter sous Python la fonction suivante en respectant la spécification. On ne recopiera pas les commentaires.

RĂ©ponse

Complétez le code ci-dessous

###
def dichotomie(tab, x):bksl-nl """bksl-nl tab : tableau d’entiers triĂ© dans l’ordre croissantbksl-nl x : nombre entierbksl-nl La fonction renvoie True si tab contient x et False sinonbksl-nl """bksl-nl debut = 0bksl-nl fin = len(tab) - 1bksl-nl while debut <= fin:bksl-nl m = ...bksl-nl if x == tab[m]:bksl-nl return ...bksl-nl if x > tab[m]:bksl-nl debut = m + 1bksl-nl else:bksl-nl fin = ...bksl-nl return ...bksl-nlbksl-nl



Solution

###
def dichotomie(tab, x):bksl-nl """bksl-nl tab : tableau d’entiers triĂ© dans l’ordre croissantbksl-nl x : nombre entierbksl-nl La fonction renvoie True si tab contient x et False sinonbksl-nl """bksl-nl debut = 0bksl-nl fin = len(tab) - 1bksl-nl while debut <= fin:bksl-nl m = (debut + fin) // 2bksl-nl if x == tab[m]:bksl-nl return Truebksl-nl if x > tab[m]:bksl-nl debut = m + 1bksl-nl else:bksl-nl fin = m - 1bksl-nl return Falsebksl-nlbksl-nl



Exemple :

🐍 Script Python
    >>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33],28)
    True
    >>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33],27)
    False