Vous êtes sur la page 1sur 23

Chapitre 1

Informatique II
Programmation Evnementielle

Introduction lalgorithmique et
la programmation

Technique de Management S2

Informatique 1

2014/2015

Programmation informatique

Programmation??

La programmation dans le domaine informatique est l'ensemble


des activits lis lcriture la mise en point et lexcution dun
programme .
Un programme informatique est une succession d'instructions
excutable par l'ordinateur. c'est--dire une succession de 0 et
de 1.
Ces programmes sont traduits en langages machine.

2014/2015

Les tapes de dveloppement


le programme est un simple fichier, que l'on appelle fichier
source. Le fichier source contient les lignes de programmes
que l'on appelle code source. Ce fichier source une fois
termin doit tre compil. La compilation se droule en deux
tapes :

Fichier source

Fichier objet

Compilateur

Fichier excutable

Ne pas se laisser aveugler par l'objectif final: le


codage!

Editeur de liens
5
6

2014/2015

Notion dalgorithme
Description dun processus de rsolution dun problme

Cest une suite des actions effectuer pour

bien dfini.

raliser un traitement donn

Succession dactions qui, agissant sur un ensemble de

rsoudre un problme donn

ressources (entres), fourniront la solution (sortie) au


problme.

Un algorithme est la description ,en langage naturel,


dune suite finie de rgles appliquer dans un ordre
dtermin un nombre fini de donnes pour arriver
un certain rsultat,
8

Structure dun algorithme


Lalgorithme dun programme est organis en plusieurs parties :
Lcriture dun algorithme permet :

dclaration des constantes

d'tre comprhensible par tout informaticien mme s'il ne

dclaration des variables

connait pas le langage du programme.

dfinition des fonctions et procdures

de rester focalis sur la logique du programme et non sur les

dfinition du programme principal

particularits du langage utilis.


LAlgorithme cest le passeport pour la programmation

10

Exemple
Enonc du problme indique:
Les donnes fournies (input): deux nombre
Calcul de lintrt et de la valeur acquise par une
somme place pendant un an intrt simple

La valeur de la somme place


o Le taux d intrt
Les donnes dsirs (output): deux nombre
o Lintrt fourni par la somme place
o Valeur obtenue aprs placement dun an
o

Etapes caractrisant la rsolution dun problme sur


ordinateur:

Il nous faut maintenant dcrire les diffrents tapes


permettant de passer des donnes au rsultats .

Comprendre la nature du problme pos et prciser les

Nos connaissance nous permettent dexprimer cette rgles:

donnes fournies (input).

Pour Obtenir lintrt fournit par la somme, il suffit de

Prciser les rsultats quon dsire obtenir (output).

multiplier la somme par le taux dintrt divis par cent; la

Dterminer le processus de transformation des donnes en

valeur acquise sobtient en additionnant ce dernier montant et la

rsultats.

somme initiale

Notre exemple deviendra:


(1)Prendre connaissance de la somme initiale et du taux
dintrt.

Notre exemple en langage algorithmique


crire Introduisez la somme initiale (en dirhmas) :
lire sommeinitiale
crire Introduisez le taux dintrt

(2)Multiplier la somme par le taux; diviser ce produit par


100; le quotient obtenu est lintrt de la somme
(3) Additionner ce montant et la somme initiale, cette
somme est la valeur acquise.
(4) Afficher les valeurs de lintrt et de la valeur acquise

Lire taux
Interet<-- sommeinitiale*taux/100
Valeuracquise<-- sommeinitiale+intrt
crire lintrt fourni est de , intrt, dirhams
criela somme aprs un an sera de , valeuracquise, dirhams

Les valeurs manipules sont:


Des constantes (100)

Nous remarquons:

Des variables (somme initiale, taux, intrt,

Deux verbes particuliers:

valeur_acquise)
Lire qui correspond la saisie, lintroduction des

Ainsi

donnes.
crire qui excute laffichage lcran ou limprssion des

Interet<-- somme_initiale*taux/100: Assigner la variable


intrt la valeur de lexpression droite.

rsultats.

<-- : symbole daffection

Structure dun algorithme

