INFO PYTHON 2.7 TEST BTS1A 10/12/13

                INFO TEST BTS1A    D'ALGO   10 Décembre 2013  Redonné le 10/ 02/2016

   Partie A

                Voici en Python2.7  écrit un script: 

from random import*
def ex():
      H=[ 12,14,17]
      F=[11,13,21]
      G=H+F
      m= len(G)
      for i in range(0,m):
           for j in range(i,m):
                if G[i]>G[j]:
                     G[i],G[j]= G[j],G[i]
      print G 

                                                      Information :   round( 1.364 , 2) affiche 1,36

         QUESTIONS:

                       Répondre sur une feuille de copie.

                   1. Que fait G= H + F  ?

                               REPONSE:

                             Il concatène les deux listes H et F qui n'en font plus qu'une seule notée G .

                              C'est:        G = [ 12,14,17,11,13,21 ]                     .

                       2. Quelles sont les valeurs de i dans le cas présent?

                           REPONSE:

                                  i prend les valeurs :   0 , 1 , 2 , 3 ,4 ,  5

                                    Mais attention i ne prend pas la valeur 6.                    

                      3. Quel est l'effet produit par  G[i],G[j]= G[j],G[i] ?

                             REPONSE:

                            Les termes G[i]  et G[j] sont permutés dans la liste G.

                       4. Que fait le script ?

                           REPONSE:

                        Il fusionne d'abord les deux listes en une liste G puis ordonne  G

                        dans l'ordre croisssant  puis l'affiche.   

>>> ex()
[11, 12, 13, 14, 17, 21]
>>>                

                    5.  Qu'est-ce que m ?

                            REPONSE:

                             C'est la longueur de la liste G obtenue par concaténation des deux listes H et F.

                    6. Modifier le script pour qu'il demande la saisie des listes H et F.                    

                        REPONSE:

                            Il suffit de remplacer les lignes suivantes

                                    H=[ 12,14,17]
                                    F=[11,13,21]

                              par:

                         H= input(" Entrer une liste de nombres: " )

                         Finput(" Entrer une liste de nombres: " )

                    7 . Que faut-il ajouter au script pour qu'il affiche la plus grande valeur et la

                         plus petite valeur de la liste G?

                         Le script a ordonné G. Donc le plus petit terme de G est le premier et

                         le plus grand terme de G est son dernier terme qui est d'indice m − 1.

                           Il suffit donc simplment d'ajouter à la fin du script:

                          print " La plus grande valeur de G est : " , G[m − 1)

                           print " La plus petite valeur de G est : " , G[0)

                  8. Que faut-il modifier dans le script pour qu'il affiche 

                     seulement les valeurs de G supérieure ou égales à 13?

                          On peut considérer:  

from random import*
def sp():
      H=[ 12,14,17]
      F=[11,13,21]
      G=H+F
      m= len(G)
      for i in range(0,m):
            for j in range(i,m):
                 if G[i]>G[j]:
                      G[i],G[j]= G[j],G[i]
      M=[]
      for i in range(0,m):
           if G[i]>=13:
                 M.append(G[i])
     print M     

                                                  On obtient:

>>> sp()
[13, 14, 17, 21]
>>>

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

  Partie B 

             Ecrivez un programme en Python 2.7 qui demande à l'utilisateur d'entrer des notes d'élèves.           

             Pour chaque note saisie,le programme construit progressivement une liste.

             Après chaque entrée d'une nouvelle note il déclare le nombre de notes entrées,

             la note la plus élevée, la note la plus basse, la moyenne de toutes les notes.

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

    REPONSE:                On peut considérer:

from random import*
def creation():
       L=[]
       a=input("Entrer une note de l'élève: ")
       L=L+[a]
       n=len(L)
       print "Il y a",n,"notes saisies"
       b=raw_input("Voulez-vous entrer une autre note? OUI : NON ")
       while b=="OUI":
              a=input("Entrer une autre note de l'élève: ")
              L=L+[a]
              n=n+1
              print "Il y a",n,"notes saisies"
              S=0
              for i in range(0,n):
                    S=S+L[i]
                   for j in range(i,n):
                         if L[i]>L[j]:
                              L[i],L[j]=L[j],L[i]
              print "La plus grande note est ",L[n-1]
              print "La plus petite note est ",L[0]
              print "La moyenne des notes est ",round((S*1.0)/n,2)
              b=raw_input("Voulez-vous entrer une autre note? OUI : NON ")
      print "Saisie terminée"

                           Par exemple :

>>> creation()
Entrer une note de l'élève: 12
Il y a 1 notes saisies
Voulez-vous entrer une autre note? OUI : NON OUI
Entrer une autre note de l'élève: 13
Il y a 2 notes saisies
La plus grande note est 13
La plus petite note est 12
La moyenne des notes est 12.5
Voulez-vous entrer une autre note? OUI : NON OUI
Entrer une autre note de l'élève: 15
Il y a 3 notes saisies
La plus grande note est 15
La plus petite note est 12
La moyenne des notes est 13.33
Voulez-vous entrer une autre note? OUI : NON OUI
Entrer une autre note de l'élève: 17
Il y a 4 notes saisies
La plus grande note est 17
La plus petite note est 12
La moyenne des notes est 14.25
Voulez-vous entrer une autre note? OUI : NON OUI
Entrer une autre note de l'élève: 18
Il y a 5 notes saisies
La plus grande note est 18
La plus petite note est 12
La moyenne des notes est 15.0
Voulez-vous entrer une autre note? OUI : NON NON
Saisie terminée

                                      Autre exemple:
>>> creation()
Entrer une note de l'élève: 12
Il y a 1 notes saisies
Voulez-vous entrer une autre note? OUI : NON NON
Saisie terminée