Upcoming SlideShare
×

# Cap.5

355

Published on

Instrumentatie virtuala

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

• Be the first to like this

Views
Total Views
355
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
7
0
Likes
0
Embeds 0
No embeds

No notes for slide
• Arrays group data elements of the same type. An array consists of elements and dimensions. Elements are the data that make up the array. A dimension is the length, height, or depth of an array. An array can have one or more dimensions and as many as 2^31 – 1 elements per dimension, memory permitting. You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types. Consider using arrays when you work with a collection of similar data and when you perform repetitive computations. Arrays are ideal for storing data you collect from waveforms or data generated in loops, where each iteration of a loop produces one element of the array. Array elements are ordered. An array uses an index so you can readily access any particular element. The index is zero-based, which means it is in the range 0 to n – 1, where n is the number of elements in the array. For example, n = 9 for the nine planets, so the index ranges from 0 to 8. Earth is the third planet, so it has an index of 2. File I/O operations pass data to and from files. Use the File I/O VIs and functions located on the Functions » File I/O palette to handle all aspects of file I/O. In this class we will cover reading and writing spreadsheet files using the Express VIs for File I/O.
• You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types
• To create an array control or indicator as shown, select an array on the Controls»All Controls»Array &amp; Cluster palette, place it on the front panel, and drag a control or indicator into the array shell. If you attempt to drag an invalid control or indicator such as an XY graph into the array shell, you are unable to drop the control or indicator in the array shell. You must insert an object in the array shell before you use the array on the block diagram. Otherwise, the array terminal appears black with an empty bracket. Un tablou de bază gol este arătat mai jos. Pentru a creea un tablou, se deplasează obiectul dată în interiorul unei ferestre Data Object sau se depune obiectul direct într-o fereastră folosind meniul pop-up al ferestrei.
• To add dimensions to an array one at a time, right-click the index display and select Add Dimension from the shortcut menu. You also can use the Positioning tool to resize the index display until you have as many dimensions as you want.
• Creating array constants uses the same two-step process as a front panel array. Select an array constant from the Array subpalette of the Functions palette. Place a constant data type inside the empty array shell. Note again that the data types are “grayed-out” and must be manually defined if the user wants to store values in the array constant.
• If you enable auto-indexing on an array wired to a For Loop input terminal, LabVIEW sets the count terminal to the array size so you do not need to wire the count terminal. In the following example, the For Loop executes a number of times equal to the number of elements in the array. Normally, if the count terminal of the For Loop is not wired, the run arrow is broken. However, in this case the run arrow is not broken. Auto-indexing can be used on input arrays: For calculations to be performed on each element of array, use auto-indexing. To pass the entire array into a loop, disable auto-indexing.
• LabVIEW has many functions to manipulate arrays in the Array subpalette of the Functions palette. Array Size: The number of elements in the input array: 1D array: Output is a numeric. Multidimensional array: Array output with elements signifying size of each dimension. (Example: A 2 x 4 array will output array of two elements, with first element = 2 and second element = 4). Initialize Array: Creates an array of n dimensions containing the value tied to the element input. Initialize array can be “stretched out” to add more “ dimension size” input terminals. You must have one “ dimension size” input terminal for each dimension in the array.
• Returns a portion of an array starting at index and containing length elements. For example, if you use the previous array as the input, the Array Subset function returns the following array for an index of 2 and a length of 3.
• Build Array: Concatenates elements together into one array or concatenates multiple arrays together into arrays of higher dimension. Build array can be “stretched-out” to add additional input terminals Input terminals are set as Array input or Element input. Popping up on the input terminals allows selection of Change to Array/Element input. To concatenate arrays or elements together into one longer array, arrays must be tied to Array input terminals and single elements must be tied to Element input terminals. To create a higher dimensional array, arrays must be tied to Element input terminals. Students often are confused by the difference. Demonstrate on your machine the difference between “Array” and “ Element” input.
• Index Array: accesses a specific element of the input array. Index Array can be “stretched-out” to add more index terminals. You must have one index terminal for each dimension in the input array. The slide example shows accessing a single element of a one-dimensional array. Index Array does not remove the element from the array. Remind students that arrays start their indices at zero. Index 2 in the example actually accesses the third element in the array.
• Do not immediately display this slide. Suggested questions for class participation: What is an array? Where might it be used? How would I create a 2D array of numeric controls? How can a loop create an array? Which loops can be used to do so? What does “polymorphic” mean?
• ### Cap.5