Syntaxes et exemples

1- Dclaration des constantes :


Syntaxe : Constante NomConstante : [Type] = Valeur
Exemples :
Constante Pi : Reel = 3.141559
Constante Note_rf : Entier = 10 ;

19

20

Type

2- Dclaration des variables

Boolen

Syntaxe : Variable NomVariable : [Type]

Numrique

Exemples :
Variable Rayon : Reel

Caractre

Variable note_exam1 : Entier


Variable sexe : Caractre

Utilit

Reprsente un tat
Vrai
binaire, vrai ou faux
Reprsente un
12345.6789
nombre quelconque
Reprsente un
caractre unique
(comme une touche
du clavier)

Chane de caractres Reprsente un texte

Type de variable

Mot cl

Caractre

char

Entier

int

Entier long

long

Rel standard

float

Exemple

'c'
"contenu de la
chane"

Octets
ncessaires

3- Corps de lalgorithme ou programme principal


Le programme principal consiste en une suite doprations
lmentaires faisant souvent appel sous programmes Le
programme principal est dlimit par les mots-clefs Dbut et
Fin, la partie rellement excutes dans un algorithme ou
programme .

Rel double prcision

double

24

Exemple :

4- Affectation
Laffectation consiste attribuer une valeur une
variable
l'affectation se note avec le signe .
NomVariable Expression
NomVariable et Expression doivent tre de mme type
ou de types compatibles

var 5 ;
var donne
surface pi*rayon*rayon

Application :
1) Donnez les valeurs des variables A, B et C aprs excution
des instructions suivantes ?
Variables A, B, C : Entier
Dbut
A3
B7
AB
B A+5
CA+B
CBA
Fin
26

5- Instructions dentre et sorties

Exemple :
Saisir le prix dun produit :

Les instructions dEntre/Sortie (E/S) permettent la machine

Variable prix : entier

de communiquer avec lutilisateur.

Dbut

La lecture permet d'entrer des donns partir du clavier en

Ecrire ("donner le prix de votre produit" )

algorithme on note Lire(Variable).

Lire (prix)

L'criture permet d'afficher des rsultats l'cran (ou de les

Ecrire ( "le prix saisi est" , prix)

crire dans un fichier). Et on note : crire ( Bonjour tout le

Fin

monde )
27

28

Application :
1. Ecrire un algorithme qui demande un nombre entier
l'utilisateur, puis calcule et affiche le double de ce
nombre ?
2.crire un algorithme qui calcule la surface S dun
cercle selon la formule S = Pi * R^2 ?

1- Calcul du double dun nombre


Algorithme Calcul_double
variables A, B : entier
Dbut
crire("Saisir la valeur de A: ")
lire(A)
B 2*A
crire("le double de ", A, "est :", B)
Fin

30

Chapitre 2

2- Application calcule surface


Calcul_surface
Constantes
Pi = 3,14159
Variables
Rayon, Surface : rels
Dbut
lire (Rayon)
Surface := Pi * (Rayon)2
crire (Surface)
Fin

Langage de programmations

31

Langage de programmation

Programmer, dans quel langage ?

Visuel basic

Bases de langage Visuel Basic for application

33
1

Un langage informatique a donc plusieurs avantages :

On appelle langage informatique un langage destin dcrire


l'ensemble des actions qu'un ordinateur doit excuter.

il est plus facilement comprhensible que le langage machine


Un langage informatique est ainsi une faon pratique pour nous
(humains) de donner des instructions un ordinateur.

il permet une plus grande portabilit, c'est--dire une plus


grande facilit d'adaptation sur des machines de types diffrents ;

(visuel basic, langage C, C++, Assembleur )

35

36

Pourquoi Visual Basic ?


Langage de Programmation deriv de Visual Basic

Le Visual Basic est lun des langages de programmation les plus


performants et les plus simples utiliser.

Editeur : Microsoft
Dernire Version : 7.1 Office 2013

Sa simplicit explique son choix pour le dveloppement des


interfaces.

Licence : Propritaire
Intgr dans la suite Office, AutoCAD, CATIA,

Permet le dveloppement rapide d'application

