You are on page 1of 97

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

2 Deschiderea unei noi aplicatii Aplicatiile (programele) realizate in LabVIEW poarta denumirea de Instrumente Virtuale (in engleza.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. Virtual Instruments. 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. in primele sale versiuni.1.Dupa lansare. Figura 3 1. Dupa apasarea butonului New VI. apasati butonul New VI pentru a deschide o noua aplicatie (figura3). prescurtat VI). Denumirea provine de la faptul ca. Programele respective inlocuiau o serie de aparate si instrumente electronice . Figura 4 4 .

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

Figura 8 6 .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. comanda Show Controls Palette Figura 7 In primul caz. 1. In al doilea caz. din meniul Windows.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. o sub-paleta se deschide (inlocuind paleta de controale) doar cand se face un click pe simbolul sau. Elementele indicatoare sunt acele componente ale panoului prin intermediul carora programul afiseaza datele de iesire calculate in urma rularii sale. 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. Paleta ramane vizibila si dupa selectarea unui element. sub-paletele se deschid automat atunci cand cursorul mouse-ului trece pe deasupra lor iar paleta ramane vizibila doar pana la selectarea unui element.  selectand.1.

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

Activarea optiunii Automatic Tool Selection (LED-ul verde al paletei de unelte) conduce la selectarea automata a unei unelte.7 Paleta de unelte Paleta de unelte este o fereastra ce poate apare atat in cadrul panoului cat si al diagramei. 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.1.1. 8 . comanda Show Tools Palette. din meniul Windows. Paleta va deveni vizibila doar pana in momentul selectarii uneia dintre uneltele sale. in functie de contextul in care se afla aplicatia si de pozitia cursorului mouse-ului in raport cu componentele din panou sau diagrama. Afisarea paletei de controale se poate efectua selectand.

a cursorului sau acului acestuia sau deasupra scalei sau etichetei elementului.  Cu optiunea Automatic Tool Selection dezactivata.  Cu aceeasi unealta sau cu cea de editare a textelor. deplasati cele doua elemente dispuse anterior pe panou (click pe element. 9 . modificati dimensiunile elementelor: 1. apoi apasati tasta Delete: elementul va fi sters. astfel incat in cele patru colturi ale acestuia sa apara simboluri de forma unui echer dublu 2. apoi deplasati mouse-ul tinand butonul apasat: pe ecran va apare un dreptunghi cu linie intrerupta)  Selectati un element. Pentru a anula comanda. 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.EXERCITII   Cu unealta de selectare. Pozitionati cursorul mouse-ului pe un colt al elementului. atat in panou cat si in diagrama. Observati aparitia unui indicator galben cu dimensiunile elementului. apasati combinatia de taste Ctrl + Z (Undo)  Cu unealta de operare. modificati valorile de la capetele de scara ale elementelor. observati modul in care sunt selectate diverse unelte atunci cand se apasa tastele Space sau Tab. 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. Apasati butonul stang si deplasati mouse-ul tinand butonul apasat.  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. modificati valorile celor doua elemente tragand cu mouse-ul de cursorul potentiometrului sau de acul indicatorului. de operare si de editare a textelor se activeaza atunci cand mouse-ul este deasupra unui element.

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

folosind unealta de selectare.9 Terminalele elementelor Atunci cand un element de control sau indicator este dispus in panou.1. 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. in diagrama este inserat automat un simbol. deplasati terminalele elementelor ca in figura de mai sus. In diagrama. Terminalele elementelor se diferentiaza prin culoare.1. 11 . ce va reprezenta elementul respectiv in cadrul fluxului de date. numit terminal.

1. o sub-paleta se deschide (inlocuind paleta de functii) doar cand se face un click pe simbolul sau. EXERCITIU In diagrama aplicatiei. comanda Show Functions Palette.1.  selectand. 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. afisati paleta de functii prin fiecare din cele doua moduri indicate mai sus si navigati prin sub-paletele acesteia. din meniul Windows.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. Paleta ramane vizibila si dupa selectarea unei functii. proceduri sau structuri specifice de programare. 12 . 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. Figura 17 Figura 18 In primul caz.

