Informatique Générale 1 TD/TP no 1 Objectif(s) Exercice 1

publicité
Université Pierre et Marie Curie
2012-2013
Informatique Générale 1
Travaux Pratiques
TD/TP no 1
Objectif(s)
M Premiers programmes
M Notions d’expressions, d’instructions.
M Problèmes du typage.
M Premières fonctions prédéfinies
PARTIE CORRIG ÉE
Exercice 1 – Evaluation interactives d’expressions
Ouvrer un terminal et tapez la commande python. Evaluer chaque expression suivante en la recopiant et en tapant
Entrée pour valider une ligne et compléter sur votre feuille les lignes vides avec les réponses données par python.
Que répond python ? Pourquoi ? Remarque : tapez quit() pour fermer la session interactive de python.
>>>2
>>>10.0/3
>>>"t"<"T"
>>>2.5
>>>10/3.0
>>>"toto" < "Truc"
>>>2,5
>>>float(10)/3
>>>false
>>>2+3
>>>2.3
>>>False
>>>20%3
>>>True and False
>>>2<3
>>>toto
>>>not True
>>>(2<3)
>>>"toto"
>>>(2<3) and (3<4)
>>>2==3
>>>"toto"2
>>>(2<3) and False
>>>2=3
>>>"toto"+2
>>> "toto" and (2<3)
>>>2==(10/5)
>>>"toto"+"2"
>>> ("t"<"T") and (2<3)
>>>10/3
>>>"toto"+str(2)
>>>2 +
3
>>>10%3
Exercice 2 – Introduction à la notion d’instructions et de variables
Exécuter les instructions suivantes dans une session python interactive et compléter sur votre feuille les lignes vides
avec les réponses données par python.
InfoGen1 - 2012/2013 - TD/TP no 1
>>>x=3
>>>x=3
>>>print x
>>>y=8
>>>y=8
>>>z=x+y
>>>print x+y
>>>z
>>>z=x+y
>>>print z
>>>print z
>>>print "resultat=z"
>>>z=2
>>>print "resultat="+z
>>>print z
>>>print "resultat="+str(z)
>>> res = x + y * z
>>> print res
>>>print "resultat=",z
>>>print "resultat=%d" % z
>>> res = x * y - z
>>> print res
>>> print "%d+%d=%d" % (x,y,z)
>>> res = x - y ** z
>>> print res
>>> print "%d+%d=%d" % (y,x,z)
>>>resultat=2.5
>>> res = x + y % z
>>> print res
>>>print "resultat=%d" % resultat
>>> res = x / y * z
>>> print res
>>>print "resultat=%f" % resultat
>>> res = float(x) / y * z
>>> print res
>>> res = float(x) * z / y
>>> print res
>>> res = float(x) / (y * z)
>>> print res
Exercice 3 – Introduction à l’utilisation de fonctions prédéfinies
Exécuter les instructions suivantes dans une session python interactive compléter sur votre feuille les lignes vides avec
les réponses données par python.
>>>y=-10.2
>>>x=3.6
>>>bool(-2.3)
>>>type(x)
>>>abs(y)
>>>bool(0)
>>>int(x)
>>>print y
>>>bool("abcd")
>>>y=abs(y)
>>>type(x)
>>>bool("GM3 rules!")
>>>x = int(x)
>>>print y
>>>bool("")
>>>type(x)
>>>y=123.3456
>>>int(3.3)
>>>round(y)
>>>float(4)
>>>round(y,2)
c
2011/2012
Polytech’Paris
page 2 sur 6
InfoGen1 - 2012/2013 - TD/TP no 1
>>>x=123.4567890123
>>>math.trunc(x)
>>>help("math.floor")
>>>math.trunc(x)
>>>math.floor(x)
>>>help("math.ceil")
>>>math.floor(x)
>>>math.ceil(x)
>>>help("round")
>>>import math
>>>help("math.trunc")
>>>print x
Exercice 4 – Introduction à la saisie interactive
Exécuter les instructions suivantes dans une session python interactive compléter sur votre feuille les lignes vides avec
les réponses données par python.
>>>print "bonjour"
>>>print("bonjour")
>>>raw_input "bonjour"
>>>raw_input("bonjour")
>>>raw_input()
>>>help("raw_input")
>>>raw_input("entrez votre age.\n")
>>>x=raw_input("entrez votre age.\n")
>>>print x
>>>type(x)
>>>print "votre age est %s" % x
>>>print "votre age est %d" % x
>>>x=int(x)
>>>print "votre age est %d" % x
Exercice 5 – Premier programme avec Python
La saisie interactive d’expressions ou d’instructions dans un terminal a l’inconvénient de ne pas garder de trace de
votre travail. Nous allons désormais écrire des programmes complets sous forme de fichiers texte (extension .py), et
les exécuter ensuite.
1. Créer dans vos dossiers personnels un répertoire infogen1. Dans ce répertoire, créer un sous-répertoire
TP1. Ouvrir l’éditeur gedit, recopiez-y le code ci-dessous et enregistrez futur programme sous le nom
premierpg.py dans le sous-répertoire TP1. Exécutez le programme dans un terminal en vous plaçant dans le
sous-répertoire en question et exécutez la commande python premierpg.py
print("bienvenue dans votre premier programme python")
nom=raw_input("Comment vous appelez-vous ?\n")
print "bonjour %s !" % nom
age=raw_input("quel age avez-vous ?\n")
age=int(age)
age=age+1
print "l’annee prochaine, vous aurez %d ans" % age
c
2011/2012
Polytech’Paris
page 3 sur 6
InfoGen1 - 2012/2013 - TD/TP no 1
2. Modifier votre programme pour ajouter l’en-tête de fichier et les commentaires suivants :
###########################################
#
TP1 - Exercice 1
#
#
#
#
Monprenom MONNOM
#
#
Leprenomdemonbinome LENOMDEMONBINOME #
#
#
###########################################
# -*- coding=latin-1 -*# Premier programme de bienvenue
print("bienvenue dans votre premier programme python")
nom=raw_input("Comment vous appelez-vous ?\n")
print "bonjour %s !" % nom
age=raw_input("quel age avez-vous ?\n")
age=int(age)
#conversion en entier
age=age+1
#calcul de l’age
print "l’annee prochaine, vous aurez %d ans" % age
• Quelle est l’utilité des commentaires pour vous? pour votre binôme? pour le prof ?
• A quoi sert la ligne commentée
#-*- coding=latin-1 -*? Essayer de mettre des caractères accentués dans le code et de l’enlever pour constater la différence.
Exercice 6 – Guillemets
1. Écrire un programme guillemets.py qui saisit le nom puis le prénom de l’utilisteur et qui affiche le texte
suivant ton nom est machin, en remplaçant machin par le nom saisi.
2. Modifier le programme pour qu’il affiche ensuite le texte ton nom complet est "machin bidule", en
respectant la place des guillemets et en remplaçant machin et bidule par les nom et prénom respectivement.
Exercice 7 – Les cookies
Recette de cuisine : ”Pour 12 cookies environ, battre 115g de beurre mou avec 120g de sucre en poudre jusqu’à ce
que le mélange devienne clair. Ajouter 1 œuf et 1 cuillère à café d’extrait de vanille. Ajouter 175g de farine, et mélanger
le tout avec 200g de pépites de chocol!at noir. Sur les plaques garnies de papier sulfurisé, déposer des petites boules de la
préparation bien espacées, et faire cuire 10min à 180˚C. Laisser refroidir avant de déguster.”
Écrire un programme cookies.py qui demande à l’utilisateur le nombre de cookies et qui affiche le texte de la
recette actualisé en fonction du nombre de cookies. La fonction int() permet d’arrondir vers 0 pour les nombres
d’œufs et de cuillère de vanille.
PARTIE À RENDRE
Exercice 1 – Jour de la semaine
Ecrire un programme TP1 ex1.py qui calcule et affiche le numéro d’un jour de l’année à partir du numéro de la
semaine et du numéro du jour dans la semaine et qu précise si ce numéro est pair. Le programme aura les affichages
suivants:
c
2011/2012
Polytech’Paris
page 4 sur 6
InfoGen1 - 2012/2013 - TD/TP no 1
Numero de semaine? 2
Numero du jour de la semaine entre 1 et 7 ? 3
--> Jour numero 10
--> Ce nombre est-t-il pair ? True
Exercice 2 – Opérateurs logiques
Ecrire un programme TP1 ex2.py qui demande successivement deux valeurs booléennes A et B et qui retourne
la valeur de l’expression logique suivante not(A or B) puis celle de l’expression not(A) and not(B). Indice:
bool(int("0")) retourne la valeur booléenne False, et bool(int("1")) retourne la valeur booléenne True
L’affichage produit est le suivant:
Entrez la valeur de
0
Entrez la valeur de
1
"not (A or B)" vaut
"not(A) and not(B)"
A :
B :
False
vaut False
Qu’en déduisez-vous ? La réponse sera donnée en commentaire dans le fichier.
Exercice 3 – Date de Paques
Voici un algorithme permettant de calculer le jour du mois d’avril représentant le jour de Pâques1 .
Algorithme 1 : Calcul du jour de Pâques.
Données : M l’année considérée
Sorties : P le nombre de jour à compter du 31 mars pour avoir le jour de Pâques
1 n = M − 1900;
2 a = (n mod 19) × 7 + 1 ;
3 b = a/19
Remarque : division entière ;
4 c = (11 × a − b + 4) mod 29 ;
5 d = n/4
Remarque : division entière ;
6 e = (n − c + d + 31) mod 7 ;
7 P = 25 − c − e ;
8 Afficher P
1. Écrire un programme TP1 ex3.py demandant l’année considérée et calculant (puis affichant) le nombre de
jour à compter du 31 mars représentant le jour de Pâques. Par exemple, pour l’année 2013, vous afficherez : En
2013, le jour de Paques est le 21eme jour apres le 31 Mars.
2. Cet algorithme est-il correct ?
Exercice 4 – What’s the date today ?
1. Décrire l’algorithme permettant de déterminer le nombre de jours J, d’heures H, de minutes M et de secondes S
inclus dans un nombre total de secondes ST. On rappelle que :
• une minute = 60 secondes
• une heure = 60 minutes
• une journée = 24 heures
Ainsi, dans un total de 123 secondes, il y a 0 jour, 0 heure, 2 minutes et 3 secondes. Pour un total de 3610
secondes, il y a 0 jour, une heure, 0 minute et dix secondes.
1 http://fr.wikipedia.org/wiki/Calcul
c
2011/2012
Polytech’Paris
de la date de Pâques
page 5 sur 6
InfoGen1 - 2012/2013 - TD/TP no 1
2. Écrire un programme TP1 ex4.py qui reprend l’algorithme précédent. Il demandera le nombre de secondes à
l’utilisateur et affichera le résultat à l’écran.
3. Tester votre programme.
4. Que se passe-t-il si on entre un nombre négatif ?
Exercice 5 – Soumission
• Créer une archive en compressant votre répertoire TP1 au format ZIP. L’archive devra être nommée
TP1 nom1 nom2.zip, où nom1 et nom2 sont les noms des binômes.
• Soumettez votre archive avant la fin de la séance à votre chargé de TD/TP. Le sujet du mail sera de la forme:
[GM3-infogen1] TP1 nom1 nom2
c
2011/2012
Polytech’Paris
page 6 sur 6
Téléchargement