37

38

Le VBA (Visual Basic for Applications) est un langage proche du Visual Basic
qui ncessite une application hte pour s'excuter
(Excel dans notre cas).

Fonctionnalit du langage :
Comment afficher longlet devloppeur du Visual Basic sur lExcel ?
Crer des applications graphiques de faon simple
Crer des excutables (fichiers .EXE),
Connections la base de donne.
tre facile d'utilisation pour les dbutants
fournir des messages d'erreur clairs

39

40

Nous allons ajouter un nouveau module qui va vous


permettre de coder. le menu Insertion puis cliquez sur
Module :

Un projet, oui mais lequel ?


Un projet s'applique en gnral
sur un travail dans le classeur ou
dans une feuille de calcul
particulire. C'est un groupe de
macros, qui s'appellent entre
elles, qui changent avec
l'utilisateur...

Module de
feuille

Module de
classeur

Chaque mot en gras est un projet. Vous pouvez l'explorer au moyen de


la petite croix gauche de chacun :
41

42

Pour travailler avec du code VBA, nous avons besoin d'un diteur, celui-ci
est dj install et vous pouvez l'ouvrir avec le raccourci "Alt F11" :

Comment renommer un module?

Cliquez sur le bouton


Fentre Proprits (F4) :
a affichera le menu des
proprits du module

43

44

Exemple dapplication :

Les variables

-Programme affichant une fentre avec


les mots Bonjour tout le monde

Les variables permettent de stocker toutes sortes de donnes.


Sub main ()
MsgBox ("Bonjour tout le monde")
End Sub

Les noms de variables nont pas de longueur maximale


Ils doivent commencer par un caractre
Ils ne doivent pas comporter despace
Elle est limite 40 caractres
Elle ne doit pas tre identique un mot rserv

45

Comment crer une variable ?

46

Type de variable :

Dim <nom_variable >As <Type>


Exemple :

Dim ma_variable As Integer

Dim : dclaration de la variable


ma_variable : nom choisi pour cette variable (sans espaces)
As : dclaration du type de la variable
Integer : type de la variable
On peut dclarer plusieurs variables sur une mme ligne
Dim nom As String, prenom As String, age As
Integer
47

48

'Exemple : nombre entier


Dim nbEntier As Integer
nbEntier = 12345

Type de variable :
Boolean : True False

'Exemple : nombre virgule


Dim nbVirgule As Single
nbVirgule = 123.45

Byte : de 0 255
Integer : de 32 768 32 767

'Exemple : texte
Dim varTexte As String
varTexte = "Bonjour"

Long : de 2 +2 milliards environ


Single : virgule flottante simple prcision

'Exemple : date
Dim varDate As Date
varDate = "06.02.2015"

Double : virgule flottante double prcision


String : jusqu 65 000 caractres

'Exemple : vrai/faux
Dim varBoolean As Boolean
varBoolean = True
49

Que contient ma variable ?

50

Exemple pratique TP1:

Sub Test ()
Dim a As Integer, b As Integer, c As Integer
a=3
b=5
a=a+b a devient =8
c=a*b
c=40
Msgbox a
Msgbox c
End Sub

Exemple pratique :
Affichage de la valeur 12 de la variable N dans une bote de dialogue

Sub variables()
'Dclaration de la variable
Dim N As Integer
'Attribution d'une valeur la variable
N= 12
'Affichage de la valeur de N dans une MsgBox
MsgBox N
End Sub
51

52

Importance du type
Importance des type

Sub Test ()
Dim a As Integer, b As Integer, c As single
a=9
b=2
c=a/b
Msgbox c
End Sub

Sub Test ()
Dim a As Integer, b As Integer, c As Integer
a=9
b=2
c=a/b
Msgbox c
End Sub
c=4

c=4,5
53

54

Exercices dapplications TP1 :

1-Ecrire un programme en langage visuel basic qui demande un


nombre entier l'utilisateur, puis calcule et affiche le double de ce
nombre ?

Les conditions

2.crire un programme qui calcule la surface S dun cercle selon


