Matrice – Bac pratique – Section informatique – 2013

Bac Info 29-12-25
15 0

Sujet (Algo et programmation - Bac 2013)

On se propose de chercher dans une matrice M, les plus longues séquences d'éléments juxtaposés dont la somme est égale à zéro, en procédant comme suit :

remplir une matrice M de dimension LxC (avec 2 < L < 24 et 2 < C < 24) par des entiers non nuls.
chercher, pour chaque ligne, toutes les séquences d'éléments juxtaposés dont la somme est égale à 0 et les stocker dans un tableau d'enregistrements T. Chaque enregistrement contient trois champs : le numéro de la ligne (Ni), l'indice de la colonne représentant le début de la séquence (ICD) et l'indice de la colonne représentant la fin de la séquence (ICF).
stocker dans un fichier texte intitulé "Long_Seq.txt" :
1- dans la première ligne, le nombre d'éléments de la plus longue séquence.
2- toutes les plus longues séquences d'éléments. Chacune sera représentée, dans une ligne à part, par les valeurs de NL, ICD et ICF, séparés par le caractère "#".

Exemple:

Pour la matrice M de dimension 5x6 suivante :

Dans la lère ligne, il y a 2 séquences d'éléments juxtaposés dont la somme est égale à 0 :

- La séquence ayant comme ICD la valeur 1 et comme ICF la valeur 5.

- La séquence ayant comme ICD la valeur 3 et comme ICF la valeur 6.

Dans la 2ème ligne, il y a une seule séquence d'éléments juxtaposés dont la somme est égale à 0, la séquence ayant comme ICD la valeur 1 et comme ICF la valeur 4.

Dans la 3eme ligne, il y a une seule séquence d'éléments juxtaposés dont la somme est égale à 0, la séquence ayant comme ICD la valeur 2 et comme ICF la valeur 6.

Dans la 4eme ligne, il n'y a aucune séquence d'éléments juxtaposés dont la somme est égale à O.

Dans la Sème ligne, il y a une seule séquence d'éléments juxtaposés dont la somme est égale à 0, la séquence ayant comme ICD la valeur 1 et comme ICF la valeur.

Travail demandé

Ecrire un programme en Python intitulé Sequence qui permet, à partir d'une matrice M de dimension LxC, de remplir un tableau T et de créer un fichier "Long_Seq.txt", comme décrit précédemment.

 

Solution Algorithmique

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

- la fonction saisie()

- la fonction saisie_element()

- la procédure remplir_matrice()

- la procédure afficher_matrice()

- la fonction verif_juxtapose()

- la procédure remplir_tableau()

- la procédure afficher_tableau()

- la procédure remplir_fichier_long_seq()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
l entier
c entier
m matrice
t tableau

 

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