in fereastra Help apar informatii referitoare la functia corespunzatoare simbolului deasupra caruia este pozitionat cursorul mouse-ului. in panou sau in diagrama. Figura 19 Figura 20 De asemenea. in fereastra Help apar informatii referitoare la functia respectiva.1. daca un simbol de functie a fost deja dispus in diagrama iar cursorul mouse-ului este pozitionat deasupra sa. a comenzii Show Context Help. 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.1. din meniul Help. Figura 21 13 .11 Fereastra Help Selectarea. conduce la deschiderea unei ferestre in care sunt afisate automat informatii ajutatoare.

produsul dintre o valoare x si o putere a lui 2 (Scale By Power Of 2). utilizatorul efectueaza alta operatie. rotunjire la cel mai apropiat intreg (Round To Nearest). o alta valoare constanta poate fi specificata utilizand unealta de operare sau pe cea de editare a textelor. rotunjire la intregul superior (Round To +Infinity). el capata automat valoarea 0 si intra in modul de editare. Daca.EXERCITIU Exersati deschiderea si inchiderea ferestrei Help prin modurile descrise mai sus. In subpaleta Numeric se gaseste de asemenea elementul Numeric Constant (constanta numerica). rotunjire la intregul inferior (Round To -Infinity). Cu fereastra Help deschisa. incrementare (Increment). in loc de a introduce o valoare in element. valoare absoluta (Absolute Value). dedicata functiilor aritmetice simple: adunare (Add). inmultire (Multiply). scadere (Subtract). 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. Figura 22 14 . Atunci cand un astfel de element este dispus in diagrama. decrementare (Decrement). radacina patrata (Square Root).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). imediat dupa dispunerea in diagrama. schimbare de semn (Negate). inversare (Reciprocal). asteptand ca utilizatorul sa introduca valoarea numerica dorita. 1.1.

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

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

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

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

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

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

langa numele acestuia apare un asterisc (*).. Comanda Save As.In urma selectarii comenzii Save As. programului i se aduc in continuare modificari. 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. 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. dupa salvare. programul deschide o fereastra de dialog in care utilizatorul poate selecta folder-ul in care sa se efectueze salvarea si numele fisierului. se poate folosi daca se doreste salvarea unei noi versiuni a fisierului intr-o noua locatie sau cu un nou nume.. Daca.. este suficient sa se apese combinatia de taste Ctrl si S sau sa se selecteze comanda Save din meniul File. creati un subdirector cu numele Dvs. programului i se afiseaza numele atat in bara superioara a panoului cat si in cea a diagramei. Pentru informatii suplimentare despre aceasta etapa. in directorul Utilizatori. subdirectorul CCD.. apasati AICI (Atentie.. 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 . Figura 43 EXERCITII Pe discul D al computerului.

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

modificandu-se astfel numarul de intrari  cand numarul de intrari in functie este cel dorit. se elibereaza butonul mouse-ului. 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.1) Subpaleta Numeric a paletei de functii contine de asemenea o serie de subpalete dedicate unor categorii particulare de functii: subpaleta Conversion.1. subpaleta Numeric a paletei de functii contine. in zona sa principala.1 Functii pentru valori numerice Pe langa functiile aritmetice simple descrise in lectia anterioara. 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. simbolul functiei isi modifica dimensiunile.1) (disponibila si in subpaleta Boolean a paletei de functii). rolul sau fiind de a genera o valoare reala aleatoare in intervalul (0. sau a operatiilor logice SI (AND). asupra unui numar variabil de valori de intrare.2. Pentru a selecta operatia efectuata de catre functie (adunare. continand printre altele: . 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.2 Functii pentru valori scalare 1. SAU (OR) sau SAU EXCLUSIV (XOR).12 functii pentru schimbarea modului de reprezentare a unei valori numerice functia Boolean To (0. care transforma o valoare logica (True sau False) intr-o valoare numerica (1 respectiv 0) 23 . 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).

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

Subpaleta Additional Numeric Constants a paletei de functii contine valori constante des utilizate in trigonometrie si in lucrul cu functii exponentiale sau logaritmice. identificati functiile si constantele enumerate mai sus. 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. 25 .

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

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

Iesirea offset past number are semnificatia pozitiei primului caracter din string dupa portiunea care a fost transformata in valoare numerica. Daca intrarea width nu este legata.. 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).Functia Rotate String efectueaza o permutare circulara a caracterelor textului conectat la intrarea string. numarul de caractere ale textului va fi egal cu numarul de cifre ale intregului. 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. 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. in functie de valoarea booleana conectata la intrarea selector. 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). 28 . el este trunchiat. Subpaleta String/Number Conversion a paletei String contine functii pentru conversia valorilor alfanumerice in valori numerice sau pentru efectuarea operatiei inverse. mutand primul caracter pe ultima pozitie. Dintre acestea.

