Sunteți pe pagina 1din 12

Programarea Calculatoarelor 1 - Algoritmi

L4: Funcii elementare pentru valori de tip text - 2


Enunul problemei
S se realizeze un instrument virtual LabVIEW care s efectueze urmtoarele operaii
asupra unui text ce reprezint un Cod Numeric Personal (CNP):
s elimine eventualele caractere de tip spaiu (blanc) din text;
s semnalizeze dac textul are exact 13 caractere sau nu;
s afieze textul M sau F n funcie de prima cifr din text (genul persoanei);
s semnalizeze dac cifrele din text corespunztoare lunii naterii formeaz sau
nu o valoare valid, ntre 1 i 12.

Exemplu de panou

Fig. 4.1. Exemplu de panou

Descrierea funcionrii instrumentului virtual


Valoarea de intrare este textul ce reprezint Codul Numeric Personal.
Valorile de ieire sunt:
o valoare logic (boolean, Adevrat sau Fals) care indic faptul c textul are sau
nu are exact 13 caractere;
textul M sau F reprezentnd genul persoanei;
o valoare logic (boolean, Adevrat sau Fals) care indic faptul c cifrele din text
corespunztoare lunii naterii formeaz sau nu o valoare valid, ntre 1 i 12.
Pentru a permite utilizatorului s introduc valoarea de intrare ce reprezint Codul
Numeric Personal, pe panoul frontal va exista un element de control pentru texte, cu
eticheta CNP.

40

Programarea Calculatoarelor 1 - Algoritmi

Elementul de control va fi configurat astfel nct valoarea de intrare s fie actualizat la


fiecare modificare (introducere sau tergere a unui caracter), fr s fie necesar
apsarea de ctre utilizator a tastei ENTER.
De asemenea, elementul de control pentru texte va fi configurat astfel nct, dac
utilizatorul apas tasta ENTER, s nu se treac la o linie nou de text ci s se considere
c introducerea textului s-a ncheiat.
Valoarea de ieire logic referitoare la numrul de caractere va fi afiat ntr-un element
indicator boolean cu eticheta Nr. cifre, care va avea culoarea verde dac textul conine
exact 13 caractere i culoarea roie n caz contrar.
Textul reprezentnd genul persoanei va fi afiat de ctre un element indicator pentru
texte, avnd eticheta Gen.
Valoarea de ieire logic referitoare la luna naterii va fi afiat ntr-un element indicator
boolean cu eticheta Luna, care va avea culoarea verde dac cifrele din text
corespunztoare lunii naterii formeaz o valoare valid i culoarea roie n caz contrar.

Indicaii privind proiectarea interfeei cu utilizatorul


Pe panoul frontal al unui nou instrument virtual LabVIEW, se dispune un element de
control de tip text (click dreapta mouse n panoul frontal din paleta de elemente de
control se selecteaz meniul Modern submeniul Sting & Path String control)
(figura 4.2). Se introduce texul CNP n eticheta elementului de control pentru teste
conform figurii de mai jos.

Fig. 4.2. Element de control pentru texte

Pentru ca valoarea de intrare, reprezentnd textul CNP, s fie actualizat la fiecare


modificare (introducere sau tergere a unui caracter), fr s fie necesar apsarea de
ctre utilizator a tastei ENTER, din meniul contextual al elementului de control pentru
texte CNP, se bifeaz opiunea Update Value while Typing (figura 4.3).
41

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.3. Configurare element de control pentru texte

De asemenea, din meniul contextual al elementul de control pentru texte CNP se


bifeaz opiunea Limit to Single Line pentru a nu permite utilizatorului, ca la apsarea
tastei ENTER, s treac la o linie nou de text ci s se considere c introducerea
textului s-a ncheiat (figura 4.4).

Fig. 4.4: Configurare element de control pentru texte

Pe panoul frontal al instrumentului virtual LabVIEW, se dispune un element indicator


boolean (click dreapta mouse n panoul frontal din paleta de elemente de control se
selecteaz meniul Modern submeniul Boolean Round LED) (figura 4.5). Se
introduce texul Nr. cifre n eticheta elementului indicator boolean, conform figurii de mai
jos.
42

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.5: Element indicator boolean

Indicaii privind realizarea diagramei instrumentului virtual


n diagrama instrumentului virtual se dispune funcia Shearch and Replace String,
folosit pentru a elimina caracterele de tipul spaiu din textul introdus n elementul de
control pentru texte CNP (click dreapta mouse n diagram din paleta de funcii se
selecteaz meniul Programming submeniul String Shearch and Replace String)
(figura 4.6)

Fig. 4.5. Funcia Search and Replace String

Se conecteaz valoarea de tip text de la terminalul de ieire al elementului CNP, la


terminalul imput string al funciei Search and Replace String, iar la intrarea search
string, se conecteaz o constant de tip text (disponibil n paleta de funcii n meniul
String), n interiorul creia, de la tastatur, se introduce un caracter de tipul spaiu
(figura 4.6).
43

Programarea Calculatoarelor 1 - Algoritmi

Funcia Search and Replace String va cuta n textul CNP conectat la terminalul de
intrare input string caracterul de tip spaiu conectat la terminalul de intrare search
string i l va nlocui cu textul vid, existent implicit la terminalul de intrare replace
string( ).

Fig. 4.6: Funcia Search and Replace String

Pentru ca instrumentul virtual LabVIEW s nlocuiasc toate caracterele de tipul spaiu


din textul CNP cu caracter de tipul vid, la terminalul replace all? (F) al funciei Search
and Replace String se conecteaz valoarea boolean True Constant (click dreapta
mouse n diagram din paleta de funcii se selecteaz meniul Programming
submeniul Boolean True Constant ) (figura 4.7).

