Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Cap.5
1. 5. Tablouri (Arrays)
• TOPICS
• Introduction to Arrays
• Auto Indexing Arrays
• Array Functions
• Polymorphism
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. 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. 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. • 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. • 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. Creating Array Constants
1. Select Array Constant
shell from the Array
subpalette
2. Place the data object in the array shell
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. 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. 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. Funcții Array
Pentru a obtine
in mod dinamic
(programatic),
structuri de
valori de tipul
Array, pot fi
utilizate o serie
de functii
specifice.
12. C. 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.
13. Array Subset
•Functia „Subtablou” (Array Subset), returneaza un numar specificat din
elementele unui tablou, începand de la un indice.
14. The Build Array Function
Appending an element
Concatenate Inputs
Building a higher dimension array
15. The Index Array Function
Extracting an Element
Extracting a Row
Extracting an Element of a Row
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. • 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. 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. Exerciții
In this example we see how
we can use these Array
functions and what they do.
The resulting Front Panel is
as follows:
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. Să se creeze un VI care să genereze un tablou (array) cu 10
elemente aleatoare și care să scaleze aray-ul realizat, iar apoi să
extragă ultimele 4 elemente din array-ul scalat.
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.
Notas do Editor
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 & 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?