Sunteți pe pagina 1din 9

Programarea Calculatoarelor 1 - Algoritmi

L5: Funcții simple pentru lucrul cu vectori - 1


Enunțul problemei
Să se realizeze un instrument virtual LabVIEW care, pentru un șir de valori numerice și
pentru două limite a și b, specificate de către utilizator, să determine:
 numărul de valori din șir cuprinse între limitele a și b;
 numerele de valori strict pozitive, nule, respectiv negative din șir.
Se va semnaliza, de asemenea, dacă limitele a și b specificate de către utilizator
respectă sau nu condiția a < b.

Exemplu de panou

Fig. 5.1.Exemplu de panou

Descrierea funcționării instrumentului virtual


Valorile de intrare sunt:
 șirul de valori numerice;
 limitele numerice a și b.

Valorile de ieșire sunt:


 numărul de valori din șir cuprinse între limitele a și b;
 numerele de valori strict pozitive, nule, respectiv negative din șir;
 o valoare logică (booleană), care indică dacă limitele a și b respectă sau nu condiția
a < b.

Utilizatorul va introduce valori numerice în elementul de tipul Array și în elementele


numerice denumite „a” respectiv „b”.
52
Programarea Calculatoarelor 1 - Algoritmi

Dacă utilizatorul va introduce în elementul „a” o valoare numerică mai mare decât cea
introdusă în elementul „b”, instrumentul virtual va semnaliza prin aprinderea unui
element de tipul Square LED de culoarea roșie sau culoarea verde în caz contrar.
Programul va afișa:
 în elementul indicator denumit „Nr. valori între a și b”, numărul de valori numerice
din șir cuprinse în intervalul [a, b];
 în elementul indicator denumit „Nr. valori pozitive”, numărul de valori numerice
strict pozitive;
 în elementul indicator denumit „Nr. valori nule”, numărul de valori numerice nule;
 în elementul indicator denumit „Nr. valori negative”, numărul de valori numerice
strict negative.

Indicații privind proiectarea interfeței cu utilizatorul


Pe panoul frontal al unui nou instrument virtual LabVIEW se va dispune un element de
tip Array, (click dreapta mouse în panoul frontal din paleta de elemente de control
se selectează meniul Modern  submeniul Array, Matrix & Cluster  Array)
inserându-se elementul într-o zonă disponibilă a panoului frontal (figura 5.2).

Fig.5.2. Element de tip Array

Elementul de tip Array dispus inițial în panoul frontal este vid (nu este specificat tipul de
date pe care acesta îl va conține). Pentru a crea un element de control, de tip Array,
pentru valori numerice, se va selecta din paleta de elemente de control, din meniul
numeric, un element de control de tip numeric scalar și ținând butonul mouse-lui apăsat,
se va deplasa elementul de control numeric selectat în interiorul elementului de tip
Array. Atunci când elementul Array va avea conturul reprezentat cu linie întreruptă, ca
în figura de mai jos, se va elibera butonul mouse-lui obținându-se astfel un element de
control, de tip Array, pentru valori numerice, care permite introducerea unei singure
valori numerice (figura 5.3).

53
Programarea Calculatoarelor 1 - Algoritmi

Fig. 5.3. Element de control de tip Array pentru valori numerice

Utilizatorul trebuie să specifice un șir de valori numerice, astfel încât este necesară
dimensionarea corespunzătoare a elementului Array. Pentru aceasta, se poziționează
cursorul mouse-lui pe conturul dreptunghiului din dreapta al Array-ului și atunci când
acesta capătă forma unui triunghi, ținând butonul mouse-ului apăsat, se deplasează
cursorul până când elementul Array va arăta ca în figura de mai jos.

Fig. 5.4: Element de control de tip Array

De asemenea, se vor dispune în panoul frontal al aplicației două elemente de control


numerice care vor fi denumite în etichete „a” respectiv „b” și patru elemente
indicatoarea numerice care vor fi denumite în „Nr. valori între a și b”, „Nr. valori
pozitive”, „Nr. valori nule”, „Nr. valori negative”, (figura 5.5).

54
Programarea Calculatoarelor 1 - Algoritmi

Fig. 5.5. Elemente de control și elemente indicatoare

Pe panoul frontal al aplicației se dispune din meniul boolean al paletei de funcții un


element de tipul Square LED prin intermediul căruia instrumentul virtual va semnaliza
dacă utilizatorul va introduce în elementul „a” o valoare numerică mai mare decât cea
introdusă în elementul „b” (figura 5.6).

Fig. 5.6. Elemente de control și elemente indicatoare

Indicații privind realizarea diagramei instrumentului virtual


