Title: Algorithmique et programmation
1Algorithmique et programmation
- DEUG Sciences économiques
- 2004/2005
2Rappel de ce qui a été vu
- Quelques algorithmes simples
- Introduction de la structure Pour
- La notion de Tableau
- Taille dun tableau
- Type des cases dun tableau
- Indice dune case
- Lecture dun tableau
- Ça se fait case par case
3Plan
- Introduction de Visual Basic
- Notation
- Les différentes notions vues en algorithmique
- Saisie et exécution des programmes
- Exemples dalgorithmes sur les tableaux
4Introduction de VB
- Nous utiliserons VB application (VBA)
- Version allégée de VB associée à chaque
application du package Office de microsoft - Office
- Word traitement de texte
- Excel tableur
- Access système de gestion de bases de données
- Powerpoint Outil pour la création de
diapositives - Nous lutiliserons à partir dExcel
- VBA est un langage interprété non compilé gt
exécution plus lente - Les dialogues se font au travers de fenêtres
5Notation Visual Basic
- Déclaration de variable
- Dim NomV As Type
- Ex Dim X As Integer
- Affectation
- NomV expression
- Ex X Y 2
- Lecture
- NomV InputBox("message ")
- Ex X InputBox ("Donner la valeur de X")
6Notation Visual Basic
- Ecriture
- MsgBox(expression)
- Ex MsgBox ("X " X)
- Début et fin dun programme
- Sub nomP ()
-
- End sub
7Exemple de programme
- Sub exemple1()
- Dim X, Y As Double
- X InputBox("donner la valeur de X")
- Y InputBox("donner la valeur de T")
- MsgBox ("la moyenne des deux est " (X Y)/2)
- End Sub
8Types de données VB
- Entier
- Byte 0, 255
- Integer -32768, 32767
- Long -2147483648, 2147483647
- Réel
- Single -3,402.1010, 3,402.1010
- Double (valeurs encore plus grandes)
9Types de données VB
- Chaîne
- String (jusquà 2 milliards de caractères)
- Date
- Date (du 01/01/100 au 31/12/9999)
- Booléen (ou logique)
- Boolean (prend les valeurs True ou False)
- Tableau
- Dim nomT(Taille) AS Type
- Ex Dim T(10) AS Integer
10Structures de contrôle VB
- La condition simple
- If condition Then
- instructions
- End If
- Exemple
- If X lt 10 Then
- MsgBox("recalé(e) ")
- End If
11Structures de contrôle VB
- Condition avec alternative
- If condition Then
- instructions
- Else
- instructions
- End IF
- Exemple
- If X lt 10 Then
- MsgBox("recalé(e) ")
- Else
- MsgBox("reçu(e)")
- End IF
12Structure de contrôle VB
- Répétition avec la boucle Tant Que
- While condition
- instructions
- Wend
- Exemple
- While i lt 10
- s s i
- i i 1
- Wend
13Structures de contrôle VB
- La répétition avec la boucle Pour
- For var val1 to val2
- Instructions
- Next
- Exemple
- For i 1 to 3
- msgbox(ii)
- Next
14Exemples de programmes
- Algorithme Exemple1
- Variable X réel
- Début
- Lire(X)
- Si X ? 10 alors
- Ecrire( reçu(e) )
- Finsi
- Sinon
- Ecrire( recalé(e) )
- FinSinon
- Fin
Sub Exemple1() Dim X As Double
XInputBox(X?) If X gt 10 Then
MsgBox(reçu(e)) Else
MsgBox(recalé(e)) End If End Sub
15Exécution à partir dExcel
- Lancer Excel
- Lancer léditeur VB
- Taper ALT F11 ou bien
- Choisir Outils/Macros/Visual Basic Editor
- Afficher la fenêtre de saisie de code si elle ne
lest pas - Affichage/code
- Une fois quon a fini de taper le programme, on
peut lexécuter - Taper sur la touche F5
- On peut écrire plusieurs programmes lun à la
suite de lautre
16Quelques algorithmes sur les tableaux
- Ecrire un algorithme qui
- permet de saisir un tableau de 10 entiers
- Affiche la valeur maximale dans ce tableau
17Algorithme1
- Principe
- Dabord lire les différentes cases du tableau
- Ensuite chercher la plus grande valeur
- Lecture du tableau
- Il faut lire toutes les cases lune à la suite de
lautre - Utiliser une boucle Pour
- Pour i 1 à 10
- Lire (T(i))
- Fin Pour
18Algorithme 1
- Recherche de la valeur maximale
- On utilise une variable M dans laquelle on met la
valeur maximale - Dabord, on initialise M avec la valeur de la
première case du tableau - M ? T(1)
19Algorithme 1
- Ensuite, on parcourt les cases de la 2ème jusquà
la dernière. A chaque étape, on teste si la
valeur de la case courante est supérieure à la
valeur de M. Si cest le cas, on change la valeur
de M - Pour i 2 à 10
- Si T(i) gt M Alors
- M ? T(i)
- FinSi
- Fin Pour
20Algorithme 1
- Squelette de lalgorithme
- Déclaration des variables
- T, i, Max
- Lecture du tableau
- Recherche de la valeur maximale
- Affichage de la valeur maximale
21Algorithme 1
- Algorithme Exemple1
- Variable i, Max entier
- Variable T tableau10 dentiers
- Début
- Pour i 1 à 10
- Lire( T(i) )
- FinPour
-
Lecture du tableau
22Algorithme 1
-
- Max ? T(1)
- Pour i 2 à 10
- Si T(i) gt Max Alors
- Max ? T(i)
- FinSi
- FinPour
- Ecrire(Max)
- Fin
Recherche de la valeur maximale
Affichage de la valeur maximale
23Algorithme 1
- Sub ex1()
- Dim i, max As Integer
- Dim T(10) As Integer
- For i 1 To 10
- T(i) InputBox("donner un entier")
- Next
- max T(1)
- For i 2 To 10
- If T(i) gt max Then
- max T(i)
- End If
- Next
- MsgBox ("la valeur maximale est " max)
- End Sub
24Algorithme 1
- Algorithme Exemple2
- Variable i, Max entier
- Variable T tableau10 dentiers
- Début
- Lire(T(1))
- Max ? T(1)
- Pour i 2 à 10
- Lire( T(i) )
- Si T(i) gt Max Alors
- Max ? T(i)
- FinSi
- FinPour
- Ecrire(Max)
- Fin
La lecture du tableau et la recherche de la
valeur maximale se font en même temps
25Algorithme 2
- Ecrire un algorithme qui
- Permet de lire un tableau de 10 entiers
- Puis affiche lindice de la valeur maximale
26Algorithme 2
- Algorithme Ex2
- Variable i, Max entier
- Variable T tableau10 dentiers
- Début
- Lire(T(1))
- Max ? T(1) 1
- Pour i 2 à 10
- Lire( T(i) )
- Si T(i) gt Max Alors
- Max ? T(i) i
- FinSi
- FinPour
- Ecrire(Max)
- Fin
Noter que Max ne représente plus la valeur
maximale mais lindice de la valeur maximale
27Algorithme 3
- Ecrire un algorithme qui
- Lit un tableau de 5 cases de réels,
- demande à lutilisateur deux entiers i et j
- Puis échange les contenus des cases i et j
28Algorithme 3
- Problème de léchange des valeurs de deux
variables - Etant données X et Y deux variables, échanger
leurs valeurs - Erreur commune
- X ? Y
- Y ? X
- Solution, on doit toujours passer par une autre
variable - Z ? X
- X ? Y
- Y ? Z
29Algorithme 3
- Algorithme Ex4
- Variable i, j entier
- Variable T Tableau5 de réels
- Variable Z réel
- Début
- Pour i 1 à 5
- Lire ( T(i) )
- FinPour
-
Lire(i) Lire (j) Z ? T(i) T(i) ?
T(j) T(j) ? Z Fin
30Algorithme 4
- Ecrire un algorithme qui
- Lit un tableau de 5 cases dentiers puis
- Le trie dans lordre décroissant
31Algorithme 4
- Principe
- On lit le tableau
- On cherche
- La valeur maximale (appelons la Max) et
- Son in indice (appelons le Imax)
- On échange les cases 1 et Imax
- On cherche la valeur max et son indice entre les
case 2 et 5 puis on échange les cases 2 et Imax -
- On cherche la valeur max et son indice entre les
cases 4 et 5 puis on échange les cases 4 et 5
32Algorithme 4
Première étape La valeur Maximale entre les
cases 1 et 5 est 77 et son indice est 3 gt on
échange les cases 1 et 3
Deuxième étape La valeur maximale entre les
cases 2 et 5 est 55 et son indice est 4 gt
échange des cases 2 et 4
33Algorithme 4
Troisième étape La valeur Maximale entre les
cases 3 et 5 est 31 et son indice est 5 gt on
échange les cases 3 et 5
Quatrième étape La valeur Maximale entre les
cases 4 et 5 est 20 et son indice est 4 gt on
échange les cases 4 et 4. On a terminé et le
tableau est trié dans lordre décroissant
34Algorithme 4
- De quelles variables a-t-on besoin ?
- Du tableau T
- Max et Imax pour mettre à chaque étape, la valeur
maximale ainsi que son indice - Une variable i qui nous indique le numéro de
létape - Une variable j qui nous permet de chercher Max et
Imax entre les cases i et 5 quand on est à
létape i - Une variable Z qui nous permet de faire léchange
des cases
35Algorithme 4
- Si le tableau contient 5 cases, alors on
utilisera la boucle - Pour i 1 à 4
- Instructions1
- FinPour
- Dans chacune des étapes, on doit chercher Max et
Imax entre i et 5 - Max ? T(i)
- Imax ? i
- Pour j i à 5
- Instructions2
- FinPour
Instructions1
36Algorithme 4
- Pour chercher Max et Imax entre i et 5
- Si T(j) gt Max alors
- Max ? T(j)
- Imax ? j
- Finsi
- A létape i on échange les cases i et Imax
- Z ? T(i)
- T(i) ? T(Imax)
- T(Imax) ? Z
-
Instructions2
37Algorithme 4
- Algorithme Ex4
- Variable i,j,Max Entier
- Variable Imax, Z Entier
- Début
- Pour i 1 à 5
- Lire(T(i))
- FinPour
- Pour i 1 à 4
- Max ? T(i)
- Imax ? i
-
-
Pour j i à 5 Si T(j) gt Max Alors Max ?
T(j) Imax ? j FinSi Z ? T(i) T(i) ?
T(Imax) T(Imax) ? Z FinPour FinPour Fin