+ All Categories
Home > Documents > Lectie Demo Initiere in Programare

Lectie Demo Initiere in Programare

Date post: 20-Jul-2015
Category:
Upload: chiba-nicolae-florin
View: 251 times
Download: 0 times
Share this document with a friend
Description:
eurocor.ro
22
 Iniþiere  î n programa r e Iniþiere  î n p r ograma r e Visual FoxPro Visual Fo xPro
Transcript
Page 1: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 1/21

Iniþiere în programareIniþiere în programareVisual FoxProVisual FoxPro

Page 2: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 2/21

L  E  C   }  I  E  

D  E  M   O  N  S  T  R  A  T  I  V   |   

INTRODUCERE

Sporirea complexit\]ii [i diversit\]ii activit\]ii economice [i sociale a generat întimp nevoia unor date din ce în ce mai elaborate [i precise. Ob]inerea acestora afost posibil\ datorit\ evolu]iei spectaculoase a sistemelor electronice de calcul, careau permis cre[terea volumului de date culese, transmise, prelucrate [i stocate.

Cursul Ini]iere ̀ n programare elaborat de Institutul Eurocor v\ propune familia-rizarea cu unul dintre cele mai folosite sisteme de gestiune a bazelor de date, [i anume

Visual FoxPro. Cursul se adreseaz\ tuturor celor interesa]i s\ se ini]ieze în lucrul cu bazele de date, precum [i celor care doresc s\-[i îmbog\]easc\ cuno[tin]ele pe care leau în acest domeniu. În dezvoltarea materialului am insistat în permanen]\ asupraaspectelor practice, îns\ nu am pierdut din vedere nici fundamentarea teoretic\ a ceeace înseamn\ un sistem de gestiune a bazelor de date. Consider\m, totu[i, c\ estenecesar\ familiarizarea cu anumite elemente teoretice de baz\; dac\ un utilizator sare

 peste aspectele teoretice [i trece direct la folosirea unui sistem, el va asimila mult maigreu produsul, multe no]iuni le va aborda incorect sau nu le va în]elege deloc. Fiecarefacilitate oferit\ de un astfel de sistem are o fundamentare teoretic\ ce ajut\ utilizatoruls\ în]eleag\ logic ceea ce face.

Cursul pleac\ de la ideea c\ sistemul de gestiune a bazei de date este parte integrant\,al\turi de baza de date, a unui sistem de baz\ de date. Din acest motiv, se va facemai întâi o trecere în revist\ a principalelor elemente din teoria bazelor de date. Înmodulele urm\toare vom continua cu descrierea sistemului Visual FoxPro [i a

 particularit\]ilor acestuia, vom vorbi despre exploatarea [i construirea bazelor dedate folosind acest sistem, despre principalele comenzi [i func]ii specifice VisualFoxPro. În ultima parte a cursului, accentul se va pune pe construirea [i executarea

 programelor [i, în special, pe programarea orientat\ pe obiecte. Elaborarearapoartelor [i interogarea bazelor de date încheie prezentarea gradual\ a materialului.

Materialul cursului a fost astfel conceput `ncât s\ permit\ `nsu[irea optim\ ainforma]iilor prezentate. Efectuarea de la bun început a exerci]iilor recomandate v\va u[ura în mod vizibil deprinderea [i consolidarea noilor cuno[tin]e. Accesibilitateamodului de prezentare a materialului [i exemplele care apar ̀ n modulele de studiuasigur\ însu[irea f\r\ probleme a con]inutului, chiar [i de c\tre persoanele neini]iateînc\ în domeniul program\rii.

Lec]ia de fa]\ constituie o lec]ie demostrativ\, care dore[te s\ v\ familiarizeze cumetoda de studiu EUROCOR. Din punctul de vedere al num\rului de pagini, eareprezint\ mai pu]in de jum\tate din con]inutul unui caiet de studiu. Ve]i g\si aici

fragmente din caietele de curs, exemple, exerci]ii, precum [i un model de rezumat[i de tem\ pentru acas\.

V\ dorim mult succes!

Page 3: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 3/21

Ini]iere `n programarelec]ie demonstrativ\2

3 (18)

Modul de organizare a cursului Ini]iere în programare – Visual FoxPro

Materialul cursului se compune din 12 module, prezentate sub forma unor fascicule,care vor fi îndosariate într-o map\ special\, pe care EUROCOR v-o pune la dispozi]ie.

Dorim s\ v\ atragem aten]ia asupra modalit\]ii speciale de concepere [i prezentarea lec]iilor, ce v\ va permite parcurgerea cu mai mult\ u[urin]\ a materialului de curs:

• fiecare modul are o anumit\ structur\ didactic\, p\strat\ pe întreg parcursulacestui curs;

• un element important în cadrul acestei structuri îl reprezint\ exemplele [i exerci]iile practice, cu ajutorul c\rora v\ ve]i putea valorifica în mod curent cuno[tin]eledobândite;

• `n plus, pentru a v\ consolida cuno[tin]ele, la sfâr[itul fiec\rui modul ve]i g\si orecapitulare, care prezint\ cele mai importante aspecte analizate ̀ n cadrul acestuia;

• fiecare modul se încheie cu o tem\ pentru acas\, ce constituie o modalitateeficient\ de verificare a gradului de însu[ire a cuno[tin]elor prezentate; indica]iilereferitoare la rezolvarea temelor pentru acas\ [i la colaborarea cu profesoruldumneavoastr\ sunt prezentate la sfâr[itul modulului;

• folosim reprezent\ri grafice pentru înlesnirea însu[irii cuno[tin]elor (de exemplu, pentru eviden]ierea no]iunilor importante se folosesc litere ̀ ngro[ate).

Fiecare student EUROCOR are un profesor personal.

Temele propuse în fiecare modul vor fi expediate pe adresa Institutului EUROCOR,urmând ca profesorul personal s\ aprecieze corectitudinea r\spunsurilor [i s\ v\transmit\ comentariile sale pe marginea acestora. V\ recomand\m s\ rezolva]i temadoar dup\ parcurgerea integral\ [i atent\ a materialului prezentat.

Pentru ca studiul dumneavoastr\ individual s\ fie cât mai u[or [i eficient, pemarginea lec]iilor au fost introduse diferite simboluri:

 –   semnaleaz\ no]iunile, defini]iile [i informa]iile importante

 – semnaleaz\ exerci]iile pe care trebuie s\ le rezolva]i

Exemplu

 – exemplele vor fi ̀ ncadrate `ntr-un chenar special

 – indic\ faptul c\ tema respectiv\ a mai fost abordat\ în modulele anterioare(în acest caz, tema a mai fost abordat\ în modulul 3, la pagina 18).

Page 4: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 4/21

3lec]ie demonstrativ\Ini]iere `n programare

Programa cursului de Ini]iere în programare – Visual FoxPro

