Problème suite de Fibonacci – Bac théorique – Section informatique – 2026

Bac Info 11-06-26
88 0

Sujet (Algo et programmation - Bac 2026)

En se basant sur le triangle de Pascal, on peut calculer les termes de la suite de Fibonacci et les termes de la suite diatomique de Stern en appliquant le procédé suivant:

- Les termes de la suite de Fibonacci sont déterminés en calculant la somme des valeurs situées sur chaque diagonale ascendante du triangle de Pascal (diagonale partant du bord gauche et montant vers la droite comme illustré par la figure Fig1 ci-après).

- Les termes de la suite diatomique de Stern sont déterminés en comptant le nombre de valeurs impaires situées sur chaque diagonale ascendante du triangle de Pascal (diagonale partant du bord gauche et montant vers la droite comme illustré par la figure Fig2 ci-après).

Exemples:

- Les 9 termes de la suite de Fibonacci de F1 à F9 sont: 1, 1, 2, 3, 5, 8, 13, 21 et 34. Ces termes sont déterminés à partir du triangle de Pascal en utilisant le procédé décrit précédemment, comme l'illustre la figure Fig1 ci-après.

- Les 9 termes de la suite diatomique de Stern de S1 à S9 sont: 1, 1, 2, 1, 3, 2, 3, 1 et 4. Ces termes sont déterminés à partir du triangle de Pascal en utilisant le procédé décrit précédemment, comme l'illustre la figure Fig2 ci-après.


Travail demandé :

1) Ecrire un algorithme d'une procédure TrianglePascal(M, N) qui permet de remplir une matrice M par les N premières lignes du triangle de Pascal en utilisant le procédé suivant:

- Les lignes sont remplies jusqu'à la diagonale principale.

- Pour chaque ligne :

Le premier élément et le dernier élément sont égaux à 1,

Les autres éléments sont déterminés en appliquant la formule suivante : M[ligne, colonne] = M[ligne - 1, colonne] + M[ligne - 1, colonne - 1]

NB: M est de type Mat et N est un entier supérieur ou égal à 5 déjà saisi dans le programme appelant.

2) Ecrire un algorithme d'une procédure Remplir(M, N, TFS) qui permet de remplir un tableau TFS, de type Tab, par N enregistrements où chaque enregistrement est composé des deux champs suivants :

- Fib: le terme de rang i de la suite de Fibonacci (i = [1..N]).

- Ste le terme de rang i de la suite diatomique de Stern (i e [1..N]).

Le calcul des termes de la suite de Fibonacci et les termes de la suite diatomique de Stern se fait à partir de la matrice M, déjà remplie par les N premières lignes du triangle de Pascal et en utilisant le procédé décrit précédemment.

Exemple : Pour N = 9, le tableau TFS est:

3) Une société de télécommunication organise un jeu promotionnel destiné à ses abonnés fidèles.

Chaque abonné est identifié par un matricule, qui est une chaine de caractères composée de 4 chiffres. Les matricules sont stockés dans un fichier texte nommé "Fidele.txt", à raison d'un matricule par ligne.

Ecrire un algorithme d'un programme qui permet de:

- Saisir un entier N (avec 5 ≤ N ≤ 100).

- Remplir une matrice M par les N premières lignes du triangle de Pascal en faisant appel à la procédure TrianglePascal.

- Remplir un tableau TFS par N enregistrements en faisant appel à la procédure Remplir.. Créer et remplir un fichier texte nommé "Gagnants.txt" par les gagnants et les super gagnants, sachant qu':

- un abonné est déclaré "Gagnant" si la somme des chiffres de son matricule est un terme de la suite de Fibonacci figurant dans le tableau TFS ou un terme de la suite diatomique de Stern figurant dans le tableau TFS.

- un abonné est déclaré "Super gagnant" si la somme des chiffres de son matricule est à la fois un terme de la suite de Fibonacci et un terme de la suite diatomique de Stern figurants dans le tableau TFS, non obligatoirement dans la même case.