Figura 53 Pe langa functiile de comparare a doua marimi sau de comparare a unei marimi cu valoarea nula. fractional sau ingineresc. Caracteristic acestor functii este faptul ca. datele de iesire sunt la majoritatea acestor functii valori logice (booleene). respectiv valoarea de la intrarea f (False) daca valoarea logica de la intrarea s este False. de asemenea pentru valori alfanumerice. 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. EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. booleene. In cazul functiei Greater? de exemplu. De exemplu. Conteaza de asemenea ordinea in care datele de intrare sunt legate la terminalul functiei (la intrarea de sus sau la cea de jos). Functia Max & Min genereaza la iesirea max cea mai mare dintre valorile x si y. panoul programului va contine un element de control pentru valori alfanumerice in care utilizatorul va introduce un text si un element indicator.2. pentru functia Reverse String. daca datele de intrare pot fi de diverse tipuri (numerice. alfanumerice etc). subpaleta Comparison contine urmatoarele: Functia Select genereaza la iesire valoarea de la intrarea t (True) daca valoarea logica de la intrarea s este True. la care programul va afisa textul inversat. respectiv la iesirea min pe cea mai mica dintre acestea. Valorile de la intrarile t si f pot fi atat numerice cat si alfanumerice. 29 . 1. 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.4 Functii pentru comparatii Functiile pentru efectuarea comparatiilor sunt grupate in subpaleta Comparison a paletei de functii.

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

00. Figura 55 Numarul de secunde este considerat a fi scurs incepand cu data de 1 ianuarie 1904. ora 12. Daca numarul de secunde nu este conectat. pana la data si timpul curente ale calculatorului. 1 sau 2.timp si functiile de dialog se gasesc in meniul Time & Dialog al paletei de functii.2. Ieisrea text ce reprezinta timpul poate contine sau nu secunde.5 Functii pentru lucrul cu valori data . se considera numarul de secunde al ceasului intern al computerului.00. Get Date/Time String: transforma o valoare numerica reprezentand un numar de secunde in doua texte. ora 12. La intrarea date format se poate lega una din valorile 0.timp si de dialog Functiile pentru lcurul cu valori data . unul reprezentand data si celalalt timpul. La intrarea time format string a functiei se poate specifica formatul in care textul rezultat sa fie construit. 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. 31 .1. reprezentand formatele scurt. 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. lung sau abreviat pentru data.

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

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

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

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

