Matrice et Suite – Bac pratique – Section informatique – 2014

Bac Info 31-12-25
180 0

Sujet (Algo et programmation - Bac 2014)

Une suite est dite arithmétique si, pour tout n > 0, Un = Un-1 + r.

On se propose d'afficher toutes les suites arithmétiques à partir d'un ensemble d'entiers sauvegardés dans un fichier de données en procédant comme suit :

- remplir une matrice V de n lignes et m colonnes par des entiers (avec I

Pour le fichier "Fnombres.dat" précédent, on affichera

2, 5, 8,1 1, 14,17 est une suite arithmétique de raison r = 3

14, 13, 12., I 1, 10 est une suite arithmétique de raison r = -1

Travail demandé

Ecrire un programme en Python permettant de réaliser les traitements décrits précédemment.

 

Solution Algorithmique

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

- la fonction saisie_ligne()

- la fonction saisie_colonne()

- la procédure remplir_matrice()

- la procédure afficher_matrice()

- la procédure remplir_fichier_fnombre()

- la fonction recherche_raison()

- la procédure recherche_suites()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
k entier
n entier
m matrice
v matrice
t tableau

 

La fonction saisie_ligne

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 saisie_colonne

Cette fonction sert à saisir et valider le nombre de colonnes d’une matrice en respectant trois contraintes :

La fonction saisie_colonne(inf, sup) :

1- Demande à l’utilisateur de saisir un entier n

2- Vérifie que n est : strictement supérieur à inf, strictement inférieur à sup et pair (divisible par 2)

3-Redemande la saisie tant que ces conditions ne sont pas respectées

4- Retourne la valeur valide de n

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure remplir_matrice 

Cette procédure permet de remplir une matrice V de dimensions n × m par des entiers saisis au clavier.

La procédure remplir_matrice(v, n, m) :

- affiche un message indiquant le début du remplissage de la matrice

- parcourt la matrice ligne par ligne

- Pour chaque position V[i][j] : demande à l’utilisateur de saisir un entier et stocke cet entier dans la matrice

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La procédure afficher_matrice 

Cette procédure afficher_matrice(m, l, c) a pour rôle d’afficher le contenu de la matrice M de dimensions l × c.

Détail du fonctionnement :

Elle affiche un message indiquant l’affichage de la matrice.

Elle parcourt la matrice ligne par ligne à l’aide de la boucle sur i.

Pour chaque ligne, elle parcourt les colonnes avec la boucle sur j.

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

Après l’affichage de chaque ligne, un retour à la ligne est effectué avec Ecrire().

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La procédure remplir_fichier_fnombre

Cette procédure permet de générer le fichier Fnombres.dat à partir de la matrice V, en calculant des valeurs spécifiques, puis en les stockant à la fois dans un fichier et dans un tableau.

La procédure remplir_fichier_fnombre(v, n, m, t) :

1- parcourt chaque ligne de la matrice V

2- pour chaque élément V[i][j], calcule la valeur absolue de la différence entre V[i][j] et son élément symétrique sur la même ligne V[i][m - j - 1]

3- stocke le résultat dans le tableau T et dans le fichier Fnombres.dat

4- affiche chaque valeur calculée

5- utilise la variable globale k pour compter le nombre total de valeurs produites

Déclaration des objets

Objet Type / Nature
i entier
j entier
k entier (variable globale)
f fichier

 

La fonction recherche_raison

Cette fonction sert à vérifier si une raison r a déjà été trouvée et enregistrée dans le tableau raison.

La fonction recherche_raison(raison, n, r) :

1- parcourt le tableau raison depuis l’indice 0 jusqu’à n-1

2- compare chaque valeur avec la raison r

3- s’arrête dès que : la raison est trouvée, ou la fin de la zone utile du tableau est atteinte

4- retourne Vrai si la raison r n’existe pas encore et Faux si la raison r existe déjà

Déclaration des objets

Objet Type / Nature
i entier

La procédure recherche_suites

Cette procédure remplir_fichier_long_seq(t, longueur_tableau, max_sequence) a pour rôle de créer et remplir le fichier texte Long_Seq.txt avec les informations relatives aux plus longues séquences d’éléments juxtaposés dont la somme est égale à zéro.

Détail du fonctionnement :

Elle ouvre (ou crée) le fichier Long_Seq.txt en mode écriture.

Elle écrit dans la première ligne du fichier le nombre d’éléments de la plus longue séquence trouvée.

Elle parcourt ensuite le tableau T, qui contient toutes les séquences détectées.

Pour chaque séquence, elle calcule sa longueur à partir des indices de début (icd) et de fin (icf).

Si la longueur de la séquence correspond à la longueur maximale (max_sequence), ses informations sont :

affichées à l’écran,

enregistrées dans le fichier sous la forme : NL#ICD#ICF.

Enfin, le fichier est fermé correctement.

Déclaration des objets

Objet Type / Nature
index entier
i entier
j entier
k entier
l entier
r entier
raison tableau

 

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