Aller au contenu

Index des sujets 2023

Corrigé sujet 09 - Année : 2023

Sujet 09 - 2023

Exercice 1

1
2
3
4
5
6
7
8
def multiplication(a,b):
    produit=0
    for i in range(abs(a)):
        produit += abs(b)
    if (a>0 and b<0) or (a<0 and b>0): 
        return -produit
    else:
        return produit

Commentaires

  1. On peut rappeler la règle des signes pour un produit :
    • un produit est négatif si les deux facteurs ne sont pas de même signe (ligne 5)
    • et positif sinon.
  2. Si a et b sont deux entiers positifs : \(a \times b = \underbrace{b + b + \dots + b}_{a \quad \mathrm{termes}}\)
  3. On peut aussi proposer une solution n'utilisant pas la valeur absolue :
    def multiplication(n1, n2):
    p = 0
    if n1 > 0 :
        for i in range(n1):
            p = p + n2
    else:
        for i in range(-n1):
            p = p - n2
    return p
    

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def chercher(tab, n, i, j):
    if i < 0 or j > len(tab): #(1)
        return None
    elif i > j:
        return None
    m = (i + j) // 2 #(2)
    if tab[m] < n:
        return chercher(tab, n, m+1, j) #(3)
    elif tab[m] > n:
        return chercher(tab, n, i, m-1)
    else:
        return m
  1. L'indice du dernier élément d'un tableau tab est len(tab)-1.
  2. Calcul de l'indice m au milieu
  3. On peut chercher après l'indice m à cause du strictement inférieur dans le test de comparaison tab[m]<n.