Вы находитесь на странице: 1из 7

LYCEE Moknine

DISCIPLINE : PROFESSEUR : Mr Grich Mourad


PROGRAMMATION

LES algorithmes récurrents

Objectifs :
L’élève sera capable de manipuler des algorithmes permettant de résoudre des
traitements de calcul :
D’une somme,
Du maximum et du minimum,
Des suites,
Du triangle de PASCAL pour un ordre N donné par l’utilisateur

I. Calcul de somme :
Activité : Ecrire un programme qui permet de remplir un tableau T de n entiers, puis calculer leur somme
et afficher le résultat.
a) Exemple :
Soit un tableau T contenant les dix éléments suivants :
T : 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10
Etape1 :
T: 12 10 0 -5 8 12 -2 2 40 -1 S
1 2 3 4 5 6 7 8 9 10 0
Etape2 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 12
Etape3 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 22
Etape4 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 22
Etape5 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 17
Etape6 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 25
Etape7 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 37
Etape8 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 35
Etape9 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
37
1 2 3 4 5 6 7 8 9 10
Etape10 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 77
Etape11 :
S
T: 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10 76
b) Analyses et algorithmes du problème :
1. Analyse du programme principale :
• Résultat : Afficher la somme des éléments du tableau
• Traitements : Il faut calculer la somme, en utilisant une fonction Somme
• Données : Il faut remplir le tableau T et saisir la taille n, en utilisant la procédure Saisie
2. Algorithme du programme principal :
0) Début Calcul_Somme
1) Saisie (T, N)
2) Ecrire ("La somme est : ", Somme (T, N))
3) Fin Calcul_Somme
Tableau de déclaration des Objets
Tableau de déclaration des nouveaux types
Objets Type/Nature
Types T TAB
TAB = Tableau de 100 entiers N Entier
Saisie Procédure
Somme Fonction

3. Analyse de la procédure Saisie :


• Résultat : Saisir Nf et remplir Tf
• Traitements : Le remplissage d’un tableau est une action répétitive, ou on connaît le
nombre de répétition qui est égale à Nf, d’où utilisation de la boucle POUR … FAIRE
… La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier négatif ou
supérieur à 100. Cette procédure admet deux paramètres formels qui sont Nf et Tf.
4. Algorithme de la procédure Saisie :
0) Début procédure Saisie (VAR Tf : TAB ; VAR Nf : Entier)
1) Répéter
Tableau de déclaration
Ecrire ("Donner la taille du tableau : "), Lire (Nf)
des Objets locaux
Jusqu'à (Nf dans [1..100])
2) Pour i de 1 à Nf Faire
Objets Type/Nature
Ecrire ("Donner l’élément N°", i, ": "), Lire (Tf[i])
i Entier
Fin Pour
3) Fin Saisie
5. Analyse de la fonction Somme :
• Résultat : Déterminer la somme des éléments du tableau Tf
• Traitements : Il s’agit d’un traitement répétitif jusqu'à le dernier élément du tableau,
d’où utilisation de la boucle POUR … FAIRE. On doit initialiser une variable S à 0
avant de commencer le traitement, puis au fur et à mesure ajouter à S chaque élément du
tableau.
Les paramètres formels de cette fonction sont Tf, Nf
6. Algorithme de la fonction Somme :
0) Début fonction Somme (Tf : TAB ; Nf : Entier) : Entier
1) [S ← 0] Pour i de 1 à Nf Faire Tableau de déclaration
S ← S + Tf[i] des Objets locaux
Fin Pour
2) Somme ← S Objets Type/Nature
3) Fin Somme i, S Entier
II. Recherche du minimum et du maximum :
Activité : Ecrire un programme qui permet de remplir un tableau T de n entiers, puis calculer et afficher
le minimum et le maximum des éléments du tableau T.