MODULUL 1 Baze de date. Elemente introductiveConceptul de baze de date. Tipuri de baze de date. Obiectivele

 bazelor de date. Organizarea datelor în baze de date. Modele deorganizare a datelor. Etape de realizare a unei baze de date.Administrarea bazelor de date. Sisteme de gestiune a bazelor dedate. Re]ele de calculatoare. Re]ele [i arhitectura client/server.Avantajele program\rii

MODULUL 2 Sistemul de gestiune a bazelor de date rela]ionale Visual FoxProDescrierea mediului Visual FoxPro. Caracteristici generale.

Structura func]ional\ a sistemului Visual Fox Pro. Instalarea [iconfigurarea Visual FoxPro. Elementele interfe]ei Visual FoxPro.Componentele unei baze de date rela]ionale. Construirea bazelor de date – elemente introductive

MODULUL 3 Exploatarea bazelor de datePrelucrarea interactiv\ a datelor din bazele de date. Editareacon]inutului bazelor de date. Opera]ii uzuale. Comenzi VisualFoxPro pentru prelucrarea interactiv\ a datelor. Comenzi pentrustructura tabelelor. Comenzi pentru modificarea datelor din tabele.

C\utarea datelor în tabele. Sortarea [i ordonarea datelor 

MODULUL 4 Construirea bazelor de dateCrearea unei baze de date. Facilit\]i ale bazelor de date.Proceduri. Importul [i exportul datelor. Tipuri de date gestionateîn Visual FoxPro. Tipul logic. Tipul numeric. Tipul [ir decaractere. Sub[iruri de caractere. Tipul dat\ calendaristic\

MODULUL 5 Func]ii [i proceduri definite de utilizatoriVariabile. Crearea programelor în Visual FoxPro. Modularizareaaplica]iilor. Variabile locale [i variabile globale. Comenzi pentrumanipularea fi[ierelor. Comenzi pentru stabilirea mediului delucru. Calcule cu câmpurile unei tabele

MODULUL 6 Alte facilit\]i ale bazelor de dateCâmpurile memo. Legare [i încorporare de obiecte. Lucrul cu

 bazele de date. Indec[i. Construirea integrit\]ii referen]iale.Integritatea rela]ional\

MODULUL 7 Elemente de programare structurat\ No]iunea de algoritm. Modalit\]i de reprezentare a algoritmilor.Programarea structurat\. Principalele structuri utilizate înschemele logice

Page 5: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 5/21

Ini]iere `n programarelec]ie demonstrativ\4

MODULUL 8 Programarea orientat\ pe obiecte (POO)Aspecte generale. Obiecte [i clase. Caracteristicile modeluluiorientat pe obiecte. Încapsularea [i mo[tenirea. Terminologiamodelului bazat pe obiecte. Propriet\]i, evenimente [i metode.

Domeniul variabilelor. Limbajul în programarea orientat\ peobiecte. Clasele de baz\

MODULUL 9 Programarea bazat\ pe evenimenteCrearea claselor. Crearea subclaselor. Instan]ierea. Bibliotecilede clase. Înregistrarea bibliotecilor de clase vizuale. Instrumentede creare a claselor. Crearea unei forme noi. Propriet\]i [i metodeale formelor în ansamblu

MODULUL 10 Utilizarea controalelor

Meniul Form. Controalele grup de butoane de op]iuni (OptionButtons). Controalele grup de butoane de comand\ (OptionGroups). Grilele (Grid). Controalele Page Frame. Controlul Timer (cronometru). Utilizarea controalelor. Meniurile. Componenteleunui meniu. Construirea unui meniu. Propriet\]ile globale alemeniului

MODULUL 11 Rapoarte. Depanarea programelorModul de creare a unui raport. Sec]iunile raportului. Tipuri deelemente incluse în raport. Afi[area [i tip\rirea rapoartelor.

Constructorul de etichete. Depanarea programelor. Modul de lucrucu depanatorul din Visual FoxPro. Instrumente de depanare.Tratarea erorilor 

MODULUL 12 Project ManagerFereastra Project Manager. Interogarea (Query Designer).Vederi. View Designer. Vederile locale [i la distan]\. Tehnologiaclient/server 

Page 6: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 6/21

5lec]ie demonstrativ\Ini]iere `n programare

 Fiecare caiet de curs ̀ ncepe cu o scurt\ introducere care are rolul de a v\  prezenta succint informa]iile ce urmeaz\ a fi expuse. Pentru ̀ nceput, v\ 

 prezent\m introducerea modului 2, ̀ n care sunt prezentate no]iuni generale

 privind sistemul de gestiune a bazelor de date rela]ionale Visual FoxPro

