Sunteți pe pagina 1din 13

Programarea Calculatoarelor 1 - Algoritmi

L2: Generarea valorilor numerice aleatoare, comparare și


selectare
Enunțul problemei
Să se realizeze un instrument virtual LabVIEW care să genereze o valoare aleatoare, în
funcție de opțiunea utilizatorului, astfel:
 între două limite Min și Max specificate de către acesta, sau
 între două limite fixe 0 și 10, caz în care să semnalizeze dacă valoarea generată se
încadrează sau nu între valorile Min și Max.

Exemplu de panou

Fig. 2.1: Exemplu de panou

Descrierea funcționării instrumentului virtual


Valorile de intrare sunt:
 o valoare logică (booleană), care specifică dacă valoarea aleatoare ce urmează a fi
generată trebuie să se încadreze între limitele Min și Max sau între limitele 0 și 10;
 limitele numerice Min și Max.

Valorile de ieșire sunt:


 valoarea numerică aleatoare generată de către instrumentul virtual;
 o valoare logică (booleană) care specifică dacă valoarea aleatoare generată se
încadrează sau nu între limitele Min și Max.

20
Programarea Calculatoarelor 1 - Algoritmi

Pentru a permite utilizatorului să introducă valorile de intrare, pe panoul frontal vor


exista:
 un element de control boolean, cu eticheta Limitare, care va afișa textele ON sau
OFF în funcție de valoarea de intrare True sau False;
 două elemente de control numerice, cu etichetele Min și Max

Faptul că elementul de control boolean este în poziția superioară și afișează textul ON,
va determina generarea unei valori aleatoare între limitele Min și Max.
Dacă elementul de control boolean este în poziția inferioară și afișează textul OFF,
valoarea aleatoare va fi generată între limitele 0 și 10.

Limitele Min și Max sunt specificate de către utilizator prin deplasarea cursoarelor
elementelor de control numerice corespunzătoare.
Scalele invizibile ale elementelor de control numerice cu etichetele Min și Max au
capetele la valorile 0, respectiv 10.

Valoarea numerică aleatoare generată de către instrumentul virtual va fi afișată de către


un element indicator numeric, cu scala între valorile 0 și 10.
Valoarea logică (booleană) care specifică dacă valoarea aleatoare generată se
încadrează sau nu între limitele Min și Max, va fi afișată de către un element indicator
boolean care va avea culoarea verde dacă valoarea aleatoare se află între limite și
culoarea roșie în caz contrar.
Evident, dacă elementul de control boolean este în poziția superioară, valoarea
aleatoare va fi generată chiar între limitele Min și Max, astfel încât elementul indicator
boolean va avea doar culoarea verde.
Dacă elementul de control boolean este în poziția inferioară și valoarea aleatoare este
generată între limitele 0 și 10, elementul indicator boolean va avea culoarea verde sau
roșie, în funcție de cum condiția din enunț este sau nu este îndeplinită.

Indicații privind proiectarea interfeței cu utilizatorul


Pe panoul frontal al unui nou instrument virtual LabVIEW, se dispun două elemente de
control numerice, de tipul Vertical Pointer Slide (click dreapta mouse în panoul frontal
din paleta de elemente de control se selectează meniul Modern  submeniul
Numeric  Numeric control  Vertical Pointer Slide) (figura 2.2). Se introduce texul
Min respectiv Max în etichetele corespunzătoare celor două elemente de control
numerice și se ascunde scala celor două elemente conform figurii 2.2.

Pentru afișarea valorilor numerice aleatoare, se dispune în panoul frontal un element


indicator de tipul Tank (din paleta de elemente de control se selectează meniul
Modern  submeniul Numeric  Tank), căruia i se va ascunde eticheta (click dreapta
mouse în panoul frontal pe elementul Tank și din meniul contextual al acestuia se
selectează opțiunea Visible Items  se debifează opțiunea Label) (figura 2.3).
Se completează valorile numerice ale capetelor scale elementului de tipul Tank cu
valorile zero respectiv 10.

21
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.2: Elemente de control de tipul Vertical Pointer Slide

Fig. 2.3: Elemente de tipul Tank

Indicații privind realizarea diagramei instrumentului virtual


