III. Tablouri (Arrays) și Clustere

Documente similare
I. Navigating LabVIEW

I. Navigating LabVIEW

Declararea variabilelor

Slide 1

proiectarea bazelor de date

INTRODUCERE ÎN INSTRUMENTAŢIA VIRTUALĂ

Slide 1

Aggregating Data

EXCEL FĂRĂ SECRETE Grafice şi diagrame

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Laborator 3

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Managementul Resurselor Umane

PowerPoint Presentation

Microsoft Word - Excel_3.DOC

Ch

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

ALGORITHMICS

9. Stringuri și Fișiere I/O (Intrare/Ieșire)

Introducere în limbajul JavaScript

Diapositive 1

INTREBARI FRECVENTE SI MANUAL DE UTILIZARE hub.sendsms.ro

Paradigme de programare

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

Manual de utilizare Set volan și pedale MG7402

A.E.F. - suport laborator nr.5 sem.ii Analiza suprafețelor prin utilizarea elementelor 2D În acest laborator sunt atinse următoarele aspecte: realizar

Slide 1

RZOLVARE EXERCITIU ZODII declare cursor distributie_zodie is select nume_zodie, count(*) distributie from zodiac z join utilizatori u on to_date(to_ch

tehnologii web

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

Laborator5_SQL_an2

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

Laborator Implementarea algoritmului DES - Data Encryption Standard. Exemplu DES Algoritmul DES foloseşte numere b

Microsoft Word Sony_Ericsson_RO.doc

Resurse (Resources) Aspecte generale Utilizând unealta Resurse (Resources) puteți stoca pe serverul portalului Danubius Online diferite fișiere care c

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Slide 1

STORY NAME: Young musician COPYRIGHT HOLDER: COPYRIGHT NOTICE: Telefilm Chisinau / OPEN Media Hub Ownership of content belongs to Telefilm Chisinau /

Lucrarea 10

Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

Microsoft Word - Laboratorul 3.doc

Programarea şi utilizarea calculatoarelor

Slide 1

-

PHP (II)

Laborator - Configurarea Rutelor IPv4 Statice și Implicite Topologie Tabela de Adresare Echipame nt Interfață Adresă IP Masca de subreţea Default Gate

Microsoft Word _POO_Lab_1_Modificari_v01.htm

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

User guide

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Microsoft Word - L63 FPGA.doc

Microsoft Word - Capitolul_07

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

Microsoft Word - Lucrarea_10_t.doc

E_d_Informatica_sp_SN_2014_bar_10_LRO

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Slide 1

A.E.F. - suport laborator nr.10 sem.ii Analiza stării de contact între elemente 3D În acest laborator sunt atinse următoarele aspecte: analiza contact

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Addendum Syllabus 6 Microsoft Word 2016 REF Syllabus 6.0 Crearea unui document nou pe baza unor șabloane disponibile local sau online Microsoft

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

Slide 1

Proceduri stocate Syntax: CREATE PROCEDURE <Name> type1,...] AS -- secventa de comenzi SQL GO O procedura stocata se ruleaza cu EXEC: EXEC <N

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Elemente de Web design

LABORATOR I

LUCRAREA NR

Sistemul de Gestiune a Bazelor de Date Access

A.E.F. - suport laborator nr.8 sem.ii Analiza structurală la flambaj În acest laborator sunt atinse următoarele aspecte: modalitatea de analiză la fla

Always leading the pack SEMICONDUCTOR FUNDAMENTAL DL 3155M11R Laborator TIME

Microsoft Word - 4-Interfete paralele.doc

SUBPROGRAME

Slide 1

Inserarea culorilor in tabele

Microsoft Word - Curs_07.doc

Microsoft Word - cap1p4.doc

Școala: Clasa a V-a Nr. ore pe săptămână: 4 Profesor: MATEMATICĂ Clasa a V-a Aviz director PLANIFICARE CALENDARISTICĂ ORIENTATIVĂ Nr. crt. Unitatea de

Informație și comunicare

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 1. Google Drive, Google Calendar, WeTr

Tablouri (continuare)

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

Introducere

Manual de utilizare Aplicatie Proiector I. Pornire/Oprire proiectie Pentru a porni/opri proiectia aveti 3 posibilitati: 1) Pentru pornirea proiectiei

Metode avansate de gestiune a documentelor și a sistemelor de calcul - curs 1 -

Cuantizare Vectoriala.doc

Web Social FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 2. Dezvoltarea blogurilor prin intermediul WordPress.com PREZE

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Microsoft Word - CarteC.doc

TEZA de ABILITARE Corelatii intre biomateriale, proteze valvulare cardiace si tehnici chirurgicale folosite in protezarea valvulara aortica Horatiu Mo

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