acesta contine aproape aceleasi optiuni ca si meniul elementului corespunzator de pe panou. Control si Indicator.3. 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. Change to Constant. Create4Constant. efectul   acestora fiind de adaugare (in diagrama sau in panou.2 Meniuri proprii in diagrama Atunci cand se deschide meniul propriu al unui terminal din diagrama. 36 . Hide Control (sau Hide Indicator). 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. EXERCITIU Utilizati urmatoarele optiuni din meniul propriu al unui terminal din diagrama: Find Control sau Find Indicator. 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. efectul acesteia fiind de inlocuire a elementului de control sau indicator cu o constanta (constantele pot exista doar in diagrama. astfel incat elementul de control sau indicator dispare de pe panou) In submeniul Createapar optiunile suplimentare Constant.1.

3. Representation. In submeniul 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.3 Moduri de reprezentare a valorilor numerice Meniurile proprii ale elementelor de control sau indicatoare numerice contin o optiune specifica. 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.

Observati ce se intampla in situatia in care. terminalul isi modifica de asemenea culoarea. din portocaliu in albastru. Observati in panou aparitia sau disparitia zecimalelor iar in diagrama modificarea culorii si textului din interiorul terminalului. se schimba modul de reprezentare al acestuia in numar natural. 38 . In cazul in care valoarea numerica este una intreaga sau naturala. EXERCITII    Exersati modificarea moduui de reprezentare a unui element de control numeric.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.

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

in urma apasarii butonului de catre utilizator. In diagrama.  Latch Until Released modifica valoarea logica a elementului atunci cand se apasa butonul mouse-ului. elementul revine la valoarea initiala doar in momentul in care se realizeaza o transmitere a valorii pe fluxul de date. Dupa ce utilizatorul elibereaza butonul. 2 Dati exemple de situatii in care fiecare optiune ar fi utila (de exemplu.1.3. 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. se 42 . iar modificarea se pastreaza atat timp cat utilizatorul tine butonul apasat.  Switch When Pressed 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. chiar daca utilizatorul continua sa tina butonul mouse-ului apasat. elementul revine la valoarea initiala. Pentru fiecare optiune Mechanical Option a elementului de control. conectati intre ele terminalele celor doua elemente. dar aceasta modificare dureaza doar pana cand valoarea logica este transmisa in diagrama pe fluxul de date.  Latch 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. aceasta permitand stabilirea modului in care elementul se comporta la apasarea butonului mouse-ului de catre utilizator. 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. Dupa ce valoarea a fost transmisa. EXERCITII 1 Dispuneti pe panou un element boolean de control de tipul Vertical Toggle Switch si un element indicator de tipul Round LED. 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. 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). Imediat ce valoarea elementului a fost transmisa. acesta revine la valoarea dinaintea apasarii.

de incheiere a introducerii textului. elementul respectiv se comporta in modul urmator:    Figura 67 daca se apasa tasta Enter "mare" (din apropierea tastelor pentru litere).) Password Display: afisare tip "parola". de fiecare data cand textul introdus in element este modificat. \t = Tab. atunci cand se introduce un text intr-un element de control alfanumeric. Update Value while Typing: elementul nu mai asteapta confirmarea incheierii introducerii textului pentru a transmite valoarea alfanumerica in fluxul de date.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).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. nu se mai poate trece la o linie noua prin apasarea tastei Enter "mare". \s = spatiu s. In acest mod. astfel incat textul nu mai poate fi format decat dintr-o singura linie. 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. 43 .m..a. in locul fiecarui caracter fiind afisat un asterisk Hex Display: afisarea codurilor ASCII ale caracterelor In mod implicit.3.d. Valoarea alfanumerica este transmisa automat. 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. 1.

