Sunteți pe pagina 1din 39

2ème année IAG

Chapitre 1: Bases du langage

Cours assuré par:

Mr Chaouki Bayoudhi Mme Meriem Ennigrou

2013-2014 Support de cours VB.NET


.NET ???
Historique 2000
XML
Web Services

1995
1990 Internet
GUI
1981
PC Visual
IE, IIS Studio
Visual Studio
Windows .NET
Visual BASIC
MS-DOS
MS-
BASIC
2
Introduction à .NET
Machine virtuelle
Le code n’est plus exécuté directement par la machine
Intérêt:
sécurité
programmation à plus haut niveau
indépendance de la plateforme :
compile once, run everywhere
Java : Windows, Linux, Mac, Web, Téléphones, ...

Programmation
Possibilité d’utiliser plusieurs langages :
C#, VB.NET, J++, Python, ...
compilation et exécution par la MV
3
Nouveautés VB
La constitution de la programmation VB:
Les contrôles (des objets graphiques)
Les événements (des signaux système)
Les procédures événementielles.

Le langage VB .NET
Langage réellement objet
Support de l’héritage
Support du multi-threading
Création de services NT
Extension : .vb
Compilateur : vbc.exe 4
L’environnement depermettant
Boîte de dialogue développement
la .NET
création d’un nouveau projet
1- Sélectionnez Projets Visual
Basic au sein de la liste des
types de projets.

2- Sélectionnez Application
Windows au sein de la liste 3- Spécifiez le nom « Premier »
des modèles de projets. à l’intérieur de zone de saisie
« Nom ».

5
L’environnement de développement .NET

6
Syntaxe de base

Public Sub nom_procédure() Indique le début

‘ séquences d’instructions
Instruction1 c’est un
commentaire qui
Instruction2 sera ignoré par le
compilateur

End Sub Indique la fin
7
Pratique: 1er exemple
‘ première application en vb.net
Imports System.Windows.Forms
Module Bonjour
Sub Main ()
MessageBox.Show("Bonjour à tous !")
End Sub
End Module

8
Syntaxe de base
Variables (1)

Les variables sont essentielles à tous les


programmes et tous les langages
Elles permettent le stockage à court terme
des paramètres du programme. Souvent des
valeurs numériques (5, 17.6, -3.121212) ou
des caractères
Plusieurs types de variables
Correspondent à des zones de mémoire de
l’ordinateur
9
Syntaxe de base
Variables (2)

Noms de variables:
1-Pas de longueur maximale

2-Commence par un caractère: 12xy

3-Pas d’espace:
date_de_naissance date de naissance

4-Pas de sensibilité à la casse (toto=Toto=ToTO)


10
Syntaxe de base
Variables (3)
Types:
Boolean : True – False
Byte : 0 à 255
Integer : -32 768 à 32 767
Long : -2 à 2 milliards
Single : réels avec 6 chiffres décimaux (x=10/3; 3,333333)
Double : réels avec 14 chiffres décimaux
String : chaînes de caractères
Date : Date et heure
Variant : entier, réel, chaîne, booléen, …
Objet : objets VB (Contrôles, feuilles,..)

11
Variables (4) Une
Pourchaîne
insérerde caractère
le caractère "
doitlaêtre
dans écrite
chaîne sans entre
qu’il soit
• En VB.NET, on considère env. 12 types
interprété " de
comme
deux ". symbole
de type
variables. Les plus utilisées:Le début ou de fin
Boolean d’une
contient
lesLedeux
chaînetype Datelepermet
il valeurs
faut true oude
doubler.
– String pour stocker des chaînes de
stocker caractères
desaussi
false. Il est informations
possible de
– Char pour stocker un caractèredate et d’heure.
unique
d’affecter La date
une valeur
doit être encadrée
numérique à une par le
variable
– Integer pour stocker des valeurs entières symbole #. 0 vaut
booléenne. La valeur
– Double pour stocker des valeurs
false décimales
Exemple
et toute1: Aujourd’hui
autre valeur=
#08/02/2002
est équivalente 14 à: 58 : 23#.
true.
– Long pour stocker des grandes valeurs entières
Exemple2:
– Boolean pour stocker soit un 0 soit un 1 (un bit)
NewDate(2011,1,14)
– Date

12
Syntaxe de base
Variables (5)

• Déclaration des Variables:


Dim NomVariable1 [, NomVariable2 ,...][As type] [= valeur]
Const NomConstante as type = valeur
Exemple: Const PI As double= 3.14

• Portée des Variables:


1-Niveau Procédure : Dim NomVariable As Type
2-Niveau Form : Dim NomVariable as Type
3-Niveau Projet (module) : Public NomVariable As Type
Exemple: Dim i As integer, Public b As boolen

13
Syntaxe de base
Variables (5)

