PYTHON.2 FEUILLE n° 30 D'EX BTS1

                            PYTHON.2      INFO  FEUILLE n° 30    D'EX      BTS1      février 2012

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

     COURS:

           Thème:

                          • from math import exp, expm1

                             C' est un module qui permet de pouvoir de disposer de la

                              fonction exp.  

                              Ainsi  exp( 1 ) donne une valeur approchée de e.

                          •   import cmath

                                   C'est un module qui permet certaines expressions de maths.

                          • IMPORTANT :   Astuce pour  obtenir l'écriture décimale

                                                    d'un quotient a / b en Python.2.5 ou 2.5

                                                        on écrit       a / (b*1.0)

                       •  Réaliser une base de données

                      • Encadrer une somme.

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

     EXERCICE 1    

              Construire pour un club de loisirs un script contenant une liste

              ( base de données) formée de quatre listes comportant chacune

               le nom, la date de naissance, à jour ou non de cotisation, la profession,  

                le centre d'intérêt, le moyen de transport utilisé.

               L'administrareur du club devra pouvoir consulter la liste ( base de données)

                en saississant un nom.

               Si le nom figure bien dans la liste il devra voir s'afficher les informations sur

               le membre du club concerné . Dans le cas contraire devra s'afficher 

               un message indiquant la non appartenance au club.

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

     REPONSE:

from random import*
def base():
      B=[ ['Elodie','Naissance le 10-02-95','Cotisation payée','Aime le cinoche et la peinture','Utilise le bus'],['Roger','Naissance le 1-06-93','Cotisation payée','Aime le foot et les voyages','Utilise une voiture'],['Jean','Naissance le 07-08-91','Cotisation non payée','Aime la natation et et le foot','Utilise la marche'],['Odile','Naissance le 25-05-99','Cotisation non payée','Aime la lecture','Utilise le métro'] ]
       nom=input("Quel Nom voulez-vous consulter dans le fichier? ")
       A=[]
       for k in range(3):
            A=A+[B[k][0]]
            if nom==B[k][0]:
                print "OUI",nom,"est bien un membre de notre club. "
                for line in B[k]:
                     print line
       if (nom in A)==False:
           print " Non membre du club"

                     On obtient:

>>> base()
Quel Nom voulez-vous consulter dans le fichier? 'Elodie'
OUI Elodie est bien un membre de notre club.
Elodie
Naissance le 10-02-95
Cotisation payée
Aime le cinoche et la peinture
Utilise le bus
>>>

                            ou encore

>>> base()
Quel Nom voulez-vous consulter dans le fichier? 'Carl'
Non membre du club

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

           EXERCICE 2

                Soit n un entier naturel non nul.

                On considère la fonction:

                                 fonction357.png 

                Soit la somme

         enc.png

                Soit   K un réel   tel que :      

                         Sn  -   1 / n  ≤  K   ≤  Sn   - 1 / ( n  e )

            Donner un algorithme qui quand on saisit l'entier n  affiche l' encadrement de K

            et précise l'amplitude de l'encadrement..

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

             REPONSE:

                                    On peut considérer:

from math import exp, expm1
def encadrem():
       n=input("Donner un entier naturel non nul n: n = ")
       S=0
       for k in range(0,n+1):
             S=S+(1/(n*1.0))*exp(-(( k/(n*1.0))**2))
       v=S-1/(n*1.0)
       w=S-1/((n*1.0)*exp(1))
       print v,"<","K","<",w

       amplitude=(1/(n*1.0))*(1-1/exp(1))

       print " L'amplitude de l'encadrement est: ",amplitude

     

                                 On obtient   par exemple: 

>>> encadrement()
Donner un entier naturel non nul n: n = 2
0.573340112121 < K < 0.889400391536
L'amplitude de l'encadrement est: 0.316060279414
>>>

 

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

      EXERCICE 3                              ARITHMETIQUE

             CRITERE DE PRIMALITE

               Soit  un entier n supérieur ou égal à 2.

                    •  Si n est 2 , 3 , 5 ou 7 alors n est un nombre premier.

                   •   Si n est un entier autre que   2 , 3 , 5 ou 7 et que n n'est divisible par 

                        aucun nombre premier p tels que p  ≤ √n  alors n est premier.

                        Donner un script qui saisit un entier naturel n entre 0 et 100

                        puis qui indique si cet entier n  est ou n'est pas premier.

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

            REPONSE:

                              On peut considérer:

from random import*
def nbpr():
       n=input(" Donner un entier inférieur ou égal à 100: n =  ")
       L=[2,3,5,7]
       W=[]
       if n in L:
          print n," est bien un nombre premier"
       elif n==0 or n==1:
            print n," n'est pas est un nombre premier" 
       else:
               for i in range(0,3):
                     W.append(n%L[i])
                     if 0 in W:
                          print n," n'est pas un nombre premier"
                     else:
                             print n," est bien un nombre premier"

               On obtient par exemple:          

>>> nbpr()
Donner un entier inférieur ou égal à 100: n = 0
0 n'est pas est un nombre premier

                                    ou encore
>>> nbpr()
Donner un entier inférieur ou égal à 100: n = 73
73 est bien un nombre premier

                                      ou encore 
>>> nbpr()
Donner un entier inférieur ou égal à 100: n = 7
7 est bien un nombre premier
>>>

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

   EXERCICE 4 

        Faire un script qui saisit un entier naturel non nul n puis

       donne la liste des n premiers nombres premiers.

             

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