la formule S = Pi * R^2 ?
3- Ecrire un programme qui calcul le montant total hors taxe et le
montant total avec taxe comprise.
on donne Prix1=3600 Dh/HT et Prix2=4500Dh/HT

55

Instruction conditionnelle : Si

Explication

Les instructions conditionnelles servent n'excuter une instruction ou


une squence d'instructions que si une condition est vrifie.

Si la condition 1 est vraie, les instructions 1 sont


excutes puis nous sortons de l'instruction If (qui dbute
avec If et finit End If). Si la condition 1 est fausse, nous
passons la condition 2. Si celle-ci est vraie les instructions 2
sont excutes si ce n'est pas le cas les instructions 3 seront
alors excutes

57

Syntaxe Algo : Si (condition) alors


Instruction ou squence dinstructions 1
Sinon
Instruction ou squence dinstructions 2
Finsi

58

Condition SI SINON SI :
Syntaxe Algo : Si( condition )alors
Instructions1
Sinon si (condition) alors
Instructions1
Finsi

Syntaxe VBA : If (condition) Then


Passages la ligne obligatoires
instruction 1
instruction 2
...
Else
instruction 1
...
End If

Syntaxe VBA : If (condition) Then


instruction 1
...
Else if (condition) Then
instruction 1
...
End If

59

60

TP

