En python, les tableaux et les listes sont confondus. Dans ce TD, nous utiliserons indifférament le vocabulaire "tableau" ou "liste" pour parler des listes. On désignera par n la taille du tableau.
Décrivez la mémoire et l'affichage que vous obtiendrez si vous exécutez le code du programme suivant :
s = [0 , 0] t = s t[0] = 5 s[1] = 9 print( s ) print( t )
Écrire une procédure echange(t,i,j), où t est un tableau et i, j deux indices de ce tableau, qui modifie le tableau t de manière à ce que les valeurs contenues à la i-ième place et la j-ième place du tableau soient échangées.
Voici le code d'une procédure nommée mystere(t,i,p) prenant pour paramètres un tableau t et deux entiers positifs i et j :
def mystere(t,i,p):
if i+p >= len(t):
print("Erreur")
else:
for k in range(p):
echange(t,k+i,k+i+1)
Qu'effectue la procédure mystere(t,i,p) ? On pourra regarder l'effet de la fonction pour t=[3,4,0,1,8], i=0, p=3 ; puis pour le même t mais avec i=2 et p=2.
Écrire une condition nécessaire et suffisante sur les t[i] pour que le tableau soit un palindrome.
Écrire une procédure palindrome(t) qui détermine si un tableau t est un palindrome, c'est-à-dire un tableau tel que lorsque l'on lit les cases "par indices croissants" (de 0 à n-1), on obtient la même séquence que si l'on lit les cases "par indices décroissants" (de n-1 à 0). (n est la taille du tableau.)
Par exemple, [3,4,1,4,3] et [12,0,4,8,8,4,0,12] sont des palindromes, mais [1,2,3,1,2,3] ou [4,6,6,4,2] ne le sont pas.
Écrire une procédure miroir(t) qui modifie un tableau t en son miroir. De manière plus précise, si t contient les valeurs t[0],t[1], ..., t[n-1] dans cet ordre, alors après exécution de miroir(t), t contiendra les valeurs t[n-1], t[n-2], ..., t[0] dans cet ordre.
Par exemple, si t=[3,4,0,1,8], alors la procédure miroir(t) modifie t en [8,1,0,4,3].
suiteag(n) qui renvoie un tableau t de longueur n tel que t[k] soit le k-ième élément de la suite
définie par
et pour
,
fact(n) qui renvoie un tableau t de longueur n tel que
.
fibo(n) qui renvoie un tableau t de longueur n tel que t[k] soit le k-ième nombre de Fibonacci
, défini par
et pour
:
sommepuissance(n,a) qui renvoie un tableau t de longueur n tel que
Écrire une procédure add(t) qui modifie un tableau t en un tableau v de manière à ce que pour tout
, on ait :
et
.
Par exemple, si t=[3,4,0,1,8], alors la procédure add(t) modifie t en [7,4,1,9,8].
Écrire une procédure add2(t) qui modifie un tableau t en un tableau
de manière à ce que pour tout
, on ait :
.
Écrire une procédure add3(t) qui modifie un tableau t en un tableau v de manière à ce que pour tout
, on ait :
et
.