• Variables indicées (Tableaux):Déclaration obligatoire!!


1- Taille connue à l’avance : Dim MonTableau(n) As Integer
Dim MonTableau(11) As Integer (indices : de 0 à 11 => 12 éléments)
2- Tableau dynamique : Dim MonTableau( ) As Integer
3- Mes propres indices : Dim MonTableau(2 to 5) As Integer
4- Taille fixée ultérieurement : Redim MonTableau(10)
Préserver les valeurs existantes :
Redim Preserve MonTableau(11)

Les Matrices (mêmes règles que les tableaux!)


Dim Mat(2,3) As Integer 14
Application Syntaxe de base
1- Ecrire et exécuter un programme demandant à
l’utilisateur son nom et son prénom affichant sur msg box
« Bonjour utilisateur ».

Private sub Hole_click()


Dim FirstName, LastName , WholeName As String
FirstName = Label1.Text
LastName= Label2.Text
WholeName = "Bonjour" & FirstName & " " & LastName
MsgBox (WholeName)
End sub

15
Application
Module Module1
Sub Main()
Syntaxe de base
Dim Tab1(9) As Integer
2- Afficher 3 tableaux
Dim Tab2(9) d'entiers de 10 cases:
As Integer
Dim Tab3(9) As Integer
•Le premier: chaque case contient son index
'Affichage de Tab1
•Le 2ème:Forchaque case =est
i As Integer multiple
0 To de 10 de son index
UBound(Tab1)
Tab1(i) = i
•Le 3ème: chaque case contient un nombre aléatoire allant de 0 à 10.
Console.Out.WriteLine("Tab1(" + i.ToString + ")=" + Tab1(i).ToString)
Next
'Affichage de Tab2
For i As Integer = 0 To UBound(Tab2)
Tab2(i) = i * 10
Console.Out.WriteLine("Tab2(" + i.ToString + ")=" + Tab2(i).ToString)
Next
'Affichage de Tab2
For i As Integer = 0 To Tab3.Length - 1
Tab3(i) = CInt(Rnd(1) * 10)
Console.Out.WriteLine("Tab3(" + i.ToString + ")=" + Tab3(i).ToString)
Next
'Pause() pour affucher la fenêtre d'exécution
Console.Read()

End Sub
End Module 16
Exercice Syntaxe de base

A- Tri sélection: Déterminer le minimum du tableau et le


permuter avec la 1ère case, ainsi de suite
B- Tri insertion Dans l'algorithme, on parcourt le tableau à
trier du début à la fin. Au moment où on considère le i-
ème élément, les éléments qui le précèdent sont déjà
triés. Pour faire l'analogie avec l'exemple du jeu de cartes,
lorsqu'on est à la i-ème étape du parcours, le i-ème
élément est la carte saisie, les éléments précédents sont la
main triée et les éléments suivants correspondent aux
cartes encore mélangées sur la table.
L'objectif d'une étape est d'insérer le i-ème élément à sa
place parmi ceux qui précèdent.
17
Syntaxe de base
Les chaînes de caractères
•Chars(i) Retourne le caractère placé à la position i (les positions commencent à
partir de 0)

•Length() ou len(chaîne) Retourne la taille d’une chaîne

•Substring( i,j) Retourne la chaine contenant j caractères à partir de la position i


dans la chaîne initiale

•CompareTo(chaine2) Retourne 0 si les 2 chaines sont identiques, une valeur


négative si la chaine est < à celle passée en paramètre et une valeur positive sinon

•Insert(i, chaine2) Retourne la chaine initiale dans laquelle est insérée la chaine 2 à
la position i

•ToUpper() ou Ucase(chaine) Met la chaine en majuscule

•ToLower() ou Lcase(chaine) Met la chaine en minuscule 18


Syntaxe de base
Les dates
Day Retourne le jour du mois retourné par cette instance
Hour Retourne l’heure retournée par cette instance
MinuteRetourne le composant minutes retournée par cette instance
Month Retourne le composant mois retourné par cette instance
Year Retourne le composant année retourné par cette instance
ToString Convertit la valeur de l’objet date en sa représentation correspondante
sous forme de chaine
DayOfWeek Retourne le jour de la semaine (0 pour dimanche à 6 pour samedi)
now Retourne la date et l’heure du système
ToDay Retourne la date du système avec l’heure 0
TimeOfDay Retourne l’heure actuelle
DateDiff Retourne la différence entre deux dates. Elle admet comme paramètres
l’unité de calcul exprimé par DateInterval.year ou DateInterval.day et les deux
dates

19
Syntaxe de base
Les énumérations
Une énumération permet de définir un ensemble de constantes qui sont liées entre
elles logiquement. La déclaration se fait comme suit :
Enum nom_enumeration
elt1 [= val1] Si les valeurs ne sont pas spécifiées
elt2 [= val2] alors les valeurs par défaut sont
… respectivement 0, 1, .., n pour les
eltn [= valn] champs 1 à n.
End Enum