In diagrama. din meniul Tools. activati optiunea Update Value while Typing a elementului de control si rulati din nou programul in modul continuu.. Dialog sau Current). din meniul de configurare a textelor  comanda Options. apoi se alege optiunea Fonts Figura 69 Figura 68 44 . fara a se mai astepta incheierea introducerii. Se deschide apoi meniul de configurare a textelor.8 Modificarea fontului unor elemente Pentru a modifica fontul cu care un element este reprezentat. 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. conectati terminalele celor doua elemente. Observati ca textul de la elementul de control este transmis elementului indicator doar dupa apasarea tastei Enter "mare" Opriti rularea programului.. System.3. si se selecteaza din submeniurile acestuia:  dimensiunea caracterelor (Size)  stilul textului (Style)  modul de aliniere (Justify)  culoarea (Color)  tipul de litera (Arial. aflat in bara de butoane. Times New Roman etc) Unui element i se poate aplica de asemenea un tip predefinit de font (Application..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. Cele trei tipuri predefinite de fonturi pot fi la randul lor modificate daca se alege una din variantele:  comanda Font Dialog. Rulati programul in modul continuu. 1 1..

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

efectul obtinut este acela de modificare a latimii benzii colorate (rampa) a scalei. efectul obtinut este acela de modificare a unghiului la centru pe care scala este dispusa.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). iar dupa aparitia la mijlocul scalei a doua simboluri + se apasa butonul stang al mouse-ului si se deplaseaza mouse-ul tinand butonul apasat. Figura 75 46 . Daca se pozitioneaza cursorul mouse-ului in apropierea mijlocului scalei unui element de control sau indicator de tip Meter.3.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). se apasa butonul stang al mouseului si se deplaseaza mouse-ul tinand butonul apasat. 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. efectul obtinut este acela de rotire a scalei in jurul centrului elementului. 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.

3. Daca. toate variabilele sale locale. 1. din meniul Create al unui element de control sau indicator. numita variabila locala. O variabila locala reprezinta o instanta a elementului corespunzator: o dublura a acelui element.Cursorul unui element de control sau indicator de tip potentiometru poate fi dimensionat daca se pozitioneaza cursorul mouse-ului deasupra unuia din colturile sale. un element isi modifica valoarea. la un moment dat. va conduce la introducerea in diagrama a unei entitati suplimentare. iar dupa aparitia la colturi a unor simboluri "echer" se apasa butonul stang al mouse-ului si se deplaseaza mouse-ul tinand butonul apasat. a optiunii Local Variable. 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.10 Variabile locale Selectarea. capata valoarea corespunzatoare. Figura 77 47 . indiferent de locul in care sunt dispuse in diagrama.

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

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

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

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

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

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

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

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

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

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

Pentru a se putea efectua extragerea unei valori din terminalul stang la prima iteratie. se conecteaza la acest terminal o valoare din exteriorul buclei. nu exista inca nici un transfer efectuat de catre registru intre cele doua terminale ale sale. Terminalul stang al unui registru de transfer poate fi dimensionat. Pentru a adauga un registru de transfer unei structuri repetitive (bucla For sau While). Intr-o astfel de situatie. Cu alte cuvinte. De sus in jos. Figura 87 Figura 88 La executarea primei iteratii a unei bucle.in starea Stop If True. 1. O valoare conectata la terminalul drept al registrului va "apare" in terminalul stang la iteratia urmatoare.4. din terminalul drept al registrului se poate extrage ultima valoare transferata acestuia. Figura 89 58 . 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. astfel incat fiecare iteratie a buclei sa se efectueze in interval de o secunda. fiecare componenta contine cate o valoare provenita dintr-o iteratie mai indepartata. Introduceti in bucla o functie de asteptare. Apasati butonul STOP pentru a incheia executia buclei While.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. Terminalul stang al registrului nu a fost inca "alimentat" cu o valoare din iteratia precedenta. 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. valoarea transferata din iteratia anterioara se afla in componenta superioara. Se spune ca registrul de transfer se initializeaza. Dupa executarea ultimei iteratii a buclei. capatand astfel mai multe componente.

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

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

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

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

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

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

