Crypter une matrice – Bac théorique – Section informatique – 2013

Bac Info 30-12-25
14 0

Sujet (Algo et programmation - Bac 2013)

Pour permettre la diffusion d'une émission payante, une chaîne télévisée transmet périodiquement aux récepteurs des abonnés, un fichier texte nommé "F_Code.txt", généré selon le procédé suivant :

- On remplit aléatoirement une matrice carrée M de dimension NxN par des lettres majuscules.

- A partir de la matrice M, on génère un fichier texte nommé "F_Inter.txt" en parcourant la matrice M sous une forme circulaire où chaque ligne du fichier contient la concaténation des valeurs des cases du même niveau en commençant de la case du coin haut à gauche, comme le montre l'exemple ci-après.

- On remplit le fichier "F_Code.txt" de la manière suivante :

- La première ligne contient l'équivalent de N en binaire.

- Chacune des autres lignes contient les conversions en hexadécimal des codes ASCII des caractères d'une ligne du fichier "F_Inter.txt", séparés par le caractère "#".

Travail demandé :

1- Analyser le problème en le décomposant en modules.

2- Analyser chacun des modules envisagés.

 

Solution Algorithmique

Dans cet algorithme, On va utiliser trois fonctions et quatre procédures:

- la fonction saisie()

- la fonction saisie_element()

- la procédure remplir_matrice()

- la procédure afficher_matrice()

- la fonction conversion_binaire()

- la procédure concatiner_circulaire()

- la procédure afficher_fichier_Inter()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier
m matrice

 

La fonction saisie

La fonction saisie() permet à l’utilisateur de saisir un entier strictement positif, tout en vérifiant la validité de la saisie.

Le programme demande à l’utilisateur d’entrer un nombre entier n.

Si n est inférieur ou égal à 0, la saisie est refusée.

Le programme redemande la saisie autant de fois que nécessaire jusqu’à ce que l’utilisateur fournisse un entier strictement positif.

Une fois la valeur correcte saisie, elle est retournée par la fonction.

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure remplir_matrice 

La procédure remplir_matrice remplit une matrice carrée M de taille n × n avec des lettres majuscules aléatoires.

La procédure parcourt la matrice ligne par ligne et colonne par colonne.

Pour chaque case m[i][j] :

- elle génère un nombre aléatoire compris entre 65 et 90 ;

- ce nombre correspond aux codes ASCII des lettres majuscules (A à Z) ;

- la fonction chr() transforme ce code en caractère.

La lettre obtenue est stockée dans la case correspondante de la matrice.

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La procédure afficher_matrice 

La procédure afficher_matrice afficher à l’écran le contenu d’une matrice carrée M de taille n × n de façon lisible.

Le programme affiche d’abord un message indiquant le début de l’affichage.

Il parcourt la matrice ligne par ligne :

- chaque élément m[i][j] est affiché sur la même ligne, séparé par un espace

- après l’affichage de tous les éléments d’une ligne, un retour à la ligne est effectué.

Le résultat est une représentation claire de la matrice sous forme de tableau.

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La fonction conversion_binaire

La fonction conversion_binaire convertit un entier décimal positif en sa représentation binaire.

La fonction utilise la méthode des divisions successives par 2.

À chaque itération :

- le reste de la division (n % 2) constitue un bit du nombre binaire ;

- ce bit est ajouté au début de la chaîne binaire ;

- le nombre est divisé par 2 (n // 2).

La boucle s’arrête lorsque n devient égal à 0.

La fonction retourne la chaîne contenant le nombre en binaire.

Déclaration des objets

Objet Type / Nature
binaire chaîne

 

La procédure concatiner_circulaire

Ce programme définit une procédure concatiner_circulaire dont le rôle est de parcourir une matrice carrée M de taille n × n de manière circulaire (en spirale), de concaténer les caractères rencontrés, puis d’enregistrer les résultats dans deux fichiers.

Explication du fonctionnement

Tout d'abord, la valeur de n convertie en binaire est écrite dans le fichier F_Code.txt.

La matrice est parcourue par couches successives, de l’extérieur vers l’intérieur.

Pour chaque couche :

- les éléments sont lus dans le sens circulaire (ligne supérieure, colonne droite, ligne inférieure, colonne gauche) ;

- les caractères sont concaténés dans une chaîne mot ;

- leurs codes ASCII sont concaténés dans une chaîne code, séparés par #.

Le contenu parcouru est affiché à l’écran.

Les résultats sont enregistrés :

- dans F_Inter.txt : la chaîne des caractères concaténés ;

- dans F_Code.txt : les codes ASCII correspondants.

Déclaration des objets

Objet Type / Nature
f_inter fichier
f_code fichier
mot chaîne
code chaîne
i entier
j entier
k entier

 

La procédure afficher_fichier_Inter

La procédure afficher_fichier_Inter affiche à l’écran le contenu du fichier texte F_Code.txt.

Explication du fonctionnement

La procédure affiche d’abord un message indiquant le début de l’affichage.

Elle ouvre le fichier F_Code.txt en mode lecture.

Elle lit toutes les lignes du fichier.

Chaque ligne est affichée à l’écran après suppression du caractère de fin de ligne (\n).

Le fichier est ensuite correctement fermé.

Déclaration des objets

Objet Type / Nature
f fichier
codes chaîne
code chaîne

 

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