Sistemul de gestiune a bazelor de date rela]ionale Visual FoxProIntroducere

Proiectarea unei baze de date [i scrierea programelor de prelucrare [i gestiune adatelor reprezint\ o activitate laborioas\, care necesit\ mult\ creativitate. ~n primulrând, trebuie identificate toate elementele care vor compune noul sistem. Un prim

 pas este reprezentat de g\sirea unei modalit\]i de transpunere a informa]iilor din

lumea real\ ̀ n elemente cuantificabile, apoi trebuie proiectat\ o structur\ unificat\,corespunz\toare naturii informa]iilor, dup\ care trebuie construit\, pentru utilizator,o modalitate de a interac]iona cu datele.

Proiectarea corect\ a bazei de date conduce la g\sirea unor solu]ii simple de programare [i de reducere a timpilor de scriere a unei aplica]ii. ~n plus, dezvoltarea seface cu u[urin]\ [i chiar cu pl\cere, iar efectele acestei abord\ri nu vor `ntârzia s\apar\. ~n caz contrar, apar cu siguran]\ blocaje, imposibilitatea de a scrie o component\dup\ modelul ales [i aceasta duce inevitabil la refacerea unei p\r]i sau uneori chiar larescrierea total\.

~n general, efortul ini]ial de creare a unei baze de date este mai mare decât cel necesar 

 pentru realizarea unei foi de calcul tabelar sau a unui document. Dar foile de calculnu au posibilit\]i rela]ionale, de aici rezultând [i caracterul restrictiv al acestora.Eforturile dumneavoastr\ vor fi recompensate ̀ n momentul ̀ n care ve]i dori s\ extrage]iinforma]iile. Baza de date v\ permite s\ localiza]i rapid un element, s\ face]i compara]ii[i s\ ob]ine]i cu u[urin]\ rapoarte complexe.

Visual FoxPro este un sistem de baze de date rela]ional care simplific\ administrareadatelor, v\ ajut\ s\ organiza]i datele [i s\ crea]i aplica]ii care gestioneaz\ datele.Visual FoxPro v\ permite s\ crea]i aplica]ii complexe, oferindu-v\ un mediu dedezvoltare cu instrumente puternice de programare orientat\ pe obiecte, cu posibilit\]ide integrare cu alte aplica]ii [i capacit\]i client/server.

~ncepând cu acest modul vom trece la prezentarea sistemului Visual FoxPro 6.0.Având `n vedere faptul c\ sistemul este foarte vast, vom `ncerca s\ parcurgem [i s\definim cât mai multe dintre posibilit\]ile acestuia, dându-v\ `n acest fel impulsulnecesar pentru realizarea propriilor proiecte. Nu vom insista foarte mult asupra interfe]eimediului Visual FoxPro, ci ne vom concentra asupra aspectelor legate de utilizare [ine vom apropia de ceea ce ne intereseaz\ ̀ n mod special, [i anume programarea.

Caracteristici generaleFoxPro este un sistem de gestiune a bazelor de date rela]ionale pentru microcalculatoarecompatibile IBM-PC. Produsele elaborate dup\ modelul conceptual rela]ional auînceput cu dBASE în versiunile II, III, III+, IV, apar]inând ini]ial firmei Ashton Tate,devenind mai târziu ale firmei Borland. Au continuat cu Fox în diferite versiuniconcepute de c\tre firma Fox Software, ulterior achizi]ionate de cea mai mare firm\din domeniul software-ului, Microsoft.

Page 7: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 7/21