Dispunând de două elemente de control numerice, pentru valorile a și b, utilizatorul
poate greși și poate introduce o valoare a mai mare decât valoarea b. Pentru
clarificarea acestei situații se utilizează funcția Max & Min din meniul Comparison,

55
Programarea Calculatoarelor 1 - Algoritmi

pentru a identifica valoarea mai mare și valoarea mai mică dintre a și b, iar programul
lucrează în continuare cu valoarea mai mică drept a și valoarea mai mare drept b (figura
5.7).

Fig. 5.7. Funcția Max & Min

Numărul de valori numerice din sir cuprinse între limitele a și b (presupunând a < b și
presupunând că se iau in considerare și elementele din sir egale cu a și cu b) poate fi
calculat drept diferența dintre numărul de elemente mai mici sau egale cu b și numărul
de elemente mai mici decât a.
Pentru a determina numărul de elemente dintr-un șir mai mici sau egale cu o anumită
valoare se utilizează funcția Less Or Equal?, aceasta având proprietatea de
polimorfism și permițând astfel ca la o intrare să fie legat un sir iar la cealaltă o valoare
scalară (figura 5.8).

Fig. 5.8. Funcția Less or Equal

Rezultatul funcției de comparație funcția Less Or Equal?, va fi un șir de valori logice


(booleene).
Pentru a determina câte dintre valorile logice, din șirul obținut la terminalul de ieșire al
funcției Less Or Equal?, sunt adevărate (True), se utilizează funcția Boolean To (0,1)
(disponibilă în meniul Boolean). Această funcție transformă șirul de valori logice într-un
șir de valori naturale zero și unu (F 0 și T 1) (figura 5 .9).

56
Programarea Calculatoarelor 1 - Algoritmi

Fig. 5.9. Funcția Boolean To (0,1)

Numărul de valori egale cu unu din șirul de valori naturale se determină introducându-l
pe acesta din urma în funcția Add Array Elements (meniul Numeric) (figura 5 .10).

Fig. 5.10. Funcția Add Array Elements

Se determină numărul de valori din șirul specificat de utilizator strict mai mici decât a
utilizând funcțiile Less? (disponibilă în meniul Comparison), funcția Boolean To (0,1)
(disponibilă în meniul Boolean) și funcția Add Array Elements (disponibilă în meniul
Numeric) (figura 5 .11).

Fig. 5.11.

Cunoscând numărul de valori din șirul inițial mai mici sau egale cu valoarea b și numărul
de valori din șir strict mai mici decât valoarea lui a, se calculează cu funcția Subtract
57
Programarea Calculatoarelor 1 - Algoritmi

numărul de valori din șir cuprinse între limitele a și b se ca fiind diferența dintre cele
două valori numerice figura 5 .12).

Fig. 5.12. Diagrama și panoul pt. determinarea numărului de valori din intervalul [a, b]

Se va determina numărul de elemente din șir pozitive utilizând funcțiile Greater than 0?
(disponibilă în meniul Comparison), funcția Boolean To (0,1) (disponibilă în meniul
Boolean) și funcția Add Array Elements (disponibilă în meniul Numeric) (figura 5 .13).

Fig. 5.13. Diagrama și panoul pentru determinarea numărului de valori pozitive

Se va determina numărul de elemente din șir nule utilizând funcțiile Equal To 0?


(disponibilă în meniul Comparison), funcția Boolean To (0,1) (disponibilă în meniul
Boolean) și funcția Add Array Elements (disponibilă în meniul Numeric) (figura 5 .14).

58
Programarea Calculatoarelor 1 - Algoritmi

Fig. 5.14. Diagrama și panoul pentru determinarea numărului de valori nule

Pentru a determina numărul de elemente din șir negative, se va calcula mai întâi
numărul total de valori din șirul inițial cu funcția Array Size ( disponibilă în paleta de
funcții în meniul Programming, submeniul Array). Cunoscând numărul total de valori
din șir, se determină numărul de valori negative scăzând din numărul total de valori din
șir, numărul de valori pozitive și numărul de valori nule (figura 5 .15).

Fig. 5.15: Diagrama și panoul pentru determinarea numărului de valori negative

Pentru ca instrumentul virtual să semnalizeze prin aprinderea unui element de tipul


Square LED de culoarea roșie dacă valoare numerică „a” este mai mare decât valoarea
„b”, se dispune in diagrama aplicației funcția Less or Equal? (disponibilă în meniul
Comparison) și se efectuează legăturile corespunzătoare (figura 5.6).

59
Programarea Calculatoarelor 1 - Algoritmi

Fig. 5.16. Diagrama și panoul pentru compararea valorilor a și b

60

S-ar putea să vă placă și