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 TD6

  1. Créez un dossier TD6 dans votre dossier CRI, ainsi qu’un fichier réponses

  2. Ajoutez votre nom et la date du jour dans le dossier réponses en ligne de commande uniquement.

Rappel d’utilisation de 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 TD6. Pour lancer votre script enregistré dans un fichier pgm.py exécutez la commande

python3 pgm.py

Remarque Vous n’êtes pas obligés d’utiliser la commande touch pour créer un nouveau fichier pour un script. Si vous le désirez, vous pouvez utiliser atom pour créer de nouveaux fichiers.

Boucles simples et chaînes de caractères

  1. Boucle avec un accumulateur entier

Question 1

Dans un fichier exo1.py ajoutez les lignes suivantes:

accu = 0
taille = 20
for i in range(taille):
    accu = accu + i
print("Résultat:", accu)    

Question 2

Rappel: la factorielle, notée n! est le produit des entiers de 1 à n. En vous aidant de la page wikipedia à propos des arrangements et combinaisons

Dans un fichier exo1c.py, répondez aux questions suivantes. (Dans aucune définition de ces fonctions, on ne doit trouver de d’appel à print.)

  1. Chaines de caractères

Dans un fichier exo2.py ajoutez les lignes suivantes:

lettres = "abcdefghijklmnopqrstuvwxyz"
print(lettres)
print(lettres+lettres)
print(lettres[10])
print(lettres[3])
print(lettres[-4])
print(lettres[:10])
print(lettres[3:12])
print(lettres[-10:])
print(lettres[-20:-10])

En vous aidant éventuellement d’Internet Proposez une explication sur le fonctionnement de l’opérateur [..].

Dans le fichier exo2b.py, écrire une fonction plus_court qui prend en argument une chaîne de caractères et qui retourne une version raccourcie contenant uniquement les six caractères de début, de fin et “…” au milieu.

Par exemple, plus_court(lettres) doit retourner "abcdef...uvwxyz".

N’oubliez pas d’ajouter une documentation. Illustrez le bon fonctionnement sur quelques exemples (abracadabrantesquement et d’exemples de votre choix).

  1. Chaines de caractères et boucles

Ajoutez dans un fichier exo3.py les lignes suivantes

cocotte_minute = "Le python est un langage de programmation de haut niveau"
oeuf = len(cocotte_minute)
poelle_a_frire = ""
for pilon_de_poulet in range(oeuf): 
    if pilon_de_poulet % 2 == 0:
        poelle_a_frire = poelle_a_frire + cocotte_minute[pilon_de_poulet]
print(poelle_a_frire)

Dans un fichier exo3b.py modifier le nom des variables pour que leur nom illustre mieux leur rôle dans le programme.

Écrire une fonction dans un fichier exo3c.py un_sur_deux qui prend en argument une chaîne de caractères et qui retourne une chaîne de caractères qui ne contient qu’un caractère sur deux de l’argument.

Par exemple, un_sur_deux("Coucou") doit retourner la chaîne de caractère "Cuo".

Vérifier à l’aide d’exemples dans exo3c.py que la fonction réalise bien ce qui est spécifié.

  1. Une boucle avec un accumulateur str

Dans un fichier exo4.py ajoutez les lignes suivantes:

chaine = ""
taille = 20
for i in range(taille):
    chaine = chaine + " + " +str(i) 
print(chaine)   

Comme pour l’exercice 1, créez dans un fichier exo4b.py une fonction fonction_exo4 qui prend en argument la variable taille et qui retourne la chaîne de caractères après la boucle. Ajoutez une documentation et des exemples d’utilisation de cette fonction.

Dans un fichier exo4c.py ajoutez les lignes:

from exo1b import fonction_exo1 
from exo2b import plus_court
from exo4b import fonction_exo4
print("Résultat de", plus_court(fonction_exo4(10)), "=", fonction_exo1(10))

Dans le fichier réponses:

  1. Un programme un peu compliqué

Téléchargez le fichier fable.py et exécutez le. Indiquez dans le fichier réponses ce que fait la fonction mystere.

Attention: On attend une réponse précise sur son fonctionnement et pas uniquement un commentaire sur ce qu’elle produit.



Compiled the: dim. 07 janv. 2024 23:18:51 CET