Beruflich Dokumente
Kultur Dokumente
CHAPITRE 1
La programmation modulaire et les fonctions
Pourquoi?
• Difficultés pour comprendre un programme une fois qu’il
dépasse une ou deux pages de texte,
• La programmation modulaire permet d’éviter des
séquences d’instructions répétitives,
• La possibilité de travailler en groupe
1
6/03/2018
2
6/03/2018
3 - Quelques règles
3
6/03/2018
3 - Quelques règles
3 - Quelques règles
4
6/03/2018
3 - Quelques règles
5
6/03/2018
5 – La directive #include
6
6/03/2018
Exo 1 :
Exo 2 :
7
6/03/2018
Problématique : Exemple
Solutions :
8
6/03/2018
9
6/03/2018
Le mot-clé static :
Pour attribuer un emplacement permanent à une variable locale
et ainsi sa valeur se conserve d’un appel au suivant.
10
6/03/2018
Exo 3 :
11
6/03/2018
Exo 4 :
La fonction LIRE_TAB à trois paramètres TAB, N et NMAX lit la dimension N et les
composantes d'un tableau TAB du type int.
La dimension N doit être inférieure à NMAX.
Implémenter la fonction LIRE_TAB en choisissant bien le type des paramètres.
Exemple:
Pour un appel par
LIRE_TAB(T, &N, 10);
la fonction se comportera comme suit:
Dimension du tableau (max.10): 11
Dimension du tableau (max.10): 4
Elément[0] : 43
Elément[1] : 55
Elément[2] : 67
Elément[3] : 79
Exo 5 :
Exemple:
Le tableau T lu dans l'exemple ci-dessus sera affiché par l'appel :
ECRIRE_TAB(T, N);
et sera présenté comme suit:
43 55 67 79
12
6/03/2018
Exo 6 :
Exemple d’appel :
SOMME_TAB(T,N)
Exo 7 :
13
6/03/2018
M[i][j] = * (M + i * CMAX + j)
14
6/03/2018
Exo 8 :
a) Ecrire la fonction LIRE_DIM à quatre paramètres L, LMAX, C,
CMAX qui lit les dimensions L et C d'une matrice à deux
dimensions. Les dimensions L et C doivent être inférieures à LMAX
respectivement CMAX.
Exo 9 :
15
6/03/2018
• Récursivité directe :
Une fonction comporte, dans sa définition, au moins un appel à elle-
même.
• Récursivité croisée :
L’appel d’une fonction entraîne celui d’une autre fonction qui, à son
tour, appelle la fonction initiale (le cycle pouvant d’ailleurs faire
intervenir plus de deux fonctions).
• Exemple 1 : Factoriel
Relation de récurrence :
Fact (n) = 1 si n = 0
Fact (n) = Fact (n-1)*n si n > 0
Fonction C associée :
16
6/03/2018
Relation de récurrence :
u1 = u2 = 1
un = un-1 + un-2 pour n > 2
Fonction C associée :
long fibo (int n)
{
if ((n==1) || (n==2))
return 1;
if (n > 2)
return (fibo (n-1) + fibo (n-2));
}
Relation de récurrence :
A(m, n) = n + 1 si m = 0,
A(m, n) = A(m − 1, 1) si m > 0 et n = 0,
A(m, n) = A(m − 1, A(m, n − 1)) si m > 0 et n > 0.
Fonction C associée :
17
6/03/2018
Exercice récapitulatif :
Écrire un programme qui
implémente une fonction
LECTURE qui lit les données
relatives à un étudiant
appartenant à une institution
universitaire telles que son nom,
son prénom, son CNE ainsi que
les notes obtenues dans 12
modules. Le programme principal
doit afficher toutes ces données
lues par la fonction ainsi que la
moyenne des notes en se servant
d’une fonction MOYENNE.
18