TEST ALGO février 2015

                      INFO  TEST ALGO            lundi 9 février             2015             BTS1B

        PARTIE A

           Voici un algorithme en Python 2.7

from random import*

from string import*

def jeux2():

      L=["chaise","vaisseau","voiture","invitation"]

      a=choice(L)

      n=len(a)

      D=[]

      for i in range(n):

            D.append(a[i])

      C=[]

      for i in range(n):

            C.append("-")

      while C!=D:

             p=raw_input("Donner une lettre")

             for i in range(n):

                   if p==a[i]:

                        C[i]=p

             print C

          QUESTION :

          1. Que veut dire C=[ ] ?      C est une liste vide

          2.Que signifie C!=D ?          La liste C n'est pas égale à la liste D

          3. Que signifie C[ i] ?          C'est le terme d'indice i de la liste C

          4. Que fait C.append("-") ?    Cela ajoute "-" à la fin de la liste C

          5.    a=choice(L) a quel effet ?    a est l'une des chaîne de L au hasard

          6. Que représente n quand on écrit n=len(a) ?  n est le nombre de termes de a

          7.Que donne ce script ?                                     Il permet au joueur d'afficher la chaîne cachée

          8. Qu'est-ce qui distingue a de D ?  a est une chaîne de caractères et D est la liste de ses caractères

          9. Quand on écrit : for i in range(n):           i est un entier compris entre 0 et n - 1

              quelles sont les valeurs prises par i ?

         10. Si l'on changeait seulement les chaînes dans L

              le script tournerait-il ?                  OUI . Le script trouve lui-même le nombre de chaîne de L.

              Si l'on remplaçait le   print C    de la dernière ligne par 

                             E=join(C)                      Au lieu d'avoir une liste de caractères pour la chîne à trouver 

                             print E                          on aurait les lettres collées sans crochet

             quel serait l'affichage ?

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

       PARTIE B   

       1.Écrire un script en Python2.7 qui permet d'avoir le plus grand

          élément de la liste L= [ 13,5,8,22,20].

from random import*

def maxim():

      L=[ 13,5,8,22,20]

      maxi=L[0]

      for i in range(len(L)):

            if maxi<L[i]:

               maxi=L[i]

     print maxi

       2. Écrire un script qui permet d'ordonner dans

          l'ordre croissant la liste L=[ 13,5,8,22,20].

from random import*

def ordre():

      L=[ 13,5,8,22,20]

      for i in range(len(L)):

           for j in range(i,len(L)):

                 if L[i]>L[j]:

                         L[i],L[j] = L[j],L[i]

      print L

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

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

  1.  Autre variante du programme de la partie A    

from random import*
from string import*
def jeux2():
      L=["chaise","vaisseau","voiture","invitation"]
      a =choice(L)
      print a
      n=len(a)
      D=[]
      for i in range(n):
            D.append(a[i])
      C=[]
      for i in range(n):
            C.append("-")
      while C!=D:
             p=raw_input("Donner une lettre ")
             for i in range(n):
                   if p==a[i]:
                        C[i]=p
             E=join(C)
             print E

         On obtient:

>>> jeux2()
vaisseau
Donner une lettre v
v - - - - - - -
donner une lettre a
v a - - - - a -
donner une lettre i
v a i - - - a -
donner une lettre s
v a i s s - a -
donner une lettre e
v a i s s e a -
donner une lettre u
v a i s s e a u
>>>

             On peut supprimer la ligne print a pour ne

              pas connaître d'avance le mot de la liste.

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