Transcriere:

III. Tablouri (Arrays) și Clustere Sometimes it is beneficial to group data related to one another. Use arrays and clusters to group related data in LabVIEW. Arrays combine data of the same data type into one data structure, and clusters combine data of multiple data types into one data structure. This lesson explains arrays and clusters, and applications where using these can be beneficial.

Topics A. Arrays B. Clusters

A. Arrays Spre deosebire de elementele scalare, care reprezentau o singura valoare, de un anumit tip (numeric, boolean, alfanumeric), elementele vectoriale (Array) pot contine, într-o manieră ordonată, mai multe valori de acelasi tip. Un tablou este o colecţie de elemente ale datelor care sunt toate de acelaşi tip. Un tablou are una sau mai multe dimensiuni şi poate avea până la 2 31 1 de elemente pe dimensiune, sau cât permite memoria.

Tablourile, în LabVIEW, pot fi de orice tip: numerice, Booleane, tip cale, stringuri, unde, și tip clustere (exceptând şiruri, tabele sau grafice). Se poate accesa fiecare element al tabloului prin index-ul său. Index-ul este în gama (0, N-1) unde N este numărul elementelor din tablou. Tabloul unidimensional (1D) arătat mai jos ilustrează această structură. De notat că primul element are index-ul 0, al doilea element are index-ul 1, etc..

Figure 3.1 shows an example of an array of numerics. The first element shown in the array (3.00) is at index 1, and the second element (1.00) is at index 2. The element at index 0 is not shown in this image, because element 1 is selected in the index display. The element selected in the index display always refers to the element shown in the upper left corner of the element display. Figure 3.1. Array Control of Numerics

Crearea Array-urilor de Controale și Indicatoare Se va selecta Array din subpaleta Controls >> All Controls >> Array and Cluster Atunci cand un element de tipul Array se dispune pe panou, tipul datelor pe care acesta le va contine nu este inca definit. Se spune ca elementul de tip Array este vid. Terminalul din diagrama bloc al elementului este de culoare neagra. Sageata Run este sparta, semn ca programul este incomplet si nu poate fi rulat. Pentru a defini tipul de date, in elementul de tip Array trebuie introdus un element de control sau indicator scalar de tipul dorit (numeric, boolean, alfanumeric, e.t.c.). 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.

Modul de plasare a unui obiect de date (în cazul acesta Control Numeric), într-un tablou: EXERCITIU Să se dispună pe panoul unei aplicatii: - un Array cu valori numerice; - un Array cu valori booleene; - un Array cu valori alfanumerice. Transformati cele trei Arrayuri din elemente de control in elemente indicatoare.

Two-Dimensional Arrays The previous examples use 1D arrays. A 2D array stores elements in a grid. It requires a column index and a row index to locate an element, both of which are zero-based. Figure 3.2 shows an 8 column by 8 row 2D array, which contains 8 8 = 64 elements. Figure 3.2. 2D Array

To add a multidimensional array to the front panel, right-click the index display and select Add Dimension from the shortcut menu. You also can resize the index display until you have as many dimensions as you want. Initializing Arrays You can initialize an array or leave it unitialized. When an array is initialized, you defined the number of elements in each dimension and the contents of each element. An uninitialized array contains a fixed number of dimensions but no elements. Figure 3.3 shows an uninitialized 2D array control. Notice that the elements are all dimmed. This indicates that the array is uninitialized. Figure 3.3. 2D Uninitialized Array

In Figure 3.4, six elements are initialized. In a 2D array, after you initialize an element in a row, the remaining elements in that row are initialized and populated with the default value for the data type. For example, in Figure 3.5, if you enter 4 in to the element in the first column, third row, the elements in the second and third column in the third row are automatically populated with a 0. Figure 3.4. An Initialized 2D Array with Six Elements Figure 3.5. An Array That Has Been Autopopulated with Zeroes

In mod implicit, atunci cand este creat, un Array are o singura dimensiune, putand fi descris drept o matrice coloana. Terminalul unui element Array se caracterizeaza prin prezenta unor paranteze drepte a caror grosime este proportionala cu numarul de dimensiuni. Atunci cand se realizeaza legaturi in diagrama, conexiunile pe care circula un Array cu o dimensiune sunt mai groase decat cele pe care circula valori scalare. Pentru Array-urile cu doua sau mai multe dimensiuni, conexiunile sunt reprezentate cu linie dubla. Spatiul intermediar al liniei duble este cu atat mai mare cu cat numarul de dimensiuni ale Array-ului este mai mare.

