0% ont trouvé ce document utile (0 vote)
35 vues2 pages

Etape 4

Transféré par

younanekhoury1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
35 vues2 pages

Etape 4

Transféré par

younanekhoury1
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de Lorraine L1 info

Projet de synthèse S1
Énigme 4

Vous trouverez le fichier messageSecret4.txt sur arche, dans la page du cours PS1.

Les lettres (majuscule ou minuscule) et les chiffres de messageSecret4.txt sont codées


par leur point de code (avec la fonction ord).
Puis les points de code de ces caractères sont codés en binaire, sous forme de chaînes de
caractères.

Le code devra être en python, écrit avec les normes vues lors de l’UE algorithme et
programmation impérative.

À faire les semaines 48 et 49, à rendre le 09/12/2024.

Exercice 1 Binaire
L’écriture binaire utilisée ici est grandboutienne (bigendian) : le bit de poid fort est devant.
Tous les codages sont sur un octet (8 bits).
1. Échauffement : écrivez une fonction nb_bits(n) où n est un entier et calculant le plus
petit k tel que n < 2 ∗ ∗(k − 1), à savoir le nombre de bits minimal de l’écriture binaire
de n.
Vous pouvez aussi utiliser le logarithme en base 2, il est fait pour ça.
2. Écrivez une procédure bit_poids_fort(s) attendant une chaîne de 8 caractères 0, 1
et affichant le bit de poids fort.
Par exemple bit_poids_fort("10011000") affichera 1.
3. Écrivez une procédure bit_poids_fort_val(s) attendant une chaîne de 8 caractères
0, 1 et affichant la valeur du bit de poids fort.
Par exemple bit_poids_fort_val("10011000") affichera 128,
alors que bit_poids_fort_val("01011000") affichera 0.
4. Écrivez une fonction bin_to_int(s) attendant une chaîne de 8 caractères 0, 1 et cal-
culant l’entier représenté par ce codage binaire..
Par exemple bin_to_int("10011000") affichera 128 + 16 + 8 = 152.

Exercice 2 Découpage et string (le retour)


Dans un premier temps, écrivez un algorithme lisant un fichier ne contenant que des
entiers codés en binaire sur 8 bits.
— L’opérateur + en python sert à concaténer deux strings.
— Si s est une chaîne de caractères de taille k, et si 0 ≤ i < j ≤ k − 1 alors s[i : j] est une
chaîne de caractères contenant les caractères entre le i-ème et le j − 1-ème caractère
de s.
1. Écrivez une procédure demi(s) attendant une chaîne de caractères et affichant la
première moitié.
Par exemple demi("bonjour") affichera bon.
2. Écrivez une fonction sansMilieu(s) attendant une chaîne de caractères et renvoyant
la fusion de son premier tier et de son dernier tier.
Par exemple sansMilieu("bonjour") renverra bour.
3. Le louchébem était le parlé des bouchers parisiens. Il cousistait (entre autre) à rem-
placer la première consonne par un `, à placer cette consonne à la fin du mot, suivi de
é si c’est un d ou par em si c’est un b.
Par exemple bonjour devient lonjourbem, boucher devient loucherbem (écrit géné-
ralement louchébem) alors que (en) douce devient (en) loucedé.
Écrivez une fonction louchebem attendant une chaîne de caractères commançant par
un b ou un d et écrivant sa version louchébem.
4. Écrivez une procédure attendant une chaîne de caractères et l’affichant 8 caractères
par 8 caractères.
Vous trouverez sur le zip un fichier binaire.txt conteant que des lettres représentées
par leur point de code et codées en binaire.

Exercice 3 Déchiffrage
Dans le fichier à déchiffrer vous avez deux cas :
— Soit vous lisez un 0 ou un 1. Alors vous êtes face à un bloc de 8 bits : le chiffrage
binaire d’une lettre non accentuée ou d’un chiffre.
— Soit vous lisez un caractère autre : lettre accentuée, espace, ponctuation, etc.
Conluez

Page 2

Vous aimerez peut-être aussi