Devoir No 1#
Récursivité#
On considère le code suivant :
fonction f(n)
SI n = 1 ALORS
renvoyer 0
SINON
renvoyer 1 + f(n // 2)
FINSI
É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
Donner la définition d’une fonction récursive.
Quel est le point de vigilance d’une fonction récursive ?
Programmation orienté objet#
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.