Ini]iere `n programarelec]ie demonstrativ\6

FoxPro s-a impus pe pia]a SGBD-urilor pe PC-uri înc\ de la primele versiuni 1.02[i 2.0. Cump\rarea [i dezvoltarea lui de c\tre firma Microsoft a condus la apari]iaversiunilor 2.5 [i 2.6, care au plasat produsul spre vârful ierarhiei în acest domeniu.

~n versiunile 2.5 [i 2.6, FoxPro a fost conceput pentru a lucra fie sub DOS sauUNIX (în modul de lucru caracter), fie sub Windows sau Macintosh (în modul delucru grafic).

Din concuren]a firmelor de software Borland (cu produsele dBASE [i Paradox), Nantucket (cu produsul Clipper) [i Microsoft (cu produsul FoxPro), s-a ajuns laversiunea FoxPro, care ofer\ posibilitatea transferului de elemente (ecrane, rapoarte,

 proiecte) între versiunile FoxPro care lucreaz\ sub diferite sisteme de operare.

În domeniul limbajelor de programare, principalele rivale sunt firmele Microsoft [iBorland. Referindu-ne la SGBD-uri, politica firmei Microsoft de a dezvolta produsulFoxPro pe baza dBASE-ului a avut drept scop atragerea utilizatorilor care proiecteaz\aplica]ii de baze de date.

Prin ultimele versiuni, FoxPro este considerat cel mai performant din familia amintit\,datorit\ urm\toarelor caracteristici principale:

• dispune de tehnici de optimizare, dintre care cea mai important\ este tehnicaRushmore, prin care se realizeaz\ compresarea indec[ilor, efectul fiind reducereadimensiunii fi[ierelor index cu pân\ la 80%;

•  prin noile tehnologii de acces la date, tehnologia Rushmore a dus la cre[terea cumult a vitezei de prelucrare fa]\ de alte SGBD-uri;

• dispune de un limbaj procedural propriu foarte performant, care asigur\ descrierea[i manipularea datelor, precum [i de un nucleu al limbajului neproceduralSQL (Structured Query Language); aceste limbaje se adreseaz\ profesioni[tilor,asigurând utilizarea [i dezvoltarea de programe de mare complexitate;

•  pentru a se adresa unei game cât mai largi de utilizatori, sistemul Visual FoxProare componente ce pot fi apelabile atât de la tastatur\, cât [i cu ajutorul mouse-ului;

•  poate importa fi[iere din Excel, Lotus, Paradox, Symphony, Multiplan, RapidFile, ASCII;

•  poate exporta fi[iere în Excel, Lotus, ASCII, Symphony, Multiplan, RapidFile etc.;

• dezvolt\ programe structurate de cel mai înalt nivel (utilizând comenzile pentrurealizarea structurilor secven]iale, alternative [i repetitive) [i modularizate (prinscrierea programelor sub form\ de proceduri);

• în func]ie de cerin]e, poate fi instalat în întregime sau pot fi instalate numaimodulele necesare aplica]iei;

•  poate fi utilizat pe sta]ii de lucru individuale sau în re]ea, având ca avantaj cre[tereaeficien]ei de utilizare a resurselor sistemului;

• ultimele versiuni dispun de un mecanism evoluat de conversie a programelor [ia aplica]iilor scrise în versiunile anterioare de FoxPro.

Page 8: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 8/21

7lec]ie demonstrativ\Ini]iere `n programare

 Pentru a v\ facilita re]inerea defini]iilor [i a exemplelor  , acestea au fost marcate prin semne grafice. Acest tip de eviden]iere se reg\se[te pe

 parcursul ̀ ntregului curs [i pentru exemplificare v\ prezent\m câteva

 fragmente din modulul 3.

Opera]ii uzuale pentru ad\ugarea datelor în tabele

Comanda APPENDÎnc\rcarea cu date a tabelei se poate face imediat dup\ crearea structurii dac\ lamesajul “Input data record now? Y/N“ se r\spunde cu Y. De asemenea, ulterior se

 pot ad\uga înregistr\ri în tabel\ cu ajutorul comanzii APPEND. Dac\ tabela r\mâne

vid\ dup\ descrierea structurii, cu APPEND se demareaz\ înc\rcarea acesteia.Sintaxa comenzii:

APPEND [BLANK]

Adaug\ o înregistrare în tabel\ prin deschiderea unei ferestre implicite de introducere.Ie[irea din fereastra de introducere se realizeaz\ cu CTRL+W sau CTRL+END.

TastaPgUp  permite deplasarea la înregistr\rile anterioare, iar tastaPgDn deplaseaz\cursorul pe înregistr\rile urm\toare. Dac\ deplasarea s-a f\cut dincolo de ultimaînregistrare se declan[eaz\ modul de lucru APPEND. Comanda APPEND cu op]iuneaBLANK adaug\ o înregistrare vid\ la sfâr[itul tabelei f\r\ a activa modul de lucru

ecran. Aceast\ înregistrare devine înregistrare curent\ [i poate fi completat\ cu altecomenzi Visual FoxPro.

La execu]ia comenzii APPEND se actualizeaz\ fi[ierele indexate activate.

Exemplu

Pentru ad\ugarea de înregistr\ri utilizând fereastra de introducere implicit\:USE PersonalAPPEND

ExempluPentru a ad\uga o înregistrare vid\ f\r\ a deschide fereastra de introducereimplicit\:USE PersonalAPPEND BLANK 

 ~nc\rcarea înregistr\rii vide se realizeaz\ [i cu alte comenzi de actualizare(BROWSE, CHANGE, REPLACE).

 Dac\ tabela nu este activat\ [i se tasteaz\ comanda APPEND, se deschide o fereastr\ pentru selectarea tabelei.

Page 9: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 9/21

Ini]iere `n programarelec]ie demonstrativ\8

Comenzile FIND [i SEEK 

Caut\ direct într-o tabel\ indexat\ prima înregistrare cu cheia specificat\.

Comanda FINDSintaxa comenzii:FIND ExprCheie

 ExprCheie poate fi un num\r sau un [ir de caractere.

FIND utilizeaz\ un index fie sub forma unui fi[ier index simplu (.IDX), fie subforma unui fi[ier index compus (.CDX). Indexul utilizat este numit index principal[i poate fi activat cu clauza INDEX din comanda USE, cu SET INDEX sau cuSET ORDER.

 Este de remarcat faptul c\ FIND caut\ un [ir de caractere specificat [i nucon]inutul unei variabile. De exemplu, dac\ avem variabila:obiect=”scaun birou”comanda:

 FIND obiect nu va c\uta dup\ [irul “scaun birou”, ci chiar dup\ [irul “obiect”.

Pentru a c\uta con]inutul unei variabile se utilizeaz\ operatorul &, care realizeaz\

func]ia de macrosubstitu]ie. În acest caz, comanda opereaz\ asupra con]inutuluivariabilei referit\ prin numele ei [i nu dup\ numele variabilei. În aceast\ situa]ie,comanda se va scrie astfel:

FIND &obiect

Comanda SEEK 

Caut\ într-o tabel\ indexat\ prima înregistrare a c\rei cheie rezult\ din evaluareaunei expresii.

Sintaxa comenzii:SEEK expresie• expresie trebuie s\ fie de acela[i tip cu tipul câmpului din structura înregistr\rii.

Comanda FIND se recomand\ atunci când se lucreaz\ în fereastra decomand\, iar SEEK este preferabil\ în programe.

La executarea comenzii SEEK, pentru reg\sirea cheii în fi[ierul index, se pot returnarezultate false datorit\ faptului c\ este diferen]\ între literele mari [i cele mici. În

acest caz, este bine s\ se utilizeze func]iile UPPER( ) de transformare a literelor mici în litere mari [i LOWER( ) de transformare a literelor mari în litere mici.

Page 10: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 10/21

9lec]ie demonstrativ\Ini]iere `n programare

Tabelele au rolul de a completa ̀ ntr-un mod adecvat informa]iile prezentate. Din modulele 4 [i 6, am selectat câteva fragmente pentru

exemplificare.

Tipul numeric

O mare parte a datelor prelucrate de calculator este reprezentat\ de numere, pentrua c\ror descriere se folose[te tipul numeric. Cu toate c\ limbajul Visual FoxPro esteun limbaj orientat pe lucrul cu baze de date [i nu unul orientat pe calcule matematice,[tiin]ifice, tipul numeric este implementat astfel încât s\ permit\ realizarea majorit\]iiopera]iilor matematice întâlnite în practic\.

De asemenea, sunt prev\zute o serie de func]ii prin care se pot calcula func]iilematematice elementare, cum ar fi exponen]iala, logaritmul, func]iile trigonometriceetc., putându-se astfel realiza calcule matematice mai complexe cu efort minim.

Operanzii numerici care intervin în expresii pot fi:

• câmpuri numerice ale unei baze de date;

• func]ii care returneaz\ valori numerice;

