PYTHON 2. FEUILLE n°32

                                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.
>>>

------------------------------------------------------------------------------------

         EXERCICE  2:

                     Donner un script qui donne la matrice ligne A et la colonne B avec:
A = ( )

   / 1 \
B =  2  |
   \ 3 /
--------------------------------------------------------
REPONSE:             

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]
>>>

---------------------------------------------------------------

  EXERCICE 3
   
                 Soit a et b deux listes de longueur 2.
                 Soit  A[0]=a   et A[1] =b.
                 Qu'est-ce que A?
-------------------------------------------------------------------
  REPONSE:
                 On a:    A=[a,b]
                 A est la liste des listes a et b.
                 Comme len(a)=2  et len(b)=2 
                  a=[ a[0],a[1]]
                 b=[ b[0],b[1]]
                 A est la matrice de type ( 2;2) suivante:
   /   a[0]   a[1] 
   \  b[0]  b[1] 
                  
-----------------------------------------------------------------------
    EXERCICE 4:
 
                   Soit a et b deux liste de longueur 2.
                    Soit la matrice A suivante:
   /   a[0]   a[1] 
   \  b[0]  b[1] 
                     Donner un script qui donne la matrice A2.
        /  a[0]   a[1] \        
        \  b[0]  b[1] /        
/ a[0] a[1] \ / ..... ...... \        
\ b[0] b[1] /   \ ..... ......  /        
---------------------------------------------------------------------------
  REPONSE:
                      On peut considérer:

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 = ")

      A=[a,b]
      print " La matrice A considérée est:"
      for line in A:
           print line     
     B=[[0,0],[0,0]]
     B[0][0]=a[0]*a[0]+a[1]*b[0]
     B[0][1]=a[0]*a[1]+a[1]*b[1]
     B[1][0]=b[0]*a[0]+b[1]*b[0]
     B[1][1]=b[0]*a[1]+b[1]*b[1]
     print " La matrice A²  est: "
     for line in B:
           print line    
               
                  par exemple:
 
 >>> carre()

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]
>>>

              Autre script possible:
 

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 = ")

      A=[a,b]
      print " La matrice A considérée est:"
      for line in A:
           print line      
     B=[[0,0],[0,0]]
     for i in range(0,2):
     B[0][0]=a[0]*a[0]+a[1]*b[0]
     B[0][1]=a[0]*a[1]+a[1]*b[1]
     B[1][0]=b[0]*a[0]+b[1]*b[0]
     B[1][1]=b[0]*a[1]+b[1]*b[1]
     print " La matrice A²  est: "
     for line in B:
           print line    
-----------------------------------------------------------------