1. 1. 5. Tablouri (Arrays)• TOPICS• Introduction to Arrays• Auto Indexing Arrays• Array Functions• Polymorphism
2. 2. • Spre deosebire de elementele scalare, care reprezentau o singura valoare, de un anumit tip (numeric, boolean, alfanumeric), elementele vectoriale (Array) pot contine, intr-o maniera ordonata, 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 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.. Un tablou bidimensional (2D) necesită doi indici pentru localizarea unui element, un indice coloană şi un indice linie, amândoi pornind de la zero.
3. 3. Controale și indicatoare Tablou (Array)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.
4. 4. Modul de plasare a unui obiect de date (Control Numeric în cazul acesta) într-un tablou EXERCITIU Dispuneti pe panoul unei aplicatii: - un Array cu valori numerice; - un Array cu valori booleene; - un Array cu valori alfanumerice. Transformati cele trei Array-uri din elemente de control in elemente indicatoare.
5. 5. • In mod implicit, atunci cand este creat, un Array are o singura dimensiune, putand fi descris drept o matrice coloana.• Numarul de dimensiuni ale unui Array poate fi modificat prin dimensionarea indexului acestuia• Daca un Array are mai mult de o dimensiune, se poate stabili afisarea mai multor linii si mai multor coloane.• 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. EXERCITIU Modificati numerele de valori vizibile ale celor trei Array-uri create in exercitiul anterior. Transformati Array-urile in elemente de control (daca este cazul) si definiti valori in cadrul acestora. Modificati indexul fiecarui Array si observati modul in care valorile se deplaseaza.
6. 6. • 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.
7. 7. Creating Array Constants1. Select Array Constant shell from the Array subpalette2. Place the data object in the array shell
8. 8. 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.
9. 9. 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ă.
10. 10. 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
11. 11. Funcții ArrayPentru a obtinein mod dinamic(programatic),structuri devalori de tipulArray, pot fiutilizate o seriede functiispecifice.
12. 12. C. Common Array Functions Array Size•Functia „Dimensiune Tablou” (Array Size), returneaza numarul de elemente ale fiecareidimensiuni ale tabloului de intrare. Initialize Array•Functia „Initializeaza tablou” (Initialize Array), realizeaza initializarea elementelor unui tablou cuN dimensiuni cu o valoare indicata.
13. 13. Array Subset•Functia „Subtablou” (Array Subset), returneaza un numar specificat dinelementele unui tablou, începand de la un indice.
14. 14. The Build Array FunctionAppending an elementConcatenate InputsBuilding a higher dimension array
15. 15. The Index Array FunctionExtracting an ElementExtracting a RowExtracting an Element of a Row
16. 16. • Modurile in 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 (radacina patrata, functii trigonometrice etc.), intre un Array si 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.
17. 17. • 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+21+22 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.
18. 18. D. 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 matrice-matrice de dimensiuni diferite. Combinația Rezultatul Scalar+Scalar Scalar Array Array+scalar Array Array+Array Array Array+Array
19. 19. ExercițiiIn this example we see howwe can use these Arrayfunctions and what they do.The resulting Front Panel isas follows:
20. 20. Să se creeze un VI cu 6 intrări booleane (opțional) și care săreturneze numărul primei intrări adevărate (opțional).
21. 21. Să se creeze un VI care să genereze un tablou (array) cu 10elemente aleatoare și care să scaleze aray-ul realizat, iar apoi săextragă ultimele 4 elemente din array-ul scalat.
22. 22. Exerciții (continuare)
23. 23. Summary• Arrays group data elements of the same type. You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types.• The array index is zero-based, which means it is in the range 0 to n – 1, where n is the number of elements in the array.• To create an array control or indicator, select an Array on the Controls»Array & Cluster palette, place it on the front panel, and drag a control or indicator into the array shell.• If you wire an array to a For Loop or While Loop input tunnel, you can read and process every element in that array by enabling auto- indexing.• By default, LabVIEW enables auto-indexing in For Loops and disables auto-indexing in While Loops.• Polymorphism is the ability of a function to adjust to input data of different data structures.
1. #### A particular slide catching your eye?

Clipping is a handy way to collect important slides you want to go back to later.