listes et matrices (tableau)

publicité
BTS-SIO
listes de listes, matrices
Travaux pratiques
1
Définition
Une liste (ou vecteur) est une variable d’un ensemble de n variables, c’est variables elles mêmes peuvent être
des listes, on parle alors de matrices (ou de tableaux). Une liste de n nombres ai s’écrit [a0 ; a1 ; ..; an−1 ] en
programmation la séparation d’éléments se fait avec des virgules, et les séparateurs de décimales des points.
Une matrice à deux dimensions (un tableau) s’écrit [[]; []; ...; []].
2
Exemples d’utilisation des listes de listes
Dans les fiches précédentes nous avons déjà utilisé des listes à une dimension (vecteur). Ici nous allons nous
concentrer sur les tableaux.
2.1
Exemple : tableau d’évolution
Voici un tableau qui présente le SMIC en France depuis 2010.
année
smic brut mensuel en euros pour 151,67h de travail
taux d’évolution néant
2010
1343,77
2011
1365,0
2012
1398,37
2013
1430,22
L’idée est de mettre en place ce tableau T , l’utilisateur entrant chaque année la nouvelle valeur du SMIC :
Algorithm 1 évolution du SMIC :
Entrées: annee, smic
Sorties: T
annee ←− [2010; 2011; 2012; 2013]
smic ←− [1343, 77; 1365, 0; 1398, 37; 1430, 22]
for i = 1 to 3 do
smic[i]
taux[i] ←− smic[i−1]
−1
end for
T ←− [annee; smic; taux]
S.Mirbel
page 1 / 3
BTS-SIO
2.2
En Python
Saisir et tester cet algorithme.
3
3.1
Exercices
Exemple de présentations des suites géométriques (ou arithmétiques)
Le but de l’algorithme est de donner les termes d’une suite géométrique et leur cumul associé suivant la raison
de la suite et son premier terme.
Algorithm 2 Suite géométrique:
Entrées: q ∈ R∗ (raison), u ∈ R (premier terme au rang 0), n ∈ N (nombre de termes)
Sorties: C = [[rangs]; [termes]; [cumul]]
C ←− [[0]; [u]; [u]]
for i = 1 to n do (le rang n est atteint)
c(i;0) ←− i
c(i;1) ←− c(i−1;1) ∗ q
c(i;2) ←− c(i−1;2) + c(i;1)
end for
Traduire cet algorithme en Python, le tester.
S.Mirbel
page 2 / 3
BTS-SIO
3.2
Couleur d’une image
On peut coder une image carrée de taille n × n par des couleurs (exemple de trois couleurs numérotées 0 ;1 ;2)
à l’aide d’une matrice de nombre comme suit :
– on note c(i;j) un élément de la matrice, i indique les lignes, j les colonnes, (i; j) ∈ J1; nK2
– ∀i ∈ J1; nK, c(i;i) = 1
– ∀i ∈ J1; nK, i > j ∧ j ∈ J1; nK, c(i;j) = 0
– ∀i ∈ J1; nK, i < j ∧ j ∈ J1; nK, c(i;j) = 2
Exemple : une matrice image de taille 4
1
0
0
0
2
1
0
0
2
2
1
0
2
2
2
1
Programmer en Python une telle matrice dont la taille est définie par l’utilisateur.
3.3
Une autre image couleur
On peut coder une image carrée de taille n × n par des couleurs (exemple de trois couleurs numérotées
1 ;2 ;... ;n) à l’aide d’une matrice de nombre comme suit :
– on note c(i;j) un élément de la matrice, i indique les lignes, j les colonnes, (i; j) ∈ J1; nK2
– ∀i ∈ J1; nK, c(i;i) = n
– ∀i ∈ J1; nK, ∀k ∈ J1; n − iK, c(i+k;i) = n − k
– ∀i ∈ J1; nK, ∀k ∈ J1; n − iK, c(i;i+k) = n − k
Exemple : une matrice image de taille 4
4
3
2
1
3
4
3
2
2
3
4
3
1
2
3
4
Programmer en Python une telle matrice dont la taille est définie par l’utilisateur.
3.4
Opération sur les matrices
Opération par opération, créer les fonctions des opérations sur les matrices (addition, multiplication par un
scalaire et multiplication de deux matrices). Attention à prendre soin de la taille de chaque matrice pour que
l’opération soit réalisable. On pourra faire apparaı̂tre un message d’erreur au besoin.
S.Mirbel
page 3 / 3
Téléchargement