Sunteți pe pagina 1din 98

Capitolul 1 MEDIUL DE PROGRAMARE LabVIEW

Introducere
1.1 Notiuni introductive .................................................................7
1.1.1 Lansarea mediului de programare graficaLabVIEW...7
1.1.2 Desciderea unei noi aplicatii....!
1.1." #erestrele principale ale unei aplicatii..$
1.1.% Elemente de control si indicatoare...1&
1.1.' (aleta de controale...1&
1.1.) Dispunerea elementelor pe panou....11
1.1.7 (aleta de unelte....12
1.1.! Elemente de control si indicatoare pentru valori scalare.1%
1.1.$ *erminalele elementelor......1'
1.1.1& (aleta de functii...1)
1.1.11 #ereastra +elp......17
1.1.12 #unctii pentru valori numerice.1!
1.1.1" #unctii pentru valori booleene.1$
1.1.1% #unctii pentru valori alfanumerice ,string-..1$
1.1.1' Inserarea simbolurilor de functii in diagrama......2&
1.1.1) .eali/area legaturilor in diagrama...21
1.1.17 #lu0ul de date......22
1.1.1! (rincipalele moduri de rulare a unei aplicatii..........................................2"
1.1.1$ 1alvarea unei aplicatii..2%
1.2 #unctii pentru valori scalare
1.2.1 #unctii pentru valori numerice.27
1.2.2 #unctii u/uale pentru valori alfanumerice...."&
1.2." #unctii aditionale pentru valori alfanumerice..."1
1.2.% #unctii pentru comparatii..""
1.2.' #unctii pentru lucrul cu valori data2timp si de dialog..............................."'
1." 3eniuri proprii si designul elementelor
1.".1 3eniuri proprii in panou..."$
1.".2 3eniui proprii in diagrama.......................................................................%&
1."." 3oduri de repre/entare a valorilor numerice............................................%1
1.".% 3eniuri proprii specifice elementelor numerice.......................................%"
1.".' 3eniuri proprii specifice elementelor cu scala.........................................%'
1.".) 3eniuri proprii specifice elementelor booleene......%)
1.".7 3eniuri proprii specifice elementelor alfanumerice.%7
1.".! 3odificarea fontului unor elemente......%!
1.".$ 4rdonarea elementelor panoului si a diagramei%$
1.".1& 3odificarea scalei sau cursorului unor componente.................................'&
1.".11 Variabile locale..'1
1.".12 Noduri de proprietati.....'"
1.% 1tructuri de programare
1.%.1 Inserarea in diagrama a structurilor de programare
1.%.2 1tructura secventiala ,Sequence-
1.%." 1tructura cau/ala ,Case-
1.%.% 1tructura repetitiva cu numar fi0 de iteratii ,bucla For-
1.%.' 1tructura repetitiva cu conditie de terminare ,bucla While-
1.%.) .egistri de transfer in structuri repetitive
1.' #unctii pentru valori vectoriale ,5rra6-
1.'.1 Definirea tipului de date al unui Array
1.'.2 Definirea valorilor si a numarului de valori vi/ibile
1.'." Definirea numarului de dimensiuni
1.'.% 7onstruirea Array2urilor in diagrama
1.'.' #unctii informative
1.'.) #unctii de ordonare
1.'.7 #unctii de modificare
1.'.! Elementele Array si structurile repetitive
1.'.$ 5lte functii pentru elemente Array
1.6 Date de tip Cluster
1.).1 Elemente de tip Cluster
1.).2 3eniul propriu al elementelor de tip Cluster
1.)." #unctii pentru elemente de tip Cluster ,1-
1.).% #unctii pentru elemente de tip Cluster ,2-
1.7 Reprezentari grafice
1.7.1 Elemente pentru repre/entari grafice
1.7.2 Elementul Waefor! Chart
1.7." Elementul Waefor! "raph
1.7.% Elementul #$ "raph
1.7.' 4ptiuni specifice elementelor pentru repre/entari grafice
1.7.) 4ptiuni specifice elementelor de tip Chart
1.7.7 4ptiuni specifice elementelor de tip "raph si #$ "raph
1.7.! Elemente si functii de tip %icture
1.7.$ 8tili/area functiilor de tip %icture
1.& 'le!ente (ist)o*+ ,a-le si Ring
1.!.1 3eniuri pentru elemente (ist)o*9 ,a-le si Ring
1.!.2 *ipul de date
1.!." Definirea itemilor unui element (ist-o*
1.!.% 1electii multiple
1.1 Notiuni introductive
1.1.1 Lansarea mediului de programare graficaLabVIEW
(entru a lansa mediul de programare grafica (a-./'W9 efectuati urmatorii pasi:
(a-./'W poate fi de asemenea lansat si alegand din meniul %rogra!s optiunea 0ational
/nstru!ents9 apoi alegand din submeniul (a-./'W 6.1 optiunea (a-./'W.
#igura 2
apasati butonul Start9
aflat in coltul stanga2;os
al ecranului<
dupa desciderea
meniului9 prin
desfasurarea acestuia in
sus9 deplasati cursorul
mouse2ului deasupra
optiunii %rogra!s<
asteptati desciderea
unui submeniu9 prin
desfasurare in dreapta si
in sus9 deplasati
cursorul mouse2ului
deasupra optiunii
0ational /nstru!ents
(a-./'W 6i si apasati
butonul stang al mouse2
ului.
#igura 1
Dupa lansare9 asteptati pana la aparitia ferestrei introductive.
#igura "
1.1.2 Desciderea unei noi aplicatii
5plicatiile ,programele- reali/ate in (a-./'W poarta denumirea de /nstru!ente
.irtuale ,in engle/a9 .irtual /nstru!ents9 prescurtat ./-. Denumirea provine de la faptul ca9
in primele sale versiuni9 (a-./'W a fost strict dedicat pentru reali/area unor programe de
monitori/are a proceselor. (rogramele respective inlocuiau o serie de aparate si instrumente
electronice 2 de unde si motto2ul corporatiei 0ational /nstru!ents1 ,he soft2are is the
instru!ent = primind astfel denumirea de /nstru!ente .irtuale
La aparitia ferestrei introductive (a-./'W9 apasati butonul 0e2 ./ pentru a descide
o noua aplicatie ,figura"-. Dupa apasarea butonului 0e2 ./9 se vor descide cele doua
ferestre principale ale unei noi aplicatii (a-./'W.
#igura %
1.1." #erestrele principale ale unei aplicatii
4 aplicatie ,program- (a-./'W contine doua ferestre principale9 fereatra panou si
fereastra diagra!a.
Panoul repre/inta interfata grafica cu utilizatorul, fereastra pe care utilizatorul o va vedea atunci
cand va accesa aplicatia realizata. Prin intermediul elementelor de pe panou, aplicatia primeste
datele de intrare si afiseaza apoi datele de iesire ce au rezultat in urma rularii.

#igura'
Diagra!a este fereastra in care programatorul descrie algoritmul dupa care aplicatia
va efectua calculele si rationamentele necesare pentru prelucrarea informatiilor. In ma;oritatea
ca/urilor9 dupa ce programatorul a reali/at o aplicatie si a livrat2o unui utili/ator9 acesta din
urma nu mai are acces la diagrama
#igura )
1.1.% Elemente de control si indicatoare
'le!entele de control sunt acele componente ale panoului prin intermediul carora
utili/atorul poate transmite date de intrare catre program.
'le!entele indicatoare sunt acele componente ale panoului prin intermediul carora
programul afisea/a datele de iesire calculate in urma rularii sale.
1.1.' (aleta de controale
%aleta de controale este o fereastra ce poate apare doar atunci cand se lucrea/a in cadrul
panoului si contine sub2palete cu ele!ente de control si indicatoare de diverse tipuri.
5fisarea paletei de controale se poate efectua in doua moduri:
apasand butonul din dreapta al mouse2ului atunci cand cursorul acestuia este intr2o
/ona libera a panoului<
selectand9 din meniul Windo2s9 comanda Sho2 Controls %alette
Figura
In primul ca/9 sub2paletele se descid automat atunci cand cursorul mouse2ului trece pe
deasupra lor iar paleta ramane vi/ibila doar pana la selectarea unui element. In al doilea ca/9 o
sub2paleta se descide ,inlocuind paleta de controale- doar cand se face un clic> pe simbolul
sau. (aleta ramane vi/ibila si dupa selectarea unui element.
#igura !
1.1.) Dispunerea elementelor pe panou
1. Dispunerea unui ele!ent de control sau indicator pe panou incepe cu selectarea
elementului dorit din paleta de controale.
2. Dupa selectarea elementului9 se deplasea/a cursorul mouse2ului pana in po/itia de pe panou
in care se doreste dispunerea. 5tat timp cat cursorul mouse2ului este deplasat pe panou9
elementul va fi repre/entat doar prin conturul sau si al eticetei.
7and se a;unge in po/itia dorita9 se face clic> cu unul dintre butoanele mouse2ului.
". 1e reali/ea/a astfel dispunerea elementului pe panou9 cu o eticeta implicita care intra
automat in modul de editare. 1e poate incepe imediat introducerea te0tului dorit in eticeta.
%. Daca introducerea te0tului dorit in eticeta nu s2a efectuat imediat dupa dispunerea
elementului pe panou si eticeta implicita a iesit din modul de editare9 se poate reveni in acest
mod prin selectarea uneltei de editare te*te si apoi printr2un clic> pe eticeta respectiva.
Figura 3
'#'RC/,/4
Din sub2paleta 0u!eric a paletei de controale9 dispuneti pe panou un element de tipul
.ertical %ointer Slide si un element de tipul 5eter.
#igura 1&
1.1.7 (aleta de unelte
%aleta de unelte este o fereastra ce poate apare atat in cadrul panoului cat si al
diagra!ei.
5fisarea paletei de controale se poate efectua selectand9 din meniul Windo2s9 comanda Sho2
,ools %alette.
7ele mai importante unelte din aceasta paleta sunt acelea pentru:
#igura 11
5fisarea ?temporara? a paletei de unelte intr2o forma simplificata poate fi efectuata
tinand apasata tasta Shift si apasand apoi butonul drept al mouse2ului.
(aleta va deveni vi/ibila doar pana in momentul selectarii uneia dintre uneltele sale.
5ctivarea optiunii Auto!atic ,ool Selection ,LED2ul verde al
paletei de unelte- conduce la selectarea automata a unei unelte9 in
functie de conte0tul in care se afla aplicatia si de po/itia cursorului
mouse2ului in raport cu componentele din panou sau diagrama.
'#'RC/,//
7u unealta de selectare9 deplasati cele doua elemente dispuse anterior pe panou ,clic>
pe element9 apoi deplasati mouse2ul tinand butonul stang apasat-
4bservati diferenta dintre a face clic> ciar pe element ,acesta se misca impreuna cu
eticeta sa- si a face clic> pe eticeta ,eticeta se deplasea/a in raport cu elementul-
7u aceeasi unealta9 modificati dimensiunile elementelor:
1. (o/itionati cursorul mouse2ului pe un colt al elementului9 astfel incat in cele patru
colturi ale acestuia sa apara simboluri de forma unui ecer dublu
2. 5pasati butonul stang si deplasati mouse2ul tinand butonul apasat. 4bservati aparitia
unui indicator galben cu dimensiunile elementului.
#igura 12
1electati ambele elemente trasand cu mouse2ul un dreptungi imaginar care sa le
includa pe acestea ,clic> intr2o /ona libera a panoului9 apoi deplasati mouse2ul tinand
butonul apasat: pe ecran va apare un dreptungi cu linie intrerupta-
1electati un element9 apoi apasati tasta Delete: elementul va fi sters. (entru a anula
comanda9 apasati combinatia de taste Ctrl 6 7 ,4ndo-
7u unealta de operare9 modificati valorile celor doua elemente tragand cu mouse2ul
de cursorul potentiometrului sau de acul indicatorului.
7u aceeasi unealta sau cu cea de editare a te*telor9 modificati valorile de la capetele
de scara ale elementelor.
1electati unealta de deplasare a i!aginii si e0ersati lucrul cu aceasta.
5ctivati optiunea Auto!atic ,ool Selection a paletei de uneltesi observati modul in
care uneltele de selectare9 de operare si de editare a te0telor se activea/a atunci cand
mouse2ul este deasupra unui element9 a cursorului sau acului acestuia sau deasupra
scalei sau eticetei elementului.
7u optiunea Auto!atic ,ool Selection de/activata9 atat in panou cat si in diagrama9
observati modul in care sunt selectate diverse unelte atunci cand se apasa tastele Space
sau ,a-.
1.1.! Elemente de control si indicatoare pentru valori scalare
(rincipalele trei tipuri de ele!ente de control si indicatoare pentru valori scalare
sunt:
u!erice
-ooleene,logice-
alfanu!erice ,te0te9 string9 siruri de caractere-
(entru fiecare din cele trei tipuri principale9 paleta de controale contine cate o
subpaleta specifica9 cu diverse forme de elemente.
#igura1"
'#'RC/,//
Din subpaleta pentru elemente booleene9
introduceti pe panou un element de tipul
.ertical ,oggle S2itch si un element de
tipul Round ('D
Din subpaleta pentru elemente alfanumerice
,String 8 %ath-9 introduceti pe panou un
element de tipul String Control si un
element de tipul String /ndicator.
Descideti o aplicatie noua selectand
comanda 0e2 ./ din meniul File ,sau
apasand combinatia de taste Ctrl 6 0-.
Dispuneti pe panoul acesteia diverse tipuri de
elemente de control si indicatoare pentru
valori numerice si e0ersati modificarea
valorilor acestora cu unealta de operare.
Incideti noul program inci/and panoul
acestuia ,inciderea diagramei nu are decat
efect de ascundere a acesteia- si raspun/and
0o la intrebarea Sae changes to 9....9 :
#igura 1'
#igura 1%
1.1.$ *erminalele elementelor
5tunci cand un element de control sau indicator este dispus in panou9 in diagra!a
este inserat auto!at un si!-ol9 numit ter!inal9 ce va repre/enta elementul respectiv in
cadrul flu0ului de date. *erminalele elementelor se diferentia/a prin culoare9 in functie de tipul
marimii scalare:
portocaliu pentru valori numerice reale
erde pentru valori booleene
roz pentru valori alfanumerice ,string-
De remarcat faptul ca:
terminalele elementelor de control au contur gros si o sageata neagra mica in
partea dreapta
terminalele elementelor indicatoare au contur subtire si o sageata neagra mica
in partea stanga

#igura 1)
'#'RC/,//
Identificati in diagrama terminalele elementelor pe care le2ati dispus pe panou.
In diagrama9 folosind unealta de selectare9 deplasati terminalele elementelor ca in
figura de mai sus.
1.1.1& (aleta de functii
%aleta de functii este o fereastra ce poate apare doar atunci cand se lucrea/a in cadrul
diagra!ei si contine sub2palete cu diverse categorii de functii9 proceduri sau structuri
specifice de programare. 5fisarea paletei de functii se poate efectua in doua moduri:
apasand butonul din dreapta al mouse2ului atunci cand cursorul acestuia este intr2o
/ona libera a diagramei<
selectand9 din meniul Windo2s9 comanda Sho2 Functions %alette.
#igura 17 #igura 1!
In primul ca/9 sub2paletele se descid automat atunci cand cursorul mouse2ului trece pe
deasupra lor iar paleta ramane vi/ibila doar pana la selectarea unei functii
In al doilea ca/9 o sub2paleta se descide ,inlocuind paleta de functii- doar cand se face
un clic> pe simbolul sau. (aleta ramane vi/ibila si dupa selectarea unei functii.
'#'RC/,/4
In diagrama aplicatiei9 afisati paleta de functii prin fiecare din cele doua moduri
indicate mai sus si navigati prin sub2paletele acesteia.
1.1.11 #ereastra +elp
1electarea9 in panou sau in diagrama9 din meniul ;elp9 a comen/ii Sho2 Conte*t
;elp9 conduce la desciderea unei ferestre in care sunt afisate automat informatii a;utatoare.
Desciderea sau inciderea ferestrei ;elp pot fi comandate si prin apasarea combinatiei de
taste Ctrl 6 ;
5tunci cand utili/atorul descide paleta de functii si navigea/a prin subpaletele
acesteia9 in fereastra ;elp apar informatii referitoare la functia corespun/atoare simbolului
deasupra caruia este po/itionat cursorul mouse2ului.
#igura 1$ #igura 2&
De asemenea9 daca un simbol de functie a fost de;a dispus in diagrama iar cursorul
mouse2ului este po/itionat deasupra sa9 in fereastra ;elp apar informatii referitoare la functia
respectiva.
#igura 21
'#'RC/,/4
E0ersati desciderea si inciderea ferestrei ;elp prin modurile descrise mai sus. 7u
fereastra ;elp descisa9 navigati prin paleta de functii si observati modul in care informatiile
a;utatoare se modifica atunci cand cursorul mouse2ului trece pe deasupra diverselor simboluri
de functii.
1.1.12 #unctii pentru valori numerice
#unctiile pentru valori numerice sunt grupate in subpaleta 0u!eric a paletei de
functii 1e remarca o prima categorie9 dedicata functiilor aritmetice simple: adunare ,Add-9
scadere ,Su-tract-9 inmultire ,5ultiply-9 impartire ,Diide-9 incrementare ,/ncre!ent-9
decrementare ,Decre!ent-9 valoare absoluta ,A-solute .alue-9 rotun;ire la cel mai apropiat
intreg ,Round ,o 0earest-9 rotun;ire la intregul inferior ,Round ,o </nfinity-9 rotun;ire la
intregul superior ,Round ,o 6/nfinity-9 radacina patrata ,Square Root-9 scimbare de semn
,0egate-9 produsul dintre o valoare * si o putere a lui 2 ,Scale )y %o2er =f >-9 inversare
,Reciprocal-.
In subpaleta 0u!eric se gaseste de asemenea elementul 0u!eric Constant
,constanta numerica-. 5tunci cand un astfel de element este dispus in diagrama9 el capata
automat valoarea & si intra in modul de editare9 asteptand ca utili/atorul sa introduca valoarea
numerica dorita. Daca9 imediat dupa dispunerea in diagrama9 in loc de a introduce o valoare in
element9 utili/atorul efectuea/a alta operatie9 o alta valoare constanta poate fi specificata
utili/and unealta de operare sau pe cea de editare a te0telor.

#igura 22
'#'RC/,/4
In subpaleta 0u!eric a paletei de functii9 identificati functiile aritmetice simple
enumerate mai sus. (e parcursul navigarii in paleta de functii9 urmariti descrierea functiilor in
fereastra ;elp.
1.1.1" #unctii pentru valori booleene
#igura2"
#unctiile pentru valori booleene sunt
grupate in subpaleta )oolean a paletei de
functii. 1e remarca functiile logice simple 1I
,And-9 158 ,=r-9 158 E@7L81IV
,'*clusie =r-9 NEA5.E ,0ot-9 1I NEA5*
,0ot And-9 158 NEA5* ,0ot =r-9 158
NEA5* E@7L81IV ,0ot '*clusie =r- si
I3(LI75 ,/!plies-. 1ubpaleta contine de
asemenea9 in partea inferioara9 cele doua
constante logice: 5DEV5.5* ,,rue- si
#5L1 ,False-.
'#'RC/,/4
1.1.1% #unctii pentru valori alfanumerice ,string-

'#'RC/,/4
In subpaleta String a paletei de functii9 identificati functiile si constanta alfanumerica
enumerate mai sus. (e parcursul navigarii in paleta de functii9 urmariti descrierea functiilor in
fereastra ;elp.
1.1.1' Inserarea simbolurilor de functii in diagrama

Daca9 in timpul deplasarii9 simbolul functiei este trecut suficient de aproape de un
terminal sau de o /ona a flu0ului de date la care se poate efectua o legatura9 acea legatura este
stabilita automat. Daca simbolul functiei este indepartat9 in cursul deplasarii9 de /ona sau
In subpaleta )oolean a paletei de
functii9 identificati functiile logice simple si
constantele logice enumerate mai sus. (e
parcursul navigarii in paleta de functii9
urmariti descrierea functiilor in fereastra
;elp. Functii pentru alori alfanu!erice
?string@ #unctiile pentru valori alfanumerice
sunt grupate in subpaleta String a paletei de
functii. (rintre cele mai simple se numara
cele pentru transformarea caracterelor in
ma;uscule ,,o 4pper Case- si pentru
transformarea caracterelor in minuscule ,,o
(o2er Case-. In partea sa inferioara9
subpaleta contine un element String
Constant pentru introducerea in diagrama
de valori alfanumerice constante.
#igura 2%
Dispunerea unei functii in diagra!a incepe cu
selectarea simbolului corespun/ator din paleta de functii.
Dupa selectarea simbolului functiei9 se deplasea/a cursorul
mouse2ului pana in po/itia din diagrama in care se doreste
dispunerea.
5tat timp cat cursorul mouse2ului este deplasat9 simbolul
functiei va fi repre/entat impreuna cu terminalele
corespun/atoare datelor proprii de intrare si de iesire
#igura 2'
terminalul respectiv9 legatura stabilita automat dispare. Daca nu se doreste efectuarea automata
a unei legaturi9 se apasa tasta Space in timp ce butonul mouse2ului este apasat.


.
E!ERCI"IU
Din subpaleta 0u!eric a paletei de functii9 introduceti in diagrama o functie Add si
po/itionati2o ca in figura9 intre terminalele celor doua elemente numerice.
Introduceti de asemenea in diagrama un element de tipul 0u!eric Constant si
stabiliti2i acestuia valoarea >.
Din subpaleta )oolean9 introduceti in diagrama o functie 0ot si po/itionati2o intre
terminalele celor doua elemente booleene.
Din subpaleta String9 introduceti in diagrama o functie ,o 4pper Case si po/itionati2o
intre terminalele celor doua elemente alfanumerice.
Dupa po/itionarea simbolurilor de functii in diagrama9 descideti fereastra ;elp si
afisati in aceasta informatiile referitoare la fiecare functie prin deplasarea mouse2ului
deasupra simbolului corespun/ator.
1.1.1) .eali/area legaturilor in diagrama
#igura 2)

#igura 27
7and simbolul functiei a;unge in po/itia dorita9 se face
clic> cu unul dintre butoanele mouse2ului. Daca in acel moment
e0ista o legatura stabilita automat9legatura respectiva se
pastrea/a.
1. 1e deplasea/a cursorul mouse2ului ,unealta de conectare-
deasupra primei componente ,aceasta va incepe sa clipeasca- si
se face clic>. 5ctiunea este ecivalenta cu prinderea unui capat
al firului de componenta respectiva.
Din acest moment9 daca mouse2ul este deplasat9 pe ecran va
apare imaginea unui fir cu un capat fi0at de prima componenta
si cu un capat legat de cursorul mouse2ului.
.eali/area unei legaturi intre doua componente
ale diagramei se efectuea/a cu a;utorul uneltei de
conectare. 4rdinea in care se selectea/a cele doua
componente ,sursa si destinatia- nu este importanta.
Legatura poate fi reali/ata in orice sens9 deoarece
mediul de programare va identifica automat sursa si
destinatia pentru a stabili sensul de circulatie al datelor.

#igura 2!
#igura 2$

#igura "&

#igura "1
#igura "2
E!ERCI"II
>. 1e deplasea/a cursorul mouse2ului deasupra celei de2a doua
componente ,si aceasta va incepe sa clipeasca- si se face clic>9
fi0and astfel al doilea capat al firului de aceasta componenta.
=-s. 1: Daca9 la un moment dat9 firul care urmea/a mouse2ul are
un sens ,orar sau trigonometric- neconvenabil9 sensul poate fi
scimbat prin apasarea tastei blanc ,spatiu-.
=-s. >: Daca se doreste ca traseul unei legaturi sa fie format din
mai multe portiuni in ungi drept9 un clic> intr2un punct din
diagrama va fi ecivalent cu fi0area firului in acel punct.
=-s. A: Daca o componenta a diagramei are rol de sursa pentru
un traseu ramificat9 se pot efectua legaturi care sa aiba drept
punct de pornire un segment al flu0ului de date.
=-s. B1 Daca o legatura a fost efectuata corect9 ea va fi afisata in
culoarea corespun/atoare tipului de date ce vor circula prin /ona
respectiva a flu0ului de date.
Daca legatura este incorecta ,conectea/a doua componente de
tipuri diferite-9 aceasta va fi afisata cu culoarea neagra si
intrerupta.
8tili/and unealta de conectare9 reali/ati legaturile din
figura. alaturata. 4bservati ca9 similar terminalelor9
legaturile din diagrama au culori ce semnficia tipul
datelor scalare corespun/atoare ,portocaliu pentru
numere reale9 albastru pentru numere intregi9 verde
pentru valori booleene9 ro/ pentru valori alfanumerice-.
5stfel9 atunci cand programul va rula9 indicatorul
5eter va afisa suma dintre valoarea controlului Slide
si constanta >9 indicatorul )oolean > va afisa valoarea
logica negata a controlului )oolean9 iar indicatorul
String > va afisa te0tul din controlul String
transformat in ma;uscule.
Descideti fereastra ;elp9 selectati unealta de
conectare si po/itionati cursorul mouse2ului deasupra
unei legaturi astfel incat aceasta sa ?clipeasca?.
4bservati ca9 in aceasta situatie9 in fereastra ;elp sunt
afisate informatii referitoare la tipul de valori ce circula
prin legatura respectiva
#igura ""
1.1.17 #lu0ul de date
Flu*ul de date este format din totalitatea legaturilor ce conectea/a diversele terminale
de elemente9 simboluri de functii sau proceduri si structuri de programare din cadrul
diagra!ei. .olul flu0ului de date este acela de reprezentare grafica a algorit!ului dupa
care aplicatia va prelucra datele de intrare pentru a calcula alorile de iesire. *raseele ce
formea/a flu0ul de date pot fi simple9 cu o sursa si o destinatie9 sau ramificate9 cu o sursa si
mai multe destinatii.
1.1.1! (rincipalele moduri de rulare a unei aplicatii
Barele de butoane ale panoului si diagramei contin o serie de elemente ce permit stabilirea
modului de rulare a unui program.
#igura "'

Indiferent de modul sau sensul in
care traseele sunt dispuse pe
diagrama9 ?circulatia? datelor in
cadrul flu0ului se efectuea/a doar
de la surse catre destinatii.
(rin sursa se intelege9 de
e0emplu9 terminalul unui element
de control9 simbolul unei
constante sau /ona de iesire a
unei functii sau proceduri.
(rin destinatie se intelege9 de
e0emplu9 terminalul unui element
indicator sau /ona de intrare a
unei functii sau proceduri.
#igura "%
5pasarea butonului Run va conduce la rularea o singura
data a programului. Va fi parcurs intreg flu0ul de date din
diagrama9 dupa care programul se va opri.
In timpul rularii programului9 butonul Run isi scimba forma si se
aprinde un buton A-ort e*ecution.
5pasarea acestui din urma buton in timpul rularii va determina
intreruperea acesteia.
#igura ")

#igura "7
.

#igura "!
.
#igura "$
#igura %&
'#'RC/,//
In panoul aplicatiei pe care ati reali/at2o9 cu unealta de operare9 modificati valoarea
elementului de control Slide9 scimbati po/itia controlului )oolean si introduceti un te0t
format din minuscule in controlul String. 5pasati sageata Run pentru a rula programul.
1cimbati din nou po/itia controlului )oolean si apasati din nou sageata Run.
5pasarea butonului Run Continuously va conduce la
rularea repetata9 fara oprire9 a programului. (e parcursul acestui
mod de rulare9 isi scimba forma atat butonul Run Continuously
cat si butonul Run9 si se aprinde de asemenea butonul A-ort
e*ecution. Intreruperea rularii nu are loc decat la comanda
utili/atorului9 prin apasarea butonului A-ort e*ecution.
5tat pe parcursul rularii simple cat si pe cel al rularii
continui9 utili/atorul are posibilitatea de a suspenda rularea prin
apasarea butonului %ause. 5pasarea acestui buton ii scimba
forma si il transforma in butonul Continue9 prin a carui apasare se
comanda reluarea unei rulari suspendate.
Daca9 atunci cand rularea este suspendata9 se trece in
fereastra diagrama9 programul semnali/ea/a prin aprindere
intermitenta /ona ce era in curs de e0ecutie atunci cand s2a
comandat suspendarea
In diagrama9 atunci cand rularea este suspendata9
utili/atorul are posibilitatea de a continua rularea pas cu pas9
utili/and setul de trei butoane din dreapta.
In orice mod de rulare9 prin apasarea butonului ;ighlight
'*ecution9 utili/atorul are posibilitatea de a urmari o animatie ce
sugerea/a deplasarea valorilor prin flu0ul de date.
5tunci cand o valoare paraseste o componenta a diagramei ce este
o sursa a unei legaturi9 valoarea respectiva este afisata in diagrama.
5pasati butonul Run Continuously si9 in timp ce programul rulea/a in modul
continuu9 modificati valoarea elementului de control Slide9 scimbati po/itia
controlului )oolean si modificati te0tul dn controlul String.
5pasati butonul %ause. .ularea programului se va suspenda temporar9 aplicatia va
trece automat in diagrama si va indica prin aprindere intermitenta locul din diagrama in
care programul s2a oprit.
5pasati butonul ;ighlight '*ecution9 apoi butonul Step =er. 4bservati afisarea in
diagrama a valorilor de iesire din functii.
?1tingeti? butonul Continue ,cel care avea initial eticeta %ause-. 4bservati afisarea in
diagrama a modului in care valorile circula pe flu0ul de date al programului.
?1tingeti? butonul ;ighlight '*ecution si intrerupeti rularea continua prin apasarea
butonului A-ort e*ecution.
1.1.1$ 1alvarea unei aplicatii


5tat timp cat inca nu a fost salvat intr2un
fisier9 un program are numele 4ntitled urmat de
un numar de ordine. (entru a specifica folder2ul in
care programul sa fie salvat9 precum si numele
fisierului9 se alege din meniul File optiunea Sae
As...
#igura %1
In urma selectarii
comen/ii Sae As...9
programul descide o fereastra
de dialog in care utili/atorul
poate selecta folder2ul in care
sa se efectue/e salvarea si
numele fisierului.
%R="RA5'('
R'A(/7A,' /0 5'D/4(
D' %R="RA5AR'
"RAF/CA (a-./'W S'
SA(.'A7A /0 F/S/'R'
C4 '#,'0S/A ./ C


#igura %2

'#'RC/,//
(e discul D al computerului9 in directorul 4tilizatori9 subdirectorul CCD9 creati un
subdirector cu numele Dvs. (entru informatii suplimentare despre aceasta etapa9 apasati A/C/
,5tentie9 se va descide o noua fereastra Internet E0plorer pe care o puteti incide ulterior-
1alvati aplicatia pe care ati reali/at2o in subdirectorul propriu C
,'5A
1. .eali/ati un program pentru calculul ariei si perimetrului unui cerc9 in functie de valoarea
ra/ei introdusa de catre utili/ator
>. .eali/ati un program pentru calculul ariei si perimetrului unei elipse9 in functie de valorile
introduse de catre utili/ator pentru cele doua semia0e
A. .eali/ati un program care sa e0emplifice utili/area diverselor functii booleene
B. .eali/ati un program pentru re/olvarea ecuatiei de gradul al doilea
Din momentul in care a fost salvat prima data9
programului i se afisea/a numele atat in bara superioara
a panoului cat si in cea a diagramei.
Daca9 dupa salvare9 programului i se aduc in continuare
modificari9 langa numele acestuia apare un asterisc ,D-9
semnali/and astfel faptul ca versiunea ce a fost salvata
nu este cea mai recenta
(entru a salva un program care are de;a o locatie si un
nume stabilite9 este suficient sa se apese combinatia de
taste Ctrl si S sau sa se selecte/e comanda Sae din
meniul File.
7omanda Sae As... se poate folosi daca se doreste
salvarea unei noi versiuni a fisierului intr2o noua locatie
sau cu un nou nume.
#igura %"
E. .eali/ati un program pentru calculul inaltimii ma0ime si al distantei parcurse pe ori/ontala
in ca/ul aruncarii oblice
1.2 #unctii pentru valori scalare
1.2.1 #unctii pentru valori numerice
(e langa functiile aritmetice simple descrise in lectia anterioara9 subpaleta 0u!eric a
paletei de functii contine9 in /ona sa principala9 si urmatoarele functii:
Fuotient 8 Re!ainder calculea/a
catul si restul impartirii valorii conectate la
intrarea @ la valoarea conectata la intrarea D
#igura %%
Co!pound Arit!etic ,disponibila si in
subpaleta )oolean a paletei de functii- permite
efectuarea operatiilor de adunare ,Add- sau inmultire
,5ultiply-9 sau a operatiilor logice S/ ,A0D-9 SA4
,=R- sau SA4 '#C(4S/. ,#=R-9 asupra unui
numar variabil de valori de intrare.
Numarul de intrari este stabilit de catre utili/ator prin
?dimensionarea? simbolului functiei astfel:
se plasea/a cursorul mouse2ului la mi;locul
uneia din laturile ori/ontale ale simbolului9
astfel incat pe laturile de sus si de ;os sa apara
cate un cerculet
se apasa butonul stang al mouse2ului si se
deplasea/a mouse2ul tinand butonul apasat
pe masura ce mouse2ul este deplasat9 simbolul
functiei isi modifica dimensiunile9 modificandu2
se astfel numarul de intrari
cand numarul de intrari in functie este cel dorit9
se eliberea/a butonul mouse2ului.
(entru a selecta operatia efectuata de catre
functie ,adunare9 inmultire etc-
se apasa butonul drept al mouse2ului pentru a
descide meniul propriu al functiei
se descide submeniul Change 5ode
se selectea/a operatia dorita
#igura %'
Rando! 0u!-er ?G<1@ este o functie ce nu poseda intrari9
rolul sau fiind de a genera o valoare reala aleatoare in intervalul ,&91-
1ubpaleta 0u!eric a paletei de functii contine de asemenea o serie de subpalete dedicate
unor categorii particulare de functii:
#ubpaleta Con$er#ion% continand printre altele:
2 12 functii pentru scimbarea modului de repre/entare a unei valori numerice
functia )oolean ,o ?G+1@ ,disponibila si in subpaleta
)oolean a paletei de functii-+ care transforma o valoare logica ,,rue sau False- intr2o
valoare numerica ,1 respectiv G-
#igura %)
2 subpaleta ,rigono!etric9 continand ma;oritatea functiilor trigonometrice
2 subpaleta (ogarith!ic9 continand functii e0ponentiale si logaritmice
#igura %7 #igura %!
2 subpaleta Co!ple*9 continand functii asociate numerelor comple0e
2 1ubpaleta Additional 0u!eric Constants a paletei de functii contine valori constante
des utili/ate in trigonometrie si in lucrul cu functii e0ponentiale sau logaritmice9
precum si constante utili/ate in fEsica

#igura %$
#igura '&
'#'RC/,/4
In /ona principala a paletei de functii si in subpaletele dedicate ale acesteia9 identificati
functiile si constantele enumerate mai sus.
7onstruiti un program care sa afise/e catul si restul impartirii a doua numere naturale
introduse de catre utili/ator.
1.>.> Functii uzuale pentru alori alfanu!erice
#unctia String (ength determina numarul de caractere dintr2
o valoare alfanumerica ,te0t-. 1unt luate in considerare si caracterele
neafisabile ,spatiu9 *ab9 sfarsit de linie etc-. Numarul de caractere de
la iesirea functiei este e0primat ca un intreg pe patru octet
#unctia Concatenate Strings poseda un numar de
intrari ce poate fi modificat de catre utili/ator prin
dimensionarea simbolului functiei. La iesirea sa9 functia
generea/a o valoare alfanumerica obtinuta prin
concatenarea te0telor de la intrarile sale9 in ordinea de sus
in ;os.
(ortiunea inlocuita incepe de la caracterul aflat pe po/itia offset inclusiv si contine length
caractere. Intrarea offset are valoarea implicita &9 iar intrarea length are o valoare implicita
egala cu numarul de caractere legat la intrarea su-string. Daca la intrarea su-string nu se
leaga nici o valoare ,te0tul de inserat este vid-9 functia efectuea/a de fapt o stergere a unei
portiuni9 iar daca la intrarea length se leaga valoarea & ,te0tul de sters este vid- functia
efectuea/a de fapt o inserare a unei portiuni.
7autarea are loc incepand de la po/itia offset a te0tului string. Daca la intrarea offset
nu se conectea/a nici o valoare9 cautarea are loc incepand cu prima po/itie. Daca la intrarea
replace string nu se conectea/a nici o valoare9 atunci functia efectuea/a de fapt o stergere
,inlocuire cu te0t vid-. Daca la intrarea replace all: nu se conectea/a nici o valoare9 atunci
functia se opreste dupa prima aparitie a te0tului search string. Daca la aceasta intrare se
conectea/a o valoare logica ,rue9 atunci functia efectuea/a inlocuiri pentru toate aparitiile
te0tului search string. #unctia generea/a te0tul re/ultat in urma inlocuirii la iesirea result
string9 iar la iesirea offset past replace!ent generea/a o valoare indicand po/itia caracterului
aflat imediat dupa ultimul caracter inlocuit.
'#'RC/,/4
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei. De e0emplu9 pentru functia String (ength9 panoul
programului va contine un element de control pentru valori alfanumerice9 in care utili/atorul
va introduce un te0t9 si un element indicator pentru valori numerice9 in care programul va afisa
numarul de caractere ale te0tului introdus.
1.2." #unctii aditionale pentru valori alfanumerice
#unctia Replace Su-string sterge o
portiune din te0tul conectat la intrarea string
si introduce in locul respectiv te0tul conectat
la intrarea su-string.
#unctia Search and Replace String
cauta te0tul search string in te0tul conectat
la intrarea string9 iar atunci cand il gaseste il
inlocuieste cu te0tul conectat la intrarea
replace string.
1ubpaleta Additional String Functions a
paletei String , figura'1- contine o serie de functii
u/uale pentru lucrul cu valori alfanumerice
#unctia SearchHSplit String cauta te0tul
conectat la intrarea search stringHchar in te0tul
conectat la intrarea string. 7autarea se efectuea/a
incapand cu po/itia offset.
Daca te0tul cautat este gasit9 functia divide te0tul
initial in doua parti:
2 partea dinainte de te0tul cautat ,su-string -efore
!atch-
2 te0tul cautat urmat de restul te0tului in care s2a
facut cautarea ,!atch 6 rest of string-
#unctia generea/a la iesirea offset of !atch po/itia in care a fost gasit te0tul cautat.
Daca te0tul cautat nu a fost gasit9 iesirea su-string -efore !atch contine tot te0tul legat la
intrarea string9 iar iesirea offset of !atch are valoarea 21.
Daca la intrarea string nu a fost conectata nici o valoare9 re/ultatul este ciar linia cu indicele
specificat.
In ca/ afirmativ9 functia generea/a la iesirea output string restul te0tului de la intrarea string9
iar la iesirea selection o valoare booleana corespun/atoare intrarii care a coincis ,,rue pentru
true string si False pentru false string-. Daca ambele te0te coincid9 functia considera te0tul
true string. Daca nici un te0t nu coincide9 iesirea selection are valoarea False iar iesirea
output string contine intreg te0tul string
#igura '1
#unctia %icI (ine selectea/a din te0tul
!ulti<line string9 ce contine mai multe linii9 pe cea
cu indicele line inde* si adauga linia respectiva la
te0tul conectat la intrarea string.
#unctia 5atch ,rueHFalse String verifica
daca unul din te0tele true string sau false string
coincide cu inceputul te0tului conectat la intrarea
string.
#unctia Rotate String efectuea/a o
permutare circulara a caracterelor te0tului conectat
la intrarea string9 mutand primul caracter pe ultima
po/itie.
#unctia Reerse String inversea/a
ordinea caracerelor te0tului conectat la intrarea
string
#unctia Append ,rueHFalse String
concatenea/a la te0tul conectat la intrarea string
unul din te0tele conectate la intrarile true string
sau false string9 in functie de valoarea booleana
conectata la intrarea selector.
3odul de repre/entare al valorii de la iesirea nu!-er este identic cu cel al valorii
numerice intregi conectate la intrarea default ,implicit intreg pe "2 de biti-.
Iesirea offset past nu!-er are semnificatia po/itiei primului caracter din string dupa
portiunea care a fost transformata in valoare numerica.
1ubpaleta StringH0u!-er Conersion contine de asemenea functii pentru
transformarea te0telor din si in numere in ba/a de numeratie 1) sau ! sau in formatul
e0ponential9 fractional sau ingineresc.
'#'RC/,/4
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei. De e0emplu9 pentru functia Reerse String9 panoul
programului va contine un element de control pentru valori alfanumerice in care utili/atorul va
introduce un te0t si un element indicator9 de asemenea pentru valori alfanumerice9 la care
programul va afisa te0tul inversat.
1.2.% #unctii pentru comparatii
#unctiile pentru efectuarea comparatiilor sunt grupate in subpaleta Co!parison a
paletei de functii.
1ubpaleta StringH0u!-er Conersion a
paletei String contine functii pentru conversia
valorilor alfanumerice in valori numerice sau
pentru efectuarea operatiei inverse. Dintre acestea9
cele mai des utili/ate sunt:
#unctia 0u!-er ,o Deci!al String
transforma numarul intreg de la intrarea nu!-er
intr2un te0t de cel putin 2idth caractere. Daca
numarul de la intrarea functiei nu este intreg9 el
este trunciat. Daca intrarea 2idth nu este legata9
numarul de caractere ale te0tului va fi egal cu
numarul de cifre ale intregului.
#igura '2
#unctia Deci!al String ,o 0u!-er
transforma intr2o valoare numerica intreaga
portiunea din te0tul string incepand de la po/itia
offset inclusiv ,implicit de la po/itia &-..
#igura '"
(e langa functiile de comparare a doua marimi sau de comparare a unei marimi cu
valoarea nula9 subpaleta Co!parison contine urmatoarele:
In ca/ul functiei "reater: de e0emplu9
iesirea va avea valoarea ,rue daca
valoarea de la intrarea de sus este mai mare
decat valoarea de la intrarea de ;os si va
avea valoarea False in ca/ contrar.
7aracteristic acestor functii este faptul ca9 daca datele
de intrare pot fi de diverse tipuri ,numerice9 booleene9
alfanumerice etc-9 datele de iesire sunt la ma;oritatea acestor
functii valori logice ,booleene-. 7ontea/a de asemenea
ordinea in care datele de intrare sunt legate la terminalul
functiei ,la intrarea de sus sau la cea de ;os-.
#unctia Select generea/a la iesire valoarea de la
intrarea t ,,rue- daca valoarea logica de la intrarea s
este ,rue9 respectiv valoarea de la intrarea f ,False-
daca valoarea logica de la intrarea s este False. Valorile
de la intrarile t si f pot fi atat numerice cat si
alfanumerice.
#unctia 5a* 8 5in generea/a la iesirea !a*
cea mai mare dintre valorile * si y9 respectiv la iesirea
!in pe cea mai mica dintre acestea.
#unctia /n Range and Coerce verifica daca
valoarea de la intrarea * este cuprinsa intre valorile de
la intrarile lo2er li!it ,limita inferioara- si upper
li!it ,limita superioara-. Valoarea logica repre/entand
re/ultatul verificarii este generata la iesirea /n Range:
n mod implicit9 intervalul de incadrare este incis la
stanga si descis la dreapta.
Inciderea sau desciderea intervalului la e0tremitatile
sale poate fi configurata de catre utili/ator din meniul
propriu al functiei9 activand sau de/activand optiunile
/nclude upper li!it si /nclude lo2er li!it.
.e/ultatul ?fortarii? valorii * in intervalul prescris este
generat la iesirea coerced?*@.
#igura '%
1ubpaleta Co!parison contine de asemenea functii pentru a verifica daca un caracter
este cifra in ba/a de numeratie 1)9 cifra in ba/a de numeratie !9 caracter tiparibil sau caracter
netiparibil.
'#'RC/,/4
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei. De e0emplu9 pentru functia Select9 panoul
programului va contine un element de control boolean9 doua elemente de control alfanumerice
si un indicator alfanumeric. (rogramul va afisa la elementul indicator una din valorile de la
cele doua controale alfanumerice9 in functie de valoarea ,rue sau False a elementului
boolean.
1.2.' #unctii pentru lucrul cu valori data 2 timp si de dialog
#unctia Deci!al Digit: generea/a o valoare
logica ,rue in situatia in care caracterul de la intrarea sa
este o cifra intre & si $ si generea/a o valoare False in
ca/ contrar.
#unctiile pentru lcurul cu valori data
2 timp si functiile de dialog se gasesc in
meniul ,i!e 8 Dialog al paletei de functii.
(rintre cele mai utili/ate functii din aceasta
categorie se numara:
,icI Count ?!s@: determina
numarul de milisecunde indicat de ceasul
intern al computerului ,considerat de la
momentul la care calculatorul a fost pornit-
Wait ?!s@: intrerupe e0ecutia
programului pentru intervalul de timp
specificat
For!at DateH,i!e String:
transforma o valoare numerica repre/entand
un numar de secunde intr2un te0t.
Numarul de secunde este considerat a fi scurs incepand cu data de 1 ianuarie 1$&%9 ora
12.&&. La intrarea ti!e for!at string a functiei se poate specifica formatul in care te0tul
re/ultat sa fie construit.
La intrarea date for!at se poate lega una din valorile G9 1 sau >9 repre/entand
formatele scurt9 lung sau a-reiat pentru data. Daca numarul de secunde nu este conectat9 se
considera numarul de secunde al ceasului intern al computerului.
Ieisrea te0t ce repre/inta timpul poate contine sau nu secunde9 in functie de valoarea intrarii
booleene 2ant seconds:
#unctia generea/a o valoare booleana ,rue daca utili/atorul a apasat butonul din stanga sau
False daca a fost apasat butonul din dreapta.
#igura ''
"et DateH,i!e String: transforma o
valoare numerica repre/entand un numar de
secunde in doua te0te9 unul repre/entand data
si celalalt timpul.
"et DateH,i!e /n Seconds: determina
numarul de secunde scurs incepand cu data de
1 ianuarie 1$&%9 ora 12.&&9 pana la data si
timpul curente ale calculatorului.
=ne )utton Dialog: determina aparitia
unei ferestre de dialog9 continand un te0t
specificat prin program9 fereastra ce asteapta
apasarea de catre utili/ator a unui buton ,numele
butonului poate fi de asemenea configurat-.
,2o )utton Dialog: determina aparitia unei
ferestre de dialog9 continand un te0t specificat prin
program9 fereastra ce asteapta apasarea de catre
utili/ator a unuia din cele doua butoane
disponibile ,numele butoanelor pot fi de asemenea
configurate-.
EXERCITII
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei. De e0emplu9 pentru functia ,icI Count ?!s@9
reali/ati un program care sa afise/e numarul de secunde scurse de la pornirea calculatorului.
,'5A
1. 7onstruiti un program care sa genere/e un numar aleator intr2un interval ale carui limite
minima si ma0ima sunt specificate de catre utili/ator
>. .eali/ati un program in care utili/atorul sa dispuna de patru elemente de control booleene
sub forma de LED2uri.
7onsiderand ca cele patru LED2uri repre/inta cifrele binare ale unui numar in ba/a de
numeratie 29 programul sa afise/e numarul respectiv in ba/a 1&.
A. 7onstruiti un program in care utili/atorul sa introduca lungimea unui vector si ungiul
acestuia cu ori/ontala ,in grade-9 iar programul sa afise/e lungimile proiectiilor vectorului pe
cele doua a0e de coordonate.
B. 7onstruiti un program in care utili/atorul sa introduca lungimile si ungiurile cu ori/ontala
,in grade- pentru doi vectori9 iar programul sa afise/e lungimea vectorului re/ultant9 ungiul
facut de acesta cu ori/ontala si lungimile proiectiilor sale pe cele doua a0e.
E. .eali/ati un program pentru adunarea9 scaderea9 inmultirea si impartirea a doua numere
comple0e.
6. Intr2un te0t9 sa se inlocuiasca toate spatiile ,blanc- cu liniuta de subliniere ,underscore-
7. #iind dat un cuvant9 sa se transforme acesta astfel incat prima litera sa fie ma;uscula si restul
literelor sa fie minuscule.
&. #iind dat un te0t9 sa se verifice faptul ca toate caracterele din cadrul acestuia sunt
minuscule.
3. 1a se compare doua valori numerice a si b si sa se aprinda cate un LED pentru fiecare din
situatiile a F b9 a G b si a H b.
1G. 1a se verifice daca doua te0te contin aceleasi caractere9 in aceeasi ordine9 indiferent de
tipul de litere ,minuscule sau ma;uscule-
11. #iind dat un te0t ce repre/inta un nume si un prenume separate printr2un spatiu9 sa se
obtina din acesta un te0t continand cele doua intiale9 fiecare urmata de cate un punct.
1>. #iind dat un te0t9 sa se determine numarul de caractere din acesta diferite de spatiu ,blanc-
1A. #iind dat un te0t9 sa se verifice faptul ca acesta nu contine spatii libere
1B. #iind dat un te0t ce repre/inta un nume si un prenume separate printr2un spatiu9 sa se
separe in doua te0te9 unul repre/entand numele si unul prenumele
1E. #iind dat un te0t ce nu contine spatii9 sa se verifice daca acesta contine intre sase si opt
caractere.
16. 1a se reali/e/e un program care sa aprinda un LED atunci cand utili/atorul introduce o
valoare mai mare decat '.
17. 1a se reali/e/e un program care9 in functie de po/itia unui comutator boolean9 sa calcule/e
fie suma fie produsul a doua valori numerice introduse de catre utili/ator.
1&. #iind date doua valori numerice reale a si b9 sa se calcule/e suma dintre dublul valorii mai
mari si triplul valorii mai mici.
13. #iind dat un te0t ce repre/inta o propo/itie9 sa se verifice faptul ca punctul ,.- apare o
singura data9 la sfarsitul acesteia.
>G. 1a se afise/e9 in elemente indicatoare distincte9 numerele de ore9 minute si secunde scurse
de la pornirea calculatorului.
>1. 1a se afise/e9 in elemente indicatoare distincte9 numerele de /ile9 ore9 minute si secunde
scurse de la 1 ianuarie 1$&%9 ora 12.&&.
>>. 1a se afise/e9 in diverse formate9 un te0t repre/entand data si timpul curente ale
calculatorului.
>A. 1a se reali/e/e un program in care utili/atorul sa introduca trei valori numerice ,a9 b si c-
ordonate crescator.
In functie de cum valorile respective au fost introduse corect ,ordonate crescator- sau nu9
programul sa afise/e o fereastra de dialog cu te0tul RAS%40S C=R'C, sau RAS%40S
/0C=R'C,.
>B. 1a se reali/e/e un program care sa aprinda sau nu un indicator Round ('D9 in functie de
raspunsul DA sau 04 pe care utili/atorul il da la aparitia unei ferestre de dialog cu intrebarea
Aprinde! -ecul :
1." 3eniuri proprii in panou
1.".1 3eniuri proprii in panou
(entru a descide !eniul propriu al unui
element de control sau indicator9 se po/itionea/a
cursorul mouse2ului deasupra elementului si se apasa
butonul drept. 3eniul propriu al unui element poate
fi de asemenea descis cu a;utorul uneltei de afisare
a !eniurilor proprii.
8n meniu propriu contine diverse optiuni prin care
pot fi configurate modurile de afisare sau de
functionare ale elementelor de control sau
indicatoare. Indiferent de tipul de valori carora le
sunt dedicate ,numerice9 booleene sau alfanumerice-9
elementele de pe panou au in meniurile proprii o
serie de optiuni comune:
.isi-le /te!sB(a-el 2 5fisea/a sau ascunde eticheta elementului. 7ontinutul eticetei
poate fi modificat cu unealta de editare a te0telor
.isi-le /te!s%Caption 2 5fisea/a sau ascunde eticheta supli!entara a elementului.
7ontinutul eticetei poate fi de asemenea modificat cu unealta de editare a te0telor
Find ,er!inal 2 *rece in diagrama si indica terminalul elementului prin incadrarea
acestuia intr2un cenar cu linie intrerupta animata
Change to /ndicator ,sau Change to Control- 2 1cimba tipul elementului din
control in indicator sau invers
Description and ,ip... (ermite introducerea unei scurte descrieri referitoare la element
si a unui te0t a;utator ,,ip- care apare atunci cand cursorul mouse2ului este po/itionat
deasupra elementului
Create% 2 7reea/a in diagrama entitati suplimentare9 atasate elementului de pe panou
,vor fi discutate ulterior-
Replace% 2 5fisea/a paleta de controale9 astfel incat utili/atorul poate selecta un
element cu care sa il inlocuiasca pe cel current
Data =perations% 2 (ermite stabilirea valorii implicite a elementului ,5aIe Current
.alue Default-9 reinitiali/area unui element la valoarea sa implicita ,Reinitialize to
Default .alue- sau operatii de copiere a valorii elementului ,Cut9 Copy9 %aste-
Adanced% 2 3odalitati de configurare avansata a elementelor ,vor fi discutate in
lectii ulterioare-
EXERCITIU
E0ersati activarea urmatoarelor optiuni din meniul propriu al unui element de pe
panou: .isi-le /te!s%(a-el9 Find ,er!inal9 Change to /ndicator9 Change to Control9
Description and ,ip...9 Replace
1.".2 3eniuri proprii in diagrama
5tunci cand se descide !eniul
propriu al unui terminal din diagrama9 acesta
contine aproape aceleasi optiuni ca si meniul
elementului corespun/ator de pe panou9 cu
urmatoarele deosebiri:
(e langa optiunea Change to /ndicator ,sau Change to Control- este adaugata si
optiunea Change to Constant9 efectul acesteia fiind de inlocuire a elementului de
control sau indicator cu o constanta ,constantele pot e0ista doar in diagrama9 astfel
incat elementul de control sau indicator dispare de pe panou-
In submeniul Createapar optiunile suplimentare Constant, Control si Indicator, efectul
acestora fiind de adaugare (in diagrama sau in panou, dupa caz) a unei constante sau a unui
element de control sau indicator de acelasi tip cu elementul al carui meniu propriu a fost
deschis.
'#'RC/,/4
8tili/ati urmatoarele optiuni din meniul propriu al unui terminal din diagrama: Find
Control sau Find /ndicator9 ;ide Control ,sau ;ide /ndicator-9 Change to Constant9
Create%Constant9 Create%Control si Create%/ndicator.
1."." 3oduri de repre/entare a valorilor numerice
4ptiunea Find ,er!inal a elementului
de pe panou este inlocuita cu optiunea
Find Control sau Find /ndicator
5pare optiunea suplimentara ;ide
Control ,sau ;ide /ndicator-. Efectul
acesteia este ascunderea elementului
corespun/ator de pe panou
3eniurile proprii ale elementelor
de control sau indicatoare numerice contin
o optiune specifica9 Representation9 cu
a;utorul careia se specifica modul in care
valoarea numerica respectiva este stocata
in memorie. In submeniul
Representation9 utili/atorul are la
dispo/itie 12 optiuni:
pe prima linie: optiuni pentru
numere reale
pe a doua linie: optiuni pentru
numere intregi
pe a treia linie: optiuni pentru
numere naturale
pe a patra linie: optiuni pentru
numere co!ple*e
Intre diversele optiuni de pe o linie9
diferenta consta in nu!arul de octeti
,-ytes- alocati in memorie pentru
stocarea valorii respective:
'#, ,e0tended- G numar real cu preci/ie e0tinsa ,1) octeti-
D)( ,double- G numar real cu preci/ie dubla ,! octeti-
S"( ,single- G numar real cu preci/ie simpla ,% octeti-
/A> ,long- G numar intreg pe % octet
/16 ,Iord- G numar intreg pe 2 octeti
/& ,b6te- G numar intreg pe 1 octet
4A> ,unsigned long- G numar natural pe % octeti
416 ,unsigned Iord- G numar natural pe 2 octeti
4& ,unsigned b6te- G numar natural pe 1 octet
C#, ,comple0 e0tended- G numar comple0 cu preci/ie e0tinsa ,"2 octeti-
CD) ,comple0 double- G numar comple0 cu preci/ie dubla ,1) octeti-
CS" ,comple0 single- G numar comple0 cu preci/ie simpla ,! octeti-
Numarul de octeti alocati pentru stocare se reflecta in interalul de alori in care poate
e0ista valoarea respectiva sau in precizia acesteia:
#igura '!
'#'RC/,//
E0ersati modificarea moduui de repre/entare a unui element de control numeric.
4bservati in panou aparitia sau disparitia /ecimalelor iar in diagrama modificarea
culorii si te0tului din interiorul terminalului.
4bservati ce se intampla in situatia in care9 avand un element de control numeric cu
valoare reala negativa9 se scimba modul de repre/entare al acestuia in numar natural.
*e0tul din interiorul
terminalului unui element de
control sau indicator numeric se
modifica pentru a reflecta modul
de repre/entare ales. In ca/ul in
care valoarea numerica este una
intreaga sau naturala9 terminalul
isi modifica de asemenea
culoarea9 din portocaliu in
al-astru.
1.".% 3eniuri proprii specifice elementelor numerice
De asemenea9 prin optiunea /f .alue is =ut of Range9 utili/atorul poate dicta modul
de comportament in ca/ul in care se incearca introducerea unei valori in afara intervalului
stabilit: daca in locul optiunii /gnore se selectea/a optiunea Coerce9 elementul va forta
ramanerea valorii intre limitele impuse. #ereastra suplimentara Data Range permite
modificarea si din acest loc a modului de repre/entare a valorii numerice ,Representation-.
1electarea din meniul propriu a optiunii For!at 8 %recision descide o fereastra din care
utili/atorul poate dicta afisarea valorii numerice in format:
Elementele de control sau indicatoare numerice
dispun in meniul propriu de doua optiuni
specifice:
HHH Data Range... pentru stabilirea unui interval
de variatie particular
HHH For!at 8 %recision... pentru specificarea
unui mod particular de afisare a valorii
1electarea optiunii Data Range... conduce la
desciderea unei ferestre suplimentare.
Daca se de/activea/a optiunea 4se Defaults9
utili/atorul poate specifica valorile minima si
ma0ima pe care le poate lua elementul respectiv9
precum si incrementul intre doua valori
succesive.
#igura )&
zeci!al9 ca/ in care se pot specifica numarul de /ecimale si notatia ,cu virgula mobila9
stiintifica9 inginereasca etc.-
ti!p < data9 situatie in care se pot selecta diverse formate de afisare.
In ca/ul in care se selectea/a formatul ti!p < data9 valoarea elementului va repre/enta
numarul de secunde scurse de la data de 1 ianuarie 1$&%9 ora ":&& 53.
In situatiile in care elementul de control sau indicator numeric are un mod de repre/entare
de tipul numar intreg sau natural9 optiunea For!at 8 %recision permite suplimentar si
afisarea valorilor in sistem de numeratie e0a/ecimal9 octal sau binar.
'#'RC/,//
Dispuneti pe panou un element de control numeric de tipul ;orizontal %ointer Slide
si modificati valorile 5ini!u!9 5a*i!u! si /ncre!ent din optiunea Data Range...
a meniului propriu. Incercati apoi sa modificati valoarea elementului de control in afara
limitelor impuse si observati comportamentul elementului.
Dispuneti pe panou un element de control numeric de tipul Digital Control si selectati
optiunea For!at 8 %recision din meniul propriu al acestuia. (entru formatul zeci!al9
modificati numarul de /ecimale si notatia ,stiintifica9 inginereasca etc- si observati
consecintele. 1electati apoi formatul ti!p < data cu diverse formate de afisare si
observati consecintele.
#igura )2
1.".' 3eniuri proprii specifice elementelor cu scala
Elementele de control sau indicatoare numerice cu scala ,potentiometre liniare sau
circulare9 indicatoare cu ac etc- dispun in meniul propriu de optiuni suplimentare referitoare la
modul de afisare:
optiunea Fill =ptions% permite alegerea modului in care sa se colore/e portiunile
elementului aflate de o parte si de alta a cursorului ,colorat deasupra9 colorat dedesubt9
necolorat etc
optiunea Scale% dispune de o serie de submeniuri proprii pentru po/itionarea uniforma
sau arbitrara a gradatiilor de pe scala ,5arIer Spacing %-9 pentru stabilirea formatului
de afisare a valorilor de pe scala ,For!at 8 %recision...-9 pentru alegerea variantei de
densitate a gradatiilor ,Style %- si pentru selectarea unei scale liniare sau logaritmice
,5apping %-
'#'RC/,//
#igura )"
#igura )%
#igura )'
Dispuneti pe panou un element de tipul .ertical %ointer Slide9 selectati din optiunea
Fill =ptions a meniului sau propriu diverse moduri de umplere si observati
consecintele.
(entru acelasi element9 afisati scala cu gradatii arbitrare ,5arIer Spacing-9 afisati
valorile de pe scala cu o /ecimala ,For!at 8 %recision-9 modificati densitatea
gradatiilor de pe scala ,Scale-9 apoi transformati tipul scalei in logaritmic ,5apping-.
1.".) 3eniuri proprii specifice elementelor booleene
S2itch 4ntil Released modifica valoarea logica a elementului atunci cand se apasa
butonul mouse2ului9 iar dupa eliberarea butonului valoarea elementului redevine cea
dinaintea apasarii
(atch When %ressed modifica valoarea logica a elementului atunci cand se apasa
butonul mouse2ului9 dar aceasta modificare durea/a doar pana cand aloarea logica
este trans!isa in diagra!a pe flu*ul de date. Imediat ce valoarea elementului a fost
transmisa9 acesta revine la valoarea dinaintea apasarii9 ciar daca utili/atorul continua
sa tina butonul mouse2ului apasat.
(atch When Released modifica valoarea logica a elementului atunci cand se
eliberea/a butonul mouse2ului ,dupa ce in prealabil a fost apasat-9 dar aceasta
modificare durea/a doar pana cand valoarea logica este transmisa in diagrama pe flu0ul
de date. Dupa ce valoarea a fost transmisa9 elementul revine la valoarea initiala.
(atch 4ntil Released modifica valoarea logica a elementului atunci cand se apasa
butonul mouse2ului9 iar modificarea se pastrea/a atat timp cat utili/atorul tine butonul
apasat. Dupa ce utili/atorul eliberea/a butonul9 elementul revine la valoarea initiala
doar in momentul in care se reali/ea/a o transmitere a valorii pe flu0ul de date.
'#'RC/,//
Elementele de control booleene dispun in
meniul propriu de optiunea suplimentara
5echanical Action9 aceasta permitand stabilirea
modului in care elementul se comporta la apasarea
butonului mouse2ului de catre utili/ator.
S2itch When %ressed modifica valoarea
logica a elementului atunci cand se apasa
butonul mouse2ului9 iar valoarea ramane
modificata si dupa eliberarea butonului
S2itch When Released modifica valoarea
logica a elementului atunci cand se
eliberea/a butonul mouse2ului ,dupa ce in
prealabil a fost apasat-9 iar valoarea ramane
modificata si dupa eliberare
#igura ))
1 Dispuneti pe panou un element boolean de control de tipul .ertical ,oggle S2itch si
un element indicator de tipul Round ('D. In diagrama9 conectati intre ele terminalele
celor doua elemente. (entru fiecare optiune 5echanical =ption a elementului de
control9 efectuati o rulare continua ,butonul Run Continuously- si observati modul in
care se comporta comutatorul si modul in care valoarea sa logica este transmisa
elementului Round ('D.
2 Dati e0emple de situatii in care fiecare optiune ar fi utila ,de e0emplu9 optiunea (atch
When %ressed este utila atunci cand9 in urma apasarii butonului de catre utili/ator9 se
derulea/a o actiune cu un timp foarte scurt si nu se doreste ca aceasta actiune sa fie
repetata ciar daca utili/atorul intar/ie sa ridice degetul de pe butonul mouse2ului-.
1.".7 3eniuri proprii specifice elementelor alfanumerice
daca se apasa tasta 'nter ?mare? ,din apropierea tastelor pentru litere-9 elementul
considera ca se doreste trecerea la linia urmatoare
daca se apasa tasta 'nter ?mica? ,din /ona cu taste numerice aflata in partea dreapta a
tastaturii- sau daca se face clic> cu mouse2ul in afara elementului99 acesta considera ca
s2a inceiat introducerea te0tului
te0tul introdus in element nu este transmis ca valoare alfanumerica in flu0ul de date
decat dupa confirmarea prin apasarea tastei 'nter ?mici? a inceierii introducerii sale
7omportamentul implicit al elementului poate fi modificat prin selectarea optiunilor din
partea inferioara a meniului propriu:
Elementele de control si indicatoare alfanumerice
dispun in meniul propriu de patru optiuni suplimentare
referitoare la modul de afisare:
0or!al Display: afisare normala a caracterelor
9J9 Codes Display: interpretarea caracterelor
care urmea/a dupa ?J? drept caractere neafisabile
,Jn G linie noua9 Jt G *ab9 Js G spatiu s.a.m.d.-
%ass2ord Display: afisare tip ?parola?9 in locul
fiecarui caracter fiind afisat un asteris>
;e* Display: afisarea codurilor 517II ale
caracterelor
In mod implicit9 atunci cand se introduce un te0t intr2
un element de control alfanumeric9 elementul respectiv
se comporta in modul urmator:
#igura )7
(i!it to Single (ine: confera ambelor taste 'nter acelasi rol9 de inceiere a
introducerii te0tului. In acest mod9 nu se mai poate trece la o linie noua prin apasarea
tastei 'nter ?mare?9 astfel incat te0tul nu mai poate fi format decat dintr2o singura
linie.
4pdate .alue 2hile ,yping: elementul nu mai asteapta confirmarea inceierii
introducerii te0tului pentru a transmite valoarea alfanumerica in flu0ul de date.
Valoarea alfanumerica este transmisa automat9 de fiecare data cand te0tul introdus in
element este modificat.
'#'RC/,//
1 Dispuneti pe panou un element alfanumeric de control si e0perimentati optiunile
suplimentare referitoare la afisare
2 5ctivati optiunea (i!it to Single (ine si e0perimentati modul de lucru specific
acesteia
" Dispuneti pe panou si un element indicator pentru valori alfanumerice.
In diagrama9 conectati terminalele celor doua elemente. .ulati programul in modul
continuu. 4bservati ca te0tul de la elementul de control este transmis elementului
indicator doar dupa apasarea tastei 'nter ?mare? 4priti rularea programului9 activati
optiunea 4pdate .alue 2hile ,yping a elementului de control si rulati din nou
programul in modul continuu. 4bservati ca de aceasta data te0tul din elementul de
control este transmis elementului indicator pe masura ce este modificat9 fara a se mai
astepta inceierea introducerii.
1.".! 3odificarea fontului unor elemente
(entru a modifica fontul cu care un
element este repre/entat9 se selectea/a
intai elementul respectiv cu a;utorul
uneltei de selectare.
1e descide apoi !eniul de configurare
a te*telor9 aflat in -ara de -utoane9 si se
selectea/a din submeniurile acestuia:
dimensiunea caracterelor ,Size-
stilul te0tului ,Style-
modul de aliniere ,Kustify-
culoarea ,Color-
tipul de litera ,Arial9 ,i!es 0e2
Ro!an etc-
#igura )!
8nui element i se poate aplica de
asemenea un tip predefinit de font
,Application9 Syste!9 Dialog sau
Current-. 7ele trei tipuri predefinite
de fonturi pot fi la randul lor
modificate daca se alege una din
variantele:
comanda Font Dialog... din
meniul de configurare a
te0telor
comanda =ptions... din meniul
,ools9 apoi se alege optiunea
Fonts
'#'RC/,/4
Dispuneti elemente de control si indicatoare pe panoul programului si modificati apoi
fonturile cu care acestea sunt repre/entate.
1.".$ 4rdonarea elementelor panoului si a diagramei
#igura )$
In situatia in care se doreste alinierea mai
multor elemente de pe panou sau a mai multor
componente ale diagramei9 se selectea/a
obiectele respective apoi se descide !eniul
de aliniere si se alege varianta dorita:
aliniere dupa o ori/ontala a limitelor
superioare9 centrelor sau limitelor
inferioare
aliniere dupa o verticala a limitelor din
stanga9 centrelor sau limitelor din
dreapta
#igura 7&
Distribuirea ecidistanta a unor
componente se reali/ea/a de asemenea prin
selectarea acestora9 urmata de desciderea
!eniului de distri-uire si alegerea uneia din
variantele:
distribuire pe verticala9 cu ecidistanta
considerata intre diverse limite
superioare sau inferioare ale
elementelor
distribuire pe ori/ontala9 cu
ecidistanta considerata intre diverse
limite din stanga sau din dreapta ale
elementelor
'#'RC/,/4
Dispuneti elemente de control si indicatoare pe panoul programului si e0ersati diverse
variante de aliniere si distribuire. 1uprapuneti unele dintre elemente si e0ersati optiunile de
scimbare a po/itiei ?in adancime? E0ersati optiunile de grupare a mai multor elemente si de
blocare a mutarii si dimensionarii
1.".$ 3odificarea scalei sau cursorului
#igura 71
5tunci cand mai multe elemente sunt
suprapuse9 alegerea din !eniul de ordonare
a unei optiuni are drept urmare scimbarea
po/itiei ?in adancime? a elementelor selectate:
5oe For2ard G un pas inainte9 5oe
)acI2ard G un pas inapoi9 5oe ,o Front G
trecere in planul cel mai apropiat9 5oe ,o
)acI G trecere in planul cel mai indepartat
#igura 72
1electarea mai multor componente si
alegerea optiunii "roup are drept efect
selectarea intregului grup atunci cand una
dintre componente este selectata
,?desfiintarea? grupului se reali/ea/a cu
optiunea 4ngroup-. 1electarea uneia sau
mai multor componente si alegerea optiunii
(ocI nu mai permite deplasarea sau
modificarea dimensiunilor componentelor
respective ,anularea efectului se reali/ea/a
cu optiunea 4nlocI-
#igura 7"
Daca se po/itionea/a cursorul mouse2
ului deasupra unei li!ite a scalei unui
element de control sau indicator de tipul unui
potentiometru circular ,Lno- sau Dial-9 se
apasa butonul stang al mouse2ului si se
deplasea/a mouse2ul tinand butonul apasat9
efectul obtinut este acela de !odificare a
unghiului la centru pe care scala este
dispusa.
#igura 7%
5tunci cand cursorul mouse2ului este po/itionat nu deasupra unei limite ci deasupra
unei gradatii inter!ediare de pe scala9 efectul obtinut este acela de rotire a scalei in Murul
centrului elementului.
'#'RC/,/4
Dispuneti pe panoul programului elemente de control si indicatoare de genul celor
mentionate mai sus si e0ersati asupra lor modificarile de design pre/entate.
1.".1& Variabile locale
Daca se po/itionea/a cursorul mouse2
ului in apropierea !iMlocului scalei unui
element de control sau indicator de tip 5eter9
iar dupa aparitia la mi;locul scalei a doua
simboluri 6 se apasa butonul stang al mouse2
ului si se deplasea/a mouse2ul tinand butonul
apasat9 efectul obtinut este acela de
!odificare a lati!ii -enzii colorate ,rampa-
a scalei.
#igura 7'
7ursorul unui element de control sau
indicator de tip potentiometru poate fi
dimensionat daca se po/itionea/a cursorul
mouse2ului deasupra unuia din colturile sale9
iar dupa aparitia la colturi a unor simboluri
?ecer? se apasa butonul stang al mouse2ului
si se deplasea/a mouse2ul tinand butonul
apasat.
#igura 7)
1electarea9 din meniul Create al unui
element de control sau indicator9 a optiunii
(ocal .aria-le9 va conduce la introducerea in
diagrama a unei entitati suplimentare9 numita
aria-ila locala.
4 variabila locala repre/inta o instanta
a elementului corespun/ator: o du-lura a
acelui element. Daca9 la un moment dat9 un
element isi modifica valoarea9 toate variabilele
sale locale9 indiferent de locul in care sunt
dispuse in diagrama9 capata valoarea
corespun/atoare.
Variabilele locale sunt utili/ate in situatia in care este complicat ,sau imposibil- sa se
efectue/e o legatura direct la terminalul unui element ,de e0emplu9 atunci cand legatura ar
trebui efectuata de2a lungul unei /one intinse din diagrama9 /one in care sunt de;a multe
componente-. (entru un element pot fi create mai multe variabile locale.
Daca9 din meniul propriu al variabilei locale9 se selectea/a optiunea Change ,o Read9
variabila locala devine ele!ent de control ,contur ingrosat-. In aceasta situatie9 variabila
locala va genera valoarea elementului pe care il repre/inta.
'#'RC/,/4
#igura 77
Initial o variabila locala este o dublura
a elementului din al carui meniu propriu a
fost creata9 numele acelui element fiind
inscris in simbolul variabilei. *erminalul
variabilei locale are culoarea corespun/atoare
tipului de date pe care le manipulea/a.
Elementul pe care variabila locala il
repre/inta poate fi scimbat. (entru aceasta9
din meniul propriu al variabilei locale9
optiunea Select /te!9 se selectea/a numele
noului element pe care variabila locala il va
repre/enta.
#igura 7!
In mod implicit9 atunci cand este
creata9 indiferent ca elementul pe care il
repre/inta este unul de control sau indicator9
o variabila locala este un ele!ent indicator
,contur subtire-. In aceasta situatie9 valoarea
care a;unge la variabila locala este automat
capatata de elementul pe care il repre/inta
,aceasta este si o modalitate de a scimba
prin program valorile elementelor de
control-.
#igura 7$
In panoul unei aplicatii9 dispuneti un element boolean de control de tipul .ertical
,oggle S2itch9 unul de tipul Slide S2itch si un indicator boolean Round ('D.
7reati o variabila locala a elementului .ertical ,oggle S2itch.
In diagrama9 conectati terminalul elementului Slide S2itch atat la terminalul elementului
Round ('D cat si la variabila locala a elementului .ertical ,oggle S2itch.
.ulati programul cu optiunea Run Continuously9 actionati comutatorul Slide S2itch9
observati si e0plicati comportamentul elementului .ertical ,oggle S2itch.
1.".11 Noduri de proprietati
1electarea9 din meniul Create al unui element de control sau indicator9 a optiunii
%roperty 0ode9 va conduce la introducerea in diagrama a unei entitati suplimentare9 numita
nod de proprietati.
Nodul de proprietati al unui
element repre/inta o componenta prin
intermediul careia9 in timpul e0ecutiei
programului9 pot fi determinate ,in
sens de ?citire?- sau modificate
automat ,scrise- anumite proprietati ale
elementului respectiv.
In mod implicit9 atunci cand
este creat9 un nod de proprietati
citeste starea logica ,afisat sau
ascuns- a izi-ilitatii
elementului pe care il
repre/inta. Desci/and meniul
propriu al nodului de
proprietati9 optiunea
%roperties9 se poate selecta
proprietatea pe care nodul o
repre/inta. (rintre cele mai des
utili/ate proprietati se numara:
%osition: po/itia elementului pe
panou9 e0primata in pi0eli pe
ori/ontala si pe verticala
)ounds: dimensiunile
elementului9 e0primate in pi0eli
.isi-le: daca aceasta
proprietate are valoarea #alse9
elementul nu mai este afisat in
panou ,desi continua sa e0iste
si are terminal in diagrama-
Disa-led: valoarea & semnifica faptul ca utili/atorul poate actiona acel element9
valoarea 1 faptul ca elementul nu poate fi actionat ,este de/activat-9 valoarea 2 faptul
ca elementul este de/activat si afisat in culori ?sterse?
)linIing: atunci cand aceasta proprietate are valoarea *rue9 elementul este afisat
?clipind?
(a-el: proprietati de formatare a te0tului din eticeta
8n nod de proprietati poate fi trecut din starea implicita de citire in starea de scriere9 prin
selectarea optiunii Change ,o Write din meniul sau propriu.
In starea de scriere9 un nod de proprietati poate primi valori care vor modifica proprietatile
elementului corespun/ator. 8n nod de proprietati poate fi dimensionat9 pentru a gestiona mai
multe proprietati ale elementului pe care il repre/inta. 5tunci cand contine mai multe
proprietati9 acestea pot fi in mod independent de scriere sau de citire. Elementul repre/entat de
catre un nod de proprietati poate fi scimbat prin selectarea din meniul propriu al nodului a
optiunii (inI ,o9 similar optiunii Select /te! din ca/ul variabilelor locale. In diagrama pot
e0ista mai multe noduri de proprietati ale aceluiasi element.
'#'RC/,//
1 Dispuneti in panoul unei noi aplicatii un element de control boolean de tipul .ertical
,oggle S2itch si un element de control numeric. 7reati un nod de proprietati al
elementului numeric9 treceti nodul respectiv in starea de scriere si conectati la el
terminalul elementului boolean. .ulati programul cu optiunea Run Continuously9
actionati comutatorul boolean9 observati si e0plicati efectul.
2 In aceeasi aplicatie9 dispuneti pe panou un element de tipul String Control9 creati un
nod de proprietati pentru acesta9 treceti nodul respectiv in starea de scriere9 selectati
pentru el proprietatea Disa-led si legati la nod terminalul elementului de control
numeric. .ulati programul cu optiunea Run Continuously si actionati comutatorul
boolean astfel incat elementul de control numeric sa fie vi/ibil. Introduceti in
elementul numeric valoarea G si introduceti un te0t in elementul String. Introduceti in
elementul numeric valoarea 1 si incercati sa modificati te0tul din elementul String.
Introduceti in elementul numeric valoarea >9 observati si e0plicati efectul.
#igura !&
,'5A
1. 7onstruiti un program pentru determinarea solutiilor unei ecuatii de gradul al doilea.
(entru afisarea radacinilor9 programul va dispune de doua pereci de indicatoare numerice
separate: una cu mod de repre/entare real9 cealalta cu mod de repre/entare comple0.
#iecare din cele doua pereci de elemente indicatoare va fi vi/ibila sau nu9 in functie de natura
radacinilor ecuatiei.
>. 7onstruiti un program in care utili/atorul sa poata alege9 prin intermediul unui comutator
boolean9 tipul de ecuatie pe care doreste sa o re/olve: de gradul I sau de gradul al II2lea.
Elementul de control numeric de la care se va introduce coeficientul lui 0
2
va fi vi/ibil doar in
ca/ul ecuatiei de gradul al II2lea.
In ca/ul ecuatiei de gradul I9 elementul respectiv va deveni invi/ibil si va capata valoarea &.
A. In aceleasi conditii ca la tema nr. 29 atunci cand se optea/a pentru re/olvarea unei ecuatii de
gradul I9 elementul de control numeric pentru coeficientul lui 0
2
sa capete valoarea &9 sa fie
de/activat ,utili/atorul sa nu mai poata modifica valoarea- si sa fie afisat in culori sterse.
B. 1a se reali/e/e un program pentru determinarea solutiilor unei ecuatii de gradul al doilea in
care elementele de control pentru introducerea coeficientilor ecuatiei sa aiba valoarea implicita
0a0.
In ca/ul in care utili/atorul nu introduce o valoare numerica in unul din elementele respective9
elementul sa clipeasca pentru a semnali/a eroarea.
E. 1a se reali/e/e un program in care9 prin intermediul a doua elemente de control numerice
,un .ertical %ointer Slide si un ;orizontal %ointer Slide-9 utili/atorul sa poata specifica
po/itia in panou a unui element indicator Round ('D.
1.% 1tructuri de programare
1.%.1 Inserarea structurilor in diagrama
Dupa dispunerea in diagrama9 conturul structurii poate fi deplasat sau dimensionat. 5tunci
cand o structura este deplasata9 toate elementele din interiorul sau se deplasea/a odata cu ea.
Elemente din afara structurii pot fi mutate in interiorul acesteia9 iar elemente din interior pot fi
mutate in afara structurii. Daca9 prin dimensionare sau deplasare9 o structura a;unge sa se
suprapuna cu alte elemente din diagrama9 acestea nu or fi incluse in structura.
EXERCITIU
Structurile de progra!are sunt
componente ale diagramei ale caror simboluri se
gasesc in subpaleta Structures a paletei de
functii. In diagrama9 o structura de programare
urmea/a sa contina o serie de terminale de
elemente9 simboluri de functii si valori constante
ce vor forma un flu0 de date in interiorul
structurii. Daca9 in momentul in care structura
este aleasa din subpaleta Structures9 o parte din
elementele pe care urmea/a sa le contina se afla
de;a dispuse in diagrama9 cenarul structurii
poate fi trasat in ;urul componentelor respective
,dupa selectarea din subpaleta9 se apasa butonul
stang al mouse2ului in unul din colturile viitorului
cenar si se deplasea/a mouse2ul tinand butonul
apasat: pe masura ce mouse2ul este deplasat9 se
trasea/a automat un contur cu linie intrerupta9
contur ce va fi inlocuit de catre structura in
momentul eliberarii butonului mouse2ului-
#igura !1
Exersati inserarea unei structuri oarecare (de exemplu Sequence) in diagrama,
trasand de la inceput chenarul sau in jurul unui grup de elemente. Mutati elemente din
structura in afara sa si aduceti elemente din exterior in interiorul structurii. Deplasati si
dimensionati structura.
1.%.2 1tructura secventiala ,1eKuence-
5tunci cand dispune de mai multe ferestre9 fiecare
dintre acestea cu propriul flu0 de date9 o structura
Sequence e0ecuta in ordine ferestrele respective.
De e0emplu9 in figurile de mai ;os sunt repre/entate doua
ferestre ale unei structuri Sequence. 1tructura va e0ecuta
intai fereastra cu indicele G9 trimitandu2se valoarea de la
elementul de control Slide la elementul indicator 5eter9
apoi va e0ecuta fereastra 1 ce are ca efect transmiterea
valorii booleene intre cele doua elemente.
5tunci cand este dispusa in diagrama9 o structura
Sequence contine o singura fereastra9 aceasta fiind
totodata si fereastra curenta ,vi/ibila-.
Desci/and meniul propriu al structurii si alegand una din
optiunile Add Fra!e After sau Add Fra!e )efore9 se
poate adauga o fereastra dupa sau inaintea celei curente.
Daca o structura Sequence contine mai mult de o
fereastra9 atunci ferestrele primesc indici ,numere de
ordine- incepand cu G9 iar pe latura superioara a conturului
structurii apare un selector prin intermediul caruia se
poate trece de la o fereastra la alta.
#igura !2
*recerea la o alta fereastra se poate reali/a fie prin
intermediul celor doua sageti de la capetele selectorului9
fie apasand pe sageata din partea dreapta ,indreptata in
;os- si selectand indicele ferestrei dorite din lista care se
desfasoara. La un moment dat9 este vi/ibil doar flu0ul din
fereastra curenta a unei structuri Sequence.
Daca9 in una din ferestrele structurii9 se conectea/a o valoare la variabila locala9
fereastra respectiva devine fereastra sursa pentru acea variabila. In acea fereastra9 simbolul
variabilei locale contine o fereastra indreptata spre e0teriorul structurii. In ferestrele anterioare
ferestrei sursa9 simbolul variabilei locale devine asurat9 semn ca valoarea variabilei locale nu
este accesibila in acele ferestre.
In ferestrele de dupa fereastra sursa9 simbolul variabilei locale va contine o sageata
indreptata spre interiorul structurii. In aceste ferestre9 valoarea transferata prin intermediul
variabilei locale poate fi utili/ata in flu0ul de date. 4 structura Sequence poate dispune de mai
multe variabile locale. Intr2o structura Sequence pot fi utili/ate valori provenite din flu0ul de
date e0terior. 4 valoare introdusa din e0terior intr2o structura Sequence va putea fi utili/ata in
oricare dintre ferestrele structurii. Daca9 intr2o anumita fereastra9 se face o legatura din
structura Sequence in e0teriorul acesteia9 la iesirea respectiva ,patratul de pe contur- nu va
mai putea fi legata o alta valoare din alta fereastra ,ar e0ista o incertitudine privind valoarea
care iese din structura-. Indiferent de indicele ferestrei in care s2a facut o legatura spre e0terior9
valoarea va parasi iesirea de pe conturul structurii Sequence doar dupa e0ecutarea ultimei
ferestre.
1e poate crea o dublura a ferestrei curente9
selectand din meniul propriu al structurii optiunea
Duplicate Fra!e. #ereastra curenta poate fi stearsa9 cu
optiunea Delete ,his Fra!e. 5tunci cand o structura
Sequence contine cel putin doua ferestre9 ordinea
acestora poate fi scimbata: se modifica indicele
ferestrei curente9 selectand optiunea 5aIe ,his Fra!e9
apoi noul indice. 5tunci cand se doreste transferul unei
valori intre doua ferestre ale unei structuri Sequence9
prin selectarea optiunii Add Sequence (ocal se dispune
pe conturul structurii o aria-ila locala a acesteia ,sub
forma unui patrat galben-.
#igura !"
EXERCITIU
Introduceti in diagrama o structura Sequence cu patru ferestre. (ornind de la un
element de control numeric al carui terminal este e0terior structurii9 calculati in ferestre
succesive dublul9 patratul9 radacina patrata si inversa ,1L0- valorii numerice respective.
Valoarea calculata in fiecare fereastra a structurii va fi afisata intr2un element indicator
separat. 5daugati structurii o a cincea fereastra si9 utili/and variabile locale9 calculati si afisati
in aceasta ultima fereastra suma valorilor calculate in ferestrele anterioare.
1.%." 1tructura cau/ala ,7ase-
Daca la terminalul selector al unei structuri Case9 in locul unei valori booleene9 se
conectea/a o valoare numerica ,numar intreg sau natural-9 numele ferestrelor se vor modifica
automat din ,rue si False in G si 1. 1tructura va e0ecuta fereastra al carei nume va coincide cu
valoarea numerica ce a;unge la terminalul sau selector. In aceasta situatie9 are sens ca structura
Case sa contina mai mult de doua ferestre.
5tunci cand este dispusa in diagrama9 o structura Case
contine doua ferestre ,,rue si False-9 fiecare dintre acestea cu
propriul flu0 de date. (e conturul structurii se afla dispus un
ter!inal selector ,de culoare verde9 continand semnul
intrebarii-. 1tructura Case va e0ecuta doar una din cele doua
ferestre9 in functie de valoarea booleana ,,rue sau False-
conectata la terminalul sau selector.
Deoarece structura Case nu va putea contine
atatea ferestre cate valori numerice pot a;unge la
terminalul sau selector9 una dintre ferestre trebuie
declarata drept fereastra i!plicita ,Default-.
#ereastra implicita va fi e0ecutata atunci cand valorii
a;unse la terminalul selector nu ii corespunde nici un
nume de fereastra. 8n nume de fereastra poate
contine si descrierea unei multimi de valori9 de genul
2..'9 7..$9 intelegand prin aceasta ca fereastra
respectiva va fi e0ecutata daca la terminalul selector
a;unge una din valorile 29 "9 %9 '9 79 ! sau $. 4
valoare nu poate e0ista in numele mai multor
ferestre ,ar e0ista o incertitudine privind fereastra ce
trebuie e0ecutata-.
Daca la terminalul selector al unei structuri
Case se conectea/a o valoare alfanumerica9 atunci
numele ferestrelor vor trebui sa fie de tipul string ,se
modifica utili/and unealta de editare te0te-. 1i in
aceasta situatie trebuie sa e0iste o fereastra implicita.
1e pot de asemenea defini multimi de valori ,de
genul ?5?..?#?-9 cu conditia evitarii dublurilor.
4 valoare introdusa din e0terior intr2o structura Case este accesibila in orice fereastra a
acesteia.
5tunci cand iesirea este complet definita9 terminalul de iesire se umple cu culoarea
repre/entand tipul de date conectate ,pentru a fi corect definita9 la o iesire trebuie sa a;unga
acelasi tip de date din toate ferestrele structurii-.
EXERCITII
1 Introduceti in diagrama o structura Case la al carei terminal selector conectati
terminalul unui element de control boolean.
In functie de valoarea elementului de control boolean9 la terminalul unui element
indicator de tip String din afara structurii9 trimiteti te0tul AD'.ARA, sau FA(S.
2 Introduceti in diagrama o structura Case la al carei terminal selector conectati
terminalul unui element de control numeric pentru valori naturale.
In functie de valoarea elementului de control numeric9 la terminalul unui element
indicator de tip String din afara structurii9 trimiteti te0tul C/FRA %ARA9 C/FRA
/5%ARA sau 045AR.
" Introduceti in diagrama o structura Case la al carei terminal selector conectati
terminalul unui element de control alfanumeric.
In functie de primul caracter din elementul de control9 la terminalul unui element
indicator de tip String din afara structurii9 trimiteti te0tul %R/5A %AR,' ,pentru
primul caracter de la 5 la 3-9 A D=4A %AR,' ,pentru primul caracter de la N la M-
sau 04 /0C'%' C4 (/,'RA.
1.%.% 1tructura repetitiva cu numar fi0 de iteratii ,bucla #or-
4 bucla For e0ecuta de un numar fi0at de ori portiunea de diagrama pe care o contine.
4 e0ecutie a portiunii interne de diagrama poarta numele de iteratie.
Daca dintr2o fereastra a unei structuri Case se
scoate o valoare in e0terior9 pe conturul structurii
apare un ter!inal de iesire de culoare alba9 semn ca
diagrama contine o eroare. 5tunci cand o structura
Case are pe contur un terminal de iesire9 la acesta
trebuie definite legaturi din toate ferestrele
structurii. In ca/ contrar9 se spune ca iesirea din
structura nu este co!plet definita.
4 bucla For dispune in coltul stanga
2 sus de un terminal ,notat cu 0-9 la care
trebuie legata o valoare care sa specifice
numarul de iteratii pe care bucla urmea/a sa
le e0ecute. In interiorul buclei se afla un
ter!inal nu!arator ,notat cu i- care
generea/a o valoare naturala repre/entand
indicele iteratiei curente ,aflate in curs de
e0ecutie-. Indicii iteratiilor sunt numerotati
incepand cu valoarea G9 astfel incat ultima
iteratie e0ecutata de catre bucla For va avea
indicele 0<1.
EXERCITIU
Introduceti in diagrama o bucla For. 7onectati terminalul unui element de control
numeric la terminalul 0 al buclei si terminalul unui element indicator numeric la terminalul
numarator al buclei. Introduceti in bucla o functie de asteptare9 astfel incat fiecare iteratie a
buclei sa se efectue/e in interval de doua secunde. .ulati programul si urmariti in panou
modificarea indicelui iteratiei curente.
1.%.' 1tructura repetitiva cu conditie de terminare ,bucla Wile-
4 bucla While e0ecuta portiunea de diagrama pe care o contine pana cand la
ter!inalul de continuare ,aflat in coltul dreapta 2 ;os- apare o anumita valoare booleana.
#igura !%
5tunci cand o bucla While este dispusa in
diagrama9 terminalul sau de continuare se afla in
starea implicita Continue /f ,rue.
Bucla va continua sa e0ecute iteratii succesive atat
timp cat la terminalul sau de continuare a;unge o
valoare logica ,rue. Daca la terminalul de
continuare a;unge o valoare logica False9 bucla
While nu mai trece la urmatoarea iteratie ci isi
incheie e*ecutia.
#igura !'
1tarea implicita a terminalului de
continuare poate fi modificata. *erminalul poate
fi trecut in starea Stop /f ,rue fie cu unealta de
operare9 fie apasand butonul drept al mouse2ului
si selectand starea din meniul propriu. In starea
Stop /f ,rue bucla While isi va inceia e0ecutia
atunci cand la terminalul de continuare a;unge
valoarea logica ,rue.
#igura !)
In coltul stanga 2 ;os9 bucla While dispune de un ter!inal nu!arator ,notat cu i-
care generea/a o valoare naturala repre/entand indicele iteratiei curente ,aflate in curs de
e0ecutie-. Indicii iteratiilor sunt numerotati incepand cu valoarea G.
EXERCITIU
Introduceti in diagrama o bucla While. 7onectati terminalul unui element de control
boolean de tipul Stop )utton la terminalul de continuare al buclei si terminalul unui element
indicator numeric la terminalul numarator al buclei. *receti terminalul de continuare al buclei
in starea Stop /f ,rue. Introduceti in bucla o functie de asteptare9 astfel incat fiecare iteratie a
buclei sa se efectue/e in interval de o secunda. .ulati programul si urmariti in panou
modificarea indicelui iteratiei curente. 5pasati butonul S,=% pentru a inceia e0ecutia buclei
While.
1.%.) .egistri de transfer in structuri repetitive
La e0ecutarea primei iteratii a unei bucle9 nu e0ista inca nici un transfer efectuat de
catre registru intre cele doua terminale ale sale. *erminalul stang al registrului nu a fost inca
Registrii de transfer sunt componente
ale structurilor repetitive ce pot fi utili/ate pentru
transferul unor alori intre doua sau !ai
!ulte iteratii succesie ale structurii.
(entru a adauga un registru de transfer unei
structuri repetitive ,bucla For sau While-9 se
selectea/a optiunea Add Shift Register din
meniul propriu al structurii.
#igura !7
8n registru de transfer contine doua
ter!inale ,stang si drept- dispuse pe conturul
structurii. 4 valoare conectata la terminalul drept
al registrului va ?apare? in terminalul stang la
iteratia urmatoare. 7u alte cuvinte9 terminalul
stang introduce in iteratia curenta valoarea ce a
fost transmisa la terminalul drept in iteratia
anterioara.
#igura !!
?alimentat? cu o valoare din iteratia precedenta. (entru a se putea efectua e0tragerea unei
valori din terminalul stang la prima iteratie9 se conectea/a la acest terminal o valoare din
e0teriorul buclei. 1e spune ca registrul de transfer se initializeaza.
4 structura repetitiva poate contine mai multi registri de transfer9 fiecare cu una sau
mai multe componente ale terminalului stang si fiecare transferand intre iteratii valori de
diverse tipuri.
EXERCITIU
Introduceti in diagrama o bucla While si adaugati2i acesteia doi registri de transfer.
(rin primul dintre registri transferati o valoare numerica aleatoare #9 iar prin cel de2al doilea o
valoare booleana9 obtinuta ca re/ultat al evaluarii e0presiei # N G+E. Initiali/ati cei doi registri
de transfer cu valori corespun/atoare. Dispuneti pe panou elemente indicatoare pentru afisarea
valorilor din iteratia curenta si din cea precedenta9 precum si un buton la a carui apasare
e0ecutia buclei While sa se inceie. Introduceti in bucla While o functie care sa determine o
asteptare de trei secunde la fiecare iteratie. 5pasati butonul Run9 apoi treceti in diagrama9
apasati butonul ;ighlight '*ecution si urmariti modul in care valorile sunt transferate intre
iteratii.
,'5A
1. 1a se reali/e/e un program care sa aprinda un ('D pentru trei secunde9 sa2l stinga pentru o
secunda9 apoi sa repete ciclul pNna la apasarea de catre utili/ator a unui buton S,=%.
>. 7onstruiti un program care sa simule/e functionarea unui semafor9 aprin/and succesiv cate
un ('D rosu9 galben sau verde.
('D2urile rosu si verde vor sta aprinse cate 1& secunde9 ('D2ul galben va sta aprins doua
secunde.
(rogramul va rula pana la apasarea de catre utili/ator a unui buton S,=%.
A. .eali/ati un program care sa simule/e functionarea unui semafor cu buton pentru pietoni.
7uloarea verde ,pentru autoveicule- va fi aprinsa continuu. 5tunci cand utili/atorul apasa un
buton9 se aprinde pentru trei secunde culoarea galbena9 se aprinde apoi pentru 1& secunde
culoarea rosie si se revine in final la culoarea verde.
*erminalul stang al unui registru de
transfer poate fi di!ensionat9 capatand astfel
mai multe co!ponente. Intr2o astfel de situatie9
valoarea transferata din iteratia anterioara se afla
in componenta superioara. De sus in ;os9 fiecare
componenta contine cate o valoare provenita
dintr2o iteratie mai indepartata. Dupa e0ecutarea
ultimei iteratii a buclei9 din terminalul drept al
registrului se poate e0trage ultima valoare
transferata acestuia.
#igura !$
Dupa un astfel de ciclu declansat de catre un pieton9 o alta eventuala apasare pe buton nu este
luata in considerare mai devreme de doua minute de la revenirea la culoarea verde.
B. 3odificati programul de la problema anterioara9 folosind o variabila locala a unei structuri
Sequence9 astfel incat9 daca pietonul apasa din nou butonul cat timp este aprinsa culoarea
galbena9 apasarea sa fie considerata drept anulare si semaforul sa revina imediat la culoarea
verde.
4 alta eventuala apasare pe buton nu este luata in considerare mai devreme de un minut de la
comanda de anulare.
E. 7ompletati cele doua programe anterioare prin adaugarea luminilor pentru pietoni.
6. 1a se reali/e/e un program care sa numere descrescator de la 2& la /ero9 la interval de o
secunda.
7. 1a se reali/e/e un program care sa numere crescator9 din unu On unu9 la interval de o
secunda9 pNna cNnd utili/atorul apasa un buton S,=%.
8. 1a se reali/e/e un program care9 On momentul On care utili/atorul introduce o valoare
numerica mai mare decNt cinci9 sa aprinda un ('D si sa se opreasca.
3. 1a se reali/e/e un program care sa genere/e continuu numere aleatoare9 la interval de &9'
secunde9 pNna cNnd valoarea generata 0 Ondeplineste conditia 0 H &9$7.
1G. 1a se reali/e/e un program care sa afise/e9 in milisecunde9 timpul scurs intre apasarile de
catre utili/ator a doua butoane.
11. 1a se reali/e/e un program care sa afise/e succesiv primele 1& numere pare9 la intervale de
doua secunde.
1>. 1a se reali/e/e un program care sa determine daca un numar specificat de catre utili/ator
este numar prim.
1A. Sa se realizeze un program pentru descompunerea unui numar natural par, strict
mai mare decat , intr!o suma de doua numere prime.
1B. .eali/ati un program care sa genere/e valori numerice aleatoare pana in momentul in care
obtine in trei iteratii consecutive valori mai mari sau egale cu o limita # impusa de catre
utili/ator.
1E. 1a se reali/e/e un program care sa permita introducerea de catre utili/ator a unor valori
numerice reale a si b9 sa astepte apasarea unui buton =L si apoi sa aprinda un ('D daca este
Ondeplinita conditia a O -.
16. .eali/ati un program care sa efectue/e urmatoarele:
2 sa afise/e doua numere naturale9 generate aleator intre 1 si 1&<
2 sa astepte pana in momentul in care utili/atorul9 dupa ce a introdus intr2un element de control
valoarea produsului celor doua numere9 apasa un buton =L<
2 sa compare valoarea introdusa de catre utili/ator cu produsul calculat al celor doua numere
aleatoare si sa aprinda un ('D daca raspunsul a fost corect<
2 daca raspunsul a fost incorect9 sa afise/e valoarea corecta<
2 sa afise/e timpul necesar utili/atorului pentru a da raspunsul<
2 sa afise/e numarul total de intrebari9 procenta;ul raspunsurilor corecte si timpul mediu de
raspuns<
2 sa rule/e pana la apasarea de catre utili/ator a unui buton S,=%.
1.E Functii pentru alori ectoriale ?Array@
1.'.1 Definirea tipului de date al unui 5rra6
1pre deosebire de elementele scalare9
care repre/entau o singura valoare9 de un
anumit tip ,numeric9 boolean9 alfanumeric-9
elementele vectoriale ,Array- pot contine9 intr2
o maniera ordonata9 !ai !ulte alori de
acelasi tip. (entru a fi dispus in panou9 un
element de tipul Array se selectea/a din
meniul Array 8 Cluster al paletei de
elemente. 5tunci cand un element de tipul
Array se dispune pe panou9 tipul datelor pe
care acesta le va contine nu este inca definit. 1e
spune ca elementul de tip Array este vid.
#igura $&
*erminalul din diagrama al
elementului este de culoare neagra. 1ageata
Run este sparta9 semn ca programul este
incomplet si nu poate fi rulat. (entru a defini
tipul de date9 in elementul de tip Array
trebuie introdus un element de control sau
indicator scalar de tipul dorit ,numeric9
boolean sau alfanumeric-. Elementul scalar ce
urmea/a a fi introdus in Array poate e0ista
de;a pe panou sau poate fi selectat la
momentul respectiv din paleta de elemente.
7and elementul scalar este adus deasupra
elementului Array9 inainte de a se elibera
butonul stang al mouse2ului9 conturul
elementului Array este marcat cu o linie
intrerupta ,Array2ul sesi/ea/a ca i se va
introduce un element scalar-
#igura $1
J
EXERCITIU
Dispuneti pe panoul unei aplicatii:
2 un Array cu valori numerice<
2 un Array cu valori booleene<
2 un Array cu valori alfanumerice.
*ransformati cele trei Array2uri din elemente de control in elemente indicatoare.
1.'.2 Definirea valorilor si a numarului de valori vi/ibile
5tunci cand este dispus in panou si ii este definit tipul de date9 un element de tip
Array afisea/a la un moment dat o singura valoare.
La eliberarea butonului mouse2ului9
elementul scalar apare in interiorul
elementului Array9 acesta din urma
modificandu2si corespun/ator dimensiunile.
In diagrama9 terminalul elementului scalar
dispare9 iar terminalul elementului Array
capata culoarea9 te0tul si grosimea de
cenar corespun/atoare datelor pe care le va
manipula.
(entru a modifica numarul de valori
afisate9 se po/itionea/a intai cursorul mouse2ului
pe un colt al elementului Array9 astfel incat pe
colturile acestuia sa apara patru simboluri ?echer?
. La aparitia celor patru simboluri ?echer?9 se
apasa butonul stang al mouse2ului si9 tinandu2l
apasat9 se deplasea/a mouse2ul astfel incat sa se
redimensione/e conturul elementului Arra
#igura $2
(e masura ce mouse2ul este deplasat9
conturul redimensionat al elementului Array este
marcat cu linie intrerupta. 5tunci cand conturul a
fost redimensionat astfel incat sa poata cuprinde
numarul dorit de valori9 se eliberea/a butonul
mouse2ului si elementul Array este afisat
redimensionat. .edimensionarea conturului se
poate efectua atat pe verticala cat si pe ori/ontala.
In partea sa stanga9 un element de tip Array
dispune de un inde*. /nde*ul unui element
Array indica nu!arul de ordine al valorii
afisate in po/itia superioara ,indicele valorii-.
Indicele primei valori dintr2un Array este &.
#igura $"
7and se modifica valoarea inde0ului unui Array9 valorile acestuia se deplasea/a astfel
incat in po/itia superioara sa fie afisata valoarea cu inde0ul selectat.
Daca9 in urma acestei deplasari9 unele valori nu mai sunt vi/ibile9 faptul nu ecivalea/a cu
stergerea acestora: valorile continua sa e0iste in cadrul Array2ului si pot fi vi/uali/ate prin
modificarea corespun/atoare a inde0ului.
#igura $'
EXERCITIU
3odificati numerele de valori vi/ibile ale celor trei Array2uri create in e0ercitiul anterior.
*ransformati Array2urile in elemente de control ,daca este ca/ul- si definiti valori in cadrul
acestora. 3odificati inde0ul fiecarui Array si observati modul in care valorile se deplasea/a.
1.'." Definirea numarului de dimensiuni
In mod implicit9 atunci cand este creat9 un Array are o singura dimensiune9 putand fi
descris drept o matrice coloana. Numarul de dimensiuni ale unui Array poate fi modificat prin
dimensionarea inde0ului acestuia: se po/itionea/a cursorul mouse2ului pe un colt al inde0ului9
astfel incat pe colturile acestuia sa apara patru simboluri ?echer?9 se apasa butonul mouse2ului
si se deplasea/a mouse2ul tinand butonul apasat9 pana cand inde0ul capata dimensiunea dorita.
Daca un Array are mai mult de o dimensiune9 se poate stabili afisarea mai multor linii si mai
multor coloane.
Imediat dupa ce i se defineste tipul de
date9 un Array nu contine nici o valoare ,este
id-. #aptul este semnali/at prin afisarea ?opaca?
a elementelor pe care Array2ul le contine. 5tunci
cand se defineste o valoare din Array9 aceasta
este afisata normal. Daca9 la un moment dat9
utili/atorul defineste o valoare si e0ista valori cu
indici mai mici inca nedefinite9 acestea vor capata
automat o valoare implicita9 in functie de tip.
#igura $%
#igura $)
(entru Array2urile cu doua sau mai multe dimensiuni9 cone0iunile sunt repre/entate cu
linie dubla. 1patiul intermediar al liniei duble este cu atat mai mare cu cat numarul de
dimensiuni ale Array2ului este mai mare.
EXERCITIU
3ariti numerele de dimensiuni ale Array2urilor create in e0ercitiile anterioare si afisati
mai multe linii si mai multe coloane. 4bservati ca9 atunci cand un Array cu o dimensiune este
transformat in unul cu doua dimensiuni ,matrice-9 valorile e0istente initial in Array sunt
distribuite pe prima linie a matricei. 4bservati comportamentul unei matrici la introducerea
unei valori anterior nedefinite. 3odificati inde0urile unei matrici si observati modul de
deplasare a valorilor.
1.'.% 7onstruirea 5rra62urilor in diagrama
*erminalul unui element Array se
caracteri/ea/a prin pre/enta unor parante/e drepte a
caror grosime este proportionala cu numarul de
dimensiuni. 5tunci cand se reali/ea/a legaturi in
diagrama9 cone0iunile pe care circula un Array cu o
dimensiune sunt mai groase decat cele pe care
circula valori scalare.
#igura $7
5tunci cand este necesara e0istenta in
diagrama a unei constante Array9 aceasta poate fi
selectata din meniul cu functii pentru valori
vectoriale ,Array- al paletei de functii. La
dispunerea sa in diagrama9 similar elementelor
Array de pe panou9 o astfel de constanta nu are
definit tipul de date pe care le va contine. Definirea
tipului de date se reali/ea/a prin introducerea in
cenarul constantei Array a unei constante de tipul
dorit ,numeric9 boolean sau alfanumeric-.
#igura $!
4 constanta Array permite aceleasi operatii de definire a numarului de valori vi/ibile
sau de modificare a numarului de dimensiuni ca si elementele Array din panou. (entru a
obtine in mod dinamic ,programatic-9 in diagrama9 structuri de valori de tipul 5rra69 pot fi
utili/ate o serie de functii specifice. #unctia /nitialize Array generea/a un Array cu una sau
mai multe dimensiuni9 continand aceeasi valoare ,conectata la intrarea ele!ent- in toate
po/itiile. Numarul de valori de2a lungul unei dimensiuni se specifica la intrarea di!ension
size a functiei.
5tunci cand este dispusa in diagrama9
functia are o singura intrare di!ension size9
generand astfel un Array cu o singura
dimensiune. Daca se doreste generarea unui
Array cu mai multe dimensiuni9 simbolul
functiei poate fi dimensionat. Daca la una
dintre intrarile di!ension size se conectea/a
valoarea G9 sau daca toate intrarile respective
sunt neconectate9 functia va genera un Array
vid.
#igura $$
#unctia )uild Array concatenea/a la
un Array una sau mai multe elemente cu un
numar de dimensiuni imediat inferior ,adauga
valori scalare la un Array cu o dimensiune9
adauga linii la matrici s.a.m.d.-.
5tunci cand este dispusa in diagrama9 functia
are o singura intrare. Numarul dorit de intrari
se obtine prin dimensionarea simbolului
functiei.
#igura 1&&
Daca la toate intrarile functiei sunt
legate elemente cu acelasi numar de
dimensiuni9 functia poate opera in doua
moduri9 dupa cum optiunea Concatenate
/nputs din meniul sau propriu este sau nu
activata:
2 daca optiunea este activata9 functia va
concatena intrarile si va obtine un Array cu
un numar de dimensiuni egal cu al intrarilor
,optiunea nu este valabila daca toate intrarile
sunt scalare-<
2 daca optiunea nu este activata9 functia va
obtine un Array cu un numar de dimensiuni
imediat superior celui al intrarilor ,Array cu
o dimensiune din valori scalare9 matrice din
linii s.a.m.d.-.
#igura 1&1
#gura 1&2
#unctia /nterleae 1D Array construieste un Array cu o singura dimensiune prin
intreteserea mai multor Array2uri avand de asemenea o singura dimensiune.
Array2ul re/ultat este format prin preluarea alternativa a cate unei valori din fiecare Array de
intrare. La dispunerea in diagrama9 functia contine doar doua intrari9 dar numarul acestora
poate fi modificat prin dimensionarea simbolului.
'#'RC/,/4
Inserati in diagrama o constanta Array de valori numerice9 cu o dimensiune9 continand
primele cinci numere naturale. Initiali/ati un Array cu o dimensiune9 continand de /ece ori
valoarea 7. 7onstruiti o matrice care sa contina pe prima linie re/ultatul concatenarii celor
doua Array2uri de mai sus9 iar pe a doua linie re/ultatul intreteserii valorilor acestora.
E0plicati de ce ultimele cinci valori de pe a doua linie a matricei sunt nule.
1.'.' #unctii informative pentru 5rra62uri
Daca Array2ul de intrare are 0 dimensiuni ,NH1-9 iesirea functiei este un Array cu o
dimensiune9 continand 0 elemente. De e0emplu9 daca la intrarea functiei se conectea/a o
matrice9 iesirea functiei va fi un Array cu doua elemente9 primul repre/entand numarul de linii
si al doilea numarul de coloane ale intrarii.
#unctia Array Size determina numarul
de valori dintr2un element de tip Array cu una
sau mai multe dimensiuni.
Daca Array2ul de intrare are o singura
dimensiune9 iesirea functiei va fi o valoare
scalara.
#unctia /nde* Array e0trage una sau
mai multe valori ai caror indici sunt specificati.
A"E&"IE: prima valoare dintr-un sir are
indexul ' !
5tunci cand este dispusa in diagrama9 functia /nde* Array are un singur terminal pentru
specificarea indicelui. 1imbolul functiei poate fi dimensionat astfel incat sa dispuna de mai
multe astfel de terminale. Daca la terminalele pentru indici nu se conectea/a valori9 functia va
lua in considerare valori implicite9 incepand cu &.
In mod implicit9 intrarea pentru indicele coloanei este de/activata ,dreptungi alb-.
7onectarea unei valori doar la intrarea pentru indicele liniei va determina e0tragerea din
matrice a intregii linii cu indicele respectiv. In mod similar9 conectarea unei valori doar la
intrarea pentru indicele coloanei va determina e0tragerea din matrice a intregii coloane cu
indicele respectiv. 7onectarea de valori atat la indicele liniei cat si la cel al coloanei va
determina e0tragerea din matrice a unei singure valori.
Daca la intrarea functiei /nde* Array
se conectea/a un Array cu doua dimensiuni9
un terminal pentru indice se transforma intr2un
terminal dublu9 cu o intrare pentru indicele
liniei si una pentru indicele coloanei.
#unctia Array Su-set e0trage o
portiune dintr2un Array. (entru fiecare
dimensiune a Array2ului de intrare9 functia
dispune de o intrare inde* ,po/itia din care va
incepe e0tractia- si de o intrare length ,numarul
de valori e0trase de2a lungul dimensiunii
respective-.
#unctia Search 1D Array cauta o valoare
intr2un Array unidimensional9 incepand de la un
indice de start specificat9 si returnea/a indicele
elementului gasit. Daca elementul cautat nu se afla
in 5rra69 atunci functia returnea/a valoarea <1.
#unctia Array 5a* 8 5in determina
valorile ma0ima si minima dintr2un Array de
valori numerice9 precum si indicii acestor valori
e0treme. Daca Array2ul de intrare are mai multe
dimensiuni9 indicii valorilor e0treme nu vor mai fi
valori scalare9 ci vor fi la randul lor Array2uri cu
un numar de valori egal cu numarul de dimensiuni
ale Array2ului de intrare.
#unctia /nterpolate 1D Array reali/ea/a
o interpolare pe valorile Array2ului de la intrarea
array of nu!-ers or points. Daca9 de e0emplu9
Array2ul de intrare contine valorile 19 >9 B si 69 iar
la intrarea fractional inde* or * este conectata
valoarea 1.79 functia va genera re/ultatul A.B
,dupa valoarea cu indicele 19 la 7& P din distanta
dintre aceasta si urmatoarea-.
In situatia in care gaseste o astfel de perece de valori consecutive9 iesirea fractional
inde* or * are partea intreaga egala cu indicele primei valori din perece9 partea fractionala
reflectand po/itia pragului intre cele doua valori.
EXERCITIU
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei.
1.'.) #unctii de ordonare pentru 5rra62uri
1ensul permutarilor este determinat de semnul valorii n:
2 daca nNG9 la fiecare permutare ultima valoare din Array trece pe prima po/itie<
2 daca nOG9 la fiecare permutare prima valoare din 5rra6 trece in ultima po/itie.
#unctia ,hreshold 1D Array reali/ea/a o
operatie inversa interpolarii: dispunand de un
Array de valori numerice si de un prag ,intrarea
threshold y-9 incepand de la un indice specificat9
functia cauta doua valori consecutive din Array
astfel incat prima sa fie mai mica decat pragul si a
doua mai mare sau egala cu acesta.
#unctia Rotate 1D Array efectuea/a n
permutari circulare ale valorilor dintr2un Array cu o
singura dimensiune.
#unctia Reerse 1D Array inversea/a
ordinea valorilor dintr2un Array unidimensional
#unctia Sort 1D Array sortea/a valorile
dintr2un Array unidimensional: crescator daca
valorile sunt numerice sau in ordine alfabetica daca
valorile sunt de tip alfanumeric ,String-.
EXERCITIU
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei
1.'.7 #unctii de modificare pentru 5rra62uri
5tunci cand la intrarea functiei se conectea/a un Array cu mai multe dimensiuni9
terminalele pentru indici capata intrari pentru linii si coloane ce pot fi activate sau de/activate
independent.
#unctia ,ranspose >D Array transpune o
matrice.
#unctia Reshape Array modifica numarul
de dimensiuni ale unui element de tip Array. De
e0emplu9 un Array unidimensional cu sase valori
poate fi transformat intr2o matrice cu trei linii si
doua coloane9 sau invers. Numarul de dimensiuni ale
re/ultatului va fi egal cu numarul de terminale
di!ension size ale simbolului functiei.
#unctia Replace Array Su-set
inlocuieste valori dintr2un Array9 incepand de
la un indice specificat. 1imbolul functiei poate
fi dimensionat pentru a permite inlocuiri
simultane in mai multe portiuni.
#unctia /nsert /nto Array inserea/a
valori intr2un Array9 incepand de la un indice
specificat. Numarul de valori din Array creste.
#unctia poate mari numarul de valori din Array
doar de2a lungul unei singure dimensiuni9 astfel
incat9 daca inserarea urmea/a a se efectua intr2
un Array cu 0 dimensiuni9 se vor putea insera
in acesta doar elemente cu 0 sau cu 0<1
dimensiuni ,de e0emplu9 nu se poate insera un
element scalar intr2o matrice-.
#unctia Delete Fro! Array sterge
dintr2un Array o portiune de marime
specificata ,intrarea length9 cu valoare implicita
1-9 incepand de la un indice specificat ,implicit
ultimul element-. 1tergerea se efectuea/a doar
de2a lungul unei singure dimensiuni: se sterg
elemente dintr2un Array cu o dimensiune9 linii
sau coloane dintr2o matrice etc ,nu se poate
sterge doar o valoare dintr2o matrice-.
#unctia dispune atat de o iesire pentru Array2ul din care s2a reali/at stergerea9 cat si de
o iesire pentru portiunea ce a fost stearsa. Numarul de dimensiuni ale celei de a doua iesiri
varia/a: este egal cu numarul de dimensiuni ale Array2ului de intrare daca a fost conectata o
valoare la intrarea length si este cu o unitate mai mic decat numarul respectiv daca intrarea
length a fost lasata neconectata.
Array2ul re/ultat la iesirea first su-array va contine valorile ce se aflau in Array2ul
initial pe po/itiile G9 19 ...9 inde*<1.
De e0emplu9 daca functia are trei iesiri9 valoarea cu indicele & este reparti/ata la prima
iesire9 cea cu indicele 1 la a doua9 cea cu indicele 2 la a treia9 cea cu indicele " din nou la
prima iesire9 cea cu indicele % la a doua s.a.m.d.
EXERCITIU
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei.
1.'.! Elementele 5rra6 si structurile repetitive
#unctia Split 1D Array divide un
Array unidimensional in doua Array2uri9 locul
in care se efectuea/a divi/area fiind determinat
de valoarea conectata la intrarea inde* a
functiei.
#unctia Deci!ate 1D Array imparte un
Array intial intr2un numar de Array2uri egal cu
numarul de iesiri. Initial9 functia are doua iesiri9
dar numarul acestora poate fi modificat prin
dimensionarea simbolului functiei. Valorile din
Array2ul initial sunt reparti/ate alternativ
Array2urilor de iesire.
5tunci cand9 in diagrama9 un Array
este conectat la o structura repetitiva For9
bucla respectiva va prelua9 la fiecare iteratie a
sa9 doar cate o valoare din Array. Valoarea
preluata la o iteratie este cea cu indicele din
Array egal cu indicele iteratiei buclei. In
aceasta situatie9 nu mai este necesara
conectarea unei valori la terminalul 0 al
buclei. 5ceasta va e0ecuta atatea iteratii cate
valori sunt in Array2ul de intrare. Daca se
conectea/a totusi o valoare la terminalul 09
bucla For va e0ecuta un numar de iteratii
egal cu minimul dintre acea valoare si
numarul de valori din Array.
Daca9 din interiorul unei bucle For9 o valoare scalara este conectata la conturul acesteia9 atunci
cand bucla isi inceie ultima iteratie9 valorile scalare a;unse pe contur in toate iteratiile vor
parasi bucla grupate intr2un Array.
Daca se alege optiunea Disa-le /nde*ing pentru o componenta de pe contur la care
sunt conectate valori din interiorul buclei9 din acea componenta9 dupa inceierea ultimei
iteratii9 va parasi bucla doar valoarea din ultima iteratie. Valorile ce au a;uns pe contur in toate
celelalte iteratii vor fi pierdute.
7omportamentul buclei la intrarea
unui Array poate fi modificat: daca9 din
meniul propriu al componentei de pe
conturul buclei9 se alege optiunea Disa-le
/nde*ing9 la fiecare iteratie a buclei va fi
preluat intreg Array2ul de intrare. In acest
ca/9 este necesar ca o valoare sa fie
conectata la terminalul 0 al buclei.
7onsiderentele de mai sus sunt
valabile pentru Array2uri de orice
dimensiune:
dintr2o matrice9 se poate prelua la
fiecare iteratie a buclei fie cate o
linie9 fie intreaga matrice<
daca un Array unidimensional din
interiorul buclei este conectat pe
conturul acesteia9 la inceierea
ultimei iteratii componenta buclei va
genera fie o matrice9 fie doar Array2
ul primit in ultima iteratie.
3odurile in care un Array se poate comporta la intrarea sau la iesirea dintr2o structura
repetitiva sunt valabile si in ca/ul buclelor While9 cu deosebirea ca9 in ca/ul acestora9
comportamentul implicit este inversat:
in mod implicit9 o bucla While va prelua la fiecare iteratie intreg Array2ul de intrare.
Doar in ca/ul in care componentei de pe contur i se selectea/a9 din meniul propriu9
optiunea 'na-le /nde*ing9 bucla While va prelua cate o valoare la fiecare iteratie.
mod implicit9 daca o valoare din interiorul unei bucle While se conectea/a la conturul
acesteia9 componenta de pe contur va genera9 dupa inceierea e0ecutiei buclei9 doar
valoarea primita in ultima iteratie. Doar daca se selectea/a optiunea 'na-le /nde*ing a
componentei de pe contur9 aceasta va genera9 dupa inceierea ultimei iteratii9 un Array
cuprin/and valorile primite in cadrul tuturor iteratiilor.
EXERCITIU
.eali/ati un program care sa e0emplifice modul in care Array2urile se pot comporta la
intrarea sau la iesirea din buclele For sau While.
1.'.$ 5lte functii pentru elemente 5rra6
#unctiile aritmetice si logice pentru valori scalare9 precum si cele pentru valori
alfanumerice9 permit conectarea de Array2uri continand valori de tipurile corespun/atoare.
1e pot astfel reali/a:
operatii aritmetice asupra valorilor dintr2un Array ,radacina patrata9 functii
trigonometrice etc.-9 intre un Array si o valoare scalara sau intre doua Array2uri<
operatii logice intre un Array si o valoare booleana sau intre doua Array2uri cu valori
booleene<
operatii asupra Array2urilor de valori alfanumerice.

a- b- c-
#igura 1&"
#unctiile Add Array 'le!ents si
5ultiply Array 'le!ents determina suma9
respectiv produsul valorilor numerice dintr2un
Array. #unctiile And Array 'le!ents si =r
Array 'le!ents efectuea/a operatiile logice
S/9 respectiv SA49 asupra tuturor valorilor
booleene dintr2un Array9 obtinand o valoare
booleana scalara.

5tunci cand au drept operan/i un Array si o valoare scalara sau doua Array2uri9
functiile de comparatie generea/a un Array de valori booleene9 compararea fiind efectuata
valoare cu valoare.
Bitul cel mai putin semnificativ este repre/entat in Array de valoarea cu indicele G. De
e0emplu9 valoarea 6PG6>
1
6>
>
este transformata intr2un Array cu trei valori booleene: ,False9
,rue9 ,rue-.
E"E#$%&%'
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei.
,'5A
1. 1a se calcule/e diferenta dintre valorile ma0ima si minima dintr2un Array de valori
numerice.
>. 1a se verifice prin aprinderea unui ('D daca valoarea minima dintr2un Array de valori
numerice apare Onaintea valorii ma0ime.
Daca9 din meniul propriu al functiei de
comparatie9 se alege optiunea Co!pare
Aggregates9 functia va genera o valoare
booleana scalara. De e0emplu9 daca se
compara doua Array2uri de valori numerice
cu functia 'qual: in starea Co!pare
Aggregates9 functia va genera valoarea ,rue
doar daca este indeplinita conditia de egalitate
intre toate perecile de valori aflate pe aceleasi
po/itii in cele doua Array2uri.
#igura 1&%
#unctia 0u!-er ,o )oolean Array9
aflata in meniul pentru functii booleene9
transforma un numar natural intr2un Array de
valori booleene9 efectuand de fapt
transformarea din ba/a 1G in ba/a >.
#unctia )oolean Array ,o 0u!-er
reali/ea/a transformarea inversa9 dintr2un
Array de valori booleene intr2un numar
natural.
A. 1a se verifice prin aprinderea unui ('D daca un Array de valori numerice contine un
numar par de valori.
B. 1a se ordone/e descrescator un Array de valori numerice.
E. 1a se calcule/e produsul dintre minimul elementelor de rang par si ma0imul elementelor de
rang impar ale unui Array de valori numerice.
6. 1a se calcule/e suma dintre primul si ultimul element ale unui Array de valori numerice.
7. 1a se calcule/e media elementelor ramase dupa eliminarea valorilor minima si ma0ima
dintr2un Array de valori numerice.
&. #iind date un Array de valori numerice si doua valori numerice scalare a si -9 sa se insere/e
valoarea a On prima po/itie din Array si valoarea - On ultima po/itie a acestuia.
3. 1a se determine numarul de valori ,rue dintr2un Array de valori booleene ,logice-.
1G. 1a se calcule/e suma celor trei valori aflate On mi;locul un Array ce contine un numar
impar de valori numerice.
11. 1a se reali/e/e un program pentru generarea unui Array de '& de numere aleatoare
cuprinse Ontre 01 si 0> ,01 si 0> specificate de catre utili/ator-.
1>. 1a se reali/e/e un program pentru generarea unui Array de '& de valori booleene
aleatoare9 astfel OncNt probabilitatea de aparitie a valorii logice ,rue sa fie &97.
1A. 1a se genere/e un Array ale carui valori sa repre/inte dublul numerelor de la & la 1&&.
1B. 1a se reali/e/e un program pentru calculul valorilor Array2ului ,a
i
G sin i-< i G &9 ...9 ")&9 i
e0primat On grade.
1E. 1a se reali/e/e un program pentru calculul e0presiei 0C ,factorial-9 cu valoarea 0
specificata de catre utili/ator.
16. 1a se reali/e/e un program pentru transformarea repre/entarii unui numar 0 ,specificat de
catre utili/ator- din cod /ecimal On cod binar. .epre/entarea in cod binar sa fie sub forma unui
te0t format din caracterele G si 1.
17. 1a se reali/e/e un program pentru transformarea repre/entarii unui numar 0 ,specificat de
catre utili/ator- din cod binar ,te0t format din caracterele G si 1- On cod /ecimal.
1&. 1a se genere/e o matrice cu 1& de linii si " coloane de numere aleatoare aflate On intervalul
,%9 7-<
13. 1a se genere/e o matrice cu 2& de linii si " coloane On care elementele de pe primele doua
coloane sa fie numere aleatoare9 iar fiecare element de pe a treia coloana sa fie suma
numerelor aflate pe primele doua coloane ale aceleiasi linii<
>G. 1a se genere/e o matrice cu ") de linii si " coloane On care elementele de pe prima coloana
sa fie multipli ai lui 1&9 iar elementele de pe coloanele a doua si a treia sa repre/inte sinusul si
cosinusul valorii ,e0primate On grade- de pe prima coloana si aceeasi linie<
>1. 1a se genere/e o matrice cu '& de linii si 2 coloane On care elementele de pe prima coloana
sa fie numere naturale succesive9 iar un element de pe a doua coloana sa repre/inte aria unui
cerc cu ra/a egala cu valoarea de pe prima coloana si aceeasi linie<
>>. 1a se reali/e/e un program care sa afise/e primii /ece multipli ai lui ).
>A. 1a se determine elementul ma0im al multimii formate din termenii de rang impar si
elementul minim al multimii formate din termenii de rang par ai unui Array de valori
numerice9 precum si rangurile pe care apar aceste elemente On Array.
>B. #iind date doua valori numerice a si -9 cu a mai mic decNt -9 sa se determine numarul de
elemente dintr2un Array aflate intre a si -.
>E. 1a se determine numarul de valori strict po/itive9 nule9 respectiv negative dintr2un Array
de valori numerice.
>6. 1a se elimine dintr2un Array valorile ce se afla On afara unui interval dat Qa9 -R.
>7. 1a se verifice daca valorile numerice dintr2un Array formea/a un sir monoton9 iar in ca/
afirmativ sa se indice daca sirul este crescator sau descrescator.
>&. 1a se elimine dintr2un Array elementele care se repeta.
>3. Sa se determine primele N perechi de numere prime p si q care indeplinesc
conditia q - p = 2.
AG. Sa se descompuna un numar natural par, strict mai mare decat , intr!o suma de
doua numere prime.
A1. Sa se descompuna un numar natural intr!o suma de puteri ale lui (de ex. ()* +
)
,
-
,
.
,
(
).
A>. Sa se determine primele N numere naturale egale cu suma divizorilor lor din care
se exclude numarul insusi (de ex. / + ( , , .).
AA. Sa se determine c.m.m.d.c. a doua numere naturale nenule.
AB. Sa se determine c.m.m.m.c. a doua numere naturale nenule.
AE. Sa se realizeze un program pentru simplificarea unei fractii a/, unde a si sunt
numere intregi.
A6. Sa se genereze toate permutarile primelor N numere naturale.
A7. Sa se determine toate numerele naturale cuprinse 0ntre doua limite date m si n, care au
proprietatea ca reprezentarile 0n 1aza ale patratului si cu1ului lor contin acelasi numar de cifre 1inare
cu valoarea (.
1.6 Date de tip Cluster
1.).1 Elemente de tip 7luster
Elementele de tip Cluster sunt structuri de date ce pot contine mai multe valori9 de
tipuri si dimensiuni diferite. 8n Cluster poate contine9 de e0emplu9 o valoare numerica9 doua
booleene si una alfanumerica ,te0t-9 sau poate contine o combinatie de valori scalare9
vectoriale si ciar alte elemente de tip Cluster ,de e0emplu9 o valoare numerica9 un Array de
valori booleene si un Cluster format din trei valori alfanumerice si una booleana-.
(entru a fi introdus in panoul unei
aplicatii9 un element de tip Cluster se
selectea/a din meniul Array 8 Cluster al
paletei de functii. Imediat dupa ce este dispus
pe panou9 un Cluster este o structura vida ,un
cenar-9 nu contine nici o valoare.
Definirea structurii de valori dintr2un Cluster
se reali/ea/a prin introducerea in cenarul sau
a unor elemente de tipurile dorite.
1imilar modului de definire a tipului
elementelor Array9 atunci cand un element
este po/itionat deasupra cenarului unui
Cluster9 inainte ca utili/atorul sa ridice
butonul stang al mouse2ului9 cenarul
elementului Cluster este repre/entat cu linie
intrerupta.

#igura 1&'
EXERCITIU
Dispuneti pe panou un element de tip Cluster si introduceti in cenarul acestuia:
un element pentru valori numerice
un Array cu valori booleene
un alt Cluster9 care sa contina doua elemente de tip String si un element pentru valori
numerice
1.).2 3eniul propriu al elementelor de tip 7luster
La selectarea acestei optiuni9 panoul aplicatiei devine negru iar programul asteapta ca
utili/atorul sa indice succesiv9 prin clic>2uri cu mouse2ul9 elementele cu indicii &9 19 2 s.a.m.d.
1ubmeniul Autosizing din meniul
propriu al unui element de tipul Cluster
permite:
modificarea dimensiunilor
cenarului9 astfel incat acesta sa se
?mule/e? pe multimea de elemente
din interior ,optiunea Size to Fit-
alinierea pe ori/ontala sau pe
verticala a elementelor din
interiorul cenarului
Elementele de diverse tipuri din
interiorul unui Cluster sunt o multime
ordonata. 4rdinea elementelor este cea in
care acestea au fost introduse in elementul
Cluster. 4ptiunea Reorder Controls /n
Cluster... permite modificarea indicilor
elementelor ,numerelor de ordine-.
#igura 1&)
Indicele pe care il va capata
elementul pe care se va efectua urmatorul
clic> este mentionat in dreptul te0tului
ClicI to set to ,initial &-. Langa fiecare
element sunt afisati cate doi indici.
Indicele avut de element inainte de
inceperea modificarilor este scris cu
negru pe fond alb. Indicele modificat este
scris cu alb pe fond negru. Validarea
modificarilor se efectuea/a prin apasarea
butonului =L. 5nularea modificarilor
indicilor si revenirea la situatia anterioara
se efectuea/a prin apasarea butonului
marcat cu #.
#igura 1&7
EXERCITIU
(entru elementul de tip Cluster creat in e0ercitiul anterior:
aliniati elementele comnponente pe verticala
configurati cenarul la optiunea Size to Fit
modificati ordinea elementelor in Cluster
1.)." #unctii pentru elemente de tip 7luster ,1-
#unctiile specifice elementelor de tipul Cluster sunt grupate in meniul cu acelasi nume
al paletei de functii.

#unctia 4n-undle permite separarea
elementelor unui Cluster.
5tunci cand o functie 4n-undle este dispusa in
diagrama9 ea poseda doua iesiri si poate fi
dimensionata. 7and se reali/ea/a o legatura intre
terminalul unui Cluster si o functie 4n-undle9
functia se dimensionea/a automat9 corespun/ator
numarului de elemente din Cluster. Iesirile
functiei capata culori si inscriptii corespun/atoare
elementelor componente.
Iesirea din po/itia superioara
corespunde elementului cu indicele &9 cea
imediat de sub ea elementului cu indicele
1 s.a.m.d.
#unctia )undle grupea/a mai multe
valori ,elemente- intr2o structura de tip Cluster.
In mod implicit functia poseda doua intrari dar
poate fi dimensionata. Daca la intrarea cluster a
functiei )undle nu se conectea/a nimic9 atunci la
toate intrarile sale trebuie sa e0iste cone0iuni9
pentru a defini complet structura elementului
Cluster re/ultant. Daca la intrarea cluster se
conectea/a o structura de date9 simbolul functiei
)undle se dimensionea/a automat9 iar intrarile
sale capata culori si inscriptii conform structurii
de date conectate. In aceasta situatie9 nu mai este
necesar ca la toate intrarile functiei sa fie
conectate valori.
#unctia nu mai creea/a o noua structura ci
inlocuieste9 in structura legata la intrarea cluster9
eventualele valori conectate la unele din intrarile
sale.
Daca elementele din interiorul unui
Cluster poseda eticete ,la-el-9 separarea
acestora se poate efectua si cu a;utorul functiei
4n-undle )y 0a!e. 5tunci cand la intrarea sa
se conectea/a un Cluster9 iesirile functiei
4n-undle )y 0a!e capata nume ce corespund
eticetelor componentelor elementului Cluster.
Daca functia are mai putine intrari decat numarul
elementelor din Cluster9 numele sunt atribuite in
ordinea elementelor. 1imbolul functiei 4n-undle
)y 0a!e poate fi dimensionat. Numele atribuit
unei iesiri ,si implicit elementul din Cluster ce se
obtine la iesirea respectiva- poate fi modificat:
facand clic> cu unealta de operare pe
iesirea respectiva9 apoi selectand numele
dorit din meniul care se descide
desci/and meniul propriu al functiei
,clic> cu butonul drept al mouse2ului- si
selectand numele dorit din submeniul
Select /te!.

pt al mouse2ului- si selectand numele dorit


#igura 1&!
EXERCITIU
(entru elementul de tip Cluster din e0ercitiile anterioare9 testati modurile de utili/are
ale functiilor descrise mai sus.
1.).% #unctii pentru elemente de tip 7luster ,2-
#unctia )undle )y 0a!e modifica
valoarea unuia sau mai multor elemente dintr2un
Cluster ale carui componente poseda eticete.
1imbolul functiei poate fi dimensionat. Numele
elementului corespun/ator unei intrari poate fi
modificat prin aceleasi metode ca si in ca/ul
functiei 4n-undle )y 0a!e. Este obligatorie
conectarea la intrarea input cluster a functiei a
unei structuri de date corespun/atoare. In ca/
contrar9 functia nu isi poate defini numele
intrarilor.
#igura 1&$
#unctia )uild Cluster Array preia un
numar de elemente de tip Array ,simbolul
functiei poate fi dimensionat-9 introduce fiecare
Array intr2un Cluster si combina toate aceste
elemente Cluster intr2un element Array
re/ultant. *oate elementele Array de la intrare
trebuie sa fie de acelasi tip.
EXERCITIU
(entru fiecare dintre functiile pre/entate mai sus9 construiti cate un program care sa
e0emplifice modul de utili/are a functiei.
1.7. .epre/entari grafice
1.7.1 Elemente pentru repre/entari grafice
#unctia /nde* 8 )undle Cluster
Array creea/a un Array de elemente Cluster.
Elementul Cluster cu indicele i contine
valorile cu indicii i din elementele Array de la
intrare. Elementele Array de la intrare pot fi
de tipuri diferite.
#unctia Cluster ,o Array dispune
elementele dintr2un Cluster intr2un Array.
Elementele din Cluster trebuie sa fie de acelasi
tip.
#unctia Array ,o Cluster dispune
valori dintr2un Array intr2un Cluster. Numarul
de elemente din Cluster se stabileste selectand9
din meniul propriu al functiei9 optiunea Cluster
Size... ,implicit $-. Daca in elementul Array se
afla mai multe valori decat numarul de
elemente din Cluster9 atunci vor fi preluate
doar o parte dintre acestea si anume primele.
#igura 11&
3ediul de programare (a-./'W
dispune9 in meniul "raph al paletei de
controale9 de o serie de elemente pentru
repre/entari grafice. 7ele mai utili/ate sunt cele
aflate pe prima linie a meniului "raph:
elementele Waefor! Chart ,numit pe scurt
Chart-9 Waefor! "raph ,numit pe scurt
"raph- si #$ "raph. Diferentele intre cele trei
elemente sunt repre/entate de modurile in care
acestora li se transmit coordonatele punctelor
prin care va fi trasat graficul.
#igura 111
EXERCITII
Dispuneti pe panoul unei aplicatii un element Waefor! Chart9 unul Waefor!
"raph si unul #$ "raph.
3odificati atat dimensiunile elementelor cat si dimensiunile /onelor lor de afisare
,/onele interioare de culoare neagra-
7u unealta de operare9 modificati valorile de la capetele scalelor
7u unealta de editare a te0telor9 modificati numele ,eticetele- scalelor
1.7.2 Elementul Waveform 7art
8n element Chart accepta nu numai valori trimise punct cu punct ,scalare- ci si siruri
de valori ,Array-. 5tunci cand primeste un sir de valori ,considerate de asemenea tot ordonate
ale punctelor-9 un element Chart adauga la sfarsitul graficului de;a e0istent nu un singur punct
ci un numar de puncte egal cu numarul de valori din sirul primit.
8nui element de tip Chart i se pot
trimite in mod succesiv9 punct cu punct9
valorile ordonatelor punctelor pe care sa le
trase/e grafic. In figura alaturata9 bucla While
e0ecuta cate o iteratie la fiecare trei secunde
,datorita functiei Wait ?!s@-. La fiecare
iteratie9 functia Rando! 0u!-er ?G<1@ trimite
cate o valoare aleatoare la elementul Chart.
#igura 112
8n element de tip Chart considera
valorile succesive pe care le primeste drept
ordonate ale punctelor de pe grafic. 5bscisele
punctelor sunt considerate automat crescatoare
din unitate in unitate ,& pentru prima valoare
primita9 1 pentru a doua s.a.m.d.-. 5tunci cand
primeste o noua valoare9 un element Chart
trasea/a un segment de dreapta din punctul cel
mai recent ,ultimul de pe grafic- pana in
punctul determinat de noua valoare primita.
#igura 11"
In figura 11%9 la fiecare iteratie a
buclei While ,la fiecare trei secunde-9 bucla
For generea/a un sir ,Array- de sapte valori
aleatoare9 sir ce este trimis elementului Chart
Daca un element Chart primeste o matrice de
valori numerice ,Array cu doua dimensiuni-9
atunci el va trasa simultan un numar de
grafice egal cu numarul de linii ale matricei.
EXERCITIU
7onstruiti diagramele din figurile de mai sus si verificati modul de functionare.

1.7." Elementul Waveform Arap
8n element de tip "raph nu accepta valori individuale ,scalare- ci numai siruri
,Array- de valori.
8n element de tip "raph considera de asemenea valorile succesive pe care le primeste
drept ordonate ale punctelor de pe grafic. In modul implicit9 abscisele punctelor sunt
considerate automat crescatoare din unitate in unitate ,& pentru prima valoare primita9 1 pentru
a doua s.a.m.d.-.
Elementele de tip "raph permit insa9 suplimentar9 definirea abscisei primului punct si
a distantei pe ori/ontala dintre doua puncte succesive. In aceasta situatie9 valorile *
G
si * se
introduc ,printr2o functie )undle- intr2un Cluster impreuna cu sirul de valori ce repre/inta
ordonatele punctelor9 iar la terminalul elementului "raph se conectea/a iesirea functiei
)undle ,figura de mai ;os-.
1pre deosebire de elementele
Chart9 atunci cand primeste un sir de
valori9 elementul "raph sterge graficul
pe care il afisase anterior si afisea/a doar
graficul format din noile puncte primite.
Araficul din figura alaturata se va
scimba la fiecare trei secunde. Valorile
afisate anterior se vor pierde.
#igura 11'

#ifura 11) #igura 117
Daca un element "raph primeste o matrice de valori numerice ,Array cu doua
dimensiuni-9 atunci el va trasa simultan un numar de grafice egal cu numarul de linii ale
matricei. In situatia in care se trasea/a mai multe grafice si se doresc definirea abscisei *
G
a
primului punct si a distantei * pe ori/ontala dintre doua puncte succesive9 marimile
respective vor fi aceleasi pentru toate graficele. In functia )undle9 la cea de a treia intrare se
conectea/a matricea de valori.
EXERCITIU
7onstruiti diagramele din figurile de mai sus si verificati modul de functionare
.
1.7.% Elementul @D Arap
In figura alaturata este pre/entat un program pentru trasarea graficului functiei sinus
intre & si 2 prin 1&1 puncte. 1tabilind ca punctele vor fi la distante egale pe ori/ontala9 se determina intai
distanta * pe abscisa dintre doua puncte succesive9 impartind la 1&& intervalul de trasare9 de lungime 2.
8n element de tip #$ "raph accepta
la intrare un Cluster format din doua siruri
,Array- de valori. (rimul sir repre/inta
abscisele iar cel de2al doilea ordonatele
punctelor de pe grafic. Evident9 cele doua
siruri trebuie sa contina acelasi numar de
valori.
5tunci cand se primeste o astfel de structura
de date9 graficul anterior este sters.
Intr2o bucla For cu numarul de
iteratii egal cu numarul de puncte se
determina la fiecare iteratie abscisa
unui punct cu relatia si se calculea/a
ordonata La iesirea din bucla For9
sirurile de valori *
i
si y
i
sunt grupate
intr2un cluster ,cu functia )undle-9 iar
acesta este trimis la terminalul
elementului #$ "raph. Daca se
doreste trasarea simultana a mai
multor grafice:
se construieste pentru fiecare
grafic cate un Cluster format
din doua Array2uri ,unul
pentru abscisele si altul pentru
ordonatele punctelor-<
iesirile functiilor )undle se
conectea/a la o functie )uild
Array<
iesirea functiei )uild Array se
conectea/a la terminalul
elementului #$ "raph.
#igura 11$
#igura 12&
EXERCITIU
7onstruiti diagramele din figurile de mai sus si verificati modul de functionare.
1.7.' 4ptiuni specifice elementelor pentru repre/entari grafice
In meniul propriu al
elementelor pentru repre/entari
grafice9 submeniul .isi-le /te!s
contine o serie de optiuni pentru
afisarea unor componente
specifice.
#igura 121
4ptiunea %lot (egend afisea/a o
legenda ce poate fi po/itionata independent
sau dimensionata pentru a avea un numar
de po/itii egal cu numarul de grafice
repre/entate.
Numele graficelor ,initial %lot G9 %lot 1
s.a.m.d.- pot fi modificate cu a;utorul
uneltei de editare a te0telor. 5pasand
butonul drept al mouse2ului atunci cand
cursorul este po/itionat deasupra unui
grafic din legenda9 se descide un meniu
propriu din care pot fi configurate optiuni
de afisare ale graficului respectiv: culoare9
tip si grosime de linie etc.
#igura 122
4ptiunile # Scale si $ Scale din meniul propriu permit configurarea unor parametri ai
modului de afisare a scalelor.
#igura 12'
4ptiunea Scale (egend afisea/a o
componenta ce permite configurarea
modului in care sunt afisate scalele
elementului de repre/entare grafica:
eticeta scalei9 format si preci/ie de
repre/entare9 vi/ibilitatea scalei sau a
eticetei acesteia9 culoarea caroia;ului.
(entru fiecare scala sunt disponibile:
un buton ,notat cu # sau $- la a
carui apasare se reali/ea/a o
autoscalare pe directia respectiva
un buton ,marcat cu un lacat- care9
atunci cand este apasat9 mentine
continuu autoscalarea pe directia
corespun/atoare.
#igura 12"
4ptiunea "raph %alette
afisea/a o componenta cu unelte ce
permit:
deplasarea graficelor in
interiorul elementului
,butonul cu manuta-
desciderea unui submeniu
cu unelte pentru marire sau
micsorare statica pe diverse
directii sau dinamica.

#igura 12%
EXERCITII
1 .eali/ati un program in care9 intr2un element de tip Chart9 sa fie trasate doua grafice
cu valori aleatoare ,unul intre & si 19 celalalt intre 2 si "-.
2 5fisati componentele %lot (egend9 Scale (egend si "raph %alette ale elementului
de tip Chart.
" 3odificati modurile in care sunt afisate cele doua grafice ,culoare9 tip si grosime de
linie9 stilul punctelor-.
% 5fisati graficele sub forma de istograme.
' 3odificati modul de interpolare al graficelor.
) 8mpleti /ona de sub un grafic sau /ona dintre cele doua grafice.
7 3odificati eticetele scalelor.
! 5utoscalati graficul pe a0a $.
$ 3odificati formatul si preci/ia de repre/entare a valorilor de pe cele doua scale.
1& 5fisati un caroia; rosu.
11 E0ersati lucrul cu uneltele de marire sau micsorare a imaginii din componenta "raph
%alette.
12 E0ersati configurarea unor parametri ai modului de afisare a scalelor ,optiunile #
Scale si $ Scale din meniul propriu al elementului de tip Chart-.
1.7.) 4ptiuni specifice elementelor de tip 7art
In submeniul .isi-le /te!s al
elementelor de tip Chart e0ista
cateva optiuni specifice acestor
elemente. 4ptiunea Digital Display
conduce la afisarea unui numar de
elemente indicatoare pentru valori
numerice egal cu numarul de po/itii
ale legendei. Valoarea afisata de
catre fiecare element indicator este
cea a ultimului punct de pe graficul
corespun/ator.
#igura 12)
#igura 127
Daca unui element Chart i se trimit mai multe valori decat acest numar9 valorile cele
mai veci se pierd si nu mai sunt vi/ibile la o eventuala ?defilare? a graficului.
EXERCITII
(entru elementul de tip Chart din e0ercitiul anterior:
afisati displa62urile digitale si bara de defilare<
defilati graficul cu a;utorul barei<
impartiti /ona de afisare a elementului Chart in doua portiuni distincte.
4ptiunea Scroll-ar conduce la
afisarea unei bare de defilare ce permite
deplasarea pe directie ori/ontala a
graficelor afisate. 1electarea din meniul
propriu al elementului Chart a optiunii
,ranspose Array reali/ea/a transpunerea
matricei de valori9 astfel incat nu se mai
trasea/a cate un grafic pentru fiecare linie
ci cate unul pentru fiecare coloana.
#igura 127
In ca/ul afisarii mai multor
grafice9 optiunea StacI %lots imparte
/ona de afisare in mai multe portiuni
distincte9 cate una pentru fiecare grafic9
cu scale separate pe a0a $. 4ptiunea
Chart ;istory (ength... permite
utili/atorului sa stabileasca numarul de
valori ce pot fi stocate in ?memoria
interna? a elementului Chart ,implicit
1&2%-.
#igura 12!
1.7.7 4ptiuni specifice elementelor de tip Arap si @D Arap
In submeniul .isi-le /te!s al elementelor de tip Waefor! "raph sau #$ "raph9
optiunea Cursor (egend determina afisarea unei componente prin intermediul careia
utili/atorul poate afisa si manipula unul sau mai multe cursoare.
#igura 1"&
7omponenta Cursor (egend este
formata dintr2o lista de cursoare si un
ele!ent pentru co!anda deplasarii
cursorului. In lista de cursoare ,initial cu
doua linii vide-9 fiecarei linii ii corespunde un
cursor. Lista poate fi dimensionata.
(entru a adauga un nou cursor9 este suficient
sa se introduca un nume al acestuia sau sa se
apese oricare din cele trei butoane de pe linia
corespun/atoare.
(entru a sterge un cursor sau a insera un nou
cursor intr2o anumita po/itie9 din meniul
propriu al paletei de cursoare9 submeniul
Data =perations9 se aleg optiunile Delete
'le!ent sau /nsert 'le!ent )efore.
#igura 12$
4 linie corespun/atoare unui cursor
contine9 in partea sa stanga9 un element
pentru numele cursorului si doua elemente
pentru coordonatele # si $ ale acestuia.
In partea sa dreapta9 fiecare linie
corespun/atoare unui cursor contine trei
butoane:
un buton pentru activarea elementului
de comanda a deplasarii: daca acest
buton are LED2ul propiu aprins9
atunci cursorul poate fi deplasat
apasand pe unul din cele patru
butoane romboidale ale elementului
pentru comanda deplasarii cursorului.
Daca LED2ul butonului este stins9
elementul de comanda nu este activ.
un buton pentru configurarea
caracteristicilor cursorului ,culoare9
stil9 forma punctului central9 stilul si
grosimea firelor reticulare s.a.m.d.-
#igura 1"1
#igura 1"2
un buton prin care se activea/a sau nu posibilitatea de deplasare a cursorului cu unealta
de operare ,Allo2 Drag-9 se ?leaga? cursorul de un anumit grafic ,(ocI to plot- sau de
punctele acestuia ,Snap to point- sau se lasa cursorul liber ,Free-.
Daca un cursor are optiunea Allo2 Drag activata9 el va putea fi deplasat cu unealta de
operare daca butonul din stanga al componentei "raph %alette este activat ,are LED2ul
aprins-. Deplasarea se poate efectua fie ?tragand? de punctul central al cursorului9 fie de
unul dintre firele reticulare.
4servatie
Elementele pentru nume si coordonate9 precum si butoanele9 pot fi dimensionate.
Elementele pentru nume si coordonate poseda meniuri proprii individuale.
EXERCITII
.eali/ati un program in care9 intr2un element de tip Waefor! "raph9 sa fie trasate
doua grafice cu valori aleatoare ,unul intre & si 19 celalalt intre 2 si "-.
5fisati lista de cursoare si definiti un cursor.
3odificati caracteristicile cursorului ,culoare9 stil9 forma punctului central9 stilul si
grosimea firelor reticulare s.a.m.d.-
Deplasati cursorul cu a;utorul elementului de comanda a deplasarii9 intai in starea
liber9 apoi ?legat? de unul dintre grafice.
Deplasati cursorul cu unealta de operare9 ?tragand? de intersectia firelor reticulare9 intai
in starea liber9 apoi ?legat? de unul dintre grafice.
5fisati coordonatele # si $ ale cursorului cu o singura /ecimala.
1.7.! Elemente si functii de tip (icture
(entru a dispune pe panoul aplicatiei un element de tip %icture.ctl9 acesta poate fi
selectat din meniul de controale9 submeniul "raph9 submeniul Ctls.

#igura 1"" #igura 1"%
#unctiile pentru lucrul cu elemente de tip %icture.ctl sunt dispuse in meniul de functii9
submeniul "raphics 8 Sound9 submeniul %icture Functions.
8n element de tip %icture repre/inta o matrice de pi0eli9 fiecare pi0el fiind definit prin
coordonatele sale # si $. 4riginea sistemului de coordonate se afla in coltul stanga2sus al
figurii. 50a # are sensul po/itiv spre dreapta9 iar a0a $ are sensul po/itiv in ;os.
EXERCITIU
Dispuneti pe panoul unei aplicatii un element de tip %ictur
1.7.$ 8tili/area functiilor de tip (icture
#unctiile pentru lucrul cu elemente de tip %icture.ctl efectuea/a operatii asupra unei
figuri in general in sensul de adaugare a unui element geometric in figura. In imaginea de mai
;os se pleaca de la o constanta '!pty %icture ,figura vida-.
In prima etapa9 utili/and functia
5oe %en.i9 se deplasea/a un creion
imaginar in punctul de coordonate ,'&9 '&-
al figurii. #unctia 5oe %en.i nu adauga
nimic la figura.
#igura 1"'
EXERCITIU
7onstruiti diagrama din figura de mai sus si verificati modul de functionare.
7u a;utorul functiei Dra2 (ine.i9
in figura preluata de la functia 5oe
%en.i este trasat un segment de culoare
rosie.
#unctie Dra2 (ine.i considera ca punctul
de plecare al segmentului este punctul in
care se afla creionul imaginar9 fiind
necesar ca functiei sa i se specifice doar
punctul final al segmentului9 in acest ca/
punctul de coordonate ,12&9 1%&-.
In figura preluata de la iesirea
functiei Dra2 (ine.i9 cu a;utorul functiei
Dra2 Circle -y Radius.i9 este trasat un
cerc plin ,ve/i constanta ,rue- de culoare
albastra9 cu centrul in punctul de
coordonate ,2&&9 2&&- si de ra/a 2&. #igura
obtinuta la iesirea functiei Dra2 Circle -y
Radius.i este transferata elementului de
tip %icture.ctl9 re/ultatul fiind afisarea
figurii.
,'5A
1. 1a se reali/e/e un program pentru trasarea graficului unei parabole.
>. 1a se reali/e/e un program pentru trasarea graficului unui cerc
A. 1a se reali/e/e un program pentru trasarea graficului unei elipse
B. 1a se reali/e/e un program pentru simularea comportamentului unui resort elastic
E. 1a se reali/e/e un program pentru trasarea grafica a figurilor Lisa;ou0
6. 1a se reali/e/e un program pentru simularea miscarii unui corp pe plan inclinat
7. 1a se reali/e/e un program pentru trasarea graficului miscarii la aruncarea oblica
&. 1a se reali/e/e un program pentru simularea comportamentului unui resort elastic9 utili/and
elemente %icture
3. 1a se reali/e/e un program pentru simularea miscarii unui corp pe plan inclinat9 utili/and
elemente %icture
1.! Elemente ListBo09 *able si .ing
1!.1 3eniuri pentru elemente ListBo09 *able si .ing
3eniul (ist 8 ,a-le al paletei de controale contine elemente de tipurile (ist-o*9
5ulticolu!n (ist-o* si ,a-le. 3eniul Ring 8 'nu! contine elemente de tipurile ,e*t
Ring9 5enu Ring9 'nu!9 %icture Ring si ,e*t 8 %ict Ring.
#igura 1") #igura 1"7
EXERCITIU
Dispuneti in panou cate un element din fiecare din tipurile enumerate mai sus.
1.!.2 *ipul de date
7aracteristica principala a elementelor de tip (ist sau Ring este aceea ca9 desi in panou
utili/atorul are la dispo/itie o lista de elemente te0t9 valorile corespun/atoare din diagrama
sunt numerice.
#igura 1"!
5ceasta se observa in primul rand din faptul ca toate elementele ,cu e0ceptia celor de
tipurile ,a-le sau 'nu!- au terminale ce semnifica numere intregi ,/A>- sau naturale ,416-.
De e0emplu9 aloarea nu!erica a unui element de tipul (ist-o* este repre/entata de indicele
,nu!arul de ordine- te0tului selectat de catre utili/ator ,prima linie de te0t are indicele &-.
#igura 1"$
1.!." Definirea itemilor unui element ListBo0
Itemii unui element (ist-o* repre/inta liniile de te0t din interiorul acestuia.
3odalitatea cea mai simpla de a defini acesti itemi9 ala-ila insa doar atunci cand
progra!ul nu ruleaza9 este de a2i introduce cu a;utorul uneltei de editare a te0telor.
#iecare item trebuie introdus pe o linie separata9 modalitatea de introducere fiind similara celei
de la elementele alfanumerice:
daca se apasa tasta 'nter ?mare? ,din apropierea tastelor pentru litere-9 se trece la linia
urmatoare
daca se apasa tasta 'nter ?mica? ,din /ona cu taste numerice aflata in partea dreapta a
tastaturii- sau daca se face clic> cu mouse2ul in afara elementului99 se considera ca s2a
inceiat introducerea itemilor. *e0tul format de itemii unui element (ist-o* poate fi
editat ulterior pentru modificare9 stergere sau inserare.
#igura 1%& #igura 1%1
Daca se doreste editarea itemilor unui (ist-o* in ti!pul rularii progra!ului9 se
procedea/a astfel:
se creea/a un nod de proprietati al elementului (ist-o*
se selectea/a pentru nodul respectiv proprietatea /te!0a!es
din meniul propriu al nodului se selectea/a optiunea Change ,o Write
se conectea/a la nod un Array de valori String ce vor repre/enta itemii elementului
(ist-o*
EXERCITII
Dispuneti in panou un element de tipul (ist-o* si introduceti9 cu unealta de editare
te0te9 cativa itemi ai acestuia.
.eali/ati un program in care itemii unui element (ist-o* sa fie generati in timpul
rularii.
1.!.% 1electii multiple
Din meniul propriu al unui element de tipul (ist-o*9 optiunea Selection 5ode9 poate
fi specificat numarul de itemi ce pot fi selectati simultan. 5tunci cand e0ista mai multe
variante de selectie ,nici unul9 unul sau mai multi itemi-9 pentru a selecta sau deselecta un
item se face clicI pe acesta tinand apasata tasta Shift. Daca un element (ist-o* este in
modul de selectie G or 1 /te! si nu are nici un item selectat9 valoarea corespun/atoare a
elementului este <1.

#igura 1%2 #igura 1%"
Daca sunt selectati mai multi itemi ai unui (ist-o*9 atunci acesta nu mai este
repre/entat de o valoare scalara ci de un Array ce contine indicii itemilor selectati. Daca un
element (ist-o* este in modul de selectie G or 5ore /te!s si nu are nici un item selectat9
atunci el este repre/entat de un Array id.
EXERCITIU
Dispuneti un element (ist-o* pe panou si stabiliti modul de selectare G or 5ore
/te!s.
Dispuneti de asemenea pe panou un element indicator Array in care sa fie afisati
indicii itemilor selectati.
E0ersati diverse variante de selectare: nici un item9 un item9 mai multi itemi.

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