Documente Academic
Documente Profesional
Documente Cultură
Nr.
crt.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Tip de control
Etichete control
Caset text control
CommandButton control
Caset list control
caset combo control
Cadru control
OptionButton control
caset de selectare control
ToggleButton control
TabStrip control
MultiPage control
Bar de defilare control
SpinButton control
RefEdit control
Imagine control
1. Scurt istoric
1993 VBA apare n Microsoft Excel
1994 VBA este ataat la Microsoft Project
1995 este inclus n Microsoft Access, nlocuind Access Basic
1996 VBA devine element n Visual Basic
1996 este inclus n Word, nlocuind Word Basic
1997VBA este integrat n suita Office 97
1997 Microsoft liceniaz VBA pentru utilizarea n alte aplicaii software
2. Tipuri de controale
2.1. Controalele caset text
Controalele caset text sunt utilizate frecvent pentru a aduna de intrare de la un
utilizator. Proprietatea Text conine intrarea efectuate ntr-un control caset text .
Cum se utilizeaz un control caset text pentru a valida o parol
Dac ai setat proprietatea PasswordChar unui control caset text , acesta va fi
un control "editare mascate". Fiecare caracter care este tastat n caseta de text
de control este nlocuit vizual de caractere specificat. Pentru a utiliza un control
caset text pentru a valida o parol, urmai aceti pai:
Pornii Excel i apoi deschidei un registru de lucru nou necompletat.
n meniul Instrumente , indicai spremacrocomenzii apoi facei clic pe
BasicEditor vizuale.
n meniul Inserare , facei clic peUserForm pentru a insera o UserForm n registrul
de lucru.
Adugarea unui control caset text la UserForm.
n meniul vizualizare Proiect , facei clic peProprieti pentru a face vizibil
fereastra proprieti.
n proprietatea PasswordChar a controlului caset text , tastai *.
Adugai un control CommandButton UserForm.
Facei dublu clic pe CommandButton control toopen fereastra de cod pentru
UserForm.
n fereastra de cod, tastai urmtorul cod pentru Evenimentul CommandButton1
Click :
3. Structuri de control
3.1. Structuri iterative
Prin intermediul construciilor de tip bloc prezentate n aceast seciune se poate
repeta, n mod controlat, un grup de instruciuni. n cazul unui numr nedefinit de
repetiii, condiia de oprire poate fi testat la nceputul sau la sfritul unui ciclu,
prin alegerea structurii adecvate.
Tabel 2 Structuri iterative
Nr.crt.
1.
2.
3.
4.
5.
Structuri iterative
Do...Loop
For...Next
For Each...Next
While...Wend
With
DoLoop
Se vor utiliza structuri DoLoop pentru a executa un grup de instruciuni de un
numr de ori nedefinit aprioric. Dac se cunoate numrul de cicluri, se va utiliza
structura ForNext.
Execuia structurilor Do Loop este explicat n tabelul urmtor
Do While
Loop
Do Until
Loop
DoLoop
While
DoLoop
Until
ForNext
Atunci cnd se cunoate numrul de repetri ale unui bloc de instruciuni, se va
folosi structura ForNext. Structura utilizeaz o variabil contor, a crei valoare
se modific la fiecare ciclu, oprirea fiind atunci cnd se atinge o valoare
specificat.
For EachNext
Similar structurii ForNext, structura For EachNext repet un grup de
instruciuni pentru fiecare element dintr-o colecie de obiecte sau dintr-un tablou
(cu excepia celor de un tip utilizator). Este util atunci cnd nu se cunoate
numrul de elemente sau dac se modific, n timpul execuiei, coninutul
coleciei.
7
WhileWend
Execut un grup de instruciuni att timp ct este adevrat o condiie.
With
Programarea orientat pe obiecte produce, datorit calificrilor succesive,
construcii foarte complexe atunci cnd se numesc proprietile unui obiect. n
cazul modificrilor succesive ale mai multor proprieti ale aceluiai obiect,
repetarea zonei de calificare poate produce erori de scriere i conduce la un text
greu de citit. Codul este simplificat prin utilizarea structurii WithEnd With. O
asemenea structur execut o serie de instruciuni pentru un obiect sau pentru o
variabil de tip utilizator.
3.2. Structuri de decizie (IfThenElse, Select Case)
Ramificarea firului execuiei dup rezultatul verificrii unei condiii este o
necesitate frecvent n orice implementare. Pe lng structurile prezentate, se
pot utiliza trei funcii care realizeaz alegeri n mod liniarizat (pe o linie de cod):
Choose(), Iif(), Switch().
IfThenElse
O asemenea structur, ntlnit de altfel n toate limbajele de programare,
execut un grup de instruciuni ca rspuns la ndeplinirea unei condiii (compus
sau nu din mai multe condiii testate secvenial). Sintaxa permite o mare
varietate de forme.
Select Case
Instruciunea Select Case se poate utiliza n locul unor instruciuni ElseIf multiple
(dintr-o structur IfThenElseIf) atunci cnd se compar aceeai expresie cu
mai multe valori, diferite ntre ele. Instruciunea Select Case furnizeaz, prin
urmare, un sistem de luare a deciziilor similar instruciunii IfThenElseIf. Totui,
Select Case produce un un cod mai eficient i mai inteligibil.
Bibliografie
Jamsa, K. ,Klander L. Totul despre C si C++, Editura Teora, 2010
Schildt H. C, C++ Manual Complet, Editura Teora, 2010
Stroustrap, B., C++, Editura Teora, 2013
Kernighan, B., Ritchie, D. ,Limbajul C, Editura Teora
Cristea V., Atanasiu I., E. Kalisz, V. Iorga , Tehnici de programare , Editura Teora
1999
Dragomirescu C., Satnoianu L., Mirela Popa Informatica Fise de lucru pentru
elevi , clasa a XI-a , Ed. Donaris , Sibiu , 2012
Ionic I., Iordan V., Metode de elaborare a algoritmilor, Ed. Eubeea , Timioara,
2012
Iordan V., Algoritm i programare n C, Ed. Eurostampa , Timioara, 2007
Ivac C., Mona Prun , Tehnici de programare Aplicaii , Editura Petrion 1998
Lica D., colectiv , Fundamentele programrii , Editura L&S , Bucureti , 2011
Mateescu G., Pavel F. Moraru Informatic - varianta Pascal, Ed. Niculescu ,
Bucuresti
2011
Oprescu D., L.B. Ienulescu , V. Ptracu , Informatic , manual pentru clasa a XIa , Editura Niculescu , Bucureti , 2011
Prejmerean V., Algoritmic i programare, Litografia Universitii Babe-Bolyai
Cluj Napoca ,1999
8
Mostenirea
Dup cum se vede i din imaginea de mai sus, motenirea este posibil i pe mai
multe niveluri.
NB: A nu se confunda motenirea unei clase cu instanierea ei. Numai o clas
poate moteni proprietile altei clase. n urma instanierii unei clase rezult un
obiect.
n urma motenirii unei clase, clasa derivat (care motenete proprietile clasei
de baz) nu copie proprietile clasei de baz, ci acestea i sunt direct accesibile.
Datorit proprietii de motenire o clas derivat nu numai c are acces la
variabilele i metodele clasei motenite, dar le i poate redefini. Datorit acestui
fapt o practic obinuit n proiectarea orientat pe obiecte este declararea de
metode cu corpul vid n clasele de baz, urmnd ca acestor metode s li se ofere
un corp n clasele derivate.
Exemplu: Clasa Figura geometric poate conine o metod aria() care s
calculeze aria figurii, dar o implementare a acesteia nu poate fi dat dect n
clasele derivate (formula de calcul al ariei este diferit, n funcie de tipul figurii).
Motenirea uureaz munca proiectanilor de sisteme informatice prin
modularitatea pe care o promoveaz, astfel situaii complexe din lumea real
putnd fi mai uor modelate.
1.3 Polimorfismul
Abilitatea unei metode cu un anumit nume s aib comportri diferite, n funcie
de paramerii de intrare se numete polimorfism. Nu trebuie s se confunde
aceast proprietate cu cea de motenire, cu ajutorul creia se pot redefini
metodele motenite de la o alt clas. Polimorfismul se refer la metode cu
acelai nume i cu parametri de intrare i/sau ieire diferii. n ceea ce privete
motenirea este vorba de metode redefinite, dar care i pstreaz aceeai
signatur (acelai nume i parametri de intrare/ieire).
Polimorfismul are un rol foarte important n reutilizarea codului. S presupunem
c avem o clas operaii aritmetice cu o metod care s primeasc dou
numere oarecare (reale sau complexe). Dac polimorfismul nu ar fi luat n calcul,
atunci ar trebui implementate metode, fiecare cu o denumire diferit, pentru
toate cele patru cazuri: (numr real + numr real, numr real + numr complex,
numr complex + numr real, numr complex + numr complex) i utilizatorul
10
clasei ar trebui s in minte toate cele patru nume de metode pentru a face o
adunare. Cu ajutorul polimorfismului, cele patru metode distincte pot avea
acelai nume i programatorul care utilizeaz clasa operaii aritmetice nu
trebuie s rein dect o singur denumire, compilatorul alegnd varianta corect
n funcie de parametrii de intrare furnizai.
Pe scurt, prin polimorfism o metod poate executa aciuni diferite , n funcie de
parametrii de intrare care i sunt furnizai. Se realizeaz o interfa de
comunicare a obiectului cu exteriorul mult mai unitar i flexibil(metoda
adunare are un singur nume i nu patru), proiectanii putnd s se concentreze
mai bine asupra modului cum s foloseasc obiectele, fiind scutii de detalii de
implementare.
n unele limbaje de programare care suport metoda orientat pe obiecte, cum ar
fi C++, este permis chiar i suprancrcarea operatorilor standard predefinii. De
exemplu operatorul + , destinat efecturii operaiei de adunare pentru numere
reale poate fi fcut s execute i alte tipuri de adunri.
2. Proprieti
Datele dintr-un obiect sunt denumite proprieti. O proprietate (n termenii Visual
FoxPro) este foarte simplu o variabil de memorie care este ataat la obiect i
care are un anumit scop. Utilizarea valorii proprietii i modificarea ei se face
utiliznd numele obiectului urmat de punct (.) i apoi de numele proprietii.
Proprietile pot conine orice tipuri de date care sunt valide pentru variabilele de
memorieVisual FoxPro. De exemplu, dac avem o proprietate numit lEsteNou
care este ataat la un obiect numit oTest, se poate interoga valoarea proprietii
n felul urmtor: oTest.lEsteNou .
3. Metode
Pe lng faptul c obiectele au date ataate, ele pot executa anumite aciuni.
Aceste aciuni sunt reprezentate de fapt de codul de program care este scris n
procedurile care sunt ataate la obiect. Aceste proceduri sunt denumite de fapt
metode. Apelarea unei metode se face n mod asemntor cu a unei proprieti,
i anume numele obiectului, urmat de punct (.) i de numele metodei, dup cum
urmeaz: oTest.Print() .
Tehnic, parantezele care apar la sfritul numelui metodei sunt necesare numai
dac se ateapt returnarea unei valori sau dac cumva se transmit parametrii
metodei. Sugestia noastr este de a se utiliza ntotdeauna paranteze pentru
siguran, n acest caz fiind i siguri c se apeleaz o metod. n cazul apelrii
unei metode dup care se ateapt returnarea unei valori, se poate salva
valoarea returnat n modul urmtor: lValoareReturnat = oTest.Print() .
4. Evenimente
Evenimentele sunt aciuni care se ntmpl. De exemplu, fcnd click pe butonul
stnga al mouse-ului se declaneaz un eveniment. Evenimentele pot fi cauzate
de aciunea utilizatorului (ca n cazul de mai sus) sau de ctre sistem nsui (ca n
cazul n care apare o eroare). Dac creezi o clas de tipul unui buton de comand
nVisual FoxPro, poi ataa cod (ca o metod) la evenimente. Dac se
declaneaz evenimentul (de exemplu, utilizatorul face click stnga cu mouse-ul
deasupra butonului de comand), metoda asociat (care este metoda click) este
apelat automat. n Visual FoxPro, se pot ataa metode la tot felul de
11
12
Un exemplu de clas
Define Class Clas as Custom
Aceast linie de program spune Visual FoxPro c utilizatorul definete o nou
clas numit Clas bazat pe o clas de baz Custom.
cNume = ""
cTip = ""
EsteNou = .F.
Liniile anterioare sunt cunoscute ca declaraii de cod. n aceast parte a definiiei
clasei, se enumer variabilele (proprietile) obiectului i valorile lor iniiale.
13
Problema 13
Se citeste un sir de caractere. Sa se modifice orice aparitie a subsirului Joe sau
JOE in Joseph.
Problema 14
Sa se genereze un sir de caractere de lungime aleatoare din litere luate aleatori.
Sa se afiseze.
Bibliografie
V. Ionescu - Programare procedural, Editura Renaissance, Bucureti, 2010
L. Negrescu - Limbajele C i C++ pentru nceptori, vol. I i II, EdituranAlbastr,
Cluj Napoca, 2009
D. Joia - Programare procedural, Editura Universitii Titu Maiorescu,Bucureti,
2008
K. Jamsa, L. Klander - Totul despre C i C++, Editura Teora, 2005
C. Dsclescu - Programare orientat pe obiecte (C++), Editura
Renaissance,Bucureti, 2010
M. Oprea - Programare orientat pe obiecte - Exemple n limbajul C++,Editura
MATRIX ROM, Bucureti, 2003;
I. Smeureanu, M. Dardila - Programare orientat pe obiecte n limbajul C+
+,Editura CISON, Bucureti 2005;
L. Negrescu - Limbajul C++ , Editura ALBASTRA, Cluj 2000
C. Dsclescu - Programare n Java, Editura Renaissance, Bucureti, 2010
. Tanas, C. Olaru, . Andrei - Java de la 0 la expert (ediia a II-a), Editura
Polirom, 2007;
D. Logoftu - Algoritmi fundamentali n Java. Aplicaii, Editura Polirom,2007;
H. Georgescu - Introducere n universul Java, Editura Tehnic, 2002;
C. Frsinaru - Curs practic de Java, Editura Matrix Rom, 2005.
H. Ciocrlie, R. Ciocrlie - Tehnici de programare i structuri de date,
Ed.Eurostampa, 2010
H. Georgescu Tehnici de programare, Ed. Univ. Bucureti, 2005
T. Cormen, C. Leiserson, R. Rivest Introducere n algoritmi, Ed. Byblos 2004
H. Georgescu, L. Livovschi Sinteza i analiza algoritmilor, Ed. tiinific i
Enciclopedic, 1986
D. Joia - Algoritmi i structuri de date, Editura Renaissance, Bucureti, 2010
I. Tomescu - Data Structures, Editura Universitii din Bucureti, 1997
D. Knuth - Arta programrii calculatoarelor, vol 3: Sortare i cutare,
EdituraTeora, Bucureti, 2002
M. Popescu - Baze de date, Editura Renaissance, Bucureti, 2010
M. Popescu - Baze de date relaionale, Editura Academiei Tehnice
Militare,Bucureti, 2001
M. Tilca, R. Boriga - Baze de date, Ed. Univ. Titu Maiorescu, 2007
M. Fotache - Proiectarea bazelor de date. Normalizare i
postnormalizare.Implementri SQL i oracle, Ed. Polirom, 2005
. Ardeleanu - Transact SQL, Ed. Niculescu, 2004
R. Dellinger - Baze de date i gestionarea tranzaciilor, Ed. Albastr,
ClujNapoca,2000.
15
16
Contents
Curs de Programare 1 - Programarea aplicaiilor Microsoft Office (Visual Basic for
Applications)........................................................................................................... 3
Introducere.......................................................................................................... 3
1. Scurt istoric.................................................................................................. 3
2. Tipuri de controale....................................................................................... 3
3. Structuri de control...................................................................................... 6
Bibliografie.......................................................................................................... 8
Curs de Programare 2 - Introducere n Programarea Orientat-Obiect...................9
Introducere.......................................................................................................... 9
1. Proprieti ale programrii orientate obiect....................................................9
17
18