Structura Lexicală a Unui Program VB
-
Upload
bondocgiulia -
Category
Documents
-
view
19 -
download
1
description
Transcript of Structura Lexicală a Unui Program VB
-
Conf. dr. Cozgarea Adrian
Structura lexical a unui program VB.NET
Elemente de programare VB.NET:
1. comentarii;
2. cuvinte cheie;
3. identificatori (denumiri);
4. literali (valori);
5. separatori;
6. variabile;
7. constante;
8. operatori i expresii;
9. instruciuni i funcii (intrinseci) VB.NET;
10. proceduri i funcii definite de utilizator.
-
Conf. dr. Cozgarea Adrian
Comentarii
Exemple:
' acesta este un comentariu pe o linie
X= 1000 ' comentariu la sfarsitul unei linii de cod
Cuvintele cheieExemple: And, Byte, Call, ... When, While
IdentificatoriExemple: a123 _a _2 _ss_e2_
Not: identificatorii AbC i aBc sunt identici (VB este case insensitive ) !!!
LiteraliExemple: X=1000
Y=22.29
Sir="abcd Not: AbCaBc !!!
Ziua=#01/01/2007#
Separatori: ().,_:
-
Conf. dr. Cozgarea Adrian
Scrierea unei instruciuni pe mai multe rnduri:
Dim x As Integer, _
y As Double, _
d As Date
Scrierea mai multor instruciuni pe un singur rnd:
Dim x As Integer : x=10 : MsgBox (x)
-
Conf. dr. Cozgarea Adrian
Variabile
Etape:
1. Declararea (definirea) variabilei :
a. Denumire
b. Tip de date
2. Iniializarea variabilei :
Implicit/automat (numai pt. tipul valoare) cu valoarea implicit
Explicit (obligatorie pt. tipul referin)
Durata de via :
= durata execuiei structurii (ex: operaia) n care a fost definit var.
Instruciunea Dim:
Dim [As ][= ] [, ]
-
Conf. dr. Cozgarea Adrian
Exemple:'tip VALOARE:
Dim nr As Integer 'declarare si iniializare implicit (cu 0)
Dim nrIntreg As Integer=100 'declarare i iniializare explicit
Dim x,y as Single 2 variabile de tip Single, iniializate implicit (0)
Dim nr1 As Byte=1, nr2 As Integer, _ 'declaraii
ziua As Date multiple
'tip REFERIN:
Dim sir1 As String 'declarare FARA iniializare (sir1=Nothing)!
sir1 = abc 'iniializare explicit
Dim sir2 As String=abcdef 'declarare si iniializare explicit
Variabile
-
Conf. dr. Cozgarea Adrian
Constante
Intruciunea CONST:
Const [As ]= [, ]
Exemple:
Const PLAFON_MIN=1000
Const DATA_CRT AS Date = #04/11/2007#, TVA As Decimal = 0.24
-
Conf. dr. Cozgarea Adrian
Operatori aritmetici
+ - * / \ ^ Mod
Exemple:
Dim total As integer
total=120+20 ' total=140
total=5/3 ' total=2 (1.66 este convertit la ntreg!)
total=7\2 ' total=3
total=5^2 ' total=25
total=10 Mod 3 ' total=1
-
Conf. dr. Cozgarea Adrian
Operatori de atribuire
= += -= *= /= \= ^=
Exemple:
Dim x As integer
x=5
x+=10 ' echivalent cu x=x+10
x-=5 ' echivalent cu x=x-5
x*=2 ' echivalent cu x=x*2
-
Conf. dr. Cozgarea Adrian
Operatori de comparare
< >= = Is IsNot Like
Exemple:
MsgBox 2>1 ' Afiseaza "True"
MsgBox ("abcd" Like "ab?d") ' Afiseaza "True"
MsgBox ("abcfgh" Like "a*") ' Afiseaza "True
MsgBox ("aBc" = AbC") ' Afiseaza False
-
Conf. dr. Cozgarea Adrian
Operatori de concatenare
+ &
Exemple:
MsgBox ("abc" + "d") Afiseaza "abcd"
MsgBox ("12" + 3) Afiseaza 15 !
MsgBox ("abc" + 3) Eroare !
MsgBox ("abc" & 3) Afiseaza "abc3"
-
Conf. dr. Cozgarea Adrian
Operatori logici
1. And
2. Or
3. Not
4. Xor
5. AndAlso
6. OrElse
Exemple:
MsgBox (True And False) ' Afiseaza False
MsgBox (True Or False) ' Afiseaza "True"
MsgBox ((2>1) And (4=1)) ' Afiseaza "False"
MsgBox ((2>1) Or (4=1)) ' Afiseaza "True"
Msgbox (True And False OR False) ' Afiseaza False"
-
Conf. dr. Cozgarea Adrian
Ali operatori
AddressOf GetType TypeOf
Exemple:
Dim sir As String="abc", obj
MsgBox ( TypeOf sir Is String) ' Afiseaza "True"
MsgBox ( TypeOf obj Is Object) ' Afiseaza "True"
-
Conf. dr. Cozgarea Adrian
Precedena operatorilor
I. Operatorii aritmetici i de concatenare:1. ^
2. Operatorii unari +, 3. *, /
4. \
5. Mod
6. +, 7. &
II. Operatorii de comparare =, , =, Is, IsNot, Like, TypeOf...Is
III. Operatorii logici:1. Not
2. And, AndAlso
3. Or, OrElse
4. Xor
Exemple
x=5+2*3 x=11 (5+6)
x=(5+2)*3 x=21
-
Conf. dr. Cozgarea Adrian
Instruciuni declarative
Instruciune Exemplu
Class Class Factura...
End Class
Const Const PLAFON_MIN As Single=0
Dim Dim x1, x2 As Single, sir As String
Function Function Media(x1 As Double,x2 As Double) As Doublereturn (x1+x2)/2
End Function
Sub Sub AfisMedia(x1 As Single, x2 As Single)MsgBox((x1+x2)/2)
End Sub
Property
Namespace Namespace Vanzari
...
End Namespace
-
Conf. dr. Cozgarea Adrian
Instruciuni executabile
Instruciune Exemplu
Call Call AfiseazaMedia(4,5)
End End
Imports Imports System.Math
Rem Rem Un comentariu
Return [] Return util intr-o procedura (nu returneaza o valoare)Return 5+2 pentru o functie care returneaza un intreg
Stop Stop
Cele mai importante: instruciunile pt. structurile de control:
alternative : If...End If | Select Case...End Select repetitive : For Next | While End While etc.
Altele:
-
Conf. dr. Cozgarea Adrian
Funcii VB pentru conversii
Funcie Exemplu
Asc(), AscW() MsgBox(Asc("s"))
MsgBox(AscW(""))
Chr(), ChrW() MsgBox (Chr(115)) 'afiseaza s
MsgBox (ChrW(351)) 'afiseaza
CBool(), CByte(),
CChar(), CDate(),
CDbl(),
CDec(),
CInt(),
CLng(),
CSng(),
Dim i As Integer=CInt("12")
Dim s1 As String=CStr(123)
Dim s2 As String=CStr(Now)
Dim d As Date = CDate(11/14/2007")
Format() MsgBox(Format(4.9,"#0.00")) afiseaza 4.90
Str() Dim s As String= Str(123)
Val() Dim i As Integer= Val("123")
Ctype (,) Dim i As Integer=CType("123",Integer)
Dim d as Date=CType(11/14/2007,Date) depend. de setarea calc.
Altele:
-
Conf. dr. Cozgarea Adrian
Funcii VB pentru iruri
InStr(), Mid (), Left (),Lcase (), Ucase (), Trim () etc.
nlocuite de metodele clasei String: IndexOf (), Replace (), Substring (), ToLower (),
ToUpper (), Trim () etc.
-
Conf. dr. Cozgarea Adrian
Funcii VB pentru date calendaristice
DateAdd (), Day (), Month (), Year () etc.
nlocuite de metodele clasei Date:AddDays (), AddMonths (), AddYears (), Month (), Year () etc.
-
Conf. dr. Cozgarea Adrian
Funcii VB pentru validri
Funcie
IsArray()
IsDate()
IsNothing()
IsNumeric()
IsReference()
-
Conf. dr. Cozgarea Adrian
Funcii pentru interaciunea cu utilizatorul
Funcie Exemplu
InputBox() Dim s As String = InputBox ("NumarFactura")
MsgBox() 1. MsgBox(Cont invalid !",MsgBoxStyle.Critical,Eroare)
2. Dim rasp As MsgBoxResult
rasp=MsgBox("Continuati?", MsgBoxStyle.YesNo)