Array-ul rezultat este format prin preluarea alternativa a cate unei valori din fiecare Array de 65 . Numarul dorit de intrari se obtine prin dimensionarea simbolului functiei. matrice din linii s. 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.m. Atunci cand este dispusa in diagrama. generand astfel un Array cu o singura dimensiune.a.d.d. functia va obtine un Array cu un numar de dimensiuni imediat superior celui al intrarilor (Array cu o dimensiune din valori scalare. Daca la toate intrarile functiei sunt legate elemente cu acelasi numar de dimensiuni.). Daca se doreste generarea unui Array cu mai multe dimensiuni.daca optiunea nu este activata. sau daca toate intrarile respective sunt neconectate.a. 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.m. adauga linii la matrici s. Numarul de valori de-a lungul unei dimensiuni se specifica la intrarea dimension size a functiei. functia va genera un Array vid. dupa cum optiunea Concatenate Inputs din meniul sau propriu este sau nu activata: . 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). functia are o singura intrare. functia poate opera in doua moduri. .).daca optiunea este activata. functia are o singura intrare dimension size. Daca la una dintre intrarile dimension size se conecteaza valoarea 0. Atunci cand este dispusa in diagrama.pozitiile. simbolul functiei poate fi dimensionat.

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

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

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

terminalele pentru indici capata intrari pentru linii si coloane ce pot fi activate sau dezactivate independent.5. Functia poate mari numarul de valori din Array doar de-a lungul unei singure dimensiuni. se vor putea insera in acesta doar elemente cu N sau cu N-1 dimensiuni (de exemplu. Simbolul functiei poate fi dimensionat pentru a permite inlocuiri simultane in mai multe portiuni. linii sau coloane dintr-o matrice etc (nu se poate sterge doar o valoare dintr-o matrice).EXERCITIU Pentru fiecare dintre functiile prezentate mai sus. incepand de la un indice specificat. Stergerea se efectueaza doar de-a lungul unei singure dimensiuni: se sterg elemente dintrun Array cu o dimensiune. cu valoare implicita 1). Functia dispune atat de o iesire pentru Array-ul din care s-a realizat stergerea. Functia Delete From Array sterge dintr-un Array o portiune de marime specificata (intrarea length. Numarul de valori din Array creste. 69 . cat si de o iesire pentru portiunea ce a fost stearsa.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. astfel incat. daca inserarea urmeaza a se efectua intr-un Array cu N dimensiuni. incepand de la un indice specificat. Functia Insert Into Array insereaza valori intr-un Array. 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 (implicit ultimul element). 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.

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

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

9 Alte functii pentru elemente Array Functiile aritmetice si logice pentru valori scalare. asupra tuturor valorilor booleene dintr-un Array. respectiv produsul valorilor numerice dintrun Array. functia va genera o valoare booleana scalara. functiile de comparatie genereaza un Array de valori booleene.5. respectiv SAU. Daca. Se pot astfel realiza:  operatii aritmetice asupra valorilor dintr-un Array (radacina patrata. a) b) Figura 103 c) Functiile Add Array Elements si Multiply Array Elements determina suma. daca se compara doua Array-uri de valori numerice cu functia Equal? in starea Compare Aggregates. permit conectarea de Array-uri continand valori de tipurile corespunzatoare.).  operatii logice intre un Array si o valoare booleana sau intre doua Array-uri cu valori booleene.  operatii asupra Array-urilor de valori alfanumerice. Figura 104 72 . 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. se alege optiunea Compare Aggregates. obtinand o valoare booleana scalara. Atunci cand au drept operanzi un Array si o valoare scalara sau doua Array-uri. precum si cele pentru valori alfanumerice. din meniul propriu al functiei de comparatie. functii trigonometrice etc. Functiile And Array Elements si Or Array Elements efectueaza operatiile logice SI. intre un Array si o valoare scalara sau intre doua Array-uri. De exemplu. 1. compararea fiind efectuata valoare cu valoare.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.

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