a) Exemple :
Soit un tableau T contenant les dix éléments suivants :
T : 12 10 0 -5 8 12 -2 2 40 -1
1 2 3 4 5 6 7 8 9 10
Etape1 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 12 12
Etape2 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 10 12
Etape3 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 0 12
Etape4 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 12
Etape5 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 12
Etape6 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 12
Etape7 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 12
Etape8 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 12
Etape9 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 40
Etape10 :
T: 12 10 0 -5 8 12 -2 2 40 -1 Min Max
1 2 3 4 5 6 7 8 9 10 -5 40
b) Analyses et algorithmes du problème :
1. Analyse du programme principale :
• Résultat : Afficher le minimum et le maximum des éléments du tableau
• Traitements : Il faut calculer le minimum, en utilisant une fonction Minimum, et le
maximum, en utilisant la fonction Maximum.
• Données : Il faut remplir le tableau T et saisir la taille n, en utilisant la procédure Saisie
2. Algorithme du programme principal :
0) Début Calcul_Min_Max
1) Saisie (T, N)
2) Ecrire ("Le minimum est : ", Minimum (T, N))
3) Ecrire ("Le maximum est : ", Maximum (T, N))
4) Fin Calcul_Min_Max
Tableau de déclaration des Objets
Tableau de déclaration des nouveaux types
Objets Type/Nature
Types T TAB
TAB = Tableau de 100 entiers N Entier
Saisie Procédure
Minimum, Maximum Fonction
3. Analyse de la fonction Minimum :
• Résultat : Déterminer le minimum des éléments du tableau Tf
• Traitements : Il s’agit d’un traitement répétitif jusqu'à le dernier élément du tableau,
d’où utilisation de la boucle POUR … FAIRE. On doit initialiser une variable Min à
Tf[1] avant de commencer le traitement, puis au fur et à mesure dés que on trouve un
élément inférieur à Min, on modifie le contenu de la variable Min.
Les paramètres formels de cette fonction sont Tf, Nf
4. Algorithme de la fonction Maximum :
0) Début fonction Minimum (Tf : TAB ; Nf : Entier) : Entier
1) [Min ← Tf[1]] Pour i de 2 à Nf Faire Tableau de déclaration
Si Tf[i] < Min Alors des Objets locaux
Min ← Tf[i]
Finsi Objets Type/Nature
Fin Pour i, Min Entier
2) Minimum ← Min
3) Fin Minimum
5. Analyse de la fonction Maximum :
• Résultat : Déterminer le maximum des éléments du tableau Tf
• Traitements : Il s’agit d’un traitement répétitif jusqu'à le dernier élément du tableau,
d’où utilisation de la boucle POUR … FAIRE. On doit initialiser une variable Max à
Tf[1] avant de commencer le traitement, puis au fur et à mesure dés que on trouve un
élément supérieur à Max, on modifie le contenu de la variable Max.
Les paramètres formels de cette fonction sont Tf, Nf
6. Algorithme de la fonction Maximum :
0) Début fonction Maximum (Tf : TAB ; Nf : Entier) : Entier
1) [Max ← Tf[1]] Pour i de 2 à Nf Faire Tableau de déclaration
Si Tf[i] > Max Alors des Objets locaux
Max ← Tf[i]
Finsi Objets Type/Nature
Fin Pour i, Max Entier
2) Maximum ← Max
3) Fin Maximum

III. Calcul sur les suites :

a) Introduction :
Pour chercher des solutions informatiques à des problèmes qui manipulent des suites (arithmétiques ou
géométriques), on a besoin toujours d’utiliser des calculs récurrents pour par exemple chercher le nème terme,
pour calculer la somme des p termes, … etc.

Activité : Ecrire un programme qui permet de calculer et afficher les N premiers termes d’une suite U
définie par :
U0 = 5
Un = 2*Un-1 + 1.5

b) Analyses et algorithmes du problème :


1. Analyse du programme principale :
• Résultat : Afficher les n premiers termes de la suite U
• Traitements : Il faut calculer et afficher à chaque fois Un, en utilisant une procédure
Affiche_Un
• Données : Il faut le nombre de termes à afficher, soit n fois, en utilisant la procédure
Saisie

2. Algorithme du programme principal : Tableau de déclaration des Objets


0) Début Suite
1) Saisie (N) Objets Type/Nature
2) Affiche_Un(N) N Entier
3) Fin Suite Saisie, Affiche_Un Procédure

3. Analyse de la procédure Saisie :


• Résultat : Saisir Nf
• Traitements : La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier
négatif.
Cette procédure admet un seul paramètre formel Nf.
4. Algorithme de la procédure Saisie :
0) Début procédure Saisie (VAR Nf : Entier)
1) Répéter
Ecrire ("Donner le nombre de terme à afficher : ")
Lire (Nf)
Jusqu'à (Nf >=0)
2) Fin Saisie
5. Analyse de la procédure Affiche_Un :
• Résultat : Afficher les Nf termes de la suite
• Traitements : Pour calculer un terme d’ordre p on a besoin de calculer avant le terme
d’ordre p-1. donc la solution comporte une structure itérative complète POUR … FAIRE
Cette procédure admet un seul paramètre formel Nf.
6. Algorithme de la procédure Affiche_Un :
0) Début procédure Affiche_Un (Nf : Entier) Tableau de déclaration
1) U ← 5 des Objets locaux
2) Ecrire ("Le terme N°1 est : ", U)
3) Pour i de 1 à Nf-1 Faire Objets Type/Nature
U ← 2*U + 1.5 i Entier
Ecrire ("Le terme N°", i+1, " est : ", U) U Réel
Fin Pour
4) Fin Affiche_Un

