Devoir No 1#

Récursivité#

Exercise 1

On considère le code suivant :

fonction f(n)
    SI n = 1 ALORS
        renvoyer 0
    SINON
        renvoyer 1 + f(n // 2)
    FINSI

Exercise 2

Écrire une fonction récursive qui donne le maximum d’un tableau de nombre entiers écrit sous la forme d’une liste Python.

def maxi(T: list) -> int:
    pass

Exercise 3

  1. Donner la définition d’une fonction récursive.

  2. Quel est le point de vigilance d’une fonction récursive ?

Programmation orienté objet#

Exercise 4

Proposer une classe Chaine qui stocke une chaine de caractères sous la forme d’une liste et qui soit muable.

Note

La classe doit passer les tests suivants :

chaine = Chaine('rale')
assert chaine[1] == 'a'
assert chaine.append('r') == Chaine('raler')
chaine[1] = 'o'
assert chaine[1] == 'o'

On peut définir les méthodes spéciales suivantes :

  • Chaine.__getitem__(self, indice) pour récupérer un indice ;

  • Chaine.__setitem__(self, indice, valeur) pour affecter une nouvelle valeur à un indice.