TEST BTS1 26 janvier 2016

                         INFO  TEST   janvier 2015    BTS1A   

                      redonné le mercredi   26 janvier 2016   et le mercredi 1 mars 2017  

        Premier travail:

          Voici en Python 2.7 un script:

def sep():
       L=input("Entrer une liste de 6 entiers naturels:  ")

       print L
       P=[]
       I=[]
       s=0

       for elem in L:
             if elem%2==0:
                   P.append(elem*2)
            else:
                   I.append(elem+2)
       print "P = " ,P   
       print "I = " ,I

       m=P[0]
       for i in range(0,len(P)):
             s=s+P[i]

             if m<P[i]:
                  m=P[i]           
      print s
      print m       
     

                           QUESTIONS:

       1.  Citer toutes les variables utilisées et donner leur type.

                                                                 L  , P  ,  I             sont ds listes 

                                                           s ,   elem    ,   i   ,  m      sont des entiers 

       2. Que met-on dans P ?   dans I ?              P contient tous les doubles des entiers pairs de L

                                                                                  I contient tous les entiers impairs auxquels on ajoute 2,  de L

       3. Que représente s ? Que signifie P[ i ] ?           s est la somme des éléments  de P

                                                                                      P[i] est l'élément de  P d'indice i 

      4. Qu'est-ce que len(P) ?                         C'est la longueur de P   c-à-d   le nombre de ses termes

       5. Quel est l'intérêt de input ?                    De demander la saisie d'une valeur ou liste

       6. Quand on écrit :

             for i in range(0,len(P)):

          quelles sont les valeurs de i ?                     Les entiers  i sont les eniers de 0 à len(P) − 1

      7. Que représente m ?                                         C'est  ici  le plus grand  élément de P

      8. Que signifie:   

            for elem in L:   ?           Cela veut dire :     Pour tout élément de L

      9. Que signifie :

               if elem%2==0:            Cela veut dire :          si elem est pair  c-à-d   si elem  est divisible par 2 

                                                       c-à-d  si le reste entier de la division de elem par 2 est 0

     10.La simulation suivante est-elle correcte?

                                                NON  car la somme des termes de P est  16 + 112 = 128  et non 138   

                                                  et le plus grand terme de P est  112 et non 110

                                                        La vraie simulation serait:

>>> sep()
Entrer une liste de 6 entiers naturels:  [5,41,8,56,23,7]

 [5,41,8,56,23,7]
[5, 41, 8, 56, 23, 7]
P =  [16, 112]
I =  [7, 43, 25, 9]
128
112

>>> 

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

          Second travail.

       1. Écrire un script qui demande la saisie d'une liste L de six  valeurs et

             ordonne ses valeurs dans l'ordre croissant, sans utiliser sort()  .

   REPONSE:

from random import*
def tri():
       L=input"Donner une liste de valeurs numériques:  " )
       for in range(6):
             for j in range(i,6):
                   if L[i]>L[j]:
                     L[i],L[j]=L[j],L[i]
      print L

                         Par exemple:

>>> tri()
Donner une liste de valeurs numériques:   [16,4,8,1,9,0]
[0,1, 4, 8, 9, 16]
>>> 

       2. Compléter cet algorithme  pour  qu'il fasse apparaître un tableau M de deux listes L1 e L2

           formées respectivement par les trois premiers termes de L et par les trois derniers termes de L.

     REPONSE:   On peut proposer: 

from random import*
def tri1():
       L=input( "Donner une liste de six valeurs numériques   :  " )
       for i in range(6):
             for j in range(i,6):
                   if L[i]>L[j]:
                    L[i],L[j]=L[j],L[i]
      print L
      L1=[]
      L2=[]
      M=[]
      for i in range(3):
            L1.append(L[i])
            L2.append(L[i+3])
      M.append(L1)
      M.append(L2)
      print M

                     Par exemple on obtient:

 >>> tri1()
Donner une liste de six valeurs numériques  :  [16,4,8,1,9,0]
[0, 1, 4, 8, 9, 16]
[[0, 1, 4], [8, 9, 16]]

>>> 

     3. Compléter M par une liste comportant la moyenne des termes de L1 et L2 de même indice.

     REPONSE:              On peut proposer:

from random import*
def tri3():
       L=input( "Donner une liste de valeurs:  " )
       for i in range(6):
             for j in range(i,6):
                   if L[i]>L[j]:
                     L[i],L[j]=L[j],L[i]
       print L
       L1=[]
       L2=[]
       M=[]
       for i in range(3):
             L1.append(L[i])
             L2.append(L[i+3])
      M.append(L1)
      M.append(L2)
      print M
      L3=[]
     for i in range(3):
           L3.append((L1[i]+L2[i])/2.)
     M.append(L3)
     print

                          Par exemple on obtient:

>>> tri3()
Donner une liste de valeurs:  [16,4,8,1,9,0]
[0, 1, 4, 8, 9, 16]
[[0, 1, 4], [8, 9, 16]]
[[0, 1, 4], [8, 9, 16], [4.0, 5.0, 10.0]]

>>> 
             

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