RÉPUBLIQUE TUNISIENNE |
Épreuve pratique d’informatique |
|
Sections : |
||
Coefficient de l’épreuve : 0.75 |
Durée : 1h 30mn |
Important : 1) Dans le dossier Bac2017 situé sur la racine du disque C: de votre poste, créez un dossier de travail ayant pour nom votre numéro d’inscription (6 chiffres) et dans lequel vous devez enregistrer au fur et à mesure tous les fichiers solution au problème posé. 2) Vérifiez à la fin de l’épreuve que tous les fichiers que vous avez créés sont dans votre dossier de travail. 3) Une solution modulaire au problème posé est exigée. |
Cryptage d’un fichier texte
Soit "Source.txt" un fichier texte, dont chaque ligne est composée d'au maximum 100 caractères.
On se propose de réaliser le cryptage du contenu du fichier "Source.txt", ligne par ligne, pour générer un deuxième fichier texte nommé "Crypt.txt" en utilisant une clé de cryptage constituée de lettres
majuscules distinctes.
Le principe de cryptage d'une ligne du fichier "Source.txt" est le suivant :
• ajouter, si c’est nécessaire, des espaces à la fin de la ligne à crypter pour que sa longueur soit multiple de celle de la clé,
• distribuer les caractères de la ligne à crypter, après ajout d'espaces, dans une matrice M de L lignes et C colonnes en commençant par le remplissage de la première ligne de la matrice, puis la deuxième ligne et ainsi de suite. C et L représentent respectivement la longueur de la clé de cryptage et le nombre de lignes remplies de la matrice M,
• former la ligne cryptée par la concaténation des caractères des colonnes de la matrice M en commençant par la première et en ajoutant au début de chacune la lettre de la clé ayant le même indice.
Exemple :
Pour la clé de cryptage "FLASH" et le fichier "Source.txt" ci-dessous :
|
On obtiendra le fichier "Crypt.txt" suivant :
|
En effet, le cryptage de la première ligne du fichier "Source.txt" se fait comme suit :
- Ajout d’un seul espace " " au contenu de la ligne pour que sa longueur soit multiple de celle de la clé
- Distribution des caractères, après ajout d'espaces, dans la matrice M :
|
1 |
2 |
3 |
4 |
5 |
1 |
L |
e |
S |
|
m |
2 |
o |
d |
i |
f |
i |
3 |
c |
a |
t |
i |
o |
4 |
n |
s |
|
d |
e |
5 |
|
l |
‘ |
a |
s |
6 |
p |
e |
c |
t |
|
- Concaténation des caractères des colonnes en commençant par la première et en ajoutant au début de chacune la lettre de la clé ayant le même indice :
D'où, la première ligne du fichier "Crypt.txt" contient :
|
Travail demandé :
1) En utilisant l'éditeur de texte disponible (Bloc-notes, Notepad, Notepad++, ...), créer dans le dossier de travail le fichier texte "Source.txt" et y saisir le contenu présenté dans l'exemple en respectant le contenu de chaque ligne.
2) Ecrire un programme Pascal intitulé "Cryptage" permettant :
● de saisir une clé de cryptage constituée de lettres majuscules distinctes et ayant une longueur appartenant à l'intervalle [5,10],
● de crypter le contenu du fichier "Source.txt" pour générer le fichier "Crypt.txt" en utilisant le principe de cryptage décrit précédemment,
● d'afficher le contenu du fichier "Crypt.txt".
Grille d'évaluation
Traitement |
Nombre de points |
• Décomposition en modules |
2 |
• Appel des modules |
2 |
• Si exécution et tests réussis avec respect des contraintes |
16 |
Sinon |
|
- Structures de données adéquates au problème posé |
3 |
- Création et saisie du contenu du fichier "Source.txt" |
1 |
- Saisie de la clé de cryptage avec respect des contraintes |
3 |
- Cryptage du contenu du fichier "Source.txt" et génération du fichier |
7 |
"Crypt.txt" |
|
- Affichage du contenu du fichier "Crypt.txt" |
2 |