Ce qui a t vu
Tableaux deux dimensions Quelques algorithmes
Problme
Ds quon commence crire des programmes sophistiqus, il devient difficile davoir une vision globale sur son fonctionnement Difficult de trouver des erreurs Solution : dcomposer le problme en sous problmes
Trouver une solution chacun La solution partielle donne lieu un sous-programme
Programmation procdurale
Principe:
Il sagit dcrire des programmes en utilisant des sous-programmes
Forme gnrale dun programme Programme P Sous-programme SP1 Sous-programme SPn FinP
4
Exemple
Algorithme qui teste si M est la matrice inverse de N Algorithme A A1: Lecture de M A2: Lecture de N A3: Affecter O le rsultat de M*N A4: Tester si O est lidentit A5: Affichage du message adquat Fin A
5
Plan
Fonctions
Paramtres Type retourn
Procdures
Paramtres Appel par variable Appel par valeur
Fonctions : structure
Une fonction est un sous-programme qui :
A un nom Peut avoir des paramtres Qui retourne une valeur dun certain type Qui peut avoir besoin de variables Qui est compos dinstructions
Fonctions : dclaration
Fonction nomf (<paramtres>): type Dclaration des variables Dbut instructions nomf expression Fin fonction
9
Fonctions : Exemple
Fonction qui retourne le carr dun entier : Fonction carr(n : entier): entier Dbut carr n * n fin fonction
10
11
Fonctions: A retenir
Une fonction retourne toujours une valeur
Une fonction NomF contient toujours une instruction de la forme NomF Expression
Il ne faut jamais utiliser dinstructions de la forme f(paramtres) expression
En gnral, lutilisation dune fonction se fait Soit par une affectation: v f(paramtres) Soit dans lcriture: Ecrire ( f(paramtres) )
12
13
14
Fonction : exemple
Ecrire un algorithme qui
lit un tableau de 5 entiers puis teste sil est tri ou pas
16
Fonction : exemple
Algorithme ex1 Variable T1 : tableau[5] dentier Variable i : entier Fonction Tri() Fin fonction Dbut Pour i = 1 5 Lire( T1(i)) Fin Pour Si Tri(T1) = Vrai Alors Ecrire( cest tri ) FinSi Sinon Ecrire( Non tri ) FinSinon Fin
17
Fonctions : en VBA
Function tri(t() As Integer) As Boolean Dim b As Boolean Dim i as Integer b = True For i = 1 To 4 If t(i) > t(i + 1) Then b = False End If Next tri = b End Function
18
Fonctions : VBA
VBA propose plusieurs fonctions qui sont dj dfinies et quon peut utiliser dans nos programmes Exemples :
Sqr : retourne la racine carre
Sqr(4) retourne 2
20
Procdures : dfinition
Une procdure est un sous-programme qui ne retourne pas de valeur Cest donc un type particulier de fonction En gnral, une procdure modifie la valeur de ses paramtres
Je dis bien en gnral , ce nest pas toujours le cas
21
Procdures : structure
Tout comme les fonctions, une procdure est un sous-programme qui :
A un nom Peut avoir des paramtres Qui retourne une valeur dun certain type Qui peut avoir besoin de variables Qui est compos dinstructions
22
Procdures : dclaration
Procdure nomf (<paramtres>) Dclaration des variables Dbut instructions Fin procdure
23
Procdures : exemple
Une procdure qui ajoute 2 un entier procdure aug2(n : entier) Dbut n n+2 Fin Procdure
24
25
Procdures : A retenir
Une procdure ne retourne pas de valeur
Il est donc faux de laffecter une variable
Ne pas crire : j aug2(i)
27
Procdures : en VBA
Sub aug2(n as integer) n = n +2 End sub Tous les programmes quon a crits jusqu prsent taient en fait
Des procdures sans paramtres
28
30
31
32
34
Il ne faut par contre pas que le tableau soit tri dfinitivement La procdure doit donc travailler sur une copie non pas sur le tableau lui mme
35
36
Procdure de saisie
Procdure saisir(t:tableau[5] dentiers) variable i: entier Dbut Pour i = 1 5 Lire(t(i)) Fin Pour Fin Procdure
39
Fonction qui retourne lindice de la valeur max dans une partie du tableau
Fonction IndMax (t: tabelau[5] dentiers, i: entier) variable j, Max: entier Dbut Max i Pour j = i 5 Si t(Max) < t(j) Alors Max j FinSi Fin Pour IndMax Max Fin Fonction
40
41
Procdure de Tri
Procdure Trier(T: Tableau[5] dentiers) Variable i: entier Pour i = 1 4 Echanger(i, IndMax(i,T), T) FinPour FinProcdure
42