Vous êtes sur la page 1sur 37

Algorithmique et programmation

DEUG Sciences conomiques 2004/2005

Rappel 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

Plan
Introduction de Visual Basic Notation
Les diffrentes notions vues en algorithmique

Saisie et excution des programmes Exemples dalgorithmes sur les tableaux

Introduction de VB
Nous utiliserons VB application (VBA)
Version allge de VB associe chaque application du package Office de microsoft Office:
Word : traitement de texte Excel : tableur Access : systme de gestion de bases de donnes Powerpoint : Outil pour la cration de diapositives

Nous lutiliserons partir dExcel VBA est un langage interprt non compil => excution plus lente Les dialogues se font au travers de fentres

Notation Visual Basic


Dclaration 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")

Notation Visual Basic


Ecriture
MsgBox(expression)
Ex : MsgBox ("X = " & X)

Dbut et fin dun programme


Sub nomP () End sub

Exemple 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

Types de donnes VB
Entier:
Byte [0, 255] Integer [-32768, +32767] Long [-2147483648, + 2147483647]

Rel
Single [-3,402.10^10, +3,402.10^10] Double (valeurs encore plus grandes)

Types de donnes VB
Chane
String (jusqu 2 milliards de caractres)

Date
Date (du 01/01/100 au 31/12/9999)

Boolen (ou logique)


Boolean (prend les valeurs True ou False)

Tableau
Dim nomT(Taille) AS Type
Ex: Dim T(10) AS Integer

Structures de contrle VB
La condition simple : If condition Then instructions End If Exemple : If X < 10 Then MsgBox("recal(e) ") End If

Structures de contrle VB
Condition avec alternative : If condition Then instructions Else instructions End IF Exemple : If X < 10 Then MsgBox("recal(e) ") Else MsgBox("reu(e)") End IF

Structure de contrle VB
Rptition avec la boucle Tant Que: While condition instructions Wend Exemple :
While i <= 10 s=s+i i=i+1 Wend

Structures de contrle VB
La rptition avec la boucle Pour : For var = val1 to val2 Instructions Next Exemple : For i = 1 to 3 msgbox(i*i) Next

Exemples de programmes
Algorithme Exemple1 Variable X: rel Dbut Lire(X) Si X 10 alors Ecrire( reu(e) ) Finsi Sinon Ecrire( recal(e) ) FinSinon Fin Sub Exemple1() Dim X As Double X=InputBox(``X=?) If X >= 10 Then MsgBox(``reu(e)) Else MsgBox(``recal(e)) End If End Sub

Excution partir dExcel


1. Lancer Excel 2. Lancer lditeur VB
Taper ALT + F11 ou bien Choisir Outils/Macros/Visual Basic Editor

3. Afficher la fentre de saisie de code si elle ne lest pas


Affichage/code

4. Une fois quon a fini de taper le programme, on peut lexcuter


Taper sur la touche F5

On peut crire plusieurs programmes lun la suite de lautre

Quelques algorithmes sur les tableaux


Ecrire un algorithme qui
permet de saisir un tableau de 10 entiers Affiche la valeur maximale dans ce tableau

Algorithme1
Principe
Dabord lire les diffrentes 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

Algorithme 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 premire case du tableau M T(1)

Algorithme 1
Ensuite, on parcourt les cases de la 2me jusqu la dernire. A chaque tape, on teste si la valeur de la case courante est suprieure la valeur de M. Si cest le cas, on change la valeur de M Pour i = 2 10 Si T(i) > M Alors M T(i) FinSi Fin Pour

Algorithme 1
Squelette de lalgorithme 1. Dclaration des variables
T, i, Max

2. Lecture du tableau 3. Recherche de la valeur maximale 4. Affichage de la valeur maximale

Algorithme 1
Algorithme Exemple1 Variable i, Max : entier Variable T : tableau[10] dentiers Dbut Pour i = 1 10 Lecture du tableau Lire( T(i) ) FinPour

Algorithme 1
Max T(1) Pour i = 2 10 Si T(i) > Max Alors Max T(i) FinSi FinPour Ecrire(Max) Fin

Recherche de la valeur maximale

Affichage de la valeur maximale

Algorithme 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) > max Then max = T(i) End If Next MsgBox ("la valeur maximale est " & max) End Sub

Algorithme 1
Algorithme Exemple2 Variable i, Max : entier Variable T : tableau[10] dentiers Dbut Lire(T(1)) Max T(1) Pour i = 2 10 Lire( T(i) ) Si T(i) > Max Alors Max T(i) FinSi FinPour Ecrire(Max) Fin

La lecture du tableau et la recherche de la valeur maximale se font en mme temps

Algorithme 2
Ecrire un algorithme qui
Permet de lire un tableau de 10 entiers Puis affiche lindice de la valeur maximale

Algorithme 2
Algorithme Ex2 Variable i, Max : entier Variable T : tableau[10] dentiers Dbut Lire(T(1)) Max T(1) 1 Pour i = 2 10 Lire( T(i) ) Si T(i) > Max Alors Max T(i) i FinSi FinPour Ecrire(Max) Fin

Noter que Max ne reprsente plus la valeur maximale mais lindice de la valeur maximale

Algorithme 3
Ecrire un algorithme qui
Lit un tableau de 5 cases de rels, demande lutilisateur deux entiers i et j Puis change les contenus des cases i et j

Algorithme 3
Problme de lchange des valeurs de deux variables:
Etant donnes X et Y deux variables, changer leurs valeurs Erreur commune XY YX Solution, on doit toujours passer par une autre variable ZX XY YZ

Algorithme 3
Algorithme Ex4 Variable i, j : entier Variable T : Tableau[5] de rels Variable Z : rel Dbut Pour i = 1 5 Lire ( T(i) ) FinPour Lire(i) Lire (j) Z T(i) T(i) T(j) T(j) Z Fin

Algorithme 4
Ecrire un algorithme qui
Lit un tableau de 5 cases dentiers puis Le trie dans lordre dcroissant

Algorithme 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

Algorithme 4
10 20 77 55 31
Premire tape : La valeur Maximale entre les cases 1 et 5 est 77 et son indice est 3 => on change les cases 1 et 3

77

20

10

55

31

Deuxime tape : La valeur maximale entre les cases 2 et 5 est 55 et son indice est 4 => change des cases 2 et 4

77

55

10

20

31

Algorithme 4
77 55 10 20 31

Troisime tape : La valeur Maximale entre les cases 3 et 5 est 31 et son indice est 5 => on change les cases 3 et 5

77c

55

31

20

10

Quatrime tape : La valeur Maximale entre les cases 4 et 5 est 20 et son indice est 4 => on change les cases 4 et 4. On a termin et le tableau est tri dans lordre dcroissant

Algorithme 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 numro de ltape Une variable j qui nous permet de chercher Max et Imax entre les cases i et 5 quand on est ltape i Une variable Z qui nous permet de faire lchange des cases

Algorithme 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 Instructions1 Pour j = i 5 Instructions2 FinPour

Algorithme 4
Pour chercher Max et Imax entre i et 5 Si T(j) > Max alors Max T(j) Instructions2 Imax j Finsi A ltape i on change les cases i et Imax Z T(i) T(i) T(Imax) T(Imax) Z

Algorithme 4
Algorithme Ex4 Variable i,j,Max: Entier Variable Imax, Z; Entier Dbut Pour i = 1 5 Lire(T(i)) FinPour Pour i = 1 4 Max T(i) Imax i Pour j = i 5 Si T(j) > Max Alors Max T(j) Imax j FinSi Z T(i) T(i) T(Imax) T(Imax) Z FinPour FinPour Fin