INFO TEST ALGO du 10 février 2016

               INFO    TEST          du 10 février 2016              BTS 1

   Premier travail :              10 points

    Voici un script en Python 2.7

from random import*

def info():
        T=[]
        s=0
        F=input("Quel est en euros votre budget ?  ")
        for x in range(4):
              T.append([])
        for i in range(3):
              a=raw_input("Quel produit voulez-vous acheter?  ")
              b=input(" Quel est son tarif en euros?  ")
              c=input("Combien en voulez-vous ?  ")
             T[0].append(a)
             T[1].append(b)
             T[2].append(c)       
        for i in range(3):
              s=s+T[1][i]*T[2][i]
              T[3].append(T[1][i]*T[2][i])
        if s<=F:
             print " OK. Cela vous  fera: ",s,"€"

        else:

               print  " Revoyez votre budget"
        for line in T:
               print line  

                                                          QUESTIONS:

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

                                                                      T liste                      a  chaîne   b,   c ,  s , F , i   ,x   des   valeurs numériques

   2.  Que signifie T = [ ] ? Que signifie else: ?  

                                   T est déclarée comme une liste vide                     else:     veut dire sinon

   3. Donner les valeurs les valeurs prises par x  quand on écrit :

           for x in range(4):                        x prend les valeurs 0 , 1 , 2 , 3

   4. Quel est l'effet produit par:

       for line in T:
             print line          ?             Les termes de T  s'affichent successivement sur des

                                                       lignes différentes.

    5. Que donne cet algorithme ?     Le montant de la dépense en euros si l'achat est possible

                                                                 puis  la liste des trois produits à acheter 

                                                                puis la liste de leurs prix

                                                               puis  le nombre demandé pour chacun.

                                                              enfin pour chaque type produit le montant à payer. 

    6. Qu'est-ce que s ?                                   Le montant à payer.

    7.  Qu'y a-t-il dans T [ 3]  à la fin ?          Les montants à payer par type de produit.

    8. Que représente T[0]  à la fin ?               La liste des produits à acheter.

    9. Quel est l'effet de T.append([])  ?             Ajoute une liste vide comme nouveau terme à la fin de la liste T

    10. Pourquoi a-t-on mis ?

          a=raw_input("Quel produit voulez-vous acheter?  ")           Pour saisir une chaîne c-àd  le nom du produit.

        Le résultat suivant vous paraît-il correct ?       OUI   car

                                                                         2 x 10 = 20  

                                                                       44 x 12 = 528

                                                                       11   x 5 = 55

                                                    et              20  +  528 + 55 =  603

>>> info()

Quel est en euros votre budget ?  1000
Quel produit voulez-vous acheter?  vase
 Quel est son tarif en euros?  2
Combien en voulez-vous ? 10
Quel produit voulez-vous acheter?  lampe
 Quel est son tarif en euros?  44
Combien en voulez-vous?  12
Quel produit voulez-vous acheter?  cahier
 Quel est son tarif en euros?  11
Combien en voulez-vous?   5
 OK. Cela  vous fera:  603 €
['vase', 'lampe', 'cahier']
[2, 44, 11]
[10, 12, 5]
[20, 528, 55]

>>> 

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

    Second travail        10 points

  1. Écrire un script en Python 2.7 qui quand on saisit la liste des noms de 4 étudiants

       avec leur quatre notes en maths et leur quatre notes  en anglais donne la moyenne

      de chacun  dans l'hypothèse où en anglais le coefficient est 3 et en maths le coefficient

       est 2.

    2. Modifier le script pour qu'il donne la meilleure moyenne et le nom d'un étudiant qui l'a obtenue.

               On peut considérer pour les questions 1 et 2:

from random import*
def rit():
       B=[]
       Noms=input("Donner la liste des noms des étudiants   ")
       A=input("Donner la liste des notes d'anglais ")
       M=input("Donner la liste des notes de maths ")
       B.append(Noms)
       B.append(A)
       B.append(M)
       L=[]
       for i in range(4):
             L.append(( 3*A[i]+2*M[i])/5.)
            B.append(L)
       s=L[0]
       t=Noms[0]
       for i in range(4):
             if s<L[i]:
                  s=L[i]
                  t=Noms[i]
       print " La meilleure moyenne pondérée est",s
       print " En tête de classe il y a: ",t

                                  Par exemple:

 >>> rit()
Donner la liste des noms des étudiants   ["gérard","Barnabé","Julien","Joy"]
Donner la liste des notes d'anglais [14,9,11,7]
Donner la liste des notes de maths [8,9,11,7]
 La meilleure moyenne pondérée est 11.6
 En tête de classe il y a:  gérard

>>> 

    3.  Donner un script qui quand on saisit une liste de 15 entiers naturels pairs ou impairs donne 

        la liste de ceux qui sont divisibles par trois.

 On peut proposer:

def choix():
      L=input("Donner une liste de 15 entiers naturels:  ")
      G=[]
      for elem in L:
            if elem%3==0:
                 G.append(elem)
      print G

                      Par exemple :

>>> choix()
Donner une liste de 15 entiers naturels:  [14,2,6,7,48,14,65,9,8,7,13,18,10,19,23]
[6, 48, 9, 18]
>>> 

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