INFO TEST D'ALGO 5 février 2014

                             INFO TEST D'ALGO 5 février 2014

          PARTIE A   ( Sur papier )

            Voici un algorithme en Python.2

from random import*
def fus( ):
      L1=input("Entrer la liste des noms :")
      L2=input(" Entrer la liste des notes de maths respectivement ")
      L3=input(" Entrer la liste des notes de français respectivement ")
      L4=[]
      L=[] 
      print " INFORMATION"
      for i in range(len(L1)):
           m=round(((L2[i]+L3[i])/2.0),2)
           L4.append("Moyenne : "+str(m))
      while (len(L1)!=0 and len(L2)!=0): 
             L.append("--"+str(L1[0])+" --"
             L1.remove(L1[0])
             L.append("Note de maths : "+str(L2[0])) 
             L2.remove(L2[0])
             L.append("Note de de français :"+str(L3[0])) 
             L3.remove(L3[0])
             L.append(L4[0]) 
             L4.remove(L4[0]) 
      for line in L:
           print line

               QUESTIONS:

      1 . Que signifie :

             len( L1) ? 

                          C'est la longueur de la liste L1

             L = [] ?

                           La liste L est la liste vide

             while (len(L1)!=0 and len(L2)!=0): ?

                             Tant que les listes L1 et L2 sont non vide

        2. Qu'est-ce que L2[0] ? 

  •  

  •                                          C'est le premier terme de la liste L2 

        3. Quel est l'effet produit par str( L2[0]) ?

                             Cela transforme en chaîne la valeur numérique L2[0].

        4. Que peut-on dire de i quand on écrit :    

                           for i in range(len(L1)):  ?

                         i est un entier qui varie de 0 à len(L1) - 1  compris

        5. Quel est l'effet produit par :  

                      L3.remove(L3[0]) ?        

                  Cela retire à L3 son premier terme.

        6. Pourquoi dans la boucle while n'utilise-t-on jamaisun autre indice que 0 ?    

  •  

  •  Parce qu'on supprime chaque fois le premier terme ce qui fait qu'on a accès  

  •   chaque fois au terme suivant.

         7. Quand les trois listes au départ L1 , L2 ,L3 ont le même nombre d'éléments

  •          que leur arrive-t-il à la fin ?

               Elles deviennent vides.

        8. A quoi sert ? round(((L2[i]+L3[i])/2.0),2)  

                Cela permet d'avoir la moyenne des notes L2[i] et L3[j] avec deux décimales

        9. Qu'est-ce que ?    

            "Note de maths : "+str(L2[0])        

               C'est  une concaténation de deux chaînes.

  •        10. Que donne finalement l'algorithme ?

  •     

  •               Pour chaque élève il donne le nom puis la note de maths puis la note de français et la moyenne

       11. Que se passe-t-il si les listes L1 ,L2 , L3 ne sont pas de même longueur ? Rien de particulier.

            C'est la longueur de la liste L1 qui est la référence. Donc rien de particulier.

       Effet produit par le programme:             

>>> fus()
Entrer la liste des noms :["Alex","Gerard","Robin"]
Entrer la liste des notes de maths respectivement [16,14.5,13]
Entrer la liste des notes de français respectivement [11.5,17,15.5]
INFORMATION
--Alex --
Note de maths : 16
Note de de français :11.5
Moyenne : 13.75
--Gerard --
Note de maths : 14.5
Note de de français :17
Moyenne : 15.75
--Robin --
Note de maths : 13
Note de de français :15.5
Moyenne : 14.25
>>>

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

              PARTIE  B sur ordinateur 30 mn 

      1. Écrire , en Python . 2 , un algorithme qui demande la saisie de quatre nombres,

          les met dans une liste L puis affiche L et leur somme, en utilisant une boucle for.

          Réponse:

from random import*
def som( ):
      L=[]
      S=0
      for i in range(0,4):
           x=input("Saisissez un nombre")
           L.append(x)
           S=S+L[i]
      print S

            Par exemple on obtient:

>>> som()
Saisissez un nombre12
Saisissez un nombre4
Saisissez un nombre3
Saisissez un nombre1
20
>>>

       2. Modifier cet algorithme afin qu'il affiche la plus grande des valeurs de L et qu'il affiche

          la liste L ordonnée dans l'ordre croissant.

           On peut considérer:

from random import*
def clas( ):
      L=[]
      for i in range(4):
           x=input("Saisissez un nombre : ")
           L.append(x)
      for i in range(4):
           for j in range(i,4):
                if L[i]>L[j]:
                     L[i],L[j]= L[j],L[i]
      print L
      print  " Le plus grand nombre dans L est: ", L[3]

                         Par exemple on obtient:

>>> clas()
Saisissez un nombre : 18
Saisissez un nombre : 14
Saisissez un nombre : 20
Saisissez un nombre : 3
[3, 14, 18, 20]
Le plus grand nombre dans L est: 20
>>>

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