Visual Basic
-
Author
ciprian-harbuz -
Category
Documents
-
view
292 -
download
0
Embed Size (px)
description
Transcript of Visual Basic
-
Visual Basic Aplicaii n inginerie 1
Cuprins
Introducere Capitolul 1 Visual Basic-prezentare general 1.1.Visual Basic- prezentare general 1.2. Ferestre Capitolul 2 Concepte de baz n Visual Basic 2.1. Obiectul 2.2. Proprietile unui obiect 2.3. Metode 2.4. Evenimente Capitolul 3 Etapele realizrii unei aplicaii n Visual Basic 3.1.Proiectarea interfeei cu utilizatorul 3.2. Scrierea codului 3.3. Aplicaii Capitolul 4 Elemente de limbaj procedural Visual Basic.Variabile, constante, operatori, instruciuni 4.1. Variabile 4.2. Constante 4.3. Operatori 4.4. Funcii predefinite 4.5. Aplicaii Capitolul 5 Structuri de control 5.1. Structuri de control alternative 5.2.Structuri repetitive 5.3. Aplicaii Capitolul 6 Programare modular 6.1. Proceduri standard 6.2. Proceduri de tip funcie 6.3. Aplicaii
-
Visual Basic Aplicaii n inginerie 2
Capitolul 7 Fiiere Visual Basic 1. Deschiderea fiierelor 2.nchiderea fiierelor 3. Exploatarea fiierelor n acces secvenial 4. Exploatarea fiierelor cu acces aleator 5. Aplicaii Bibliografie
-
Visual Basic Aplicaii n inginerie 3
INTRODUCERE
Prezenta lucrare se dorete a fi o mbinare ntre ceea ce reprezint un produs informatic foarte utilizat (Visual Basic) i mediul aplicaiilor inginereti. Se vrea, n egal msur, un suport de curs destinat proceselor educaionale de formare iniial i de formare continu. Noiunile teoretice ncearc s surprind att elementele generale ale programrii indiferent de limbajul utilizat , ct i elementele specifice Visual Basic. De ce Visual Basic? Pentru c acest limbaj este caracterizat att de simplitate, ct i de putere, deci este o bun opiune pentru cititorul interesat de a face din calculator un prieten. Mediul pune la dispoziie faciliti, programe de ghidare, comenzi. Lucrarea se adreseaz studenilor de la facultile tehnice, precum i celorlalte categorii de persoane ce doresc s-i formeze deprinderi de programare. Aplicaiile, preponderent din inginerie, ofer posibilitatea ca cititorul, nelegnd fenomenul pe care vrea s l rezolve cu ajutorul calculatorului, s se poat concentra asupra modului de rezolvare, respectiv asupra instruciunilor ce vor fi utilizate. Pentru aprofundarea noiunilor teoretice, utilizatorul va avea posibilitatea s exerseze numeroasele aplicaii care sunt prezentate n carte.
-
Visual Basic Aplicaii n inginerie 4
Capitolul 1 Visual Basic-prezentare general
Cunotine prealabile
Arhitectura unui calculator Sistemul de operare Windows
Plan tematic Intrebri obiectiv
1.1.Visual Basic- prezentare general 1.2.Ferestre
- Ce este un mediu integrat de dezvoltare? - Care sunt ferestrele mediului Visual Basic?
Cuvinte-cheie
-mediu integrat de dezvoltare
-ferestre
-
Visual Basic Aplicaii n inginerie 5
1.1. Visual Basic-prezentare general
Visual Basic este un limbaj de programare ce permite trecerea de la programarea procedural la programarea orientat pe obiect. Visual Basic nu este un limbaj propriu-zis orientat pe obiect ns lucreaz cu obiecte. Acest limbaj combin elementele programrii orientate pe obiecte cu elementele programrii orientate pe evenimente.
Visual Basic este un mediu integrat de dezvoltare (IDE) care realizeaz [FRI 01], [ANI 03]:
Scrierea i testarea aplicaiilor Distribuirea aplicaiilor Scrierea fiierelor Help Crearea de controale Active X. Termenul de Visual desemneaz modul n care va fi
care va fi conceput aplicaia: se va proiecta interfaa cu ajutorul form-urilor (machete ale ecranului ) pe care vor fi adugate controale ( casete de text, butoane de comand, butoane de opiune, liste, meniuri). Scrierea codului utiliznd limbajul de programare propriu-zis va definitiva aplicaia.
Visual Basic abordeaz interactiv scrierea codului. Astfel, nu se va face distincie ntre cele trei etape ale programrii procedurale : scrierea codului, compilarea i testarea. Fiind un limbaj interactiv, Visual Basic interpreteaz fiecare instruciune pe msur ce este introdus de la tastatur. Dac se sesizeaz erori sintactice , acestea vor fi evideniate.
Ca urmare a lansrii mediului Visual Basic, pe ecran va apare mediul integrat de dezvoltare a aplicaiilor care va conine ferestre.
-
Visual Basic Aplicaii n inginerie 6
1.2. Ferestre
Figura1.1. Ferestrele mediului Visual Basic Ferestrele ce apar pe ecran au urmtoarea semnificaie:
1- Form-ul (formularul) este principalul element de interfa; reunete obiectele interactive ale aplicaiei ( butoane de comand, etichete, bare de meniu)
2- Fereastra Toolbox conine reprezentri ale controalelor ce vor fi plasate pe form.
3- Fereastra Project Explorer permite gestionarea rapid a componentelor proiectului. Proiectul va fi format din form-uri, module ( ce
-
Visual Basic Aplicaii n inginerie 7
conin cod surs), module de tip clas, controale definite de utilizator.
Figura 1.2. Exemplu de interfa
4- Ferestra Properties conine proprietile descriptive sau funcionale form-ului, controlului sau altui element activ
5- Ferestra Immediate este o fereastr n care se pot scrie i executa instruciuni ale limbajului de programare, rezultatele fiind disponibile imediat.
-
Visual Basic Aplicaii n inginerie 8
Capitolul 2 Concepte de baz n Visual Basic
Cunotine prealabile
Sistemul de operare Windows Visual Basic prezentare general
Plan tematic Intrebri obiectiv 2.1. Obiectul 2.2. Proprietile unui obiect 2.3. Metode 2.4. Evenimente
-Ce este un obiect? -Care sunt proprietile obiectelor Visual Basic i cum pot fi modificate? -Care sunt metodele obiectelor Visual Basic? -Ce sunt evenimentele?
Cuvinte-cheie
-obiect -metod -proprietate
-eveniment
-
Visual Basic Aplicaii n inginerie 9
2.1. Obiectul
Spre deosebire de programarea procedural, n care structurile de date i comportamentul acestora nu sunt asociate, programarea orientat pe obiecte specific organizarea programului ca o colecie de obiecte ce conin o structur de date i un comportament. Aceast abordare permite modelarea direct a realitii prin intermediul obiectelor definite ca entiti cu identitate proprie i caracterizate prin comportament i stare.
a) Obiectul reprezint o entitate din lumea real. O fereastr, un formular, un control sunt exemple de obiecte. Pentru efectuarea unei operaii asupra unui obiect se va apela la o metod.
Obiectele se caracterizeaz prin [ANI 03], [LUP01]: Identitate, care permite distingerea unui obiect de
un alt obiect; obiectul este caracterizat prin proprieti (atribute) ca: nume,dimensiuni, culoare, etichet.
Stri semnificative, care corespund valorilor tuturor atributelor la un moment dat.
Comportament ansamblul operaiilor pe care obiectul le poate executa ca reacie la mesajele trimise de ctre alte obiecte . Programarea orientat pe obiecte face apel la
urmtoarele concepte: ncapsularea Clasificarea Polimorfismul Motenirea
-
Visual Basic Aplicaii n inginerie 10
ncapsularea - reprezint proprietatea obiectului de a conine la un loc date i metode, astfel nct accesul la date se realizeaz numai prin intermediul metodelor.
Clasificarea presupune regruparea n clase a obiectelor ce au aceeai structur i acelai comportament.
Polimorfismul- const n proprietatea instanelor unei clase, ca la primirea aceluiai mesaj s manifeste comportamente diferite. n Visual Basic este posibil numai simularea polimorfismului.
Motenirea permite partajarea atributelor i operaiilor comune ntre clase, pstrnd, n acelai timp, diferenele. Visual Basic nu suport integral motenirea.
Datorit caracteristicilor sale, Visual Basic este un limbaj pseudo-obiect.
2.2. Proprietile unui obiect
n Visual Basic un obiect este caracterizat de proprieti, metode, evenimente.
Proprietile reprezint atribute ale obiectului : culoare, dimensiune, poziie, nume.
Pentru a accesa proprietile unui obiect sunt posibile dou metode:
Din fereastra de proprieti (Properties), n momentul proiectrii aplicaiei
Prin codul programului, n momentul n care aplicaia se execut.
Obiectul se transfer pe form i pe form este selectat, moment n care n fereastra de proprieti apar proprietile structurale pe dou coloane. De regul,
-
Visual Basic Aplicaii n inginerie 11
proprietile se in n ordine alfabetic. Indiferent de modul de nregistrare i de inere a proprietilor prima proprietate din fereastra de proprieti este NAME.
Coloana stng a ferestrei de proprieti conine numele proprietilor iar coloana dreapt conine valorile actuale ale proprietilor.
Figura 2.1. Ferestra Properties a obiectului Form Selectarea unei proprieti face posibil
modificarea valorii ei, ceea ce are rspuns imediat asupra obiectului. Aceste modificri sunt modificri care se fac n momentul editrii formei.
Modificri asupra proprietilor, mai puin proprietatea NUME pot fi fcute i n timpul execuiei, deci prin program.
-
Visual Basic Aplicaii n inginerie 12
Selectarea pe form a altui obiect aduce n fereastra de proprieti proprietile corespunztoare acelui obiect (a noului obiect selectat). Principalele proprieti ale unui obiect sunt:
1) Proprietatea nume: NAME Prin intermediul acestei proprieti obiectului i se
ataeaz implicit sau de ctre programator un nume de referin. Numele de referin este cuvntul rezervat prin intermediul cruia obiectul este recunoscut de ctre aplicaie.Numele de referin conine tipul obiectului i un numr de ordine. Totui este bine ca numele s conin pe lng tipul obiectului i o descriere sumar a obiectului (aciunea).
Pentru atribuirea de denumiri specifice se va utiliza un prefix conform tabelului urmtor:
Tabelul 2.1. Prefixe utilizate pentru denumirea
obiectelor Visual Basic[FRI 01], [ANI 03]
Obiect Prefix Exemplu form frm frmExemplu Buton de comand cmd cmdIeire etichet lbl lblNume Caset de text txt txtText meniu mnu mnuMeniu Buton de opiune opt optAlege Caset cu list lst lstGrupa Caset list combinat cbo cboSerie Caset cu list fiiere fil filFiier Caset de validare chk chkTiprete
-
Visual Basic Aplicaii n inginerie 13
2) Proprietatea legat de mesajul nscris pe obiect
Mesajul nscris pe obiect poate fi: - de tip informativ; - de tip list. Dac mesajul nscris pe obiect este de tip
informativ proprietatea se numete CAPTION ( de exemplu pentru obiectul Label) . Dac mesajul nscris pe obiect este de tip list proprietatea se numete TEXT (de exemplu pentru obiectul TextBox) .
Pentru obiectele active i pentru forme exist proprietatea logic ENABLED care activeaz sau dezactiveaz obiectul.
Aceast proprietate are valorile: - TRUE dac obiectul este activ; - FALSE dac obiectul este inactiv. Activarea sau dezactivarea se face numai n
execuia formei. 3) Proprieti legate de poziie i dimensiuni - LEFT; - HIGH. 4) Proprieti legate de font pentru
dimensiunea fontului, pentru caracterul italic i pentru subscrieri.
5) Proprieti legate de culori: pentru culoarea
obiectului; culoarea fontului i culoarea pentru nscrisul de pe obiect.
-
Visual Basic Aplicaii n inginerie 14
Figura 2.2. Exemplu de modificare a proprietii Backcolor n faza de proiectare
Fiecrui obiect i se ataeaz n jur de 40 de
proprieti. Proprietile ataate unui obiect se gsesc n fereastra de proprieti n momentul n care obiectul este selectat. n cazul n care se dorete modificarea anumitor proprieti ale unui obiect n faza de execuie a aplicaiei, se va utiliza sintaxa :
Obiect.Proprietate=Variabil Exemplu: Pentru a se modifica culoarea de fond a formei numite frmInceput n culoarea roie se va introduce comanda:
frmInceput.BackColor=QBColor(red)
-
Visual Basic Aplicaii n inginerie 15
2.3.Metode
Metoda reprezint o aciune pe care programul poate s o efectueze asupra obiectului. Sintaxa este urmtoarea [W1]:
[Obiect].Metod [list de parametri]
n biblioteca de obiecte Object Browser sunt prezentate descrierile metodelor.
2.4. Evenimente
Evenimentul poate fi definit ca rspunsul unui obiect la o aciune a utilizatorului sau a programului. De exemplu, apsarea unei taste poate constitui o aciune care determin un eveniment. Pentru un eveniment se poate scrie cod. Programul va rspunde la eveniment numai dac are scris o procedur ataat evenimentului. Altfel, evenimentul va fi ignorat. Att pentru form ct i pentru controalele ataate vom avea evenimente. De exemplu, pentru controlul Caset de text se pot scrie proceduri ataate evenimentelor de clic, dublu-clic, introducere a textului. Dac programatorul va scrie o procedur eveniment pentru dublu-clic pe caseta de text, atunci cnd utilizatorul va executa aceast aciune, sistemul va rspunde prin apelarea procedurii ataate evenimentului. Numele procedurii eveniment este format din concatenarea irurilor reperezentate de numele
-
Visual Basic Aplicaii n inginerie 16
obiectului, liniu de subliniere i numele evenimentului. De exemplu, pentru un buton de comand la care dorim ataarea unei proceduri cnd se acioneaz click asupra lui, numele procedurii ataate va fi Command1_Click.
-
Visual Basic Aplicaii n inginerie 17
Capitolul 3 Etapele realizrii unei aplicaii n Visual Basic
Cunotine prealabile
Visual Basic prezentare general Definiia obiectului
Metode, proprieti, evenimente
Plan tematic Intrebri obiectiv 3.1.Proiectarea interfeei cu utilizatorul 3.2. Scrierea codului 3.3. Aplicaii
-Cum se realizeaz interfaa unei aplicaii? -Care sunt caracteristicile etichetelor, butoanelor de comand, casetelor de text casetelor tip list i a controalelor de opiune? -Ce sunt modulele Visual Basic?
Cuvinte-cheie
-etichete -butoane de comand -casete de text
-controale de opiune -casete cu list -module
-
Visual Basic Aplicaii n inginerie 18
O aplicaie Visual Basic se numete general Proiect. CONTROALE FORME PROIECT Pentru realizarea unei aplicaii Visual Basic , etapele care vor fi parcurse sunt [FRI 01], [ANI 03]:
1. Stabilirea aplicaiei care va fi rezolvat cu ajutorul mediului Visual Basic
2. Proiectarea interfeei grafice cu utilizatorul prin aezarea obiectelor pe foaie (form);
3. Modificarea proprietilor obiectelor 4. Scrierea codului de program 5. Rularea aplicaiei
n Visual Basic exist ferestre pentru editarea:
- formelor; - obiectelor; - procedurilor.
3.1. Proiectarea interfeei cu utilizatorul
La deschiderea mediului Visual Basic, dac se alege zona STANDARD EXE (crearea de aplicaii standard) ecranul care apare cuprinde 1 2 linii de meniu orizontale.
-
Visual Basic Aplicaii n inginerie 19
Dintre icoanele de pe meniu se alege Tools care, prin apsare, determin apariia pe ecran a unei ferestre cu obiecte . Prin apsarea tastei F4 pe ecran mai apare o fereastr (se poziioneaz n partea dreapt a ecranului) , fereastra de proprieti sau atribute .
Figura 3.1. Crearea unei aplicaii
Pe lng aceste dou ferestre pe ecran mai exist o zon (fereastr) de lucru numit fereastr de editare de forme. Ca orice editor interactiv, Visual Basic pune n eviden zona selectat a ecranului. Punerea n eviden
-
Visual Basic Aplicaii n inginerie 20
se face prin ncadrarea zonei active ntr-un chenar (chenarul este format din ptrele albastre). Modul de proiectare Se deseneaz forma. Se vor stabili proprietile obiectului form.
n tabelul urmtor sunt descrise principalele proprieti ale obiectului.
Tabelul 3.1.Principalele proprieti ale unui form
[NAS 00]
Proprietate Descriere BackColor Specific culoarea fundalului form-
ului. Se alege dintr-o list de culori.
BorderStyle Stabilete stilul fundalului form-ului.
Caption Este textul care se afieaz n linia de titlu a form-ului.
Enabled Stabilete dac form-ul este activ (True) sau nu (False). Se lucreaz cu aceast proprietate doar n aplicaii cu mai multe form-uri (MDI).
Font Permite schimbarea tipului, mrimii i atributelor fontului.
ForeColor Stabilete culoarea cu care se va scrie textul.
Height Precizeaz nlimea form-ului n twips.
-
Visual Basic Aplicaii n inginerie 21
Icon Arat imaginea de tip icon ce se va afia pe taskbar atunci cnd utilizatorul minimizeaz form-ul.
Left Indic distana pn la marginea stng a ecranului, n twips.
MaxButton Specific dac form-ul va avea sau nu buton de maximizare.
MinButton Specific dac form-ul va avea sau nu buton de minimizare.
MousePointer Stabilete forma cursorului mouse-ului atunci cnd, la execuie, utilizatorul indic form-ul.
Moveable Stabilete dac utilizatorul paote muta sau nu form-ul pe ecran, la momentul execuiei.
Picture Precizeaz numele unei imagini de tip icon (fiier de tip .ico) care apare pe fundalul form-ului la execuie.
ScaleMode Stabilete unitatea de msur utilizat pentru form (twip, pixel, inch, centimetri sau altele). Implicit este twip.
ShowInTaskbar Stabilete dac form-ul apare sau nu la execuie n linia de start a Windows-ului.
StartUpPosition Stabilete poziia form-ului pe ecran (implicit acesta apare n stnga sus, dar poate fi afiat centrat pe ecran sau centrat n cadrul unui form-printe vezi aplicaiile MDI).
-
Visual Basic Aplicaii n inginerie 22
Top Indic distana pn la marginea de sus a ecranului, n twips.
Visible Stabilete dac form-ul va aprea pe ecran la execuie (True) sau este invizibil (False).
Width Precizeaz nlimea form-ului, n twips.
WindowState Stabilete starea iniial a ferestrei n care apare form-ul la execuie (minimizat, maximizat sau cu aceleai dimensiuni ca la proiectare).
n faza urmtoare de realizare a aplicaiei se
selecteaz obiectele necesare proiectului (formei) din fereastra de obiecte unul cte unul, pe rnd. Obiectul selectat se transport pe form. Transportarea obiectelor pe form se face pe rnd (cte un singur obiect odat). Pe form, prin selectarea obiectului, pot fi modificate proprietile acestuia astfel nct acesta s corespund cerinelor. Totodat, obiectului selectat i se specific metoda i evenimentele. n cadrul evenimentelor, obiectului selectat i se ataeaz o procedur. Dup aceasta aplicaia este lansat n execuie. Obiectele de lucru n Visual Basic sunt:
a) etichete; b) casete de text;
-
Visual Basic Aplicaii n inginerie 23
c) butoane de comand; d) casete de selecie; e) butoane de opiuni; f) poteniometre liniare; g) casete de liste combinate.
Fiecare obiect este caracterizat de: proprietile
sale; metodele sale; evenimentele sale. Transferarea unui obiect pe form se
realizeaz astfel: n fereastra de obiecte se selecteaz obiectul dorit cu clic stnga pe el, dup care cu mouse-ul se trage obiectul n fereastra de editare a formelor. Dac obiectul este selectat, simbolul de mouse devine o cruciuli de tip int (+) cu care se alege poziia din colul din stnga sus a obiectului selectat.
Dup fixarea colului din stnga sus se trage cu mouse-ul pe ecran. Va apare un dreptunghi care va conine obiectul dorit.
Dac pe form sunt puse mai multe obiecte, obiectul selectat este evideniat cu ptrele luminoase i are proprietile afiate n fereastra de proprieti.,
Dup selectare, obiectul poate fi modificat (exemplu: pot fi modificate proprietile, dimensiunile etc.).
a) Eticheta (LABEL) Eticheta are un rol pur descripional. Evenimentul
ataat unui obiect de tip etichet este evenimentul CHANGE.
Numele care se d unei etichete trebuie s conin o descriere.
-
Visual Basic Aplicaii n inginerie 24
n CAPTION din fereastra de proprieti se trece textul care dorim s apar n acea etichet.
Etichetele au o proprietate foarte important numit AUTOSIZE care dimensioneaz automat eticheta n funcie de fontul i de textul folosit.
n tabelul urmtor sunt precizate principalele proprieti ale obiectului Etichet [FRI 01], [NAS 00]
Tabelul 3.2. Principalele proprieti ale unei etichete
Proprietate Descriere
Alignment Indic modul de aliniere a textului etichetei (stnga, dreapta, centru).
AutoSize Dac este setat True, modific dimensiunile etichetei atunci cnd, la execuie, este introdus un text prea mare pentru dimensiunile date.
BackColor Specific culoarea fundalului etichetei. Se alege dintr-o list de culori.
BackStyle Stabilete stilul fundalului etichetei. Caption Este textul care se afieaz pe
etichet. Enabled Stabilete dac eticheta este activ
(True) sau nu (False). Are valoarea implicit True.
Font Permite schimbarea tipului, mrimii i atributelor fontului.
ForeColor Stabilete culoarea textului etichetei. Height Precizeaz nlimea etichetei n
twips. Left Indic distana pn la marginea
-
Visual Basic Aplicaii n inginerie 25
stng a form-ului n twips. MousePointer Stabilete forma cursorului mouse-
ului atunci cnd, la execuie, utilizatorul indic eticheta.
TabIndex Specific, printr-o valoare numeric, poziia n ordinea de parcurgere a controalelor la momentul execuiei (eticheta nu poate deine focus, dar poate face parte din aceast ordine).
ToolTipText Precizeaz textul explicaii sau indicaii) ce se va afia ntr-o caset de tip tooltip, la indicarea etichetei cu ajutorul mouse-ului
Top Indic distana pn la marginea de sus a form-ului, n twips.
Visible Stabilete dac eticheta apare pe ecran la execuie (True) sau este invizibil (False).
Width Precizeaz limea etichetei n twips. WordWrap Stabilete dac este posibil scrierea
textului pe mai multe linii n cadrul etichetei.
Dup poziionarea etichetei pe form se poate
ataa un eveniment acelei etichete. Este vorba despre o procedur care poate fi ataat etichetei, procedur care se lanseaz n execuie ori de cte ori coninutul sau valoarea proprietii CAPTION se modific.
Din acest motiv evenimentul ataat etichetei se numete CHANGE.
-
Visual Basic Aplicaii n inginerie 26
Editorul de programe Editorul de programe este cel care permite
scrierea textului surs al procedurii ataate etichetei i evenimentului CHANGE i se apeleaz cu dublu clic pe ETICHET.
Figura 3.2. Editare de program
Un clic pe el are ca efect
selectarea obiectului, fapt care face ca n cutia de proprieti s
apar proprietile ETICHETEI.
Prop
rieta
tea
etic
hete
i
ETICHET
-
Visual Basic Aplicaii n inginerie 27
Dublu clic determin apariia editorului de text care n mod automat va prelua urmtoarele dou linii.
b) Butonul de comand Butonul de comand are ca reprezentare,
reprezentarea tridimensional a unui buton. Principalele proprieti ale unui buton de
comand sunt prezentate n tabelul 3.3.
Tabelul 3.3. Principalele proprieti ale unui buton de comand [FRI 01], [NAS 00]
Proprietate Descriere
BackColor Specific culoarea fundalului butonului. Se alege dintr-o list de culori. Pentru a putea schimba culoarea implicit trebuie modificat valoarea proprietii Style (1-Graphical, n loc de 0-Standard).
Cancel Stabilete dac butonul va recepta un eveniment clic la apsarea tastei Esc.
Caption Este textul care se afieaz pe butonul de comand.
Default Stabilete dac butonul va recepta un eveniment clic la apsarea tastei Enter, chiar dac un alt control deine focus-ul.
Enabled Stabilete dac butonul este activ (True) sau nu (False). Are valoarea
-
Visual Basic Aplicaii n inginerie 28
implicit True. Font Permite schimbarea tipului, mrimii
i atributelor fontului. Height Precizeaz nlimea butonului n
twips. Left Indic distana pn la marginea
stng a form-ului, n twips. MousePointer Stabilete forma cursorului mouse-
ului atunci cnd, la execuie, utilizatorul indic butonul de comand.
Picture Precizeaz numele unei imagini grafice de tip icon (fiier de tip .ico) care apare pe buton (valoarea proprietii Style trebuie s fie 1-Graphical).
Style Stabilete dac butonul va aprea ca un buton Windows standard numai cu text (valoarea 0-Standard) sau cu text i imagine (valoarea 1-Graphical).
TabIndex Specific, printr-o valoarea numeric, poziia n ordinea de parcurgere a controalelor la execuie.
TabStop Precizeaz dac butonul va obine (True) sau nu (False) focus la parcurgerea cu tasta TAB.
ToolTipText Precizeaz textul (explicaii sau indicaii) ce se va afia ntr-o caset de tip tooltip, la indicarea butonului cu ajutorul mouse-ului.
-
Visual Basic Aplicaii n inginerie 29
Top Indic distana pn la marginea de sus a form-ului, n twips.
Visible Stabilete dac butonul va aprea pe ecran la execuie (True) sau este invizibil (False)=.
Width Precizeaz limea butonului n twips.
Evenimentul ataat unui buton de comand este
evenimentul CLICK. Starea fizic a unui buton poate fi: activ sau
inactiv. Proprietatea NUME are aceeai semnificaie ca la orice obiect. Proprietatea CAPTION este o proprietate a crei valoare se afieaz pe buton.
n general butoanele de comand sunt cele care lanseaz n execuie aciunile majore ale aplicaiei. c) Caseta de text n cazul casetei de text, TEXTBOX, proprietile sunt legate de nume, nume care poate fi dat automat sau poate fi dat de programator.
Tabelul 3.4. Principalele proprieti ale unei casete de
text [FRI 01], [NAS 00]
Proprietate Descriere Alignment Indic modul de aliniere a textului
n caset (stnga, dreapta, centru) BackColor Specific culoarea fundalului
casetei. Se alege dintr-o list de culori.
-
Visual Basic Aplicaii n inginerie 30
BorderStyle Stabilete stilul fundalului casetei. Enabled Stabilete dac caseta este activ
(True) sau nu (False). Are valoarea implicit True.
Font Permite schimbarea tipului, mrimii i atributelor fontului.
ForeColor Stabilete culoarea cu care se va scrie textul.
Height Precizeaz nlimea casetei n twips.
Left Indic distana pn la marginea stng a form-ului n twips.
Locked Precizeaz dac utilizatorul poate (True) sau nu (False) s editeze textul ce apare n caset.
MaxLength Specific numrul maxim de caractere pe care le poate introduce utilizatorul n caset. Valoarea implicit 0 nseamn numr nelimitat.
MousePointer Stabilete forma cursorului mouse-ului atunci cnd, la execuie, utilizatorul indic acest control.
MultiLine Permite (True) sau nu (False) introducerea textului pe mai multe lini. La scrierea pe mai multe linii se poate utiliza proprietatea ScrollBars, pentru a permite deplasarea mai facil n caset.
PasswordChar Stabilete caracterul care apare repetat n caset atunci cnd utilizatorul introduce o parol.
-
Visual Basic Aplicaii n inginerie 31
ScrollBars Specific prezena barelor de derulare n cazul scrierii textului pe mai multe lini.
TabIndex Specific, printr-o valoare numeric, poziia n ordinea de parcurgere a controalelor la execuie.
TabStop Precizeaz dac controlul va obine (True) sau nu (False) focus la execuie.
Text Specific textul care se va afia iniial n caset. Acesta poate fi nlocuit sau nu de ctre utilizator la execuie.
ToolTipText Precizeaz textul (explicaii sau indicaii) ce se va afia ntr-o caset de tip tooltip la execuie, la indicarea csuei de text cu ajutorul mouse-ului.
Top Indic distana pn la marginea de sus a form-ului n twips.
Visible Stabilete dac controlul va aprea pe ecran la execuie (True) sau este invizibil (False).
Width Precizeaz limea casetei n twips.
Coninutul informaiei din cutia de text se regsete n proprietatea TEXT. Restul proprietilor: poziie, dimensiune, funcie sunt aceleai. Asupra csuei de text se poate aciona cu dimensionare, mutare etc. deci aciunile de tip metod sunt legate de dimensionare i mutare.
-
Visual Basic Aplicaii n inginerie 32
Evenimentul ataat unei csue text este evenimentul: CHANGE.
d) Controale de opiune Pot fi:
Casete de validare (Check box) Butoane de opiune (Option Box) Casete cu list (List Box) Casete combinate (Combo Box)
Casetele de validare Dau posibilitatea utilizatorului de a alege una sau mai multe opiuni, afind un marcaj de validare atunci cnd va fi validat. Utilizatorul va valida sau invalida opiunea executnd click. Butoanele de opiune Se utilizeaz n cazul n care este necesar selectarea unei opiuni. Butoanele aezate pe form formeaz un singur grup.
Figura 3.3. Butoane de opiune
-
Visual Basic Aplicaii n inginerie 33
Casetele cu list Permit afiarea vertical a unei liste de opiuni din care utilizatorul poate alege una sau mai multe.
Tabelul 3.5. Proprietile obiectului List Box [FRI 01], [NAS 00]
Proprietate Descriere
BackColor Specific culoarea fundalului casetei.
Columns Specific numrul de coloane . Forecolor Definete culoarea textului. List Permite introducerea manual a
listei care va fi afiat Multiselect Precizeaz numrul de elemente . Font Permite schimbarea tipului, mrimii
i atributelor fontului. Height Precizeaz nlimea butonului n
twips. Left Indic distana pn la marginea
stng a form-ului, n twips. MousePointer Stabilete forma cursorului mouse-
ului atunci cnd, la execuie, utilizatorul indic butonul de comand.
Picture Precizeaz numele unei imagini grafice de tip icon (fiier de tip .ico) care apare pe buton (valoarea proprietii Style trebuie s fie 1-Graphical).
Style Stabilete dac butonul va aprea ca un buton Windows standard
-
Visual Basic Aplicaii n inginerie 34
numai cu text (valoarea 0-Standard) sau cu text i imagine (valoarea 1-Graphical).
TabIndex Specific, printr-o valoarea numeric, poziia n ordinea de parcurgere a controalelor la execuie.
TabStop Precizeaz dac butonul va obine (True) sau nu (False) focus la parcurgerea cu tasta TAB.
3.2. Scrierea codului
Codul Visual Basic conine instruciuni, constante, declaraii.
Exist trei tipuri de module:
module formular, avnd extensia .frm, care conin descrieri ale formularelor i controalelor ataate
module standard, avnd extensia .bas, ce conin declaraii i proceduri co pot fi utilizate de mai multe module
module clas, cu extensia .cls sunt asemntoare cu modulele formular, dar nu posed interfa cu utilizatorul. Se folosesc pentru crearea de noi obiecte.
Fiecare modul va conine :
partea de declaraii partea de proceduri
-
Visual Basic Aplicaii n inginerie 35
Figura 3.4. Editarea modulelor
3.3. Aplicaii Aplicaia 1. S se proiecteze o interfa care s conin o
etichet cu mesajul Studenii anului I de la Facultatea de Inginerie Tehnologic. Culoarea fontului va fi albastr, fontul va fi TNR ,24.
Se deschide o nou aplicaie standard
exe
-
Visual Basic Aplicaii n inginerie 36
Se selecteaz obiectul Label i se poziioneaz pe form
Se deschide fereastra de proprieti tastnd F4
Figura 3.5. Exemplu de modificare a proprietilor Se seteaz proprietile corespunztoare
cerinelor problemei, respectiv se va alege culoarea fontului i tipul fontului
Modificarea proprietilor se face direct din fereastra de proprieti, nu prin intermediul programului
Se ruleaz aplicaia din meniul Run
-
Visual Basic Aplicaii n inginerie 37
Figura 3.6. Proiectarea interfeei Aplicaia 2.
S se proiecteze o aplicaie cu dou butoane de comand, prin apsarea unuia s se schimbe culoarea textului unei etichete n rou, iar prin apsarea celuilalt s se schimbe culoarea n verde.
Se deschide o nou aplicaie Se poziioneaz eticheta i cele dou butoane de
comand pe form Se seteaz proprietile corespunztoare pentru
cele trei obiecte
-
Visual Basic Aplicaii n inginerie 38
Figura 3.7. Proiectarea interfeei
Se deschide fereastra View Code (click mouse dreapta)
Se scrie secvena de cod aferent
Private Sub Command1_Click() Label1.ForeColor = vbRed End Sub Private Sub Command2_Click() Label1.ForeColor = vbGreen End Sub
Se ruleaz programul
-
Visual Basic Aplicaii n inginerie 39
Figura 3.8. Rularea aplicaiei
Aplicaia 3. S se proiecteze o aplicaie care s cuprind o caset de text i trei butoane de comand, prin care s se formateze Bold sau italic textul din caset.
Se deschide o nou aplicaie Se aaz pe form o caset de text i trei
butoane de comand Se schimb proprietile aferente celor trei
butoane de comand i casetei text Se selecteaz opiunea View Code Se scrie codul pentru cele trei butoane de
comand
-
Visual Basic Aplicaii n inginerie 40
Figura 3.9. Proiectarea interfeei
Private Sub anulare_Click() Text1.FontBold = False Text1.FontItalic = False End Sub Private Sub bold_Click() Text1.FontBold = True End Sub Private Sub italic_Click() Text1.FontItalic = True End Sub
Se ruleaz aplicaia Se va obine ecranul afiat mai jos
-
Visual Basic Aplicaii n inginerie 41
Figura 3.10. Scrierea codului
Figura 3.11. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 42
Capitolul 4 Elemente de limbaj procedural Visual Basic Variabile, constante, operatori, instruciuni
Cunotine prealabile
Proiectarea interfeei grafice cu utilizatorul Obiecte Visual Basic
Plan tematic Intrebri obiectiv 4.1. Variabile 4.2. Constante 4.3. Operatori 4.4. Funcii predefinite 4.5. Aplicaii
-Cum se declar variabile i constantele? -Care sunt tipurile de date utilizate n Visual Basic? -Care sunt operatorii ? -Ce funcii predefinite exist?
Cuvinte-cheie
-variabile -constante -operatori
-funcii predefinite -funcii de dialog
-
Visual Basic Aplicaii n inginerie 43
4.1. Variabile Variabilele sunt locaii de memorie n care se depoziteaz date sau informaii logice ce vor fi prelucrate n timpul execuiei [LUP 01].
Variabilele sunt caracterizate de: nume, tip, domeniu de aciune i durat de aciune. Numele variabilei este atribuit de ctre programator. El trebuie s nceap obligatoriu cu o liter; poate conine litere i cifre dar i liniua de subliniere.
Odat atribuit un nume unei variabile, acest nume devine cuvnt rezervat, adresabil n orice secven procedural, att n stnga unei instruciuni de atribuire ct i n partea dreapt a acesteia.
Dac se afl n partea stng atunci n variabil se nregistreaz informaia. Dac este n partea dreapt a instruciunii atunci informaia se transmite i particip la calcul.
Declararea unei variabile se poate cu una din structurile [FRI 01], [NAS 00], [ANI 03] :
Dim [(indici)] [As Tip_dat]
[, [(indici)] [As Tip_dat] Sau Static [(indici)] [As Tip_dat]
[, [(indici)] [As Tip_dat] Sau Public [(indici)] [As Tip_dat]
[, [(indici)] [As Tip_dat]
-
Visual Basic Aplicaii n inginerie 44
Tipuri de variabile n Visual Basic Variabilele pot fi: variabile elementare; variabile
compuse i variabile de tip definit de programator. Tipul unei variabile poate fi declarat: a) explicit n zona de declarare a programului (n
zona declarativ); b) forat ntr-o instruciune de atribuire, numele
variabilei aprnd pentru prima oar n procedura respectiv i gsindu-se n membrul stng al unei instruciuni de atribuire urmat de un sufix de tip;
c) implicit dac numele variabilei apare pentru prima oar n procedur, se gsete n membrul stng al unei operaii de atribuire i nu este urmat de sufix.
Tipul variabilei va fi tipul rezultat al membrului drept al instruciunii de atribuire.
Tabelul 4.1. Tipuri de date n Visual Basic [FRI 01],
[NAS 00], [ANI 03]
Tipul Sufix Descriere Boolean - Denumit i logic, poate lua
doar valorile True sau False. True i False sunt cuvinte rezervate n Visual Basic
Byte - Valori numerice pozitive, fr zecimale, n intervalul 0-255
Currency @ Date numerice care stocheaz sume nsoite de semnul monetar, n intervalul -
-
Visual Basic Aplicaii n inginerie 45
$922,337,203,685,477.5808 - $922,337,203,685,477.5807. Semnul monetar este scris automat de ctre Visual Basic.
Date Date calendaristice i timp. Data se ncadreaz n intervalul 1 ianuarie 100 31 decembrie 9999
Double # Valori numerice n intervalul -1.79769313486232E+308 1.79769313486232E+308. Este denumit i dubl precizie
Integer % Valori numerice fr zecimale, n intervalul -32,768-32,767.
Long & Similar cu Integer, dar cu valori n intervalul -2,147,483,648-2,147,483,647. Acest tip consum mai mult memorie. Este denumit i long integer (ntreg lung).
Object Tip special de date, care face referire la obiecte cum sunt controalele sau form-ul.
Single ! Valori numerice n intervalul -3,402823E+38 to 3.402823E+38. Este denumit i simpl precizie.
String ir de caractere alfanumerice (maxim 65400 de caractere). Pe lng cifre i litere, se pot
-
Visual Basic Aplicaii n inginerie 46
include caractere speciale precum ^, %. and @.
Variant Dat de orice tip, utilizat atunci cnd tipul datei este incert.
Sufixele sunt semne distinctive care se pun imediat dup numele declarat printr-o operaie de atribuire i foreaz tipul variabilei indiferent de rezultatul sau de tipul membrului drept al instruciunii.
Caracterizarea variabilelor dup domeniul de aplicabilitate
Visual Basic-ul i mparte variabilele n dou domenii mari [FRI 01], [NAS 00], [ANI 03], i anume: domeniul public i domeniul privat.
Declararea unei variabile publice se face n zona declarativ general a aplicaiei sau prin cuvntul rezervat PUBLIC tot ntr-o zon declarativ. Sintaxa de declarare va fi:
PUBLIC sau PUBLIC , Variabilele locale se declar n zone declarative
ale subprogramelor a cror caracterizare ncepe cu PRIVATE.
Diferena ntre aceste dou tipuri de variabile este dat de zona de vizibilitate a lor astfel:
-
Visual Basic Aplicaii n inginerie 47
- variabilele publice sunt apelabile (sunt vzute) n orice parte a aplicaiei;
- variabilele private sunt vizibile numai n zonele de program .
Caracterizarea variabilelor dup durata lor de via se face prin intermediul declaraiilor de tip dinamic sau static.
O variabil declarat ntr-un program cu DIM are durata de via strict legat de perioada de executare a subprogramului, i anume: n momentul lansrii n execuie a subprogramului la ntlnirea declaraiei DIM n memorie se rezerv o zon corespunztoare variabilei i se iniializeaz aceast zon.
La ncetarea (la terminarea) executrii procedurii, acea parte de memorie se elibereaz putnd fi folosit de orice alt procedur.
Declararea static se face cu ajutorul cuvntului rezervat STATIC i pentru o variabil are urmtoarea aciune: la prima ntlnire a declaraiei STATIC variabilei declarate n acest mod i se ataeaz o zon de memorie care se iniializeaz. La terminarea executrii procedurii, zona respectiv de memorie nu se elibereaz ci pstreaz n continuare ultima valoare a variabilei. De remarcat c acea zon de memorie nu este vizibil din nici o alt procedur inclus.
Exemplu 1: Private Sub Command1_Click() Static s As Integer s = s + 1 Print Tab(20), "s="; s
-
Visual Basic Aplicaii n inginerie 48
End Sub La prima apelare va apare 1 (PRINT A : 1); la a doua apelare va apare 2 .a.m.d.
Figura 4.2. Scrierea codului Exemplu 2: PRIVATE SUB Ex1 Dim s AS INTEGER s = s + 1 PRINT s END SUB
-
Visual Basic Aplicaii n inginerie 49
Figura 4.3. Rularea aplicaiei Dac aceeai declarare se face cu DIM, orice
apelare are ca rezultat valoarea 1. Atenie! Dac n cadrul unei funcii sau proceduri se utilizeaz mai multe variabile, acestea vor fi declarate n mod explicit. Exemplu: Dac se dorete declararea variabilelor a i b de tip integer, atunci se utilizeaz structura: Dim a As Integer, b As Integer aceasta avnd ca efect recunoaterea att a lui a ct i a variabilei b de tip integer
-
Visual Basic Aplicaii n inginerie 50
Structura Dim a, b As Integer va avea ca efect recunoaterea lui b ca intreg, iar a variabilei a de tip Variant.
Pe lng aceaste tipuri de date predefinite, utilizatorul poate s-i declare propriile tipuri de date.
Acestea se declar n seciunea General/Declarations cu ajutorul cuvintelor Type i End Type[FRI 01], [NAS 00], [ANI 03] :
Type tip Var1 As tip1 Var2 As tip2 ..... END TYPE Apoi se va declara variabila de acest tip cu Dim
sau Static. Acest tip de date va fi accesat utilizndu-se notaia cu punct. Exemplu: se definete tipul de date Studenti
Type studenti Nr_mat As Integer Nume As String * 20 Prenume As String * 20 Facultate As String * 30 End Type
se declar o variabil de tip Studenti Dim a As Studenti
se atribuie valori cmpurilor din noua variabil
-
Visual Basic Aplicaii n inginerie 51
a . Nr_mat = InputBox(Introducei numrul matricol ) a . Nume = InputBox(Introducei numele studentului) a . Prenume = InputBox(Introducei prenumele studentului ) a . Facultatea = InputBox(Introducei numele facultii )
4.2. Constante Constantele sunt identificatori a cror valoare
este cunoscut anterior execuiei programului.Constantele se declar n mod explicit utiliznd sintaxa [NAS 00], [FRI 01], [ANI 03]:
Const [as ] = expresie
Exemplu: Const PI As double = 3.14 Const data_admiterii = # 7/7/2005# Const nume = Popa Vasile
4.3. Operatori
1.Operatori matematici a) operatori uzuali: +; -; *; / funcioneaz cu
orice fel de date numerice b) operatorul MOD: este un operator care red
restul unei operaii de mprire i este un numr ntreg
-
Visual Basic Aplicaii n inginerie 52
c) operatorul ^ (ridicare la putere) Ex.: 2 ^ 4 = 24
((4^4)^4)^4 4444 2.Operatori logici : AND; OR; XOR; NOT
AND A F OR A F A A F A A A F F F F A F
XOR A F NOT
A A F A F F F A F A
Tabelul 4.2.Utilizarea operatorilor logici
Operator Exemplu Descriere And If (A > B And
(C < D) Are rezultatul True (adevrat) atunci cnd ambele condiii sunt adevrate
Or If (A > B) Or (C < D)
Are rezultatul True (adevrat) atunci cnd mcar una dintre condiii este adevrat
Not If Not (strRasp = Da)
Are rezultatul True (adevrat) atunci cnd condiia evaluat este fals i invers
3.Operatori de comparare: =;
-
Visual Basic Aplicaii n inginerie 53
Tabelul 4.3. Utilizarea operatorilor de comparare[FRI 01]
Operator Exemplu Descriere > lblVenit.Caption >
Estimat Are rezultatul True (adevrat) atunci cnd valoarea din stnga este strict mai mare (numeric sau alfabetic) dect cea din dreapta
< Venit < 1200
Are rezultatul True atunci cnd valoarea din stnga este strict mai mic (numeric sau alfabetic) dect cea din dreapta
= Nota = Limita Are rezultatul True atunci cnd valoarea din stnga este egal sau identic cu cea din dreapta
>= Nume >= Pop Are rezultatul True atunci cnd valoarea din stnga este mai mare sau egal (numeric sau alfabetic) dect cea din dreapta
-
Visual Basic Aplicaii n inginerie 54
(numeric sau alfabetic) dect cea din dreapta
txtRaspuns.Text Da
Are rezultatul True atunci cnd valoarea din stnga este diferit de cea din dreapta
1. Operatori pentru lucrul cu iruri. Exemplu: operatorii & i + execut
concatenare.
2. Ali operatori IN se vor regsi valori n cadrul unei liste LIKE execut comparare cu caractere de nlocuire BETWEEN se vor regsi valori n cadrul unei game
4.4. Funcii predefinite
Limbajul VB cuprinde n plus o serie de funcii predefinite care faciliteaz scrierea procedurilor i funciilor utilizator [FRI 01], [NAS 00], [ANI 03]:
Abs( expresie_numerica ): returneaza valoarea absoluta a unei expresii numerice, sau a unui numar
Asc( sir_caractere ): returneaza codul primului caracter din sirul de caractere specificat
-
Visual Basic Aplicaii n inginerie 55
Chr( COD_CARACTER ): returneaza caracterul cu codel specificat
Date(): Returneaza data calendaristica Day( data_calendaristica ): returneaza numarul
zilei din luna
Month( data_calendaristica ): returneaza numarul lunei din an
Year( data_calendaristica ): returneaza anul CDate( expresie ): face conversia la tipul Date CDbl( expresie ): face conversia la tipul Double Dec( expresie ): face conversia la tipul Decimal CInt( expresie ): face conversia la tipul Integer CLng( expresie ): face conversia la tipul Long CSng( expresie ): face conversia la tipul Single CStr( expresie ): face conversia la tipul String Cos( expresie_numeric ): returneaz cosinus
dintr-o expresie numeric sau dintr-un numr. Valoarea returnat este de tip Double.
Exp( expresie_numeric ): returneaz valoarea constantei e ridicat la o putere (expresie numeric sau numr).
-
Visual Basic Aplicaii n inginerie 56
Log( expresie_numeric ): returneaz logaritm natural dintr-un numr sau dintr-o expresie numeric.
IsDate( expresie ): returneaz valoarea adevrat (TRUE) dac expresia dintre paranteze este compatibil cu o dat calendaristic.
IsEmpty( expresie ): returneaz valoarea adevrat (TRUE) dac expresia dintre paranteze nu conine o valoare. Null este considerat valoare.
IsNumeric( expresie ): returneaz valoarea adevrat (TRUE) dac expresia dintre paranteze poate fi evaluat ca numr.
IsObject( expresie ): returneaz valoarea adevrat (TRUE) dac identificatorul dintre paranteze este de tip obiect.
IsError( expresie ): returneaz valoarea adevrat (TRUE) dac expresia dintre paranteze conine o eroare.
Len( ir_caractere/variabil ): returneaz numrul de caractere ale irului de caractere specificat sau numrul de octei necesari pentru a stoca coninutul unei variabile.
Space( numr): returneaz numrul de spaii specificate
Str(expresie_numeric): convertete rezultatul evalurii expresiei numerice dintre paranteze ntr-un ir de caractere.
-
Visual Basic Aplicaii n inginerie 57
Val(ir_caractere): returneaz rezultatul evalurii irului de caractere specificat, ntr-un numr
Mid((ir_caractere, poziie_start[, lungimea])): extrage un ir de caractere dintr-un alt ir de caractere. Funcii de dialog [FRI 01], [ANI 03]
1) INPUT BOX [prompt; title; default; xpos;
ypos; helpfile; context) Primul argument este obligatoriu i este cel care
transmite invitaia de a introduce un anumit tip de operaie.
title parametru text care apare afiat n bara de prezentare a ferestrei Input Box
default mesaj text care se afl implicit n cutia de text aferent Input Box
xpos; ypos valorile coordonatelor din colul din stnga sus al ferestrei (coordonatele colului din stnga sus al ferestrei Input Box pe ecran).
Input Box:
TITLE
Default
prompt sub form de etichet
-
Visual Basic Aplicaii n inginerie 58
Exemplu S se introduc de la tastatur valoarea razei unui
cerc. Secvena de cod va fi: Private Sub Command1_Click() Dim r As Integer r = InputBox("Introduceti raza cercului",
"Raza cercului") End Sub
Figura 4.4.Rularea aplicaiei 2) MSG BOX este o funcie ce se utilizeaz
pentru afiarea unor texte.
-
Visual Basic Aplicaii n inginerie 59
MSG BOX are sintaxa urmtoare: MSG BOX (msg, type, title, helpfile, context) msg expresie ir afiat ca mesaj n caseta
dialog; este argument obligatoriu; type expresie numeric ce specific numrul i
tipul butoanelor care vor fi afiate title expresie ir ce apare n bara de titlu a
casetei de dialog context asigur asistena soft MSG BOX:
MSGBOX afieaz un mesaj ntr-o caset de dialog i prin argumente specific titlul i mesajul casetei preciznd i tipul butoanelor care trebuie afiate pe fereastra casetei. Este o cutie de text prin care se afieaz un rspuns i n acelai timp se ateapt o aciune aferent acelui rspuns.
Tabelul 4.4Simbolurile grafice (icon-urile) din funcia MsgBox ()[FRI 01]
Valoare Literal predefinit Descriere 16 vbCritical Afieaz icon-ul Critical
Message
TITLE
msg.
type
argumentul obligatoriu al MSG BOX i este un mesaj de tip ir de caractere afiat ntr-o cutie de text
buton
-
Visual Basic Aplicaii n inginerie 60
32 vbQuestion Afieaz icon-ul Warning Query
48 vbExclamation Afieaz icon-ul Warning Message
64 vbInformation Afieaz icon-ul Information Message
Tabelul 4.5.Specificarea butoanelor implicite pentru funcia MsgBox ()[FRI 01]
Valoare Literal predefinit Descriere 0 vbDefaultButton1 Primul buton este
implicit 256 vbDefaultButton2 Al doilea buton este
implicit 512 vbDefaultButton3 Al treilea buton este
implicit 768 vbDefaultButton4 Al patrulea buton este
implicit Tabelul 4.6. Alte opiuni ce pot fi incluse n argumentul
intTip al funciei MsgBox ()
Valoare Literal predefinit Descriere 0 vbApplicationModal Fereastr modal
la nivel de aplicaie: utilizatorul trebuie s
-
Visual Basic Aplicaii n inginerie 61
rspund la mesaj nainte de a putea continua lucrul n aplicaia curent
4096 vbSystemModal Fereastr modal la nivel de sistem: utilizatorul trebuie s rspund la mesaj nainte de a putea continua lucrul cu orice aplicaie Windows
16384 vbMsgBoxHelpButton Adaug butonul Help la fereastra MsgBox () astfel se poate ajunge la 4 butoane afiate
65536 vbMsgBoxSetForeground Specific faptul c fereastra MsgBox () se afieaz pe ecran deasupra oricrei alte ferestre
524288 vbMsgBoxRight Textul este aliniat la dreapta
1048576 vbMsgBoxRtlReading Textul apare de la dreapta la stnga (interfee n arab sau
-
Visual Basic Aplicaii n inginerie 62
ebraic)
Tabelul 4.7.Butoanele folosite de funcia MsgBox ()[FRI 01]
Valoare Literal predefinit Descriere 0 vbOKOnly Afieaz doar
butonul OK 1 vbOKCancel Afieaz butoanele
OK i Cancel 2 vbAbortRetryIgnore Afieaz butoanele
Abort, Retry i Ignore
3 vbYesNoCancel Afieaz butoanele Yes, No i Cancel
4 vbYesNo Afieaz butoanele Yes i No
5 vbRetryCancel Afieaz butoanele Retry i Cancel
Tabelul 4.8. Valorile returnate de MsgBox ()
Valoare Literal
predefinit Descriere
1 vbOK A fost selectat butonul OK 2 vbCancel A fost selectat butonul
Cancel 3 vbAbort A fost selectat butonul
Abort 4 vbRetry A fost selectat butonul
Retry 5 vbIgnore A fost selectat butonul
-
Visual Basic Aplicaii n inginerie 63
Ignore 6 vbYes A fost seelctat butonul Yes 7 vbNo A fost selectat butonul No Exemplu S se afieze un mesaj de interogare a utilizatorului n privina corectitudinii unor date introduse
Figura 4.5. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 64
Secvena de cod pentru exemplificarea utilizrii acestei funcii va fi: Private Sub Command1_Click() Dim r As Integer r = MsgBox("Datele introduse sunt corecte? ", vbYesNo + vbQuestion, "ATENTIE") End Sub
4.5. Aplicaii Aplicaia 4. S se determine spaiul parcurs de un vehicul pentru care se cunosc viteza i timpul deplasrii.
Se va realiza macheta propus, machet ce cuprinde dou butoane de comand, unul intitulat Calcul, ce va calcula parametrul cerut, cellalt va realiza ieirea din aplicaie
Pentru aceasta, se vor poziiona pe form cele dou butoane de comand
Pentru fiecare obiect se va tasta F4, pentru vizualizarea ferestrei de proprieti
Se vor modifica proprietile obiectelor astfel - form: proprietatea Caption va lua valoarea
Aplicaia 1 - proprietatea Forecolor va lua alt valoare - command1: proprietatea Caption va lua
valoarea Calcul spaiu
-
Visual Basic Aplicaii n inginerie 65
- command2: proprietatea Caption va lua valoarea Ieire
Figura 4.6. Proiectarea interfeei aplicaiei
- se vor ataa secvene de cod pentru butoanele command1 i command2 astfel:
Private Sub Command1_Click() Dim viteza As Double Dim timp As Double Dim spatiu As Double viteza = InputBox("Introducei viteza vehiculului:") timp = InputBox("Introducei viteza vehiculului:")
-
Visual Basic Aplicaii n inginerie 66
spatiu = viteza * timp Print Print Print Tab(30); "viteza vehiculului="; viteza Print Tab(30); "durata deplasrii="; timp Print Tab(30); "distana parcurs="; spatiu End Sub Private Sub Command2_Click() End End Sub
se va rula programul utiliznd comanda RUN se vor introduce datele cerute de aplicaie,
respectiv viteza i durata rezultatul este prezentat n figura urmtoare:
Figura 4.7. Interfaa de introducere a datelor
-
Visual Basic Aplicaii n inginerie 67
Figura 4.8. Afiarea rezultatelor Aplicaia 5. S se determine duritatea Brinell. Datele de intrare sunt fora de apsare, diametrul bilei i diametrul calotei imprimate.
)(2
22 dDDDFHB = (4.1)
unde: F-fora de apsare D-diametrul bilei d-diametrul calotei imprimate
-
Visual Basic Aplicaii n inginerie 68
Se va realiza macheta propus, machet ce cuprinde dou butoane de comand, unul intitulat Calcul, ce va calcula parametrul cerut, cellalt va realiza ieirea din aplicaie
Figura 4.9 Proiectarea interfeei Pentru fiecare obiect se va tasta F4, pentru
vizualizarea ferestrei de proprieti Se vor modifica proprietile obiectelor astfel - form: proprietatea Caption va lua valoarea
Aplicaia 1 - proprietatea Forecolor va lua alt valoare, la
alegere - command1: proprietatea Caption va lua
valoarea Calcul spaiu, iar proprietatea Name va lua valoarea Calcul,
-
Visual Basic Aplicaii n inginerie 69
- command2: proprietatea Caption va lua valoarea Ieire, iar proprietatea Name va lua valoarea Ieire
Figura 4.10. Modificarea proprietilor
- se vor ataa secvene de cod pentru butoanele command1 i command2 astfel:
Private Sub Calcul_Click() Const pi = 3.14 Dim f As Double Dim d As Double Dim d1 As Double Dim hb As Double f = InputBox("Introduceti forta de apsare:")
-
Visual Basic Aplicaii n inginerie 70
d = InputBox("Introduceti diametrul bilei:") d1 = InputBox("Introduceti diametrul urmei:") hb = 2 * f / pi / d / (d - Sqr((d * d) - (d1 * d1))) Print Print Print Tab(30); "forta de apsare="; f Print Tab(30); "diametrul bilei="; d Print Tab(30); "diametrul urmei="; d1 Print Print Tab(30); "Duritatea Brinell calculat HB="; d End Sub Private Sub iesire_Click() End End Sub
Figura 4.11. Introducerea datelor
-
Visual Basic Aplicaii n inginerie 71
se va rula programul utiliznd comanda RUN se vor introduce datele cerute de aplicaie,
respectiv viteza i durata Rezultatul este prezentat n figura urmtoare:
Figura 4.12. Afiarea rezultatelor
Aplicaia 6. S se determine duritatea Vickers, avnd ca date de intrare F (fora de apsare) i d (diagonala ptratului). Relaia de calcul va fi:
2*189,0d
FHV = (4.2)
-
Visual Basic Aplicaii n inginerie 72
se vor urma aceiai pai ca la aplicaiile precedente pentru a se realiza forma i butoanele de comand
se va scrie codul :
Private Sub Command1_Click() Dim f As Double Dim d As Double Dim hv As Double f = InputBox("Introduceti forta de apsare:") d = InputBox("Introduceti diagonala ptratului:") hv = 0.189 * f / d / d Print Print Print Tab(30); "forta de apsare="; f Print Tab(30); "diagonala ptratului="; d Print Print Tab(30); "Duritatea Vickers calculat HV="; hv; "kgf/mm^2" End Sub Private Sub Command2_Click() End End Sub
se va rula aplicaia
Pentru valorile F=300,d=1.5 rezultatul va fi HV=25.2 kgf/mm^2
-
Visual Basic Aplicaii n inginerie 73
Figura 4.13. Afiarea rezultatelor Aplicaia 7. S se determine lucrul mecanic al unui arc solicitat la ntindere. Datele de intrare sunt:
- constanta elastic c=20 - alungirea final - alungirea iniial
Relaia de calcul este [BOD 97] (4.3):
)_
_(2
_tan_
initialaalungirea
final alungireaelastic taconsmecanicLucrul
=
-
Visual Basic Aplicaii n inginerie 74
se vor urma aceiai pai ca la aplicaiile
precedente pentru a se realiza forma i butoanele de comand
se va defini obiectul Label; se vor modifica proprietile Caption ( cu valoarea Calculul lucrului mecanic) i Autosize(cu valoarea True)
Figura 4.14.Modificarea proprietilor se va scrie codul
Private Sub Command1_Click() Const c = 20 Dim l As Double Dim di As Double Dim df As Double di = InputBox("Introduceti alungirea initiala:")
-
Visual Basic Aplicaii n inginerie 75
df = InputBox("Introduceti alungirea finala:") l = c / 2 * (di * df) Print Print Print Print Print Tab(30); "alungirea initiala="; di Print Tab(30); "alungirea finala="; df Print Print Tab(30); "Lucrul mecanic calculat="; l End Sub Private Sub iesire_Click() End End Sub se va rula aplicaia
Figura 4.15. Afiarea rezultatelor
-
Visual Basic Aplicaii n inginerie 76
Aplicaia 8. S se determine duritatea unui material dup una din metodele Vickers sau Brinell. Se vor utiliza butoane de opiune. Se deschide o nou form Se poziioneaz dou butoane de opiune, unul
pentru duritatea Vickers, cellalt pentru duritatea Brinell
Se deschide fereastra de proprieti a butoanelor de opiune, utiliznd tasta F4
Se modific proprietile Caption (cu valoarea Duritatea Brinell, respectiv duritatea Vickers)
Se scrie codul aferent celor dou butoane de opiune
Figura 4.16. Modificarea proprietilor
-
Visual Basic Aplicaii n inginerie 77
Private Sub Option1_Click() Const pi = 3.14 Dim f As Double Dim d As Double Dim d1 As Double Dim hb As Double f = InputBox("Introduceti forta de apsare:") d = InputBox("Introduceti diametrul bilei:") d1 = InputBox("Introduceti diametrul urmei:") hb = 2 * f / pi / d / (d - Sqr((d * d) - (d1 * d1))) Print Print Print Print Print Tab(30); "forta de apsare="; f Print Tab(30); "diametrul bilei="; d Print Tab(30); "diametrul urmei="; d1 Print Print Tab(30); "Duritatea Brinell calculat HB="; d End Sub Private Sub Option2_Click() Dim f As Double Dim d As Double Dim hv As Double f = InputBox("Introduceti forta de apsare:") d = InputBox("Introduceti diagonala ptratului:") hv = 0.189 * f / d / d Print Print Print Tab(30); "forta de apsare="; f Print Tab(30); "diagonala ptratului="; d
-
Visual Basic Aplicaii n inginerie 78
Print Print Tab(30); "Duritatea Vickers calculat HV="; hv; "kgf/mm^2" End Sub
Figura 4.17.Afiarea rezultatelor Aplicaia 9. S se determine momentele de inerie n raport cu cele trei axe principale pentru un paralelipiped din font cu densitatea r=7800 kg/m3 i avnd dimensiunile a=0,5 m, b=0,3 m i c=0,04 m.
-
Visual Basic Aplicaii n inginerie 79
Relaia de calcul va fi [BOD97]:
)(121 22
1 cbrabcI += (4.4)
)(121 22
2 carabcI += (4.5)
)(121 22
3 barabcI += (4.6) Se va realiza macheta propus, machet ce
cuprinde dou butoane de comand, unul intitulat Calcul, ce va calcula parametrul cerut, cellalt va realiza ieirea din aplicaie
se va defini obiectul Label; se vor modifica proprietile Caption ( cu valoarea Calculul lucrului mecanic), Autosize(cu valoarea True), Backcolor (la alegere) i Forecolor (la alegere).
se vor aeza pe form trei butoane de opiune, pentru determinarea fiecrui moment de inerie
Private Sub Check1_Click() Const r = 7800 Dim a As Double Dim b As Double Dim c As Double Dim l As Double a = InputBox("Introduceti dimensiunea a:") b = InputBox("Introduceti dimensiunea b:") c = InputBox("Introduceti dimensiunea c:") l = 1 / 12 * r * a * b * c * (b ^ 2 + c ^ 2)
-
Visual Basic Aplicaii n inginerie 80
Text1.Text = l End Sub Private Sub Check2_Click() Const r = 7800 Dim a As Double Dim b As Double Dim c As Double Dim l As Double a = InputBox("Introduceti dimensiunea a:") b = InputBox("Introduceti dimensiunea b:") c = InputBox("Introduceti dimensiunea c:") l = 1 / 12 * r * a * b * c * (a ^ 2 + c ^ 2) Text2.Text = l End Sub Private Sub Check3_Click() Const r = 7800 Dim a As Double Dim b As Double Dim c As Double Dim l As Double a = InputBox("Introduceti dimensiunea a:") b = InputBox("Introduceti dimensiunea b:") c = InputBox("Introduceti dimensiunea c:") l = 1 / 12 * r * a * b * c * (a ^ 2 + b ^ 2) Text3.Text = l End Sub
-
Visual Basic Aplicaii n inginerie 81
Figura 4.17. Modificarea proprietilor
se vor aeza trei casete de text, la care se vor
modifica proprietile Text, tergndu-se coninutul
prin selecia uneia dintre cele trei opiuni se va afia momentul de inerie corespunztor uneia dintre cele trei axe
se va scrie codul se va rula aplicaia
-
Visual Basic Aplicaii n inginerie 82
4.18. Proiectarea interfeei
Figura 4.19. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 83
Aplicaia 10. S se determine temperatura dezvoltat n zona de achiere la burghiere. Datele de intrare sunt: C-constant ce depinde de materialul de prelucrat s-avansul burghiului [mm/rot] D-diametrul burghiului [mm] X,y-exponeni determinai experimental Coeficienii C,x i y vor fi dai sub form de constant, iar D i s vor fi citii de la tastatur Relaia de calcul va fi:[PIC92], [LUP00]
yx DCs= (4.7)
se deschide o nou aplicaie se poziioneaz pe form trei casete de text i trei
etichete se poziioneaz dou butoane de comand datele de la tastatur nu vor mai fi citite cu
ajutorul funciei InputBox, ci vor fi citite ca i coninut al casetelor de text
se vor modifica proprietile etichetelor : proprietatea Caption ( cu afirile aferente), WordWrap cu valoarea True i Autosize ( cu valoarea True)
se vor modifica proprietile casetelor de text referitoare la culoarea, dimensiunea i fontul folosit
-
Visual Basic Aplicaii n inginerie 84
Figura 4.20. Modificarea proprietilor
se va modifica proprietatea Text prin tergerea coninutului
se vor modifica proprietile Caption ale
butoanelor de comand se va ataa cod butoanelor de comand
Private Sub Command1_Click() Dim d As Integer Dim s As Double Const c = 400 Const x = 0.8 Const y = 0.9 d = Val(Text1.Text)
-
Visual Basic Aplicaii n inginerie 85
s = Val(Text2.Text) teta = c * s ^ x * d ^ y Text3.Text = teta End Sub Private Sub Command2_Click() End End
Figura 4.21. Proiectarea interfeei
se va rula aplicaia se vor introduce valorile d=15mm, s=0.2mm/rot
-
Visual Basic Aplicaii n inginerie 86
Figura 4.22. Afiarea rezultatelor Observaie: Aceast aplicaie ofer alt posibilitate de a introduce datele, utiliznd proprietatea text a unei cutii de text. De asemeni, la afiarea datelor se va folosi tot un TEXTBOX. Aplicaia 11. O rachet cu masa m=100 kg va fi accelerat la prima vitez cosmic v=8000 m/s. Viteza gazelor de ardere va fi de 3000 m/s, iar timpul de ardere t=120s. S se determine ce mas de combustibil este necesar pentru ca racheta s ating viteza v.
-
Visual Basic Aplicaii n inginerie 87
Formula de calcul va fi [BOD97]:
)1( 1 =+v
gtv
gc mm (4.8) se proiecteaz interfaa cu utilizatorul; aceasta va
conine trei etichete i trei casete de text
Figura 4.23. Proiectarea interfeei cu utilizatorul se modific proprietile casetelor de text i ale
etichetelor se aaz pe form un buton de comand se ataeaz butonului de comand secvena de cod
care urmeaz
-
Visual Basic Aplicaii n inginerie 88
Private Sub Command1_Click() Dim mg As Integer Dim t As Double Const vr = 3000 Const v1 = 8000 g = 9.8 mg = Val(Text1.Text) t = Val(Text2.Text) mc = mg * (Exp((v1 + g * t) / vr) - 1) Text3.Text = mc End Sub
se ruleaz programul cu datele din enunul programului, informaia
afiat va fi:
Figura 4.24. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 89
Aplicaia 12. Se plaseaz ntr-un ascensor un pendul matematic i un pendul elastic avnd constanta elastic k=300 N/m i masa m=1 kg. Se deplaseaz ascensorul pe vertical cu acceleraia constant de 4m/s2. S se determine care dintre cele dou pendule are perioada oscilatorie mai mare. Perioada pendulului matematic este [BOD97]:
agTm +=
12 (4.9)
unde : g=9,8 m/s2 Perioada pendulului elastic va fi [BOD97]:
kmTe 2= (4.10)
se aaz pe form o caset de text creia i vor fi
modificate proprietile Text, Font, Forecolor i Multiline pentru o mai bun lizibilitate a mesajului pe care l va conine
se poziioneaz un buton de comand ce va avea rolul de a declana codul de determinare a pendulului cu cea mai mare perioad
-
Visual Basic Aplicaii n inginerie 90
Figura 4.25. Proiectarea interfeei
Figura 4.26. Modificarea proprietilor
-
Visual Basic Aplicaii n inginerie 91
se ataeaz cod butonului de comand
Command1_Click() k = 300 m = 1 a = 4 g = 9.8 tm = 2 * 3.14 * Sqr(1 / (g + a)) te = 2 * 3.14 * Sqr(m / k) If tm > te Then Text1.Text = "Perioada pendulului matematic este mai mare" Else Text1.Text = "Perioada pendulului elastic este mai mare" End If End Sub
Figura 4.27. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 92
se ruleaz aplicaia se acioneaz click asupra butonului de comand rezultatul va fi cel prezentat n figura anterioar
Aplicaia 13. Se plaseaz ntr-un ascensor un pendul matematic i un pendul elastic avnd constanta elastic k=300 N/m i masa m=1 kg. Se deplaseaz ascensorul pe vertical cu acceleraia constant de 4m/s2. Dac perioada pendulului matematic este mai mare s se afieze un mesaj.
Se realizeaz o machet cu un buton de comand Se modific proprietile butonului de comand
(proprietatea Caption ) Se ataeaz cod butonului de comand
Private Sub Command1_Click() k = 300 m = 1 a = 4 g = 9.8 tm = 2 * 3.14 * Sqr(1 / (g + a)) te = 2 * 3.14 * Sqr(m / k) If tm > te Then MsgBox (" Ati obtinut rezultatul dorit") End Sub Sau Private Sub Command1_Click()
-
Visual Basic Aplicaii n inginerie 93
k = 300 m = 1 a = 4 g = 9.8 tm = 2 * 3.14 * Sqr(1 / (g + a)) te = 2 * 3.14 * Sqr(m / k) If tm > te Then MsgBox (" Ati obtinut rezultatul dorit") End If End Sub
Figura 4.28. Proiectarea interfeei
-
Visual Basic Aplicaii n inginerie 94
Observaie: S-a exemplificat utilizarea structurii condiionale If n dou variante. Afiarea rezultatelor s-a realizat cu ajutorul funciei Msg Box Rezultatul rulrii este prezentat n figura urmtoare:
Figura 4.29. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 95
Capitolul 5 Structuri de control
Cunotine prealabile
Elementele limbajului Visual Basic Operatori de comparare
Combinarea condiiilor cu ajutorul operatorilor logici
Plan tematic Intrebri obiectiv 5.1. Structuri de
control alternative 5.2. Structuri repetitive 5.3. Aplicaii
- Ce sunt structurile de control? - Care sunt structurile alternative n Visual Basic? -Care sunt structurile repetitive ale limbajului?
Cuvinte-cheie
-structuri alterantive -test iniial
-structuri repetitive -test final
-
Visual Basic Aplicaii n inginerie 96
Limbajul procedural permite o programare
structurat. Orice algoritm tradus n limbaj procedural poate fi descompus n cele trei structuri fundamentale:
- atribuire; - structur de control decizional; - structur de control repetitiv.. Atribuirea se realizeaz prin intermediul
semnului = i are forma
VARIABIL = EXPRESIE. Expresia poate fi: o variabil; numele unei funcii sau una ori mai multe operaii. Dac numele variabilei receptoare este definit anterior atunci tipul expresiei din dreapta trebuie s aib ca domeniu un subdomeniu al tipului variabilei din stnga.
Instruciune 1
Instruciune 2
Instruciune n
-
Visual Basic Aplicaii n inginerie 97
Dac variabila din partea stng se definete implicit n cadrul acestei operaii de atribuire atunci tipul este dat de tipul rezultatului. Dac se face n cadrul operaiei de atribuire o declarare forat a tipului atunci tipul rmne cel declarat. 5.1. Structuri de control alternative[FRI 01], [NAS
00], [ANI 03] Structura de control decizional este structura uzual prin intermediul creia algoritmii se ramific.
Ea este realizat prin intermediul instruciunii IF sau prin intermediul instruciunii CASE. 1) Instruciunea IF are trei forme:
a) IF cu ramur vid; b) IF uzual cu dou ramuri; c) IF-uri multiple sau imbricate.
Condiie
Instruciune 1
Instruciune 2 Instruciune 3
-
Visual Basic Aplicaii n inginerie 98
a) IF-ul cu ramur vid este instruciunea IF care are activ numai o singur ramur i este obligatoriu ca aceast ramur s fie ramura THEN. IF-ul cu ramur vid are dou forme: 1) IF then instruciune
Aceast form se utilizeaz dac instruciune execut n mod obligatoriu o singur instruciune .
Aceast form de IF ncape pe un singur rnd. 2) IF then instruciune 1 End If n acest caz instruciune 1 poate cuprinde una
sau mai multe instruciuni i n mod obligatoriu instruciune 1 se scrie pe alt rnd dect IF-ul.
Exemplu: S se calculeze sumele ce vor trebui pltite pentru
asigurarea autovehiculelor n funcie de capacitatea cilindric a lor . Se vor utiliza ambele variante de IF.
Private Sub Command1_Click() Dim n As Integer Dim suma As Double n = InputBox("Introducei capacitatea
cilindric") If n 800 And n 1200 And n 1600 Then suma = 60 End If
-
Visual Basic Aplicaii n inginerie 99
MsgBox "Suma ce va fi achitata=" & suma End Sub
b) IF-ul uzual cu dou ramuri
IF then instruciune 1 Else instruciune 2 END IF. n acest caz instruciune 1 ca de altfel i
instruciune 2 pot fi formate din cte o singur instruciune sau pot cuprinde secvene de instruciuni.
Fiecare dintre instruciuni se scrie pe cte un rnd. Modul de aciune: se testeaz condiia i dac
aceasta este ndeplinit se execut instruciune 1 i se trece dup END IF (se pred controlul instruciunii urmtoare de dup END IF).
Dac aceast condiie nu este ndeplinit atunci se execut instruciune 2 i se pred controlul instruciunii de dup END IF.
c) IF-uri multiple (imbricate) IF THEN instruciune 1 ELSE IF THEN instruciune 2 ELSE IF ELSE instruciune (n+1)
-
Visual Basic Aplicaii n inginerie 100
END IF. Ca regul general se recomand a nu se folosi
mai mult de 7 imbricri (7 IF-uri unul n altul). Deoarece IF-ul consum foarte mult timp, se
recomand ca cea mai des ndeplinit condiie s fie trecut prima.
n sintaxa IF-urilor imbricate ultimul ELSE este simplu (nu mai exist dup ELSE nici un alt IF).
Exemplu S se rezolve problema precedent utilizndu-
se varianta structurii cu If-uri imbricate.
Figura 5.1 Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 101
Private Sub Command1_Click() Dim n As Integer Dim suma As Double n = InputBox("Introducei capacitatea cilindric") If n
-
Visual Basic Aplicaii n inginerie 102
Case Is [Case Is
] [Case Else
] End Select Select Case Case To Case To
[Case To ]
[Case Else ]
End Select Valoare (1,2,...,n) poate fi valoarea unei variabile,
a unei expresii ori o list de expresii. Exemplu S se rezolve problema precedent utilizndu-
se varianta structurii CASE. Private Sub Command1_Click() Dim n As Integer
-
Visual Basic Aplicaii n inginerie 103
Dim suma As Double n = InputBox("Introduceti capacitatea
cilindric") Select Case n Case Is
-
Visual Basic Aplicaii n inginerie 104
5.2.Structuri repetitive[FRI 01], [NAS 00], [ANI 03]
1)Structura de control repetitiv cu test iniial
este structura de control fundamental. WHILE instruciune WEND Acest tip de instruciune este una adugat
limbajului Visual Basic.
Modul de aciune: se testeaz condiia i dac
aceasta este ndeplinit se execut instruciune i se testeaz iari condiia. n momentul n care condiia nu mai este ndeplinit controlul se pred dup WEND.
Aceast instruciune poate s nu se execute niciodat. Variabila testat n condiie trebuie s fie definit i iniializat anterior instruciunii WHILE.
Instruciune 1
Condiie
Instruciune 2
Adevrat
Fals
-
Visual Basic Aplicaii n inginerie 105
Instruciunea din corpul lui WHILE trebuie s conin o aciune care s modifice (s altereze) valoarea variabilei testate n condiie.
2)Secvena de instruciuni DO..LOOP n cadrul acestui gen de instruciuni se ntlnesc
patru tipuri: a) DO WHILE instruciune LOOP Acest tip de secven este de fapt forma de
WHILE obinuit. b) DO instruciune LOOP WHILE Aciune: se execut instruciunea i se testeaz
condiia. Dac aceast condiie este ndeplinit relanseaz execuia instruciunii; dac nu este ndeplinit atunci se trece mai departe. Este o instruciune repetitiv cu test final dar inversat. Execuia acestei instruciuni se face cel puin o dat. Variabila testat n condiie nu trebuie declarat anterior lui DO.
Instruciunea trebuie s conin ns o aciune care s modifice valoarea variabilei testate.
c) DO UNTIL instruciune LOOP
-
Visual Basic Aplicaii n inginerie 106
Aciune: se testeaz condiia care dac nu este ndeplinit se execut instruciunea i se revine la testarea condiiei. Dac aceast condiie este ndeplinit atunci se trece la instruciunea de dup LOOP. Pentru variabila testat n condiie este obligatoriu ca ea s fie definit i iniializat anterior instruciunii (anterior lui DO). Este o instruciune repetitiv cu test final inversat.
d) DO instruciune LOOP UNTIL Aceasta este o structur repetitiv cu test final
uzual. Aciune: se execut instruciunea i se testeaz
condiia. Dac aceast condiie nu este ndeplinit atunci se repet execuia instruciunii. Variabila testat n condiie nu trebuie declarat anterior lui DO.
3) Instruciunea For ... Next ( Instruciuni repetitive cu un numr determinat de pai) I For = To [Step
] [] [Exit For] []
Next
Argumentele contor, sfrit, step, nceput trebuie s fie numerice.
-
Visual Basic Aplicaii n inginerie 107
contor variabila ce controleaz numrul de execuii al ciclului
val-start valoarea iniial a variabilei contor val-stop valoarea final a variabilei contor step indic valoarea cu care se mrete sau se
micoreaz variabila contor dup fiecare execuie a instruciunii. Dac Step lipsete, valoarea implicit a pasului de ciclare este egalat cu 1.
Aciune: a) se egaleaz variabila contor cu valoarea
iniial (val-start ); b) se testeaz dac valoarea din contor este mai
mare dect valoarea final (sfrit) i dac da se iese din ciclu, dac nu atunci se execut secvena de instruciune;
c) se adaug la valoarea contorului valoarea pasului (cnd aceasta exist) sau valoarea 1 n lipsa acestuia i se repet ciclul de la punctul b.
Valoarea pasului (STEP) nu este obligatoriu 1 i poate avea chiar valori negative.
5.3. Aplicaii Aplicaia 11. S se realizeze o aplicaie de selecie a unui rspuns corect, dndu-se patru variante de rspuns.
CatrinelText Box8
CatrinelText BoxNOTA 8
1. Ecuatia de gradul II2. Mediile aritmetica, geometrica si armonica a 3 numere3. Maximul si minimul a 3 numere
-
Visual Basic Aplicaii n inginerie 108
Se adaug pe form obiectele conform machetei: 5 etichete, un buton de comand i o caset text
Se modific proprietile obiectelor pentru a mri lizibilitatea
Se adaug cod butonului de comand Pentru introducerea datelor se va utiliza
coninutul unei casete de text Se va afia mesajul cu ajutorul funciei MsgBox Se va utiliza o structur alternativ de tip CASE
Figura 5.3.Proiectarea interfeei
Private Sub Command1_Click() Dim v As Integer v = Val(Text1.Text) Select Case v
-
Visual Basic Aplicaii n inginerie 109
Case 1 MsgBox ("Rspuns gresit") Case 2 MsgBox ("Rspuns gresit") Case 3 MsgBox ("Rspuns corect") Case 4 MsgBox ("Rspuns gresit") End Select End Sub
Figura 5.4. Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 110
Aplicaia 12. S se rezolve aceeai aplicaie utilizndu-se o structur IF:
Se va utiliza aceeai interfa cu utilizatorul Se va scrie cod ataat butonului de comand Pentru introducerea datelor se va utiliza
coninutul unei casete de text Se va afia mesajul cu ajutorul funciei MsgBox Se va rula aplicaia
Private Sub Command1_Click() Dim v As Integer v = Val(Text1.Text) If v = 1 Then MsgBox ("Rspuns gresit") ElseIf v = 2 Then MsgBox ("Rspuns gresit") ElseIf v = 3 Then MsgBox ("Rspuns corect") Else MsgBox ("Rspuns gresit") End If End Sub
-
Visual Basic Aplicaii n inginerie 111
Figura 5.5. Rularea aplicaiei Aplicaia 13. S se determine fora de frecare tiind ca aceasta are loc ntre trei perechi de suprafee ( oel pe oel, oel pe ghea, cauciuc pe asfalt) . Datele de intrare sunt fora de frecare i coeficienii de frecare [LUP 01] .
NF *= (5.1)
oel/oel=0,12 oel/ghea=0,014 cauciuc/asfalt =0,85
-
Visual Basic Aplicaii n inginerie 112
Se proiecteaz o form ce va conine dou casete de text , o etichet i un buton de comand
Figura 5.6. Proiectarea interfeei Se scrie codul ataat butonului de comand
Private Sub Command1_Click() Dim v As Integer v = Val(Text2.Text) Select Case v Case 1 miu = 0.12 Case 2 miu = 0.014
-
Visual Basic Aplicaii n inginerie 113
Case 3 miu = 0.85 End Select N = InputBox("Introduceti valoarea fortei normale") Ff = miu * N MsgBox (Ff) End Sub
Figura 5.7. Introducerea datelor de intrare se va rula aplicaia pentru citirea datelor de la tastatur se utilizeaz
funcia InputBox
-
Visual Basic Aplicaii n inginerie 114
Figura 5.8. Afiarea rezultatelor Aplicaia 14. Folosindu-se structuri compuse, s se determine fora de frecare n condiiile alegerii dintre frecarea static i frecarea de alunecare. Coeficienii de frecare static sunt: oel/oel=0,15 oel/ghea=0,027 cauciuc/asfalt =0,9 Coeficienii de frecare de alunecare sunt cei de la aplicaia precedent.
CatrinelCallout10
-
Visual Basic Aplicaii n inginerie 115
Figura 5.9. Proiectarea interfeei
Private Sub Command1_Click() Dim v As Integer Dim tip As String v = InputBox("Varianta selecTat este:") tip = InputBox("Selectati tipul frecrii:S-static; A-alunecare") If tip = "S" Then Select Case v Case 1 miu = 0.15 Case 2 miu = 0.027
-
Visual Basic Aplicaii n inginerie 116
Case 3 miu = 0.9 End Select Else Select Case v Case 1 miu = 0.15 Case 2 miu = 0.014 Case 3 miu = 0.85 End Select End If
Figura 5.10. Afiarea rezultatelor
-
Visual Basic Aplicaii n inginerie 117
Aplicaia 15. S se calculeze, utiliznd instruciunea repetitiv FOR , suma primelor N numere naturale, numrul N fiind dat de intrare.
Se proiecteaz o interfa coninnd un buton de comand
Se ataeaz codul
Private Sub Command1_Click() Dim n As Integer s = 0 n = InputBox("Introduceti valoarea N=") For i = 1 To n s = s + i Next s = MsgBox(s, vbOKOnly, "Suma calculat este") End Sub
CatrinelCallout10
-
Visual Basic Aplicaii n inginerie 118
Figura 5.11. Rularea aplicaiei Aplicaia 16. S se calculeze , utiliznd instruciunea repetitiv FOR, produsul primelor N numere naturale .
Se realizeaz interfaa cu utilizatorul ca la aplicaia precedent
Figura 5.12. Introducerea datelor Se scrie codul aferent aciunii asupra butonului de
comand
Private Sub Command1_Click()
CatrinelCallout10
-
Visual Basic Aplicaii n inginerie 119
Dim n As Integer p = 1 n = InputBox("Introduceti valoarea N=") For i = 1 To n p = p * i Next p = MsgBox(p, vbOKOnly, "Produsul calculat este") End Sub
Se ruleaz aplicaia
Figura 5.13.Rularea aplicaiei
-
Visual Basic Aplicaii n inginerie 120
Aplicaia 17. S se calculeze , utiliznd instruciunea repetitiv FOR, produsul primelor n numere naturale pare.
Se realizeaz interfaa cu utilizatorul ca la aplicaia precedent
Se scrie codul Private Sub Command1_Click() Dim n As Integer p = 1 n = InputBox("Introduceti valoarea N=") For i = 1 To n p = p * i * 2 Next p = MsgBox(p, vbOKOnly, "Produsul calculat este") End Sub
Se ruleaz aplicaia
Figura 5.14. Afiarea rezultatelor
CatrinelCallout10
-
Visual Basic Aplicaii n inginerie 121
Aplicaia 18. S se calculeze , utiliznd instruciunea repetitiv FOR, produsul primelor n numere naturale impare.
Se realizeaz interfaa cu utilizatorul ca la aplicaia precedent
Se scrie codul
Private Sub Command1_Click() Dim n As Integer p = 1 n = InputBox("Introduceti valoarea N=") For i = 1 To n p = p * (i * 2 - 1) Next p = MsgBox(p, vbOKOnly, "Produsul calculat este") End Sub
Se ruleaz aplicaia
Figura 5.15. Rularea aplicaiei
CatrinelText Box10
-
Visual Basic Aplicaii n inginerie 122
Aplicaia 19. S se calculeze , utiliznd instruciunea repetitiv FOR, suma primelor n numere naturale impare.
Se realizeaz interfaa cu utilizatorul ca la aplicaia precedent
Se scrie codul Private Sub Command1_Click() Dim n As Integer s = 0 n = InputBox("Introduceti valoarea N=") For i = 1 To n s = s + (i * 2 - 1) Next s = MsgBox(s, vbOKOnly, "Suma calculat este") End Sub
Figura 5.16. Afiarea rezultatelor
CatrinelText Box10
-
Visual Basic Aplicaii n inginerie 123
Aplicaia 20. S se calculeze , utiliznd instruciunea repetitiv FOR, suma primelor n numere naturale pare.
Se realizeaz interfaa cu utilizatorul ca la aplicaia precedent
Se scrie codul
Private Sub Command1_Click() Dim n As Integer s = 0 n = InputBox("Introduceti valoarea N=") For i = 1 To n s = s +i * 2 Next s = MsgBox(s, vbOKOnly, "Suma calculat este") End Sub
Figura 5.17. Afiarea rezultatelor
-
Visual Basic Aplicaii n inginerie 124
Aplicaia 21. S se calculeze , utiliznd instruciunea repetitiv FOR, suma primelor n numere naturale mai mari dect un numr A.
Se realizeaz interfaa cu utilizatorul ca la aplicaia precedent
Se scrie codul Private Sub Command1_Click() Dim n As Integer n = InputBox("Introduceti valoarea N=") a = InputBox("Introduceti valoarea A=") s = 0 For i = 1 To n s = s + i + a Next s = MsgBox(s, vbOKOnly, "Suma calculat este") End Sub
Figura 5.18. Rularea aplicaiei
CatrinelText Box10
-
Visual Basic Aplicaii n inginerie 125
Aplicaia 22. S se evalueze rspunsul la ntrebarea Care dintre urmtoarele proprieti nu este caracteristic lichidelor? Variantele de rspuns sunt:
1. Curgerea laminat 2. Curgerea turbulent 3. Presiunea 4. Compresibilitatea
Pentru fiecare rspuns incorect se vor scdea dou puncte din not.
Se poziioneaz pe form urmtoarele obiecte: o etichet (Label) creia i se vor schimba proprietile Caption ( cu mesajul dorit) i Wordwrap (True); o caset de tip list, unde la proprietatea List se vor scrie cele patru opiuni; un buton de comand
Se vor introduce datele privind rspunsul cu ajutorul funciei InputBox
Se vor afia notele utiliznd funcia MsgBox Pentru determinarea notei obinute se alege
structura repetitiv While..Wend Codul va fi
Private Sub Command1_Click() Dim raspuns As Integer raspuns = InputBox("Alegeti o variant de raspuns:") i = 0
CatrinelText Box10
-
Visual Basic Aplicaii n inginerie 126
While raspuns 4 raspuns = InputBox("Alegeti o variant de raspuns:") i = i + 2 Wend nota = 10 - i nota = MsgBox(nota, vbOKOnly, "Nota dvs. este:") End Sub
Se ruleaz aplicaia
Figura 5.19. Proiectarea interfeei
-
Visual Basic Aplicaii n inginerie 127
Figura 5.20. Afiarea rezultatelor Aplicaia 23. S se determine diferena dintre consumul de combustibil normat i cel efectiv pe marca de main.
Se realizeaz macheta urmtoare, care va conine un buton de comand intitulat Diferene
Se tasteaz codul Private Sub Command1_Click() Dim tip As String Dim conse As Double Dim consn As Double
CatrinelText Box10
-
Visual Basic Aplicaii n inginerie 128
Dim rasp As String * 2 rasp = "DA" Cls Print Tab(7); " Situatia diferentei dintre Ce si Cn" Print Print Tab(10); "TIP"; Tab(20); "Consum normat"; Tab(40); "Consum efectiv"; Tab(60); "Diferenta" Print String(60, "_") While UCase(rasp) = "DA" tip = InputBox("Marca automobilului") consn = InputBox("Consum normat") conse = InputBox("Consum efectiv") Dif = consn - conse Print Print Tab(10); tip; Tab(20); consn; Tab(40); conse; Tab(60); Dif Print Print String(60, "_"); rasp = InputBox("Mai continuati?") Wend End Observaie: Afiarea datelor cerute se va realiza utiliznd comanda Print. Pentru a introduce mai multe date, se interoghez utilizatorul n privina continurii aciunii, folosind MsgBox
-
Visual Basic Aplicaii n inginerie 129
Figura 5.21. Rularea aplicaiei Aplicaia 24.
S se calculeze , utiliznd instruciunea repetitiv While... Wend, suma primelor n numere naturale .
Se realizeaz interfaa cu utilizatorul ce va conine un buton de comand poziionat pe o form
Se modific proprietatea Capti