Вы находитесь на странице: 1из 4

03/10/2019 Exercices corrigés Python (Série 7) | MPSI, PCSI et la PTSI

ACCUEIL POLITIQUE DE CONFIDENTIALITÉ À PROPOS DE NOUS LOGIN     

 

MPSI, PCSI ET LA PTSI Home / MPSI, PCSI et la PTSI / Cours

Series d'exercices corrigés en Python

 Structures de controle

 Structures de données

 Les fonctions

 Gestion de chiers

 TD N°1
 TD N°2

 Programmation OO

 Sujets avancés

EXERCICES CORRIGÉS PYTHON (SÉRIE 7)


 17 Septembre 2017 /  M. ESSADDOUKI /  MPSI, PCSI et la PTSI /  9704 Visites

Exercice 1

Une molécule est un regroupement d’au moins deux atomes qui sont unis par des liens chimiques et elle est représentée par une formule chimique. Exemple :
H2O.

Une formule chimique est une succession de symboles d’atomes, suivi chacun par un entier représentant le nombre d’apparitions(nbr) de l’atome dans la
molécule.

Chaque atome est symbolisé par la première lettre de son nom en majuscule, suivie éventuellement d’une deuxième lettre en minuscule pour distinguer des
atomes ayant des initiales identiques. Ainsi, le Fluor(F) se distingue de Fer(Fe), du Fermium(Fm) et du Francium(Fr).

Le calcul de la masse molaire moléculaire d’une molécule, notée M(Molécule), sera comme suit :

 Pour chaque atome de la molécule, calculer le produit (nbr * A(atome)) ou A(atome) est un réel représentant la masse atomique de l’atome ;
 Calculer la somme des produits obtenus. 

developpement-informatique.com/cours/dev-info/MPSI,-PCSI-et-la-PTSI/95/Exercices-corriges-Python--Serie-7- 1/4
03/10/2019 Exercices corrigés Python (Série 7) | MPSI, PCSI et la PTSI

Exemple

Pour la molécule dichromate de potassium (K2Cr2O7) qui est constituée de 2 atomes de potassium(K), 2 atomes de chrome(Cr) et 7 atomes d’oxygène(O), sa
masse molaire moléculaire M(K2Cr2O7) est égale à 2*A(K)+2*A(Cr)+7*A(O).
Puisque A(K)=39,1 g/mol, A(Cr)=52 g/mol et A(O)=16 g/mol, alors M(K2Cr2O7)=2*39,1+2*52+7*16=294,2 g/mol

Travail demandé :
En disposant d’un chier texte ‘Molécules.txt’ dont chaque ligne contient le nom d’une molécule suivi de sa formule chimique, séparés par le caractère
astérisque ‘*’.

1. Ecrire une fonction remplireAtome() qui permet de remplir le chier ‘Atomes.txt’ par les données relatives à N atomes (N<=50), ou chacun est représenté
par son symbole et sa masse atomique,
2. Ecrire un fonction masseAtome() qui permet de stocker dans un chier ‘Resultats.txt’ le nom et la masse molaire moléculaire de chaque molécule gurant
dans le chier ‘Molecules.txt’.

Solution :

21
22
23 def massAtome():
24 dic = dictionnaire('Atomes.txt')
25 source = open('Molecules.txt')
26 dest = open('Resultats.txt', 'a')
27 for ligne in source:
28 c = ligne.strip()
29 l = c.split('*')
30 atome = ''
31 nb = ''
32 estnombre = False
33 masse = 0
34 for lettre in l[1]:
35 if 'A' <= lettre <= 'Z' or 'a' <= lettre <= 'z':
36 if estnombre == True:
37 masse += int(dic[atome])*int(nb)
38 atome = ''
39 nb = ''
40 estnombre = False
41 atome += lettre
42 else:
43 estnombre = True
44 nb += lettre
45 masse += int(dic[atome])*int(nb)
46 dest.write(l[1]+':'+str(masse)+'\n')
47
48
49 remplireAtome(5)

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

Exercice 2

Dans un contexte arithmétique, on dé nit les nombres premiers factoriels et les nombres premiers primoriels comme indiqué ci-après.
Un nombre PF est dit premier factoriel s’il véri e les deux propriétés suivantes :

 PF est un nombre premier


 Et PF s’écrit sous la forme d’un factoriel incrémenté ou décrémenté de 1 (PF=F! + 1 ou PF=F! - 1), sachant que le factoriel de F noté F ! est égal à F*(F-
1) *…*1

