1 Tableau à une dimension 2 Plan • Les tableaux en algorithmique ▫ Définition ▫ Déclaration ▫ Accès aux éléments • Les tableaux en python • Passage des paramètres en python (LES LISTES) • Exercices Pourquoi les tableaux? Algorithme Fibonacci Variable i,n,t0,t1,t2: entier Debut Lire(n) t00 t11 Pour i2 jusqu’à n faire t2t0+t1 t0t1 t1t2 Fp fin • Cet algorithme permet de garder que les trois dernières valeurs et donc les autres valeurs seront perdues. • Cet algorithme sera évidement incapable de stocker toutes les valeurs des termes d’ordre inférieur à n-1 pour un calcul ultérieur. Une solution à ce problème est d’utiliser une variable indicée ou un tableau. 3 4 Définition • Un tableau est une liste de données de même type • • • • • représenté par un nom de variable unique. Les différentes données sont stockées dans des cases identifiées par le nom du tableau et un indice suivant la position de la donnée. La première case aura pour indice 0. Pour un tableau de N données les indices seront de 0 à N-1. Ce type de tableau est unidimensionnel c’est-à-dire un tableau à une seule dimension (vecteur) On peut trouver des tableaux multidimensionnel. 5 Déclaration et accès aux éléments: • La déclaration d’un tableau se fait dans la partie déclarative de l’algorithme: • <Nom Tableau>[<taille>]:type • Exemple: • Montab[50]:entier indices 0 1 valeurs Montab[0] 2 ... … … … …. … 49 6 Les tableaux en python • En python les tableaux sont représentés par des listes. • Déclaration et initialisation d’un tableau: Nom_tableau=[valeur]*taille. Exemple: initialisation d’un tableau de taille 50. Déclaration d'un tableau avec initialisation par des zéros : L=[0]*50 • Déclaration d'un tableau avec initialisation par des uns : L=[1]*50 • Déclaration d'un tableau avec initialisation par des valeurs L=[1,2, 3,4,5,6,7,8,9,10] 7 Passage des paramètres en python • Rappel: 8 Listes et références >>> s = [1,2,3] >>> t = s >>> s is t True 1.Créer une liste de 3 objets entiers (valant 1, 2 et 3), de mettre dans s la référence à cette liste et ensuite de donner la même référence à t; et donc s is t répond True. 2.Donc s et t référencent la même liste comme le montre le schéma: 9 Exemple: def func(x, y): print(id(x)) x = 27 # la valeur locale de x est changée y[0] =9 # impact sur la référence partagée print(id(x)) #-----------------------PROGRAMME PRINCIPAL------------------------x=1 print(id(x)) y = [2, 3, 5, 7] func(x, y) # x est non mutable, mais y l'est print (x,y) Affichage-----------------------------------------------------------------------8731968 8731968 8732800 1 [9, 3, 5, 7] 10 Explications : Puisque x est un nom local à la fonction func, l'affectation à la valeur 27 n'a aucune incidence sur l'appelant. Par contre y dans l'appelant étant une liste (donc mutable), le résultat de l'affectation à y[0] est visible dans l'appelant à l'issue de l'exécution de la fonction. 11 12 Autre exemple: def swap(x, y): x, y = y, x # seules les valeurs locales sont changées x, y = 0, 1 swap(x, y) print (x, y) # 0, 1 x, y = [2, 3, 5, 7], [-2, -1, 0] swap(x, y) print (x, y) # [2, 3, 5, 7] [-2, -1, 0] 13 def swap(x, y): x[1], y[1] = y[1], x[1] x, y = [2, 3, 5, 7], [-2, -1, 0] swap(x, y) print (x, y) # [2, -1, 5, 7] [-2, 3, 0] 14 TD 7
© Copyright 2024 ExpyDoc