TP NO 1

publicité
Lycée Brizeux – 2015/2016
Informatique – PCSI
TP N O 1
OU PETITS PROGRAMMES EN VRAC
Consignes :
— Ouvrez votre session. Dans votre dossier personnel, créez un dossier (par exemple "Informatique").
— Ouvrez ensuite l’environnement de développement « spyder ». La partie gauche de la fenêtre
contient un éditeur de texte. Vous y écrirez vos programmes. Commencez par sauvegarder le fichier dans le dossier qui vient d’être crée (par exemple sous le nom "TP01_ex01.py"). À chaque
exercice, vous enregistrerez un nouveau fichier.
— Les programmes seront écrit en python 3.
— Avant d’écrire un programme sur la machine, vous écrirez sur feuille l’algorithme correspondant
(avec un schéma), puis la traduction en language python.
— Les commentaires seront précédés d’un croisillon #. Il est important de commenter tous vos
programmes et d’utiliser des noms de variables explicites.
— Travail à rendre : à l’issue du TP, vous rendrez un (seul) fichier (.py) contenant vos programmes
réalisés pendant le TP et les programmes supplémentaires qui vous seront demandés. Envoyez
votre fichier via la plateforme Moodle (lien dans la page « cahier de texte » de la classe).
1 Instructions d’entrée et de sortie avec python
L’instruction a=input('Entrer une donnée :') permet d’affecter dans la variable a la réponse
de l’utilisateur à la phrase « Entrer une donnée ».
Par défaut, python considèrera que la variable a entrée est une chaîne de caractères. Si vous souhaitez
que l’utilisateur entre une valeur numérique, vous devrez donc la convertir.
Exemples :
a=int(input('Entrer un nombre : ')), si a est un nombre entier,
a=float(input('Entrer un nombre : ')), si a est un flottant.
L’instruction print('Du texte ou ',autre) permet d’afficher, lors de l’exécution d’un programme,
des « blocs » de données de tout type : ici, la chaîne de caractère « Du texte ou » sera écrite, et suivie de
la valeur de la variable autre.
Pour éviter un retour à la ligne, on écrira print("colonne1 ",end="")
Exercice 1 : Tester les fonctions input et print. Par exemple :
a = input('entrez un nombre a : ')
print('Le type de a est', type(a))
b = int(input('entrez un nombre b : '))
print('Le type de b est',type(b))
print('colonne1 ',end=' ')
print('colonne2 ',end=' ')
print('colonne3')
2 Instructions conditionnelles
Si . . . alors . . .
if condition :
instruction(s)
Si . . . alors. . ., sinon. . .
if condition :
instruction(s)
else :
autre(s) instruction(s)
Si . . . alors. . ., sinon, si . . .
if condition :
instruction(s)
elif autre condition :
autre(s) instruction(s)
else :
encore d’autres instructions
Attention : L’indentation est signifiante.
Exercice 2 : Valeur absolue
Écrire un programme qui, étant donné un nombre x, renvoie sa valeur absolue.
1/3
Lycée Brizeux – 2015/2016
Informatique – PCSI
Exercice 3 : Équations du second degré
1. Écrire un programme pour résoudre de telles équations
On peut calculer la racine carrée d’un nombre positif en le mettant à la puissance 0.5
2. Tester le programme sur les équations suivantes :
6
9
2
1
x 2 + x + 1 = 0, 3x 2 + 2x − 1 = 0, x 2 − x +
= 0, et x 2 − x +
= 0.
7
49
5
25
Exercice 4 : Années bissextiles
Une année est dite bissextile si c’est un multiple de 4, sauf si c’est un multiple de 100. Toutefois,
elle est considérée comme bissextile si c’est un multiple de 400.
Écrire un programme pour déterminer si une année donnée est bissextile ou non.
3 Boucles du type for
Si on a l’intention de répéter n fois un certain bloc d’instructions, la syntaxe dans Python est :
for compteur in range(n,m,pas) :
instruction(s)
La variable compteur parcourt l’ensemble des entiers compris entre n et m − 1 suivant un pas donné.
Si le pas est omis, alors pas=1.
Si n est omis, alors n = 0. En particulier, range(m) donne la séquence 0, 1, 2, . . . , m − 1.
Exercice 5 : Liste de carrés
Faire afficher la liste de tous les carrés des entiers compris entre 5 et 15.
Exercice 6 : Table de multiplication
1. Écrire un programme affichant la table de multiplication de 0 à 12 d’un entier N .
2. Modifier le programme pour qu’il signale ceux qui sont multiples de 3.
Exercice 7 : Factorielle
Écrire un programme qui, étant donné un entier positif n, renvoie n ! = 1 × 2 × 3 × · · · × n.
4 Boucles du type while
Lorsqu’on veut qu’une (ou plusieurs) instruction(s) se répète(nt) tant qu’une condition est vérifiée,
on écrit :
while condition :
instruction(s)
ATTENTION ! La condition doit évoluer à chaque itération pour éviter que la boucle se répète indéfiniment.
Exercice 8 : Écrire un programme qui demande à l’utilisateur d’entrer un entier A et qui affiche le premier nombre entier positif n tel que n! soit strictement plus grand que A.
1
Exercice 9 : On considère la suite (u n ) définie, pour tout entier naturel n, par u n = 3
. Celle-ci
n +n +2
est décroissante et converge vers 0.
Écrire un programme qui permette d’obtenir le premier rang n à partir duquel u n 6 0, 001.
2/3
Lycée Brizeux – 2015/2016
Informatique – PCSI
5 Pour aller plus loin
Exercice 10 : L’échiquier de Sissa
Une légende de l’Inde ancienne raconte que l’ancêtre du jeu d’échecs a été inventé par le brahmane Sissa vers 3000 ans avant notre ère, mais l’origine du jeu d’échecs est controversé.
L’histoire raconte que le roi Belkib promit une récompense fabuleuse à qui lui proposerait une distraction qui le satisferait. Lorsque le brahmane Sissa lui présenta son jeu d’échecs, il lui demanda
ce qu’il souhaitait comme cadeau en récompense. Sissa demanda qu’on lui fournisse simplement
un peu de riz pour ses vieux jours, et plus précisément un nombre de grains de riz suffisant pour
que l’on puisse en déposer un seul sur la première case du jeu qu’il venait d’inventer, deux sur
la suivante, quatre sur la troisième, et ainsi de suite. Le roi accorda immédiatement cette récompense. . .
1. Écrire un programme pour afficher le nombre de grains à déposer sur chacune des 64 cases
du jeu.
On affichera le nombre de grains de riz sur chaque case.
On calculera également la somme totale de grains de riz qu’il y a sur l’échiquier.
2. En considérant qu’un grain de riz a une masse moyenne de 0,04 g, déterminer la masse (en
tonnes) de riz que cette somme représente.
3. La production mondiale de riz en 2013, estimée par la Food and Agriculture Organization
des Nations Unies, est d’environ 740 millions de tonnes. En se basant sur cette donnée, déterminer la durée de production nécessaire (en années) pour remplir l’échiquier.
Exercice 11 : Prêt immobilier
L’algorithme pour simuler l’évolution d’un prêt immobilier est le suivant :
Entrer 3 flottants credit, taux, annuite.
L’entier annee reçoit la valeur 0.
Si annuite ≤ taux × credit alors il est impossible de rembourser ce prêt.
Sinon :
Tant que credit > 0 faire :
credit reçoit la valeur (1+taux)×credit - annuite.
annee reçoit la valeur annee + 1.
Fin Tant que
Afficher annee.
Fin Si
1. Programmer et tester cet algorithme.
2. Que représente la variable annee à la fin de l’algorithme ?
3. Que risque-t-il de se passer si le test initial est omis ?
Exercice 12 : Nombres de Mersenne
Pour n > 2 entier naturel fixé, on appelle n-ième nombre de Mersenne le nombre M n = 2n −1. Les
premiers nombres de Mersenne sont donc 3, 7, 15, . . .
1. Écrire un programme calculant et affichant M n pour n donné.
2. En remarquant que M n+1 = 2M n + 1, écrire un programme affichant les nombres de Mersenne inférieurs à 100 000.
3. Parmi eux certains sont premiers. Écrire un programme affichant les nombres de Mersenne
qui sont premiers et inférieurs à 100 000.
Exercice 13 : Multiplication des lapins
Leonardo Fibonacci est un mathématicien italien du XIIIe siècle qui a posé le problème suivant :
« Un homme met un couple de lapins dans un lieu isolé de tous les côtés par un mur. Combien
de couples obtient-on en un an si chaque couple engendre tous les mois un nouveau couple à
compter du deuxième mois de son existence ? »
Notant Un le nombre de couples de lapins au bout de n mois, on peut montrer que les termes de
cette suite sont définis par : U0 = 1, U1 = 1 et Un+2 = Un+1 +Un .
Écrire un programme pour afficher le 2015e terme de cette suite.
On pourra utiliser judicieusement l’affectation multiple.
3/3
Téléchargement