Capitolul 1 MEDIUL DE PROGRAMARE LabVIEW Introducere

1.1 Notiuni introductive ……………….................................................................7
1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19

Lansarea mediului de programare graficaLabVIEW…………………...7 Deschiderea unei noi aplicatii………………………………………………………....8 Ferestrele principale ale unei aplicatii…………………………………..9 Elemente de control si indicatoare……………………………………...10 Paleta de controale……………………………………………………...10 Dispunerea elementelor pe panou……………………………………....11 Paleta de unelte…………………………………………………...…….12 Elemente de control si indicatoare pentru valori scalare……………….14 Terminalele elementelor…………………………………………...…...15 Paleta de functii……………………………………………………...…16 Fereastra Help………………………………………………………......17 Functii pentru valori numerice………………………………………….18 Functii pentru valori booleene………………………………………….19 Functii pentru valori alfanumerice (string)……………………………..19 Inserarea simbolurilor de functii in diagrama………………...………...20 Realizarea legaturilor in diagrama……………………………………...21 Fluxul de date………………………………………………………......22 Principalele moduri de rulare a unei aplicatii..........................................23 Salvarea unei aplicatii…………………………………………………..24

1.2 Functii pentru valori scalare

1.2.1 Functii pentru valori numerice………………………………………….27 1.2.2 Functii uzuale pentru valori alfanumerice……………………………....30 1.2.3 Functii aditionale pentru valori alfanumerice…………………………...31 1.2.4 Functii pentru comparatii………………………………………………..33 1.2.5 Functii pentru lucrul cu valori data-timp si de dialog...............................35 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.3.10 1.3.11 1.3.12 Meniuri proprii in panou………………………………………...………39 Meniui proprii in diagrama.......................................................................40 Moduri de reprezentare a valorilor numerice............................................41 Meniuri proprii specifice elementelor numerice.......................................43 Meniuri proprii specifice elementelor cu scala.........................................45 Meniuri proprii specifice elementelor booleene…………………...…...46 Meniuri proprii specifice elementelor alfanumerice…………………….47 Modificarea fontului unor elemente……………………………....……..48 Ordonarea elementelor panoului si a diagramei…………………………49 Modificarea scalei sau cursorului unor componente.................................50 Variabile locale…………………………………………………………..51 Noduri de proprietati………………………………...…………………..53

1.3 Meniuri proprii si designul elementelor

1.4 Structuri de programare 1

1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6

Inserarea in diagrama a structurilor de programare Structura secventiala (Sequence) Structura cauzala (Case) Structura repetitiva cu numar fix de iteratii (bucla For) Structura repetitiva cu conditie de terminare (bucla While) Registri de transfer in structuri repetitive

1.5 Functii pentru valori vectoriale (Array)
1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 Definirea tipului de date al unui Array Definirea valorilor si a numarului de valori vizibile Definirea numarului de dimensiuni Construirea Array-urilor in diagrama Functii informative Functii de ordonare Functii de modificare Elementele Array si structurile repetitive Alte functii pentru elemente Array

1.6 Date de tip Cluster 1.6.1 Elemente de tip Cluster 1.6.2 Meniul propriu al elementelor de tip Cluster 1.6.3 Functii pentru elemente de tip Cluster (1) 1.6.4 Functii pentru elemente de tip Cluster (2) 1.7 Reprezentari grafice 1.7.1 Elemente pentru reprezentari grafice 1.7.2 Elementul Waveform Chart 1.7.3 Elementul Waveform Graph 1.7.4 Elementul XY Graph 1.7.5 Optiuni specifice elementelor pentru reprezentari grafice 1.7.6 Optiuni specifice elementelor de tip Chart 1.7.7 Optiuni specifice elementelor de tip Graph si XY Graph 1.7.8 Elemente si functii de tip Picture 1.7.9 Utilizarea functiilor de tip Picture 1.8 Elemente ListBox, Table si Ring 1.8.1 Meniuri pentru elemente ListBox, Table si Ring 1.8.2 Tipul de date 1.8.3 Definirea itemilor unui element Listbox 1.8.4 Selectii multiple

2

1.1 Notiuni introductive 1.1.1 Lansarea mediului de programare graficaLabVIEW…
Pentru a lansa mediul de programare grafica LabVIEW, efectuati urmatorii pasi:   apasati butonul Start, aflat in coltul stanga-jos al ecranului; dupa deschiderea meniului, prin desfasurarea acestuia in sus, deplasati cursorul mouse-ului deasupra optiunii Programs; asteptati deschiderea unui submeniu, prin desfasurare in dreapta si in sus, deplasati cursorul mouse-ului deasupra optiunii National Instruments LabVIEW 6i si apasati butonul stang al mouse-ului.

Figura 1

LabVIEW poate fi de asemenea lansat si alegand din meniul Programs optiunea National Instruments, apoi alegand din submeniul LabVIEW 6.1 optiunea LabVIEW.

Figura 2

3

Programele respective inlocuiau o serie de aparate si instrumente electronice .2 Deschiderea unei noi aplicatii Aplicatiile (programele) realizate in LabVIEW poarta denumirea de Instrumente Virtuale (in engleza. Denumirea provine de la faptul ca. apasati butonul New VI pentru a deschide o noua aplicatie (figura3). Figura 3 1. Virtual Instruments.1.de unde si motto-ul corporatiei National Instruments: The software is the instrument – primind astfel denumirea de Instrumente Virtuale La aparitia ferestrei introductive LabVIEW. asteptati pana la aparitia ferestrei introductive. prescurtat VI). Figura 4 4 . Dupa apasarea butonului New VI. in primele sale versiuni.Dupa lansare. LabVIEW a fost strict dedicat pentru realizarea unor programe de monitorizare a proceselor. se vor deschide cele doua ferestre principale ale unei noi aplicatii LabVIEW.

1.1. Prin intermediul elementelor de pe panou. Figura5 Diagrama este fereastra in care programatorul descrie algoritmul dupa care aplicatia va efectua calculele si rationamentele necesare pentru prelucrarea informatiilor.3 Ferestrele principale ale unei aplicatii O aplicatie (program) LabVIEW contine doua ferestre principale. fereatra panou si fereastra diagrama. dupa ce programatorul a realizat o aplicatie si a livrat-o unui utilizator. In majoritatea cazurilor. acesta din urma nu mai are acces la diagrama Figura 6 5 . Panoul reprezinta interfata grafica cu utilizatorul. fereastra pe care utilizatorul o va vedea atunci cand va accesa aplicatia realizata. aplicatia primeste datele de intrare si afiseaza apoi datele de iesire ce au rezultat in urma rularii.

In al doilea caz. Paleta ramane vizibila si dupa selectarea unui element. o sub-paleta se deschide (inlocuind paleta de controale) doar cand se face un click pe simbolul sau. comanda Show Controls Palette Figura 7 In primul caz.  selectand. din meniul Windows. Afisarea paletei de controale se poate efectua in doua moduri:  apasand butonul din dreapta al mouse-ului atunci cand cursorul acestuia este intr-o zona libera a panoului. Figura 8 6 .1.1. 1.5 Paleta de controale Paleta de controale este o fereastra ce poate apare doar atunci cand se lucreaza in cadrul panoului si contine sub-palete cu elemente de control si indicatoare de diverse tipuri.4 Elemente de control si indicatoare Elementele de control sunt acele componente ale panoului prin intermediul carora utilizatorul poate transmite date de intrare catre program. Elementele indicatoare sunt acele componente ale panoului prin intermediul carora programul afiseaza datele de iesire calculate in urma rularii sale. sub-paletele se deschid automat atunci cand cursorul mouse-ului trece pe deasupra lor iar paleta ramane vizibila doar pana la selectarea unui element.1.

3. Atat timp cat cursorul mouse-ului este deplasat pe panou. Dispunerea unui element de control sau indicator pe panou incepe cu selectarea elementului dorit din paleta de controale. Figura 10 7 .1. 4. cu o eticheta implicita care intra automat in modul de editare. 2. Se realizeaza astfel dispunerea elementului pe panou. Figura 9 EXERCITIU Din sub-paleta Numeric a paletei de controale. Dupa selectarea elementului. se deplaseaza cursorul mouse-ului pana in pozitia de pe panou in care se doreste dispunerea. se face click cu unul dintre butoanele mouse-ului. dispuneti pe panou un element de tipul Vertical Pointer Slide si un element de tipul Meter. Daca introducerea textului dorit in eticheta nu s-a efectuat imediat dupa dispunerea elementului pe panou si eticheta implicita a iesit din modul de editare. se poate reveni in acest mod prin selectarea uneltei de editare texte si apoi printr-un click pe eticheta respectiva.6 Dispunerea elementelor pe panou 1. Se poate incepe imediat introducerea textului dorit in eticheta. elementul va fi reprezentat doar prin conturul sau si al etichetei. Cand se ajunge in pozitia dorita.1.

Cele mai importante unelte din aceasta paleta sunt acelea pentru: Figura 11 Afisarea "temporara" a paletei de unelte intr-o forma simplificata poate fi efectuata tinand apasata tasta Shift si apasand apoi butonul drept al mouse-ului. in functie de contextul in care se afla aplicatia si de pozitia cursorului mouse-ului in raport cu componentele din panou sau diagrama.1. Afisarea paletei de controale se poate efectua selectand. 8 . din meniul Windows.1. Activarea optiunii Automatic Tool Selection (LED-ul verde al paletei de unelte) conduce la selectarea automata a unei unelte. Paleta va deveni vizibila doar pana in momentul selectarii uneia dintre uneltele sale.7 Paleta de unelte Paleta de unelte este o fereastra ce poate apare atat in cadrul panoului cat si al diagramei. comanda Show Tools Palette.