• variabile de tip numeric;

• constante numerice.

Operatorii care se aplic\ unor operanzi numerici, având ca rezultate tot valorinumerice, sunt sintetiza]i în tabelul urm\tor:

rotarepO ei]acif inmeS

),( eliiser  pxe\zae pur g

^,** er etu paler acidir 

%,/,* )iir i]r \ pmîlutser (oludom,er i]r \ pmî,er i]lumnî

-,+ er ed\cs,er anuda

Prioritatea operatorilor din acest tabel scade de sus în jos, iar pe acela[i nivel de prioritate evaluarea se face de la stânga la dreapta, în ordinea apari]iei operatorilor în expresie.

Între dou\ expresii numerice se pot aplica, de asemenea, operatori rela]ionali,ob]inându-se astfel expresii logice. Ace[ti operatori sunt prezenta]i în tabelul urm\tor:

r otar e pO ei]acif inmeS

< tâcedcimiam

> tâceder amiam

= uclage

== ir ur i[ur tne petatilage

=!,#,>< edtir ef id

=< uclageuascimiam

=> uclageuaser amiam

Page 11: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 11/21

Ini]iere `n programarelec]ie demonstrativ\10

Închiderea unei baze de date

Pute]i închide o baz\ de date cu ajutorul comenzii CLOSE DATABASE.

Principalele comenzi pentru manipularea bazelor de date container sunt:

ai]cnuF/adnamoC aenui]cA

ESABATADETAER C r eniatnocetaded\za b\uono\zaeer C

ESABATAD NEPO \tnetsixer eniatnocetaded\za boedihcseD

OTESABATADTES \sihcsedetaded\za bour culed\tner ucanoznîecudA

ESABATADYFIDOM etaded\za boacif idomaur tne pr engiseDesa bataDedihcseD

ER UDECOR PYFIDOM \tner ucetadedaza bnîetacotsir udecor  p\cif idom/\zaeer C

SER UDECOR PD NEPPA nr etxer ei[if nu-r tnidetacotsir udecor  p\guadA

SER UDECOR PYPOC nr etxer ei[if nu-r tnîetacotselir udecor  p\zai poC

ESABATADELIPMOC \tner ucetadedaza bnidetacotselir udecor  p\zaeli pmoC

ESABATADYALPSID/TSIL \tner ucetadedaza ber  psedii]amr of ni\zae[if AYALPSID/TSILSER UDECOR P

edaza bnîetacotselir udecor  per  psedii]amr of ni\zae[if A\tner ucetad

ESABATADK CAP aza bnîer egr et[ur tne petacr amelir \r tsiger nîvitinif edegr et{\tner ucetaded

ESABATADETADILAV \zaer e pucer o,lanoi] po,i[etadedieza baetatidilav\cif ir eV\tar oir etedetse\cad

)(CBD \tner ucetadedaza ber t\caelaci[elemun\zaenr uteR 

)(DESUBD \sihcsedetseetaded\za b\timunao\cad\cif ir eV

)(SESABATADA esihcsedetadedeleza betaotucr otcevnu\zaeer C

)(STCEJBOBDA \tner ucetadedaza bnideletcei boetaotucr otcevnu\zaeer C

)(POR PTEGBD etadedeza bienuaetateir  por  poeni] bO

)(POR PTESBD etadedieza baetateir  por  po\zaeteS

ESABATADESOLC etaoti[elaselele batetaot,\tner ucetadedaza bedihcnÎer e bilelele bat

ESABATADETELED uasegr et[,lanoi] po,i[cside pedetadedaza begr et{elaselele bat\zaer e bile

Lucrul cu tabelele din bazele de date

O tabel\ Visual FoxPro (fi[ier .dbf) poate exista în unul dintre cele dou\ moduri: ca

tabel\ asociat\ unei baze de date sau ca tabel\ liber\. Tabelele sunt libere dac\ suntcreate f\r\ a fi incluse într-o baz\ de date, altfel sunt ad\ugate automat în baza dedate (dac\ nu este folosit\ clauza FREE).

Tabelele asociate cu o baz\ de date au mai multe avantaje fa]\ de cele libere. Cândtabela este o parte component\ a unui fi[ier baz\ de date, ea poate avea:

• nume lungi pentru tabel\ [i pentru fiecare câmp din structur\;•comentarii pentru fiecare câmp;

• valori implicite, m\[ti [i formate de introducere pentru fiecare câmp;

• reguli la nivel de câmp [i la nivel de înregistrare;

• indec[i primari [i rela]ii între tabele pentru a impune integritatea referen]ial\;

• declan[atori pentru evenimentele de inserare, actualizare [i [tergere.

Page 12: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 12/21

11lec]ie demonstrativ\Ini]iere `n programare

 Fiecare lec]ie a acestui curs con]ine o serie deexemple [i exerci]ii bazate peinforma]iile expuse pe parcursul acesteia. }inând cont de importan]a ̀ nsu[irii [i

consolid\rii cuno[tin]elor, al\turi de fiecare exerci]iu ve]i intâlni exemple