Exemple Enum jours Les constantes ainsi créées sont


Dimanche alors jours .Dimanche
Lundi jours. Lundi
Mardi jours. Mardi
Mercredi jours. Mercredi
Jeudi jours. Jeudi
Vendredi jours. Vendredi
Samedi jours. Samedi
20
End Enum
Syntaxe de base
Opérateurs

Affectation: Le seul opérateur disponible est =

Opérateurs numérique : + - * /
Opérateurs booléens : And Or Xor Not
Opérateur caractère : + & (concaténation)

\ : Division entière
^ : puissance
Mod : reste de la division entière

Comparaison:
=, <>, <, >, <=, >=, Like (Egalité de chaines de caractères).
Pour comparer des types de variables objet il faut utiliser l’opérateur Is.
21
Syntaxe de base
Structures conditionnelles

• L’alternative (si…..sinon…..)
If (Conditions) Then
If (Conditions) Then Liste d’instructions
Liste d’instructions
End If Elseif (Conditions) Then
Liste d’instructions
If (Conditions) Then Elseif (Conditions) Then
Liste d’instructions
Else Liste d’instructions
Liste d’instructions
End If
Else
Liste d’instructions
End If 22
Syntaxe de base
Structures conditionnelles

• L’alternative IIF

IIf (Condition, valeur_Si_vrai, valeur_Si_faux)

Si le premier argument est vrai, le second est retourné.


Si le premier argument est faux c'est le troisième qui est
retourné.
Exemple :
Reponse = IIf( Nombre > 0, "Positif", "Négatif ou 0")

23
Syntaxe de base
Structures conditionnelles

• Select case :
Select case x
case 1
instructions
case 2

case else
instructions
End Select
24
Structures itératives
Syntaxe de base

• Les Boucles
For x = a to b Step c Fin prématurée (Exit For)
Liste d’instructions
For i = 1 to 10
Next If t(i) = c then
Trouvé = true
Exemple : Exit For
For i = 1 to 10 End if

s=s+i Next
Next
25
Structures itératives
Syntaxe de base

•Une collection peut être


• Les Boucles :
For each element in collection
1. Un tableau
2. Les éléments d’une
Liste d’instructions
listBox
Next
3. Une chaine de
Exemple 1 :
caractère, …
Dim x as integer • Il faut seulement que
Dim T(9) as integer element soit dans le
For each x in T même type que les
s=s+x éléments de collection
Next 26
Structures itératives
Syntaxe de base
Exemple 2 :
Dim mystring As String
Dim item as Object
For Each item in ListBox.Items
mystring=mystring+item
Next
MsgBox mystring

Exemple 3:
Dim chaine As String = "aeiou"
Dim c As String
For Each car As String In chaine
If car= "i" Then..

27
Structures itératives
Syntaxe de base

• Les Boucles (test avant exécution)

While (Conditions) Do While (condition de continuité)


Liste d’instructions instructions
End While Loop

Do Until (condition d’arrêt)


instructions
Loop
28
Syntaxe de base (complément)

• Les Boucles (test apès exécution)

Do
instructions
Loop While (condition de continuité)

Do
instructions
Loop Until (condition d’arrêt)
29
Syntaxe de base (complément)

• La structure de branchement GOTO


Goto permet un saut non conditionnel
Goto étiquette

Pour définir l’étiquette :


nomEtiquette :

Exemple :
GoTo FIN
A=2
B=A+2
FIN: 30
Les procédures et fonctions
les procédures
Dans VB, toutes les instructions doivent être placées dans une
procédure ou une fonction. Il existe quatre types de procédures :
1. Les procédures Sub qui exécutent simplement un bloc de code à
la demande
2. Les procédures évènementielles qui sont appelées
automatiquement lorsqu’un évènement se produit (clic de souris,
touche de clavier, etc.)
3. Les fonctions qui exécutent un bloc de code et qui retournent un
résultat
4. Les procédures property qui permettent de manipuler les
propriétés des objets

31
Les procédures et fonctions
les procédures
Sub nomProcédure (liste paramètres)
Bloc de code
End Sub

• Par défaut, une procédure sera considérée publique. Pour modifier


sa visibilité il faut utiliser les mots clés Private, Public et
Friend.

32
Les procédures et fonctions
les procédures évènementielles
Deux éléments distinguent les procédures évènementielles des
procédures classiques :
1- L’appel de la procédure évènementielle se fait
automatiquement lorsque l’évènement géré par cette procédure se
produit dans l’application
2- Le nom de la procédure correspond à la concaténation du
nom de l’élément pour lequel la procédure gère l’évènement, du
caractère (_) et du nom de l’évènement géré.

