Download - Visual Basic

Transcript
  • 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