Vous êtes sur la page 1sur 6

Instructions

conditionnelles
Conseil : pour ces exercices, écrivez des scripts dans des fichiers, puis exécutez-les
dans un shell.

Exercice 1 (Jours de la semaine) : Constituez une liste semaine contenant


les sept jours de la semaine.
En utilisant une boucle, écrivez chaque jour de la semaine ainsi que les messages
suivants :
— Au travail s’il s’agit du lundi au jeudi ;
— Chouette c’est vendredi s’il s’agit du vendredi ;
— Repos ce week-end s’il s’agit du week-end.
Ces messages ne sont que des suggestions, vous pouvez laisser libre cours votre
imagination.

Correction :
1 Semaine =[ ’Lundi ’ , ’Mardi ’ , ’Mercredi’ , ’Jeudi ’ , ’Vendredi’ ,
2 ’Samedi’ , ’Dimanche’ ℄
3

4 for Jour in Semaine :


5 if J o u r==’Dimanche’ o r J o u r==’Samedi’ :
6 p r i n t ( "Repos c’est " , J o u r )
7 elif J o u r==’Vendredi’ :
8 p r i n t ( "Youpi , on est" , J our , ". C’est le week -end" )
9 else :
10 p r i n t ( "Au travail , c’est" , Jour )

Exercice 2 (Séquence complémentaire d’un brin d’ADN) : La liste ci-dessous


représente la séquence d’un brin d’ADN :
1 >>> ADN = [ ’A’ , ’C’ , ’G’ , ’T’ , ’T’ , ’A’ , ’G’ , ’C’ , ’T’ , ’A’ , ’A’ , ’C’ , ’G’ ]

1. Écrivez un script qui transforme cette séquence en sa séquence complémen-


taire.
Rappel : la séquence complémentaire s’obtient en remplaçant A par T, T par
A, C par G et G par C.
2. Calculez la fréquence des base dans cette séquence d’ADN.

Correction :
1.
1 ADN=[ ’A’ , ’C’ , ’G’ , ’T’ , ’T’ , ’A’ , ’G’ , ’C’ , ’T’ , ’A’ , ’A’ , ’C’ , ’G’ ℄
2 ARN= [ ℄
3 for Base i n ADN:
4 if Base<’G’ :
Thème: Instructions conditionnelles PCSI - Travaux d’informatique no 5

5 if Base==’A’ :
6 ARN=ARN+[ ’T’ ℄
7 else :
8 ARN=ARN+[ ’G’ ℄
9 elif Base<’T’ :
10 ARN=ARN+[ ’C’ ℄
11 else :
12 ARN=ARN+[ ’A’ ℄
13 p r i n t ( ’ADN=’ ,ADN)
14 p r i n t ( ’ARN=’ ,ARN)

1 A=0
2 T=0
3 C=0
4 G=0
5

6 for Base i n ADN:


7 if Base<’G’ :
8 if Base==’A’ :
9 A=A+1
10 else :
11 C=C+1
12 elif Base<’T’ :
13 G=G+1
14 else :
15 T=T+1
16 p r i n t ( ’La fréquence de A est ’ ,A/ l e n (ADN) )
17 p r i n t ( ’La fréquence de C est ’ ,C/ l e n (ADN) )
18 p r i n t ( ’La fréquence de G est ’ ,G/ l e n (ADN) )
19 p r i n t ( ’La fréquence de T est ’ ,T/ l e n (ADN) )

2. Exercice 3 (Trinôme du second degré) : Écrire un programme permettant


de résoudre une équation du second degré à coefficients réels ax2 + bx + c = 0 en
fonction des coefficients a, b et c.
Correction :
1 i m p o r t math
2

3 a = f l o a t ( i n p u t ( " Quelle est la valeur de a " ) )


4 b = f l o a t ( i n p u t ( " Quelle est la valeur de b " ) )
5 = f l o a t ( i n p u t ( " Quelle est la valeur de c " ) )
6

7 d e l t a = ( b*b ) − (4* a* )
8

9 if delta < 0:
10 titre = "Pas de solution réelles car
11 Delta = {}" . f o r m a t ( d e l t a )
12

13 elif d e l t a >0:
14 x1 = (− b+math . s q r t ( d e l t a ) ) / ( 2 * a )

F.PUCCI 2
Thème: Instructions conditionnelles PCSI - Travaux d’informatique no 5

15 x2 = (− b−math . s q r t ( d e l t a ) ) / ( 2 * a )
16 titre = "Les deux solutions sont: {} et
17 {}" . f o r m a t ( x1 , x2 )
18

19 elif ( d e l t a ==0):
20 x3 = −b / ( 2 * a )
21 titre = "Une seule racine: {}" . f o r m a t ( x3 )
22

23 print ( ti t r e )

Exercice 4 (Notes et mention d’un étudiant) : Voici les notes d’un étu-
diant : 14, 9, 13, 15 et 12.
La fonction min() de Python, renvoie l’élément le plus petit d’une liste constituée de
valeurs numériques ou de chaînes de caractères idem avec max() pour le maximum.

1. Écrivez un script qui affiche la note maximum (fonction max()), la note mi-
nimum (fonction min()) et qui calcule la moyenne sans utiliser les fonctions
précitées
Affichez la valeur de la moyenne avec deux décimales.
2. Affichez aussi la mention obtenue sachant que la mention est passable si la
moyenne est entre 10 inclus et 12 exclus, assez-bien entre 12 inclus et 14
exclus et bien au-delà de 14.
Exercice 5 (Nombres pairs) : Construisez une boucle qui parcourt les nombres
de 0 à 20 et qui affiche les nombres pairs inférieurs ou égaux à 10 d’une part, et les
nombres impairs strictement supérieur à 10 d’autre part.
Pour cet exercice, vous pourrez utiliser l’opérateur modulo % qui renvoie le reste
de la division entière entre deux nombres
Exercice 6 (L’énigme du père Fouras) : À Fort Boyard, le père Fouras nous
pose l’énigme suivante :
Pour ouvrir le coffre où se trouve la clé, trouve la combinaison à trois chiffres
sachant que :

— Le nombre est inférieur à 200.


— Deux de ses chiffres sont identiques.
— La somme de ses chiffres est égale à 5.
— C’est un nombre pair.

On se propose d’utiliser une méthode dite brute force, c’est à dire d’utiliser une
boucle et à chaque itération on teste les 4 conditions.
Avez-vous réussi à trouver la même solution en raisonnant ?
Exercice 7 (Conjecture de Syracuse) : La conjecture de Syracuse est une
conjecture mathématique qui reste improuvée à ce jour et qui est définie de la ma-
nière suivante.
Soit un entier positif n.

F.PUCCI 3
Thème: Instructions conditionnelles PCSI - Travaux d’informatique no 5

— Si n est pair, alors le diviser par 2.


— Si il est impair, alors le multiplier par 3 et lui ajouter 1.
En répétant cette procédure, la suite de nombres atteint la valeur 1 puis se prolonge
indéfiniment par une suite de trois valeurs triviales appelée cycle trivial.
Jusqu’à présent, la conjecture de Syracuse, selon laquelle depuis n’importe quel
entier positif la suite de Syracuse atteint 1, n’a pas été mise en défaut.
Par exemple, les premiers éléments de la suite de Syracuse si on prend comme point
de départ 10 sont : 10, 5, 16, 8, 4, 2, 1. . .
Écrivez un script qui, partant d’un entier positif n, crée une liste des nombres de
la suite de Syracuse.
La conjecture de Syracuse est-elle toujours vérifiée ?
Quels sont les nombres qui constituent le cycle trivial ?
Exercice 8 (Détermination des nombres premiers inférieurs à 100) :
Déterminez les nombres premiers inférieurs à 100. Combien y a-t-il de nombres pre-
miers entre 0 et 100 ? Pour vous aider, je vous propose deux méthodes :
Méthode 1 (peu optimale mais assez intuitive) : Pour chaque nombre de 2
à 100, calculez le reste de la division entière (avec l’opérateur modulo
Méthode 2 (plus optimale et plus rapide) : Vous pouvez parcourir tous les
nombres de 2 à 100 et vérifier si ceux-ci sont composés, c’est-à-dire qu’ils sont
le produit de deux nombres premiers. Pratiquement, cela consiste à vérifier
que le reste de la division entière (opérateur modulo %) entre le nombre
considéré et n’importe quel nombre premier est nul. Le cas échéant, ce nombre
n’est pas premier.
Exercice 9 (Recherche d’un nombre par dichotomie) : Écrivez un script
qui reproduit un jeu de devinettes consistant à faire deviner à l’ordinateur par
dichotomie un nombre auquel vous auriez pensé en vous posant des questions.
Vous utiliserez la fonction input() pour interagir avec l’utilisateur. Voici un exemple
de son fonctionnement :
1 >>> Nombre = input ( " Entrez un nombre : " )
2 E n tr ez un nombre : 17
3 >>> print ( Nombre)
4 17

Pour vous guider, voici ce que pourrait donner le programme :


— Pensez à un nombre entre 1 et 100.
— Est-ce votre nombre est plus grand, plus petit ou égal à 50 ? [+/-/=] +
— Est-ce votre nombre est plus grand, plus petit ou égal à 75 ? [+/-/=] +
— Est-ce votre nombre est plus grand, plus petit ou égal à 87 ? [+/-/=] -
— Est-ce votre nombre est plus grand, plus petit ou égal à 81 ? [+/-/=] -
— Est-ce votre nombre est plus grand, plus petit ou égal à 78 ? [+/-/=] +
— Est-ce votre nombre est plus grand, plus petit ou égal à 79 ? [+/-/=] =
— J’ai trouvé en 6 questions !

F.PUCCI 4
@
Index

False, 6
For, 1
Range, 3
True, 6
While, 7

Bloc d’instruction, 2
Boucle, 8
For, 1
While, 7

Comparaison, 6
CTRL+C, 8

Indentation, 2, 7
Initialisation
de la variable, 8

Ordre
lexicographique, 6

Variable
d’itération, 2, 4
Initialisation de la, 8

5
Chapitre 4: INDEX INDEX

F.PUCCI 6