PYTHON. 2 FEUILLE n° 32 D'EXERCICES mars 2013 BTS SIO
COURS:
Thème:
• Soit A une matrice de type (3;3) dont les termes
sont des entiers relatifs.
Soit m un entier naturel.
A est dite magique quand elle vérifie:
•• La somme des termes de la première ligne de A est égal à m.
•• La somme des termes de la deuxième ligne de A est égal à m.
•• La somme des termes de la troisième ligne de A est égal à m.
• On a:
/ A[0][0] A[0][1] A[0][2] \
A = | A[1][0] A[1][1] A[1][2] |
\ A[2][0] A[2)[1] A[2][2] /
Donc la somme des termes de la première ligne est :
A[0][0] + A[0][1] + A[0][2]
C'est la somme des termes A[0][i] où i varie de 0 à 2
D'où l'idée d'utiliser: for i in range(0,3):
0 + A[0][i]
Le zéro est mis pour savoir à quoi on ajoute la somme.
Pour stocker cette somme on peut créer une matrice B
de type (3,3) où il n'y a que des 0.
Elle en initialisée.
On peut décider de mettre cette somme à la place de B[0][0].
On considère ainsi:
for i in range(0,3):
B[0][0] = B[0][0] + A[0][i]
--------------------------------------------------------------------------------------------------------------------------
EXERCICE 1
Donner un script qui pour une matrice A saisie de type (3;3)
indique si elle est oui ou non magique.
------------------------------------------------------------------------------------------------------------------------
REPONSE:
On peut considérer:
from random import*
def magie():
a=input("Donner les termes de la première ligne de A: ")
b=input("Donner les termes de la deuxième ligne de A: ")
c=input("Donner les termes de la troisième ligne de A: ")
A=[a,b,c]
M=[0,0,0,0,0,0,0,0]
for i in range(0,3):
M[0]=M[0]+A[0][i] # Somme de la première ligne de A c-à-d 0+A[0][0]+A[0][1]+A[0][2]
M[1]=M[1]+A[1][i] # Somme de la seconde ligne de A
M[2]=M[2]+A[2][i] # Somme de la troisième ligne de A
M[3]=M[3]+A[i][0] # Somme de la première colonne de A c-à-d 0+A[0][0]+A[1][0]+A[2][0]
M[4]=M[4]+A[i][1] # Somme de la seconde colonne de A
M[5]=M[5]+A[i][2] #Somme de la troisième colonne de A
M[6]=M[6]+A[i][i] # Somme de la diagonale principale de A
M[7]=M[7]+A[i][2-i] # Somme de la seconde diagonale de A
print "Les huit sommes sont: "
print M
if M[0]==M[1]==M[2]==M[3]==M[4]==M[5]==M[6]==M[7]:
print " La matrice est magique."
else:
print "la matrice n'est pas magique."
On obtient par exemple:
>>> magie()
Donner les termes de la première ligne de A: [1,1,1]
Donner les termes de la deuxième ligne de A: [1,1,1]
Donner les termes de la troisième ligne de A: [1,1,1]
Les huit sommes sont:
[3, 3, 3, 3, 3, 3, 3, 3]
La matrice est magique.
>>>
Ou encore
>>> magie()
Donner les termes de la première ligne de A: [1,2,3]
Donner les termes de la deuxième ligne de A: [1,2,3]
Donner les termes de la troisième ligne de A: [1,2,3]
Les huit sommes sont:
[ 6, 6, 6, 3, 6, 9, 6, 6]
la matrice n'est pas magique.
>>>
------------------------------------------------------------------------------------
A = | ( | 1 | 2 | 3 | ) |
/ | 1 | \ | |
B = | | | 2 | | |
\ | 3 | / |
from random import*
def exemple():
A=[1,2,3]
print "A est une matrice ligne de type (1;3)"
print A
B=[[1],[2],[3]]
print " B est une matrice colonne du type( 3;1)"
for line in B:
print line
Cela donne:
>>> exemple()
A est une matrice ligne de type (1;3)
[1, 2, 3]
B est une matrice colonne du type( 3;1)
[1]
[2]
[3]
>>>
---------------------------------------------------------------
/ | a[0] | a[1] | \ | |
\ | b[0] | b[1] | / |
/ | a[0] | a[1] | \ | |
\ | b[0] | b[1] | / |
/ | a[0] | a[1] | \ | ||||||||
\ | b[0] | b[1] | / | ||||||||
/ | a[0] | a[1] | \ | / | ..... | ...... | \ | ||||
\ | b[0] | b[1] | / | \ | ..... | ...... | / |
from random import*
def carre():
a=input(" Donner la première ligne de A : a = ")
b=input(" Donner la première ligne de A : b = ")
Donner la première ligne de A : a = [1,2]
Donner la première ligne de A : b = [3,4]
La matrice A considérée est:
[1, 2]
[3, 4]
La matrice A² est:
[7, 10]
[15, 22]
>>>
from random import*
def carre():
a=input(" Donner la première ligne de A : a = ")
b=input(" Donner la première ligne de A : b = ")