asem\n\toare. V\ prezent\m ̀ n continuare astfel de fragmente din modulele 7 [i 8.

Structura repetitiv\ condi]ionat\ anterior

Structura este implementat\ prin comanda DO WHILE... ENDDO cu urm\toareasintax\:

DO WHILE <expL><comenzi>

  [LOOP]

  [EXIT]

ENDDOSe evalueaz\ expresia logic\ <expL> [i, dac\ este adev\rat\, se execut\ setul decomenzi ce urmeaz\ pân\ la ENDDO. Fiecare DO WHILE trebuie s\ se încheiecu ENDDO. Dac\ <expL> devine fals\, ciclul este închis [i pointerul de control se

 pozi]ioneaz\ la urm\toarea comand\ ce urmeaz\ dupa ENDDO.

Clauza LOOP va determina reluarea execut\rii comenzii DO WHILE.

Dac\ este specificat\ clauza EXIT, aceasta returneaz\ controlul programului laurm\toarea comand\ ce urmeaz\ lui ENDDO. Aceasta reprezint\ o ie[ire for]at\din structura repetitiv\. EXIT poate ap\rea oriunde în ciclul DO WHILE… ENDDO.

Exemplua=1DO WHILE a<=100

IF a>50a=a+2

ELSEa=a+1

ENDIFENDDO?a

Sunt permise structuri DO WHILE imbricate în modul urm\tor:

DO WHILE <condi]ie1><comenzi>DO WHILE <condi]ie2>

<comenzi>ENDDO

<comenzi>ENDDO

Exerci]iul 2

Scrie]i o bucl\ DO WHILE pentru parcurgerea de la sfâr[it la începuta unei tabele.

Page 13: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 13/21

Ini]iere `n programarelec]ie demonstrativ\12

READ EVENTS [i CLEAR EVENTS

Comanda READ EVENTS porne[te procesorul de evenimente în timpul rul\riiunui program. Toate instruc]iunile care urmeaz\ dup\ comanda READ EVENTSnu vor fi rulate pân\ când comanda READ EVENTS nu este dezactivat\.

Comanda CLEAR EVENTS opre[te procesorul de evenimente. Dup\ ce CLEAR EVENTS a fost executat\, controlul în program este returnat la prima linie dup\READ EVENTS.

Exemplu

Exemplul urm\tor este un program foarte simplu, care arat\ cum sedefine[te o clas\, cum se creeaz\ un obiect cu func]iaCREATEOBJECT() [i cum se utilizeaz\ READ EVENTS [iCLEAR EVENTS.

Forma1=CREATEOBJECT(“FormaTest”) && se creeaza obiectul

WITH Forma1.Caption=”Aceasta este Forma1”

.AutoCenter=.T.

ENDWITH

Forma1.SHOW

READ EVENTS && se porneste procesorul de evenimente

RETURN

* definitia clasei

DEFINE CLASS FormaTest AS FormADD OBJECT Buton1 AS CommandButton WITH ;

Caption = 'Iesire', ;

Left = 6, ;

Top = 2, ;

AutoSize = .T.

PROCEDURE Buton1.Click 

=MessageBox(“Gata”, 16, “READ EVENTS”)

RELEASE THISFORM && se inchide formaCLEAR EVENTS && se opreste procesorul de evenimente

ENDPROC

ENDDEFINE

 Fig. 5. Forma creat\ [i mesajul care apare când se d\ clic pe butonul  Iesire. Dup\ ce se d\ clic [i pe butonul OK  , forma va fi închis\.

Page 14: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 14/21

13lec]ie demonstrativ\Ini]iere `n programare

e  Exerci]iul 1

Crea]i un fi[ier program [i introduce]i exemplul de mai sus exact a[acum este scris. Executa]i apoi programul.

Exemplu

Exemplul urm\tor utilizeaz\ metoda AddObject() pentru a transmite doi parametri la evenimentul Init al butonului de comand\ Buton1.

Forma1=CREATEOBJECT(“FormaTest”)

Forma1.SHOW

READ EVENTS

DEFINE CLASS FormaTest AS Form

* Proprietatile formeiAutoCenter = .T.

PROCEDURE Init

ThisForm.AddObject(“Buton1”,”Buton”,”Placinte”,;

“Clatite”)

WITH ThisForm.Buton1

.Caption = “Cancel”

.Top = 25

.Autosize = .T.

.Left = 30

.Visible = .T.

ENDWITH

ENDPROC

ENDDEFINE

DEFINE CLASS Buton AS CommandButton

PROCEDURE Init

PARAMETERS X,Y

=MessageBox(x+” si “+y, 32, “AddObject”)ENDPROC

PROCEDURE Click 

RELEASE THISFORM

CLEAR EVENTS

ENDPROC

ENDDEFINE

Exerci]iul 2

