Académique Documents
Professionnel Documents
Culture Documents
O U M A R Y. M A I G A
FST 2022_2023
Plan
2
Structure de données
13
A B A et B A ou B Non A
vrai vrai vrai vrai faux
vrai faux faux vrai faux
faux vrai faux vrai vrai
faux faux faux faux vrai
Pseudo langage : la conditionnelle
29
Si (test) { Si (test) {
… …
} } Sinon {
…
}
Test
(i==5) booléen b1 =true;
(i!=5) booléen b2 = !b1;
Pseudo langage : le choix multiple
31
}
Ecrire("La somme est:" + som);
Fin
Comparaison: « pour » et « tant que »
35
pour (i de 0 à 10) i← 𝒊 + 𝟏;
i← 𝟎;
Tant que (i!=10) { Accolades facultatives
i← 𝒊 + 𝟏; s'il n’y a qu'une instruction
}
i← 𝟎;
faire {
i← 𝒊 + 𝟏;
} tant que (i!=10);
Pseudo langage : les fonctions
38
Code appelant :
i 3
j 5
k 8
maFonction(i,j,k);
Afficher(i,j,k)
maFonction(e int i, s int j, es int k) {
i i + 1
j 6
k k + 2
}
Résultat de Afficher(i,j,k) : 4 6 10
Pseudo-langage : les fonctions
42
Algorithme P
………………
début
si (fin()) {
::::
//pas d'appel récursif
}
sinon {
:::
P(:::) //l'algorithme P appelle lui-même une
::: //ou plusieurs fois
}
Fin
Exemples
47
Calcul de la factorielle d'un nombre.
Définition itérative :
n! = F(n) = n * (n - 1) * (n -2) * ::: * 2 * 1
Version itérative
48
Algorithme Factorielle
Variables
Entier N, i, F;
Début
Ecrire ("Entrez un nombre :") ;
Lire(N);
F←1;
Pour (i de 2 à N) {
F←F*i;
}
Ecrire ("La factorielle est :" + F) ;
Fin
Version récursive
49
Définition récursive :
F(0) = 1
F(n) = n *F(n -1)
Entier Factorielle (entier n) {
si (n == 0) retourner 1;
sinon retourner factorielle(n-1)*n;
}
Appel à fact(4)
. 4*fact(3) = ?
. Appel à fact(3) 50
. . 3*fact(2) = ?
. . Appel à fact(2)
. . . 2*fact(1) = ?
. . . Appel à fact(1)
. . . . 1*fact(0) = ?
. . . . Appel à fact(0)
. . . . Retour de la valeur 1
. . . . 1*1
. . . Retour de la valeur 1
. . . 2*1
. . Retour de la valeur 2
. . 3*2
. Retour de la valeur 6
. 4*6
Retour de la valeur 24
Règles
51
Exercice 1
Ecrire un algorithme qui calcul le nième terme de la
suite de Fibbonacci définie par
𝐹0 = 1
ቐ 𝐹1 = 1
𝐹𝑛+2 = 𝐹𝑛+1 + 𝐹𝑛 ∀𝑛 ∈ ℕ
53
Exercice 2
1 n-1)
hjkk
Tri par sélection
63
Structure Etudiant{
chaîne nom ; Couple c;
chaîne prénom; c.a ← 3;
caractère sexe; c.b ← 2;
entier age; Ecrire(c.a); (* affichera 3 *)
réel note ;
}
Fonctions utiles pour une structure
Pour travailler sur un nouveau type , il est parfois
nécessaire de définir quelques fonctions élémentaires
pour créer une variable à partir de ses sous-valeurs