NB:

Chaque ligne du fichier "Gagnants.txt" doit contenir le matricule du gagnant, suivi d'un espace, puis du commentaire "Gagnant" ou "Super gagnant" selon le cas. Le fichier "Fidele.txt" est enregistré sur la racine du disque D.

Le fichier "Gagnants.txt" est à créer sur la racine du disque D.

Exemple: À partir du tableau TFS de la question 2) et du fichier texte "Fidele.txt", dont le contenu est présenté dans la première colonne du tableau suivant, on obtient le fichier texte "Gagnants.txt", dont le contenu figure dans la deuxième colonne du même tableau :

En effet :

Pour le matricule 2001, la somme de ses chiffres est égale à 3, qui est à la fois un terme de la suite de Fibonacci figurant dans le tableau TFS à la case d'indice 4 et un terme de la suite diatomique de Stern figurant dans le tableau TFS à la case d'indice 5. Par conséquent il est déclaré "Super gagnant".

Pour le matricule 0130, la somme de ses chiffres est égale à 4 qui est seulement un terme de la suite diatomique de Stern figurant dans le tableau TFS à la case d'indice 9, donc il est déclaré "Gagnant".

Pour le matricule 3110, la somme de ses chiffres est égale à 5. Le nombre 5 est un terme de la suite de Fibonacci figurant dans le tableau TFS à la case d'indice 5. Cependant, bien qu'il appartienne mathématiquement à la suite diatomique de Stern, il ne figure pas dans le tableau TFS pour cette suite. Par conséquent, ce matricule est déclaré "Gagnant", mais non "Super gagnant".

 

Solution Algorithmique

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

- la fonction saisie_n()

- la fonction sommefacteurs()

- la fonction somme_chiffres()

- la fonction test_nombre_fort()

- la procédure NbrFort()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie_n

Cette fonction permet de saisir et retourner un entier  entre 5 et 100  en contrôlant la validité de la saisie.

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure trianglepascal

Cette procédure permet de construire et d'afficher le triangle de Pascal jusqu'à la nᵉ ligne en remplissant une matrice selon la règle où les éléments des bords valent 1 et chaque élément intérieur est égal à la somme des deux éléments situés au-dessus de lui.

Déclaration des objets

Objet Type / Nature
i entier
j entier

 

La procédure remplir

Cette procédure parcourt les lignes du triangle de Pascal, calcule pour chacune une somme particulière et le nombre de valeurs impaires correspondantes, enregistre ces résultats dans le tableau tfs, puis affiche son contenu.

Déclaration des objets

Objet Type / Nature
i entier
j entier
somme entier
nbr_impaires entier

 

La procédure remplir_fidele

Cette procédure crée le fichier Fidele.txt, y enregistre les matricules des abonnés fidèles saisis par l'utilisateur, à raison d'un matricule par ligne, puis ferme le fichier.

Déclaration des objets

Objet Type / Nature
f fichier texte
n entier
i entier
matricule chaîne des caractères

 

La fonction somme_chiffres

Cette fonction calcule et retourne la somme des chiffres d’un nombre donné sous forme de chaîne de caractères.

Déclaration des objets

Objet Type / Nature
i entier
s entier

 

La procédure recherche

Cette fonction calcule la somme des chiffres d’un matricule et vérifie si cette somme existe dans les champs Fib et Ste du tableau tfs, puis retourne le nombre de correspondances trouvées.

Déclaration des objets

Objet Type / Nature
s entier
resultat entier
i entier

 

La procédure remplir_gagnants

Cette procédure lit les matricules des abonnés fidèles, construit les données nécessaires à partir du triangle de Pascal, détermine les gagnants et super gagnants selon une recherche dans un tableau de résultats, puis enregistre les résultats dans un fichier Gagnants.txt.

Déclaration des objets

Objet Type / Nature
f_fidele fichier texte
f_gagnant fichier texte
matricule chaîne des caractères
m matrice des entier
tfs tableau des enregistrements

 

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

Photos des articles

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