În exemplul de mai sus încerca]i s\ modifica]i procedura Init, astfelîncât s\ transmite]i 3 parametri. Vizualiza]i [i acest al treilea parametruîmpreun\ cu ceilal]i doi.

Page 15: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 15/21

Ini]iere `n programarelec]ie demonstrativ\14

 Accesibilitatea cursului este asigurat\ de capturile de imagini reprezentative, permi]ând ̀ nsu[irea con]inutului chiar [i de c\tre cei neini]ia]i ̀ n domeniu.

 Pentru exemplificare v\ prezent\m fragmente din modulul 9.

Interfa]a Class Designer

Class Designer (ca [i Form Designer) permite ca propriet\]ile [i metodele claseis\ fie manipulate prin interfa]\. Fereastra Properties poate fi utilizat\ pentru avizualiza [i modifica set\rile pentru propriet\]i (aceea[i ca [i set\rile de propriet\]idin Form Designer).

 Fig. 11. Interfa]a Class Designer 

Meniul Class

Dup\ ce dialogul Class Designer a ap\rut pe ecran, în bara de meniu Visual FoxPro aap\rut o nou\ op]iune Class,cu ajutorul c\reia pute]i introduce propriet\]i [i metode noi.

 Fig. 12. Op]iunile meniului Class

Page 16: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 16/21

15lec]ie demonstrativ\Ini]iere `n programare

Ad\ugarea propriet\]ilor [i metodelor unei clase

Pentru a introduce o proprietate nou\:

• Din meniul Class, alege]i New Property. Va ap\rea urm\toarea fereastr\ de

dialog:

 Fig. 13. Introducerea unei propriet\]i noi pentru o clas\ 

• În câmpul Name tasta]i numele noii propriet\]i.

• Din lista Visibilityselecta]i vizibilitatea propriet\]ii. Op]iunile posibile sunt:Public, Protected, Hidden. Propriet\]ile protejate nu pot fi accesate deinstan]ele clasei, dar pot fi accesate de subclase. Propriet\]ile ascunse nu potfi accesate nici de subclase.

• Prin op]iunea Access Method specifica]i dac\ exist\ o metod\ pentru aceast\ proprietate. Instruc]iunile din aceast\ metod\ sunt executate de fiecare dat\când proprietatea este apelat\. Dac\ a]i selectat aceast\ op]iune, va fi creat\[i o metod\ cu numele propriet\]ii [i termina]ia _access.

• Op]iunea Assign Method este asem\n\toare cu Access Method, numai c\metoda creat\ va fi executat\ când se încearc\ modificarea valorii propriet\]ii.Termina]ia metodei create va fi _assign.

• Pute]i s\ include]i [i o descriere a propriet\]ii, care, atunci când proprietateaeste selectat\, va fi afi[at\ în partea de jos a ferestrei Properties în Class

Designer.

 Fig. 14. Introducerea unei metode noi pentru o clas\ 

Page 17: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 17/21

Ini]iere `n programarelec]ie demonstrativ\16

Tab-ul Class

Tab-ul Class con]ine informa]ii generale despre clas\.

 Fig. 16. Tab-ul Class

• Toolbar Icon specific\ icoana care va reprezenta clasa pe bara de instrumentea controalelor.

• Container Icon reprezint\ icoana care va fi afi[at\ în Class Browser careprezentare grafic\ a clasei.

• Scale Unitspoate fie Pixels sau Foxels [i reprezint\ unitatea de m\sur\ pentruclas\. Foxels este echivalentul în\l]imii [i l\]imii medii a unui caracter bazat

 pe fontul curent al formei în care este con]inut un obiect.Foxels este folositor când se dezvolt\ aplica]ii pentru platforme grafice sau caracter diferite.

• Descrierea unei clase poate fi modificat\ ̀ n Description.

• Informa]iile Class Name, Parent Class [i Class Library sunt read-only.Acestea arat\ numele clasei pe care clasa este bazat\ [i fi[ierul .VCX în carese afl\.

Page 18: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 18/21

17lec]ie demonstrativ\Ini]iere `n programare

 La finalul fiec\rui modul ve]i ̀ ntâlni câte o recapitulare , ̀ n care sunt  prezentate succint [i schematic cele mai importante informa]ii expuse pe

 parcurs. V\ prezent\m ̀ n continuare recapitularea modului 10, ̀ n care sunt 

tratate modalit\]ile de utilizare a controalelor.

Recapitularea modulului 10

10.1 Controalele grup de butoane de op]iuni (Option Buttons) sunt controalecare con]in un num\r de op]iuni din care nu poate fi selectat\ la un momentdat decât o op]iune. Din aceast\ cauz\ mai sunt numite [i butoane radio.

10.2 Controalele grup de butoane de comand\ (Option Groups) sunt controalecare con]in un num\r de butoane de comand\ care pot s\ fie tratate ca ounitate.

10.3 Controalele Grid (grile) sunt controale container sub form\ de grile ce v\ permit s\ prezenta]i datele în format tabelar. Controalele componente ale uneigrile sunt coloanele, header-ele [i controalele con]inute de coloane.

10.4 Controalele Page Frame sunt containere folosite pentru crearea de paginialternante. Fiecare pagin\ poate con]ine un set de controale grupate dup\anumite criterii. O singur\ pagin\ a controlului poate fi activ\ la un momentdat în form\.

10.5 Controalele Timersunt utilizate pentru lansarea periodic\ a unor evenimenteîntr-o aplica]ie. Aceste controale nu sunt vizibile în program.