Correction :
Algorithme : Calcul valeur absolue
Variable x : rel
Dbut
Ecrire (" Entrez un rel : ")
Lire (x)
Si (x < 0) alors
Ecrire ("la valeur absolue de ", x, "est:",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin

Application 1 :

Faire un Algorithme et ensuite un programme en VBA


qui calcul la valeur absolue dun nombre rel

Programme en VBA :
Sub valeur_absolu()
Dim x As Double
x = InputBox("donner la valeur de x")
If (x < 0) Then
MsgBox -x
Else
MsgBox x
End If
End Sub

61

62

Application 3 :

Ecrire un programme qui affiche une phrase en


fonction du rsultat de lage .

Application 2 : Ecrire un programme qui affiche la valeur de b=1


si a=5 et b=2 si a<15 et b=3 pour les autres valeur

Algorithme : condition

Syntaxe en VB:
Dim a As Integer, b As
Integer
a=5
If a<10 Then
b=1
Else
b=2
End If

Autre syntaxe en VB:


Dim a As Integer, b As
Integer
a=5
If a<10 Then
b=1
Else If a<15
b=2
Else
b=3
End If

Syntaxe VBA

Variable a : entier
Dbut
Age =20
Si age >= 18 alors
Ecrire ("Vous tes un adulte )
Sinon
Ecrire ("Vous tes encore mineur )

Sub test_condition()

Fin si Fi

Else
MsgBox "Vous tes encore mineur"

Dim age As Byte


age = 20
If age >= 18 Then
MsgBox "Vous tes un adulte"

End If
End Sub
63

64

Application 4 :
les oprateurs arithmtique (de comparaison ):

Ecrire un programme qui demande lutilisateur de faire entrer un


nombre, et linforme si ce nombre est positif ou ngatif (on laisse de ct le cas
o le nombre vaut zro)

Application 5 :
Ecrire un programme en VBA qui demande lutilisateur de faire entrer une note et

est gal

<>

est diffrent de

<

est plus petit que

<=

est plus petit ou gal

>

est plus grand que

>=

est plus grand ou gal

dafficher Bien si la note suprieure 14, A. Bien si la note est suprieure 12,
passable si la note est infrieure 12 et suprieure a 10 et travail insuffisant si la
note est infrieur 10

65

66

Structure cas :

Les oprateurs Logiques:

Syntaxe algorithme
AND

et

[condition1] AND [condition2]


Les 2 conditions doivent tre
vraies

OR

ou

[condition1] OR [condition2]
Au moins 1 des 2 conditions
doit tre vraie

NOT

faux

NOT [condition1]
La condition doit tre fausse

Cas
x = a traitement 1
x = c traitement 2

autre traitement n
Fin cas

67

Syntaxe VBA
Select Case x
Case a
Traitement 1
Case c
Traitement 2

Case Else
Traitement n
End Select
68

Boucle : Pour/ next :

Les boucles

Syntaxe Algorithme :
Une boucle est un ensemble dinstructions qui est rpt un certain
nombre de fois.

Pour x allant de 0 9 faire


Traitement
Fin pour

Si lon veut faire un compteur qui compte jusqu 50000, alors cest la
seule solution.

Syntaxe VBA :

Plusieurs syntaxes possibles:


For, While, Loop, Do While,
Les plus utilises: For et While

For x=0 to 9
Traitement
Next x [nom de la variable
d'incrment]

69

70

Boucle : Pour/ next :


Ecrire un algorithme puis un programme en VBA qui demande un nombre
au dpart, et qui calcule la Somme des entiers jusqu' ce nombre. Par
exemple si l'on tape 4 lalgorithme doit calculer: 1+2+3+4=10

Exemple : afficher de 1 10
Syntaxe VBA sans
boucle
Sub boucle()
MsgBox "1"
MsgBox "2"
MsgBox "3"
MsgBox "4"
MsgBox "5"
MsgBox "6"
MsgBox "7"
MsgBox "8"
MsgBox "9"
MsgBox "10"
End Sub

Syntaxe VBA avec boucle


Algorithme : somme nombre
Variable n , i , S : Entiers
Ecrire( donner un nombre n )
Li re (n)
S=0
Pour i=1 a n faire
S S+i
Fin pour
Ecrire ( la somme de 1 a n est S )
Fin

Sub boucle ()
For nombre = 1 to 10
MsgBox nombre
Next nombre
End sub

71

Programme VBA:
Sub calcul_somme()
Dim n, i, S As Integer
n = InputBox("donner la valeur de n")
For i = 1 To n
S=S+i
Next i
MsgBox S
End Sub

72

Boucle tant que / While :


Boucle While:
Dans cette structure, on commence par tester la condition ; si
elle est vrifie, le traitement est excut.

Exemple : Afficher de 1 10 en utilisant la boucle tant que .

Diffrence avec For: on ne connat pas toujours la fin de la


boucle lavance.

Syntaxe Algorithme:
tant que (condition est vrifie) faire
Instruction 1 .
Fin tant que
... ...

Syntaxe Algorithme

Affichage
Variable : nombre : entier
Dbut
Nombre =0
Tant que nombre <10 faire
Nombre=nombre +1
Ecrire (nombre )
Fin tant que
Fin

Syntaxe VBA
While (condition)
instruction 1
Wend

Syntaxe VBA
Sub test_while()
Dim nombre as integer
nombre= 0
While nombre < 10
nombre = nombre + 1
MsgBox nombre
Wend
End Sub

73

Do Loop
Cette boucle fonctionne de la mme manire
que While Wend (tant que la condition est vraie, la
boucle est excute) :
Syntaxe
Do While [condition]
'Instructions
Loop

74

Exemple : Afficher de 1 10 en utilisant la


boucle (do Whileloop)
Sub exemple1()
Dim n As Integer
n=0
do while n<10
n=n+1
MsgBox n
loop
End Sub

La condition peut galement tre place en fin de


boucle Do Loop, ce qui implique que les instructions
sont excutes au moins une fois :
Sub boucle_do_while()

Plutt que de rpter la boucle tant que la condition


est vraie, il est possible de quitter la boucle lorsque la
condition est vraie en remplaant While par Until :

Do
'Instructions
Loop While [condition]

Do Until [condition]
'Instructions

End Sub

Loop

La boucle Do Until :

La boucle Do Until :

Exemple : Afficher de 1 10

Syntaxe Algorithme

Affichage
Variable : nombre : entier
Dbut
Rpter [Jusqu' ce que]
nombre =10 faire
Nombre=nombre +1
Ecrire (nombre )
Fin

Exemple : Ecrire un programme qui demande un nombre a lutilisateur


encore et encore tant que l'utilisateur s'vertue a entrer un autre chiffre
que 5
Syntaxe VBA
Sub test_boucle()
Nombre = 0
Do Until nombre = 10
nombre = nombre + 1
MsgBox nombre
Loop
End Sub

79

80

Structures

La boucle Do Until :
Exemple : Ecrire un programme qui demande un nombre a lutilisateur
encore et encore tant que l'utilisateur s'vertue a entrer un autre chiffre
que 5
Syntaxe Algorithme

Dbut
Var : n entier
Rpter
Ecrire (donner un nombre )
Lire (n)
Jusqu ce que n<>5
Fin

Syntaxe VBA
Sub TestLoop()
Dim n As Integer
Do
n= InputBox("Entrez un chiffre")
Loop until n <> 5
End Sub

Conditionnelles

Langage
Algorithmique

Langage Visual Basic

Si condition alors
Traitement
Fin si

If condition then
Traitement
End if

Si condition alors
Traitement 1
Sinon
Traitement 2
Fin si

If condition then
Traitement 1
Else
Traitement 2
End if

Cas
x = a traitement 1
x = c traitement 2

autre traitement n
Fin cas

Select Case x
Case a
Traitement 1
Case c
Traitement 2

Case Else
Traitement n
End Select

81

Structures

Itratives

Tableau
Rcapitulatif
Langage
Algorithmique

Langage Visual Basic

Tant que condition faire


Traitement
Fin tant que

While condition
Traitement
wend

faire Tant que condition


Traitement
Fin tant que

Do while condition
Traitement
loop

faire
Traitement
Fin tant que condition

Do
Traitement
Loop while condition

Rpter
Traitement
Jusqu condition

Do
Traitement
Loop until condition

Pour x allant de 0 9
Traitement
Fin pour

For x=0 to 9
Traitement
Next x

82

Exercice 1 :
Ecrire un algorithme qui demande un nombre compris entre 10 et 20,
jusqu ce que la rponse convienne. En cas de rponse suprieure
20, on fera apparatre un message : Plus petit ! , et inversement,
Plus grand ! si le nombre est infrieur 10 ;

83

84

Solution : Algorithme
Variable N en Entier
Debut
Ecrire "Entrez un nombre entre 10 et 20
TantQue N < 10 ou N > 20
Lire N
Si N < 10 Alors
Ecrire "Plus grand !
SinonSi N > 20 Alors
Ecrire "Plus petit !
FinSi
FinTantQue
Fin

Solution :VBA
Sub test()
Dim n As Integer
While n < 10 Or n > 20
n = InputBox("donner un nombre entre 10 et 20")
If n < 10 Then
MsgBox ("nombre plus petit")
ElseIf n > 20 Then
MsgBox ("nombre plus grand ")
End If
Wend
End Sub

85

86

Exercice 2 :

Solution exercice 1 :

Solution exercice 2 :

Ecrire lalgorithme qui demande un nombre lutilisateur et affiche les


10 nombres suivant.

Sub boucle()
Dim n, i As Integer
n = InputBox("donner un nombre")
For i = 0 To 5
s=n+i
MsgBox s
Next i

Sub TestLoop5()
Dim Reponse As String
Reponse = InputBox("entrer le mode
passe ")
Do Until Reponse = "test"

Exercice 2 :
Ecrire un programme que demande un mode passe a lutilisateur Si on
entre le bon mot de passe immdiatement, le programme s'arrte sinon
il nous donne mauvaise rponse , essayez encore .

Reponse = InputBox("Mauvaise
rponse. Essayez encore")
Loop
End Sub

87

88

Boucle While: Ecrire un algorithme puis un programme en VBA qui


demande un nombre de dpart, et qui calcule la Somme des entiers
jusqu' ce nombre. Par exemple si l'on tape 4 lalgorithme doit calculer:
1+2+3+4=10
Algorithme : somme nombre
Variable n , i , S : Entiers
Ecrire( donner un nombre n )
Lire (n)
S=0
i=1
Tant que i<=n faire
S S+i
i=i+1
Fin tant que

Programme VBA
Sub somme()
Dim s, n, i As Integer
n = InputBox( donner un nombre n")
s =0
While i <= n
s=s+i
i=i+1
wend
MsgBox ( la somme de 1 a &n&
est & s)
Ecrire ( la somme de 1 a , n , est , S ) End Sub

Fin

89

Vous aimerez peut-être aussi