Relația cu ajutorul căreia se va calcula termenul unui și de valori aleatoare ce aparține
intervalului [Min, Max] este prezentată în figura 2.4.

22
Programarea Calculatoarelor 1 - Algoritmi

X=Min+d
d=0…(Max-Min) X=Min+(Max – Min)xR
R=(0…1)

Max - Min

0
x
Min d
X

Max

Fig. 2.4: Valoarea X a unui termen al șirului

Pentru ca instrumentul virtual să afișeze în elementul indicator Tank valori aleatoare


cuprinse în intervalul [Min, Max], se vor introduce în fereastra diagramă funcțiile
necesare pentru calculul termenului general al unui șir de valori aleatoare ce aparține
intervalul [Min, Max] și se vor efectua legăturile corespunzătoare parcurgând
următoarele etape:
- se selectează și se dispune în diagramă funcția Random Number (0…1) din meniul
numeric al paletei de funcții, pentru valoarea numerică aleatoare din intervalul (0, 1),
notată cu R, (figura 2.5);
- utilizatorul poate specifica de la elementele numerice Vertical Pointer Slide, în mod
eronat, o valoare MIN mai mare decât valoarea MAX și în această situație intervalul
[Min, Max] nu ar exista. Pentru ne a asigura de faptul că cele două valori sunt
ordonate corespunzător, se utilizează funcția Max & Min (disponibilă în paleta de
funcții în meniul Programming, submeniul Comparison) (figura 2.6);
- mediul de programare grafică LabVIEW dispune de numeroase funcții pentru
prelucrarea datelor. Funcțiile disponibile în fereastra diagramă pot avea numeroase
terminale de intrare și de ieșire ce pot fi ușor confundate la descrierea fluxului de
date după care va rula instrumentul virtual. Mediul de programarea grafică LabVIEW
pune la dispoziția programatorului opțiunea Show Context Help (CTRL + H)
(disponibilă în meniul Help din bara de meniuri) astfel încât, dacă se poziționează
cursorul mouse-ului deasupra unei funcții din diagramă, în fereastra Context Help,
apare numele funcției, descrierea, intrările și ieșirile din funcție (figura 2.7);

23
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.5: Funcția Random Number (0-1)

Fig. 2.6: Funcția Max & Min

Fig. 2.7: Fereastra Context Help

- se conectează la intrările x și y ale funcției Max & Min valorile MIN și MAX. Valoarea
numerică obținută la ieșirea max(x, y) a funcției Max & Min va reprezenta valoarea
24
Programarea Calculatoarelor 1 - Algoritmi

Max care va fi folosită în calculul termenului general al șirului de valori aleatoare, iar
valoarea numerică obținută la ieșirea min(x, y) a funcției Max & Min va reprezenta
valoarea Min care va fi folosită în calculul termenului general al șirului de valori
aleatoare (figura 2.8);
- se calculează diferența Max – Min, conectând la intrarea x a funcție Subtract,
(disponibilă în meniul numeric) valoarea numerică Max, obținută la ieșirea max(x, y)
a funcției Max & Min, iar la intrarea y a funcție Subtract valoarea numerică Min,
obținută la ieșirea min(x, y) a funcției Max & Min (figura 2.8);

Fig. 2.8. Funcția Subtract

- se calculează produsul (Max – Min)xR conectând la terminalele de intrarea ale


funcție Multiply, valoarea numerică obținută la terminalul de ieșire al funcției
Subtract și valoarea obținută la terminalul de ieșire al funcției Random Number
(0…1) (figura 2.9);

Fig. 2.9. Funcția Random Number

- se calculează suma dintre produsul rezultat la terminalul de ieșire al funcției Multiply


și valoarea Min obținută la terminalul min(x, y) al funcției Max & Min cu ajutorul
funcției Add (disponibilă în meniul numeric al paletei de funcții). Rezultatul obținut la
terminalul de ieșire al funcției Add, se conectează la terminalul de intrare al
elementului indicator Tank (figura 2.10).

25
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.10: Diagrama și panoul aplicație pentru valorii aleatoare în intervalul [Min, Max]

Pentru ca instrumentul virtual LabVIEW care să genereze o valoare aleatoare, în funcție


