Lucrarea 4 Functii Elementare Pentru Valori de Tip Text 2

Embed Size (px)

DESCRIPTION

Lucrarea 4 Functii Elementare Pentru Valori de Tip Text 2

Citation preview

  • Programarea Calculatoarelor 1 - Algoritmi

    40

    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.

  • Programarea Calculatoarelor 1 - Algoritmi

    41

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    42

    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.

  • Programarea Calculatoarelor 1 - Algoritmi

    43

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    44

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    45

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    46

    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.

  • Programarea Calculatoarelor 1 - Algoritmi

    47

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    48

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    49

    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).

  • Programarea Calculatoarelor 1 - Algoritmi

    50

    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

  • Programarea Calculatoarelor 1 - Algoritmi

    51

    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