IV. Triangle de PASCAL :


a) Introduction :
Le triangle de PASCAL fournit les coefficients de l’équation (a + b) n. Par exemple si on veut calculer les
coefficients de l’équation (a + b) 4 on procède de la manière suivante :

1 Ligne 0 : (a + b) 0

1 1 Ligne 1 : (a + b) 1
Matrice carrée M de
1 2 1 Ligne 2 : (a + b) 2
dimension 5x5
1 3 3 1 Ligne 3 : (a + b) 3
1 4 6 4 1 Ligne 4 : (a + b) 4

M [4, 2] = M [3, 1] + M [3, 2]

Qu’est ce qu’on peut remarquer à partir de cette matrice ?


Pour chaque ligne, on remplit un nombre de colonne qu’est égale à la numéro du ligne.
Pour chaque ligne, le premier et le dernier élément contiennent 1.
Les éléments des lignes 1 et 2 sont remplient par des 1.
Les autres éléments sont remplient par la formule : M [l, c] = M [l, c-1] + M [l-1, c-1].
Activité : Ecrire un programme qui permet de remplir et afficher le triangle de PASCAL pour un degré N
de l’équation (a + b) n donné par l’utilisateur.
b) Analyses et algorithmes du problème :
1. Analyse du programme principale :
• Résultat : Afficher le triangle de PASCAL, en utilisant une procédure Affiche
• Traitements : Il faut calculer et remplir les éléments de la matrice, en utilisant la
procédure Remplir_TP
• Données : Il faut saisir le degré N de l’équation (a + b) n en utilisant la procédure Saisie
2. Algorithme du programme principal :
0) Début Triangle_PASCAL
1) Saisie (M, N)
2) Remplir_TP (M, N)
3) Affiche (M, N)
4) Fin Triangle_PASCAL
Tableau de déclaration des Objets
Tableau de déclaration des nouveaux types
Objets Type/Nature
Types M MAT
MAT = Matrice de 100 x 100 entiers N Entier
Saisie, Remplir_TP, Affiche Procédure

3. Analyse de la procédure Saisie :


• Résultat : Saisir Nf
• Traitements : La saisie de l’entier Nf doit être contrôlée pour ne pas saisir un entier
négatif ou supérieur à 99. Cette procédure admet un seul paramètre formel qui est Nf.
4. Algorithme de la procédure Saisie :
0) Début procédure Saisie (VAR Nf : Entier)
1) Répéter
Ecrire ("Donner le degré de l’équation : ")
Lire (Nf)
Jusqu'à (Nf dans [1..99])
2) Fin Saisie
5. Analyse de la procédure Remplir_TP :
• Résultat : Remplir la matrice Mf
• Traitements : Le remplissage de la matrice est une action répétitive qui contient deux
boucles imbriquées pour passer entre les lignes et les colonnes, ou on connaît le nombre
de répétition, d’où utilisation de la boucle POUR … FAIRE.
Cette procédure admet deux paramètres formels qui sont Nf et Mf.
6. Algorithme de la procédure Remplir_TP :
0) Début procédure Remplir_TP (VAR Mf : MAT ; Nf : Entier)
1) Mf[1, 1] ← 1, Mf[2, 1] ← 1, Mf[2, 2] ← 1,
Tableau de déclaration
des Objets locaux
2) Pour l de 3 à Nf+1 Faire
Mf[l, 1] ← 1,
Pour c de 2 à l-1 Faire
Mf[l, c] ← Mf[l-1, c] + Mf[l-1, c-1]
Fin Pour
Mf[l, l] ← 1
Fin Pour
3) Fin Remplir_TP
7. Analyse de la procédure Affiche :
• Résultat : Afficher le triangle de PASCAL
• Traitements : L’action de l’affichage d’une matrice est un traitement répétitif, utilisant
une structure itérative complète, avec deux boucles imbriquées.
Cette procédure admet un deux paramètres formels Nf et Mf.
8. Algorithme de la procédure Affiche :
0) Début procédure Affiche_Un (Mf : MAT ; Nf : Entier)
1) Pour l de 1 à Nf+1 Faire
Pour c de 1 à l Faire Tableau de déclaration
Ecrire (Mf[l, c]) des Objets locaux
Fin Pour
Fin Pour Objets Type/Nature
2) Fin Affiche l, c Entier

Вам также может понравиться