Fig. 4.7. True Constant

Se determina numrul de caractere din textul CNP fr caractere, obinut la terminalul


de ieire result string al funciei Search and Replace String, folosind funcia Stringh
Lenght (click dreapta mouse n diagram din paleta de funcii se selecteaz meniul
Programming submeniul String String Lenght) (figura 4.8).
44

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.8. Stringh Lenght

Valoarea numeric obinut la terminalul de ieire al funciei Stringh lenght se compar


cu ajutorul funciei Equal? (click dreapta mouse n diagram din paleta de funcii se
selecteaz meniul Programming submeniul Comparison Equal?) cu valoarea
numeric 13 (figura 4.9).

Fig. 4.9: Equal?

Valoarea logic referitoare la numrul de caractere oinut la terminalul de ieire al


funciei Equal? se conecteaz la terminalul elementului indicator boolean cu eticheta
Nr. cifre, care va avea culoarea verde dac textul conine exact 13 caractere i
culoarea roie n caz contrar (figura 4.10).

45

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.10: Diagrama i panoul aplicaiei

Pentru a afia textul reprezentnd genul persoanei, se dispune pe panoul instrumentului


virtual LabVIEW un element indicator pentru texte texte (click dreapta mouse n panoul
frontal din paleta de elemente de control se selecteaz meniul Modern submeniul
Sting & Path String indicator) i se introduce n eticheta acestuia textul Gen (figura
4.11).

Fig. 4.10. Element indicator pentru valori text

n diagrama instrumetnului virtual LabVIEW, se dispune funcia String Subset (click


dreapta mouse n diagram din paleta de funcii se selecteaz meniul Programming
submeniul String String Subset) (figura 4.11) folosit pentu a extrage primul
caracter din textul CNP fr spaii.

46

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.11. Funcia String Subset

Se conecteaz valoarea de tip text obinut la terminalul de ieire result sting al funciei
Search and Replace String, la terminalul string al funciei String Subset care va
returna la terminalul de ieire substring un text care va conine un numr de caractere
a crui valoare va fi specificat la intrarea lenght, ncepnd cu poziia caracterului din
text specificat la intrarea offset (0). Valoarea existent la terminalul de intrare
offset(0) al funciei String Subset fiind implicit zero, la acest terminal nu este necesar
conectarea unei valori numerice deoarece textul reprezentnd numrul genului se afl
chiar pe prima poziie n textul CNP. La terminalul de intrare lenght funciei String
Subset se conecteaz valoarea numeric unu (figura 4.12).

Fig. 4.12. Funcia String Subset

Valoarea de tip text obinut la terminalul substring al funciei Strig Subset se


transform n valoare de tip numeric utiliznd funcia Decimal Strig to Number
disponibil n meniul Programming al paletei de funcii, submeniul String String /
Number Conversion Decimal Strig to Number (figura 4.13).
47

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.13. Funcia Decimal String To Number

Valoarea numeric obinut la terminalul number al funciei Decimal Strig to Number


se mparte la doi folosind funcia Quotient &Remainder. Restul mpririi este
comparat cu valoarea zero folosind funcia Not Equal To 0? (figura 4.14).

48

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.14

Pentru a afia textul M sau F n elementul indicator pentru texte Gen, se folosete
funcia Select (figura 4.15) disponibil n paleta de funcii n meniul Comparison.

Fig. 4.15. Funcia Select

Valoarea boolean de la terminalul de ieire al funcie Not Equal To 0? se conecteaz


la intrarea s a funciei Select. La intrarea t a funciei Select se conecteaz o constant
text n care se introduce litera M, iar la intrarea f, se conecteaz o constant text n
care se introduce litera F. Valoarea obinut la terminalul de ieire din funcia Select se
conecteaz la terminalul de intrare al elementului indicator pentru texte denumit Gen.
(figura 4.16).

49

Programarea Calculatoarelor 1 - Algoritmi

Fig. 4.16. Diagrama i panoul aplicaiei

Pentru ca instrumentul virtual LabVIEW s semnalizeze dac cifrele din text


corespunztoare lunii naterii formeaz sau nu o valoare valid, ntre 1 i 12, pe panoul
frontal al instrumentului se dispune un elemente de indicator boolean (click dreapta
mouse n panoul frontal din paleta de elemente de control se selecteaz meniul
Modern submeniul Boolean Round LED) (figura 4.17). Se introduce texul Luna n
eticheta elementului indicator boolean, conform figurii de mai jos.

Fig. 4.17. Element indicator boolean

Pentru a extrage din textul CNP cele dou caractere reprezentnd luna naterii, se
conecteaz valoarea de tip text obinut la terminalul de ieire result sting al funciei
Search and Replace String, la terminalul string al funciei String Subset. La
terminalul de intrare offset(0) al funciei String Subset se conecteaz valoarea
numeric trei, iar la terminalul de intrare lenght funciei String Subset se conecteaz
valoarea numeric doi. Valoarea de tip text obinut la terminalul substring al funciei
Strig Subset se transform n valoare de tip numeric utiliznd funcia Decimal Strig to
Number. Valoarea numeric obinut la terminalul number al funciei Decimal Strig to
Number se verific dac aparine intervalului [1,12] folosind funcia In Range and
Coerce (disponibila n meniul Comparison al paletei de funcii). Valoarea boolean de
50

Programarea Calculatoarelor 1 - Algoritmi

la ieirea In Range? a funciei In Range and Coerce se conecteaz la terminalul de


intrare al elementului indicator boolean Luna (figura 4.18).

Fig. 4.18. Diagrama i panoul aplicaiei

51

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