SlideShare uma empresa Scribd logo
1 de 23
5. Tablouri (Arrays)



•   TOPICS
•   Introduction to Arrays
•   Auto Indexing Arrays
•   Array Functions
•   Polymorphism
•  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.
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.
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.
• 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.
• 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.
Creating Array Constants
1. Select Array Constant
   shell from the Array
   subpalette




2. Place the data object in the array shell
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.
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.
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 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.
•   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.
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
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:
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).
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.
Exerciții (continuare)
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.

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
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

  1. 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.
  2. You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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?