1. Select Array Constant shell from the Array subpalette Creating Array Constants 2. Place the data object in the array shell Atunci cand este necesara existenta in diagrama a unei constante Array, aceasta poate fi selectata din meniul cu functii pentru valori vectoriale (Array) al paletei de functii.

La dispunerea sa in diagrama, similar elementelor Array de pe panou, o astfel de constanta nu are definit tipul de date pe care le va contine. Definirea tipului de date se realizeaza prin introducerea in chenarul constantei Array a unei constante de tipul dorit (numeric, boolean sau alfanumeric). 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.

Crearea și utilizarea Tablourilor Auto-Indexarea buclele acumulează array-urile la marginile lor. În mod implicit, buclele For sunt auto-indexate, în timp ce buclele While, nu.

Crearea Tablourilor cu ajutorul Buclelor Buclele acumulează tablourile la marginile lor Auto Indexarea poate fi eliminată Se pot utiliza două Bucle For, una în interiorul celeilalte, pentru crearea unui Array 2D. Bucla For exterioară crează elementele rânduri, iar Bucla For interioară crează elementele coloană.

Auto-Index Input An array input can be used to set the For Loop count terminal. Number of elements in the array equals the count terminal input. Run arrow not broken

Funcții Array Pentru a obtine in mod dinamic (programatic), structuri de valori de tipul Array, pot fi utilizate o serie de functii specifice.

Common Array Functions Array Size Functia Dimensiune Tablou (Array Size), returneaza numarul de elemente ale fiecarei dimensiuni ale tabloului de intrare. Initialize Array Functia Initializeaza tablou (Initialize Array), realizeaza initializarea elementelor unui tablou cu N dimensiuni cu o valoare indicata.

Array Subset Functia Subtablou (Array Subset), returneaza un numar specificat din elementele unui tablou, începand de la un indice.

The Build Array Function Appending an element Concatenate Inputs Building a higher dimension array

The Index Array Function Extracting an Element Extracting a Row Extracting an Element of a Row

Modurile în care un Array se poate comporta la intrarea sau la iesirea dintr-o structura repetitiva sunt valabile si in cazul buclelor While, cu deosebirea ca, in cazul acestora, comportamentul implicit este inversat: -in mod implicit, o bucla While va prelua la fiecare iteratie intreg Array-ul de intrare. Doar in cazul in care componentei de pe contur i se selecteaza, din meniul propriu, optiunea Enable Indexing, bucla While va prelua cate o valoare la fiecare iteratie. -in mod implicit, daca o valoare din interiorul unei bucle While se conecteaza la conturul acesteia, componenta de pe contur va genera, dupa incheierea executiei buclei, doar valoarea primita in ultima iteratie. Doar daca se selecteaza optiunea Enable Indexing a componentei de pe contur, aceasta va genera, dupa incheierea ultimei iteratii, un Array cuprinzand valorile primite in cadrul tuturor iteratiilor.

Functiile aritmetice si logice pentru valori scalare, precum si cele pentru valori alfanumerice, permit conectarea de Array-uri continand valori de tipurile corespunzatoare. Se pot astfel realiza: - operatii aritmetice asupra valorilor dintr-un Array (radăcina pătrată, functii trigonometrice etc.), între un Array și o valoare scalara sau intre doua Array-uri; - operatii logice intre un Array si o valoare booleana sau intre doua Array-uri cu valori booleene; -operatii asupra Array-urilor de valori alfanumerice.

Functiile Add Array Elements si Multiply Array Elements determina suma, respectiv produsul valorilor numerice dintr-un Array. Functiile And Array Elements si Or Array Elements efectueaza operatiile logice SI, respectiv SAU, asupra tuturor valorilor booleene dintr-un Array, obtinand o valoare booleana scalara. Atunci cand au drept operanzi un Array si o valoare scalara sau doua Array-uri, functiile de comparatie genereaza un Array de valori booleene, compararea fiind efectuata valoare cu valoare.

Daca, din meniul propriu al functiei de comparatie, se alege optiunea Compare Aggregates, functia va genera o valoare booleana scalara. De exemplu, daca se compara doua Array-uri de valori numerice cu functia Equal? in starea Compare Aggregates, 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.

Functia Number To Boolean Array, aflata in meniul pentru functii booleene, transforma un numar natural intr-un Array de valori booleene, efectuand de fapt transformarea din baza 10 in baza 2. Bitul cel mai putin semnificativ este reprezentat in Array de valoarea cu indicele 0. De exemplu, valoarea 6=0+2 1 +2 2 este transformata intr-un Array cu trei valori booleene: (False, True, True). Functia Boolean Array To Number realizeaza transformarea inversa, dintr-un Array de valori booleene intr-un numar natural.

