diff --git a/python/5/TP.md b/python/5/TP.md new file mode 100644 index 0000000..4a82355 --- /dev/null +++ b/python/5/TP.md @@ -0,0 +1,25 @@ +## Implementation du chiffrement de Vernam + +On souhaite construire un ensemble de fonctions qui permet de faire du chiffrement à la Vernam. + +Pour cela on a besoin des fonctions suivantes : + +- Générer une clé dans un fichier dont la longueur sera égale à la longueur du message. On génèrera cette clé dans un fichier ```vernam.txt```. Ce qui est généré c'est une suite d'entiers (compris entre 0 et 127; 7 bits) séparés par un espace. + +```python +def genereVernam (long, fic): +``` + +où ```long``` est la longueur du message et ```fic``` est le nom du fichier dans lequel la clé sera enregistrée. + + +- Ecrire une fonction (```encode```) qui prend un fichier (le message) en argument et qui génère un fichier (le coder) qui est la suite des caractères du message représentés sous forme d'entiers (compris entre 0 et 127) + +```python +def encode(fic_m, fic_enc) +``` + +- Ecrire une fonction ```chiffrage``` qui prend en arguments 2 fichiers (le message codé et la clé et qui produit le message chiffré : $f[i] + g[i] \mod 256$ + + + diff --git a/python/5/c2byte.py b/python/5/c2byte.py new file mode 100644 index 0000000..e6bdb44 --- /dev/null +++ b/python/5/c2byte.py @@ -0,0 +1,13 @@ + +r = '' + +x = ord('a') +while ((x/2) != 0): + if ((x % 2) == 0): + r = r+'0' + else: + r = r+'1' + x = x / 2 + +print(c2byte('a')) + diff --git a/python/5/message.txt b/python/5/message.txt new file mode 100644 index 0000000..3df932d --- /dev/null +++ b/python/5/message.txt @@ -0,0 +1,2 @@ +La pluie est bleue! +Q'en pensez vous? \ No newline at end of file diff --git a/python/Ctrl1/DivEnt.py b/python/Ctrl1/DivEnt.py new file mode 100644 index 0000000..33c4eba --- /dev/null +++ b/python/Ctrl1/DivEnt.py @@ -0,0 +1,14 @@ +num = int(input("Entrer un numérateur : ")) +denum = int(input("Entrer un dénominateur : ")) + +global num1 +global v + +num1 = num +v = 0 +if (num >= 0) and (denum > 0): + while (num1 - denum) >= 0: + num1 = num1 - denum + v = v+1 + r = num1 + print("La division", num, " par ", denum, " est égale à ", v, " et il reste ", r) diff --git a/python/Ctrl1/sujetMiniCtrl.md b/python/Ctrl1/sujetMiniCtrl.md index 38de0a9..bb1feff 100644 --- a/python/Ctrl1/sujetMiniCtrl.md +++ b/python/Ctrl1/sujetMiniCtrl.md @@ -1,13 +1,30 @@ -[!Note] Exercice (division entière) ->On cherche à calculer la division entière de 2 nombres entiers positifs par la méthode de la soustraction. ->1. Demander à l’utilisateur un numérateur ->2. Demander à l’utilisateur un denominateur ->3. Vérifier que les 2 valeurs sont positives (et non nulle pour le dénominateur) ->4. Écrire le boucle qui fait la division ->5. Afficher le résultat sous la forme suivante -> ->``` ->Entrer un numérateur : 1248 ->Entrer un dénominateur : 2 ->La division 1248 par 2 est égale à 624 et il reste 0 ->``` \ No newline at end of file +### Exercice (division entière) +On cherche à calculer la division entière de 2 nombres entiers positifs par la méthode de la soustraction. + +1. Demander à l’utilisateur un numérateur +2. Demander à l’utilisateur un denominateur + +3. Vérifier que les 2 valeurs sont positives (et non nulle pour le dénominateur) + +4. Écrire le boucle qui fait la division + +5. Afficher le résultat sous la forme suivante + + +```sh +Entrer un numérateur : 1248 +Entrer un dénominateur : 2 +La division 1248 par 2 est égale à 624 et il reste 0 +``` + +13 diviser par 4 + +13 - 4 = 9 (1 soustraction) + +9 - 4 = 5 (2 soustractions) + +5 - 4 = 1 (**3** soustractions) + +**1** - 4 < 0 STOP + +On a fait 3 soustractions et il reste 1 donc 13 = **3** * 4 + **1**. \ No newline at end of file