P. 1
Introducere in Mediul de Programare Labview

Introducere in Mediul de Programare Labview

|Views: 89|Likes:
Published by Loredana Harabagiu
labview
labview

More info:

Published by: Loredana Harabagiu on Jan 16, 2014
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/02/2014

pdf

text

original

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

Figura 3 1. Virtual Instruments. prescurtat VI). Denumirea provine de la faptul ca. asteptati pana la aparitia ferestrei introductive.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.Dupa lansare. Dupa apasarea butonului New VI. Programele respective inlocuiau o serie de aparate si instrumente electronice . se vor deschide cele doua ferestre principale ale unei noi aplicatii LabVIEW. LabVIEW a fost strict dedicat pentru realizarea unor programe de monitorizare a proceselor. apasati butonul New VI pentru a deschide o noua aplicatie (figura3).1. Figura 4 4 . in primele sale versiuni.

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

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

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

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

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

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

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

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

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

dedicata functiilor aritmetice simple: adunare (Add). incrementare (Increment). inversare (Reciprocal). produsul dintre o valoare x si o putere a lui 2 (Scale By Power Of 2). schimbare de semn (Negate). imediat dupa dispunerea in diagrama. rotunjire la intregul inferior (Round To -Infinity). rotunjire la cel mai apropiat intreg (Round To Nearest). valoare absoluta (Absolute Value). el capata automat valoarea 0 si intra in modul de editare.1. radacina patrata (Square Root). Cu fereastra Help deschisa. inmultire (Multiply). in loc de a introduce o valoare in element. 1. impartire (Divide). scadere (Subtract). Figura 22 14 . decrementare (Decrement). Atunci cand un astfel de element este dispus in diagrama. o alta valoare constanta poate fi specificata utilizand unealta de operare sau pe cea de editare a textelor.12 Functii pentru valori numerice Functiile pentru valori numerice sunt grupate in subpaleta Numeric a paletei de functii Se remarca o prima categorie.EXERCITIU Exersati deschiderea si inchiderea ferestrei Help prin modurile descrise mai sus. asteptand ca utilizatorul sa introduca valoarea numerica dorita. In subpaleta Numeric se gaseste de asemenea elementul Numeric Constant (constanta numerica). utilizatorul efectueaza alta operatie. rotunjire la intregul superior (Round To +Infinity). Daca. 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 24 15 . urmariti descrierea functiilor in fereastra Help. Pe parcursul navigarii in paleta de functii. SI NEGAT (Not And).1. In partea sa inferioara. identificati functiile logice simple si constantele logice enumerate mai sus. Subpaleta contine de asemenea. SAU EXCLUSIV (Exclusive Or).14 Functii pentru valori alfanumerice (string) In subpaleta Boolean a paletei de functii. urmariti descrierea functiilor in fereastra Help. SAU (Or). Functii pentru valori alfanumerice (string) Functiile pentru valori alfanumerice sunt grupate in subpaleta String a paletei de functii. Printre cele mai simple se numara cele pentru transformarea caracterelor in majuscule (To Upper Case) si pentru transformarea caracterelor in minuscule (To Lower Case). cele doua constante logice: ADEVARAT (True) si FALS (False). identificati functiile aritmetice simple enumerate mai sus. Figura23 EXERCITIU 1. in partea inferioara. Pe parcursul navigarii in paleta de functii. NEGARE (Not). subpaleta contine un element String Constant pentru introducerea in diagrama de valori alfanumerice constante. Se remarca functiile logice simple SI (And).EXERCITIU In subpaleta Numeric a paletei de functii. 1.1. SAU NEGAT EXCLUSIV (Not Exclusive Or) si IMPLICA (Implies). SAU NEGAT (Not Or).13 Functii pentru valori booleene Functiile pentru valori booleene sunt grupate in subpaleta Boolean a paletei de functii.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. In submeniul Representation. cu ajutorul careia se specifica modul in care valoarea numerica respectiva este stocata in memorie. 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. 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 .1. Representation.3 Moduri de reprezentare a valorilor numerice Meniurile proprii ale elementelor de control sau indicatoare numerice contin o optiune specifica.

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

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

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

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

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

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

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). efectul obtinut este acela de modificare a unghiului la centru pe care scala este dispusa. efectul obtinut este acela de modificare a latimii benzii colorate (rampa) a scalei.3. se apasa butonul stang al mouseului si se deplaseaza mouse-ul tinand butonul apasat. efectul obtinut este acela de rotire a scalei in jurul centrului elementului.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. Daca se pozitioneaza cursorul mouse-ului in apropierea mijlocului scalei unui element de control sau indicator de tip Meter. 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. Figura 75 46 . 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. Figura 74 Atunci cand cursorul mouse-ului este pozitionat nu deasupra unei limite ci deasupra unei gradatii intermediare de pe scala.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->