INFO PYTHON 2.7 TEST BTS1 11/12/13

             PYTHON 2.7            TEST 2        D'ALGO     11/12/13

              A PREMIER TRAVAIL 

         1. On donne le script suivant:          

from random import*
def concat():
       L=[1,2,3]
       F=[4,5,6]
       G=L+F
       print G

                      QUESTIONS:

               a. Qu'affiche finalement ce script?

               b. Que faudrait-il modifier dans ce script pour que les deux listes L et F

                  soient demandées à celui qui lance le script?

               c. Ce script étant écrit, dans la fenêtre window , que doit-on faire pour le lancer?

          2. On considère le script suivant:

from random import*
def concat():
       L=["Lundi","Mardi", "Mercredi","Jeudi","Vendredi","Samedi"," Dimanche"]

       j=raw_input("Donnez un jour de la semaine" )

       h=input("Précisez l'heure")

       if j==L[6] or( j==L[5] and  (  h< 8 or h>12) ):

          print "Désolé mais c'est fermé"

       else:            

                if   ( 8<= h and h <=12)  or ( 14<= h and h <=19):

                       print "C'est ouvert"

                else:

                        print "Désolé mais c'est fermé" 

               QUESTIONS:

                       a.  Pourquoi a-t-on mis raw_input ?

                       b.  Quelle est la nature des éléments de la liste L.

                       c. Qu'est-ce que L[6] ?

                        d.  Que signifie    ( 8<= h and h <=12)  or ( 14<= h and h <=19)

                       e. Quels sont les horaires d'ouverture?   

   B SECOND TRAVAIL

                        Voici un algorithme en  Python 2 . 7

from random import*
def trim()
       L=input("Entrer une liste de quatre prénoms " )
       L1=input("Entrer un liste de quatre notes ")
       L2=input("Entrer une seconde liste de quatre notes ")
       M=[]
       for i in range(0,4):
             M.append((L1[i]+L2[i])/2.0)
             L.insert(2*i+1,round(M[i],2))

       print L

                                          Vous êtes informé que round( 7.789456,2) donne 7.79

                     c-à-d arrondit au centième supérieur le nombre décimal 7.789456 et ne donne que deux décimales. 

                      1. Quelles sont les valeurs successives de i ?

                      2. Que signifie M=[] ?

                      3. Qu'est-ce que L[0] ?

                      4.  Pourquoi a-t-on divisé par 2.0 au lieu de 2 ?

                            Pouvait-on laisser 2 mais multiplier par 1.0 le numérateur

                            pour le même effet ?

                      5. Quel est l'effet produit par   M.append((L1[i]+L2[i])/2.0)   ?

                      6. Quelles sont les valeurs de 2*i+1 ?

                      7. Quel est l'effet produit par   L.insert(5,round(M[2],2))?

                      8. Dans le cas où l'on entre,

                                         L= ["Joe","Alice","Ronan","Silva"]

                                          L1=[16,14,7,11]

                                          L2=[12,15,13,9]

                            indiquer ce qu'affiche le script.

                    9. A présent la liste L1 est constituées de notes d'anglais et la liste L2

                        est la liste de notes d'informatique.

                        On admet que le coefficient de l'anglais est 3 et que le coefficient

                        de l'informatique est 8.

                        Modifier le script proposé pour avoir les moyennes pondérées des étudiants.

                   10. Que devrait -on changer si la classe comportait 24 étudiants?                         

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

             REPONSE:

          A PREMIER TRAVAIL.

 1. a. Le script affiche:

>>> concat()
[1, 2, 3, 4, 5, 6]
>>>

    b. Il faudrait insérer les deux lignes suivantes

          à la deuxième et troisième ligne:

          L=input("Donner une liste de trois valeur")

          F=  input("Donner une liste de trois valeur")   

      c. Il faut pour le lancer appuyer surla touche F5

              l'enregitrer, enfin taper concat() puis Entrée.

 2. a.Comme le jour à saisir est une chaîne  on doit mettre raw_input.

      b. Les termes de la liste L sont des chaînes.

      c.   L[6] est le 7 ième terme de la liste L.

             C'est donc Dimanche.

     d. La signification de  ( 8<= h and h <=12)  or ( 14<= h and h <=19)

               est    h comprise entre 8 heures et 12 heures au sens large ou

               h comprise entre 14 heures et 19 heures  au sens large.

     e. Il apparaît que c'est fermé le dimanche et tous les jours avant 8 heures ou après 19 heures

           ainsi qu'entre 12 heures et 14 heures strictement  de même que le samedi parès 12 heures

       B SECOND TRAVAIL        

           1. Les valeurs successives de i sont 0; 1 ;2 ; 3

          2.     M= []  signifie que M est la liste vide.

           3.  L[0] est le premier terme de la liste L. Il s'agit ici d'une chaîne

          4.     On a divisé par 2.0 au de 2 pour indiquer à Python 2.7 que l'on veut

                 un nombre décimal.     

                 Toute à fait   la multiplication du numérateur par 1.0 aurait produit le même effet.

          5. L'effet produit par   M.append((L1[i]+L2[i])/2.0)

               consiste à ajouter à la fin de la liste M lamoyenne arithmétique

              de i + 1 ième notes des listes L1 et L2.

          6.  Les valeurs de 2*i+1  sont : 1 ; 3 ; 5 ; 7

                En effet:

                Pour i = 0       2*i+1 = 1

                Pour i = 1       2*i+1 = 3

                Pour i = 2       2*i+1 = 5

                Pour i = 3       2*i+1 = 7

          7.  L'effet produit par   L.insert(5,round(M[2],2)) consiste 

                  à mettre dans la liste L en sixième position le troisième terme de la liste M.

           8. Le script affiche :

>>> trim()
Entrer une liste de quatre prénoms ["Joe","Alice","Ronan","Silva"]
Entrer un liste de quatre notes [16,14,7,11]
Entrer une seconde liste de quatre notes [12,15,13,9]
['Joe', 14.0, 'Alice', 14.5, 'Ronan', 10.0, 'Silva', 10.0]
>>>

             Cela s'apparente à un bulletin trimestriel de notes

              9.  On peut considérer:

from random import*
def trim()
       L=input("Entrer une liste de quatre prénoms " )
       L1=input("Entrer un liste de quatre notes ")
       L2=input("Entrer une seconde liste de quatre notes ")
       M=[]
       for i in range(0,4):
            M.append((3*L1[i]+8*L2[i])/11.0)
            L.insert(2*i+1,round(M[i],2))
       print L

                  On obtient par exemple:

>>> trim()
Entrer une liste de quatre prénoms ["Joe","Alice","Ronan","Silva"]
Entrer un liste de quatre notes [16,14,7,11]
Entrer une seconde liste de quatre notes [12,15,13,9]
['Joe', 13.09, 'Alice', 14.73, 'Ronan', 11.36, 'Silva', 9.55]
>>>

       10.Pour 24 étudiant il faudrait remplacer 4 par 24.

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