TP 4 : éléments de correction
Exercice 1
In [1]:
def recherche_ordonnee(tableau, but) :
    "recherche_ordonnee(tableau : list, but : float) -> bool"
    i = 0
    while tableau[i] <= but :
        if tableau[i] == but :
            return True
        else :
            i = i + 1
    return False
Exercice 2
In [2]:
def recherche_dichotomique(tableau, but) :
    "recherche_dichotomique(tableau : list, but : float) -> m : int ou str"
    n = len(tableau)
    deb = 0
    fin = n - 1
    while fin - deb >= 0 :
        m = (deb + fin) // 2
        if tableau[m] == but :
            return m
        elif tableau[m] > but :
            fin = m - 1
        else :
            deb = m + 1
    return 'L élément cherché ne se trouve pas dans la liste'
Calcul approché d'un zéro d'une fonction
In [3]:
def dichotomie(f, a, b, eps) :
    "dichotomie(f : function, a : float, b : float, eps : float) -> res : float"
    g = a
    d = b
    signe = 0
    if f(a) < 0 :
        signe = -1
    else :
        signe = 1
    while (d - g) > eps :
        m = (d + g) / 2
        if f(m) == 0 :
            res = m
            return res
        elif f(m) > 0 :
            if signe == -1 :
                d = m
            else :
                g = m
        else :
            if signe == -1 :
                g = m
            else :
                d = m
    res = (g + d) / 2
    return res
In [ ]: