Sunteți pe pagina 1din 23

CURS 1

CAP I : Programarea calculatoarelor


Prin program informatic se intelege o succesiune logica de instructiuni sau expresii destinate executarii lor de catre
calculatorul electronic in vederea obtinerii unor rexultate.
Notiunea de program informatics are urmatoarele sinonime: produs program, aplicatie informatica, produs stoc sau
software.
Structuri de date + Algoritmi =Program
Iesiri= programul (intrari)
Caractesristicile programelor informatice :
Corectitudine- reprez proprietatea programului de a returna date de iesire corecte sau scontate pornind de
la un set de date de intrare.
Robustete- reprez capacitatea in care un program, o aplicatie poate sa faca fata unei situatii imprevizibile.
Rentilizabilitate- posibiltatea reutilizarii unui nou program sa u a unor module in alte aplicatii.
Compatibilitate- se intelege gradul de asemanare intre un program si alte aplicatii.
Portabilitate- descrie masura in care, programul, aplicatia poate fi utilizata pe mai multe sisteme de operare
sau calculatoare.Un program informatics este considerat portabil daca poate fi executat pe mai multe
sisteme de operare.
Eficienta- cand programul utilizeaza resursele sistemului electronic de calcul (ex: memoria).
Claritatea- se refera la usurinta cu care instructiunile cu care utilizeaza programul pot fi citite (intelese ) de
catre programator. Pt a putea fi rulatpe calculator; programul informatics trebuie sa fie furnizat
calculatorului intr-o forma cunoscuta, adica in limbajul cod masina- acest limbaj constituie limbajl de
programare elementar primar si este mai putin utilizat de catre programatri din 2 motive:
1. In primul rand limbajul cod-masina utilizeaza numai simbolurile sistemului de numeratie binara (1,0).
2. In al 2-lea rand limbajul cod-masina sunt diferite de la o generatie de calculatoare la alta deoarece
fiecare producator de echipamente de calcul construieste aceste calculatoare cu limbaj cod-masina
proprii.

Structura limbajelor de programare

I. UN VOCABULAR
II. O SINTAXA
III. O SEMANTICA


I. Vocabularul- descrie multimea de cuvinte recunoscute de limbajul de programare (cuvinte rezervate)
Ex: VB: AND, BYTE(tip numeric, call., when, white) D.p.d.v structural orice limbaj de programare este format
din 3 elemente fundamentale.
II. SINTAXA- cuprinde regulile de compunere a cuvintelor in expresii numite si instructiuni precum si
regulile de punctuatie. Orice nerespectare a acestor reguli va conduce la o ereoare de sintaxa.
Erori de sintaxa in VB:
a:= 1 -> corect a =1
din variabila integer-> lipseste AS.
III. SEMANTICA- reprez semnificatiile atribuite cuvintelor si expresiilor sau instructiunilor atribuite
limbajului de programare.
Dim x AS integer
Const cota tva AS Decimal = 0,24
Msg box (x)
NEXT

Clasificarea lombajului de programare
In functie de distanta (apropierea) fata de limbajul masina /natural (nivel de abstractizare).
Generatia 0= limbajele cod-masina sunt dependente de sistemele electronice de calcul.
Generatia 1= limbajule e asamblare- sunt mai evaluate decat limbajul cod-masina care ofera o oarecare
usurinta in scrierea programelor. Permit utilizarea cuvintelor mnemonice.
Generatia2 = limbajele de macroasamblare -derivate din limbajele de asamblare .Acestea comprima una sau
mai multe instructiuni de asamblare intr-o sg instructiune numita macroinstructiune.
Generatia 3= Fortran, Cobol, C, C++, Pascal, Basic, Java, contin limbaje de programare evaluate din care fac
parte si urmatoarele limbaje si C#( C++, Java )
Generatia4= limbaje neprocedurale, sql- limbajele de programare specilizate pe tipuri de aplicatii (structural
Query Language)
Generatia5= limbajele de programare destinate aplicatiilor din domeniul inteligentei artificiale : Prolog, Lisp,
etc.
Limbajele de programare reprezinta o tehnica de comunicare intre om si calculator, tehnica ce este caacterizata
printr-un vocabular , o sintaxa si o semantica. Indiferent de limbajul in care ste scris programul informatics, acesta
poate fi executat de catre calculator, numai daca este transformat , tradus in limbajul cod-masina.

Interpretare si compilatoare

Amandoua aplicatiile reflecta traducerea automata a unui program in limbajul cod-masina.
Interpretoarele asigura traducerea dar si executia, rularea rand cu rand, instructiune cu intructiune a intregului
program informatics. Cu alte cuvinte interpretarea uni program pp traducerea(transformarea) fiecaruia a
programului in instructiune binara dupa care aceasta este automat executata.
Caracteristicile interpretoarelor:
AVANTAJE
Timp necesar lansarii in exectie a programului este relative redus, deoarece nu este necesara compilarea
intregului program.
Interpretoarele asigura o portabilitate ridicata pogramelor informatice , in sensul ca acestea pot fi rulate
, executate pe orice sistem care dispune de interpretorul respective.

DEZAVANTAJE
Programele interpretate sunt executate mai lent decat cele complicate , deoarece executia fiecarei
instructiune pp o traducere in prealabil a acesteia in limbajul cod-masina.
Acestea nu asigura un nivel de securitate adecavat programelor informatice , in sensul ca programul sursa
trebuie sa fie disponivil la orice rulare sau executie a sa.

Compilatorul traduce intregul program in limbajul cod-masina si salveaza rezultatul acestei operatii intr-
un fisier executabil. Acest fisier exaecutabil reprez de fapt programul trnscris in cod-msina. Poate fi
executat pe orice sistem compatibil cu sistemul pe care s-a facut compilarea.

AVANTAJE
Programele compilate sut executate mai rapid decat cele interpretate.
Progr. Compilate asigura o protectie mai ridicata a programului sursa doarece acesta nu mai este necesra la
fiecare rulare.
DEZAVANTAJE
Compilatoarele ofera o portabilitate scazuta aplicatiei deoarece un program compilat poate fi rulat numai
de un sistem compatibil cu cel care s-a fc compilarea, de ex un progr compilat in sistemul windows nu va
putea fi executat pe un sistem de operare diferit (ex LINUX).

CURS 2
Etapele conceperii si realizarii programelor

Deazvoltarea unui program informatic pp o succesiune de etape sau faze dintre care mai importante sunt:
Analiza
Proiectarea
Exploatarea
Implementarea
Testarea
Intretinerea
1. ANALIZA- reprez etapa in care se clarifica problema ce urmeaza infromatizata. Sunt identificate
cerintele si obiectivele viitorului program. Se efectueaza si un studiu detaliat asupra domeniului supus
informatizarii.
2. PROIECTAREA- PP conceperea unei solutii a viitorului program , aplicatii in termeni independenti de
limbajele de programare sau sistemele de gestiune a BD de cele mai multe ori aceasta etapa se
finalizeaza cu un set de specificatii (descrieri) elaborate atat sub forma grafica cat si sub forma textuala.
3. IMPLEMENTAREA- reprez etapa in care Solutia conceptuala obtinuta in faza anterioara este transpusa
intr-un limbaj de programare sau/si SGBD , aici are loc scrierea proproiu-zisa a instructiunilor.
4. TESTAREA- repr etapa in care aplicatia este valida in raport cu cerintele utilizatorilor, exprimate inca din
faza de analiza.
5. EXPLOATARE- se refera la perioada in care programul este pus in functiune, uilizat in mod current si
intretinut.
6. ACTIVITATEA de INTRETINERE- vizeaza aspectele:
Remedierea eventualelor erori sau defecte constatate in timpul functionarii aplicatiei
Eventuale dezvoltari ale aplicatiei, completari cu module noi generate de aparitia unor noi cerinte
ale utilizatorilor.

ALGORITMII

Orice program informatic, aplicatie, implementeaza unul sau mai multi algoritmi. Denumirea de algoritmi
provine de la numele unui personaj Al-Khwarizmi.
Prin algoritm se intelege o metoda prin care sunt descrisi toti pasii necesari rezolvarii unei probleme.
EX:
- Algoritmul lui Euclid;
- Algoritm pentru descarcarea unei gestiuni:FIFO,LIFO,CMP;
- Algorimul de stabilire a soldului final al unui cont;\
- Algoritmi de sortare;
Pentru aceeasi problema pot fi utilizati mai multi algoritmi, situatie in care se impune alegerea
algoritmului cel mai eficient.
Eficienta unui algoritm se poate determina in functie de resursele necesare executiei sale, care resurse
avem in vedere:
- Timp necesar executiei algoritmului;
- Capacitate de memorie.

Din acest pct de vedere al CMP poate fi determinat mai efficient decat FIFO, LIFO(d.p.d.v. al resurselor consumate).
In literatura de specialitate algoritmii sunt caracterizati prin urmatoarele proprietati:
- Generalitatea=conform careia orice algoritm este valabil pentru o clasa generala de probleme nu
doar pentru o problema particulara;
- Unicitatea=proprietatea algoritmului care garanteaza ca prin aplicarea repetatat a unui algoritm
pentru acelasi set de date de intrare va fi acelasi set de date de iesire;
- Finitudine=proprietate care garanteaza incheierea unui algoritm dupa un numar finit de etape;
Clasificare algoritmi:
1. Dupa metoda de proiectare/ concepere
a) Algoritm de tip BACK TRACKING-> sunt algoritmi implementati dupa metoda cautarii cu revenire,
metoda utilizata in cazul problemelor care au mai multe solutii obtinute prin cautarii repetate si eventual
reveniri in caz de nereusite.
EX: algoritm pentru iesirea dintr-un labirint(aplicatie pentru jocuri)
Algoritm pentru rezolvarea unei problem clasice privind plasarea a 8 regine pe o table de sah astfel
incat acestea sa nu se atace reciproc.
b) Divide et impera-> contine algorimti bazati pe metoda divizarii, descompunerii, metoda care pp
impartirea unei problem in subprobleme mai mici si mai usor de rezolvat, astfel incat prin compunerea
solutiilor aferente acestora se va obtine si solutia pentru metoda initiala. Algoritmii din aceasta clasa
sunt folositi pentru problem de sortarea, ordonarea elementelor unei multimi, chiar si a inregistrarii unui
tabel relational.
c) Algoritmul GREZDY- se bazeaza pe metoda opticului local care urmareste obtinerea unei solutii generate
prin iterarea uneia sau mai multor solutii particurae, acesti algoritmi sunt utilizati pt problem de
optimizare.
d) Algoritmi genetici- se bazeaza pe principiile geneticii si a selectiei naturale. Acestia formeaza o clasa
speciala se algoritmi ultilizati intr-un domeniu aparte al informaticii.
EX: domeniul inteligentei artificiale.
Acestia isi gasesc utilizarea in rezolvarea unei probleme de optimizare , control, strategie(jocuri),
modelare.

2. Dupa modalitatea de implementare:
a) Algoritmii iterative- sunt alggoritmi bazati pe structure repetitive astfel incat anumiti pasi specifici
acestora sunt executati de mai multe ori.
b) Algoritmi recursivi- intelegandu-se un algorimt care se autoapeleaza de un nr de ori, pana la obtinerea
solutiei finale. In practica si teorie au fost reevaluate si utilizate anumite metode de reprezentare a
algoritmilor, dintre acestea cele mai utilizate sunt urmatoarele:
- Pseudocodul- reprezinta un limbaj asemanator celui natural conceput in scopul dezvoltarii si
reprezentarii algoritmilor de prelucrare. Orice pseudocod este format din 2 tipuri de propozitii:
a) standard- corespunde structurilor de control si pot fi formate din urmatoarele cuvinte sau
expresii:
Start, stop.
Daca <expresie> atunci <instructiuni>
Altfel <instructiuni>
Sfarsit daca
Aceasta expresie standard descrie o structura alternative de tip if sau case.
Cat timp <expresie> executa
<instructiuni>
Sfarsit cat timp
Aceasta expresie descrie o structura repetitiva prin care setul de instructiuni va fi executat de
un nr de ori , atata timp cat expresia are valoarea logica adevarata.
b) Nestandard- contn cuvinte/expresii specifice particulare unui anumit pit de problema.
-citeste-se poate descrie atat operatia de citire de date , atat din interior cat si din
memoria externa.
-scrie
-calculeaza
-inregistreaza, etc

- Schemele logice- reprezinta o metoda de reprezentare grafica a algoritmului si sunt utilizate pt
descrierea algoritmilor simplii. O schema logica este formata dintr-un set de blocuri legate prin sageti
care descriu sensul executiei algoritmului. Principalele blocuri ultilizate intr-o schema logica:
Blocuri de inceput/sfarsit: reprezentate prin cercuri

Blocuri de decizii- reprezentate prin romburi si utilizate in seturi in care executia algoritmului
trebuie ramnificata in functie de valoare de adevar a unei expresii.
DA NU
Valorile sunt DA, NU, AD, FALS ce pot fi associate unei proprietati logice.
Conectori reprezentati prin cercuri sau prin pentagon
Acestia indica un sfarsit de pagina.
Blocuri pentru operatii de citire, atribuire-> dreptunghiuri

In practica conceperea algoritmului este realizat prin intermediul schemelor logice, datorita simplitatii acestora si a
factorilor ca o schema logica poate fi implementata direct intr-un limbaj de programare sau SGBD.

Curs 3
Metode de Programare
Se intelege un set de concept, principii, tehnici si reguli dupa care programatorii se pot ghida in scrierea sau
dezvoltarea aplicatiilor. In decursul timpului au fost elaborate o serie de metode de programare cele mai utilizate
fiind:
1. Metoda programarii structurale reprez o met utilizata in anii 70-80 in special pt dezvoltarea aplic si care se
bazeaza pe principiul divide et impera descompunerea unui prog in subprograme mai mici.
2. Metoda programarii orietata pe obiecte reprez o met util in programare incepand cu anii 90 si e folosita si in
present. Este o met care percepe un program ca pe un ansamblu de obiecte sau instante ce comunica intre
ele si participa la rezolvarea problemei initiale.
3. Metoda programarii dirijata de evenimente reprez o metoda util in rezolvarea aplic destinate sistemelor de
grupare cu interfata grafica. Conform acestei metode executia unei aplicatii poate fi direct influentata de
catre utilizatorul final prin intermediul interfatei grafice formata din ferestre si diverse controale aferente
acestora.

Metoda programarii orientate pe obiecte
Reprez met cea mai utilizata la ora actuala in dezvoltarea aplicatiilor din orice domeniu. Cnform paradicmei
obiectuale un program este perceput ca un set de obiecte ce comunica intre ele prin intermediul mesajelor .
Conceptele de baza specific acestei metode sunt urmatoarele.
- Obiectul, clasa de obiecte, abstractizarea, incapsularea, polimorfismul, mostenirea si persistenta

Obiectul reprez o struct complexa caracterizata prin identitate proprie, prin stare si prin comportament.
Identitatea reprez proprietatea unui obiect prin care acesta se deosebeste de alte obiecte. Identitatea
obiectelor se constituie de regula intr-o adresa invariabila din memorie si este complet independent de
valorile sau datele continute de obiecte.
Starea unui obiect este definite de valorile continute de acesta. Obiectele in general sunt caracterizate
printr-un set de attribute care pot detine valori de diferite tipuri.
Comportamentul descrie ceea ce sties a faca un obiect si este reprezentat printr-un set de operatii sau
metode specifice obiectului si aplicabile in general asupra atributelor detinute de acesta. In general se
considera ca starea obiectelor descrie latura statica a acestora in timp ce comportamentul reprezinta
latura functionala.
Exemplu: (Studentii facultatii prin atributele CNP, NUme, Prenume, DataNastere si metode cum ar fi
sustinere examen, participa la concursuri)

Abstractizarea reprez tehnica prin care se indentifica si se retin numai caracteristicile esentiale aferente
unui domeniu. In programa orientate pe obiecte, abstractizarea reprez tehnica principal prin care se
obtin tipuri abstracte de date.Cel mai frecvent abstractizarea este aplicata asupra obiectelor cu aceleasi
attribute si comportament obtinandu-se in final clase ca tipuri abstracte de date.

Clasa de obiecte este un tip abstract de date obtinut prin abstractizarea unor obiecte asemanatoare. In
acest fel obiectele devin instante sau realizari, valori concrete ale unor tipuri abstracte de date
desemnate prin clase. Structura unei clase este formata dintr-o denumire, un set de attribute de diferite
tipuri precum si un set de operatii specific. Atributele definite la nivelul clasei cor devein depozite pt
datele concrete detinute de obiectele clasei, iar operatiile vor fi partajate de toate obiectele acestei
clase.
In teorie dar si in practica atributele si operatiile unei clase pot fi denumite printr-un singur cuvant si
anume Acela de membri acestei clase. Membrii clasei pot viza:
1. Clasa in intregime
2. Fiecare obiect al clasei
Tipuri Comune De Operatii
In conformitate cu teoria programarii oriectata pe obiecte, clasele tr sa ofere un set minimal de operatii grupate
astfel:
- Constructori desemneaza operatiile care asigura crearea si initializarea obiectelor. Prin urmare
contructorii sunt informatii apelate in momentul instantierii unei clase.
- Destructori stergerea instantelor obiectelor unei clase
- Modificari operatiile care au drept scop modificarea sau actualizarea starii obiectelor clasei.
- Selectori operatii care redau starea unui obiect mai prcis operatii care returneaza volorile detinute de
aceste atribute.


Curs 4
Incapsularea reprezinta proprietatea obiectelor de a stoca la un loc, ca un tot unitar, atat date cat si
prelucrari ( operatii sau metode ) dintre care numai o parte este vizibila din exterior.
Principiul incapsularii impune ca toate atributele de instanta ale unei clase sau obiect sa fie innaccesibile,
invizibile din exteriorul acesteia, acesarea lor fiind totusi posibila prin intermediul unor operatii dedidate si anume:
selectori si modificatori.
In acest fel, obieectele pot fi percepute ca niste cutii negre care ascund detaliile de implementare si ofera o
interfata mai simpla pentru rezolvarea unei probleme.
Prin respectarea acestui principiu al incapsularii se asigura in plus si o securitate a datelor stocate, detinute
de obiecte impotriva modificarilor neautorizate sau accidentale.
Limbajele de programare asigura o oarecare flexibilitate in protejarea ( ascunderea ) datelor sau a membrilor
unei clase sau obiect prin intermediul unor calificatori de vizibilitate dintre care, cei mai utilizati, ar fi urmatorii:
public desemneaza un membru atribut sau operatie vizibil in exteriorul obiectului sau clasei;
private poate fi folosit pentru membrii atribute sau operatii invizibile, inaccesibile in exterior;
protected indica un membru vizibil, accesibil numai din clasele derivate (prin mostenire ) din clasa caruia acesta
ii apartine.
Mostenirea - reprezinta procesul prin care atributele si operatiile unei clase numita clasa de baza
sau superclasa sunt preluate automat de o clasa inrudita numita si subclasa sau clasa derivata.
In felul acesta, orice clasa derivata va putea fi considerata ca fiind de tipul clasei de baza (clase parinte, clase-
copil ).
O clasa derivata copil ( subclasa ) poate contine si membrii atribute sau operatii specifici, proprii, diferiti de
membrii preluati prin mostenire.
Exp: Clasa: PERSOANA
Atribute
CNP
NumePrenume
DataNasterii
Operatii
Varsta ( )
Exp 2: Clasa: ANGAJAT poate fi considerata o clasa derivata din clasa PERSOANA deoarece orice angajat
este si o persoana.
In baza relatiei de mostenire definite intre cele doua clase, angajatul va prelua automat atributele
CNP, NumePrenume si DataNasterii precum si operatia Varsta ().
In plus, acelasi angajat poate sa contina si atribute specifice Marca si Profesia, precum si operatii
precum TotalVenituri ( ).
Definirea celor doua clase se va face in felul urmator: mai intai se defineste cele treia atribute (CNP,
NumePrenume si DataNasterii ) si operatia Varsta (), dupa care se defineste clasa Angajat, ca o clasa derivata din
Persoana pentru care se vor specifica numai membrii specifici.
Relatia de mostenire poate continua la un alt nivel mult mai detaliat.
Clasa: ANGAJAT
Atributele
CNP
NumePrenume membrii mosteniti (italic)
DataNasterii
Marca
Profesia
Operatii
Varsta ( )
TotalVenituri ( )

Polimorfismul reprezinta capacitatea, proprietatea unor obiecte asemanatoare de a se comporta
diferit la primirea aceluiasi mesaj adica invocarea, apelarea aceleasi operatii, metode.
De exemplu: obiectele de tip imprimanta se vor comporta diferit la primirea mesajului, la apelarea mesajului
Tiparire in functie de obiectul pe care trebuie sa il tipareasca.
In programarea pe obiecte, polimorfismul poate fi asigurat, de regula, in general prin doua tehnici:
supraincarcare
Polimorfismul prin supraincarcare apare atunci cand in cadrul unei clase sunt definite doua sau mai multe
operatii cu aceeasi denumire dar cu parametrii diferiti.
Selectarea operatiei ce va fi executata la rularea operatiei va fi realizata automat in functie de de parametrii
sau de argumentele transmise operatiei respective
De exp: Clasa C pentru care se defneste operatia Deseneaza () cu trei parametrii Xcentru, Ycentru, Raza.
Deseneaza ( Xcentru, Ycentru, Raza )
La apelarea acestei metode, un obiect de tip C va fi desenat ( trasat ) in functie de coordonatele
centrului si raza specifica acestora.
Exp 2: Deseneaza ( x1,Y1, X2, Y2 ).
Aceasta operatie supraincarca prima operatie deoarece are aceeasi denumire.
Un obiect va fi trasat in functie de coordonatele patratului in care cercul poate fi inscris.
rescriere
Rescrierea este tehnica prin care o operatie luata prin mostenire este redefinita, rescrisa in cadrul unei clase
derivate.
! Rescrierea vizeaza numai corpul operatiei nu si antetul acesteia, adica denumirea si parametrii raman
nemodificati.
Exp 1: Se considera clasa Cerc careia ii apartie operatia Aria ( ) - operatie care va returna aria unui obiect de
tip cerc in functie de expresia Pi R^2.
Clasa Elipsa, considerata ca o clasa derivata din cerc va dispune in virtute operatiei de mostenire de
aceeasi operatie Aria ( ), care nu va mai returna valoarea corecta deoarece aria unei elipse se va calcula dupa alta
expresie Pi R1 R2. Prin urmare, respectiva operatie va trebui modificata cu aceasta expresie . In final, obiectele de
tip Cerc sau Elipsa ( orice elipsa fiind si un cerc ), aria va fi calculata diferit in functie de tipul obiectului de cerc sau
elipsa.

Exp: Polimorfism prin rescriere
prin rescriere ar fi posibil in cazul claselor Factur(clasa de baza ) si FacturaExterna ( clasa derivata ) .
operatia ce urmeaza a fi redefinita in cazul clasei copil (FacturaExterna ) ar fi opeeratia TotalValoare,
deoarece in calculul facturii externe vor fi luate in considerare si taxele vamale.

Persistenta:
reprezinta, descrie durata de viata a unui obiect in raport cu aplicatia care la creat. Mai precis, un obiect
se numeste persistent daca el supravietuieste aplicatiei pe care l-a creat.
Se mai spune ca un obiect este persistent daca starea si comportamentul sau sunt conservate intre doua
executii ale aplicatiei ( programului ).
Intrebare: Unde ar putea fi conservate obiectele astfel incat sa nu se piarda? - in memoria externa, deoarece
in memoria interna sunt acolo atata timp cat acestea sunt utilizate. Memoria externa nu este volatila.
Persistenta obietelor reprezinta obietivul major al bazelor de date orientate pe obiecte.

Exp: VB.NET

Public Class Persoana
Public CNP As String sir de caractere
Public NumePrenume As String
Public DataNastere As Date
Public Function Varsta ( AnCrt As Integer ) As Byte inplementata sub forma unei functii publice,
care are nevoie de un paramentru AnCrt, As Byte tipul returnat 0-255
Return AnCrt-Year (DataNastere) varsta AnCrt-Year ( data nasterii )
End Functionala
End Class
Public Class Student clasa derivata din persoana
Inherits Persoana definita prin iherits, orice student este de tip persoana
Pubic NrMatricol As Integer in plus, are nr matricol de tip intreg pe langa cele de la
End Class persoana

Curs 5
Limbajul Visual Basic
Caracterisitici ale limbajului Visual Basic
ofera un suport complet pentru programarea orientata pe obiecte;
limbajul ofera suport pentru aplicatiile multifirm, o aplicatie multifirm fiind o aplicatie a carei executie se
poate efectua prin mai multe procese paralele;
impune, constrange programatorii in utilizarea riguroasa a tipurilor de date. Limbajul este puternic tipizat (nu
permite utilizarea unor valori, date fara a specifica si tipul acestora);
permite tratarea structurata a erorilor printr-o structura numita TRY... CATCH ( tratarea erorilor sau
exceptilor la executia unei aplicatii );
poate fi utilzat pentru dezvoltarea aplicatiilor internet si intranet ( aplicatiile web );

Platforma.NET reprezinta o librarie de date predefinite pe care programatorii le pot utiliza fie direct ca atare
fie prin derivare in aplicatii.
Orice aplicatie formata prin Platforma.NET ( visual Basic ) poate fi rulata, executata numai in prezenta acestei
platforme (librarii).
Clasele specifice platforma.net sunt grupate pe categorii ierarhice numite si spatii de nume. In felul acesta,
identificarea unei clase va fi posibila numai prin precizarea spatiului de nume de care apartine respectiva clasa,
sintaxa: denumireSpatiuNume.denumireClasa.
Spatiul de nume radacina din libraria.net se numeste System si contine peste 100 de clase dedicate tipurilor
de date, gestionarii memoriei interne s.a.m.d plus alte cateva zeci de spatii de nume subordonate care la randul lor
vor contine alte spatii de nume de clase.
Exp 1: FORM
System.Windows.Forms.FORM
IMPORTS - prin intermediul careia vor fi importate toate clasele aferente unui spatiu de nume in
asa fel incat vor putea fi referite direct. Imports spatiuNume
System.Windows.Forms
Ex: Imports Math
System.Math
Mediul de dezvoltare Visual Studio pentru dezvoltarea apliactiilor pentru platforma.net;
instrument software care asista programatorii in dezvoltara aplicatiilor.

Structura unei aplicatii dezvoltate prin visual Basic:
Orice aplicatie Visual Basic presupune cel putin un fisier sursa adica un fisier cu extensa .VB ce contine
instructiuni specifice limbajului Visual Basic.
De cele mai multe ori, o aplicatie VB presupune mai multe fisiere, de tipuri diferite cum ar fi:
1. Fisierele sursa ( .VB ) - sunt ce mai multe;
2. Fisieresele de asistenta ( de tip HELP );
3. Fisiere de tip Baza de data;
4. Fisiere de tip HTML, ASPX ( ASP );

Gestionarea acestor fisiere este efectuata automat de catre mediul de dezvoltare Visual Studio, astfel:
la crearea unei aplicatii VB va defini si un folder aferent aplicatiei, folder ce va fi compus din unul sau mai
multe subfoldere aferente proiectelor care formeaza aplicatia ( cand este una complexa; de cele mai multe ori o
aplicatie este formata dintr-un sigur proiect ).

Din pct de vedere conceptual structura unui fisier sursa este format din 3 nivele:
primul nivel, zona de nivel 0, este denumita zona/nivelul fisier si corespunde intregului fisier; in cadrul acestei
zone pot fi definite numai instructiuni declarative, din care numai doua sunt importante si anume: instructiunea
Imports si instructiunea prin care se defineste o clasa (Class End Class );
al doilea nivel este zona de clasa ( sunt admise doar doua tipuri de instructiuni declarative: 1. instructiuni prin
care se definesc atributele clasei; 2. intructiuni prin care de definesc operatiile, metodele clasei )
al treilea nivel, nivelul de metoda, operatie zona din interiorul unei operatii sau metode; se mai numeste si
corpul unei operatii, metode; la acest nivel, sunt permise atat instructiuni declarative (variabiele de memorie,
constante ) precum si instructiuni executabile cum ar fi instructiunile if, for, while s.a.m.d.. Aceasta zona este singura
care permite executarea operatiilor.

Curs 6,7
Tipuri de date in VBN- un tip de date decrie un domeniu de valori, precum si operatiile ce se pot efectua asupra
acestora. Limbajul VBN ofera mai multe tipuri de date commune platformei .NET. categorii:
* tipuri de date valoare;- numite si tip primitive sau elementar, contin o valoare (chiar si implicita), pot fi
accesate direct(nu prin referinta), nu pot fi derivate in alte tipuri si sunt pastrate intr-o zona speciala din memoria
interna numita Stiva sau Stack. Principalele tipuri valoare sunt: - Boolean-> sun pastrate pe 4 octeti si accepta doar 2
valori (true sau false). Ex: valoare implicita=false.
-date-> accepta pastrarea valorilor tip data calendaristica, pastrate pe 8 octeti. Interval : 0,1-ianuarie-1 si 31-
decembrie-9999 (valoare implicita 1-ianuarie-0)
-byte-> permite masurarea valorilor intregi din intervalul 0-255
-integer-> tip numeric cu valori intregi
-long-> 8 octeti, valoare implicita=0, domeniul > domeniul integer
-decimal-> tip numeric in virgule fixa pastrat pe 12 octeti, lucreaza cu 28 zecimale, domeniul este mare si este
recomandat pentru calculele economice
-single-> tipuri numerice care permit stocarea valorilor zecimale, mobila (valorile vor putea genera erori la rotunjire)
- double-> idem single
* Tipuri de date referinte
-o data de tip referinta reprezinta defapt o adresa din memorie (pointer). O valoare de tip referinta contine adresa
din memorie la care este pastrata valoarea propriu zisa. Spre deosebire de tipurile valoare, tipurile referinta nu au
valori implicite si sunt pastrate intr-o alta zona de memorie numita HEAP (zona gramada). Tipuri:
- object-> tipul de date este implicit in VBN
-string-> tipul de date este destinat pastrarii valorilor de tip sir de caractere, poate contine pana la 2 miliarde de
coduri unicod. (10+2*nr de caractere). String este definit ca o clasa in platform . NET, avand atributii si operatii
proprii
Obs: valorile de tip object ofera valori concrete .., au dimensiuni variabile, memorate in 4 octeti.
Conversia tipurilor de date: transformarea unei valori dintr-un tip de date in altul. Tipuri de conversii:
-conversii cu extinderea domeniului, este conversia unei valori intr-un tip cu domeniul mai mare decat cel initial
Exemple:
1) Conversia unei valori de tip byte in oricare din tipurile numerice integer, long, decimal etc.
2) Conversia unei valori de tip decimal in single sau double
3) Conversia unui obiect al clasei derivate int ipul precizat de clasa de baza. Ex: conversia unei valori de tip
student intr-o valoare de tip persoana.
obs: conversia unei valori de orice tip in tipul object este considerate conversie cu extinderea domeniului. Conversia
cu extinderea domeniului este considerate implicita si este posibila intotdeauna, de regula fiind efectuata fara
pierderi de date
-conversie cu restrangere. Operatia de schimbare a unei valori intr-un tip cu domeniul mai mic decat cel initial. Ex:
conversia unei valori de tip long in tipul byte
Obs: conversia cu restrangere domeniului nu poate fi executata intotdeauna, deoarece poate duce la trunchierea
datelor. Se recomanda utilizarea cu prudenta a acestei operatii si doar atunci cand exista certitudinea obtinerii unui
rezultat correct.
Limbajul VBN ofera mai multe functii destinate conversiei, dintre care cea mai utilizata ar fi functia CTYPE cu 2
parametrii: valoarea in care va fi convertita si tipul de date al destinatiei.
Exemplu: prin expresia CTYPE (1000,string) va rezulta sirul de caractere 1000 ca sir de caractere
STRUCTURA LEXICALA A UNUI PROGRAM
Din punct de vedere lexical, un program VBN este compus din cuvinte , anumite elemente de programare, grupate
in 10 categorii:
1. Comentarii reprezinta o nota explicative inserata in program care insa nu areun effect la executia
programului. Mai prcis, comentariile sunt ignorate la executia unui program. In VBN, comentariile pot fi
definite la inceputul sau la sfarsitul unui rand prin intermediul caracterului . Comentariile sunt utilizate
doar de programatori pentru a fi mai usor de inteles de catre oameni.
2. Cuvinte cheie sunt cuvinte rezervate care formeaza vocabularul limbajului. In VBN , asemenea cuvinte sunt
: and, byte, when, while. Acestea nu pot fi utilizate de programator pentru a numi propriile elemente de
programare cum ar fi clase, denumiri de clase, denumiri de variabile etc
3. Identificatori(denumiri) reprezinta denumiri acordate de programatori propriilor elemente de
programare. In VBN identificatorii trebuie sa respecte urmatoarele reguli de sintaxa:
A) Identificatorii trebuie sa fie diferiti de cuvintele cheie
B) Trebuie sa inceapa cu o litera sau cu _
C) In cazul in care identificatorii incep cu _, trebuie sa contina macar o litera sau o cifra. Nu sunt acceptate
alte caractere special inafara de _.
Exemplu: a123,_2,_ab,_sa_c2,etc
Obs: limbajul VBN nu face deosebiri intre minuscule si majuscule=> aBc=abc=AbC=ABC-
Obs: in practica au fost definite mai multe conversii de notare a identificatorii dintre care:
- Referitor la denumirile claselor: cuvinte diferite din denumirea unei clase vor incepe cu majuscula. Ex:
FurnizorExter; ContCurent
- Denumirea unei variabile va incepe cu o litera mica dar urmatoarele cuvinte vor incepe cu majuscula. Ex:
sirDeCaractere; numarMatricol.
- Identificarea metodelor unei clase vor..
- Atributele unei clase vor fi denumite respectand regula 21
- Referitor la constante: denumirile lor se scriu cu majuscule iar in cazul in care apar mai multe cuvinte vor fi
separate prin _. Ex:RATA_DOBANDA
4. Literali (valori)-Valori de un anumit tip. In VB, literalii de tip sir sunt incadraaati intre , iar anumite date
calendaristice sunt incadrate intre #.
Exemplu: 120, 120, #1/1/2013#
5. Separatori- sunt caractere speciale utilizate pentru a delimita unitatile lexicale ale unui program
Exemplu: separatori VB: ()- folosite pentru denumirile metodelor unei clase sau la denumirea unor tabele sau
obiecte;
.- folosit pentru separarea unui obiect de membrii acestuia;
,- folosit pentru a delimita elementele unei multimi;
-- folosit pentru a scrcie o instructiune pe mai multe randuri;
:- folosit pentru a scrie mai multe instructiuni pe un singur rand
6. Variabile de memorie- reprezinta o zona din memoria interna in care este stocata o valoare de un anumit
tip. Orice variabila este descrisa printr-un identificator sau o denumire, o valoare existenta la un moment dat
si un tip de date afferent. Valoarea variabilei poate fi modificata pe parcursul executiei programului. Pentru a
opera o variabila de memorie in VB.net trebuie executate urmatoarele operatii:
a) Definirea variabilei, ocazie cu care vor fi precizate urmatoarele elemente:
Identificatorul sau denumirea variabilei, tipul acesteia si optional valoarea initiala. In plus la declararea
variabilei trebuie avute in vedere si alte caracteristici cum ar fi durata de viata a variabilei (durata de
viata= timpul necesar executiei structurii in care a fost definita variabila), scopul varibilei adica zonele din
program, variabila poate fi direct accesata, nivelul de acces reprezinta posibilitatea de acces a variabilei
dinafara regiunii, zonei in care aceasta a fost declarata.
Operatia de initializare-> operatia in care variabilei i se atribuie o valoare initiala. Aceasta operatie de
initializare este optionala in cazul variabilelor de tip valoare (deoarece aceste variabile st initializae
automat cu valoarea implicita specifica tipului). In cauzul variabilelor de tip referinta initializarea va
trebui facuta explicit de catre utilizator (new).
In Visual Basic definirea si chiar initializarea variabilelor se pot face prin intermediul instructiunii DIM a carei
sintaxa simplificata :
DIM<numeVariabila> [As<tipData>][=<valoareInitiala>+ expresiile sunt clauzele scrise intre *+ sunt
optionale.
numeVaiabila= denumirea sau identificatorul variabilei; tipData=
clauza prin care se explica tipul variabilei, daca nu precizam tipul de data aceasta va fi implicit de tip
=valoareInitiala=cu o anumita valoare ;
=simbolizeza faptul ca o instructiune dim poate defini mai multe variabile separate prin virgula
Exemplu:
Dim nrIntreg As Integer=100 declarare si initializare
Dim x, y AsSingle ambele variabile sunt de tipul Single
Dim sirCaractere As String=abcdef=> caractere care formeaza siruri
Dim numar1 As Byte=1, numar2 As Integer, ziua As Date=> definite 3 variabile initializate cu valoare 1, cu valoarea 0,
valoare implicita tipului date;
7. Constante de memorie;
CONSTANTELE descriu zone din memorie in care st pastrate valori de un anumit tip cu deosebirea ca
constanta nu accepta modificarea valorii in timpul executiei aplicatiei
Sintaxa: Const <numeConstanta> *As <tipData>+=<valoare>
Exemplu:
Const PLAFON_MIN=1000304/11/2013#, tva As Decimal=0.24
Const DATA_CRT As DATE=#04/11/2013#, tva As Decimal=0.24

8. Operatori si expresii; operatorul reprezinta un anumit element ce exercita o anumit operati asupra unuia
sau mai multor operanzi. O expresie este formata din cel putin un operant si un operator.in general operanzii
unei expresii pot fi variabile de memorie, constante, literali, functii VBN, atribuite sau operatii care
returneaza valori specifice unui obiect etc.operatorii limbajului VBN st clasificati in urmatoarele categorii
- Operatori aritmetici destinati operatiilor aritmetice elementare (+ ca operatori de adunare sau ca operatori
pentru semn situatie in care vorbim de operatori unari, - operatori pentru scadere dar si operator unar(de
semne) pentru a desemna o valoare negativa, * operator folosit pentru inmultire, / operator pentru
impartire, / operator pentru impartire intreaga si returneaza partea intreaga a impartirii a unor 2 numere, ^
ridicarea la putere, mod returneaza restul impartirii a doua numere)
- Operatorii de atribuire sunt operatorii folositi pentru a seta o valoare unui anumit operant, variabila,
constanta etc . cel mai utilizat operator de atribuire este =, existand si operatorii derivati din acesta +=, -=, *=
etc.
Exemple: Dim total As integer
Total=5
Total+=10 echivalent cu total=total+10 (este un operator de inclementare respectiv de crementare)
Total-=5 echivalent cu total=total-5 (operatie de decrementare)
- Operatori de comparare sunt operatori care returneaza o valoare boleana in functie de rezultatul
compararii. (<, <=, >, >=, =, <> , is- operator de tip referinta, isNot, Like- operator folosit pentru sir de
caractere)
- Operatorii de concatenare st operatorii pentru a compune 2 sau mai multe siruri de caractere
+ va efectua adunare atunci cand unul dintre operanti este numeric,
& garanteaza obtinerea unui sir concatenat chiar daca unul dintre operanzi sau chiar amandoi nu sunt de tip
String, operatorul & converteste operanzii diferiti de string la tipul string
Exemple: MsgBox (abc + d)-> afiseaza abcd
MsgBox (12 + 3)-> afiseaza 15
MsgBox (abc + 3)-> afiseaza eroare
MsgBox (abc & 3)-> afiseaza abc3
Exemple: MsgBox 2>1 -> va afisa TRUE
MsgBox (abcd like ab?d) -> va afisa TRUE
MsgBox (abcdfgh like a*) -> returneaza TRUE
- Operatorii logici sunt operatorii care pot fi folositi in expresii logice:
AND este si-ul logic , va returna valoarea true atunci cand ambii operanzi sunt adevarati si false in caz contrar.
OR- este sau-ul logic, returneaza true atunci cand cel putin un operant este adevarat si fals in caz contrar.
NOT- este negatia logica
Exemple:
MsgBox (2+2=4)-> afiseaza true
MsgBox ((2>1) AND (4>1))-> afiseaza true
MsgBox (aB=ab)-> afiseaza false
- Alti operatorii: ADDRESSOF, GETTYPE, TYPEOF. IN SITUATIA IN CARE O EXPRESIE CONTINE mai multi
operatori se pune problema ordinii in care acestia sunt executati. Aceasta ordine poate fi una standard
specifica limbajului, fie o ordine definita de programatori cu ajutorul (). Operatorii din VBN au urmatoare
ordine : in primul rand st executati operatorii aritmetici si de concatenare (^,+,-,*,/,\,mod,+,-,&), a doua
categorie in ordine sunt dati de operatorii de comparare iar apoi de operatorii logici (not, and, or).
- Exemplu: x=5+2*3=11 sau x=(5+2)*3=21
9. Instructiuni si functii intrinseci proprii VBN- atat instructiunile cat si functiile reprezinta elementele lexicale
care descriu operatiile ce vor fi executate de program. Spre deosebire de instructiuni finctiile vor returna
mereu o valoare, motiv pentru care functiile pot fi utilizate si ca operanti in expresii.
10. Procedure si functii de programare ca metode/operatii la nivelul unor clase
Curs 8
Instructiuni din VB.net st grupate in instructiuni declarative- st cele prin care se definesc alte elemente de
programare (variabile, constante clase). Cele mai importante instructiuni declarative st Class- prin care definim o
clasa;
Dim si Const- prin care definim variabile respectiv constante;
Sub si Function- prin care vom implementa metodele unei clase;
si instructiuni executabile- st instructiunile care efectueaza anumite operatii. Din aceasta categorie cele mai
importante sunt instructiunile aferente structurilor de control si anume: Structuri alternative de tip IF , CASE
respectiv instructiuni repetitive de tip FOR, WHILE, DO.
Call- se lanseaza in exxecutie o procedura
End- incheie programul
Imports se intrerupe executia programului.
FUNCTII- functiile limbajului st numite si functii intrinseci sunt grupate in urmatoarele categorii:
Functii pentru conersii (CTYPE- permite conversia unei valori dintr-un tp intr-altul)
Functii pentru operatii cu siruri de caractere (MID, LEFT, LCASE, UCASE, TRIM etc.)- aceste functii insa pot fi
inlocuite cu metrodele clasei string (INDEXOF-RETURNEAZA POZITI UNUI CARACTER sintr-un SIR DE
CARACTERE, REPLASE- inlocuieste un subsir cu un altul, SUBSTRING-extrage un nr de caractere dintr-un sir de
caractere, TOLOWER-converteste string in minuscule, TOUPPER- converteste string in majuscule, TRIM-
elimina spatiile)
Functii pentru date calendaristice (DATEADD, DAY, MONTH, YEAR, etc)- se recomanda inlocuirea acestei
functii cu metodele clasei DATE (ADDDAYS, ADDMONTHS, ADDYEARS, MONTH, YEAR)
Functii pentru validare (ISARRAY, ISDATE etc)
Functii pentru interactiunea cu utilizatorul (INPUTBOX-functia care afiseaza o fereastra de dialog in care
utilizatorul poate introduce o valoare; MSGBOX-permite afisarea unui mesaj intr-o fereastra de dialog ).
PROGRAMAREA ORIENTATE PE OBIECTE IN VB.NET
Limbajul VBN permite definirea unor clase diferite de cele intrinseci numite si CLASE UTILIZATOR. O clas
utilizator este implementata intr-un fisier sursa numit si FISIER DE CLASA- fisier cu extensia VB care contine
declaratia unei/unor clase. Adaugarea unei clase intr-o aplicatie se poate face in mai multe variante (din meniu
selectam PROJECTsi suboptiunea ADDCLASS apoi in fereastra ADD NEW ITEM selectam optiunea class, iar in rubrica
Name specificam denumirea clasei, apoi actionam butonul ADD si va afisa o fereastra cu antetul si subsolul clasei.).
Definirea unei clase este posibila doar in zona fisier sau clasa dupa urmatoare sintaxa:
[acces] [Partial] Class nume Clasa
[Inherits numeClasaBaza]
[instructiuni]
End Class
Prin acces se precizeaza calificatorul (public- este vizibil de oriunde din aplicatie, privat-invizibila dinafara
fiesierului sursa, friend-vizibila doar din interiorul proiectului din care a fost facuta clasa) de vizibilitate al
clasei.
Clauza partial este o clauza partiala care indica o clasa definita incomplet in fisierul curent. Celelalte parti ale
clasei vor fi definite in fisiere diferite. O intalnim in clasele aferente Formularelor.
Nume clasa- identificatorul clasei.
Inherits numeClasaBaza -este o instructiune optionala, instructiunea prin intermediul careia se declara
relatia de mostenire in raport cu o super clasa. Aceasta instructiune inherits daca este prezenta trebuie
definita pe prima linie din structurra clasei si denota o subclasa.
Instructiuni- prin care st definiti membrii clasei.
End class- eticheta de sfarsit.
Utilizarea unei clase presupune instantierea accesteia, adica definirea de obiecte de tipul clasei
respective. Instantierea unei clase presupune parcurgerea urmatoarelor etape:
1) Definirea clasei
EXEMPLU:
Public Class Persoana
.
End Class

2) Initializarea variabilei cu ajutorul operatorului NEW, apoi se pot apela atributele obiectului si metodele lui
EXEMPLU: Utilizarea clasei (instantiere) varianta 1
Dim Ionescu As Persoana
Ionescu=New Persoana
SAU
Dim Ionescu As Persoana = New Persoana
ATRIBUTELE- mai sunt numite si variabile membru sau campuri daca aceste atribute vor
contine dupainstantiere si varoli concrete.
Sintaxa dupa care se poate defini un atribut la nivelul unei clase:
[acces][ Shared] [ReadOnly][Dim]listaAtribute
[acces]-nivelul de vizibilitate al atributului. Prezenta unui calificator de vizibilitate exclude prezenta lui Dim
deoarele prim Dim se definesc doar atributele locale, cele Private.
[ Shared]-clauza optionala, care indica un atribut de clasa si nu de instanta, adica un atribut care are o singura
valoare valabila pentru toate instantele clasei.
[ReadOnly]-indica un atribut a carei valoare nu poate fi modificata in timpul executiei programului.
[Dim]-optional , care exclude orice calificator de vizibilitate
listaAtribute- va contine o lista de atribute separate prin virgula pentru care se precizeaza denumirea sau
identificatorul si tipul eventual si o valoare initiala.
Accesarea atributelor la nivelul unui obiect sau clase se va face diferit in fucntie de tipul atributelor
-pentru atributele de instanta accesarea se va face dupa sintaxa: numeObiect.numeAtribut (atribut de instanta)
sau numeClasa.numeAtribut (atribut partajat).
Exemplu: Definirea clasei
Public Class Persoana
Dim CNP As String echivalent cu Private CNP As String
Public NumePrenume As String
Private DataNasterii As Date
Public Shared TotalPersoane As Long
End Class
Instantierea clasei:
Dim oPersoana As Persoana
oPersoana=NewPersoana
Accesarea atributelor:
oPersoana.CNP=113240932 Eroare, atributul nu poate fi accesat!
oPersoana.NumePrenume=Ionescu Viorel
Persoana.TotalPersoane=+1
Daca pentru un obiect se omite etapa de initializare , aceea cu operatorul NEW, obiectul respectiv mai precis
variabila de memorie va contine o referinta vida nothing.
METODE- metodele unei clase pot fi implementate prin proceduri sau functii. Procedurile sunt recunoscute dupa
SUB, iar functiile dupa FUNCTION. Diferenta dintre functie sau procedura este una singura, si anume metoda de tip
functie va returna mereu o valoare la incheierea executiei sale. Metodele de tip functie pot fi utiliazte si in costruirea
unei expresii ca operanzi, dar nu si operatori
Sintaxele celor 2 structuri proceduri, functii sunt urmatoarele:
SINTAXA PROCEDURA:
[acces][modificator][Share]Sub nume ([listaParametrii])[Handles listaEvenimente]
[instructiuni1]
[Exist Sub]
[Return]
[instructiuni 2]
End Sub
SINTAXA FUNCTIE:
[acces][modificator][Share] Function nume ([listaParametrii]) As tipReturnat [Handles listaEvenimente]
[instructiuni1]
[Exist Function]
[Return [expresie]]
[instructiuni 2]
End Function
-prima linie se mai numeste si antet, iar ultima linie se numeste eticheta de sfarsit, iar mijlocul se numeste corpul
metodei al procedurii sau al functiei.
[acces]- daca nu precizam acces metoda va fi tratata implicit ca una publica
[modificator]- se precizeaza o caracteristica aparte a metodei prin:
overloads- indica o metoda spraincarcata, o metoda care are aceeasi denumire o alta
metoda din aceeasi clasa, dar care difera de aceasta prin parametrii, clauza implicita;
-overrides- indica o metoda care rescrie o metoda cu acelasi antet definita insa in SuperClass.
-overridable- indica o metoda care poate fi rescrisa, redefinita la nivelul unei clase derivate,
acest modificator il folosim doar in cadrul unei clase care va fi specializat in clasele de baza. Modificatorul acesta nu
este implicit.
-notoverridable- nu poate fi definita intr-o clasa derivata
-mustoverride- indica o metda al carui corp va trebui definit in clasele derivate din clasa
curenta
[Shared]- definim o clauza, o metoda de tip clasa;
[listaParametrii]-pot fi precizati parametrii ale caror valori vor fi utilizate la executia metodei , precizeaza tipul valorii
returnate de functie

[handles lista evenimente]- permite precizarea evenimentelor la a caror aparitie va fi lansat in executie automat
respectiva ;
[instructiuni1]- apelam la instructiuni exeutabile,
[exit sub, function]- incheie neconditionat executia metodei, astfel toate instructiunile urmatoare nu vor fi
executate;
[return]- idem exit sub doar ca in cadrul unei functii prin return se poate preciza si valoarea care va fi returnata de
functie
Curs 9
Executia unei metode este posibila numai prin apelarea explicita a ei, care apelare se face direct prin
denumirea metodei. La apelarea unei metode vor trebui precizate si valorile aferente parametrilor specifici metodei
respective. Aceste argumente pot fi transmise fie prin sau ca valori concrete sau literale, fie sub forma unor expresii
care vor fi evaluate automat de catre compilator. transmiterea valorilor aferente unor parametrii se poate face in VB
prin 2 metode:
Transmiterea prin valoare- este metoda implicita si presupune sau este posibila atunci cand
denumirea parametrului este prefixat cu cuvantul rezervat ByVal. In acest caz parametrul va fi
initializat nu cu valoarea initiala ci cu o copie a acesteia, astfel incat orice modificare efectuata
asupra parametrului in metoda apelata se va efectua asupra copiei si nu asupra valorii initiale care va
ramane nemodificata
Transmiterea prin referinta este posibila at cand parametrii sunt prefixati cu cuvantul rezervat
ByRef, caz in care parametrului respectiv ii va fi atribuita direct adresa la care este stocata(in
memorie) valoarea initiala, caz in care orice modificare efectuata asupra parametrului in metoda
apelata va afecta si valoarea initiala.
Exp: Private Sub A(ByVal as integer)
P+=1 (p=p+1)
End Sub
Private Sub B(ByRef p as integer)
P+=1
End sub
......
Dim v as integer=10
A(v)
Msgbox(v) *afiseaza 10(V ramane nemodifica!!)
B(v)
Msgbox(v) *afiseaza 11(v este modificat!!!!)

Limbajul VB.Net permite si apelarea recursiva al unei metode(sau al metodelor in general, fie proceduri fie
functii), prin apel recursiv intelegand ca o metoda fie procedura fie functie se autoapeleaza.
Exp: sub A()
.....
End Sub

Exemple2: function factorial(ByVal n as double)
If n =0 then
Return 1
Else
Return n*factorial (n-1)

Metodele reprezinta singurele zone dintr-un program in care pot fi utilizate instructiuni utilizabile(ex: if, for).
O metoda poate accesa orice atribut al clasei respective indiferent de clasa acesteia si orice alta metoda a
aceleiasi clase
Vor fi valabile(vor exista) numai pe perioada necesara de executie a metodei in care a fost definita.

Structuri fundamentale de control
Bohm +Jacopini(1966)
1. Structura liniara este considerata ca fiind cea mai simpla si presupune executia unui program linii cu linii,
instructiune cu instructiune, intr-un singur sens, incepand cu prima si terminand cu ultima. In Vb este
considerata implicita.
Exemplu: Dim x AS Integer
X=10
X=x+1
MsgBox(x)
2. Structura alternativa este cea prin care executia programului se poate ramifica(poate urma cai diferite) in
functie de valoarea de adevar a unei conditii. In Vb structura alternativa poate fi implementata prim 3
instructiuni:
- IF este instructiunea prin care se poate defini o structura alternativa simpla. Are urm sintaxa simpla:
Sintaxa: if conditie1 THEN
[instructiune1]
[ElseIf conditie2 Then]
[instructiune 2]
[Else
[instructiune3]]
endIf
Daca expresia conditie 1 are val adevarat atunci se va executa blocul de instructiuni 1, altfel blocul de
instructiuni 2, dar daca niciuna nu este adevarata se va executa blocul n dupa EndIf.
Sintaxa2: If conditie Then [instructiune 1][Else[instructiune2]]
Exemplu:
If Ctype(txtNota.Text,integer)<5 Then
MsgBox(Nepromovat)
Else
MsgBox(Promovat)
End If
- Select case este o structura prin care putem defini o structura alternativa multipla
Sintaxa: Select [Case] expresie
[Case listaExpresii1
[instructiuni]]
[Case listaExpresii2]
.....
[Case Else
[instructiuni N]
End Select
Daca expresia din select case=lista expresii1 va fi executat blocul1, daca este egal cu listaexpresii2 va fi
executat blocul 2. In caz contrar va fi executat blocul de dupa case else.
Exemplu CASE:
Dim d As String = InputBox(Tastati tip cont:)
Select Case d. ToUpper() metoda a tipului string care converteste caracterele
Case A in majuscule
MsgBox(Cont de activ)
Case P
MsgBox(Cont de pasiv)
Case B
MsgBox(Cont bifunctional)
Case Else
MsgBox(Cont eronat!)
End Select

- Try
3. Structura repetitiva este structura care asigura executia unui bloc de instructiunii. Ciclul repetitiv va fi
stabilit in functie de valoarea de adevar a unei functii.
Daca aceasta conditie este precizata si evaluata la inceput va fi numita structura repetitiva conditionata
anterior. Daca se afla la sfarsitul blocului repetitiv=>conditionata posterior.
Sintaxa While: instructiunea 1 va fi executata in mod repetat atata timp cat conditia din While este
adevarata. In prezenta Exit While blocul de instructiuni 2 nu va mai fi executat si continua intructiunea 1
dupa End While.
While conditie
[instructiunea1]
[exit While]
[instructiunea2]
End While

Exemplu: Dim i AS Integer=1
while i<=10
msgBox(interatia & i)
i=i+1
End While *10iteratii
A doua instructiune repetitiva For...Next este la fel ca for dar este cu contor.
Sintaxa:
For contor [As tipData]=start To final [Step pas]
[instriuni1]
[Exist for ]
[Instriuctiuni2
Next contor
Blocul de instructiuni 1 va fi executat pana cand variabila contor este mai mica sau egala cu expresia
finala (valoarea finala). Implicit prin instructiunea next este incrementata automat. Incrementarea este facuta
cu valoarea 1. In crementarea cu o alta valoare ( chiar negativa ) aceasta valare va fi precizata prin Step pas
( implicit este 1 ).
Exemplu:
Dim x As Integer
For x=0 To 2
Msg Box (x)
Next
MsgBox (x) ' Afiseaza 3 (iteratii)

Ultimea instructiune Do .. Loop
Sintaxe:
anterioara:
Do {While|Until}conditie
..
Loop
posterioara:
Do
..
Loop {While|Until}conditie

Curs 10
Tipuri de metode in VBN
Limbajul permite definirea unei metode in oricare din cele 4categorii. Metodele de tip constructor sunt
metodele destinate instantierii clasei, iar in VB.NET aceste metode sunt sau pot fi definite sub forma unei proceduri
cu numele rezervat NEW.
Constructori: - o clasa poate avea 0 sau n metode de tip constructor supraincarcati. Constructorii
sunt proceduri cu denumirea NEW dar care se vor diferii pein parametrii. In situatia in care
programatorul nu defineste niciun constructor pt o clasa, compilatorul va genera automat un
constructor implicit in momentul compilarii aplicatiei.
Constructorii unei clase sunt apelati automat in momentul initializarii unui obiect aferent clasei
respective, mai precis in momentul initializarii unei variabile cu operatorul NEW.
Ex: Sub NEW()
....
End Sub
Ex2: Dim oPersoana AS Persoana
oPersoana =NEW Persoana()
=> se apeleaza la unul din constructorii definiti anterior. Utilizarea constructorilor in VB.NET este
optionala.
Destructori sunt metodele invocate in momentul eliminarii sau stergerii unei instante, obiect din
memorie.
Limbajul VB.NET nu ofera posibilitatea definirii unor constructori expliciti deoarece dezalocarea sau
eliberarea memoriei a resurselor ocupate de un obiect reprezinta o operatie ce cade in sarcina
sistemului si este de fapt realizata de acesta prin intermediul unui instrument softwear care
reprezinta o mini aplicatie a lui GARBAGE COLLECTOR.
In Vb.NET eliminarea unui obiect din memorie reprezinta o operatie care se face in mod normal de
catre sistem, programatorului revenindu-i unica sarcina, aceea de a-i atribui obiectului(variabilei de
memorie) a valorii, a constantei NOTHING. At cand unui obiect ii este atrubuita aceasta valooare,
zonele ocupate de acest obiect vor fi eliberate prin GARBAGE COLLECTOR.
Limbajul VB.NET ofera o metoda rezervata numita FINALIZE care poate fi utilizata la nivelul unei
clase cu rol sau in scop de destructor. Apelarea la aceasta metoda este optionala si revine strict
programatorului.
Selectorii si modificatorii Limbajul VB.NET ofera o structura proprie si speciala dedicata selectarii si
modificarii atributelor unui obiect, structura recunoscuta dupa denumirea PROPERTY.
Sintaxa acestei structuri este urm:
[acces][ReadOnly/WriteOnly] Property nume () [As tipRetturnat]
[access] Get
[insructiuni 1]
End Get

[acces] Set (ByVal valoare As tipDate)
[instructiuni2]
End Set
End Property
Orice structura property contine 2sectiuni, cel putin una dintre ele fiind obligatorii:
- Get reprezinta sectiunea sau zona din structura property care este echivalenta cu un selector
deoarece returneaza valoarea unui atribut
- Set joaca rol de modificator, deoarece prin intermediul ei structura property va putea actualiza
valoarea aceluiasi atribut(de regula)
- Prin clausa acces se specifica nivelul de vizibilitate prin private public protect
- readOnly numai rol de citire de selector si nu mai este permisa sectiunea SET
Daca alegem WriteOnly va fi permisa numai sectiunea SET
- De regula sectiunea GET contine instructiunea prin care se returneaza valoarea unui atribut.
- Sectiunea SET va contine instructiunea prin care se atribuie valoarea precizata prin parametrul
cu aceasta denumire aceluiasi atribut al clasei. In plus sectiunea SET poate sa contina si
instructiuni prin care se defineste o anumita conditie de validare astfel incat atributul vizat de
proprietate nu va contine valori considerate eronate.
Reguli
1. Toate atributele unei clase vor trebui definite cu Private conform principiului incapsularii;
2. Pentru fiecare atribut local se poate defini o structura de tip Property care de regula va avea o
denumire asemanatoare dar nu si identica cu cea a atrubutului citit sau actualizat(vizat) de catre
proprietate.
3. Tipul valorii returnat de Get trebuie sa fie identic cu tipul de date din Set intrucat o proprietate
opereaza pe un singur atribut.
Ex: Public Class Persoana
Private m_CNP As string, m_DataNasterii As Date, m_NumePrenume As String
Public Property CNP() As String
Get
Return m_CNP
End Get
Set(value As String)
m_CNP=value
End Set
End Property
Public Property DataNasterii() As Date
Get
Return m_DataNasterii
End Get
Set(value As Date)
If value<#01/01/1900# Then
MsgBox(data eronata!, MsgBoxstyle.critical)
Else
m_DataNasterii=value
end If
end Set
end Property
Public Property NumePrenume() As string
Get
Return m_NumePrenume
End Get
Set(ByVal value As String)
If value= then
msgBox (Nume eronat !, MsgBoxStyle.Critical)
else
m_NumePrenume=value
End If
End Set
End Property
Utilizare in program:
Dim ionescu as persoana=new persoana()
Ionescu.CNP=11122333...
Ionescu.NumePrenume=Ionescu Viorel
Ionescu.DataNasterii=#12/11/2000#
MsgBox(Ionescu.NumePrenume)
Utilizarea structurilor property este incurajata din cel putin 2 motive:
1. Aceste structuri asigura un acces controlat al datelor sau asupra datelor stocate de un obiect
2. Aceleasi structuri property permit definirea si implementarea conditiilor de validare necesare sau impuse de
atributele unei clase.
Curs 13
Prin eroare se intelege o instructiune sau un set de instructiuni gresite care genereaza rezultate incorecte sau chiar
intreruperea executiei aplicatiei. Procesul prin care sunt identificate si remediate erorile unui program poarta
denumire de depanare. Erorile posibile pot fi grupate in trei categorii :erori de sintaxa, erori la executie si erori de
logica.
Erorile de sintaxa contin erorile cauzate de nerespectarea regulilor de sintaxa specifice limbajului. Aceste erori sunt
semnalate la compilarea aplicatiei si fac imposibila generarea fisierelor executabile; erorile sunt semnalate inca din
momentul scrierii codului error list. Remedierea erorilor de sintaxa presupune rescrierea codului in conformitate
cu regulile de sintaxa specifice limbajului.
Erorile la executie contin erorile care apar abia in timpul executiei aplicatiei, ele nefiind semnalate la compilare
deoarece respecta regulile de sintaxa. In general, erorile la executie conduc la intreruperea executiei aplicatiei si
afisarea unui mesaj de eroare . Cele mai frecvente erori la executie intalnite in programare ar fi urmatoarele :
- accesarea unei proprietati/metode aferente unui obiect neinitializat remedierea erorii presupune initializarea
variabilei
- depasirea limitei unei colectii sau al unui tablou : remedierea presupune rescrierea instructiunilor respective sau
chiar includerea instructiunilor care au generat eroarea intr un bloc TRY
dim tablou(1) as integer
tablou(0) = 10 ; tablou (1) = 20; tablou (2) = 30
- utilizarea in expresii a unor date nepotrivite ca tipuri
Dim tva as double
Tva = textbox.text*0.24
- depasirea domeniului aferent unui tip de date

Erorile de logica conduc la obtinerea unor rezultate neasteptate, eronate, contradictorii si sunt generate de logica
defectuasa a programatorului ; nu provoaca intreruperea programului de regula, motiv pt care sunt si mai dificil de
depistat si de remediat.
- omiterea unor elemente ale unui tablou sau colectii
Dim tablou(2) as integer, suma elemente as integer
..
For I as integer =1 to tablou.getupperbound(0)
Suma elemente = sumaelemente+tablou(i)
Next

- definirea unui ciclu infinit
Dim tablou(2) as integer, total as integer, I as integer

I = 0
While I <= tablou.getupperbound(0)
Total=total+tablou(0)
End while

- ignorarea precedentei operatorilor

Function media(x1 as double, x2 as double) as double
Return x1+x2/2
End function

Tratarea exceptiilor prin exceptie se intelege orice comportament neobinuit, neasteptat al aplicatiei generat fie de
catre aplicatie, fie de catre sistemul prin care se executa aplicatia.

Exceptiile .net = clase derivate din system.exception
Proprietati utile : message contine o descriere, un mesaj descriptiv aferent erorii , source

TRY
[instructiuni]
[exit try]
[catch] [exceptie [as tipexceptie]]
[instructiuni]
[Exit try]
[catch]
[finally]
[instructiuni finale]
End try
- instr din blocul try sunt instructiunile care pot genera exceptii la executia aplicatiei ; in cazul in care apar exceptii la
executie, executia nu se va intrerupe, ci va continua cu primul bloc catch definit ; blocul finally bloc care va fi
executat mereu contine instr prin care se inchide un fisier deschis anterior si citit prin blocul TRY

Dim tva as double
Try
Tva=textbox1.text * 0.19
Catch ex as exception
Msgbox(tva nu poate fi calculat!, msgboxstyle.critical)
End try

Curs 14

De regula, o aplicatie Windows ofera ca interfata cu utilizatorul una sau mai multe ferestre (formulare/machete).
Cele mai multe aplicatii de acest tip recurg la o fereastra principala (fereastra parinte) care poate sa contina mai
multe ferestre copil. Fereastra parinte va oferi (va contine) un meniu general al aplicatiei, iar ferestrele copil vor oferi
controalele necesare introducerii datelor sau afisarii rezultatelor generate de aplicatie . Prin urmare, o aplicatie de
tip Windows va contine cel putin o fereastra un formular cu un set de controale ca obiecte grafice prin intermediul
carora utilizatorul poate introduce date, poate vizualiza rezultatele generate de aplicatie sau poate decide
modalitatea de executie a aplicatiei.

Formularele sunt obiecte instante ale clasei Form disponibile in libraria .NET, in spatiul de nume
System.Windows.Forms. Cele mai importante proprietati ale instatei de tip Form disponibile fie in ferestra
Properties, fie direct prin cod :
- name : proprietatea care permite setarea sau redarea denumirii (a identificatorului) la care formularul poate fi
accesat in aplicatie ; trebuie sa fie valori unice pe aceasta proprietate
- back color : prop prin intermediul careia se poate seta culoarea de fundal a formularului
- controls : prop de tip colectie care include toate controalele definite in formular ; aceasta colectie se poate
interoga, se pot adauga noi elemente in colectie ; colectia controls este actualizata automat in momentul in care la
executie fereastra sau formularul este initializat si afisat pe ecran
- cursor : prop care permite setarea formei mouse ului atunci cand acesta este pozitionat in interiorul ferestrei ;
valoare default : pointer sub forma de sageata de selectie ; waitCursor afiseaza pointer ul sub forma de asteptare
clepsidra
- font si fore color : proprietati prin care se stabileste tipul de font utilizat la afisarea textului in formular sau a culorii
cu care sunt scrise caracterele
- form border style : permite setarea chenarului formularului respectiv
- location : prop prin care se pot citi sau seta coordonatele la care fereastra e afisata pe ecran, valoarea acestei
proprietati este actualizata automat atunci cand utilizatorul muta fereastra in timpul aplicatiei
- size si text : seteaza marimea si titlul ferestrei
Metode :
- Show() : asigura afisarea unui obiect de tip form pe ecran
- showdialog() afiseaza fereastra in mod dialog, nu se pot activa alte ferestre din fundal atat timp cand fereastra e
deschisa
- close() inchiderea ferestrei si eliberarea resurselor ocupate de aceasta
- load() apare in momentul incarcarii ferestrei in memorie, dar inainte de afisarea acesteia pe ecran. La nivelul
acestui eveniment, fereastra nu este inca vizibila, insa e incarcata cu memorie si sunt disponibile controalele
detinute de aceasta
- activated() este declansata cand fereastra e selectata
- paint() apare ori de cate ori este necesara redesenarea ferestrei, cum ar fi exemplul in care fereastra este mutata
intr o locatie in alta sau at cand fereastra este redimensionata ; este folosit in situatiile in care se doreste definirea
unor elemente de grafica speciale
- mouseenter() este declansat atunci cand mouse ul este pozitionat in interiorul ferestrei
- mouseleave at cand mouseul este in afara ferestrei
- mousedown / mouseup : se declanseaza la apasarea/eliberarea unui buton al mouse ului
- Click() : declansat la efectuarea unui click in interiorul ferestrei
- closing() : eveniment declansat in cursul inchiderii ferestrei
- closed() : eveniment declansat in urma inchiderii ferestrei (dupa ce fereastra a fost inchisa)

Dim f as Form1
F = new form1()
f.Show()
f.close()
*form1 = denumirea unui formular creat de regula prin design

Controalele in VB.net sunt obiecte detinute de formulare prin intermediul carora este generata interfata
utilizatorului. Un control nu poate avea o existenta de sine statatoare, nu poate exista independent deoarece orice
control trebuie sa apartina unui formular. In vb.net, controalele sunt clase derivate dintr-o clasa generala numita
Control. Proprietati :
-back color :
- controls : prop de tip colectie care descrie setul de controale definite in interiorul controlului curent (controlul
curent este control container)
- cursor : setam pointer ul mouse ului
- enabled : proprietatea prin care controlul poate fi activat sau nu
- font si fore color
- height se stabileste inaltimea controlului ; width latimea
- size : contine atat width, cat si height
- location
- name
- parent : specifica elementelor de tip control care returneaza container ul in care este inclus controlul curent (acest
container poate fi o fereastra sau un alt control)
- text : disponibil pt majoritatea controalelor, se poate seta textul afisat in interiorul controlului
Metode la nivelul clasei Control :
- focus : asigura selectarea cntrolului la executia aplicatiei a.i va deveni control activ
- refresh redesenarea controlului
- click pt toate controalele
- key down / key press : evenimente declansate la apasarea unei taste
- leave eveniment care apare la parasirea controlului
- mouse down/mouse up

Cele mai importante controale derivate din clasa control pot fi grupate in doua categorii :
- cntrl editabile :
Textbox cele mai utilizate proprietati : text, multiline
Metode : caseta text : metoda select, copy, cut, paste
List box : utilizatorul va putea selecta o valoare dintr o lista de valori ; proprietate specifica :
items
ComboBox : e un control derivat din Control, imbina prop casetelor text cu cele ale casetelor List
Selected Index returneaza indexul elementului selectat
- cntrl needitabile
Etichetele (Label) : prop : text align
Button: prop text va referi textul afisat in interiorul butonului, prop image

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