Codage et Représentation de l’information, année 2019
Rappel
Les TD sont a rendre via Moodle avant vendredi soir, minuit. Tout TD non rendu entraîne un 0 immédiatement.
Ces TDs sont à réaliser sous linux. Il faut donc
allumer (ou redémarrer) votre machine de TP et la faire redémarrer sous
Linux. Les TDs sont à retourner via Moodle sous forme
d’une archive tar.gz
. Pour comprimer un
dossier dans ce format il faut exécuter la commande:
Vous devez faire le maximum du TP dans le terminal, la liste des commandes tapées seront accessibles pour les correcteurs (si tout se passe bien).
Les questions avec une étoile (*
) sont facultatives et
bien plus difficiles.
À tout moment vous pouvez consulter le manuel d’une commande en
tapant man nom_de_commande
.
Préparation du dossier TD5
Créez un dossier
TD5
dans votre dossierCRI
, ainsi qu’un fichierréponses
Ajoutez votre nom et la date du jour dans le dossier
réponses
en ligne de commande uniquement.
Introduction à Python
Dans la suite, tous les scripts sont à écrire avec un éditeur comme
atom
et à enregistrer dans un fichier avec une extension
.py
dans le répertoire TD5
. Pour lancer votre
script enregistré dans un fichier pgm.py
exécutez la
commande
python3 pgm.py
Hello World
Recopiez ce script dans un fichier exo1.py
et lancez-le.
Redirigez la sortie de cette commande dans le fichier
réponses
.
print("Hello World")
Modifiez le script pour qu’il écrive également “Bonjour”. Regardez la documentation de la fonction len. Modifiez le script pour afficher également la longueur de la chaîne (string) “Hello World”.
- Écrivez vos propres fonctions
La fonction suivante:
def eq_droite(a, b, x):
"""
Retourne la valeur de ax+b
"""
return a*x + b
définit une fonction permettant de calculer la valeur de ax +b en donnant des valeurs à \(a\), \(b\) et \(x\). La chaîne entre les triple guillemets est la documentation de la fonction.
Copiez la définition de cette fonction dans un script
exo2.py
et ajouter les lignes qui utilisent la fonction
pour calculer la valeur de \(ax+b\)
lorsque \(a=1\), \(x=5\) et \(b=-1\).
- Modifiez-la!
Dans un nouveau script exo3.py
écrire la définition
d’une fonction somme_carres
qui réalise simplement \(a^2 + b^2\) (la puissance s’écrit en python
avec une double étoile (**).
Utilisez la fonction pour calculer la somme des carrés de -3 et 26.
- Plusieurs fois
Écrire un script compose.py
qui affiche la somme des
carrés de la suite de nombres 11
, 22
,
33
, 44
à l’aide de la fonction
somme_carres
.
- Combien d’appels à la fonction
somme_carres
avez-vous utilisé ? - Combien d’appels à la fonction
somme_carres
sont nécessaires pour obtenir la somme des carrés d’une suite den
nombres quandn
est pair.
- La moyenne
Écrire dans un script moyenne.py
deux fonctions qui
calculent respectivement les moyennes arithmétique et géométrique.
N’oubliez pas d’écrire la documentation comme dans l’exemple de la
question 4. En l’absence de documentation, la question ne sera pas
validée !
- Types de données
Comme vu en cours, Python
dispose de types de
base. Pour déterminer le type d’une expression, on peut utiliser la
fonction type.
Créez un script qui vous indique le type des expressions suivantes:
4
4*3
4.0*3
"cou"
'cou'
eq_droite(4,3,10)
eq_droite(2, " tous le monde", "cou")
4//3
4/3
eq_droite
Proposez une justification du résultat de ces opérations.
- Lecture de code
À l’aide de la commande wget
téléchargez le script ici et copiez le dans le répertoire
TD5
. Exécutez le et à l’aide d’une redirection
>>
stocker le résultat dans un fichier dans le
répertoire TD5
.
- Que contient ce fichier ?
- Que fait ce script ?
- Donner une explication brève de ce que fait chaque fonction de ce script.
(*)
Comprehension avancé de code
La fonction nombre_hexa_string
a une particularité.
Pouvez vous l’identifier et apporter une explication?
- Modification de code
Modifier le code de la question 9 dans un script
mon-dessin.py
pour obtenir le résultat suivant:
Même question pour le résultat suivant, dans un script
mon-dessin2.py
:
(*)
Même question pour le résultat suivant, dans un
script mon-dessin3.py
:
Attention
Avant de rendre le TD vous devez exécuter les deux commandes suivantes:
date >> ~/CRI/TD5/commandes
history >> ~/CRI/TD5/commandes
Sans ces commandes, nous ne pourrons corriger votre TP et vous aurez 0. À la fin du TD, pour pouvoir le rendre, vous devez exécuter les commandes suivantes depuis votre répertoire personnel:
cd ~/CRI/
tar cvzf TD5.tar.gz TD5
Puis vous devez déposer le fichier TD5.tar.gz
présent
dans le dossier CRI sur Moodle.
Compiled the: mer. 04 sept. 2024 12:49:37 CEST