Exemple :
Sub bouton_click (ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.click

Le mot clé Handles spécifient l’objet et l’évènement pour lesquels la


procédure sera exécutée. 33
Les procédures et fonctions
Les fonctions
Les fonctions
Function nomFonction (liste paramètres) As type
Bloc de code
End Function

•Pour modifier la visibilité de la fonction, on utilise les mêmes mots


clés.

•Pour retourner le résultat de la fonction, deux méthodes sont


possibles :
- Utiliser le mot clé Return avec le résultat. Dans ce cas, le mot clé
Return entraîne l’arrêt immédiat de la fonction.
- Affecter au nom de la fonction le résultat. L’exécution de la
fonction continue jusqu’à la dernière instruction de la fonction.
34
Les procédures et fonctions
Les procédures property
Elle permet de rajouter une propriété à une classe.

Exemple :
• Les noms sont en majuscule
• Les prénoms en minuscule
• Les dates ne sont pas inférieures à 1900

La syntaxe sera présentée dans le chapitre suivant.

35
Les procédures et fonctions
La déclaration des paramètres doit spécifier le nom et le type de
chaque paramètre. Le mode de passage des paramètres peut être de
deux types :

1- Passage par valeur : le contenu de la variable désignant le


paramètre est récupéré par la procédure. C’est l’option par défaut. Le
mot clé ByVal peut aussi précéder les paramètres passés par valeur.

2- Passage par référence : l’adresse de la variable désignant le


paramètre est récupéré par la procédure. Il est possible dans ce cas de
modifier le contenu de cette variable. Le mot clé ByRef doit
précéder les paramètres passés par référence.

36
Les procédures et fonctions
Il est également possible d’indiquer qu’un paramètre est optionnel en
utilisant le mot clé Optional devant le nom du paramètre. Néanmoins,
les paramètres optionnels doivent respecter certaines règles :

• Chaque paramètre optionnel doit être affecté avec une valeur par défaut
• Lorsqu’un paramètre est déclaré optionnel, tous les paramètres qui le
suivent doivent être optionnels

Lors de l’appel de la procédure, deux méthodes peuvent être utilisées


pour passer les valeurs aux paramètres :
1- Passage par position : les valeurs sont passées selon le même ordre
que les paramètres formels. Si une valeur devra être omise alors sa place
doit rester vide
2-Passage par nom : l’ordre dans ce cas n’est pas forcément respecté
puisqu’il y aura affectation au nom du paramètre formel de la valeur 37
Les procédures et fonctions
Une autre possibilité permet de déclarer un nombre quelconque de
paramètres en utilisant le mot clé ParamArray qui permet de déclarer
un tableau de paramètres.
Exemple :
Function moyenne (ByVal ParamArray notes() As
Double) As Double
Dim note As Double
Dim somme As Double
For Each note In notes
Somme = somme + note
Next
moyenne = somme/ notes.length
End Function
Lors de l’appel à cette fonction, les 2 cas suivants sont possibles :
1. Resultat = moyenne (1,6,23,45) 38
2. Resultat = moyenne (12,78)
Exercice
On se propose d'écrire un programme permettant de calculer l'impôt d'un contribuable. On
se place dans le cas simplifié d'un contribuable n'ayant que son seul salaire à déclarer :
• On calcule le nombre de parts du salarié
nbParts = (nbEnfants/2 ) +1 s'il n'est pas marié,
(nbEnfants/2) +2 s'il est marié, où nbEnfants est son nombre d'enfants.
• S'il a au moins trois enfants, il a une demi-part de plus
• On calcule son revenu imposable R = 0.72 * S où S est son salaire annuel
• On calcule son coefficient familial QF = R/nbParts
• On calcule son impôt I. Considérons le tableau suivant : 12620.0 0 0
13190 0.05 631
Chaque ligne a 3 champs. Pour calculer l’impôt I, on 15640 0.1 1290.5
recherche la première ligne où QF<=champ1. Par exemple, si 24740 0.15 2072.5
QF = 23000 on trouvera la ligne: 31810 0.2 3309.5
24740 0.15 2072.5 39970 0.25 4900
48360 0.3 6898.5
L’impôt I est alors égal à 0.15*R -2072.5*nbParts. Si QF est 55790 0.35 9316.5
tel que la relation QF<=champ1 n’est jamais vérifiée, alors ce 92970 0.4 12106
sont les coefficients de la dernière ligne qui sont utilisés. Ici : 127860 0.45 16754.5
0 0.65 49062 151250 0.50 23147.5
172040 0.55 30710
Ce qui donne l’impôt I = 0.65*R – 49062 *nbParts. 195000 0.60 39312
0 0.65 49062 0 0.65
39
49062

S-ar putea să vă placă și