i exprimat în grade. Sa se determine numarul de valori True dintr-un Array de valori booleene (logice). 74 . 360. Sa se realizeze un program pentru calculul valorilor Array-ului (ai = sin i). 14.9. 16. 18. Sa se genereze o matrice cu 20 de linii si 3 coloane în care elementele de pe primele doua coloane sa fie numere aleatoare. 19. Sa se genereze un Array ale carui valori sa reprezinte dublul numerelor de la 0 la 100. Sa se realizeze un program pentru generarea unui Array de 50 de valori booleene aleatoare. astfel încât probabilitatea de aparitie a valorii logice True sa fie 0.. Sa se genereze o matrice cu 50 de linii si 2 coloane în care elementele de pe prima coloana sa fie numere naturale succesive. 10. 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). 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. 13. 11. 12. Sa se calculeze suma celor trei valori aflate în mijlocul un Array ce contine un numar impar de valori numerice. i = 0.. Sa se genereze o matrice cu 10 de linii si 3 coloane de numere aleatoare aflate în intervalul (4. Reprezentarea in cod binar sa fie sub forma unui text format din caracterele 0 si 1. precum si rangurile pe care apar aceste elemente în Array. 15.7. 21. . 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. 22. Sa se realizeze un program pentru transformarea reprezentarii unui numar N (specificat de catre utilizator) din cod zecimal în cod binar. 23. 17. iar fiecare element de pe a treia coloana sa fie suma numerelor aflate pe primele doua coloane ale aceleiasi linii. Sa se realizeze un program care sa afiseze primii zece multipli ai lui 6. 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. 7). Sa se realizeze un program pentru calculul expresiei N! (factorial). 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. 20. 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..

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

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

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). Indicele avut de element inainte de inceperea modificarilor este scris cu negru pe fond alb.La selectarea acestei optiuni. panoul aplicatiei devine negru iar programul asteapta ca utilizatorul sa indice succesiv. 1. Figura 107 77 . Validarea modificarilor se efectueaza prin apasarea butonului OK. Indicele modificat este scris cu alb pe fond negru. prin click-uri cu mouse-ul.d. 2 s.m. Langa fiecare element sunt afisati cate doi indici. Anularea modificarilor indicilor si revenirea la situatia anterioara se efectueaza prin apasarea butonului marcat cu X.a. elementele cu indicii 0.

atunci la toate intrarile sale trebuie sa existe conexiuni. Iesirile functiei capata culori si inscriptii corespunzatoare elementelor componente.m. pentru a defini complet structura elementului Cluster 78 . Daca la intrarea cluster a functiei Bundle nu se conecteaza nimic.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.6.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. cea imediat de sub ea elementului cu indicele 1 s. functia se dimensioneaza automat. Functia Bundle grupeaza mai multe valori (elemente) intr-o structura de tip Cluster. Cand se realizeaza o legatura intre terminalul unui Cluster si o functie Unbundle.a. Functia Unbundle permite separarea elementelor unui Cluster.d. Iesirea din pozitia superioara corespunde elementului cu indicele 0. In mod implicit functia poseda doua intrari dar poate fi dimensionata. corespunzator numarului de elemente din Cluster. Atunci cand o functie Unbundle este dispusa in diagrama. ea poseda doua iesiri si poate fi dimensionata.

Numele elementului corespunzator unei intrari poate fi modificat prin aceleasi metode ca si in cazul functiei Unbundle By Name. 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. 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. 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.Daca elementele din interiorul unui Cluster poseda etichete (label). separarea acestora se poate efectua si cu ajutorul functiei Unbundle By Name. numele sunt atribuite in ordinea elementelor. Atunci cand la intrarea sa se conecteaza un Cluster. Simbolul functiei poate fi dimensionat. Daca functia are mai putine intrari decat numarul elementelor din Cluster. Este obligatorie conectarea la intrarea input cluster a functiei 79 . Simbolul functiei Unbundle By Name poate fi dimensionat.

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

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