modificati valorile celor doua elemente tragand cu mouse-ul de cursorul potentiometrului sau de acul indicatorului.EXERCITII   Cu unealta de selectare. atat in panou cat si in diagrama. 9 . apasati combinatia de taste Ctrl + Z (Undo)  Cu unealta de operare.  Selectati unealta de deplasare a imaginii si exersati lucrul cu aceasta.  Activati optiunea Automatic Tool Selection a paletei de uneltesi observati modul in care uneltele de selectare. a cursorului sau acului acestuia sau deasupra scalei sau etichetei elementului. astfel incat in cele patru colturi ale acestuia sa apara simboluri de forma unui echer dublu 2. de operare si de editare a textelor se activeaza atunci cand mouse-ul este deasupra unui element. apoi deplasati mouse-ul tinand butonul stang apasat) Observati diferenta dintre a face click chiar pe element (acesta se misca impreuna cu eticheta sa) si a face click pe eticheta (eticheta se deplaseaza in raport cu elementul) Cu aceeasi unealta. deplasati cele doua elemente dispuse anterior pe panou (click pe element.  Cu optiunea Automatic Tool Selection dezactivata. Apasati butonul stang si deplasati mouse-ul tinand butonul apasat. apoi apasati tasta Delete: elementul va fi sters. observati modul in care sunt selectate diverse unelte atunci cand se apasa tastele Space sau Tab. apoi deplasati mouse-ul tinand butonul apasat: pe ecran va apare un dreptunghi cu linie intrerupta)  Selectati un element.  Cu aceeasi unealta sau cu cea de editare a textelor. Pentru a anula comanda. modificati valorile de la capetele de scara ale elementelor. modificati dimensiunile elementelor: 1. Observati aparitia unui indicator galben cu dimensiunile elementului. Figura 12  Selectati ambele elemente trasand cu mouse-ul un dreptunghi imaginar care sa le includa pe acestea (click intr-o zona libera a panoului. Pozitionati cursorul mouse-ului pe un colt al elementului.

string.. Figura13 EXERCITII   Din subpaleta pentru elemente booleene.1.8 Elemente de control si indicatoare pentru valori scalare Principalele trei tipuri de elemente de control si indicatoare pentru valori scalare sunt:  umerice booleene(logice)  alfanumerice (texte. Inchideti noul program inchizand panoul acestuia (inchiderea diagramei nu are decat efect de ascundere a acesteia) si raspunzand No la intrebarea Save changes to ". introduceti pe panou un element de tipul Vertical Toggle Switch si un element de tipul Round LED Din subpaleta pentru elemente alfanumerice (String & Path). Deschideti o aplicatie noua selectand comanda New VI din meniul File (sau apasand combinatia de taste Ctrl + N). introduceti pe panou un element de tipul String Control si un element de tipul String Indicator. siruri de caractere) Pentru fiecare din cele trei tipuri principale." ?  Figura 14 Figura 15 10 . paleta de controale contine cate o subpaleta specifica...1. Dispuneti pe panoul acesteia diverse tipuri de elemente de control si indicatoare pentru valori numerice si exersati modificarea valorilor acestora cu unealta de operare. cu diverse forme de elemente.

deplasati terminalele elementelor ca in figura de mai sus. folosind unealta de selectare. In diagrama. 11 . ce va reprezenta elementul respectiv in cadrul fluxului de date. in diagrama este inserat automat un simbol. Terminalele elementelor se diferentiaza prin culoare. in functie de tipul marimii scalare:       portocaliu pentru valori numerice reale verde pentru valori booleene roz pentru valori alfanumerice (string) De remarcat faptul ca: terminalele elementelor de control au contur gros si o sageata neagra mica in partea dreapta terminalele elementelor indicatoare au contur subtire si o sageata neagra mica in partea stanga Figura 16 EXERCITII   Identificati in diagrama terminalele elementelor pe care le-ati dispus pe panou.1.9 Terminalele elementelor Atunci cand un element de control sau indicator este dispus in panou. numit terminal.1.

comanda Show Functions Palette.1.1. o sub-paleta se deschide (inlocuind paleta de functii) doar cand se face un click pe simbolul sau. 12 .  selectand. proceduri sau structuri specifice de programare. Figura 17 Figura 18 In primul caz.10 Paleta de functii Paleta de functii este o fereastra ce poate apare doar atunci cand se lucreaza in cadrul diagramei si contine sub-palete cu diverse categorii de functii. din meniul Windows. EXERCITIU In diagrama aplicatiei. Paleta ramane vizibila si dupa selectarea unei functii. afisati paleta de functii prin fiecare din cele doua moduri indicate mai sus si navigati prin sub-paletele acesteia. sub-paletele se deschid automat atunci cand cursorul mouse-ului trece pe deasupra lor iar paleta ramane vizibila doar pana la selectarea unei functii In al doilea caz. Afisarea paletei de functii se poate efectua in doua moduri:  apasand butonul din dreapta al mouse-ului atunci cand cursorul acestuia este intr-o zona libera a diagramei.

a comenzii Show Context Help. din meniul Help.1. daca un simbol de functie a fost deja dispus in diagrama iar cursorul mouse-ului este pozitionat deasupra sa. in fereastra Help apar informatii referitoare la functia corespunzatoare simbolului deasupra caruia este pozitionat cursorul mouse-ului. in panou sau in diagrama. Deschiderea sau inchiderea ferestrei Help pot fi comandate si prin apasarea combinatiei de taste Ctrl + H Atunci cand utilizatorul deschide paleta de functii si navigheaza prin subpaletele acesteia.11 Fereastra Help Selectarea. Figura 19 Figura 20 De asemenea.1. Figura 21 13 . conduce la deschiderea unei ferestre in care sunt afisate automat informatii ajutatoare. in fereastra Help apar informatii referitoare la functia respectiva.

Figura 22 14 . asteptand ca utilizatorul sa introduca valoarea numerica dorita. dedicata functiilor aritmetice simple: adunare (Add). produsul dintre o valoare x si o putere a lui 2 (Scale By Power Of 2). inmultire (Multiply). Daca. inversare (Reciprocal). navigati prin paleta de functii si observati modul in care informatiile ajutatoare se modifica atunci cand cursorul mouse-ului trece pe deasupra diverselor simboluri de functii. Cu fereastra Help deschisa.EXERCITIU Exersati deschiderea si inchiderea ferestrei Help prin modurile descrise mai sus. utilizatorul efectueaza alta operatie. rotunjire la intregul superior (Round To +Infinity). radacina patrata (Square Root). imediat dupa dispunerea in diagrama. rotunjire la intregul inferior (Round To -Infinity). in loc de a introduce o valoare in element. Atunci cand un astfel de element este dispus in diagrama. scadere (Subtract).1. 1. valoare absoluta (Absolute Value). In subpaleta Numeric se gaseste de asemenea elementul Numeric Constant (constanta numerica). o alta valoare constanta poate fi specificata utilizand unealta de operare sau pe cea de editare a textelor. schimbare de semn (Negate).12 Functii pentru valori numerice Functiile pentru valori numerice sunt grupate in subpaleta Numeric a paletei de functii Se remarca o prima categorie. impartire (Divide). rotunjire la cel mai apropiat intreg (Round To Nearest). decrementare (Decrement). el capata automat valoarea 0 si intra in modul de editare. incrementare (Increment).

1. Subpaleta contine de asemenea. in partea inferioara. In partea sa inferioara. subpaleta contine un element String Constant pentru introducerea in diagrama de valori alfanumerice constante. cele doua constante logice: ADEVARAT (True) si FALS (False).14 Functii pentru valori alfanumerice (string) In subpaleta Boolean a paletei de functii. SAU NEGAT EXCLUSIV (Not Exclusive Or) si IMPLICA (Implies). 1. Se remarca functiile logice simple SI (And). identificati functiile aritmetice simple enumerate mai sus. SI NEGAT (Not And). Pe parcursul navigarii in paleta de functii. SAU NEGAT (Not Or). Figura 24 15 .EXERCITIU In subpaleta Numeric a paletei de functii. Pe parcursul navigarii in paleta de functii. Functii pentru valori alfanumerice (string) Functiile pentru valori alfanumerice sunt grupate in subpaleta String a paletei de functii.1. Figura23 EXERCITIU 1. Printre cele mai simple se numara cele pentru transformarea caracterelor in majuscule (To Upper Case) si pentru transformarea caracterelor in minuscule (To Lower Case). urmariti descrierea functiilor in fereastra Help.13 Functii pentru valori booleene Functiile pentru valori booleene sunt grupate in subpaleta Boolean a paletei de functii. NEGARE (Not). SAU EXCLUSIV (Exclusive Or). identificati functiile logice simple si constantele logice enumerate mai sus. SAU (Or). urmariti descrierea functiilor in fereastra Help.

1. Din subpaleta String. in timpul deplasarii. intre terminalele celor doua elemente numerice. in cursul deplasarii.legatura respectiva se pastreaza. se deplaseaza cursorul mouse-ului pana in pozitia din diagrama in care se doreste dispunerea. simbolul functiei este trecut suficient de aproape de un terminal sau de o zona a fluxului de date la care se poate efectua o legatura. acea legatura este stabilita automat. se apasa tasta Space in timp ce butonul mouse-ului este apasat.EXERCITIU In subpaleta String a paletei de functii. Pe parcursul navigarii in paleta de functii. Din subpaleta Boolean. Daca in acel moment exista o legatura stabilita automat. de zona sau terminalul respectiv. Introduceti de asemenea in diagrama un element de tipul Numeric Constant si stabiliti-i acestuia valoarea 2. Dupa pozitionarea simbolurilor de functii in diagrama. 16 . . Atat timp cat cursorul mouse-ului este deplasat. legatura stabilita automat dispare. Din subpaleta Numeric a paletei de functii.1. identificati functiile si constanta alfanumerica enumerate mai sus. simbolul functiei va fi reprezentat impreuna cu terminalele corespunzatoare datelor proprii de intrare si de iesire Figura 25 Daca. Daca simbolul functiei este indepartat. Dupa selectarea simbolului functiei. EXERCITIU     Cand simbolul functiei ajunge in pozitia dorita. deschideti fereastra Help si afisati in aceasta informatiile referitoare la fiecare functie prin deplasarea mouse-ului deasupra simbolului corespunzator. urmariti descrierea functiilor in fereastra Help. introduceti in diagrama o functie Add si pozitionati-o ca in figura.15 Inserarea simbolurilor de functii in diagrama Dispunerea unei functii in diagrama incepe cu selectarea simbolului corespunzator din paleta de functii. introduceti in diagrama o functie To Upper Case si pozitionati-o intre terminalele celor doua elemente alfanumerice. Daca nu se doreste efectuarea automata a unei legaturi. se face click cu unul dintre butoanele mouse-ului. introduceti in diagrama o functie Not si pozitionati-o intre terminalele celor doua elemente booleene.

2. Figura 26 Figura 27 1. Actiunea este echivalenta cu prinderea unui capat al firului de componenta respectiva. la un moment dat.16 Realizarea legaturilor in diagrama Realizarea unei legaturi intre doua componente ale diagramei se efectueaza cu ajutorul uneltei de conectare. 2: Daca se doreste ca traseul unei legaturi sa fie format din mai multe portiuni in unghi drept. Legatura poate fi realizata in orice sens. 4: Daca o legatura a fost efectuata corect. Din acest moment. 1: Daca. firul care urmeaza mouse-ul are un sens (orar sau trigonometric) neconvenabil. fixand astfel al doilea capat al firului de aceasta componenta. Se deplaseaza cursorul mouse-ului deasupra celei de-a doua componente (si aceasta va incepe sa clipeasca) si se face click. 3: Daca o componenta a diagramei are rol de sursa pentru un traseu ramificat. Figura 30 Obs. Se deplaseaza cursorul mouse-ului (unealta de conectare) deasupra primei componente (aceasta va incepe sa clipeasca) si se face click.1. pe ecran va apare imaginea unui fir cu un capat fixat de prima componenta si cu un capat legat de cursorul mouse-ului. Figura 28 Figura 29 Obs. Daca legatura este incorecta (conecteaza doua componente de tipuri diferite). daca mouse-ul este deplasat. sensul poate fi schimbat prin apasarea tastei blanc (spatiu). Ordinea in care se selecteaza cele doua componente (sursa si destinatia) nu este importanta. se pot efectua legaturi care sa aiba drept punct de pornire un segment al fluxului de date. Figura 31 Figura 32 17 . aceasta va fi afisata cu culoarea neagra si intrerupta. ea va fi afisata in culoarea corespunzatoare tipului de date ce vor circula prin zona respectiva a fluxului de date. un click intr-un punct din diagrama va fi echivalent cu fixarea firului in acel punct.1. Obs. Obs. deoarece mediul de programare va identifica automat sursa si destinatia pentru a stabili sensul de circulatie al datelor.

legaturile din diagrama au culori ce semnficia tipul datelor scalare corespunzatoare (portocaliu pentru numere reale. albastru pentru numere intregi.17 Fluxul de date Fluxul de date este format din totalitatea legaturilor ce conecteaza diversele terminale de elemente. Rolul fluxului de date este acela de reprezentare grafica a algoritmului dupa care aplicatia va prelucra datele de intrare pentru a calcula valorile de iesire. in aceasta situatie. cu o sursa si o destinatie. simboluri de functii sau proceduri si structuri de programare din cadrul diagramei.1. terminalul unui element de control. similar terminalelor. selectati unealta de conectare si pozitionati cursorul mouse-ului deasupra unei legaturi astfel incat aceasta sa "clipeasca". Astfel. roz pentru valori alfanumerice). "circulatia" datelor in cadrul fluxului se efectueaza doar de la surse catre destinatii. in fereastra Help sunt afisate informatii referitoare la tipul de valori ce circula prin legatura respectiva   Figura 33 1. atunci cand programul va rula. terminalul unui element indicator sau zona de intrare a unei functii sau proceduri. Observati ca. indicatorul Boolean 2 va afisa valoarea logica negata a controlului Boolean. Deschideti fereastra Help.   Figura 34 18 . Observati ca. alaturata. indicatorul Meter va afisa suma dintre valoarea controlului Slide si constanta 2. verde pentru valori booleene.EXERCITII  Utilizand unealta de conectare. Prin destinatie se intelege. realizati legaturile din figura.  Indiferent de modul sau sensul in care traseele sunt dispuse pe diagrama. de exemplu. Prin sursa se intelege. cu o sursa si mai multe destinatii. sau ramificate. Traseele ce formeaza fluxul de date pot fi simple. iar indicatorul String 2 va afisa textul din controlul String transformat in majuscule. de exemplu. simbolul unei constante sau zona de iesire a unei functii sau proceduri.

utilizand setul de trei butoane din dreapta. utilizatorul are posibilitatea de a suspenda rularea prin apasarea butonului Pause. In timpul rularii programului. dupa care programul se va opri. isi schimba forma atat butonul Run Continuously cat si butonul Run. se trece in fereastra diagrama. Apasarea acestui buton ii schimba forma si il transforma in butonul Continue.1. Pe parcursul acestui mod de rulare. Figura 36 Atat pe parcursul rularii simple cat si pe cel al rularii continui. Figura 35 Apasarea butonului Run Continuously va conduce la rularea repetata. programul semnalizeaza prin aprindere intermitenta zona ce era in curs de executie atunci cand s-a comandat suspendarea Figura 38 In diagrama. a programului.18 Principalele moduri de rulare a unei aplicatii Barele de butoane ale panoului si diagramei contin o serie de elemente ce permit stabilirea modului de rulare a unui program. . si se aprinde de asemenea butonul Abort execution.1. fara oprire. butonul Run isi schimba forma si se aprinde un buton Abort execution. Figura 37 . Figura 39 19 . prin a carui apasare se comanda reluarea unei rulari suspendate. atunci cand rularea este suspendata. atunci cand rularea este suspendata. Va fi parcurs intreg fluxul de date din diagrama. utilizatorul are posibilitatea de a continua rularea pas cu pas. Intreruperea rularii nu are loc decat la comanda utilizatorului. Apasarea butonului Run va conduce la rularea o singura data a programului. Daca. Apasarea acestui din urma buton in timpul rularii va determina intreruperea acesteia. prin apasarea butonului Abort execution.

utilizatorul are posibilitatea de a urmari o animatie ce sugereaza deplasarea valorilor prin fluxul de date. in timp ce programul ruleaza in modul continuu. 1. Observati afisarea in diagrama a modului in care valorile circula pe fluxul de date al programului. cu unealta de operare. se alege din meniul File optiunea Save As. "Stingeti" butonul Continue (cel care avea initial eticheta Pause). Figura 40 EXERCITII In panoul aplicatiei pe care ati realizat-o.. Schimbati din nou pozitia controlului Boolean si apasati din nou sageata Run. Observati afisarea in diagrama a valorilor de iesire din functii. schimbati pozitia controlului Boolean si modificati textul dn controlul String. Apasati butonul Highlight Execution. un program are numele Untitled urmat de un numar de ordine.      Apasati butonul Run Continuously si. Figura 41 20 . valoarea respectiva este afisata in diagrama. Apasati sageata Run pentru a rula programul. precum si numele fisierului.. Pentru a specifica folder-ul in care programul sa fie salvat. schimbati pozitia controlului Boolean si introduceti un text format din minuscule in controlul String. apoi butonul Step Over. Atunci cand o valoare paraseste o componenta a diagramei ce este o sursa a unei legaturi. "Stingeti" butonul Highlight Execution si intrerupeti rularea continua prin apasarea butonului Abort execution. modificati valoarea elementului de control Slide.1. aplicatia va trece automat in diagrama si va indica prin aprindere intermitenta locul din diagrama in care programul s-a oprit. Rularea programului se va suspenda temporar. Apasati butonul Pause.19 Salvarea unei aplicatii Atat timp cat inca nu a fost salvat intrun fisier. prin apasarea butonului Highlight Execution.In orice mod de rulare. modificati valoarea elementului de control Slide.

PROGRAMELE REALIZATE IN MEDIUL DE PROGRAMARE GRAFICA LabVIEW SE SALVEAZA IN FISIERE CU EXTENSIA VI ! Figura 42 Din momentul in care a fost salvat prima data. in directorul Utilizatori. se poate folosi daca se doreste salvarea unei noi versiuni a fisierului intr-o noua locatie sau cu un nou nume. subdirectorul CCD. dupa salvare.. Figura 43 EXERCITII Pe discul D al computerului.. apasati AICI (Atentie. programului i se aduc in continuare modificari. semnalizand astfel faptul ca versiunea ce a fost salvata nu este cea mai recenta Pentru a salva un program care are deja o locatie si un nume stabilite. programului i se afiseaza numele atat in bara superioara a panoului cat si in cea a diagramei. Pentru informatii suplimentare despre aceasta etapa. langa numele acestuia apare un asterisc (*).. se va deschide o noua fereastra Internet Explorer pe care o puteti inchide ulterior) Salvati aplicatia pe care ati realizat-o in subdirectorul propriu ! 21 . este suficient sa se apese combinatia de taste Ctrl si S sau sa se selecteze comanda Save din meniul File. programul deschide o fereastra de dialog in care utilizatorul poate selecta folder-ul in care sa se efectueze salvarea si numele fisierului. creati un subdirector cu numele Dvs. Daca. Comanda Save As.In urma selectarii comenzii Save As...

Realizati un program pentru calculul ariei si perimetrului unei elipse. Realizati un program pentru calculul inaltimii maxime si al distantei parcurse pe orizontala in cazul aruncarii oblice 22 .TEMA 1. Realizati un program pentru rezolvarea ecuatiei de gradul al doilea 5. in functie de valorile introduse de catre utilizator pentru cele doua semiaxe 3. Realizati un program pentru calculul ariei si perimetrului unui cerc. in functie de valoarea razei introdusa de catre utilizator 2. Realizati un program care sa exemplifice utilizarea diverselor functii booleene 4.

Pentru a selecta operatia efectuata de catre functie (adunare. astfel incat pe laturile de sus si de jos sa apara cate un cerculet  se apasa butonul stang al mouse-ului si se deplaseaza mouse-ul tinand butonul apasat  pe masura ce mouse-ul este deplasat. se elibereaza butonul mouse-ului. inmultire etc)  se apasa butonul drept al mouse-ului pentru a deschide meniul propriu al functiei  se deschide submeniul Change Mode  se selecteaza operatia dorita Figura 44 Figura 45 Random Number (0-1) este o functie ce nu poseda intrari. care transforma o valoare logica (True sau False) intr-o valoare numerica (1 respectiv 0) 23 .12 functii pentru schimbarea modului de reprezentare a unei valori numerice functia Boolean To (0.1) Subpaleta Numeric a paletei de functii contine de asemenea o serie de subpalete dedicate unor categorii particulare de functii: subpaleta Conversion. continand printre altele: .2. modificandu-se astfel numarul de intrari  cand numarul de intrari in functie este cel dorit.1 Functii pentru valori numerice Pe langa functiile aritmetice simple descrise in lectia anterioara.2 Functii pentru valori scalare 1. SAU (OR) sau SAU EXCLUSIV (XOR). rolul sau fiind de a genera o valoare reala aleatoare in intervalul (0. simbolul functiei isi modifica dimensiunile. si urmatoarele functii: Quotient & Remainder calculeaza catul si restul impartirii valorii conectate la intrarea X la valoarea conectata la intrarea Y Compound Aritmetic (disponibila si in subpaleta Boolean a paletei de functii) permite efectuarea operatiilor de adunare (Add) sau inmultire (Multiply).1. sau a operatiilor logice SI (AND). in zona sa principala.1) (disponibila si in subpaleta Boolean a paletei de functii). Numarul de intrari este stabilit de catre utilizator prin "dimensionarea" simbolului functiei astfel:  se plaseaza cursorul mouse-ului la mijlocul uneia din laturile orizontale ale simbolului. subpaleta Numeric a paletei de functii contine. asupra unui numar variabil de valori de intrare.

- Figura 46 subpaleta Trigonometric. continand functii asociate numerelor complexe Figura 49 24 . continand majoritatea functiilor trigonometrice subpaleta Logarithmic. continand functii exponentiale si logaritmice - Figura 47 Figura 48 subpaleta Complex.

. precum si constante utilizate in física Figura 50 EXERCITIU   In zona principala a paletei de functii si in subpaletele dedicate ale acesteia. Construiti un program care sa afiseze catul si restul impartirii a doua numere naturale introduse de catre utilizator. identificati functiile si constantele enumerate mai sus.Subpaleta Additional Numeric Constants a paletei de functii contine valori constante des utilizate in trigonometrie si in lucrul cu functii exponentiale sau logaritmice. 25 .

iar intrarea length are o valoare implicita egala cu numarul de caractere legat la intrarea substring. La iesirea sa. iar daca la intrarea length se leaga valoarea 0 (textul de sters este vid) functia efectueaza de fapt o inserare a unei portiuni. atunci functia efectueaza inlocuiri pentru toate aparitiile textului search string. Functia genereaza textul rezultat in urma inlocuirii la iesirea result string.2 Functii uzuale pentru valori alfanumerice Functia String Length determina numarul de caractere dintr-o valoare alfanumerica (text).2. iar la iesirea offset past replacement genereaza o valoare indicand pozitia caracterului aflat imediat dupa ultimul caracter inlocuit. Daca la intrarea replace string nu se conecteaza nici o valoare. Functia Search and Replace String cauta textul search string in textul conectat la intrarea string. Daca la intrarea replace all? nu se conecteaza nici o valoare. Tab. cautarea are loc incepand cu prima pozitie. Sunt luate in considerare si caracterele neafisabile (spatiu. in ordinea de sus in jos. Functia Replace Substring sterge o portiune din textul conectat la intrarea string si introduce in locul respectiv textul conectat la intrarea substring. Numarul de caractere de la iesirea functiei este exprimat ca un intreg pe patru octet Functia Concatenate Strings poseda un numar de intrari ce poate fi modificat de catre utilizator prin dimensionarea simbolului functiei. functia efectueaza de fapt o stergere a unei portiuni. iar atunci cand il gaseste il inlocuieste cu textul conectat la intrarea replace string. 26 . Daca la aceasta intrare se conecteaza o valoare logica True. Daca la intrarea offset nu se conecteaza nici o valoare. atunci functia se opreste dupa prima aparitie a textului search string.1. functia genereaza o valoare alfanumerica obtinuta prin concatenarea textelor de la intrarile sale. Daca la intrarea substring nu se leaga nici o valoare (textul de inserat este vid). Intrarea offset are valoarea implicita 0. atunci functia efectueaza de fapt o stergere (inlocuire cu text vid). Portiunea inlocuita incepe de la caracterul aflat pe pozitia offset inclusiv si contine length caractere. sfarsit de linie etc). Cautarea are loc incepand de la pozitia offset a textului string.

rezultatul este chiar linia cu indicele specificat. pentru functia String Length. functia divide textul initial in doua parti: . functia genereaza la iesirea output string restul textului de la intrarea string.textul cautat urmat de restul textului in care sFigura 51 a facut cautarea (match + rest of string) Functia genereaza la iesirea offset of match pozitia in care a fost gasit textul cautat. De exemplu. iesirea substring before match contine tot textul legat la intrarea string. Daca textul cautat este gasit. Daca nici un text nu coincide.3 Functii aditionale pentru valori alfanumerice Subpaleta Additional String Functions a paletei String ( figura51) contine o serie de functii uzuale pentru lucrul cu valori alfanumerice Functia Search/Split String cauta textul conectat la intrarea search string/char in textul conectat la intrarea string. iesirea selection are valoarea False iar iesirea output string contine intreg textul string 27 . panoul programului va contine un element de control pentru valori alfanumerice. Cautarea se efectueaza incapand cu pozitia offset. construiti cate un program care sa exemplifice modul de utilizare a functiei. Daca textul cautat nu a fost gasit. iar la iesirea selection o valoare booleana corespunzatoare intrarii care a coincis (True pentru true string si False pentru false string). in care utilizatorul va introduce un text. Daca ambele texte coincid. ce contine mai multe linii.partea dinainte de textul cautat (substring before match) .2. pe cea cu indicele line index si adauga linia respectiva la textul conectat la intrarea string. si un element indicator pentru valori numerice. 1.EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. functia considera textul true string. In caz afirmativ. Functia Match True/False String verifica daca unul din textele true string sau false string coincide cu inceputul textului conectat la intrarea string. Functia Pick Line selecteaza din textul multi-line string. in care programul va afisa numarul de caractere ale textului introdus. iar iesirea offset of match are valoarea -1. Daca la intrarea string nu a fost conectata nici o valoare.

Functia Rotate String efectueaza o permutare circulara a caracterelor textului conectat la intrarea string.. in functie de valoarea booleana conectata la intrarea selector. mutand primul caracter pe ultima pozitie. Modul de reprezentare al valorii de la iesirea number este identic cu cel al valorii numerice intregi conectate la intrarea default (implicit intreg pe 32 de biti). Subpaleta String/Number Conversion a paletei String contine functii pentru conversia valorilor alfanumerice in valori numerice sau pentru efectuarea operatiei inverse. cele mai des utilizate sunt: Functia Number To Decimal String transforma numarul intreg de la intrarea number intr-un text de cel putin width caractere. Daca numarul de la intrarea functiei nu este intreg. el este trunchiat. Daca intrarea width nu este legata. Functia Reverse String inverseaza ordinea caracerelor textului conectat la intrarea string Functia Append True/False String concateneaza la textul conectat la intrarea string unul din textele conectate la intrarile true string sau false string. 28 . Figura 52 Functia Decimal String To Number transforma intr-o valoare numerica intreaga portiunea din textul string incepand de la pozitia offset inclusiv (implicit de la pozitia 0). Dintre acestea. Iesirea offset past number are semnificatia pozitiei primului caracter din string dupa portiunea care a fost transformata in valoare numerica. numarul de caractere ale textului va fi egal cu numarul de cifre ale intregului.

alfanumerice etc). In cazul functiei Greater? de exemplu. Figura 53 Pe langa functiile de comparare a doua marimi sau de comparare a unei marimi cu valoarea nula. De exemplu. 1. la care programul va afisa textul inversat. construiti cate un program care sa exemplifice modul de utilizare a functiei.Subpaleta String/Number Conversion contine de asemenea functii pentru transformarea textelor din si in numere in baza de numeratie 16 sau 8 sau in formatul exponential. Valorile de la intrarile t si f pot fi atat numerice cat si alfanumerice. fractional sau ingineresc. Functia Max & Min genereaza la iesirea max cea mai mare dintre valorile x si y.4 Functii pentru comparatii Functiile pentru efectuarea comparatiilor sunt grupate in subpaleta Comparison a paletei de functii. panoul programului va contine un element de control pentru valori alfanumerice in care utilizatorul va introduce un text si un element indicator. iesirea va avea valoarea True daca valoarea de la intrarea de sus este mai mare decat valoarea de la intrarea de jos si va avea valoarea False in caz contrar. respectiv valoarea de la intrarea f (False) daca valoarea logica de la intrarea s este False. 29 . respectiv la iesirea min pe cea mai mica dintre acestea. de asemenea pentru valori alfanumerice. EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. pentru functia Reverse String. subpaleta Comparison contine urmatoarele: Functia Select genereaza la iesire valoarea de la intrarea t (True) daca valoarea logica de la intrarea s este True. Conteaza de asemenea ordinea in care datele de intrare sunt legate la terminalul functiei (la intrarea de sus sau la cea de jos). booleene. Caracteristic acestor functii este faptul ca. datele de iesire sunt la majoritatea acestor functii valori logice (booleene).2. daca datele de intrare pot fi de diverse tipuri (numerice.

construiti cate un program care sa exemplifice modul de utilizare a functiei. intervalul de incadrare este inchis la stanga si deschis la dreapta. Valoarea logica reprezentand rezultatul verificarii este generata la iesirea In Range? n mod implicit. Rezultatul "fortarii" valorii x in intervalul prescris este generat la iesirea coerced(x). Functia Decimal Digit? genereaza o valoare logica True in situatia in care caracterul de la intrarea sa este o cifra intre 0 si 9 si genereaza o valoare False in caz contrar. panoul programului va contine un element de control boolean. De exemplu. EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. Programul va afisa la elementul indicator una din valorile de la cele doua controale alfanumerice. in functie de valoarea True sau False a elementului boolean. caracter tiparibil sau caracter netiparibil. Inchiderea sau deschiderea intervalului la extremitatile sale poate fi configurata de catre utilizator din meniul propriu al functiei. pentru functia Select. Figura 54 Subpaleta Comparison contine de asemenea functii pentru a verifica daca un caracter este cifra in baza de numeratie 16. doua elemente de control alfanumerice si un indicator alfanumeric. activand sau dezactivand optiunile Include upper limit si Include lower limit. cifra in baza de numeratie 8.Functia In Range and Coerce verifica daca valoarea de la intrarea x este cuprinsa intre valorile de la intrarile lower limit (limita inferioara) si upper limit (limita superioara). 30 .

unul reprezentand data si celalalt timpul. La intrarea date format se poate lega una din valorile 0. pana la data si timpul curente ale calculatorului.00. Printre cele mai utilizate functii din aceasta categorie se numara: Tick Count (ms): determina numarul de milisecunde indicat de ceasul intern al computerului (considerat de la momentul la care calculatorul a fost pornit) Wait (ms): intrerupe executia programului pentru intervalul de timp specificat Format Date/Time String: transforma o valoare numerica reprezentand un numar de secunde intrun text. La intrarea time format string a functiei se poate specifica formatul in care textul rezultat sa fie construit. 31 . lung sau abreviat pentru data.timp si functiile de dialog se gasesc in meniul Time & Dialog al paletei de functii.2. se considera numarul de secunde al ceasului intern al computerului. reprezentand formatele scurt. Daca numarul de secunde nu este conectat. ora 12.timp si de dialog Functiile pentru lcurul cu valori data .1. in functie de valoarea intrarii booleene want seconds? Get Date/Time In Seconds: determina numarul de secunde scurs incepand cu data de 1 ianuarie 1904.5 Functii pentru lucrul cu valori data . 1 sau 2. ora 12. Figura 55 Numarul de secunde este considerat a fi scurs incepand cu data de 1 ianuarie 1904. Ieisrea text ce reprezinta timpul poate contine sau nu secunde. Get Date/Time String: transforma o valoare numerica reprezentand un numar de secunde in doua texte.00.

continand un text specificat prin program. sa se transforme acesta astfel incat prima litera sa fie majuscula si restul literelor sa fie minuscule. inmultirea si impartirea a doua numere complexe. 32 . fereastra ce asteapta apasarea de catre utilizator a unuia din cele doua butoane disponibile (numele butoanelor pot fi de asemenea configurate). Functia genereaza o valoare booleana True daca utilizatorul a apasat butonul din stanga sau False daca a fost apasat butonul din dreapta. EXERCITII Pentru fiecare dintre functiile prezentate mai sus. unghiul facut de acesta cu orizontala si lungimile proiectiilor sale pe cele doua axe. 6. De exemplu. construiti cate un program care sa exemplifice modul de utilizare a functiei. Intr-un text.One Button Dialog: determina aparitia unei ferestre de dialog. continand un text specificat prin program. Construiti un program in care utilizatorul sa introduca lungimea unui vector si unghiul acestuia cu orizontala (in grade). Two Button Dialog: determina aparitia unei ferestre de dialog. TEMA 1. iar programul sa afiseze lungimile proiectiilor vectorului pe cele doua axe de coordonate. Construiti un program care sa genereze un numar aleator intr-un interval ale carui limite minima si maxima sunt specificate de catre utilizator 2. iar programul sa afiseze lungimea vectorului rezultant. 5. realizati un program care sa afiseze numarul de secunde scurse de la pornirea calculatorului. Fiind dat un cuvant. Realizati un program pentru adunarea. fereastra ce asteapta apasarea de catre utilizator a unui buton (numele butonului poate fi de asemenea configurat). Considerand ca cele patru LED-uri reprezinta cifrele binare ale unui numar in baza de numeratie 2. programul sa afiseze numarul respectiv in baza 10. 4. pentru functia Tick Count (ms). sa se inlocuiasca toate spatiile (blanc) cu liniuta de subliniere (underscore) 7. Construiti un program in care utilizatorul sa introduca lungimile si unghiurile cu orizontala (in grade) pentru doi vectori. Realizati un program in care utilizatorul sa dispuna de patru elemente de control booleene sub forma de LED-uri. 3. scaderea.

23. indiferent de tipul de litere (minuscule sau majuscule) 11. 33 . la sfarsitul acesteia. sa se verifice faptul ca toate caracterele din cadrul acestuia sunt minuscule. Fiind dat un text ce reprezinta un nume si un prenume separate printr-un spatiu. In functie de cum valorile respective au fost introduse corect (ordonate crescator) sau nu. 17.8. Sa se afiseze. minute si secunde scurse de la 1 ianuarie 1904. 19. 12. sa se determine numarul de caractere din acesta diferite de spatiu (blanc) 13. b si c) ordonate crescator. sa se verifice daca acesta contine intre sase si opt caractere. 10. Sa se verifice daca doua texte contin aceleasi caractere. in diverse formate. Fiind dat un text ce reprezinta o propozitie. in aceeasi ordine. in elemente indicatoare distincte. sa calculeze fie suma fie produsul a doua valori numerice introduse de catre utilizator. sa se calculeze suma dintre dublul valorii mai mari si triplul valorii mai mici. sa se obtina din acesta un text continand cele doua intiale. Sa se compare doua valori numerice a si b si sa se aprinda cate un LED pentru fiecare din situatiile a < b. fiecare urmata de cate un punct. Fiind dat un text.00. un text reprezentand data si timpul curente ale calculatorului. 22. 16. numerele de ore. unul reprezentand numele si unul prenumele 15. 20. ora 12. 18. sa se verifice faptul ca acesta nu contine spatii libere 14. Fiind dat un text.) apare o singura data. Fiind dat un text. Sa se afiseze. a = b si a > b. numerele de zile. Sa se realizeze un program care sa aprinda un LED atunci cand utilizatorul introduce o valoare mai mare decat 5. Fiind dat un text ce nu contine spatii. in functie de pozitia unui comutator boolean. ore. in elemente indicatoare distincte. Fiind dat un text ce reprezinta un nume si un prenume separate printr-un spatiu. sa se separe in doua texte. 9. Sa se realizeze un program in care utilizatorul sa introduca trei valori numerice (a. Sa se afiseze. minute si secunde scurse de la pornirea calculatorului. Fiind date doua valori numerice reale a si b. Sa se realizeze un program care. sa se verifice faptul ca punctul (. 21.

Sa se realizeze un program care sa aprinda sau nu un indicator Round LED. 24. in functie de raspunsul DA sau NU pe care utilizatorul il da la aparitia unei ferestre de dialog cu intrebarea Aprindem becul ? 34 .programul sa afiseze o fereastra de dialog cu textul RASPUNS CORECT sau RASPUNS INCORECT.

astfel incat utilizatorul poate selecta un element cu care sa il inlocuiasca pe cel current Data Operations4 . booleene sau alfanumerice). Copy. Continutul etichetei poate fi de asemenea modificat cu unealta de editare a textelor Find Terminal .Afiseaza paleta de controale. Description and Tip. Permite introducerea unei scurte descrieri referitoare la element si a unui text ajutator (Tip) care apare atunci cand cursorul mouse-ului este pozitionat deasupra elementului Create4 .1. reinitializarea unui element la valoarea sa implicita (Reinitialize to Default Value) sau operatii de copiere a valorii elementului (Cut.Afiseaza sau ascunde eticheta elementului. Find Terminal.3.1 Meniuri proprii in panou Pentru a deschide meniul propriu al unui element de control sau indicator..Permite stabilirea valorii implicite a elementului (Make Current Value Default). elementele de pe panou au in meniurile proprii o serie de optiuni comune:          Visible Items4Label . Paste) Advanced4 . atasate elementului de pe panou (vor fi discutate ulterior) Replace4 . Meniul propriu al unui element poate fi de asemenea deschis cu ajutorul uneltei de afisare a meniurilor proprii. Change to Indicator.3 Meniuri proprii in panou 1. Replace 35 ..Creeaza in diagrama entitati suplimentare.. se pozitioneaza cursorul mouse-ului deasupra elementului si se apasa butonul drept..Modalitati de configurare avansata a elementelor (vor fi discutate in lectii ulterioare) EXERCITIU Exersati activarea urmatoarelor optiuni din meniul propriu al unui element de pe panou: Visible Items4Label.. Change to Control. Indiferent de tipul de valori carora le sunt dedicate (numerice. Un meniu propriu contine diverse optiuni prin care pot fi configurate modurile de afisare sau de functionare ale elementelor de control sau indicatoare. Continutul etichetei poate fi modificat cu unealta de editare a textelor Visible Items4Caption .Schimba tipul elementului din control in indicator sau invers Description and Tip.Trece in diagrama si indica terminalul elementului prin incadrarea acestuia intr-un chenar cu linie intrerupta animata Change to Indicator (sau Change to Control) .Afiseaza sau ascunde eticheta suplimentara a elementului.

efectul   acestora fiind de adaugare (in diagrama sau in panou. Efectul acesteia este ascunderea elementului corespunzator de pe panou Pe langa optiunea Change to Indicator (sau Change to Control) este adaugata si optiunea Change to Constant. Control si Indicator. efectul acesteia fiind de inlocuire a elementului de control sau indicator cu o constanta (constantele pot exista doar in diagrama.3. dupa caz) a unei constante sau a unui element de control sau indicator de acelasi tip cu elementul al carui meniu propriu a fost deschis. Change to Constant.2 Meniuri proprii in diagrama Atunci cand se deschide meniul propriu al unui terminal din diagrama. Create4Constant. 36 . EXERCITIU Utilizati urmatoarele optiuni din meniul propriu al unui terminal din diagrama: Find Control sau Find Indicator. Hide Control (sau Hide Indicator).1. acesta contine aproape aceleasi optiuni ca si meniul elementului corespunzator de pe panou. cu urmatoarele deosebiri:   Optiunea Find Terminal a elementului de pe panou este inlocuita cu optiunea Find Control sau Find Indicator Apare optiunea suplimentara Hide Control (sau Hide Indicator). Create4Control si Create4Indicator. astfel incat elementul de control sau indicator dispare de pe panou) In submeniul Createapar optiunile suplimentare Constant.

3 Moduri de reprezentare a valorilor numerice Meniurile proprii ale elementelor de control sau indicatoare numerice contin o optiune specifica. Representation.1. diferenta consta in numarul de octeti (bytes) alocati in memorie pentru stocarea valorii respective:             EXT (extended) = numar real cu precizie extinsa (16 octeti) DBL (double) = numar real cu precizie dubla (8 octeti) SGL (single) = numar real cu precizie simpla (4 octeti) I32 (long) = numar intreg pe 4 octet I16 (word) = numar intreg pe 2 octeti I8 (byte) = numar intreg pe 1 octet U32 (unsigned long) = numar natural pe 4 octeti U16 (unsigned word) = numar natural pe 2 octeti U8 (unsigned byte) = numar natural pe 1 octet CXT (complex extended) = numar complex cu precizie extinsa (32 octeti) CDB (complex double) = numar complex cu precizie dubla (16 octeti) CSG (complex single) = numar complex cu precizie simpla (8 octeti) Numarul de octeti alocati pentru stocare se reflecta in intervalul de valori in care poate exista valoarea respectiva sau in precizia acesteia: 37 . cu ajutorul careia se specifica modul in care valoarea numerica respectiva este stocata in memorie. In submeniul Representation.3. utilizatorul are la dispozitie 12 optiuni:     pe prima linie: optiuni numere reale pe a doua linie: optiuni numere intregi pe a treia linie: optiuni numere naturale pe a patra linie: optiuni numere complexe pentru pentru pentru pentru Figura 58 Intre diversele optiuni de pe o linie.

din portocaliu in albastru. Observati ce se intampla in situatia in care. Observati in panou aparitia sau disparitia zecimalelor iar in diagrama modificarea culorii si textului din interiorul terminalului. terminalul isi modifica de asemenea culoarea.Textul din interiorul terminalului unui element de control sau indicator numeric se modifica pentru a reflecta modul de reprezentare ales. avand un element de control numeric cu valoare reala negativa. In cazul in care valoarea numerica este una intreaga sau naturala. 38 . EXERCITII    Exersati modificarea moduui de reprezentare a unui element de control numeric. se schimba modul de reprezentare al acestuia in numar natural.

1.3.4 Meniuri proprii specifice elementelor numerice
Elementele de control sau indicatoare numerice dispun in meniul propriu de doua optiuni specifice: >>> Data Range... pentru stabilirea unui interval de variatie particular >>> Format & Precision... pentru specificarea unui mod particular de afisare a valorii Selectarea optiunii Data Range... conduce la deschiderea unei ferestre suplimentare. Daca se dezactiveaza optiunea Use Defaults, utilizatorul poate specifica valorile minima si maxima pe care le poate lua elementul respectiv, precum si incrementul intre doua valori succesive.

Figura 60

De asemenea, prin optiunea If Value is Out of Range, utilizatorul poate dicta modul de comportament in cazul in care se incearca introducerea unei valori in afara intervalului stabilit: daca in locul optiunii Ignore se selecteaza optiunea Coerce, elementul va forta ramanerea valorii intre limitele impuse. Fereastra suplimentara Data Range permite modificarea si din acest loc a modului de reprezentare a valorii numerice (Representation).

Selectarea din meniul propriu a optiunii Format & Precision deschide o fereastra din care utilizatorul poate dicta afisarea valorii numerice in format:   zecimal, caz in care se pot specifica numarul de zecimale si notatia (cu virgula mobila, stiintifica, inginereasca etc.) timp - data, situatie in care se pot selecta diverse formate de afisare. In cazul in care se selecteaza formatul timp - data, valoarea elementului va reprezenta numarul de secunde scurse de la data de 1 ianuarie 1904, ora 3:00 AM.

39

In situatiile in care elementul de control sau indicator numeric are un mod de reprezentare de tipul numar intreg sau natural, optiunea Format & Precision permite suplimentar si afisarea valorilor in sistem de numeratie hexazecimal, octal sau binar.

Figura 62

EXERCITII   Dispuneti pe panou un element de control numeric de tipul Horizontal Pointer Slide si modificati valorile Minimum, Maximum si Increment din optiunea Data Range... a meniului propriu. Incercati apoi sa modificati valoarea elementului de control in afara limitelor impuse si observati comportamentul elementului. Dispuneti pe panou un element de control numeric de tipul Digital Control si selectati optiunea Format & Precision din meniul propriu al acestuia. Pentru formatul zecimal, modificati numarul de zecimale si notatia (stiintifica, inginereasca etc) si observati consecintele. Selectati apoi formatul timp - data cu diverse formate de afisare si observati consecintele.

40

1.3.5 Meniuri proprii specifice elementelor cu scala
Elementele de control sau indicatoare numerice cu scala (potentiometre liniare sau circulare, indicatoare cu ac etc) dispun in meniul propriu de optiuni suplimentare referitoare la modul de afisare:

Figura 63

Figura 64  

Figura 65

optiunea Fill Options4 permite alegerea modului in care sa se coloreze portiunile elementului aflate de o parte si de alta a cursorului (colorat deasupra, colorat dedesubt, necolorat etc optiunea Scale4 dispune de o serie de submeniuri proprii pentru pozitionarea uniforma sau arbitrara a gradatiilor de pe scala (Marker Spacing 4), pentru stabilirea formatului de afisare a valorilor de pe scala (Format & Precision...), pentru alegerea variantei de densitate a gradatiilor (Style 4) si pentru selectarea unei scale liniare sau logaritmice (Mapping 4)

EXERCITII   Dispuneti pe panou un element de tipul Vertical Pointer Slide, selectati din optiunea Fill Options a meniului sau propriu diverse moduri de umplere si observati consecintele. Pentru acelasi element, afisati scala cu gradatii arbitrare (Marker Spacing), afisati valorile de pe scala cu o zecimala (Format & Precision), modificati densitatea gradatiilor de pe scala (Scale), apoi transformati tipul scalei in logaritmic (Mapping).

41

 Latch When Released modifica valoarea logica a elementului atunci cand se elibereaza butonul mouse-ului (dupa ce in prealabil a fost apasat).3. efectuati o rulare continua (butonul Run Continuously) si observati modul in care se comporta comutatorul si modul in care valoarea sa logica este transmisa elementului Round LED. elementul revine la valoarea initiala doar in momentul in care se realizeaza o transmitere a valorii pe fluxul de date. aceasta permitand stabilirea modului in care elementul se comporta la apasarea butonului mouse-ului de catre utilizator. se 42 . dar aceasta modificare dureaza doar pana cand valoarea logica este transmisa in diagrama pe fluxul de date. optiunea Latch When Pressed este utila atunci cand. acesta revine la valoarea dinaintea apasarii. 2 Dati exemple de situatii in care fiecare optiune ar fi utila (de exemplu. chiar daca utilizatorul continua sa tina butonul mouse-ului apasat.1. conectati intre ele terminalele celor doua elemente. iar valoarea ramane modificata si dupa eliberarea butonului  Switch When Released modifica valoarea logica a elementului atunci cand se elibereaza butonul mouse-ului (dupa ce in prealabil a fost apasat).6 Meniuri proprii specifice elementelor booleene Elementele de control booleene dispun in meniul propriu de optiunea suplimentara Mechanical Action. Dupa ce valoarea a fost transmisa. Imediat ce valoarea elementului a fost transmisa. dar aceasta modificare dureaza doar pana cand valoarea logica este transmisa in diagrama pe fluxul de date. Pentru fiecare optiune Mechanical Option a elementului de control.  Switch When Pressed modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului. in urma apasarii butonului de catre utilizator. In diagrama. iar modificarea se pastreaza atat timp cat utilizatorul tine butonul apasat. Dupa ce utilizatorul elibereaza butonul. elementul revine la valoarea initiala. EXERCITII 1 Dispuneti pe panou un element boolean de control de tipul Vertical Toggle Switch si un element indicator de tipul Round LED. iar dupa eliberarea butonului valoarea elementului redevine cea dinaintea apasarii  Latch When Pressed modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului.  Latch Until Released modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului. iar valoarea ramane modificata si dupa Figura 66 eliberare  Switch Until Released modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului.

43 . astfel incat textul nu mai poate fi format decat dintr-o singura linie. acesta considera ca s-a incheiat introducerea textului textul introdus in element nu este transmis ca valoare alfanumerica in fluxul de date decat dupa confirmarea prin apasarea tastei Enter "mici" a incheierii introducerii sale Comportamentul implicit al elementului poate fi modificat prin selectarea optiunilor din partea inferioara a meniului propriu:   Limit to Single Line: confera ambelor taste Enter acelasi rol.a.) Password Display: afisare tip "parola". de fiecare data cand textul introdus in element este modificat.3. \t = Tab. atunci cand se introduce un text intr-un element de control alfanumeric. de incheiere a introducerii textului. elementul considera ca se doreste trecerea la linia urmatoare daca se apasa tasta Enter "mica" (din zona cu taste numerice aflata in partea dreapta a tastaturii) sau daca se face click cu mouse-ul in afara elementului. nu se mai poate trece la o linie noua prin apasarea tastei Enter "mare".deruleaza o actiune cu un timp foarte scurt si nu se doreste ca aceasta actiune sa fie repetata chiar daca utilizatorul intarzie sa ridice degetul de pe butonul mouse-ului). elementul respectiv se comporta in modul urmator:    Figura 67 daca se apasa tasta Enter "mare" (din apropierea tastelor pentru litere)..d. 1. in locul fiecarui caracter fiind afisat un asterisk Hex Display: afisarea codurilor ASCII ale caracterelor In mod implicit. Update Value while Typing: elementul nu mai asteapta confirmarea incheierii introducerii textului pentru a transmite valoarea alfanumerica in fluxul de date.7 Meniuri proprii specifice elementelor alfanumerice Elementele de control si indicatoare alfanumerice dispun in meniul propriu de patru optiuni suplimentare referitoare la modul de afisare:     Normal Display: afisare normala a caracterelor "\" Codes Display: interpretarea caracterelor care urmeaza dupa "\" drept caractere neafisabile (\n = linie noua.m. Valoarea alfanumerica este transmisa automat. In acest mod. \s = spatiu s.

Se deschide apoi meniul de configurare a textelor.EXERCITII Dispuneti pe panou un element alfanumeric de control si experimentati optiunile suplimentare referitoare la afisare 2 Activati optiunea Limit to Single Line si experimentati modul de lucru specific acesteia 3 Dispuneti pe panou si un element indicator pentru valori alfanumerice. conectati terminalele celor doua elemente. si se selecteaza din submeniurile acestuia:  dimensiunea caracterelor (Size)  stilul textului (Style)  modul de aliniere (Justify)  culoarea (Color)  tipul de litera (Arial. Cele trei tipuri predefinite de fonturi pot fi la randul lor modificate daca se alege una din variantele:  comanda Font Dialog. 1 1. activati optiunea Update Value while Typing a elementului de control si rulati din nou programul in modul continuu. System.3. apoi se alege optiunea Fonts Figura 69 Figura 68 44 . Observati ca textul de la elementul de control este transmis elementului indicator doar dupa apasarea tastei Enter "mare" Opriti rularea programului. In diagrama. din meniul Tools.. fara a se mai astepta incheierea introducerii. se selecteaza intai elementul respectiv cu ajutorul uneltei de selectare. Observati ca de aceasta data textul din elementul de control este transmis elementului indicator pe masura ce este modificat.. din meniul de configurare a textelor  comanda Options. Times New Roman etc) Unui element i se poate aplica de asemenea un tip predefinit de font (Application... Rulati programul in modul continuu.8 Modificarea fontului unor elemente Pentru a modifica fontul cu care un element este reprezentat. aflat in bara de butoane. Dialog sau Current).

9 Ordonarea elementelor panoului si a diagramei In situatia in care se doreste alinierea mai multor elemente de pe panou sau a mai multor componente ale diagramei. cu echidistanta considerata intre diverse limite superioare sau inferioare ale elementelor  distribuire pe orizontala. se selecteaza obiectele respective apoi se deschide meniul de aliniere si se alege varianta dorita:  aliniere dupa o orizontala a limitelor superioare. Move Backward = un pas inapoi.EXERCITIU Dispuneti elemente de control si indicatoare pe panoul programului si modificati apoi fonturile cu care acestea sunt reprezentate. 1. centrelor sau limitelor din dreapta Distribuirea echidistanta a unor componente se realizeaza de asemenea prin selectarea acestora. urmata de deschiderea meniului de distribuire si alegerea uneia din variantele:  distribuire pe verticala.3. Move To Back = trecere in planul cel mai indepartat Figura 70 Figura 71 Figura 72 45 . Move To Front = trecere in planul cel mai apropiat. centrelor sau limitelor inferioare  aliniere dupa o verticala a limitelor din stanga. alegerea din meniul de ordonare a unei optiuni are drept urmare schimbarea pozitiei "in adancime" a elementelor selectate: Move Forward = un pas inainte. cu echidistanta considerata intre diverse limite din stanga sau din dreapta ale elementelor Atunci cand mai multe elemente sunt suprapuse.

se apasa butonul stang al mouseului si se deplaseaza mouse-ul tinand butonul apasat. Figura 74 Atunci cand cursorul mouse-ului este pozitionat nu deasupra unei limite ci deasupra unei gradatii intermediare de pe scala. Selectarea uneia sau mai multor componente si alegerea optiunii Lock nu mai permite deplasarea sau modificarea dimensiunilor componentelor respective (anularea efectului se realizeaza cu optiunea Unlock) EXERCITIU Figura 73 Dispuneti elemente de control si indicatoare pe panoul programului si exersati diverse variante de aliniere si distribuire. Suprapuneti unele dintre elemente si exersati optiunile de schimbare a pozitiei "in adancime" Exersati optiunile de grupare a mai multor elemente si de blocare a mutarii si dimensionarii 1.3. efectul obtinut este acela de modificare a unghiului la centru pe care scala este dispusa. Daca se pozitioneaza cursorul mouse-ului in apropierea mijlocului scalei unui element de control sau indicator de tip Meter.9 Modificarea scalei sau cursorului Daca se pozitioneaza cursorul mouse-ului deasupra unei limite a scalei unui element de control sau indicator de tipul unui potentiometru circular (Knob sau Dial). Figura 75 46 . efectul obtinut este acela de modificare a latimii benzii colorate (rampa) a scalei.Selectarea mai multor componente si alegerea optiunii Group are drept efect selectarea intregului grup atunci cand una dintre componente este selectata ("desfiintarea" grupului se realizeaza cu optiunea Ungroup). efectul obtinut este acela de rotire a scalei in jurul centrului elementului. iar dupa aparitia la mijlocul scalei a doua simboluri + se apasa butonul stang al mouse-ului si se deplaseaza mouse-ul tinand butonul apasat.

indiferent de locul in care sunt dispuse in diagrama. va conduce la introducerea in diagrama a unei entitati suplimentare. un element isi modifica valoarea.10 Variabile locale Selectarea.3. a optiunii Local Variable. din meniul Create al unui element de control sau indicator. iar dupa aparitia la colturi a unor simboluri "echer" se apasa butonul stang al mouse-ului si se deplaseaza mouse-ul tinand butonul apasat. capata valoarea corespunzatoare. la un moment dat. 1. numita variabila locala. toate variabilele sale locale. Figura 76 EXERCITIU Dispuneti pe panoul programului elemente de control si indicatoare de genul celor mentionate mai sus si exersati asupra lor modificarile de design prezentate. Figura 77 47 .Cursorul unui element de control sau indicator de tip potentiometru poate fi dimensionat daca se pozitioneaza cursorul mouse-ului deasupra unuia din colturile sale. O variabila locala reprezinta o instanta a elementului corespunzator: o dublura a acelui element. Daca.

din meniul propriu al variabilei locale. Pentru un element pot fi create mai multe variabile locale. dispuneti un element boolean de control de tipul Vertical Toggle Switch. optiunea Select Item. observati si explicati comportamentul elementului Vertical Toggle Switch. EXERCITIU In panoul unei aplicatii. variabila locala devine element de control (contur ingrosat). Pentru aceasta. atunci cand este creata. In mod implicit. din meniul propriu al variabilei locale. o variabila locala este un element indicator (contur subtire). unul de tipul Slide Switch si un indicator boolean Round LED. atunci cand legatura ar trebui efectuata de-a lungul unei zone intinse din diagrama. se selecteaza numele noului element pe care variabila locala il va reprezenta. variabila locala va genera valoarea elementului pe care il reprezinta. In aceasta situatie. zone in care sunt deja multe componente). Creati o variabila locala a elementului Vertical Toggle Switch. actionati comutatorul Slide Switch. Rulati programul cu optiunea Run Continuously. Terminalul variabilei locale are culoarea corespunzatoare tipului de date pe care le manipuleaza. conectati terminalul elementului Slide Switch atat la terminalul elementului Round LED cat si la variabila locala a elementului Vertical Toggle Switch. valoarea care ajunge la variabila locala este automat capatata de elementul pe care il reprezinta (aceasta este si o modalitate de a schimba prin program valorile elementelor de control).Variabilele locale sunt utilizate in situatia in care este complicat (sau imposibil) sa se efectueze o legatura direct la terminalul unui element (de exemplu. 48 . indiferent ca elementul pe care il reprezinta este unul de control sau indicator. Initial o variabila locala este o dublura a elementului din al carui meniu propriu a fost creata. In diagrama. In aceasta situatie. Elementul pe care variabila locala il reprezinta poate fi schimbat. Figura 78 Figura 79 Daca. se selecteaza optiunea Change To Read. numele acelui element fiind inscris in simbolul variabilei.

1. Printre cele mai des utilizate proprietati se numara: Position: pozitia elementului pe panou.3. elementul nu mai este afisat in panou (desi continua sa existe si are terminal in diagrama)   Figura 80    Disabled: valoarea 0 semnifica faptul ca utilizatorul poate actiona acel element.11 Noduri de proprietati Selectarea. in timpul executiei programului. valoarea 1 faptul ca elementul nu poate fi actionat (este dezactivat). numita nod de proprietati. din meniul Create al unui element de control sau indicator. va conduce la introducerea in diagrama a unei entitati suplimentare. Deschizand meniul propriu al nodului de proprietati. elementul este afisat "clipind" Label: proprietati de formatare a textului din eticheta 49 . un nod de proprietati citeste starea logica (afisat sau ascuns) a vizibilitatii elementului pe care il reprezinta. valoarea 2 faptul ca elementul este dezactivat si afisat in culori "sterse" Blinking: atunci cand aceasta proprietate are valoarea True. exprimate in pixeli Visible: daca aceasta proprietate are valoarea False. se poate selecta proprietatea pe care nodul o reprezinta. atunci cand este creat. optiunea Properties. a optiunii Property Node. exprimata in pixeli pe orizontala si pe verticala Bounds: dimensiunile elementului. Nodul de proprietati al unui element reprezinta o componenta prin intermediul careia. pot fi determinate (in sens de "citire") sau modificate automat (scrise) anumite proprietati ale elementului respectiv.  In mod implicit.

pentru a gestiona mai multe proprietati ale elementului pe care il reprezinta. 50 . Rulati programul cu optiunea Run Continuously. Introduceti in elementul numeric valoarea 0 si introduceti un text in elementul String. Un nod de proprietati poate fi dimensionat. treceti nodul respectiv in starea de scriere. similar optiunii Select Item din cazul variabilelor locale. dispuneti pe panou un element de tipul String Control. selectati pentru el proprietatea Disabled si legati la nod terminalul elementului de control numeric. acestea pot fi in mod independent de scriere sau de citire. EXERCITII 1 Dispuneti in panoul unei noi aplicatii un element de control boolean de tipul Vertical Toggle Switch si un element de control numeric. Elementul reprezentat de catre un nod de proprietati poate fi schimbat prin selectarea din meniul propriu al nodului a optiunii Link To.Un nod de proprietati poate fi trecut din starea implicita de citire in starea de scriere. creati un nod de proprietati pentru acesta. In diagrama pot exista mai multe noduri de proprietati ale aceluiasi element. prin selectarea optiunii Change To Write din meniul sau propriu. observati si explicati efectul. In starea de scriere. Introduceti in elementul numeric valoarea 2. treceti nodul respectiv in starea de scriere si conectati la el terminalul elementului boolean. Creati un nod de proprietati al elementului numeric. actionati comutatorul boolean. Introduceti in elementul numeric valoarea 1 si incercati sa modificati textul din elementul String. Atunci cand contine mai multe proprietati. observati si explicati efectul. un nod de proprietati poate primi valori care vor modifica proprietatile elementului corespunzator. 2 In aceeasi aplicatie. Rulati programul cu optiunea Run Continuously si actionati comutatorul boolean astfel incat elementul de control numeric sa fie vizibil.

5. elementul respectiv va deveni invizibil si va capata valoarea 0. elementul sa clipeasca pentru a semnaliza eroarea. 4.TEMA 1. Construiti un program pentru determinarea solutiilor unei ecuatii de gradul al doilea. In aceleasi conditii ca la tema nr. elementul de control numeric pentru coeficientul lui x2 sa capete valoarea 0. prin intermediul unui comutator boolean. tipul de ecuatie pe care doreste sa o rezolve: de gradul I sau de gradul al II-lea. cealalta cu mod de reprezentare complex. prin intermediul a doua elemente de control numerice (un Vertical Pointer Slide si un Horizontal Pointer Slide). 3. In cazul ecuatiei de gradul I. programul va dispune de doua perechi de indicatoare numerice separate: una cu mod de reprezentare real. Construiti un program in care utilizatorul sa poata alege. sa fie dezactivat (utilizatorul sa nu mai poata modifica valoarea) si sa fie afisat in culori sterse. In cazul in care utilizatorul nu introduce o valoare numerica in unul din elementele respective. Pentru afisarea radacinilor. 51 . 2. atunci cand se opteaza pentru rezolvarea unei ecuatii de gradul I. in functie de natura radacinilor ecuatiei. Sa se realizeze un program in care. 2. Sa se realizeze un program pentru determinarea solutiilor unei ecuatii de gradul al doilea in care elementele de control pentru introducerea coeficientilor ecuatiei sa aiba valoarea implicita NaN. Elementul de control numeric de la care se va introduce coeficientul lui x2 va fi vizibil doar in cazul ecuatiei de gradul al II-lea. utilizatorul sa poata specifica pozitia in panou a unui element indicator Round LED. Fiecare din cele doua perechi de elemente indicatoare va fi vizibila sau nu.

o structura ajunge sa se suprapuna cu alte elemente din diagrama. In diagrama.4 Structuri de programare 1. simboluri de functii si valori constante ce vor forma un flux de date in interiorul structurii. conturul structurii poate fi deplasat sau dimensionat. iar elemente din interior pot fi mutate in afara structurii. chenarul structurii poate fi trasat in jurul componentelor respective (dupa selectarea din subpaleta. Atunci cand o structura este deplasata. Deplasati si dimensionati structura. Daca.1. se traseaza automat un contur cu linie intrerupta. acestea nu vor fi incluse in structura. Daca. in momentul in care structura este aleasa din subpaleta Structures. Mutati elemente din structura in afara sa si aduceti elemente din exterior in interiorul structurii. 52 . toate elementele din interiorul sau se deplaseaza odata cu ea. o structura de programare urmeaza sa contina o serie de terminale de elemente.4. Elemente din afara structurii pot fi mutate in interiorul acesteia. contur ce va fi inlocuit de catre structura in momentul eliberarii butonului mouse-ului) Figura 81 Dupa dispunerea in diagrama. prin dimensionare sau deplasare. trasand de la inceput chenarul sau in jurul unui grup de elemente. EXERCITIU Exersati inserarea unei structuri oarecare (de exemplu Sequence) in diagrama. o parte din elementele pe care urmeaza sa le contina se afla deja dispuse in diagrama. se apasa butonul stang al mouseului in unul din colturile viitorului chenar si se deplaseaza mouse-ul tinand butonul apasat: pe masura ce mouse-ul este deplasat.1 Inserarea structurilor in diagrama Structurile de programare sunt componente ale diagramei ale caror simboluri se gasesc in subpaleta Structures a paletei de functii.

Atunci cand este dispusa in diagrama. De exemplu. trimitandu-se valoarea de la elementul de control Slide la elementul indicator Meter. in figurile de mai jos sunt reprezentate doua ferestre ale unei structuri Sequence. apoi va executa fereastra 1 ce are ca efect transmiterea valorii booleene intre cele doua elemente. Daca o structura Sequence contine mai mult de o fereastra. atunci ferestrele primesc indici (numere de ordine) incepand cu 0. Deschizand meniul propriu al structurii si alegand una din optiunile Add Frame After sau Add Frame Before. Structura va executa intai fereastra cu indicele 0. apoi noul indice. o structura Sequence contine o singura fereastra. fiecare dintre acestea cu propriul flux de date. o structura Sequence executa in ordine ferestrele respective. aceasta fiind totodata si fereastra curenta (vizibila). prin selectarea optiunii Add Sequence Local se dispune pe conturul structurii o variabila locala a acesteia (sub forma unui patrat galben).1.2 Structura secventiala (Sequence) Atunci cand dispune de mai multe ferestre. Se poate crea o dublura a ferestrei curente.4. selectand optiunea Make This Frame. fie apasand pe sageata din partea dreapta (indreptata in jos) si selectand indicele ferestrei dorite din lista care se desfasoara. Atunci cand se doreste transferul unei valori intre doua ferestre ale unei structuri Sequence. Fereastra curenta poate fi stearsa. Trecerea la o alta fereastra se poate realiza fie prin intermediul celor doua sageti de la capetele selectorului. este vizibil doar fluxul din fereastra curenta a unei structuri Sequence. Figura 82 Figura 83 53 . ordinea acestora poate fi schimbata: se modifica indicele ferestrei curente. se poate adauga o fereastra dupa sau inaintea celei curente. selectand din meniul propriu al structurii optiunea Duplicate Frame. iar pe latura superioara a conturului structurii apare un selector prin intermediul caruia se poate trece de la o fereastra la alta. Atunci cand o structura Sequence contine cel putin doua ferestre. La un moment dat. cu optiunea Delete This Frame.

patratul. In ferestrele anterioare ferestrei sursa. la iesirea respectiva (patratul de pe contur) nu va mai putea fi legata o alta valoare din alta fereastra (ar exista o incertitudine privind valoarea care iese din structura). se conecteaza o valoare la variabila locala. O structura Sequence poate dispune de mai multe variabile locale. In aceste ferestre. simbolul variabilei locale va contine o sageata indreptata spre interiorul structurii. utilizand variabile locale. in una din ferestrele structurii. Indiferent de indicele ferestrei in care s-a facut o legatura spre exterior. valoarea va parasi iesirea de pe conturul structurii Sequence doar dupa executarea ultimei ferestre. simbolul variabilei locale contine o fereastra indreptata spre exteriorul structurii. simbolul variabilei locale devine hasurat. calculati si afisati in aceasta ultima fereastra suma valorilor calculate in ferestrele anterioare. Valoarea calculata in fiecare fereastra a structurii va fi afisata intr-un element indicator separat. Pornind de la un element de control numeric al carui terminal este exterior structurii. valoarea transferata prin intermediul variabilei locale poate fi utilizata in fluxul de date.Daca. O valoare introdusa din exterior intr-o structura Sequence va putea fi utilizata in oricare dintre ferestrele structurii. In ferestrele de dupa fereastra sursa. Adaugati structurii o a cincea fereastra si. Daca. se face o legatura din structura Sequence in exteriorul acesteia. In acea fereastra. 54 . Intr-o structura Sequence pot fi utilizate valori provenite din fluxul de date exterior. fereastra respectiva devine fereastra sursa pentru acea variabila. radacina patrata si inversa (1/x) valorii numerice respective. EXERCITIU Introduceti in diagrama o structura Sequence cu patru ferestre. semn ca valoarea variabilei locale nu este accesibila in acele ferestre. intr-o anumita fereastra. calculati in ferestre succesive dublul.

atunci numele ferestrelor vor trebui sa fie de tipul string (se modifica utilizand unealta de editare texte)."F"). se spune ca iesirea din structura nu este complet definita. 55 . Daca la terminalul selector al unei structuri Case. are sens ca structura Case sa contina mai mult de doua ferestre. O valoare nu poate exista in numele mai multor ferestre (ar exista o Daca la terminalul selector al unei structuri Case se conecteaza o valoare alfanumerica.5.3 Structura cauzala (Case) Atunci cand este dispusa in diagrama. Deoarece structura Case nu va putea contine atatea ferestre cate valori numerice pot ajunge la terminalul sau selector. la acesta trebuie definite legaturi din toate ferestrele structurii. una dintre ferestre trebuie declarata drept fereastra implicita (Default). fiecare dintre acestea cu propriul flux de date. Se pot de asemenea defini multimi de valori (de genul "A". 3. In caz contrar. Fereastra implicita va fi executata atunci cand valorii ajunse la terminalul selector nu ii corespunde nici un nume de fereastra. 7.. Un nume de fereastra poate contine si descrierea unei multimi de valori. intelegand prin aceasta ca fereastra respectiva va fi executata daca la terminalul selector ajunge una din valorile 2. pe conturul structurii apare un terminal de iesire de culoare alba. Pe conturul structurii se afla dispus un terminal selector (de culoare verde. se conecteaza o valoare numerica (numar intreg sau natural). o structura Case contine doua ferestre (True si False). cu conditia evitarii dublurilor.1.4. Structura va executa fereastra al carei nume va coincide cu valoarea numerica ce ajunge la terminalul sau selector.. semn ca diagrama contine o eroare. Structura Case va executa doar una din cele doua ferestre. 5. Atunci cand o structura Case are pe contur un terminal de iesire. in locul unei valori booleene. de genul 2.. 8 sau 9. continand semnul intrebarii). 4. In aceasta situatie. numele ferestrelor se vor modifica automat din True si False in 0 si 1. Si in aceasta situatie trebuie sa existe o fereastra implicita.9. in functie de valoarea booleana (True sau False) conectata la terminalul sau selector. O valoare introdusa din exterior intr-o structura Case este accesibila in orice fereastra a acesteia. Daca dintr-o fereastra a unei structuri Case se scoate o valoare in exterior. 7.

la care trebuie legata o valoare care sa specifice numarul de iteratii pe care bucla urmeaza sa le execute. la terminalul unui element indicator de tip String din afara structurii. la o iesire trebuie sa ajunga acelasi tip de date din toate ferestrele structurii). In functie de valoarea elementului de control numeric. A DOUA PARTE (pentru primul caracter de la N la Z) sau NU INCEPE CU LITERA. trimiteti textul CIFRA PARA. Indicii iteratiilor sunt numerotati incepand cu valoarea 0. In functie de valoarea elementului de control boolean. 3 Introduceti in diagrama o structura Case la al carei terminal selector conectati terminalul unui element de control alfanumeric. terminalul de iesire se umple cu culoarea reprezentand tipul de date conectate (pentru a fi corect definita. la terminalul unui element indicator de tip String din afara structurii. EXERCITII Introduceti in diagrama o structura Case la al carei terminal selector conectati terminalul unui element de control boolean. Figura 84 56 .Atunci cand iesirea este complet definita. trimiteti textul ADEVARAT sau FALS. trimiteti textul PRIMA PARTE (pentru primul caracter de la A la M).4 Structura repetitiva cu numar fix de iteratii (bucla For) O bucla For executa de un numar fixat de ori portiunea de diagrama pe care o contine. O bucla For dispune in coltul stanga .4. 1 1. la terminalul unui element indicator de tip String din afara structurii. 2 Introduceti in diagrama o structura Case la al carei terminal selector conectati terminalul unui element de control numeric pentru valori naturale.sus de un terminal (notat cu N). In interiorul buclei se afla un terminal numarator (notat cu i) care genereaza o valoare naturala reprezentand indicele iteratiei curente (aflate in curs de executie). In functie de primul caracter din elementul de control. astfel incat ultima iteratie executata de catre bucla For va avea indicele N-1. CIFRA IMPARA sau NUMAR. O executie a portiunii interne de diagrama poarta numele de iteratie.

terminalul sau de continuare se afla in starea implicita Continue If True. Figura 85 Starea implicita a terminalului de continuare poate fi modificata. Figura 86 In coltul stanga . bucla While nu mai trece la urmatoarea iteratie ci isi incheie executia. Indicii iteratiilor sunt numerotati incepand cu valoarea 0. fie apasand butonul drept al mouse-ului si selectand starea din meniul propriu.jos) apare o anumita valoare booleana. Daca la terminalul de continuare ajunge o valoare logica False. 1.5 Structura repetitiva cu conditie de terminare (bucla While) O bucla While executa portiunea de diagrama pe care o contine pana cand la terminalul de continuare (aflat in coltul dreapta . Conectati terminalul unui element de control numeric la terminalul N al buclei si terminalul unui element indicator numeric la terminalul numarator al buclei. Terminalul poate fi trecut in starea Stop If True fie cu unealta de operare. Bucla va continua sa execute iteratii succesive atat timp cat la terminalul sau de continuare ajunge o valoare logica True. EXERCITIU Introduceti in diagrama o bucla While. Conectati terminalul unui element de control boolean de tipul Stop Button la terminalul de continuare al buclei si terminalul unui element indicator numeric la terminalul numarator al buclei.EXERCITIU Introduceti in diagrama o bucla For. astfel incat fiecare iteratie a buclei sa se efectueze in interval de doua secunde. Atunci cand o bucla While este dispusa in diagrama. In starea Stop If True bucla While isi va incheia executia atunci cand la terminalul de continuare ajunge valoarea logica True. Treceti terminalul de continuare al buclei 57 .4.jos. Rulati programul si urmariti in panou modificarea indicelui iteratiei curente. bucla While dispune de un terminal numarator (notat cu i) care genereaza o valoare naturala reprezentand indicele iteratiei curente (aflate in curs de executie). Introduceti in bucla o functie de asteptare.

Figura 89 58 . nu exista inca nici un transfer efectuat de catre registru intre cele doua terminale ale sale. valoarea transferata din iteratia anterioara se afla in componenta superioara. Se spune ca registrul de transfer se initializeaza. Introduceti in bucla o functie de asteptare. fiecare componenta contine cate o valoare provenita dintr-o iteratie mai indepartata. Figura 87 Figura 88 La executarea primei iteratii a unei bucle. Pentru a adauga un registru de transfer unei structuri repetitive (bucla For sau While). capatand astfel mai multe componente. 1.in starea Stop If True.4. O valoare conectata la terminalul drept al registrului va "apare" in terminalul stang la iteratia urmatoare.6 Registri de transfer in structuri repetitive Registrii de transfer sunt componente ale structurilor repetitive ce pot fi utilizate pentru transferul unor valori intre doua sau mai multe iteratii succesive ale structurii. Dupa executarea ultimei iteratii a buclei. Pentru a se putea efectua extragerea unei valori din terminalul stang la prima iteratie. Terminalul stang al registrului nu a fost inca "alimentat" cu o valoare din iteratia precedenta. din terminalul drept al registrului se poate extrage ultima valoare transferata acestuia. astfel incat fiecare iteratie a buclei sa se efectueze in interval de o secunda. Intr-o astfel de situatie. De sus in jos. Cu alte cuvinte. Un registru de transfer contine doua terminale (stang si drept) dispuse pe conturul structurii. se selecteaza optiunea Add Shift Register din meniul propriu al structurii. se conecteaza la acest terminal o valoare din exteriorul buclei. Rulati programul si urmariti in panou modificarea indicelui iteratiei curente. terminalul stang introduce in iteratia curenta valoarea ce a fost transmisa la terminalul drept in iteratia anterioara. Apasati butonul STOP pentru a incheia executia buclei While. Terminalul stang al unui registru de transfer poate fi dimensionat.

iar prin cel de-al doilea o valoare booleana. Atunci cand utilizatorul apasa un buton. astfel incat. O alta eventuala apasare pe buton nu este luata in considerare mai devreme de un minut de la comanda de anulare. daca pietonul apasa din nou butonul cat timp este aprinsa culoarea galbena. Construiti un program care sa simuleze functionarea unui semafor. LED-ul galben va sta aprins doua secunde. precum si un buton la a carui apasare executia buclei While sa se incheie. Initializati cei doi registri de transfer cu valori corespunzatoare. la interval de o secunda. LED-urile rosu si verde vor sta aprinse cate 10 secunde. 6. Sa se realizeze un program care sa numere descrescator de la 20 la zero. Dispuneti pe panou elemente indicatoare pentru afisarea valorilor din iteratia curenta si din cea precedenta.O structura repetitiva poate contine mai multi registri de transfer. folosind o variabila locala a unei structuri Sequence. 3. Prin primul dintre registri transferati o valoare numerica aleatoare X. apoi sa repete ciclul pâna la apasarea de catre utilizator a unui buton STOP. Apasati butonul Run. Culoarea verde (pentru autovehicule) va fi aprinsa continuu. 5. apoi treceti in diagrama. Dupa un astfel de ciclu declansat de catre un pieton. se aprinde pentru trei secunde culoarea galbena. TEMA 1. Programul va rula pana la apasarea de catre utilizator a unui buton STOP. apasarea sa fie considerata drept anulare si semaforul sa revina imediat la culoarea verde. obtinuta ca rezultat al evaluarii expresiei X > 0. Realizati un program care sa simuleze functionarea unui semafor cu buton pentru pietoni. galben sau verde. o alta eventuala apasare pe buton nu este luata in considerare mai devreme de doua minute de la revenirea la culoarea verde. aprinzand succesiv cate un LED rosu. Modificati programul de la problema anterioara. Completati cele doua programe anterioare prin adaugarea luminilor pentru pietoni. se aprinde apoi pentru 10 secunde culoarea rosie si se revine in final la culoarea verde. apasati butonul Highlight Execution si urmariti modul in care valorile sunt transferate intre iteratii. Sa se realizeze un program care sa aprinda un LED pentru trei secunde. sa-l stinga pentru o secunda.5. 4. 2. fiecare cu una sau mai multe componente ale terminalului stang si fiecare transferand intre iteratii valori de diverse tipuri. 59 . EXERCITIU Introduceti in diagrama o bucla While si adaugati-i acesteia doi registri de transfer. Introduceti in bucla While o functie care sa determine o asteptare de trei secunde la fiecare iteratie.

16. 13. Realizati un program care sa genereze valori numerice aleatoare pana in momentul in care obtine in trei iteratii consecutive valori mai mari sau egale cu o limita X impusa de catre utilizator. . daca raspunsul a fost incorect. Sa se realizeze un program care sa determine daca un numar specificat de catre utilizator este numar prim. . Sa se realizeze un program care sa afiseze. pâna când valoarea generata x îndeplineste conditia x > 0. Sa se realizeze un program care sa afiseze succesiv primele 10 numere pare. 14. 60 . intr-o suma de doua numere prime. la interval de 0. Sa se realizeze un program care sa numere crescator. din unu în unu. generate aleator intre 1 si 10. 15. la interval de o secunda.7. strict mai mare decat 2.sa afiseze numarul total de intrebari. pâna când utilizatorul apasa un buton STOP.sa compare valoarea introdusa de catre utilizator cu produsul calculat al celor doua numere aleatoare si sa aprinda un LED daca raspunsul a fost corect. . in milisecunde.sa ruleze pana la apasarea de catre utilizator a unui buton STOP. Sa se realizeze un program care sa permita introducerea de catre utilizator a unor valori numerice reale a si b. Sa se realizeze un program care sa genereze continuu numere aleatoare. Sa se realizeze un program pentru descompunerea unui numar natural par. 11. 8. procentajul raspunsurilor corecte si timpul mediu de raspuns. Realizati un program care sa efectueze urmatoarele: . sa afiseze timpul necesar utilizatorului pentru a da raspunsul. apasa un buton OK. 10. timpul scurs intre apasarile de catre utilizator a doua butoane.5 secunde.sa astepte pana in momentul in care utilizatorul. sa aprinda un LED si sa se opreasca. sa afiseze valoarea corecta. . Sa se realizeze un program care. dupa ce a introdus intr-un element de control valoarea produsului celor doua numere. sa astepte apasarea unui buton OK si apoi sa aprinda un LED daca este îndeplinita conditia a < b. 9. 12. în momentul în care utilizatorul introduce o valoare numerica mai mare decât cinci. la intervale de doua secunde.97.sa afiseze doua numere naturale.

acesta din urma modificandu-si corespunzator \ dimensiunile. Se spune ca elementul de tip Array este vid. inainte de a se elibera butonul stang al mouse-ului. elementul scalar apare in interiorul elementului Array.1 Definirea tipului de date al unui Array Spre deosebire de elementele scalare. boolean. In diagrama. iar terminalul elementului Array capata culoarea. alfanumeric). un element de tipul Array se selecteaza din meniul Array & Cluster al paletei de elemente. Atunci cand un element de tipul Array se dispune pe panou. semn ca programul este incomplet si nu poate fi rulat. Terminalul din diagrama al elementului este de culoare neagra. in elementul de tip Array trebuie introdus un element de control sau indicator scalar de tipul dorit (numeric. Elementul scalar ce urmeaza a fi introdus in Array poate exista deja pe panou sau poate fi selectat la momentul respectiv din paleta de elemente. terminalul elementului scalar dispare. care reprezentau o singura valoare. tipul datelor pe care acesta le va contine nu este inca definit. boolean sau alfanumeric). mai multe valori de acelasi tip. de un anumit tip (numeric.5. Figura 90 Figura 91 61 . conturul elementului Array este marcat cu o linie intrerupta (Array-ul sesizeaza ca i se va introduce un element scalar) La eliberarea butonului mouseului. Pentru a fi dispus in panou. Sageata Run este sparta.1. intr-o maniera ordonata. Cand elementul scalar este adus deasupra elementului Array.5 Functii pentru valori vectoriale (Array) 1. elementele vectoriale (Array) pot contine. textul si grosimea de chenar corespunzatoare datelor pe care le va manipula. Pentru a defini tipul de date.

un Array cu valori alfanumerice. se apasa butonul stang al mouse-ului si. Redimensionarea conturului se poate efectua atat pe verticala cat si pe orizontala. Imediat dupa ce i se defineste tipul de date.EXERCITIU Dispuneti pe panoul unei aplicatii: . . utilizatorul defineste o valoare si exista valori cu indici mai mici inca nedefinite. conturul redimensionat al elementului Array este marcat cu linie intrerupta. la un moment dat. un element de tip Array dispune de un index. Atunci cand se defineste o valoare din Array. Indicele primei valori dintr-un Array este 0. Figura 92 Figura 93 Figura 94 62 . Pentru a modifica numarul de valori afisate. . In partea sa stanga. un element de tip Array afiseaza la un moment dat o singura valoare. La aparitia celor patru simboluri "echer". Indexul unui element Array indica numarul de ordine al valorii afisate in pozitia superioara (indicele valorii). Daca. acestea vor capata automat o valoare implicita. se elibereaza butonul mouse-ului si elementul Array este afisat redimensionat. Transformati cele trei Array-uri din elemente de control in elemente indicatoare.un Array cu valori numerice. astfel incat pe colturile acestuia sa apara patru simboluri "echer" . tinandu-l apasat. Faptul este semnalizat prin afisarea "opaca" a elementelor pe care Array-ul le contine. se deplaseaza mouse-ul astfel incat sa se redimensioneze conturul elementului Arra Pe masura ce mouse-ul este deplasat.2 Definirea valorilor si a numarului de valori vizibile Atunci cand este dispus in panou si ii este definit tipul de date.5. Atunci cand conturul a fost redimensionat astfel incat sa poata cuprinde numarul dorit de valori. 1.un Array cu valori booleene. se pozitioneaza intai cursorul mouseului pe un colt al elementului Array. un Array nu contine nici o valoare (este vid). aceasta este afisata normal. in functie de tip.

1. unele valori nu mai sunt vizibile.5.3 Definirea numarului de dimensiuni In mod implicit. conexiunile pe care circula un Array cu o dimensiune sunt mai groase decat cele pe care circula valori scalare. Daca. pana cand indexul capata dimensiunea dorita. Transformati Array-urile in elemente de control (daca este cazul) si definiti valori in cadrul acestora. se apasa butonul mouse-ului si se deplaseaza mouse-ul tinand butonul apasat. in urma acestei deplasari. Numarul de dimensiuni ale unui Array poate fi modificat prin dimensionarea indexului acestuia: se pozitioneaza cursorul mouse-ului pe un colt al indexului. Atunci cand se realizeaza legaturi in diagrama. Figura 95 EXERCITIU Modificati numerele de valori vizibile ale celor trei Array-uri create in exercitiul anterior. atunci cand este creat. Modificati indexul fiecarui Array si observati modul in care valorile se deplaseaza. un Array are o singura dimensiune. se poate stabili afisarea mai multor linii si mai multor coloane. faptul nu echivaleaza cu stergerea acestora: valorile continua sa existe in cadrul Array-ului si pot fi vizualizate prin modificarea corespunzatoare a indexului.Cand se modifica valoarea indexului unui Array. Figura 97 63 . valorile acestuia se deplaseaza astfel incat in pozitia superioara sa fie afisata valoarea cu indexul selectat. Figura 96 Terminalul unui element Array se caracterizeaza prin prezenta unor paranteze drepte a caror grosime este proportionala cu numarul de dimensiuni. astfel incat pe colturile acestuia sa apara patru simboluri "echer". Daca un Array are mai mult de o dimensiune. putand fi descris drept o matrice coloana.

Pentru a obtine in mod dinamic (programatic). Functia Initialize Array genereaza un Array cu una sau mai multe dimensiuni. conexiunile sunt reprezentate cu linie dubla. Observati comportamentul unei matrici la introducerea unei valori anterior nedefinite. 1. boolean sau alfanumeric). La dispunerea sa in diagrama. structuri de valori de tipul Array. EXERCITIU Mariti numerele de dimensiuni ale Array-urilor create in exercitiile anterioare si afisati mai multe linii si mai multe coloane. in diagrama. similar elementelor Array de pe panou. Definirea tipului de date se realizeaza prin introducerea in chenarul constantei Array a unei constante de tipul dorit (numeric.5. continand aceeasi valoare (conectata la intrarea element) in toate 64 . valorile existente initial in Array sunt distribuite pe prima linie a matricei.Pentru Array-urile cu doua sau mai multe dimensiuni.4 Construirea Array-urilor in diagrama Atunci cand este necesara existenta in diagrama a unei constante Array. atunci cand un Array cu o dimensiune este transformat in unul cu doua dimensiuni (matrice). Observati ca. Spatiul intermediar al liniei duble este cu atat mai mare cu cat numarul de dimensiuni ale Array-ului este mai mare. Modificati indexurile unei matrici si observati modul de deplasare a valorilor. aceasta poate fi selectata din meniul cu functii pentru valori vectoriale (Array) al paletei de functii. o astfel de constanta nu are definit tipul de date pe care le va contine. pot fi utilizate o serie de functii specifice. Figura 98 O constanta Array permite aceleasi operatii de definire a numarului de valori vizibile sau de modificare a numarului de dimensiuni ca si elementele Array din panou.

m. functia va obtine un Array cu un numar de dimensiuni imediat superior celui al intrarilor (Array cu o dimensiune din valori scalare. Daca se doreste generarea unui Array cu mai multe dimensiuni. matrice din linii s. .d. simbolul functiei poate fi dimensionat. adauga linii la matrici s.m.). functia poate opera in doua moduri. Daca la toate intrarile functiei sunt legate elemente cu acelasi numar de dimensiuni. functia are o singura intrare dimension size. Functia Build Array concateneaza la un Array una sau mai multe elemente cu un numar de dimensiuni imediat inferior (adauga valori scalare la un Array cu o dimensiune. Daca la una dintre intrarile dimension size se conecteaza valoarea 0. Figura 99 Figura 100 Figura 101 Fgura 102 Functia Interleave 1D Array construieste un Array cu o singura dimensiune prin intreteserea mai multor Array-uri avand de asemenea o singura dimensiune. dupa cum optiunea Concatenate Inputs din meniul sau propriu este sau nu activata: . Atunci cand este dispusa in diagrama.d. functia va genera un Array vid. Array-ul rezultat este format prin preluarea alternativa a cate unei valori din fiecare Array de 65 .a. Atunci cand este dispusa in diagrama. sau daca toate intrarile respective sunt neconectate.a.daca optiunea nu este activata. Numarul de valori de-a lungul unei dimensiuni se specifica la intrarea dimension size a functiei.).daca optiunea este activata. Numarul dorit de intrari se obtine prin dimensionarea simbolului functiei. functia are o singura intrare. functia va concatena intrarile si va obtine un Array cu un numar de dimensiuni egal cu al intrarilor (optiunea nu este valabila daca toate intrarile sunt scalare). generand astfel un Array cu o singura dimensiune.pozitiile.

De exemplu. iar pe a doua linie rezultatul intreteserii valorilor acestora. Initializati un Array cu o dimensiune. Daca Array-ul de intrare are o singura dimensiune. Daca la terminalele pentru indici nu se conecteaza valori. Daca Array-ul de intrare are N dimensiuni (N>1). iesirea functiei este un Array cu o dimensiune.intrare. Conectarea unei valori doar la intrarea pentru indicele liniei va determina extragerea din matrice a intregii linii cu indicele respectiv. functia va lua in considerare valori implicite. Explicati de ce ultimele cinci valori de pe a doua linie a matricei sunt nule. Daca la intrarea functiei Index Array se conecteaza un Array cu doua dimensiuni. functia Index Array are un singur terminal pentru specificarea indicelui. ATENTIE: prima valoare dintr-un sir are indexul 0 ! Atunci cand este dispusa in diagrama. dar numarul acestora poate fi modificat prin dimensionarea simbolului. un terminal pentru indice se transforma intr-un terminal dublu.5. incepand cu 0. iesirea functiei va fi un Array cu doua elemente. functia contine doar doua intrari. conectarea unei valori doar la 66 . 1. EXERCITIU Inserati in diagrama o constanta Array de valori numerice. Construiti o matrice care sa contina pe prima linie rezultatul concatenarii celor doua Array-uri de mai sus. continand primele cinci numere naturale. cu o dimensiune. iesirea functiei va fi o valoare scalara. Functia Index Array extrage una sau mai multe valori ai caror indici sunt specificati. La dispunerea in diagrama. In mod similar.5 Functii informative pentru Array-uri Functia Array Size determina numarul de valori dintr-un element de tip Array cu una sau mai multe dimensiuni. In mod implicit. Simbolul functiei poate fi dimensionat astfel incat sa dispuna de mai multe astfel de terminale. primul reprezentand numarul de linii si al doilea numarul de coloane ale intrarii. intrarea pentru indicele coloanei este dezactivata (dreptunghi alb). cu o intrare pentru indicele liniei si una pentru indicele coloanei. continand N elemente. continand de zece ori valoarea 7. daca la intrarea functiei se conecteaza o matrice.

intrarea pentru indicele coloanei va determina extragerea din matrice a intregii coloane cu indicele respectiv. Array-ul de intrare contine valorile 1. iar la intrarea fractional index or x este conectata valoarea 1. 4 si 6. Pentru fiecare dimensiune a Array-ului de intrare. indicii valorilor extreme nu vor mai fi valori scalare. si returneaza indicele elementului gasit. functia cauta doua valori consecutive din Array astfel incat prima sa fie mai mica decat pragul si a doua mai mare sau egala cu acesta. functia dispune de o intrare index (pozitia din care va incepe extractia) si de o intrare length (numarul de valori extrase de-a lungul dimensiunii respective). atunci functia returneaza valoarea -1. Functia Array Max & Min determina valorile maxima si minima dintr-un Array de valori numerice. incepand de la un indice specificat. Functia Array Subset extrage o portiune dintr-un Array. functia va genera rezultatul 3. ci vor fi la randul lor Array-uri cu un numar de valori egal cu numarul de dimensiuni ale Array-ului de intrare. Daca Array-ul de intrare are mai multe dimensiuni. Daca elementul cautat nu se afla in Array. precum si indicii acestor valori extreme. Functia Search 1D Array cauta o valoare intr-un Array unidimensional. de exemplu. Functia Threshold 1D Array realizeaza o operatie inversa interpolarii: dispunand de un Array de valori numerice si de un prag (intrarea threshold y). la 70 % din distanta dintre aceasta si urmatoarea). 67 .7. Functia Interpolate 1D Array realizeaza o interpolare pe valorile Array-ului de la intrarea array of numbers or points. incepand de la un indice de start specificat.4 (dupa valoarea cu indicele 1. Daca. Conectarea de valori atat la indicele liniei cat si la cel al coloanei va determina extragerea din matrice a unei singure valori. 2.

la fiecare permutare prima valoare din Array trece in ultima pozitie. 68 .5. Functia Reverse 1D Array inverseaza ordinea valorilor dintr-un Array unidimensional Functia Sort 1D Array sorteaza valorile dintr-un Array unidimensional: crescator daca valorile sunt numerice sau in ordine alfabetica daca valorile sunt de tip alfanumeric (String). 1. construiti cate un program care sa exemplifice modul de utilizare a functiei.6 Functii de ordonare pentru Array-uri Functia Rotate 1D Array efectueaza n permutari circulare ale valorilor dintr-un Array cu o singura dimensiune.daca n<0. De exemplu. un Array unidimensional cu sase valori poate fi transformat intr-o matrice cu trei linii si doua coloane. iesirea fractional index or x are partea intreaga egala cu indicele primei valori din pereche.daca n>0. Numarul de dimensiuni ale rezultatului va fi egal cu numarul de terminale dimension size ale simbolului functiei. Sensul permutarilor este determinat de semnul valorii n: . . Functia Transpose 2D Array transpune o matrice. Functia Reshape Array modifica numarul de dimensiuni ale unui element de tip Array.In situatia in care gaseste o astfel de pereche de valori consecutive. sau invers. la fiecare permutare ultima valoare din Array trece pe prima pozitie. EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. partea fractionala reflectand pozitia pragului intre cele doua valori.

Atunci cand la intrarea functiei se conecteaza un Array cu mai multe dimensiuni. nu se poate insera un element scalar intr-o matrice). incepand de la un indice specificat. Stergerea se efectueaza doar de-a lungul unei singure dimensiuni: se sterg elemente dintrun Array cu o dimensiune. Numarul de valori din Array creste. Functia poate mari numarul de valori din Array doar de-a lungul unei singure dimensiuni. incepand de la un indice specificat (implicit ultimul element). Functia Insert Into Array insereaza valori intr-un Array. se vor putea insera in acesta doar elemente cu N sau cu N-1 dimensiuni (de exemplu. Numarul de dimensiuni ale celei de a doua iesiri variaza: este egal cu numarul de dimensiuni ale Array-ului de intrare daca a fost conectata o valoare la intrarea length si este cu o unitate mai mic decat numarul respectiv daca intrarea length a fost lasata neconectata. incepand de la un indice specificat.EXERCITIU Pentru fiecare dintre functiile prezentate mai sus.7 Functii de modificare pentru Array-uri Functia Replace Array Subset inlocuieste valori dintr-un Array. construiti cate un program care sa exemplifice modul de utilizare a functiei 1. Functia Delete From Array sterge dintr-un Array o portiune de marime specificata (intrarea length. astfel incat. linii sau coloane dintr-o matrice etc (nu se poate sterge doar o valoare dintr-o matrice).5. 69 . Simbolul functiei poate fi dimensionat pentru a permite inlocuiri simultane in mai multe portiuni. Functia dispune atat de o iesire pentru Array-ul din care s-a realizat stergerea. daca inserarea urmeaza a se efectua intr-un Array cu N dimensiuni. cu valoare implicita 1). cat si de o iesire pentru portiunea ce a fost stearsa. terminalele pentru indici capata intrari pentru linii si coloane ce pot fi activate sau dezactivate independent.

la fiecare iteratie a sa. functia are doua iesiri. construiti cate un program care sa exemplifice modul de utilizare a functiei.a. Functia Decimate 1D Array imparte un Array intial intr-un numar de Array-uri egal cu numarul de iesiri. index-1. un Array este conectat la o structura repetitiva For. 1. dar numarul acestora poate fi modificat prin dimensionarea simbolului functiei. . locul in care se efectueaza divizarea fiind determinat de valoarea conectata la intrarea index a functiei. cea cu indicele 3 din nou la prima iesire. doar cate o valoare din Array. Valoarea preluata la o iteratie este cea cu indicele din Array egal cu indicele iteratiei buclei.m.. cea cu indicele 4 la a doua s. De exemplu. daca functia are trei iesiri. Valorile din Array-ul initial sunt repartizate alternativ Array-urilor de iesire.Functia Split 1D Array divide un Array unidimensional in doua Array-uri. 70 .. nu mai este necesara conectarea unei valori la terminalul N al buclei. In aceasta situatie. bucla For va executa un numar de iteratii egal cu minimul dintre acea valoare si numarul de valori din Array. in diagrama. bucla respectiva va prelua. Array-ul rezultat la iesirea first subarray va contine valorile ce se aflau in Array-ul initial pe pozitiile 0.d. cea cu indicele 1 la a doua. Initial. EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. 1. Aceasta va executa atatea iteratii cate valori sunt in Array-ul de intrare. valoarea cu indicele 0 este repartizata la prima iesire..8 Elementele Array si structurile repetitive Atunci cand. cea cu indicele 2 la a treia. Daca se conecteaza totusi o valoare la terminalul N.5.

comportamentul implicit este inversat:  in mod implicit. cu deosebirea ca. din meniul propriu. la fiecare iteratie a buclei va fi preluat intreg Array-ul de intrare. din acea componenta. Considerentele de mai sus sunt valabile pentru Array-uri de orice dimensiune:  dintr-o matrice. dupa incheierea ultimei iteratii. din meniul propriu al componentei de pe conturul buclei. Doar daca se selecteaza optiunea Enable Indexing a componentei de pe contur. Valorile ce au ajuns pe contur in toate celelalte iteratii vor fi pierdute. In acest caz. se alege optiunea Disable Indexing. un Array cuprinzand valorile primite in cadrul tuturor iteratiilor. optiunea Enable Indexing. bucla While va prelua cate o valoare la fiecare iteratie. Modurile in care un Array se poate comporta la intrarea sau la iesirea dintr-o structura repetitiva sunt valabile si in cazul buclelor While. aceasta va genera. va parasi bucla doar valoarea din ultima iteratie. atunci cand bucla isi incheie ultima iteratie. este necesar ca o valoare sa fie conectata la terminalul N al buclei. 71 . Comportamentul buclei la intrarea unui Array poate fi modificat: daca. in cazul acestora. la incheierea ultimei iteratii componenta buclei va genera fie o matrice. o valoare scalara este conectata la conturul acesteia. Daca se alege optiunea Disable Indexing pentru o componenta de pe contur la care sunt conectate valori din interiorul buclei. valorile scalare ajunse pe contur in toate iteratiile vor parasi bucla grupate intr-un Array.Daca.  daca un Array unidimensional din interiorul buclei este conectat pe conturul acesteia. se poate prelua la fiecare iteratie a buclei fie cate o linie. daca o valoare din interiorul unei bucle While se conecteaza la conturul acesteia. doar valoarea primita in ultima iteratie. Doar in cazul in care componentei de pe contur i se selecteaza. fie doar Array-ul primit in ultima iteratie. fie intreaga matrice. componenta de pe contur va genera. dupa incheierea executiei buclei. dupa incheierea ultimei iteratii. din interiorul unei bucle For.  mod implicit. o bucla While va prelua la fiecare iteratie intreg Array-ul de intrare.

Se pot astfel realiza:  operatii aritmetice asupra valorilor dintr-un Array (radacina patrata.9 Alte functii pentru elemente Array Functiile aritmetice si logice pentru valori scalare. functia va genera o valoare booleana scalara. se alege optiunea Compare Aggregates. daca se compara doua Array-uri de valori numerice cu functia Equal? in starea Compare Aggregates. Daca. Figura 104 72 .  operatii logice intre un Array si o valoare booleana sau intre doua Array-uri cu valori booleene. functii trigonometrice etc. De exemplu. asupra tuturor valorilor booleene dintr-un Array. functiile de comparatie genereaza un Array de valori booleene. permit conectarea de Array-uri continand valori de tipurile corespunzatoare. intre un Array si o valoare scalara sau intre doua Array-uri.  operatii asupra Array-urilor de valori alfanumerice.). respectiv produsul valorilor numerice dintrun Array. Functiile And Array Elements si Or Array Elements efectueaza operatiile logice SI. 1. din meniul propriu al functiei de comparatie. precum si cele pentru valori alfanumerice. a) b) Figura 103 c) Functiile Add Array Elements si Multiply Array Elements determina suma.EXERCITIU Realizati un program care sa exemplifice modul in care Array-urile se pot comporta la intrarea sau la iesirea din buclele For sau While. compararea fiind efectuata valoare cu valoare. functia va genera valoarea True doar daca este indeplinita conditia de egalitate intre toate perechile de valori aflate pe aceleasi pozitii in cele doua Array-uri.5. obtinand o valoare booleana scalara. respectiv SAU. Atunci cand au drept operanzi un Array si o valoare scalara sau doua Array-uri.