de opțiunea utilizatorului, între două limite Min și Max specificate de către acesta sau
între două limite fixe zero și 10, se dispune în panoul frontal un comutator de tipul
Vertical Toggle Switch (paleta de elemente de control, din meniul Modern, submeniul
Boolean) și se introduce în eticheta acestuia textul Limitare (figura 2.11).

Fig. 2.11: Element de tipul Vertical Toggle Switch

Din meniul contextual al elementului Vertical Toogle Switch, se selectează Visible


Items și se bifează opțiunea Boolean Text astfel încât va fi vizibil textul On sau OFF în
funcție de poziția comutatorului (figura 2.12).

26
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.12. Afișarea textului ON sau OFF

Pentru a trimite la elementul indicator, în funcție de poziția comutatorului, fie valoarea


din intervalul (MIN, MAX) fie valoarea din intervalul (0, 10), se dispun în diagramă
funcțiile corespunzătoare și se descrie fluxul de date după care va rula instrumentul
virtual, parcurgând următoarele etape:
- se calculează produsul dintre o constantă numerica având valoarea 10 și valoarea
generată de funcția Random Number (0-1) folosind funcția Multiply (figura 2.13);

Fig. 2.13. Funcția Multiply

- pentru a trimite la terminalul de intrare al elementului indicator de tipul Tank fie valori
intervalul (MIN, MAX) fie valoarea din intervalul (0, 10) se utilizează funcția Select,
disponibilă în meniul Programming, submeniul Comparison (figura 2.14);

27
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.14. Funcția Select

- terminalul comutatorului se conectează la intrarea s a funcției Select,valoarea


aleatoare din intervalul (MIN, MAX) se conectează la intrarea t a funcției și la intrarea
f se conectează valoarea aleatoare din intervalul (0, 10) (figura 2.15).

Fig. 2.15. Diagrama aplicației

Pentru ca instrumentul virtual să semnalizeze dacă valoarea aleatoare generată se


încadrează sau nu între limitele Min și Max, se dispune în panoul frontal un element
indicator de tip Square LED din meniul Modern, submeniul Boolean și se ascunde
eticheta acestuia (figura 2.16).

28
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.16. Element de tip Sqare LED

În diagramă se dispun funcțiile necesare și se descrie fluxul de date după care va rula
instrumentul virtual, parcurgând următoarele etape:
- se verifică dacă valoarea aleatoare se afla între limitele Min și Max, folosind funcția
In Range and Coerce, disponibilă în meniul Programming, submeniul Comparison
(figura 2.17);
- pentru ca intervalul în care funcția verifică dacă valoarea aleatoare se află între
limitele Min și Max să includă și limita inferioară, din meniul contextual al funcției In
Range and Coerce, se bifează opțiunea Include Upper Limit (figura 2.18);
- se conectează ieșirea min(x,y) a funcției Max & Min la intrarea Lower limit a funcției
In Range and Coerce, ieșirea max(x,y) a funcției Max & Min se conectează la
intrarea Upper limit, valoarea aleatoare se conectează la intrarea x iar ieșirea In
Range? a funcției se conectează la terminalul elementului indicator de tip Square
LED (figura 2.19).

Fig. 2.17. Funcția In Range and Coerce

29
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.18. Funcția In Range and Coerce

Fig. 2.19. Conectarea valorilor la funcția In Range and Coerce

Pentru a putea urmări funcționarea programului in modul de rulare continuă, în


diagramă se introduce o funcție Wait (ms), disponibilă în meniul Programming,
submeniul Timing (figura 2.20)

30
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.20. Funcția Wait (ms)

Se conectează la intrarea funcției Wait (ms) o constanta numerică având valoarea 500,
pentru ca funcția Wait (ms) să întârzie transmiterea valorilor la elementul indicator cu
500 milisecunde (figura 2.21).

Fig. 2.21. Funcția Wait (ms)

În figura 2.22 sunt prezentate cele două ferestre ale aplicației, panoul frontal și fereastra
diagramă.

31
Programarea Calculatoarelor 1 - Algoritmi

Fig. 2.22. Panoul frontal și diagrama aplicației

32

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