BTS−SIO:Correction TD 7
Les Matrices : gestion sous Python
2015-2016I Représentation
En langage Python, on peut représenter une matrice par une liste de listes.
Toutes les commandes que l’on a vues sur les listes sont donc utilisables.
Exemple 1 :
Soit une matriceM =
1 2 3 4 5 6
En utilisant l’interpréteur dePython,
⊲ Saisie de la matrice :
⊲ Que renvoie M[0]? : la commande renvoie la première ligne de la matrice [1,2,3]
⊲ Que renvoie M[1]? : [4,5,6]
⊲ Que renvoie M[1][2]? : Le coefficient de rang 2 (le troisième) dans la deuxième ligne : 6
⊲ Que renvoie M[0][2]? : 3
⊲ Que renvoie len(M)? : Le nombre de listes deM : 2
⊲ Que renvoie len(M[1])? : Le nombre de coefficients de la deuxième ligne : 3
II Exercices
EXERCICE 1 Écrire un algoritme qui remplit une matrice d’entiers entre 1 et 100 choisis aléatoirement. Le nombre de lignes et de colonnes devra être choisi par l’utilisateur.
Une
orretion
## Fonction def mat(n,p) :
s=[ ]
for i in range(n) : b=[ ]
for j in range(p) : a=randrange(101)
b.append(a) ou b=b+[a]
s.append(b) ou s=s+[b]
return (s)
## Fin fonction
#
from random import* (nécessaire pour la commande
randrange)#
n=int(input("Entrez une valeur pour le nombre de lignes : ")) p=int(input("Entrez une valeur pour le nombre de colonnes : ")) print(mat(n,p))
Remarque
:
Nous sommes en présence de deux bouclesfor imbriquées.
Au départ, la matrice est une liste de listes vide ; la boucle
« intérieure » construit des listes b de p coefficients à partir d’une liste vide et elle l’ajoute à la liste s. On répète cette opération autant de fois que lignes dans la matrice sou- haitée. (deuxième boucle)
• • •
My Maths Space 1 sur 3
BTS−SIO:Correction TD 7
Les Matrices : gestion sous Python
2015-2016EXERCICE 2 Écrire une fonction saisiecoefficients qui permet la saisie coefficient par coefficient d’une matrice après avoir spécifié le nombre de lignes et de colonnes. Prévoir l’affichage de la matrice. Lorsque la fonction est appelée dans un programme, on peut imaginer une « présentation » de la forme
Une
orretion
## Fonction
def saisircoefficients() : X=[ ]
for i in range(l) : b=[ ]
print("Coefficients de la ligne ",i+1) for j in range(c) :
print("Col ",j+1," : ",end=”) a=int(input())
b = b+[a]
X = X+[b]
return X
## Fin fonction
#
l=int(input("Nbre de lignes : ")) c=int(input("Nbre de colonnes : ")) print(saisircoefficients())
Remarque
:
L’utilisation ultérieure de la matrice dont on a saisi les coefficients impose une ligne
A=saisircoefficients()
dans le programme principal.
• • •
EXERCICE 3 Non corrigé.
• • •
EXERCICE 4 Écrire une fonction soustraction ayant comme paramètres deux matrices
Xet
Yde même taille, qui permet de « construire » une matrice
Zde même taille que les deux précédentes dont les coefficients résultent de la soustraction
Z=
X−
Y. Prévoir l’affichage de la matrice
Zainsi construite.
Écrire un programme qui utilise la fonction saisiecoefficients (cf.Ex 2) pour saisir les coefficients de
A=
1 2 0 −2
3 1 −2 −1
1 0 −2 1
et de
B=
0 3 −1 −3
5 1 1 0
−1 −3 0 1
, et qui permet de calculer les coefficients de la matrice
C=
A−
B (source : devoir sur les matrices - ex 1 - M.HORGUE).
My Maths Space 2 sur 3
BTS−SIO:Correction TD 7
Les Matrices : gestion sous Python
2015-2016Une
orretion
## Fonction
def soustraction(X,Y) : Z=[ ]
for i in range(len(X)) : L=[ ]
for j in range(len(X[0])) :
coef=X[i][j]-Y[i][j] (soustraction coefficient par coefficient) L=L+[coef]
Z=Z+[L]
return Z
## Fin fonction
#
l=int(input("Nbre de lignes : ")) c=int(input("Nbre de colonnes : ")) A=saisircoefficients()
print("Deuxième matrice : ") B=saisircoefficients()
print(soustraction(A,B))
• • •
EXERCICE 5 Non corrigé.
• • •
My Maths Space 3 sur 3