Atunci cand primeste o noua valoare. Atunci cand primeste un sir de valori (considerate de asemenea tot ordonate ale punctelor).m. 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. 1 pentru a doua s.). Abscisele punctelor sunt considerate automat crescatoare din unitate in unitate (0 pentru prima valoare primita.a. sir ce este trimis elementului Chart Daca un element Chart primeste o matrice de valori numerice (Array cu doua dimensiuni). In figura 114.3 Elementul Waveform Graph 82 . bucla For genereaza un sir (Array) de sapte valori aleatoare. EXERCITIU Construiti diagramele din figurile de mai sus si verificati modul de functionare.7. Figura 113 Un element Chart accepta nu numai valori trimise punct cu punct (scalare) ci si siruri de valori (Array).Un element de tip Chart considera valorile succesive pe care le primeste drept ordonate ale punctelor de pe grafic. la fiecare iteratie a buclei While (la fiecare trei secunde). atunci el va trasa simultan un numar de grafice egal cu numarul de linii ale matricei. 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.d. 1.

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

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. atunci el va trasa simultan un numar de grafice egal cu numarul de linii ale matricei. 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. In functia Bundle.

se determina intai distanta x pe abscisa dintre doua puncte succesive. Atunci cand se primeste o astfel de structura de date.1. Evident. iesirea functiei Build Array se conecteaza la terminalul elementului XY Graph. 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. Figura 119   EXERCITIU Figura 120 Construiti diagramele din figurile de mai sus si verificati modul de functionare. In figura alaturata este prezentat un program pentru trasarea graficului functiei sinus intre 0 si 2 prin 101 puncte. cele doua siruri trebuie sa contina acelasi numar de valori. Stabilind ca punctele vor fi la distante egale pe orizontala. iesirile functiilor Bundle se conecteaza la o functie Build Array. 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).7. iar acesta este trimis la terminalul elementului XY Graph. 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. impartind la 100 intervalul de trasare. 85 . graficul anterior este sters. sirurile de valori xi si yi sunt grupate intr-un cluster (cu functia Bundle). de lungime 2.

1. mentine continuu autoscalarea pe directia corespunzatoare. atunci cand este apasat. tip si grosime de linie etc.5 Optiuni specifice elementelor pentru reprezentari grafice In meniul propriu al elementelor pentru reprezentari grafice. Plot 1 s. Apasand butonul drept al mouse-ului atunci cand cursorul este pozitionat deasupra unui grafic din legenda. Numele graficelor (initial Plot 0.d. 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.a.7. se deschide un meniu propriu din care pot fi configurate optiuni de afisare ale graficului respectiv: culoare. Figura 122 Figura 123 86 . vizibilitatea scalei sau a etichetei acesteia.m. submeniul Visible Items contine o serie de optiuni pentru afisarea unor componente specifice. 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. format si precizie de reprezentare. culoarea caroiajului. Optiunea Scale Legend afiseaza o componenta ce permite configurarea modului in care sunt afisate scalele elementului de reprezentare grafica: eticheta scalei.) pot fi modificate cu ajutorul uneltei de editare a textelor.

celalalt intre 2 si 3). Scale Legend si Graph Palette ale elementului de tip Chart. stilul punctelor). 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). Exersati lucrul cu uneltele de marire sau micsorare a imaginii din componenta Graph Palette. intr-un element de tip Chart.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. Modificati modul de interpolare al graficelor. sa fie trasate doua grafice cu valori aleatoare (unul intre 0 si 1. Figura 124 Optiunile X Scale si Y Scale din meniul propriu permit configurarea unor parametri ai modului de afisare a scalelor. Modificati formatul si precizia de reprezentare a valorilor de pe cele doua scale. Afisati un caroiaj rosu. Modificati modurile in care sunt afisate cele doua grafice (culoare. Modificati etichetele scalelor. 87 . Afisati componentele Plot Legend. tip si grosime de linie. Umpleti zona de sub un grafic sau zona dintre cele doua grafice. Afisati graficele sub forma de histograme. Autoscalati graficul pe axa Y.

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

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

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

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

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

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

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

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