SUJET 47 mai 2017

                               E22  BTS SIO   Sujet  mai 2017

          PREMIER TRAVAIL   30 minutes sur papier

              Un étudiant a écrit partiellement un algorithme.

               Lisez le et répondez aux questions.

from random import*
def etude():
      L =" Le jour se leve. Il fait beau, c'est bien."
      L=L.replace("."," ").replace(","," ").replace("'"," ")
      print L
              
      H=L.split()
      F=[]
      for j in range(len(H)):
           F.append(len(H[j]))
      s=F[0]
      for i in range(len(F)):
           if s<F[i]:
               s=F[i]
      for j in range(1,s+1):
           print "........ ",F.count(j),".........", j,"..........."

      print "................................. ",s, " ............... :"   
      for k in range(len(F)):
            if F[k]==s:
                print "##",H[k], "##"

                QUESTIONS

    1.a . Compléter tous les pointillés.

       b. Quel est le but de l’algorithme ?

   2.a.Que faut-il modifier pour demander la saisie de L?

      b. Que représente H[k] ?

   3.a.  Quel est l’effet de L.split() ?

      b. Quelle est la nature des éléments de H ?

      c. Que contient la liste F à la fin ? 

   4. Que signifie len(H) ?

   5. Qu'est-ce que s  à la fin?

   6. Quel est l’effet de :

       a.       for i in range(len(H)):           ?

       b.           F.append(len(H[i]))       ?

    7. Que signifie F.count(j)  quand j est dans F ?

    8.  Modifier , si possible en Python 2.7, cet algorithme pour qu'il affiche,

         suivant leur longueur, les termes de H.    

          SECOND TRAVAIL  30 minutes sur ordinateur

         1. Proposer un algorithme, si possible en Python 2.7, qui saisit un

             entier naturel non nul n, affiche la liste G de tous ses diviseurs sauf n ,

             puis affiche la somme des termes de G et enfin indique si on a S = n.

        2. Tester cet algorithme pour n = 28.

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