Polimorfism Poliformismul reprezintă capabilităţile funcţiilor din LabView (de ex. adunare, înmulţire, împărţire) de a accepta la intrare date cu dimensiuni şi reprezentări diferite. Funcţiile aritmetice care posedă aceste proprietăţi se numesc funcţii polimorfice. Un exemplu clasic pentru această proprietate este poliformismul funcţiei adiţionale scalar scalar, scalar matrice și matricematrice de dimensiuni diferite. Combinația Scalar+Scalar Rezultatul Scalar Array+scalar Array+Array Array Array Array+Array Array

B. Clustere Sunt structuri de date care grupează datele împreună. Datele pot fi de tipuri diferite (numerice, Booleene, stringuri, e.t.c.). Elementele trebuie să fie, fie toate controale, fie toate indicatoare. Analog cu o legătură de fire dintr-un cablu. Fiecare fir din cablu reprezintă un element al clusterului.

Deoarece un cluster are un singur fir (de intrare sau de ieșire) chiar dacă acesta transportă multiple valori de diferite date, clusterele reduc firele și numărul de terminale conector pe care un subvi le necesită. Figura de mai jos ilustrează conceptul de grupare, respectiv degrupare, a elementelor de date într-un cluster.

Cluster Controls and Indicators 1. Select a Cluster shell from the Array & Cluster subpalette 2. Place objects inside the shell 30

Creating Cluster Constants 1. Select Cluster Constant shell from the Cluster subpalette 2. Place objects in the Cluster shell

Cluster Order Elements have a logical order (start with 0) To change order, right-click the border and select Reorder Controls in Cluster... 32

Utilizarea Clusterelor pentru transferul Unul dintre avantajele clusterelor este acela că acestea pot fi utilizate pentru gruparea datelor la intrarea și respectiv ieșirea subvi-urilor. Clusterele reduc astfel numărul de fire într-o diagramă. datelor în SubVI-uri 33

Funcții Cluster Aceste funcții se găsesc în subpaleta Cluster, Class & Variant a paletei Functions>>Programming

Funcţia Bundle Grupează mai multe componente, realizând un grup, sau înlocuieşte una sau mai multe componente ale unui grup existent. Gruparea elementelor se realizează în ordinea acestora în cadrul grupului. Prima componentă conectată la funcţia Bundle este componenta cu index-ul 0, urmează componenta cu index-ul 1, s.a.m.d. Numărul de intrări poate fi modificat fie prin selectarea Add Input din meniul contextual al intrării fie utilizând unealta de poziţionare / redimensionare din caseta Tools.

O altă exemplificare a utilităţii funcţiei Bundle este prezentată în figura de mai jos. Constanta numerică (setată la valoarea 0) defineşte punctul de origine real iar prin controlul numeric se impune valoarea de incrementare. Funcţia Bundle reuneşte datele numerice permiţând reprezentarea grafică.

Funcţia Bundle poate fi utilizată și pentru înlocuirea unor componente ale unui grup (cluster) deja existent. În acest caz, grupul trebuie conectat la intrarea cluster a funcţiei. În cadrul aplicaţiei de mai jos, funcţia bundle permite înlocuirea valorii numerice corespunzatoare controlului Knob şi respectiv a controlului Numeric 2, cu valorile numerice corespunzătoare controalelor knob_input, respectiv Numeric 2_input.

Funcţia Bundle by Name Funcţia Bundle by Name este folosită doar pentru înlocuirea unei componente dintr-un grup existent. Modul de lucru este asemănător cu cel prezentat anterior. Cluster-ul existent se conectează la intrarea specificată a funcţiei (input cluster). În ordinea logică a construcţiei se introduce controlul care va înlocui o componentă. Componenta de înlocuit se va identifica după numele reprezentat prin eticheta asociată. Numărul posibilităţilor de înlocuire se pot vizualiza din meniul contextual al intrării funcţiei prin selectarea opţiunii Select Item.

Funcțiile Unbundle și Unbundle by Name Descompunerea (degruparea) grupurilor (clusterelor) în componente, se realizează cu ajutorul a două funcţii, Unbundle şi Unbundle by Name.

Error Clusters Use the error in and error out clusters in each VI you use or build to handle errors in the VI. The error clusters located on the Controls»Array & Cluster palette include the components of information shown Error cluster contains the following information: Boolean to report whether error occurred Integer to report a specific error code String to give information about the error

Error Cluster Details Status is a Boolean value that reports TRUE if an error occurred. Most VIs, functions, and structures that accept Boolean data also recognize this parameter. Code is a signed 32-bit integer that identifies the error numerically. A nonzero error code coupled with a status of FALSE signals a warning rather than a fatal error. Source is a string that identifies where the error occurred.