10.6 Mediul de date (Data environment) reprezint\ toate tabelele, vederile [i

rela]iile care trebuie s\ fie deschise când rula]i sau modifica]i o form\. Mediulde date este salvat cu forma [i poate fi modificat în Data EnvironmentDesigner.

10.7 Sesiunea de date (Data session) este o reprezentare a mediului curent delucru utilizat de o form\ sau set de forme. Fiecare sesiune de date con]ine

 propriul set de zone de lucru. Aceste zone de lucru con]in tabelele deschise,indec[ii [i rela]iile lor.

10.8 Obiectele Form au o proprietate foarte important\, numit\ WindowType, prin care se poate stabili comportamentul general al unei forme. Aceasta poateavea valorile:

Page 19: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 19/21

Ini]iere `n programarelec]ie demonstrativ\18

• Modal – forma de]ine controlul permanent;

• Modeless – se poate comuta la o alt\ form\ sau se poate lansa o alt\op]iune dintr-un meniu.

10.9 Ordinea controalelor (tab order) reprezint\ ordinea în care controalele dintr-o form\ sunt parcurse atunci când ap\sa]i tasta TAB.

10.10 Variabila _SCREEN este o variabil\ sistem (este creat\ automat la lansareasistemului) [i cu ajutorul ei se poate manipula fereastra principal\ a VisualFoxPro ca orice obiect. Prin variabila _SCREEN se pot specifica propriet\]ile[i metodele ferestrei principale Visual FoxPro dup\ aceea[i sintax\ demanipulare a obiectelor dintr-o form\.

10.11 Meniurile sunt liste de elemente care declan[eaz\ comenzi atunci când sealege una dintre op]iuni. Generatorul de meniuri (Menu Designer) permiteintroducerea sau [tergerea op]iunilor din meniuri sau submeniuri. De asemenea,

 pentru fiecare meniu sau op]iune ata[eaz\ proceduri [i comenzi ce vor fi lansateîn execu]ie în momentul select\rii meniului / op]iunii.

Elementele care definesc un meniu sunt:

•  bara de meniu – o fâ[ie orizontal\ care apare de-a lungul p\r]ii de sus a

ecranului [i con]ine numele meniurilor;• articolul de meniu – o comand\ de meniu sau nume de fi[ier listate într-

un meniu. Pute]i s\ crea]i [i s\ defini]i elemente de meniu pentruaplica]iile dumneavoastr\ utilizând Menu Designer;

• textul meniului – un cuvânt, expresie, sau icoan\ de pe bara de meniucare desemneaz\ un meniu. Selectând textul meniului se va produceextinderea meniului în jos. Este adesea referit ca un nume de meniu;

• meniul sistem – combina]ia dintre bara de meniu, meniuri [i articole demeniu;

• meniu generat – este un program generat cu ajutorul generatorului demeniuri. Programele de meniu generate au extensia .MPR.

Page 20: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 20/21

19lec]ie demonstrativ\Ini]iere `n programare

Toate lec]iile au la final o tem\ pentru acas\  , care are rolul de a v\ testa cuno[tin]ele ̀ nsu[ite.

Tema pentru acas\ 11

Alege]i r\spunsurile corecte. Facem men]iunea c\ întreb\rile pot avea maimulte r\spunsuri corecte.

1. Alege]i comanda prin care pute]i trimite rezultatul rul\rii raportului Raport1.frx

într-un fi[ier text.

a) REPORT FORM Test.FRX TO FILE xxx.txt ASCII

 b) REPORT FORM Test.FRX TO FILE xxx.txt

c) REPORT FORM Test.FRX TO xxx.txt ASCII

2. Într-un raport, toate rândurile afi[ate trebuie separate de o linie orizontal\

 pentru a-l face mai u[or de urm\rit. În ce band\ trebuie introdus un control

grafic de tip linie?

a) banda Page Header;

 b) banda Page Footer;

c) banda DETAIL.

3. Într-un raport, pe prima pagin\ trebuie afi[at un titlu, iar pe toate paginile

tip\rite trebuie s\ apar\ capul de tabel. Unde trebuie introduse cele dou\

elemente?

a) ambele în banda de titlu TITLE;

 b) ambele în banda PAGE HEADER;

c) titlul se afi[eaz\ în banda de titlu TITLE, iar capul de tabel în banda PAGE

HEADER.

4. Dori]i s\ grupa]i datele dup\ un câmp, iar la sfâr[itul grupului s\ afi[a]i totaluri

ale grupului curent. Cum pute]i afi[a totaluri pe grupuri?

a) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar 

totalul se va afi[a în GROUP HEADER.

 b) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar 

totalul se va afi[a în GROUP FOOTER.

c) În DATA GROUPING se alege câmpul care se dore[te a fi totalizat, iar totalul se va afi[a în PAGE FOOTER.

Page 21: Lectie Demo Initiere in Programare

5/16/2018 Lectie Demo Initiere in Programare - slidepdf.com

http://slidepdf.com/reader/full/lectie-demo-initiere-in-programare 21/21

Ini]iere `n programarelec]ie demonstrativ\20

Cu aceasta se ̀ ncheie lec]ia demonstrativ\ a cursului de Ini]iere ̀ n programare. ~n speran]a c\ materialul prezentat v-a convins de

accesibilitatea [i atractivitatea cursuluiv\ a[tept\m s\ deveni]i cursant al Institutului Eurocor ̀ nscriindu-v\ la

cursul de Ini]iere ̀ n programare.

tel. 021/33.225.33; www.eurocor.ro

Temele se rezolv\ pe  formulare speciale , dispuse la sfâr[itul fiec\rui caiet.


Recommended