Exemple

 7 est un nombre premier factoriel car 7 est premier et il s’écrit sous la forme 3! + 1.
 719 est un nombre premier factoriel car 719 est premier et il s’écrit sous la forme 6! - 1.

Un nombre PP est dit premier primoriel s’il véri e les deux propriétés suivantes :

 PP est un nombre premier 


 PP s’écrit sous la forme d’une primorielle incrémentée ou décrémentée de 1 (PP=P#+1 ou PP=P#-1), sachant que la primorielle de P notée P# est
égale au produit des nombres premiers inférieurs ou égaux à P.
developpement-informatique.com/cours/dev-info/MPSI,-PCSI-et-la-PTSI/95/Exercices-corriges-Python--Serie-7- 2/4
03/10/2019 Exercices corrigés Python (Série 7) | MPSI, PCSI et la PTSI

Exemple

 211 est un nombre premier primoriel car 211 est premier et il s’écrit sous la forme 7# + 1. En effet, 7#+1=2*3*5*7 + 1 =210 + 1=211
 30029 est un nombre premier primoriel car 30029 est premier et il s’écrit sous la forme 13# - 1. En effet, 13# - 1 = 2*3*5*7*11*13-1=30030 – 1
=30029

Travail demandé :

1. Ecrire une fonction premier_fact(n) qui permet de véri er est ce que n est un nombre premier factoriel ou non
2. Ecrire une fonction premier_primoriel(n) qui permet de véri er est ce que n est un nombre premier primoriel ou non

Solution :

13 f = 1
14 ordre = 2
15 while f < n:
16 f = f*ordre
17 ordre += 1
18 if f+1 == n or f-1 == n:
19 etat = True
20 return etat
21
22
23 def premier_primoriel(n):
24 etat = False
25 if premier(n) == True:
26 p = 3
27 s = 0
28 while s < n:
29 s = 1
30 for i in range(2, p+1):
31 if premier(i) == True:
32 s = s*i
33 p += 1
34 if s+1 == n or s-1 == n:
35 etat = True
36 break
37 return etat
38
39
40 n = 719
41 print(premier_fact(n))

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

True

Partager ce cours avec tes amis :

 E-mail  Tweet  Like  Share  WhatsApp

← Exercices corrigés Python (Série 6) Exercices corrigés Python (Série 8) →

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most dif cult thing is how to design ef cient algorithms for real-world
problems, so don't be a programmer, be a problems solver.

  

developpement-informatique.com/cours/dev-info/MPSI,-PCSI-et-la-PTSI/95/Exercices-corriges-Python--Serie-7- 3/4
03/10/2019 Exercices corrigés Python (Série 7) | MPSI, PCSI et la PTSI

Cours Similaires :

Exercices corrigés Python (Série Exercices corrigés Python (Série


6) 9)
 17 Septembre 2017 /  M. ESSADDOUKI  20 Septembre 2017 /  M. ESSADDOUKI
/  11936 /  16613

analyse numérique : résolution Exercices corrigés Python (Série


numérique des équations non 8)
linéaires  17 Septembre 2017 /  M. ESSADDOUKI
/  10519
 02 Septembre 2017 /  M. ESSADDOUKI
/  6369

CO U R S S P ÉC I AU X DERNIERES
F O R M AT I O N S
Pointeurs et tableaux en
langage C Apprendre Langage C++ - Guide
Developpement InformatiqueLa première plateforme éducative dans le
 M. ESSADDOUKI complet pour les débutants
domaine informatique
/  21 Septembre 2019
 24 Septembre 2019

ESSAADA, Immeuble 13, Etage 3, Téléphone: (Phone Number) (+212) Foire aux questions sur la Langage Scilab - Guide
Appartement 6, 695 550 379 programmation en C - FAQ 2 complet pour les étudiants de
Marrakech,Marrakech-Sa , Maroc Email: (Email Address)
 M. ESSADDOUKI CPGE
(Headquarters) essaddouki@gmail.com /  20 Septembre 2019
 15 Septembre 2019

Foire aux questions sur la


    Cours Java pour les débutants
programmation en C - FAQ 1
 02 Septembre 2019
 M. ESSADDOUKI
/  20 Septembre 2019

Langage SQL - Guide complet


Nouveautés de Java 11 pour les débutants

 M. ESSADDOUKI  31 Aout 2019


/  02 Septembre 2019

Copyrights © 2016 - Développement Informatique (DEV-INFO). Accueil / À propos / Politique de con dentialité /
Termes et conditions / Contact

developpement-informatique.com/cours/dev-info/MPSI,-PCSI-et-la-PTSI/95/Exercices-corriges-Python--Serie-7- 4/4

Вам также может понравиться