Cryptage des phrases – Bac pratique – Section informatique – 2013

Bac Info 26-12-25
152 0

Sujet (Algo et programmation - Bac 2013)

On se propose de crypter une phrase de la manière suivante :

Chaque lettre d'un mot sera remplacée par la lettre qui la suit de P positions dans l'alphabet français, où -P est le rang du mot dans la phrase.

On suppose que le caractère qui suit la lettre "Z" est le caractère "A" et celui qui suit la lettre "z" est le caractère "a".

Le caractère espace ne subit aucune modification.

Travail demandé :

Ecrire un programme en Python intitulé Cryptage qui permet de :

- saisir et stocker dans un fichier texte "Phrases.txt", N phrases (avec N < 50), dont les mots doivent être formés uniquement de lettres alphabétiques et séparés par un seul espace. Chaque phrase occupera une ligne dans le fichier "Phrases.txt".

- crypter le fichier "Phrases.txt" en utilisant le principe cité ci-dessus. Le résultat sera enregistré dans un fichier "Ph_Crypt.txt".

 

Solution Algorithmique

Dans cet algorithme, On va utiliser cinq fonctions et deux procédures:

- la fonction saisie()

- la fonction supprimer_espaces()

- la fonction verif_phrase()

- la fonction saisie_phrase()

- la procédure remplir_fichier_phrases()

- la fonction crypter_caractere()

- la procédure remplir_fichier_ph_crypt()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie

La fonction saisie(inf, sup) permet de demander à l’utilisateur de saisir un entier strictement compris entre deux bornes inf et sup.

Plus précisément :

- La fonction affiche un message demandant un entier n tel que inf < n < sup. - Si la valeur saisie n’est pas dans l’intervalle ouvert ]inf, sup[, la saisie est redemandée. - La saisie est répétée tant que la condition n’est pas respectée. - Lorsque l’utilisateur entre enfin une valeur correcte, la fonction retourne cet entier.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction supprimer_espaces

La fonction supprimer_espaces(ch) a pour rôle est de nettoyer une chaîne de caractères en supprimant les espaces inutiles.

Plus précisément, la fonction :

- Supprime les espaces au début de la chaîne.

- Supprime les espaces à la fin de la chaîne.

- Remplace les espaces doubles (ou multiples) à l’intérieur de la chaîne par un seul espace.

- Retourne la chaîne corrigée après nettoyage.

 

La fonction verif_phrase

La fonction verif_phrase(ch) a pour le rôle est de vérifier qu’une phrase ne contient que des lettres alphabétiques et des espaces.

Plus précisément :

1- La fonction parcourt la chaîne de caractères ch caractère par caractère.

2- Pour chaque caractère, elle vérifie s’il s’agit : d’une lettre alphabétique (majuscule ou minuscule) ou d’un espace.

3- Si tous les caractères respectent cette condition, la fonction retourne Vrai.

4- Si au moins un caractère non autorisé est rencontré, la fonction retourne Faux.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_phrase()

La fonction saisie_phrase() a pour rôle est de permettre à l’utilisateur de saisir une phrase valide, après nettoyage.

Plus précisément :

1- La fonction demande à l’utilisateur de saisir une phrase.

2- Elle supprime les espaces inutiles (au début, à la fin et les espaces doubles) grâce à la fonction supprimer_espaces.

3- Elle vérifie ensuite que la phrase est valide (ne contient que des lettres et des espaces) à l’aide de la fonction verif_phrase.

4- Tant que la phrase contient des caractères non autorisés, la saisie est redemandée et nettoyée à nouveau.

5- Lorsque la phrase est valide, la fonction retourne la phrase correcte.

Déclaration des objets

Objet Type / Nature
phrase chaîne

 

La procédure remplir_fichier_phrases

La procédure remplir_fichier_phrases(n) a pour rôle est de créer et remplir le fichier phrases.txt avec n phrases saisies par l’utilisateur.

Plus précisément :

1- La procédure affiche un message indiquant le début du remplissage du fichier.

2- Elle ouvre le fichier phrases.txt en mode écriture.

3- Elle répète n fois :

- la saisie d’une phrase valide à l’aide de la fonction saisie_phrase,

- l’écriture de cette phrase dans le fichier, une phrase par ligne.

4- Enfin, elle ferme le fichier.

Déclaration des objets

Objet Type / Nature
f fichier
phrase chaîne

 

La fonction crypter_caractere()

La fonction crypter_caractere(c, p) a pour rôle est de chiffrer un caractère alphabétique en utilisant le chiffrement de César, par décalage de p positions dans l’alphabet.

Plus précisément :

1- Si le caractère c est une lettre majuscule (A à Z), la fonction décale sa position de p lettres vers l’avant dans l’alphabet, en revenant au début si nécessaire.

2- Si le caractère c est une lettre minuscule (a à z), le même principe de décalage est appliqué.

3- Le décalage est circulaire : après Z on revient à A, et après z on revient à a.

4- La fonction retourne le caractère chiffré correspondant.

 

La procédure remplir_fichier_ph_crypt

La procédure remplir_fichier_phrases(n) a pour rôle est de créer et remplir le fichier phrases.txt avec n phrases saisies par l’utilisateur.

Plus précisément :

1- La procédure affiche un message indiquant le début du remplissage du fichier.

2- Elle ouvre le fichier phrases.txt en mode écriture.

3- Elle répète n fois :

- la saisie d’une phrase valide à l’aide de la fonction saisie_phrase,

- l’écriture de cette phrase dans le fichier, une phrase par ligne.

4- Enfin, elle ferme le fichier.

Déclaration des objets

Objet Type / Nature
f_phrases fichier
f_phr_crypt fichier
phrases chaîne
phrase chaîne
i entier
p entier

 

Solution en Python

Exécution du programme

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info