73 . Sa se calculeze media elementelor ramase dupa eliminarea valorilor minima si maxima dintr-un Array de valori numerice. Sa se ordoneze descrescator un Array de valori numerice. True).Functia Number To Boolean Array. True. TEMA 1. Fiind date un Array de valori numerice si doua valori numerice scalare a si b. 8. 6. 3. dintr-un Array de valori booleene intr-un numar natural. Sa se verifice prin aprinderea unui LED daca un Array de valori numerice contine un numar par de valori. sa se insereze valoarea a în prima pozitie din Array si valoarea b în ultima pozitie a acestuia. construiti cate un program care sa exemplifice modul de utilizare a functiei. transforma un numar natural intrun Array de valori booleene. aflata in meniul pentru functii booleene. Sa se calculeze produsul dintre minimul elementelor de rang par si maximul elementelor de rang impar ale unui Array de valori numerice. Sa se verifice prin aprinderea unui LED daca valoarea minima dintr-un Array de valori numerice apare înaintea valorii maxime. Bitul cel mai putin semnificativ este reprezentat in Array de valoarea cu indicele 0. efectuand de fapt transformarea din baza 10 in baza 2. Functia Boolean Array To Number realizeaza transformarea inversa. 5. 4. Sa se calculeze diferenta dintre valorile maxima si minima dintr-un Array de valori numerice. Sa se calculeze suma dintre primul si ultimul element ale unui Array de valori numerice. De exemplu. EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. valoarea 6=0+21+22 este transformata intr-un Array cu trei valori booleene: (False. 7. 2.

Sa se determine numarul de valori True dintr-un Array de valori booleene (logice). Sa se realizeze un program pentru generarea unui Array de 50 de valori booleene aleatoare. Sa se realizeze un program pentru transformarea reprezentarii unui numar N (specificat de catre utilizator) din cod binar (text format din caracterele 0 si 1) în cod zecimal. 22. 360. Sa se realizeze un program care sa afiseze primii zece multipli ai lui 6. Reprezentarea in cod binar sa fie sub forma unui text format din caracterele 0 si 1. Sa se genereze un Array ale carui valori sa reprezinte dublul numerelor de la 0 la 100. precum si rangurile pe care apar aceste elemente în Array. . astfel încât probabilitatea de aparitie a valorii logice True sa fie 0. 23. 12. 18... 13. 74 . 16. Sa se realizeze un program pentru calculul valorilor Array-ului (ai = sin i). i = 0. 7). Sa se realizeze un program pentru transformarea reprezentarii unui numar N (specificat de catre utilizator) din cod zecimal în cod binar. Sa se genereze o matrice cu 50 de linii si 2 coloane în care elementele de pe prima coloana sa fie numere naturale succesive.9. Sa se genereze o matrice cu 10 de linii si 3 coloane de numere aleatoare aflate în intervalul (4. 14. 15. 11. iar fiecare element de pe a treia coloana sa fie suma numerelor aflate pe primele doua coloane ale aceleiasi linii. 19. 17.7. 20. iar un element de pe a doua coloana sa reprezinte aria unui cerc cu raza egala cu valoarea de pe prima coloana si aceeasi linie. Sa se calculeze suma celor trei valori aflate în mijlocul un Array ce contine un numar impar de valori numerice. i exprimat în grade. 10. Sa se genereze o matrice cu 36 de linii si 3 coloane în care elementele de pe prima coloana sa fie multipli ai lui 10. Sa se genereze o matrice cu 20 de linii si 3 coloane în care elementele de pe primele doua coloane sa fie numere aleatoare. iar elementele de pe coloanele a doua si a treia sa reprezinte sinusul si cosinusul valorii (exprimate în grade) de pe prima coloana si aceeasi linie. cu valoarea N specificata de catre utilizator. Sa se realizeze un program pentru generarea unui Array de 50 de numere aleatoare cuprinse între N1 si N2 (N1 si N2 specificate de catre utilizator). 21.. Sa se realizeze un program pentru calculul expresiei N! (factorial). Sa se determine elementul maxim al multimii formate din termenii de rang impar si elementul minim al multimii formate din termenii de rang par ai unui Array de valori numerice.

34.m. 37. nule. Sa se elimine dintr-un Array elementele care se repeta. Sa se genereze toate permutarile primelor N numere naturale. 5 3 1 32. 6 = 1 + 2 + 3). strict mai mare decat 2. iar in caz afirmativ sa se indice daca sirul este crescator sau descrescator.m. Sa se determine c. 170 = 27 + 2 + 2 + 2 ).m. unde a si b sunt numere intregi. 35. 27. care au proprietatea ca reprezentarile în baza 2 ale patratului si cubului lor contin acelasi numar de cifre binare cu valoarea 1. Sa se descompuna un numar natural par. Sa se realizeze un program pentru simplificarea unei fractii a/b. Sa se determine primele N numere naturale egale cu suma divizorilor lor din care se exclude numarul insusi (de ex. 33.6. a doua numere naturale nenule. Fiind date doua valori numerice a si b. 30.m. 31.6 Date de tip Cluster 1. intr-o suma de doua numere prime. 29. 1. Sa se determine c. sa se determine numarul de elemente dintr-un Array aflate intre a si b. b]. 25.p = 2. Sa se elimine dintr-un Array valorile ce se afla în afara unui interval dat [a.1 Elemente de tip Cluster 75 .d. Sa se determine numarul de valori strict pozitive. 26. Sa se verifice daca valorile numerice dintr-un Array formeaza un sir monoton.m.c. 36. a doua numere naturale nenule. cu a mai mic decât b.c. 28. Sa se determine primele N perechi de numere prime p si q care indeplinesc conditia q . respectiv negative dintr-un Array de valori numerice. Sa se determine toate numerele naturale cuprinse între doua limite date m si n.24. Sa se descompuna un numar natural intr-o suma de puteri ale lui 2 (de ex.

atunci cand un element este pozitionat deasupra chenarului unui Cluster. de exemplu. astfel incat acesta sa se "muleze" pe multimea de elemente din interior (optiunea 76 . de tipuri si dimensiuni diferite. Un Cluster poate contine. un Array de valori booleene si un Cluster format din trei valori alfanumerice si una booleana). Figura 105 EXERCITIU Dispuneti pe panou un element de tip Cluster si introduceti in chenarul acestuia:    un element pentru valori numerice un Array cu valori booleene un alt Cluster. un element de tip Cluster se selecteaza din meniul Array & Cluster al paletei de functii.6. un Cluster este o structura vida (un chenar). Imediat dupa ce este dispus pe panou. o valoare numerica. Similar modului de definire a tipului elementelor Array.2 Meniul propriu al elementelor de tip Cluster Submeniul Autosizing din meniul propriu al unui element de tipul Cluster permite:  modificarea dimensiunilor chenarului. care sa contina doua elemente de tip String si un element pentru valori numerice 1. o valoare numerica. inainte ca utilizatorul sa ridice butonul stang al mouse-ului. sau poate contine o combinatie de valori scalare. Definirea structurii de valori dintr-un Cluster se realizeaza prin introducerea in chenarul sau a unor elemente de tipurile dorite. nu contine nici o valoare. doua booleene si una alfanumerica (text). Pentru a fi introdus in panoul unei aplicatii. vectoriale si chiar alte elemente de tip Cluster (de exemplu. chenarul elementului Cluster este reprezentat cu linie intrerupta.Elementele de tip Cluster sunt structuri de date ce pot contine mai multe valori.

elementele cu indicii 0. Indicele avut de element inainte de inceperea modificarilor este scris cu negru pe fond alb.La selectarea acestei optiuni. prin click-uri cu mouse-ul. Langa fiecare element sunt afisati cate doi indici. 2 s. Anularea modificarilor indicilor si revenirea la situatia anterioara se efectueaza prin apasarea butonului marcat cu X.a. 1. Indicele modificat este scris cu alb pe fond negru.d. Indicele pe care il va capata elementul pe care se va efectua urmatorul click este mentionat in dreptul textului Click to set to (initial 0). panoul aplicatiei devine negru iar programul asteapta ca utilizatorul sa indice succesiv. Validarea modificarilor se efectueaza prin apasarea butonului OK.m. Figura 107 77 .

corespunzator numarului de elemente din Cluster.d.3 Functii pentru elemente de tip Cluster (1) Functiile specifice elementelor de tipul Cluster sunt grupate in meniul cu acelasi nume al paletei de functii.m. Functia Unbundle permite separarea elementelor unui Cluster. Functia Bundle grupeaza mai multe valori (elemente) intr-o structura de tip Cluster. atunci la toate intrarile sale trebuie sa existe conexiuni. cea imediat de sub ea elementului cu indicele 1 s. Daca la intrarea cluster a functiei Bundle nu se conecteaza nimic.6. ea poseda doua iesiri si poate fi dimensionata. Iesirile functiei capata culori si inscriptii corespunzatoare elementelor componente.a. functia se dimensioneaza automat. Cand se realizeaza o legatura intre terminalul unui Cluster si o functie Unbundle. Atunci cand o functie Unbundle este dispusa in diagrama. pentru a defini complet structura elementului Cluster 78 . In mod implicit functia poseda doua intrari dar poate fi dimensionata.EXERCITIU Pentru elementul de tip Cluster creat in exercitiul anterior:    aliniati elementele comnponente pe verticala configurati chenarul la optiunea Size to Fit modificati ordinea elementelor in Cluster 1. Iesirea din pozitia superioara corespunde elementului cu indicele 0.

Daca functia are mai putine intrari decat numarul elementelor din Cluster. Numele atribuit unei iesiri (si implicit elementul din Cluster ce se obtine la iesirea respectiva) poate fi modificat:     facand click cu unealta de operare pe iesirea respectiva. Simbolul functiei Unbundle By Name poate fi dimensionat. Este obligatorie conectarea la intrarea input cluster a functiei 79 .Daca elementele din interiorul unui Cluster poseda etichete (label). separarea acestora se poate efectua si cu ajutorul functiei Unbundle By Name. iesirile functiei Unbundle By Name capata nume ce corespund etichetelor componentelor elementului Cluster. Figura 108 Functia Bundle By Name modifica valoarea unuia sau mai multor elemente dintr-un Cluster ale carui componente poseda etichete. Atunci cand la intrarea sa se conecteaza un Cluster. apoi selectand numele dorit din meniul care se deschide deschizand meniul propriu al functiei (click cu butonul drept al mouse-ului) si selectand numele dorit din submeniul Select Item. Simbolul functiei poate fi dimensionat. numele sunt atribuite in ordinea elementelor. Numele elementului corespunzator unei intrari poate fi modificat prin aceleasi metode ca si in cazul functiei Unbundle By Name.

Functia Array To Cluster dispune valori dintr-un Array intr-un Cluster. testati modurile de utilizare ale functiilor descrise mai sus. 1. din meniul propriu al functiei.6. Toate elementele Array de la intrare trebuie sa fie de acelasi tip. Elementele din Cluster trebuie sa fie de acelasi tip. Daca in elementul Array se afla mai multe valori decat numarul de elemente din Cluster.EXERCITIU Pentru elementul de tip Cluster din exercitiile anterioare.. Functia Index & Bundle Cluster Array creeaza un Array de elemente Cluster. (implicit 9). atunci vor fi preluate doar o parte dintre acestea si anume primele.4 Functii pentru elemente de tip Cluster (2) Functia Build Cluster Array preia un numar de elemente de tip Array (simbolul functiei poate fi dimensionat). Elementele Array de la intrare pot fi de tipuri diferite. Elementul Cluster cu indicele i contine valorile cu indicii i din elementele Array de la intrare. introduce fiecare Array intr-un Cluster si combina toate aceste elemente Cluster intrun element Array rezultant. Numarul de elemente din Cluster se stabileste selectand.. optiunea Cluster Size. Functia Cluster To Array dispune elementele dintr-un Cluster intr-un Array. 80 .

in meniul Graph al paletei de controale.7. Modificati atat dimensiunile elementelor cat si dimensiunile zonelor lor de afisare (zonele interioare de culoare neagra) Cu unealta de operare. Waveform Graph (numit pe scurt Graph) si XY Graph. 1. unul Waveform Graph si unul XY Graph. bucla While executa cate o iteratie la fiecare trei secunde (datorita functiei Wait (ms)). Figura 111 EXERCITII     Dispuneti pe panoul unei aplicatii un element Waveform Chart. modificati valorile de la capetele scalelor Cu unealta de editare a textelor. Reprezentari grafice 1. valorile ordonatelor punctelor pe care sa le traseze grafic. In figura alaturata. modificati numele (etichetele) scalelor 1. Cele mai utilizate sunt cele aflate pe prima linie a meniului Graph: elementele Waveform Chart (numit pe scurt Chart). functia Random Number 81 . La fiecare iteratie. construiti cate un program care sa exemplifice modul de utilizare a functiei.7.1 Elemente pentru reprezentari grafice Mediul de programare LabVIEW dispune.EXERCITIU Pentru fiecare dintre functiile prezentate mai sus.7. punct cu punct. de o serie de elemente pentru reprezentari grafice. Diferentele intre cele trei elemente sunt reprezentate de modurile in care acestora li se transmit coordonatele punctelor prin care va fi trasat graficul.2 Elementul Waveform Chart Unui element de tip Chart i se pot trimite in mod succesiv.

3 Elementul Waveform Graph 82 . In figura 114. un element Chart traseaza un segment de dreapta din punctul cel mai recent (ultimul de pe grafic) pana in punctul determinat de noua valoare primita. 1. EXERCITIU Construiti diagramele din figurile de mai sus si verificati modul de functionare. Abscisele punctelor sunt considerate automat crescatoare din unitate in unitate (0 pentru prima valoare primita. bucla For genereaza un sir (Array) de sapte valori aleatoare. Figura 113 Un element Chart accepta nu numai valori trimise punct cu punct (scalare) ci si siruri de valori (Array). 1 pentru a doua s. sir ce este trimis elementului Chart Daca un element Chart primeste o matrice de valori numerice (Array cu doua dimensiuni). Atunci cand primeste un sir de valori (considerate de asemenea tot ordonate ale punctelor). la fiecare iteratie a buclei While (la fiecare trei secunde).a. Atunci cand primeste o noua valoare. atunci el va trasa simultan un numar de grafice egal cu numarul de linii ale matricei.m.7.d.Un element de tip Chart considera valorile succesive pe care le primeste drept ordonate ale punctelor de pe grafic.). un element Chart adauga la sfarsitul graficului deja existent nu un singur punct ci un numar de puncte egal cu numarul de valori din sirul primit.

Valorile afisate anterior se vor pierde. Elementele de tip Graph permit insa. definirea abscisei primului punct si a distantei pe orizontala dintre doua puncte succesive.Un element de tip Graph nu accepta valori individuale (scalare) ci numai siruri (Array) de valori.m. Graficul din figura alaturata se va schimba la fiecare trei secunde. suplimentar. abscisele punctelor sunt considerate automat crescatoare din unitate in unitate (0 pentru prima valoare primita.a. 1 pentru a doua s. Figura 115 Un element de tip Graph considera de asemenea valorile succesive pe care le primeste drept ordonate ale punctelor de pe grafic. Fifura 116 Figura 117 83 . In aceasta situatie.d. valorile x0 si x se introduc (printr-o functie Bundle) intr-un Cluster impreuna cu sirul de valori ce reprezinta ordonatele punctelor. Spre deosebire de elementele Chart. atunci cand primeste un sir de valori.). In modul implicit. elementul Graph sterge graficul pe care il afisase anterior si afiseaza doar graficul format din noile puncte primite. iar la terminalul elementului Graph se conecteaza iesirea functiei Bundle (figura de mai jos).

In functia Bundle. EXERCITIU Construiti diagramele din figurile de mai sus si verificati modul de functionare . la cea de a treia intrare se conecteaza matricea de valori.Daca un element Graph primeste o matrice de valori numerice (Array cu doua dimensiuni). marimile respective vor fi aceleasi pentru toate graficele. 84 . In situatia in care se traseaza mai multe grafice si se doresc definirea abscisei x0 a primului punct si a distantei x pe orizontala dintre doua puncte succesive. atunci el va trasa simultan un numar de grafice egal cu numarul de linii ale matricei.

sirurile de valori xi si yi sunt grupate intr-un cluster (cu functia Bundle). cele doua siruri trebuie sa contina acelasi numar de valori. In figura alaturata este prezentat un program pentru trasarea graficului functiei sinus intre 0 si 2 prin 101 puncte. iar acesta este trimis la terminalul elementului XY Graph. Figura 119   EXERCITIU Figura 120 Construiti diagramele din figurile de mai sus si verificati modul de functionare. 85 . iesirea functiei Build Array se conecteaza la terminalul elementului XY Graph.1. Atunci cand se primeste o astfel de structura de date. impartind la 100 intervalul de trasare. Stabilind ca punctele vor fi la distante egale pe orizontala. iesirile functiilor Bundle se conecteaza la o functie Build Array. Primul sir reprezinta abscisele iar cel de-al doilea ordonatele punctelor de pe grafic.4 Elementul XY Graph Un element de tip XY Graph accepta la intrare un Cluster format din doua siruri (Array) de valori. Intr-o bucla For cu numarul de iteratii egal cu numarul de puncte se determina la fiecare iteratie abscisa unui punct cu relatia si se calculeaza ordonata La iesirea din bucla For. graficul anterior este sters. se determina intai distanta x pe abscisa dintre doua puncte succesive. Evident. de lungime 2.7. Daca se doreste trasarea simultana a mai multor grafice:  se construieste pentru fiecare grafic cate un Cluster format din doua Array-uri (unul pentru abscisele si altul pentru ordonatele punctelor).

Figura 121 Optiunea Plot Legend afiseaza o legenda ce poate fi pozitionata independent sau dimensionata pentru a avea un numar de pozitii egal cu numarul de grafice reprezentate.5 Optiuni specifice elementelor pentru reprezentari grafice In meniul propriu al elementelor pentru reprezentari grafice. format si precizie de reprezentare.m.) pot fi modificate cu ajutorul uneltei de editare a textelor. submeniul Visible Items contine o serie de optiuni pentru afisarea unor componente specifice. se deschide un meniu propriu din care pot fi configurate optiuni de afisare ale graficului respectiv: culoare. culoarea caroiajului. Plot 1 s.a.1.d. Apasand butonul drept al mouse-ului atunci cand cursorul este pozitionat deasupra unui grafic din legenda. Numele graficelor (initial Plot 0. tip si grosime de linie etc. Optiunea Scale Legend afiseaza o componenta ce permite configurarea modului in care sunt afisate scalele elementului de reprezentare grafica: eticheta scalei.7. Figura 122 Figura 123 86 . mentine continuu autoscalarea pe directia corespunzatoare. Pentru fiecare scala sunt disponibile:  un buton (notat cu X sau Y) la a carui apasare se realizeaza o autoscalare pe directia respectiva  un buton (marcat cu un lacat) care. atunci cand este apasat. vizibilitatea scalei sau a etichetei acesteia.

Autoscalati graficul pe axa Y. Umpleti zona de sub un grafic sau zona dintre cele doua grafice. 87 . Afisati graficele sub forma de histograme. Afisati un caroiaj rosu.Optiunea Graph Palette afiseaza o componenta cu unelte ce permit:  deplasarea graficelor in interiorul elementului (butonul cu manuta)  deschiderea unui submeniu cu unelte pentru marire sau micsorare statica pe diverse directii sau dinamica. sa fie trasate doua grafice cu valori aleatoare (unul intre 0 si 1. stilul punctelor). Exersati lucrul cu uneltele de marire sau micsorare a imaginii din componenta Graph Palette. Scale Legend si Graph Palette ale elementului de tip Chart. Afisati componentele Plot Legend. Figura 124 Optiunile X Scale si Y Scale din meniul propriu permit configurarea unor parametri ai modului de afisare a scalelor. Figura 125 EXERCITII 1 2 3 4 5 6 7 8 9 10 11 12 Realizati un program in care. Exersati configurarea unor parametri ai modului de afisare a scalelor (optiunile X Scale si Y Scale din meniul propriu al elementului de tip Chart). intr-un element de tip Chart. tip si grosime de linie. Modificati formatul si precizia de reprezentare a valorilor de pe cele doua scale. Modificati modurile in care sunt afisate cele doua grafice (culoare. Modificati etichetele scalelor. celalalt intre 2 si 3). Modificati modul de interpolare al graficelor.

Figura 127 Figura 128 88 . cu scale separate pe axa Y.. astfel incat nu se mai traseaza cate un grafic pentru fiecare linie ci cate unul pentru fiecare coloana. permite utilizatorului sa stabileasca numarul de valori ce pot fi stocate in "memoria interna" a elementului Chart (implicit 1024).. cate una pentru fiecare grafic. optiunea Stack Plots imparte zona de afisare in mai multe portiuni distincte. Optiunea Digital Display conduce la afisarea unui numar de elemente indicatoare pentru valori numerice egal cu numarul de pozitii ale legendei.7.1. In cazul afisarii mai multor grafice.6 Optiuni specifice elementelor de tip Chart In submeniul Visible Items al elementelor de tip Chart exista cateva optiuni specifice acestor elemente. Optiunea Chart History Length. Figura 126 Figura 127 Optiunea Scrollbar conduce la afisarea unei bare de defilare ce permite deplasarea pe directie orizontala a graficelor afisate. Valoarea afisata de catre fiecare element indicator este cea a ultimului punct de pe graficul corespunzator. Selectarea din meniul propriu al elementului Chart a optiunii Transpose Array realizeaza transpunerea matricei de valori.

Pentru a sterge un cursor sau a insera un nou cursor intr-o anumita pozitie. se aleg optiunile Delete Element sau Insert Element Before. submeniul Data Operations. este suficient sa se introduca un nume al acestuia sau sa se apese oricare din cele trei butoane de pe linia corespunzatoare. In lista de cursoare (initial cu doua linii vide). valorile cele mai vechi se pierd si nu mai sunt vizibile la o eventuala "defilare" a graficului.7. defilati graficul cu ajutorul barei. EXERCITII    Pentru elementul de tip Chart din exercitiul anterior: afisati display-urile digitale si bara de defilare. Lista poate fi dimensionata. Figura 129 89 . 1.7 Optiuni specifice elementelor de tip Graph si XY Graph In submeniul Visible Items al elementelor de tip Waveform Graph sau XY Graph. din meniul propriu al paletei de cursoare. Componenta Cursor Legend este formata dintr-o lista de cursoare si un element pentru comanda deplasarii cursorului.Daca unui element Chart i se trimit mai multe valori decat acest numar. impartiti zona de afisare a elementului Chart in doua portiuni distincte. optiunea Cursor Legend determina afisarea unei componente prin intermediul careia utilizatorul poate afisa si manipula unul sau mai multe cursoare. Pentru a adauga un nou cursor. fiecarei linii ii corespunde un cursor.

in partea sa stanga.)  Figura 131 Figura 132 un buton prin care se activeaza sau nu posibilitatea de deplasare a cursorului cu unealta de operare (Allow Drag). fie de unul dintre firele reticulare. atunci cursorul poate fi deplasat apasand pe unul din cele patru butoane romboidale ale elementului pentru comanda deplasarii cursorului. fiecare linie corespunzatoare unui cursor contine trei butoane:  un buton pentru activarea elementului de comanda a deplasarii: daca acest buton are LED-ul propiu aprins.d. stil.a.  un buton pentru configurarea caracteristicilor cursorului (culoare. un element pentru numele cursorului si doua elemente pentru coordonatele X si Y ale acestuia.m. el va putea fi deplasat cu unealta de operare daca butonul din stanga al componentei Graph Palette este activat (are LED-ul aprins). 90 . Daca LED-ul butonului este stins. elementul de comanda nu este activ.Figura 130 O linie corespunzatoare unui cursor contine. forma punctului central. se "leaga" cursorul de un anumit grafic (Lock to plot) sau de punctele acestuia (Snap to point) sau se lasa cursorul liber (Free). In partea sa dreapta. Daca un cursor are optiunea Allow Drag activata. stilul si grosimea firelor reticulare s. Deplasarea se poate efectua fie "tragand" de punctul central al cursorului.

Afisati lista de cursoare si definiti un cursor. precum si butoanele. submeniul Ctls. apoi "legat" de unul dintre grafice. apoi "legat" de unul dintre grafice. intai in starea liber. 1. celalalt intre 2 si 3). sa fie trasate doua grafice cu valori aleatoare (unul intre 0 si 1. "tragand" de intersectia firelor reticulare. stilul si grosimea firelor reticulare s. Modificati caracteristicile cursorului (culoare. intr-un element de tip Waveform Graph.8 Elemente si functii de tip Picture Pentru a dispune pe panoul aplicatiei un element de tip Picture. submeniul Graphics & Sound.d. Afisati coordonatele X si Y ale cursorului cu o singura zecimala. submeniul Graph.Oservatie         Elementele pentru nume si coordonate. stil. acesta poate fi selectat din meniul de controale. Figura 133 Figura 134 Functiile pentru lucrul cu elemente de tip Picture. EXERCITII Realizati un program in care.) Deplasati cursorul cu ajutorul elementului de comanda a deplasarii. Elementele pentru nume si coordonate poseda meniuri proprii individuale.a. forma punctului central. pot fi dimensionate. intai in starea liber.ctl sunt dispuse in meniul de functii.ctl.7. Deplasati cursorul cu unealta de operare. submeniul Picture Functions.m. 91 .

fiecare pixel fiind definit prin coordonatele sale X si Y.vi nu adauga nimic la figura.vi este trasat un segment de culoare rosie. Originea sistemului de coordonate se afla in coltul stanga-sus al figurii. in figura preluata de la functia Move Pen. cu ajutorul functiei Draw Circle by Radius. fiind necesar ca functiei sa i se specifice doar punctul final al segmentului.ctl efectueaza operatii asupra unei figuri in general in sensul de adaugare a unui element geometric in figura. Functia Move Pen.ctl. Cu ajutorul functiei Draw Line. In figura preluata de la iesirea functiei Draw Line. Figura obtinuta la iesirea functiei Draw Circle by Radius.vi este transferata elementului de tip Picture.vi. cu centrul in punctul de coordonate (200. utilizand functia Move Pen. 140). in acest caz punctul de coordonate (120. 200) si de raza 20.vi. 92 . este trasat un cerc plin (vezi constanta True) de culoare albastra. In imaginea de mai jos se pleaca de la o constanta Empty Picture (figura vida). 50) al figurii. rezultatul fiind afisarea figurii. Functie Draw Line. In prima etapa.vi.vi considera ca punctul de plecare al segmentului este punctul in care se afla creionul imaginar.Un element de tip Picture reprezinta o matrice de pixeli. se deplaseaza un creion imaginar in punctul de coordonate (50. EXERCITIU Dispuneti pe panoul unei aplicatii un element de tip Pictur 1. Axa X are sensul pozitiv spre dreapta. iar axa Y are sensul pozitiv in jos.vi.7.9 Utilizarea functiilor de tip Picture Functiile pentru lucrul cu elemente de tip Picture.

Sa se realizeze un program pentru simularea miscarii unui corp pe plan inclinat 7. Sa se realizeze un program pentru simularea comportamentului unui resort elastic 5. utilizand elemente Picture 93 . Sa se realizeze un program pentru trasarea graficului unei parabole. TEMA 1. utilizand elemente Picture 9. Sa se realizeze un program pentru trasarea graficului unei elipse 4. 2. Sa se realizeze un program pentru trasarea grafica a figurilor Lisajoux 6. Sa se realizeze un program pentru simularea miscarii unui corp pe plan inclinat. Sa se realizeze un program pentru simularea comportamentului unui resort elastic. Sa se realizeze un program pentru trasarea graficului miscarii la aruncarea oblica 8. Sa se realizeze un program pentru trasarea graficului unui cerc 3.Figura 135 EXERCITIU Construiti diagrama din figura de mai sus si verificati modul de functionare.

1.8

Elemente ListBox, Table si Ring

18.1 Meniuri pentru elemente ListBox, Table si Ring
Meniul List & Table al paletei de controale contine elemente de tipurile Listbox, Multicolumn Listbox si Table. Meniul Ring & Enum contine elemente de tipurile Text Ring, Menu Ring, Enum, Picture Ring si Text & Pict Ring.

Figura 136 EXERCITIU

Figura 137

Dispuneti in panou cate un element din fiecare din tipurile enumerate mai sus.

1.8.2 Tipul de date
Caracteristica principala a elementelor de tip List sau Ring este aceea ca, desi in panou utilizatorul are la dispozitie o lista de elemente text, valorile corespunzatoare din diagrama sunt numerice.

Figura 138

94

Aceasta se observa in primul rand din faptul ca toate elementele (cu exceptia celor de tipurile Table sau Enum) au terminale ce semnifica numere intregi (I32) sau naturale (U16). De exemplu, valoarea numerica a unui element de tipul Listbox este reprezentata de indicele (numarul de ordine) textului selectat de catre utilizator (prima linie de text are indicele 0).

Figura 139

1.8.3 Definirea itemilor unui element ListBox
Itemii unui element Listbox reprezinta liniile de text din interiorul acestuia. Modalitatea cea mai simpla de a defini acesti itemi, valabila insa doar atunci cand programul nu ruleaza, este de a-i introduce cu ajutorul uneltei de editare a textelor. Fiecare item trebuie introdus pe o linie separata, modalitatea de introducere fiind similara celei de la elementele alfanumerice:  daca se apasa tasta Enter "mare" (din apropierea tastelor pentru litere), se trece la linia urmatoare  daca se apasa tasta Enter "mica" (din zona cu taste numerice aflata in partea dreapta a tastaturii) sau daca se face click cu mouse-ul in afara elementului,, se considera ca s-a incheiat introducerea itemilor. Textul format de itemii unui element Listbox poate fi editat ulterior pentru modificare, stergere sau inserare.

Figura 140

Figura 141

95

Daca se doreste editarea itemilor unui Listbox in timpul rularii programului, se procedeaza astfel:  se creeaza un nod de proprietati al elementului Listbox  se selecteaza pentru nodul respectiv proprietatea ItemNames  din meniul propriu al nodului se selecteaza optiunea Change To Write  se conecteaza la nod un Array de valori String ce vor reprezenta itemii elementului Listbox EXERCITII   Dispuneti in panou un element de tipul Listbox si introduceti, cu unealta de editare texte, cativa itemi ai acestuia. Realizati un program in care itemii unui element Listbox sa fie generati in timpul rularii.

1.8.4 Selectii multiple
Din meniul propriu al unui element de tipul Listbox, optiunea Selection Mode, poate fi specificat numarul de itemi ce pot fi selectati simultan. Atunci cand exista mai multe variante de selectie (nici unul, unul sau mai multi itemi), pentru a selecta sau deselecta un item se face click pe acesta tinand apasata tasta Shift. Daca un element Listbox este in modul de selectie 0 or 1 Item si nu are nici un item selectat, valoarea corespunzatoare a elementului este -1.

Figura 142

Figura 143

Daca sunt selectati mai multi itemi ai unui Listbox, atunci acesta nu mai este reprezentat de o valoare scalara ci de un Array ce contine indicii itemilor selectati. Daca un element Listbox este in modul de selectie 0 or More Items si nu are nici un item selectat, atunci el este reprezentat de un Array vid.

96

mai multi itemi. 97 . Dispuneti de asemenea pe panou un element indicator Array in care sa fie afisati indicii itemilor selectati. Exersati diverse variante de selectare: nici un item. un item.EXERCITIU    Dispuneti un element Listbox pe panou si stabiliti modul de selectare 0 or More Items.

Sign up to vote on this title
UsefulNot useful