PYTHON.2 INFO FEUILLE n °14 D'EX

              PYTHON 2   INFO FEUILLE     n°14     D'EXERCICES    MAI 2012

  Voir le COURS sur la feuille n°14

    THEME:

               Programme multitâches. Un programme principal 

            fait apppel à plusieurs scripts qui renvoient des résultats.

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

     EXERCICE 1

Que donne le programme suivant?

import decimal
def md(T,N) :

       if N%2 ==0 :

                              # Cela veut dire: Si N est pair

            i = int(N/2)-1
                              # Le -1 est du au fait que la première valeur est d'indice 0
            return float(T[i] + T[i + 1])/2
       else :
             i = int(( N+1)/2)-1
                                                   # Ne pas oublier que la première valeur est d'indice 0
             return T[i]

# PROGRAMME PRINCIPAL#
###################
T=input("Entrer une liste croissante de valeurs ( entre crochets ): T = ")
N=len(T)
print "Votre liste contient",N,"valeurs"
print "La médiane est",md( T,N)

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

  Réponse: 

 Ce script permet d'obtenir la médiane des termes de la liste T

 quand ses N termes sont déjà dans l'ordre croissant.

               Par exemple

>>>
Entrer une liste croissante de valeurs ( entre crochets ): T = [2,15,19,25,73]

Votre liste contient 5 valeurs
La médiane est 19

               Par exemple:

>>>
Entrer une liste croissante de valeurs ( entre crochets ): T = [5,7,17,18]
Votre liste contient 4 valeurs
La médiane est 12.0
>>>

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

    EXERCICE 2

   Que fait le programme suivant sachant que

   T  est une liste ou un tableau de N valeurs (   N =len(T)    ),

    h et k  sont deux entiers naturels tels que 0 ≤ h < k < N ?    

def indmi(T,h,k):

       m=T[h]

                               # m est le terme d'indice h de la liste T

                               # m peut être n'importe quel terme de T sauf

                               # le premier et le dernier terme de T
       ind=h
       for i in range(h+1 , k ,1) :

                                 #  i est un entier entre h+1 accepté  et k exclus
             if T[i]<m :

                                   # Si le terme d'indice i de T est plus petit que le terme d'indice h de T
                m= T[i]
                ind = i
       return ind

                                     # ATTENTION  return est au niveau du for

#PROGRAMME PRINCIPAL#

    ####################

T=input("Entrer une liste d'au moins trois valeurs ( entre crochets ): T = ")
N=len(T)

print " Votre liste comporte",N," valeurs"

k =input(" Donner un  indice k entre 2 et N-1 :  k = " )

h=input(" Donner un  indice h compris entre  0 et k ( k non compris) : h = ")
print "Quand  l'indice est entre h  et  k ( k exclu ) la valeur mini est d'indice : "indmi(T,h,k)

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

Réponse:

        On obtient  l'indice de la plus petite valeurs comprise entre

         T[h] accepté et T[k] exclu.

                 Par exemple

>>>

Entrer une liste d'au moins trois valeurs ( entre crochets ): T = [19,14,3,7,70] 

 Votre liste comporte 5  valeurs

 Donner un  indice k entre 2 et N-1 :  k = 4

 Donner un  indice h compris entre  0 et k ( k non compris) : h = 2

Quand  l'indice est entre h et k exclu la valeur mini est d'indice :  2

                             C'est parmi 3,7,70 sans 70 le 3 qui est la plus petite valeur 

                              et son indice est 2

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

   EXERCICE 3   

  Que donne le script suivant?

def ech(T,a,b):

                           # T est une liste 

                            # a et b sont deux indices de termes de la liste T

                             # Ce script permet de permuter les termes d'indices a et b

       temp = T[a]
      T[a] = T[b]
      T[b]= temp

       return T

#Programme principal#

  #################

T=input("Entrer une liste de N valeurs avec N au moins 3 ( entre crochets ): T = ")
N=len(T)

a =input(" Donner un  indice a   ( compris entre 0 et N-1) :  a = " )

b=input(" Donner un  indice b  ( compris entre 0 et N-1 ):  b = " )

print "La liste est devenue: T= ",ech(T,a,b)

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

  Réponse: 

      Ce script permet de permuter les termes d'indices a et b de la liste T.

              Par exemple:

 >>>

Entrer une liste de N valeurs avec N  moins 3 ( entre crochets ): T = [1,2,3,4]
Donner un indice a ( compris entre 0 et N-1 ): a = 1
Donner un indice b ( compris entre 0 et N-1 ): b = 2
La liste est devenue: T = [1, 3, 2, 4]

                         2 et 3 sont permutés   c'est-à-dire les termes T[1] et T[2]

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

  EXERCICE 4

       Exercice de synthèse.

      Que fait le programme suivant?

import decimal

def Tri_Bulle(T,N):                                                          

       for i in xrange(N):   

                                                             # i varie entre 0 et N-1    

             for j in reversed(xrange(i,N)):     

                                                                 # j varie entre N-1 et i en décroissant         

                   if T[j]<T[j-1]:         

                       t=T[j]         

                       T[j]=T[j-1]           

                       T[j-1]=t     

       return T

                                # ATTENTION  return est au niveau du premier for

def md(T,N) :      

       if N%2 ==0 :

                               # Cela veut dire: Si N est pair

            i = int(N/2)-1
                                     # Le -1 est du au fait que la première valeur est d'indice 0 
            return float(T[i] + T[i + 1])/2
       else :
             i = int(( N+1)/2)-1
                                    # Ne pas oublier que la première valeur est d'indice 0 
             return T[i]


# PROGRAMME PRINCIPAL#
###################
T=input("Entrer une liste d'au moins trois valeurs ( entre crochets ): T = ")
N=len(T)
print "Votre liste contient",N,"valeurs"

print "La liste ordonnée est : T = ", Tri_Bulle(T,N)

print " Sa médiane est : MED = ",md(T,N)

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

   Réponse:

         On obtient la liste ordonnée puis sa médiane

            Par exemple : 

>>>
Entrer une liste d'au moins trois valeurs ( entre crochets ): T = [1,7,4,8]
Votre liste contient 4 valeurs
La liste ordonnée est : T = [1, 4, 7, 8]
Sa médiane est : MED = 5.5

                     Par exemple:

>>>
Entrer une liste d'au moins trois valeurs ( entre crochets ): T = [1,7,4,8,10]
Votre liste contient 5 valeurs
La liste ordonnée est : T = [1, 4, 7, 8, 10]
Sa médiane est : MED = 7

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