logo

Compression d'un texte

L'objectif de cette activité est de compresser le texte suivant :

Toute machine informatique manipule une représentation des données dont l'unité minimale est le bit. Ce qui permet d'unifier logique et calcul. Les données de base sont représentées selon un codage dépendant de leur nature entiers flottants caractères et chaines de caractères. Le codage conditionne la taille des différentes valeurs en mémoire.

Par défaut chauque caractère du texte est codé sur 8 bits, soit 256 caractères possibles. Or le texte ne contient pas autant de caractères donc nous pouvons coder chaque caractère sur moins de 8 bits.

Pour des raisons d'encodage, vous ne pouvez pas faire ce TP sur l'émulateur en ligne car il ne supporte pas les caractères accentués. Utiliser l'IDLE python ou EDUpython


Pour cela il vous faudra indiquer dans l'entête l' encodage UTF-8 les lignes suivantes:

# -*- coding: utf-8 -*-

Il existe cette autre syntaxe pour indiquer un encodage :

# coding: utf-8

A noter que par défaut l'encoding est en utf-8 pour python 3.

Exercice 1

Ecrire dans le langage Python une fonction dont les paramètres sont une lettre (chaine de caractère) et une chaine de caractère qui renvoie True si la lettre n'appartient pas à la chaine de caracctère et False sinon.

Voir une solution

Exercice 2

Ecrire dans le langage Python une fonction dont le paramètre est une chaine de caractères et qui renvoit la liste des caractères utilisés.
En déduire le nombre de caractères utilisés dans le texte à compresser.
Combien de bits au minimum sont nécessaire pour pouvoir coder ce texte ?

Voir une solution

Exercice 3

Imaginer un programme qui compresse ce texte en binaire.

Exercice 4

Imaginer un programme qui décompresse ce texte.