View
37
Download
1
Category
Preview:
Citation preview
Programarea calculatoarelor Visual Basic for Applications (VBA)
- suport de curs -
2
Introducere
Suportul de curs reprezintă o sinteză a conţinutului disciplinei Programarea in Visual Basic
for Applications. El este destinat studenţilor de la forma de învăţământ la distanţă (ID) şi constituie
materialul bibliografic minim necesar pentru parcurgerea, însuşirea şi evaluarea disciplinei
respective.
Suportul de curs este structurat conform standardelor şi procedurilor de uz larg în
învăţământul universitar naţional şi internaţional, care se adresează învăţării individuale, pe baze
interactive. Parcurgerea suportului de curs, pe baza prezentelor instrucţiuni, asigură reţinerea
informaţiilor de bază, înţelegerea fenomenelor fundamentale şi aplicarea cunoştinţelor dobândite la
rezolvarea unor probleme specializate.
Suportul de curs este structurat pe trei module iar modulele sunt structurate, la rîndul lor, pe
unităţi de învăţare. Modulul reprezintă o categorie de probleme distincte din materia disciplinei, care
formează un tot unitar din punct de vedere al specificului cunoştinţelor, al însuşirii unui anumit
aspect al fenomenologiei disciplinei precum şi din perspectiva timpului necesar parcurgerii şi
însuşirii fondului informaţional respectiv. În acest sens, un modul conţine una sau mai multe unităţi
de învăţare. Unitatea de învăţare reprezintă o parte omogenă din componenţa modulului,
caracterizată de un volum strict limitat de cunoştinţe, care pot să fie parcurse şi însuşite printr-un
efort continuu de concentrare intelectuală, care se referă la conţinutul de idei al unităţii de învăţare.
Fiecare unitate de învăţare are o structură proiectată din perspectiva exigenţelor autoinstruirii, astfel
că folosirea suportului de curs se face pe baza unui program de autoinstruire.
Recomandăm astfel, câteva regului de bază în procedura de realizare a programului de
autoinstruire pe baza acestui suport de curs:
1. Unităţile de învăţare se parcurg în ordinea în care sunt prezentate, chiar în cazul în care
studentul apreciază că ar putea “sări” direct la o altă unitate de învăţare (de exemplu în cazul în care
studentul se află la a doua facultate sau în alte situaţii echivalente). Criteriile şi modalitatea de
“înlănţuire” a unităţilor de învăţare sunt prezentate la fiecare unitate de învăţare şi ele trebuie
respectate întocmai, sub sancţiunea nerealizării la parametri maximali a programului de autoinstruire;
2. Fiecare unitate de învăţare conţine teste destinate autoevaluării gradului şi corectitudinii
însuşirii cunoştinţelor specifice unităţii de învăţare, înţelegerii fenomenelor şi proceselor descrise sau
prezentate în unitatea de învăţare;
Fiecare test al unităţii de învăţare este prevăzut cu un sistem de notare (puncte) care însumează
un maximum de 100 puncte;
3. Ordinea logică a parcurgerii unităţii de învăţare este următoarea:
a) se citeşte scopul şi obiectivele unităţii de învăţare;
b) se citesc termenii de referinţă (cuvintele-cheie);
c) se parcurge conţinutul de idei al unităţii de învăţare;
d) se parcurge bibliografia recomandată;
e) se răspunde la întrebările de autocontrol, revăzând, dacă este necesar, conţinutul de idei al
unităţii de învăţare;
f) se elaborează, pe o pagină, câte un eseu pentru fiecare dintre temele de reflecţie propuse la
unitatea de învăţare;
g) se efectuează testele de autoevaluare după procedura descrisă;
h) se rezolvă exerciţiile, problemele sau studiile de caz propuse pentru laboratorul sau
lucrările practice propuse în unitatea de învăţare.
Pentru creşterea eficienţei utilizării suportului de curs şi fixarea temeinică a cunoştinţelor
dobândite, fiecare unitate de invatare se încheie cu: întrebări de autocontrol, teme de reflecţie, teme
pentru studii de caz şi teste de autoevaluare.
3
Obiectivele cursului
Obiectul suportului de curs constă în însuşirea cunoştinţelor de bază privind
programarea calculatoarelor şi formarea deprinderilor practice necesare pentru
elaborarea de programe, pe exemplul mediului de programare Visual Basic for
Applications (VBA).
Obiectivele principale ale suportului de curs sunt:
însuşirea temeinică a noţiunilor fundamentale privind programarea
calculatoarelor, în particular ale celor aparţinând ultimei generaţii de medii de
programare;
formarea deprinderilor practice necesare pentru elaborarea contextuală şi
generală a programelor pentru efectuarea de aplicaţii din domeniul economic;
cunoaşterea temeinică a logicii programării ca o condiţie necesară pentru
elaborarea corectă a programelor, conform regulilor de sintaxă şi de punctuaţie
ale mediilor de programare;
dobândirea unei viziuni de ansamblu asupra teoriei şi practicii in domeniul
programarii calculatoarelor.
Suportul de curs este structurat pe trei module, fiecare modul conţinând, în
funcţie de problematica abordată, unitati de invatare specifice.
Competenţe conferite
Capacitatea de alegere a facilităţilor mediului de programare VBA în funcţie
de domeniul de activitate din care provin aplicaţiile, de specificul acestora şi
de cerinţele şi exigenţele utilizatorilor.
Capacitatea de înţelegere a modului în care cunoaşterea conceptelor şi a
noţiunilor fundamentale privind prelucrarea datelor cu mediul de programare
VBA poate să contribuie la însuşirea corectă a altor concepte şi noţiuni legate
de programarea calculatoarelor;
Capacitatea de a elabora programe în mediul de programare VBA.
Resurse şi mijloace de lucru
Pentru parcurgerea acestui curs va fi nevoie de utilizarea Sistemului de Gestiune a
Bazelor de Date Microsoft ACCESS 2010, care este parte a pachetului software
integrat MICROSOFT OFFICE 2010.
Structura cursului
Suportul de curs este structurat pe trei module astfel:
Modulul I este un modul de prezentare teoretică şi metodologică a problematicii
abordate, conţinând unitatile de invatare:
Unitatea 1. Noţiunile de instrucţiune, program, limbaj de programare şi metalimbaj;
Unitatea 2. Tehnici de programare şi exploatare a calculatoarelor electronice;
Modulul II este un modul de abordare şi tratare a logicii programării calculatoarelor,
4
conţinând unitatile de invatare:
Unitatea 3. Algoritmi şi algoritmizarea aplicaţiilor;
Unitatea 4. Reprezentarea (descrierea) algoritmilor şi forme de reprezentare;
Unitatea 5. Structuri fundamentale de prelucrare (control);
Unitatea 6. Etapele elaborării unui program într-un mediu de programare;
Modulul III este un modul de abordare a mediului de programare Visual Basic for
Applications (VBA) şi tratare practică a elaborării programelor în acest mediu de
programare, conţinând capitolele:
Unitatea 7. Elemente de bază ale mediului de programare VBA;
Unitatea 8. Programe elaborate în mediul de programare VBA.
Cerinţe preliminare
Pentru înțelegerea conceptelor și noțiunilor prezentate în acest curs și pentru a le
aplica eficient în practică este necesară parcurgerea în prealabil a cursului de Bazele
Tehnologiei Informației din anul I de studiu.
Discipline deservite
Pe baza cunoştinţelor dobândite în cadrul disciplinei curente studenții vor fi capabili să
urmeze cursurile de Sisteme informatice financiar-bancare, Sisteme informatice de
gestiune, Sisteme informatice in marketing, Informatica în afaceri, Comerţ electronic.
Durata medie de studiu individual
Timpul mediu necesar parcurgerii unei Unități de învățare este 2-3 ore.
Evaluarea studenților
Nota finala la disciplina Programarea calculatoarelor va fi stabilită prin :
- evaluarea finală (examen scris de tip grilă) – cu ponderea de 70%;
- evaluări pe parcurs (teme de control în cadrul activităților asistate) – cu
ponderea de 30%.
5
Cuprins
INTRODUCERE ........................................................................................................................................................ 2 OBIECTIVELE CURSULUI ............................................................................................................................................ 3 COMPETENŢE CONFERITE .......................................................................................................................................... 3 RESURSE ŞI MIJLOACE DE LUCRU ................................................................................................................................. 3 STRUCTURA CURSULUI ............................................................................................................................................. 3 CERINŢE PRELIMINARE ............................................................................................................................................. 4 DISCIPLINE DESERVITE .............................................................................................................................................. 4 DURATA MEDIE DE STUDIU INDIVIDUAL ........................................................................................................................ 4 EVALUAREA STUDENŢILOR ........................................................................................................................................ 4
UNITATEA DE ÎNVĂŢARE 1. NOŢIUNILE DE INSTRUCŢIUNE, PROGRAM, LIMBAJ DE PROGRAMARE ŞI METALIMBAJ ................................................................................................................................................... 7
1.1. OBIECTIVE ...................................................................................................................................................... 7 1.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ................................................................................................................. 7 1.3. PROGRAMAREA CALCULATOARELOR .................................................................................................................... 8 1.4. LIMBAJ DE PROGRAMARE ŞI METALIMBAJ ............................................................................................................. 8 1.5. LIMBAJ ŞI SISTEM DE PROGRAMARE ................................................................................................................... 10 1.6. EVOLUTIA LIMBAJELOR DE PROGRAMARE ............................................................................................................ 12 1.7. CLASIFICAREA LIMBAJELOR DE PROGRAMARE....................................................................................................... 14 1.8. REZUMAT ..................................................................................................................................................... 16 1.9. TEST DE AUTOEVALUARE A CUNOŞTINŢELOR......................................................................................................... 16 1.10. TEMĂ DE CONTROL ....................................................................................................................................... 16 1.11. BIBLIOGRAFIE .............................................................................................................................................. 17
UNITATEA DE ÎNVĂŢARE 2. TEHNICI DE PROGRAMARE SI EXPLOATARE A CALCULATOARELOR ELECTRONICE18
2.1. OBIECTIVE .................................................................................................................................................... 18 2.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 18 2.3. TEHNICI DE EXPLOATARE A SISTEMELOR DE CALCUL ............................................................................................... 18 2.4. REZUMAT ..................................................................................................................................................... 20 2.5. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR......................................................................................................... 21 2.6. TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................ 22 2.7. TEME DE CONTROL ......................................................................................................................................... 22 2.8. BIBLIOGRAFIE ................................................................................................................................................ 22
UNITATEA DE ÎNVĂŢARE 3. ALGORITMI ŞI ALGORITMIZAREA APLICAŢIILOR .................................................. 24
3.1. OBIECTIVE .................................................................................................................................................... 24 3.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 24 3.3. ALGORITMI .................................................................................................................................................. 24 3.4. PROPRIETĂŢILE ALGORITMILOR ......................................................................................................................... 25 3.5. TIPURI DE ALGORITMI ...................................................................................................................................... 26 3.6. OPERAŢIILE REPREZENTATE ÎN ALGORITMI ........................................................................................................... 26 3.7. CLASIFICAREA ALGORITMILOR ........................................................................................................................... 29 3.8. REZUMAT ..................................................................................................................................................... 31 3.9. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR......................................................................................................... 31 3.10. TEST DE EVALUARE A CUNOȘTINŢELOR .............................................................................................................. 32 3.11. BIBLIOGRAFIE .............................................................................................................................................. 32
UNITATEA DE ÎNVĂŢARE 4. DESCRIEREA ALGORITMILOR ŞI FORME DE REPREZENTARE ................................ 34
4.1. OBIECTIVE .................................................................................................................................................... 34 4.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 34 4.3. REPREZENTAREA ALGORITMILOR........................................................................................................................ 34 4.4 REPREZENTAREA ALGORITMILOR PRIN SCHEME LOGICE ........................................................................................... 35 4.5. REPREZENTAREA ALGORITMILOR PRIN LIMBAJ PSEUDOCOD..................................................................................... 36 4.6. REZUMAT ..................................................................................................................................................... 37 4.7. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR......................................................................................................... 37
6
4.8. TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................ 38 4.9. BIBLIOGRAFIE ................................................................................................................................................ 38
UNITATEA DE ÎNVĂŢARE 5. STRUCTURI FUNDAMENTALE DE PRELUCRARE (CONTROL) ................................. 40
5.1. OBIECTIVE .................................................................................................................................................... 40 5.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 40 5.3. STRUCTURI FUNDAMENTALE DE CONTROL ........................................................................................................... 40 5.4. REPREZENTAREA STRUCTURII ALTERNATIVE .......................................................................................................... 41 5.5. REPREZENTAREA STRUCTURII REPETITIVE ............................................................................................................. 42 5.6 REZUMAT ...................................................................................................................................................... 43 5.7. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR......................................................................................................... 44 5.8. TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................ 45 5.9. BIBLIOGRAFIE ................................................................................................................................................ 45
UNITATEA DE ÎNVĂŢARE 6. ETAPELE ELABORĂRII UNUI PROGRAM ÎNTR-UN MEDIU DE PROGRAMARE ........ 46
6.1. OBIECTIVE .................................................................................................................................................... 46 6.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 46 6.3. PRINCIPALELE ETAPE ALE ELABORĂRII UNUI PROGRAM ÎNTR-UN MEDIU DE PROGRAMARE .............................................. 46 6.4. REZUMAT ..................................................................................................................................................... 49 6.5 TEST DE AUTOEVALUARE A CUNOȘTINŢELOR.......................................................................................................... 50 6.6 TEST DE EVALUARE A CUNOȘTINŢELOR ................................................................................................................. 50 6.7 BIBLIOGRAFIE ................................................................................................................................................. 51
UNITATEA DE ÎNVĂŢARE 7. ELEMENTE DE BAZĂ ALE MEDIULUI DE PROGRAMARE VBA ................................ 52
7.1. OBIECTIVE .................................................................................................................................................... 52 7.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 52 7.3. DATE SI STRUCTURI DE DATE. CLASIFICAREA DATELOR ............................................................................................ 53 7.4 CONSTANTE ŞI VARIABILE .................................................................................................................................. 53 7.5 ALTE TIPURI DE DATE ........................................................................................................................................ 56 7.6 OPERATORI ŞI EXPRESII .................................................................................................................................... 57 7.7 FUNCŢII ......................................................................................................................................................... 59 7.8 PROCEDURI .................................................................................................................................................... 61 7.9. CONTROALE VISUAL BASIC (VBA) ..................................................................................................................... 64 7.10 LUCRUL CU FIŞIERE DE DATE ÎN MEDIUL VBA....................................................................................................... 65 7.11. REZUMAT ................................................................................................................................................... 68 7.12. TEST DE AUTOEVALUARE A CUNOȘTINŢELOR....................................................................................................... 69 7.13. TEST DE EVALUARE A CUNOȘTINŢELOR .............................................................................................................. 69 7.14. TEME DE CONTROL ....................................................................................................................................... 70 7.15. BIBLIOGRAFIE .............................................................................................................................................. 70
UNITATEA DE ÎNVĂŢARE 8. PROGRAME ELABORATE ÎN MEDIUL DE PROGRAMARE VBA ............................... 71
8.1. OBIECTIVE .................................................................................................................................................... 71 8.2. COMPETENŢELE UNITĂŢII DE ÎNVĂŢARE ............................................................................................................... 71 8.3. PROGRAMUL 1 .............................................................................................................................................. 71 8.4 PROGRAMUL 2 ............................................................................................................................................... 72 8.5 PROGRAMUL 3 ............................................................................................................................................... 72 8.6 PROGRAMUL 4 .............................................................................................................................................. 73 8.7. PROGRAMUL 5 .............................................................................................................................................. 74 8.8. PROGRAMUL 6 .............................................................................................................................................. 75 8.9. PROGRAMUL 7 .............................................................................................................................................. 76
7
UNITATEA DE ÎNVĂŢARE 1. NOŢIUNILE DE INSTRUCŢIUNE, PROGRAM, LIMBAJ DE PROGRAMARE ŞI METALIMBAJ
CUPRINS
1.1. Obiective
1.2. Competenţele unităţii de învăţare
1.3. Programarea calculatoarelor
1.4. Limbaj de programare şi metalimbaj
1.5. Limbaj şi sistem de programare
1.6. Evoluţia limbajelor de programare
1.7. Clasificarea limbajelor de programare
1.8. Rezumat
1.9. Test de autoevaluare a cunoştinţelor
1.10. Temă de control 1.11. Bibliografie
1.1. Obiective
În această primă unitate de învățare se vor prezenta noţiunile asociate logic:
instrucţiune-program-limbaj de programare în contextul desfăşurării activităţilor de
programare. Tot în cadrul acestei unităti de învățare vom prezenta elementele unui
sistem de programare şi interacţiunile dintre aceste elemente în procesul de elaborare a
programelor.
1.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
folositi structurile formalizate de metalimbaj pentru elaborarea de programe
într-un limbaj de programare;
explicaţi regulile sintactice şi de punctuaţie specifice unui limbaj de
programare în funcţie de natura aplicaţiilor informatice;
identificaţi corespunzător posibilităţile de exploatare ale limbajelor de
programare în activitatea de elaborare a programelor.
Durata de parcurgere a primei unităţi de învăţare este de 3 ore.
8
1.3. Programarea calculatoarelor
Noţiuni generale
În prelucrarea automată a datelor (PAD) programarea calculatoarelor este o
noţiune fundamentală, fiind în strânsă corelaţie cu alte noţiuni de bază din acest
domeniu, cum sunt noţiunile de: algoritm, limbaj de programare, program.
Pentru prelucrarea datelor, fără intervenţia utilizatorului în desfăşurarea acestui
proces, calculatorul electronic necesită, pe lângă datele de prelucrat, un ansamblu de
comenzi, care să-i indice acestuia, ce operaţii trebuie să execute pentru a obţine
rezultatele aşteptate de utilizator.
Ansamblul acestor comenzi reprezintă o descriere a procesului de prelucrare a datelor
completă şi fără ambiguităţi, definind toate acţiunile calculatorului electronic în orice
caz particular al aplicaţiei de efectuat. O astfel de descriere este denumită descriere
algoritmică, deoarece fără alte informaţii suplimentare, calculatorul poate să efectueze
toate operaţiile de prelucrare, furnizând rezultatele aşteptate de utilizator.
Descrierea algoritmică a acestui proces de prelucrare, după care calculatorul se
conduce în efectuarea unei aplicaţii, este denumită program. Deci, programul este o
exprimare a procesului de prelucrare automată, care indică operaţiile pe care
calculatorul trebuie să le execute, astfel încât din datele de prelucrat (iniţiale) să obţină
rezultatele aşteptate (finale). În orice program, ordinul primit de calculator pentru a
efectua o acţiune determinată (ca de exemplu: o operaţie de calcul, o operaţie logică
etc) se numeşte instrucţiune (comandă).
Elaborarea unui astfel de program necesită folosirea unui mijloc de comunicare
între utilizator şi calculator, încât toate specificaţiile din program (instrucţiunile), să
poată fi înţelese de calculator. Acest mijloc de comunicare, dintre utilizator şi
calculator, este denumit limbaj de programare.
Stabilirea metodelor corespunzătoare pentru efectuarea aplicaţiilor de
prelucrare a datelor, analiza logică a procesului de prelucrare, planificarea efectuării
operaţiilor de prelucrare şi verificarea rezultatelor obţnute constituie, în general,
obiectul programării calculatoarelor electronice.
Definiţi noţiunile: algoritm, limbaj de programare, program.
....................................................................................................................................
....................................................................................................................................
...................................................................................................................................
1.4. Limbaj de programare şi metalimbaj
Limbaj de programare
În sens lingvistic, prin limbaj se înţelege un sistem de comunicare specific
oamenilor alcătuit din sunete articulate, prin care oamenii îşi pot exprima gândurile,
sentimentele şi dorinţele. Acest sens precizează caracterul natural al acestui sistem
folosit de oameni şi aflat într-o continuă dezvoltare.
Odată cu dezvoltarea limbajului natural a apărut şi limbajul artificial. Acesta a
fost creat în mod intenţionat de oameni, pentru realizarea comunicării într-unul sau
altul din domeniile de activitate umană.
Acest tip de limbaj este dotat cu posibilitatea emiterii şi recepţionării formelor de
00:05
00:20
9
reprezentare ale comunicării, dar pe care le foloseşte un număr mult mai restrâns de
persoane, astfel că asocierea semnificaţiilor este mai explicit formulată, iar
comunicarea şi înţelegerea să fie cât mai simple.
Orice limbaj se caracterizează prin:
▪ forme corespunzătoare de reprezentare a comunicării;
▪ reguli de organizare a acestor forme de reprezentare;
▪ semnificaţii asociate formelor respective de reprezentare;
▪ reguli de constituire a semnificaţiilor acestor forme de reprezentare;
▪ reguli de utilizare a limbajului.
Necesitatea elaborării de programe pentru rezolvarea oricăror aplicaţii cu
calculatorul electronic a avut ca rezultat particularizarea formelor de reprezentare a
comunicării în cadrul limbajelor artificiale şi apariţia unui limbaj specilaizat, denumit
limbaj de programare, ca mijloc de comunicare între utilizator şi calculator. Astfel,
limbajul de programare este un limbaj artificial destinat descrierii prin directive,
comenzi sau instrucţiuni exprimate simbolic, a operaţiilor de prelucrare a datelor
efectuate cu calculatorul electronic.
Evoluţia foarte rapidă şi impresionantă a construcţiei calculatoarelor
electronice a avut drept consecinţă apariţia unei diversităţi de limbaje de programare.
Într-o astfel de diversitate, folosirea unui limbaj de programare necesită
studierea unor probleme specifice, cum sunt următoarele:
▪ definirea limbajelor de programare;
▪ relaţia dintre utilizarea calculatoarelor şi limbajele de programare;
▪ relaţia dintre limbajele de programare şi calculatoarele electronice.
Pentru utilizator, limbajul de programare este important prin operaţiile de
prelucrare automată a datelor pe care le poate efectua. Astfel, apare noţiunea de
specializare a limbajelor de programare pentru diferite domenii şi cerinţe de
prelucrare.
Pentru orice limbaj de programare există trei aspecte:
▪ tipurile de date care pot fi prelucrate;
▪ operaţiile de prelucrare şi modul de înlănţuire a lor;
▪ regulile prin care se formează structuri complexe de date şi se execută operaţii
complexe de prelucrare.
Orice limbaj de programare se poate caracteriza prin elementele specifice
limbajului natural: alfabet, vocabular, gramatică, punctuaţie, semantică, pragmatică.
Alfabetul este reprezentat prin mulţimea simbolurilor folosite în cadrul
limbajului de programare.
Vocabularul este reprezentat prin mulţimea cuvintelor folosite pentru
alcătuirea construcţiilor de limbaj.
Gramatica este un ansamblu de reguli prin care se formează construcţiile de
limbaj, având două componente: sintaxa şi morfologia.
Sintaxa studiază ansamblul regulilor de formare a instrucţiunilor, având un
rol important în orice limbaj de programare, deoarece calculatorul electronic nu
acceptă decât construcţiile de limbaj fără nici o eroare de sintaxă.
Morfologia conţine ansamblul regulilor de modificare a formei cuvintelor, în
contextul folosirii cuvintelor în cadrul construcţiilor de limbaj.
Punctuaţia este un sistem de semne grafice convenţionale, care au rolul de a
indica folosirea corectă a alfabetului, cuvintelor şi instrucţiunilor (propoziţii sau fraze).
Punctuaţia are rol de auxiliar grafic al sintaxei.
Semantica studiază toate semnificaţiile care se atribuie cuvintelor, permiţând
identificarea sensului construcţiilor de limbaj primite de calculator. Semantica
10
specifică operaţiile de executat pe o structură de date.
Pragmatica reglementează modalităţile de folosire practică a vocabularului,
cuvintelor, instrucţiunilor, în general, construcţiilor limbajului de programare.
Având în vedere cele prezentate anterior, limbajul de programare se poate
defini ca fiind un ansamblu (o mulţime) de simboluri, reguli de formare a
instrucţiunilor, reguli de punctuaţie, semnificaţii atribuite instrucţiunilor şi modalităţi
de utilizare practică a acestora în activitatea de elaborare a programelor pentru
prelucrarea automată a datelor.
Metalimbaj
Pentru ca programele să nu conţină erori de sintaxă este necesar ca regulile
unui limbaj (sintactice şi de punctuaţie) să fie cunoscute şi folosite corect. În acest
context, au fost elaborate structuri formalizate care cuprind toate instrucţiunile unui
limbaj de programare, prezentate într-o formă care permite respectarea regulilor
sintactice şi a celor de punctuaţie. Astfel de structuri formalizate alcătuiesc
metalimbajul fiecărui limbaj de programare, un instrument sintetic, sistematizat şi
simplificat de folosire în mod practic a oricărui limbaj de programare în activitatea de
elaborare a programelor de prelucrare automată a datelor pentru efectuarea de aplicaţii.
În concluzie, metalimbajul este un limbaj folosit pentru descrierea altor
limbaje. Ca atare, această noţiune este generală deoarece poate desemna orice notaţie
formală, eventual chiar un limbaj natural. De asemenea, această noţiune este relativă
deoarece metalimbajul este el însuşi un limbaj care trebuie definit, ceea ce implică
existenţa unui metalimbaj.
Să ne reamintim...
Limbajul de programare se poate defini ca fiind un ansamblu (o mulţime) de
simboluri, reguli de formare a instrucţiunilor, reguli de punctuaţie, semnificaţii
atribuite instrucţiunilor şi modalităţi de utilizare practică a acestora în activitatea de
elaborare a programelor pentru prelucrarea automată a datelor. Metalimbajul este un
limbaj folosit pentru descrierea altor limbaje.
1.5. Limbaj şi sistem de programare
Niveluri de limbaj de programare
Pentru ca un program să poată fi executat pe orice tip de calculator electronic,
trebuie ca programul să fie transmis calculatorului respectiv pe înţelesul acestuia, adică
în limbajul său propriu, denumit limbaj cod-maşină. Acest limbaj este dificil de
învăţat şi utilizat deoarece:
limbajul cod-maşină foloseşte cifrele binare, programele au un caracter abstract
şi neinteligibil, iar dimensiunea mare a programelor rezultate face foarte
laborios acest mod de lucru;
fiecare calculator electronic dispune de un limbaj cod-maşină propriu, ceea ce
constituie un mare dezavantaj pentru programatori, deoarece programatorul
trebuie să cunoască, în acest caz, fiecare limbaj în parte;
folosirea limbajelor cod-maşină poate fi un obstacol în extinderea domeniilor
de folosire a calculatorului şi realizarea portabilităţii programelor pentru
diferite tipuri de aplicaţii.
Aceste motive au determinat, ca încă din perioada primei generaţii de
00:40
00:50
11
calculatoare electronice, odată cu apariţia şi folosirea limbajelor de asamblare, să se
treacă la programarea simbolică. Chiar dacă aceste limbaje sunt considerate în cadrul
evoluţiei limbajelor de programare ca fiind limbaje de nivel inferior (datorită
dependenţei lor de particularităţile calculatorului pentru care au fost realizate),
limbajele de asamblare constituie un salt calitativ spre limbajele de nivel înalt.
Limbajele de asamblare aduc astfel primele elemente ale programării
simbolice, prin utilizarea codurilor mnemonice (pentru instrucţiuni) şi a adresării
simbolice.
De la limbajele de asamblare s-a trecut la elaborarea de limbaje de programare
mai apropiate de limbajul natural, care au fost denumite limbaje de nivel înalt (limbaje
procedurale) şi respectiv limbaje de nivel foarte înalt (limbaje neprocedurale).
Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma
unei succesiuni de comenzi (instrucţiuni), executate într-o anumită ordine, stabilită de
programator. Datorită acestor caracteristici, aceste limbaje sunt cunoscute şi sub
denumirea de limbaje algoritmice.
Elementele structurale ale limbajelor algoritmice, ca limbaje artificiale, nu
depind de un anumit tip de calculator, ci de sintaxa şi semantica proprii limbajului
respectiv. Executarea unui program scris în limbaj procedural, presupune traducerea
(translatarea) programului din limbajul în care a fost elaborat, în limbajul cod-maşină
al calculatorului folosit pentru rularea programului respectiv.
Programul care rezultă în urma scrierii instrucţiunilor acestuia într-un limbaj de
programare, conform unui algoritm de prelucrare, se numeşte program sursă.
Programele sursă trebuie traduse în limbajul propriu calculatorului, operaţie care se
efectuează de un program specializat denumit translator.
Translatorul îşi efectuează funcţia înainte de execuţia programului, obţinându-
se în final un program executabil. Programul executabil ce se execută independent de
translator, se numeşte compilator. Programele rezultate ca urmare a acţiunii
compilatorului (asupra programelor sursă) se numesc programe obiect (module
obiect). Cu alte cuvinte, compilatorul are rolul de a transforma programele sursă în
programe obiect.
In cazul in care, translatorul îşi efectuează funcţia proprie simultan cu execuţia
programului, este denumit interpretor. Execuţia programului este mai lentă, dar oferă
posibilitatea modificării programului şi în timpul rulării acestuia.
Un program sursă scris într-un limbaj algoritmic poate fi executat pe un
calculator dacă există un translator specific acelui limbaj de programare. Pe un
calculator pot exista mai multe translatoare, dacă există instalate mai multe limbaje de
programare. De asemenea, pentru un acelaşi limbaj pot exista mai multe versiuni de
translatoare diferenţiate prin: restricţii de limbaj cu scopul de scurtare a timpului
necesar translatării, simplificări pentru însuşirea mai rapidă a limbajului, proceduri
care folosesc mai eficient performanţele calculatorului.
Sistem de programare
Existenţa, pe de o parte, a limbajelor de programare independente de structura
internă a calculatorului şi, pe de altă parte, a translatorului propriu fiecărui limbaj, a
avut ca rezultat definirea în domeniul general al software-ului, a unei unităţi noi, aceea
de sistem de programare. Acest sistem reprezintă o combinaţie dintre:
• limbajele de programare de nivel înalt folosite la scrierea programelor pentru
efectuarea de aplicaţii;
• programele de translatare (compilatoare şi interpretoare).
Sistemele de programare oferă programatorilor diverse avantaje, printre care
01:10
12
următoarele:
▪ creşterea operativităţii activităţii de programare, rezultată din conciziunea
limbajelor de nivel înalt faţă de cele de nivel scăzut, ceea ce conduce la scurtarea
programelor;
▪ uşurinţa depanării programelor care rezultă din evidenţierea greşelilor de sintaxă
şi din posibilitatea corectării facile a acestora;
▪ eficienţa programului obiect, care rezultată din abilitatea programatorului de a
folosi cât mai bine performanţele calculatorului electronic;
▪ eficienţa folosirii memoriei calculatorului electronic, care poate să determine
viteza de execuţie a programului, asigurată de translator (compilator sau interpretor),
eventual fără nici o intervenţie din partea programatorului;
▪ uşurinţa învăţării programării, care duce la economisirea timpului pentru a
deprinde modul de lucru cu un anumit limbaj de programare.
Să ne reamintim...
Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma unei
succesiuni de comenzi (instrucţiuni), executate într-o anumită ordine, stabilită de
programator. Datorită acestor caracteristici, aceste limbaje sunt cunoscute şi sub
denumirea de limbaje algoritmice.
1.6. Evolutia limbajelor de programare
De la construirea primului calculator electronic Mark 1 în anul 1944 de către
firma IBM în colaborare cu Universitatea Harvard şi până în prezent, limbajele de
programare au evoluat într-un ritm deosebit de spectaculos. Apariţia şi dezvoltarea
rapidă a limbajelor de programare s-a aflat în strânsă legătură cu evoluţia
caracteristicilor constructive ale calculatoarelor. În evoluţia software-ului s-au
succedat mai multe etape.
Prima perioadă, situată între 1944 şi 1950, este perioada de început în
exploatarea limitată a calculatoarelor electronice şi în activitatea de elaborare a
programamelor pentru efectuarea de aplicaţii din câteva domenii de activitate.
Limbajele utilizate erau de tip cod-maşină, iar programarea reprezenta un efort mare
pentru un grup restrâns de specialişti.
A doua perioadă, cuprinsă între anii 1950–1959 se caracterizează prin apariţia
limbajelor de programare automată şi a sistemelor de programare. Apar limbajele de
asamblare şi spre sfârşitul perioadei limbajele de programare evoluate, denumite
limbaje de programare de nivel înalt (FORTRAN, ALGOL, COBOL şi LISP).
Limbajul FORTRAN (FORmula TRANslation), apărut în 1956, a fost
destinat rezolvării unor aplicaţii din domeniul tehnico-ştiinţific.
Limbajul ALGOL (ALGOrithmic Language), apărut în 1958, a fost elaborat
pentru rezolvarea de probleme matematice, fiind un limbaj cu structuri logice
apropiate de modul de scriere a formulelor matematice.
Limbajul COBOL (COmmon Business Oriented Language), apărut în 1959, a
fost elaborat pentru efectuarea de aplicaţii economice, având facilităţi pentru
organizarea datelor în fişiere, cu un volum mare de date.
Limbajul LISP (LISt Processing), apărut în anul 1958, a fost elaborat ca un
limbaj conversaţional destinat pentru prelucrarea de liste, folosind modele logico-
matematice.
A treia perioadă, dintre anii 1960–1969, este marcată de preocuparea pentru
elaborarea şi dezvoltarea unui limbaj de programare universal care să întrunească
01:20
13
caracteristici de la mai multe limbaje evoluate. Un astfel de limbaj a fost limbajul
PL/1 (Programming Language/1) care combina caracteristicile reprezentative ale celor
trei limbaje de programare (ALGOL, FORTRAN, COBOL). De asemenea, a fost
elaborat limbajul BASIC (Beginner's All-purpose Symbolic Instruction Code), ca o
variantă simplificată a limbajului FORTRAN, cu scopul de a fi folosit interactiv pentru
învăţarea rapidă a programării.
A patra perioadă, cuprinsă între anii 1970–1979, se caracterizează prin
apariţia de noi limbaje de programare: PASCAL, PROLOG, ADA.
Limbajul PASCAL, apărut în 1971, a fost elaborat pentru efectuarea de
aplicaţii tehnico-ştiinţifice şi aplicaţii economice. Acest limbaj satisface cerinţele
programării structurate, concurente şi în timp real.
Limbajul PROLOG a fost elaborat pentru rezolvarea unor probleme care se
pot exprima sub forma unor obiecte şi a unor relaţii între acestea. Este un limbaj
conversaţional, asemănător cu LISP.
Limbajul ADA, apărut în anul 1979, este destinat satisfacerii cerinţelor de
programare în timp real.
A cincea perioadă, situată după anul 1980 şi până în prezent, este o perioadă
care se caracterizează prin proliferarea unui număr mare de limbaje de programare
care răspund unor necesităţi diverse de stocare şi prelucrare automată a datelor. De
asemenea, au apărut aşa-numitele dialecte, adică versiuni ale unor limbaje existente.
Numărul limbajelor de programare create a depăşit 1000, dintre care aproximativ 200
limbaje au o răspândire mai mare.
Prelucrarea unui volum tot mai mare de date şi necesitatea perfecţionării
tehnicilor de acces la un astfel de volum de date, a condus la perfecţionarea tehnicilor
de stocare, regăsire şi prelucrare a datelor, o deosebită răspândire având sistemele de
gestiune a bazelor de date (SGBD). Sistemele de gestiune a bazelor de date dispun
de limbaje de descriere a structurii datelor în bazele de date şi de limbaje de
manipulare a datelor. În funcţie de modul de organizare a datelor în bazele de date, se
disting:
sisteme de gestiune a bazelor de date ierarhice;
sisteme de gestiune a bazelor de date reţea;
sisteme de gestiune a bazelor de date relaţionale;
sisteme de gestiune a bazelor de date orientate obiect;
sisteme de gestiune a bazelor de date distribuite.
Stocarea şi prelucrarea unor tipuri tot mai diverse de informaţii (sunet şi
imagine) presupune, de asemenea, tehnici speciale de stocare şi regăsire, precum şi
limbaje adecvate.
Cerinţele din ce în ce mai mari de prelucrare automată a datelor au condus la
necesitatea creşterii vitezei de realizare a programelor, precum şi a reducerii
posibilităţilor de eroare. Aceste două cerinţe au condus la apariţia unui nou concept de
programare, denumit programarea orientată obiect, care să ofere prototipuri mult
mai uşor de inserat în cadrul unor aplicaţii. Necesitatea folosirii calculatoarelor
electronice de către un număr tot mai mare de utilizatori a sporit preocupările în sensul
accesibilităţii totale, realizată prin limbaj natural, voce sau imagine.
Cum se clasifica SGBD-urile în funcţie de modul de organizare a datelor ?
…………………………………………………………………………...................
………………………………………………………………………………………
………………………………………………………………………………………
01:50
14
1.7. Clasificarea limbajelor de programare
Evoluţia rapidă înregistrată de limbajele de programare, ca mijloace de
comunicare între om şi sistemele automate de prelucrare a datelor a fost marcată de o
mare diversificare a acestora. În prezent, datorită multitudinii limbajelor de progra-
mare se impun diferite clasificări, în funcţie de diferite criterii.
În funcţie de caracteristicile de bază, limbajele de programare se pot clasifica
astfel:
▪ limbaje de programare în cod-maşină;
▪ limbaje de programare simbolică (de asamblare sau pseudocod şi autocod);
▪ limbaje de programare procedurale (algoritmice sau de nivel înalt);
▪ limbaje de programare neprocedurale (limbajele de nivel foarte înalt).
Limbajele de programare în cod-maşină se caracterizează prin faptul că
programatorul trebuie să specifice în amănunţime modul de execuţie, alocarea
resurselor hardware (memorie, discuri, periferice). Adresarea memoriei se face cu
indicarea exactă a locaţiilor de memorie.
Limbajele de programare simbolică se caracterizează prin faptul că
programatorul foloseşte coduri mnemonice pentru operaţii şi adrese simbolice pentru
desemnarea locaţiilor de memorie. Datorită dependenţei de caracteristicile construc-
tive şi funcţionale ale calculatorului electronic, aceste limbaje de programare nu sunt
portabile, adică nu pot asigura compa-tibilitatea programelor pe diferite tipuri de
calculatoare, fiind astfel considerate limbaje de nivel inferior. Ca alternativă la
limbajele de asamblare a apărut limbajul de programare C, numit şi asamblor
independent de maşină. Acest limbaj este orientat pe calculator fără să fie dependent
de fiecare tip de calculator. Limbajul C oferă programatorilor accesul la calcu-lator şi
la facilităţile sistemului de operare într-o măsură mult mai mare dacât celelalte limbaje
de programare independente de calculatorul electronic.
Limbajele de programare procedurale (algoritmice sau de nivel înalt) se
caracterizează prin faptul că programele se apropie mai mult de formalismul
matematic şi de limbajul natural decât de limbajul cod-maşină, astfel că se numesc, din
această cauză, limbaje de nivel înalt. Aceste limbaje sunt ca atare limbaje artificiale,
având o anumită structură, denumită gramatică şi care folosesc un vocabular pentru
exprimarea cerinţelor de programare. Folosirea acestor limbaje conduce la mărirea
productivităţii de elaborare a programelor. Translatarea dintr-un asemenea limbaj de
nivel înalt, în limbaj cod-maşină este asigurată de un program denumit translator.
Limbajele de programare neprocedurale (limbajele de nivel foarte înalt) se
caracterizează prin faptul că succesiunea comenzilor (instrucţiunilor) nu se mai
stabileşte conform unui algoritm de prelucrare şi nu mai influenţează decât într-o mică
măsură ordinea lor de execuţie. Aceste limbaje de programare fac saltul de la modul
cum se rezolvă o problemă la ceea ce se doreşte prin rezolvarea problemei. Altfel
spus, un program scris într-un limbaj neprocedural oferă numai un principiu de
rezolvare, nefiind necesare şi detaliile specifice algoritmilor de prelucrare. Din aceste
considerente, limbajele neprocedurale reprezintă un salt calitativ faţă de limbajele
procedurale, fiind numite şi limbaje de nivel foarte înalt. Astfel de limbaje oferă
utilizatorului posibilitatea de a defini doar problema, fără a-l mai obliga să precizeze şi
modul de rezolvare.
După funcţiile îndeplinite de limbajele de programare, se disting:
limbaje de interogare simplă;
limbaje de interogare complexă;
generatoare de situaţii şi rapoarte;
15
limbaje grafice;
sisteme de fundamentare a deciziilor;
limbaje de nivel înalt;
limbaje de nivel foarte înalt;
medii de programare.
Limbajele de interogare simplă permit consultarea fişierelor şi bazelor de date
pe un singur tip de înregistrare logică, folosind un criteriu de selecţie mai puţin
complex.
Limbajele de interogare complexă permit consultarea datelor din mai multe
tipuri de înregistrări logice, aparţinând uneia sau mai multor baze de date (SQL –
Structured Query Language, QBE – Query By Exemple etc).
Generatoarele de situaţii şi rapoarte se caracterizează prin folosirea a trei
funcţii de bază: selecţia datelor căutate, ordonarea după anumite criterii şi editarea
situaţiilor într-o structură formalizată (exemplu, Report Writer).
Limbajele grafice permit reprezentarea sub formă grafică a rezultatelor
prelucrării automate (ca de exemplu, ADRS/B6, SAS, FoxGraph etc).
Sistemele de fundamentare a deciziilor se adresează specialiştilor din diverse
domenii de activitate, pentru realizarea de aplicaţii complexe (de exemplu,
MULTIPLAN, LOTUS, EXCEL etc).
Generatoarele de aplicaţii se folosesc pentru obţinerea de programe
translatabile pe baza descrierii datelor de intrare şi de ieşire (exemplu, ARGUS,
LEDA, dBASE IV, FoxPro etc).
Limbajele de nivel înalt permit elaborarea de programe cu o mai mare uşurinţă,
lărgind astfel sfera utilizatorilor, precum şi creşterea vitezei de scriere a programelor
(de exemplu, NATURAL, XTOP, MANTIS, AS etc).
Mediile de programare sunt limbaje evoluate care permit integrarea pe o
platformă grafică de utilizator a tuturor activităţilor de elaborare şi executare a
programelor pentru efectuarea completă a aplicaţiilor şi anume:
editarea programelor sursă, care constă în introducerea instrucţiunilor
(comenzilor) de la tastatură, folosind editorul de texte al mediului de
programare sau compatibil cu acesta;
verificarea corectitudinii instrucţiunilor (comenzilor) introduse şi sesizarea
erorilor de sintaxă;
asistarea utilizatorilor (programatorilor) la introducerea instrucţiunilor şi
eliminarea erorilor de sintaxă care apar la editarea programelor sursă;
translatarea (compilarea) programelor sursă şi obţi-nerea programelor obiect
executabile;
depanarea programelor şi eliminarea erorilor de sintaxă şi semantică care apar
după lansarea în execuţie a programelor sursă şi a celor obiect;
executarea programelor cu date de probă şi eliminarea unor eventuale erori
logice;
salvarea (memorarea) programelor şi pregătirea lor pentru exploatarea curentă
cu date complete.
Cum se clasifica limbajele de programare din punct de vedere al funcţiilor pe
care le îndeplinesc ?
…………………………………………………………………………...................
………………………………………………………………………………………
………………………………………………………………………………………
16
1.8. Rezumat
Programul este o exprimare a procesului de prelucrare automată, care indică
operaţiile pe care calculatorul trebuie să le execute, astfel încât din datele de
prelucrat (iniţiale) să obţină rezultatele aşteptate (finale). În orice program, ordinul
primit de calculator pentru a efectua o acţiune determinată (ca de exemplu: o
operaţie de calcul, o operaţie logică etc.) se numeşte instrucţiune (comandă).
Mijlocul de comunicare dintre utilizator şi calculator este denumit limbaj de
programare.
Orice limbaj de programare se poate caracteriza prin elementele specifice
limbajului natural: alfabet, vocabular, gramatică, punctuaţie, semantică,
pragmatică .
Metalimbajul este un limbaj folosit pentru descrierea altor limbaje.
Limbajul intern al unui calculator se numeşte limbaj maşină (cod maşină).
Limbajele procedurale permit descrierea algoritmilor de prelucrare sub forma
unei succesiuni de comenzi (instrucţiuni), executate într-o anumită ordine, stabilită
de programator.
1.9. Test de autoevaluare a cunoştinţelor
(timp necesar: 20 min.)
1) Cum se caracterizeaza un limbaj de programare?
2) Cum se numeşte limbajul intern al calculatorului?
3) Ce reprezinta un program sursă?
4) Ce rol are compilatorul?
5) Cum se clasifica SGBD-urile în funcţie de modul de organizare a datelor ?
6) Ce intelegeti prin medii de programare?
Răspunsuri:
1) Un limbaj de programare se poate caracteriza prin elementele specifice
limbajului natural: alfabet, vocabular, gramatică, punctuaţie, semantică,
pragmatică.
2) Limbajul intern al unui calculator se numeşte limbaj maşină (cod maşină).
3) Programul care rezultă în urma scrierii instrucţiunilor acestuia într-un limbaj de
programare, conform unui algoritm de prelucrare, se numeşte program sursă.
4) Compilatorul are rolul de a transforma programele sursă în programe obiect.
5) În funcţie de modul de organizare a datelor în bazele de date, se disting:
sisteme de gestiune a bazelor de date ierarhice;
sisteme de gestiune a bazelor de date reţea;
sisteme de gestiune a bazelor de date relaţionale;
sisteme de gestiune a bazelor de date orientate obiect;
sisteme de gestiune a bazelor de date distribuite.
6) Mediile de programare sunt limbaje evoluate care permit integrarea pe o
platformă grafică a tuturor activităţilor de elaborare şi executare a programelor
pentru efectuarea completă a aplicaţiilor.
1.10. Temă de control
Alcătuiţi un scurt referat cu tema „Tipuri de limbaje de programare”.
02:40
17
1.11. Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,
2012
5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economică, Bucureşti, 2004
6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi
practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002
7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,
Bucureşti, 2003
8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureşti, 2004
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura
Economică, Bucureşti, 2000
3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
18
UNITATEA DE ÎNVĂŢARE 2. TEHNICI DE PROGRAMARE SI EXPLOATARE A CALCULATOARELOR ELECTRONICE
CUPRINS
2.1. Obiective
2.2. Competenţele unităţii de învăţare
2.3. Tehnici de exploatare a sistemelor de calcul
2.4. Rezumat
2.5. Test de autoevaluare a cunoştinţelor 2.6. Test de evaluare a cunoştinţelor
2.7. Bibliografie
2.1. Obiective
În această unitate de învățare se vor prezenta noţiunile de programare şi de
exploatare a calculatoarelor, precum şi modul de folosire a tehnicilor de programare
în activitatea de elaborare a programelor.
2.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
Utilizaţi tehnicile avansate în activitatea de elaborare a programelor;
Identificaţi metoda eficientă de lucru folosită în scopul elaborarii unui
program;
Utilizaţi corect regulile sintactice şi de punctuaţie specifice unui limbaj de
programare în funcţie de natura aplicaţiilor informatice.
Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.
2.3. Tehnici de exploatare a sistemelor de calcul
Pentru a prezenta tehnicile de programare este necesar, ca în prealabil, să se
definească unele noţiuni legate de tehnicile de exploatare a sistemelor de calcul.
Odată cu dezvoltarea tehnologiilor de fabricaţie a componentelor fizice ale
calculatoarelor electronice s-au creat premizele perfecţionării tehnicilor de
exploatare ale acestora, prin intermediul unor noi componente software, capabile să
folosească eficient resursele hardware.
Tehnicile utilizate pentru execuţia programelor au în vedere atât algoritmii
de reprezentare şi gradul de utilizare a resurselor sistemului de calcul, cât şi modul
în care sunt realizate obiectivele sistemului de operare, în condiţiile de creştere a
eficienţei de exploatare a sistemelor de calcul.
Următoarele noţiuni sunt legate de modul de exploatare a sistemelor de
calcul:
monoprogramming;
multiprogramming;
time-sharing;
real-time system.
00:05
19
Monoprogramming (monoprogramarea) reprezintă tehnica în care
execuţia programelor este realizată în modul de operare batch (pe loturi), în care un
singur program, cel ce se execută, beneficiază de toate resursele sistemului de
calcul. Intrarea în sistem a programelor se face secvenţial, ceea ce înseamnă că un
program nu poate intra în sistem, decât după ce programul anterior şi-a terminat
execuţia.
Să ne reamintim...
Monoprogramarea reprezintă un mod de exploatare a sistemelor de calcul prin
executarea serială a programelor.
Multiprogramming (multiprogramarea) reprezintă tehnica în care mai
multe programe (task-uri) sunt rulate simultan, resursele sistemului de calcul fiind
comutate de la un program la altul, în funcţie de priorităţile unităţii centrale de
prelucrare. Aceasta înseamnă că în acelaşi interval de timp, mai multe programe
sunt încărcate în memoria calculatorului, accesul fiecărui program la resurse fiind
impus de către unitatea centrală. Această tehnică, privind încărcarea simultană a
mai multor programe, care folosesc partajat unitatea centrală de prelucrare, este
considerată execuţie concurentă şi are ca obiectiv mărirea gradului de ocupare a
unităţii centrale. Este însă necesar să se facă distincţie între multiprogramare şi
multiprelucrare.
Atunci când mai multe programe ocupă în acelaşi timp memoria
calculatorului şi îşi partajează resursele, exploaterea unui sistem de calcul este în
multiprogramare, iar când într-un sistem de calcul există mai multe procesoare,
exploatarea sistemului de calcul este în multiprelucrare (multiprocessing). Ca
atare, multiprogramarea este un concept software, iar multiprelucrarea este un
concept hardware.
Care este diferenţa dintre multiprogramare şi multiprelucrare ? …………………………………………………………………………...................
………………………………………………………………………………………
…………………………………………………………………………...................
Time–sharing (execuţia programelor prin divizarea timpului) este tehnica
de exploatare, caracterizată de folosirea concurentă a resurselor unui sistem de
calcul, de către mai mulţi utilizatori, prin intermediul terminalelor plasate local sau
la distanţă. Această tehnică este, prin însăşi natura sa, o tehnică de lucru
conversaţională şi constă în comutarea sau multiplexarea resurselor de timp între
utilizatori.
Termenul de multiplexare, provenit din telecomunicaţi, semnifică partajarea
resurselor sistem, astfel încât să se creeze efectul de folosire simultană a resurselor,
de mai mulţi utilizatori.
Dacă în cazul multiprogramării, obiectivul central este creşterea gradului de
ocupare al unităţii centrale, timpul de răspuns neconstituind un obiectiv major, în
cazul tehnicii time-sharing, unitatea centrală este partajată pe bază de cerere,
prioritatea fiind optimizarea timpului de răspuns al sistemului de calcul.
Notiunea de time–sharing reprezintă:
00:30
20
…………………………………………………………………………...................
………………………………………………………………………………………
…………………………………………………………………………...................
Real–time system (sistem de calcul în timp real) este sistemul în care
timpul de răspuns, rezultat în urma execuţiei calculelor şi a celorlalte operaţii, este
suficient de mic, încât poate controla procesele ce se desfăşoară în cadrul
sistemului respectiv. Analiza unui sistem care operează în timp real se poate face
din mai multe puncte de vedere: hardware, software, programare, testare, depanare
şi utilizare.
Sistemele de calcul care operează în timp real au un timp de răspuns foarte
mic pentru a nu se perturba procesele controlate. Un exemplu de astfel de sisteme
sunt sistemele care controlează desfăşurarea proceselor tehnologice.
Notiunea de real-time system reprezintă: ………………………………………………………………………….......
………………………………………………………………………………
………………………………………………………………………….......
Analiza eficienţei exploatării sistemelor de calcul se poate efectua din mai
multe puncte de vedere, printre care cele mai importante se referă la:
performanţele tehnice ale echipamentelor de prelucrare automată a datelor;
tehnicile folosite în exploaterea sistemelor de calcul;
tehnicile folosite pentru realizarea programelor în scopul efectuării de
aplicaţii.
Analiza eficienţei exploatării sistemelor de calcul se referă la ?
…………………………………………………………………………...................
………………………………………………………………………………………
Să ne reamintim...
Real–time system (sistem de calcul în timp real) este sistemul în care timpul de
răspuns, rezultat în urma execuţiei calculelor şi a celorlalte operaţii, este suficient
de mic, încât poate controla procesele ce se desfăşoară în cadrul sistemului
respectiv.
2.4. Rezumat
Monoprogramarea reprezintă un mod de exploatare a sistemelor de calcul
prin executarea serială a programelor .
Multiprogramarea reprezintă tehnica în care mai multe programe (task-
uri) sunt rulate simultan, resursele sistemului de calcul fiind comutate de la
un program la altul, în funcţie de priorităţile unităţii centrale de prelucrare.
Time–sharing (execuţia programelor prin divizarea timpului) este tehnica
de exploatare, caracterizată de folosirea concurentă a resurselor unui sistem
de calcul, de către mai mulţi utilizatori, prin intermediul terminalelor plasate
local sau la distanţă. 01:30
21
Real–time system (sistem de calcul în timp real) este sistemul în care
timpul de răspuns, rezultat în urma execuţiei calculelor şi a celorlalte
operaţii, este suficient de mic, încât poate controla procesele ce se
desfăşoară în cadrul sistemului respectiv.
2.5. Test de autoevaluare a cunoștințelor
(timp necesar : 20 minute)
1. Suportul formal al informaţiilor, modelul de reprezentare a informaţiilor la nivel
fizic şi logic sunt:
a. structurile b. datele c. comenzile d. instrucţiunile
2. Pentru efectuarea oricărei aplicaţii cu ajutorul calculatorului este necesar să fie:
a.organizată b.structurată c.sistematizată d.algoritmizată
3. Limbajul de programare cel mai apropiat de limbajul natural se numeşte:
a.limbaj pseudocod b.limbaj procedural
c.limbaj neprocedural d.limbaj algoritmic
4. Reprezentarea procesului de prelucrare automată a datelor completă şi fără
ambiguităţi se numeşte:
a. procesare b. evaluare c. reprezentare d. descriere algoritmică
5. Descrierea algoritmică procesului de prelucrare, după care calculatorul poate
efectua orice aplicaţie, este denumită:
a. algoritm b. program c. instrucţiune d. comandă
6. În orice program, ordinul primit de calculator de a efectua o acţiune determinată
se numeşte:
a. instrucţiune b. codificare c. operaţie d. aplicaţie
7. Forma de reprezentare a comunicării dintre utilizator şi calculator se numeşte:
a. limbaj natural b. limbaj artificial
c. limbaj de programare d. intrucţiune
8. Mulţimea simbolurilor care sunt folosite într-un limbaj de programare se
numeşte:
a. instrucţiune b. program c. alfabet d. vocabular
9. Ansamblul regulilor de formare a instrucţiunilor în cadrul limbajelor de
programare se numeşte:
a. alfabet b. vocabular c. sintaxă d. semantică
10. Limbajele care fac saltul de la modul cum se rezolvă la ceea ce se doreşte
prin rezolvarea problemei se numesc limbaje:
a. algoritmice b. de nivel înalt c. procedurale d. neprocedurale
Răspunsurile corecte la întrebările din testul de tip grilă:
1 b 2 d 3 c 4 d 5 b 6 a 7 c 8 c 9 c 10 d
22
2.6. Test de evaluare a cunoștințelor
A. Care sunt criteriile de alegere a mediilor de programare în activitatea de
elaborare a programelor pentru efectuarea aplicaţiilor informatice;
B. Care sunt posibilităţile de exploatare ale mediilor de programare faţă de
limbajele de programare, în procesul de elaborare a programelor;
C. Ce se înţelege, în sens lingvistic, printr-un sistem de comunicare specific
oamenilor alcătuit din sunete articulate ?
D. Cum se numeşte sistemul de comunicare creat în mod intenţionat de
oameni, pentru realizarea comunicării într-unul sau altul din domeniile de
activitate umană ?
E. Cum se numeşte sistemul de comunicare destinat descrierii prin directive,
comenzi sau instrucţiuni, exprimate simbolic, a operaţiilor de prelucrare
automată a datelor ?
F. Cum este denumit ansamblul regulilor de modificare a formei cuvintelor, în
contextul întrebuinţării lor, în cadrul unui limbaj de programare ?
G. Cum se numeşte programul elaborat într-un limbaj de nivel înalt (superior
limbajului cod-maşină) conform algorit-mului aplicaţiei ?
H. Cum se numeşte limbajul de programare elaborat ca o variantă simplificată
a limbajului FORTRAN cu scopul de a fi folosit interactiv pentru învăţarea
rapidă a programării calculatoarelor ?
I. Cum se numeşte programul obţinut după translatarea unui program sursă,
folosind un program de translatare corespunzător ?
2.7. Teme de control
a) Realizaţi un studiu comparativ privind posibilităţile de folosire ale limbajelor
de programare în funcţie de nivelul situat faţă de limbajul în cod-maşină.
b) Alcătuiţi un scurt referat cu tema: „Modul de alegere a unui limbaj de
programare în funcţie de domeniile de folosire, specificul aplicaţiilor şi
particularităţile limbajelor de programare”.
c) Alcătuiţi un scurt referat cu tema: „Influenţa exercitată de către
caracteristicile mediilor de programare asupra activităţiilor de elaborare a
programelor, în funcţie de specificul aplicaţiilor”.
2.8. Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,
2012
5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economică, Bucureşti, 2004
6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi
23
practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti,
2002
7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,
Bucureşti, 2003
8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura
CURTEA VECHE, Bucureşti, 2004
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura
Economică, Bucureşti, 2000
3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
24
UNITATEA DE ÎNVĂŢARE 3. ALGORITMI ŞI ALGORITMIZAREA APLICAŢIILOR
CUPRINS
3.1. Obiective
3.2. Competenţele unităţii de învăţare
3.3. Algoritmi
3.4. Proprietăţile algoritmilor
3.5. Tipuri de algoritmi
3.6. Operaţiile reprezentate în algoritmi
3.7. Clasificarea algoritmilor
3.8. Rezumat
3.9. Test de autoevaluare a cunoştinţelor
3.10. Test de evaluare a cunoştinţelor
3.11. Bibliografie
3.1. Obiective
În această unitate de învățare se va prezenta noţiunes de algoritm ca premiză pentru
înţelegerea modului de algoritmizare a oricărei aplicaţii. De asemenea, se vor prezenta
proprietăţile algoritmilor, tipurile de algoritmi şi operaţiile care se reprezintă în
algorimi pentru construcţia corectă a algoritmilor şi reprezentarea corespunzătoare
logică a aplicaţiilor.
3.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
Definiţi noţiunea de algoritm în sens general şi în sens restrictiv;
Identificaţi proprietăţile algoritmilor pentru definirea lor corectă sub aspect
formal şi logic, precum şi tipurile de algoritmi în funcţie de natura operaţiilor
de efectuat şi de natura datelor folosite;
Efectuaţi algoritmizarea aplicaţiilor pentru adaptarea lor la cerinţele prelucrării
automate.
Utilizaţi corect operatorii şi operanzii în construcţia algoritmilor pentru
algoritmizarea aplicaţiilor.
Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.
3.3. Algoritmi
În prelucrarea automată a datelor, logica programării calculatoarelor este
denumirea pentru ansamblul operaţiilor de determinare, reprezentare şi evaluare a
algoritmilor de rezolvare a aplicaţiilor cu calculatorul electronic.
Însă, în contextul realizării produselor informatice, această denumire este
extinsă, prin implicaţiile sale, asupra modului de concepere a structurii de ansamblu a
produselor informatice, cu dependenţele funcţionale specifice, precum şi asupra
modului de realizare a acestor produse.
Definiţii
Denumirea de algoritm provine din contopirea cuvântului alhovism, dupã
00:05
25
numele unui matematician arab (ALHVARISMI care a trăit în evul mediu), cu
cuvântul grec arithmos (număr).
Definirea noţiunii (conceptului) de algoritm a evoluat odată cu dezvoltarea
studiilor matematice şi a tehnicii de calcul (mai ales a calculatoarelor electronice).
* În matematica contemporanã prin algoritm se poate înţelege orice proces
aritmetic sau algebric care se efectuează după nişte reguli bine determinate.
* În sens matematic mai riguros un algoritm este o mulţime finită de operaţii
(instrucţiuni, comenzi) cunoscute care, executate într-o ordine bine stabilită, pornind
de la un set de valori (intrarea algoritmului) ce aparţine unei mulţimi de asemenea
seturi, mulţime numită domeniul de definiţie al algoritmului, produc în timp finit un alt
set de valori (ieşirea algoritmului).
* În contextul în care se foloseşte calculatorul electronic, noţiunea de
algoritm este definitã ca un ansamblu de reguli ce determină în mod univoc un proces
finit de operaţii de prelucrare automată asupra unor informaţii admisibile iniţiale în
scopul obţinerii informaţiilor finale care sunt aşteptate de utilizatori.
Definiţi noţiunea de algoritm.
........................................................................................................................................
.......................................................................................................................................
......................................................................................................................................
3.4. Proprietăţile algoritmilor
Pentru definirea corectă sub aspect formal, algoritmii trebuie să îndeplinească
cel puţin trei condiţii esenţiale: generalitate, finitudine şi unicitate.
Generalitatea este proprietatea algoritmilor prin care orice algoritm nu rezolvã
în general o singurã problemã, ci o clasã de probleme de acelaşi tip. Această
proprietate justifică însuşi sensul (scopul) pentru care un algoritm este elaborat. Cu cât
sfera de aplicabilitate a algoritmului este mai largă, cu atât eficienţa folosirii acestuia
este mai mare.
Finitudinea este proprietatea algoritmilor potrivit căreia informaţiile finale
rezultă din informaţiile iniţiale printr-un numãr finit de transformări (operaţii). Această
proprietate pune în evidenţă faptul că dacă în parcurgerea unui algoritm, dintr-un
anumit motiv (de obicei dintr-o eroare în logica elaborării), o operaţie sau un grup de
operaţii se executã la infinit, atunci pentru a ieşi din această stare (a întrerupe această
execuţie) este necesară o intervenţie din exterior.
Unicitatea este proprietatea algoritmilor conform căreia transformările
(operaţiile), precum şi ordinea lor de efectuare, prin care se obţin anumite informaţii
finale din informaţiile iniţiale, sunt univoc determinate de regulile algoritmului.
Aceasta înseamnã că ori de câte ori se porneşte de la acelaşi set de valori ale
informaţiilor (variabilelor) de intrare se obţin întotdeauna aceleaşi informaţii finale
(rezultate).
Aceste trei proprietăţi caracterizează algoritmii numai sub aspect formal.
Pentru a fi însă corespunzător şi din punct de vedere al problemei de rezolvat (sub
aspect logic), orice algoritm mai trebuie sã fie corect şi eficient.
Corectitudinea este o condiţie indispensabilă pentru orice algoritm, fiind
determinată de metoda de rezolvare a problemei aleasă de utilizator.
Eficienţa unui algoritm este impusă de modul cum se lucrează la calculator şi
de timpul de răspuns al calculatorului. În prezent modul de lucru la calculator este, de
00:30
26
obicei, modul conversaţional, iar timpul de răspuns al calculatorului este timpul care
trece de la introducerea datelor în calculator de către utilizator şi până la obţinerea
rezultatelor. Aceasta înseamnă că, deşi un algoritm poate fi corect sub aspect formal şi
al metodei de rezolvare, este posibil să fie ineficient dacă, de exemplu, furnizează
rezultatele mai târziu decât momentul aşteptat. De asemenea, un algoritm poate fi
ineficient şi sub alte aspecte, cum sunt: precizia, volumul de date necesare, resurse
folosite etc.
Să ne reamintim...
Algoritmii trebuie să îndeplinească cel puţin trei condiţii esenţiale: generalitate,
finitudine şi unicitate. Pentru a fi însă corespunzător şi din punct de vedere al
problemei de rezolvat (sub aspect logic), orice algoritm mai trebuie sã fie corect şi
eficient.
Ce înţelegeţi prin generalitate, finitudine şi unicitate?
...................................................................................................................
Dar prin corectitudinea si eficienţa unui algoritm?
...................................................................................................................
3.5. Tipuri de algoritmi
În funcţie de natura operaţilor conţinute şi informaţilor folosite, algoritmii se
pot împărţi în două mari grupe: algoritmi numerici şi algoritmi nenumerici.
* Algoritmii numerici sunt algoritmii care, în urma efectuării unui număr finit de
operaţii aritmetice elementare asupra unor informaţii numerice, furnizează un rezultat
numeric ce constituie soluţia sau aproximaţia acesteia pentru problema rezolvată. În
această grupă se includ algoritmii ce corespund metodelor de calcul numeric, cum
sunt: rezolvarea ecuaţiilor, integrarea şi derivarea numerică, calculul matriceal.
Algoritmii numerici se caracterizează prin:
▪ mărginirea (limitarea) în timp a duratei de execuţie;
▪ definirea riguroasă a fiecărui ciclu (pas) din cadrul structurii algoritmului;
▪ executabilitatea tuturor acţiunilor (operaţiilor) conţinute;
▪ corectitudinea metodelor de evaluare a algoritmilor.
* Algoritmii nenumerici denumiţi şi algoritmi de prelucrare sunt algoritmii în
care soluţia rezolvării problemelor (rezultatul prelucrării) se obţine în urma efectuării
unui număr finit de operaţii care nu sunt operaţii aritmetice (de exemplu: sortarea,
indexarea, filtrarea, ventilarea, regruparea, interclasarea etc.).
În această grupă se includ toţi algoritmii de prelucrare a datelor organizate
structural în fişiere de date şi baze de date. În algoritmii de prelucrare pot fi incluse, în
funcţie de natura aplicaţiilor, şi operaţii aritmetice care se constituie în subalgoritmi
numerici.
Definiţi noţiunile de algoritmi numerici si algoritmi nenumerici. ........................................................................................................................................
.......................................................................................................................................
......................................................................................................................................
3.6. Operaţiile reprezentate în algoritmi
01:00
27
În structura algoritmilor, informaţiile iniţiale (datele de intrare) sunt
transformate în informaţii finale (date de ieşire) prin diferite operaţii (acţiuni), care, în
principal, sunt:
▪ Operaţii de calcul, ce se referã la operaţiile obişnuite (adunare, scãdere,
înmulţire, impărţire şi ridicare la putere) şi la celelalte operaţii mai complexe ce se pot
executa prin reducerea la operaţii aritmetice elementare.
Aceste operaţii sunt reprezentate prin simbolurile cunoscute din matematicã sau prin
simbolurile folosite în limbajele de programare:
+ pentru adunare,
- pentru scădere,
* pentru înmulţire,
/ pentru impărţire,
** pentru ridicare la putere;
( ) pentru subexpresii.
Aceste operaţii când sunt specificate în cadrul expresiilor se execută în mod
natural, conform ordinei de prioritate cunoscută din matematică, sau în mod forţat,
prin folosirea parantezelor rotunde.
Operaţii de atribuire, prin care se stabileşte conţinutul unor variabile cu
anumite valori, care pot fi valori ale unor constante, ale altor variabile sau ale
unor expresii.
Aceste operaţii se pot reprezenta prin trei simboluri diferite:
<-- simbol prin care se indicã sensul atribuirii; variabila destinaţie este situată
în partea stângă a simbolului;
:= simbol tipic pentru operaţia de atribuire, pentru a se deosebi de simbolul
"=" folosit în matematică;
= simbol preluat din matematică, dar folosit cu altă semnificaţie şi anume:
"se atribuie valoarea".
Indiferent care dintre aceste simboluri se foloseşte, în operaţiile de atribuire
există o sursă de valori cu care se execută operaţia, situată în dreapta simbolului, şi o
destinaţie care primeşte aceste valori, situată stângă simbolului.
Exemple: S<-- 0 A := B E = A + B
I<-- I + 1 I := I + 1 I = I + 1
Să ne reamintim...
Operaţiile de calcul se referã la operaţiile obişnuite (adunare, scãdere, înmulţire,
impărţire şi ridicare la putere) şi la celelalte operaţii mai complexe ce se pot executa
prin reducerea la operaţii aritmetice elementare.
Operaţii de decizie, ce se referă la verificarea unei condiţii logice şi în funcţie
de rezultatul obţinut se alege fie o alternativă de urmat (în cazul algoritmilor cu
ramificaţii), fie continuarea, respectiv terminarea, procesului repetitiv (în cazul
algoritmilor ciclici).
După modul de exprimare a condiţiilor logice, operaţiile de decizie pot fi
reprezentate prin două feluri de simboluri:
◦ simbolul de comparare;
◦ simbolurile de relaţie.
Simbolul de comparare este caracterul special: (două puncte), care se poate
folosi pentru a compara o variabilã cu altă variabilă sau o variabilă cu o constantă.
01:30
5
01:15
28
Rezultatul unei astfel de comparări pune în evidenţă trei alternative: mai mic decât,
egal cu şi mai mare decât.
Exemple:
A : B D : 0
Să ne reamintim...
După modul de exprimare a condiţiilor logice, operaţiile de decizie pot fi reprezentate
prin două feluri de simboluri: simboluri de comparare; simboluri de relaţie.
Punând în evidenţă aceste trei alternative, nu se recomandă ca simbolul de comparare
să fie folosit pentru formularea condiţiilor logice, deoarece complică structura
algoritmilor şi, în consecinţă, reprezentarea acestora.
Simbolurile relaţionale sunt simbolurile folosite în matematică sau cele folosie
în limbajele de programare, cum sunt urmãtoarele:
< mai mic decât
> mai mare decât
= egal cu
<= mai mic decât sau egal cu
>= mai mare decât sau egal cu
<> nu este egal cu
Exemple:
A < B A > B A = B
A <= B A >= B A <> B
Punând în evidenţă numai două alternative (adevărat şi fals), simbolurile de relaţie
(relaţionale) sunt cele care se recomandã să fie folosite pentru formularea (exprimarea)
condiţiilor logice.
▪ Operaţii de intrare şi ieşire, ce se referã la introducerea informaţiilor admisibile
iniţiale (datelor de intrare) în memoria calculatorului şi la obţinerea informaţiilor finale
(rezultatelor sau datelor de ieşire).
În prelucrarea automată a datelor, operaţia de intrare se mai numeşte şi operaţie
de citire şi constă în introducerea de date de la tastatură sau de pe un suport tehnic de
date, iar operaţia de ieşire se mai numeşte operaţie de scriere sau de afişare şi constă
în furnizarea de date pe ecranul monitorului sau pe imprimantă. Pentru descrierea
operaţiilor de intrare şi ieşire nu sunt simboluri speciale (consacrate), dar se folosesc în
mod frecvent cuvintele CITEŞTE şi SCRIE.
▪ Alte operaţii, prin care se desemnează diferite operaţii (acţiuni) care se întâlnesc,
de obicei, în algoritmii nenumerici (de prelucrare), ca de exemplu: căutare, extragere,
sortare, interclasare etc. Aceste operaţii nu se reprezintă prin simboluri speciale
(consacrate), ci chiar prin denumirea lor.
Ordinea de execuţie a operaţiilor defineşte structura de control a algoritmului.
Această structură, indiferent de tipul algoritmului, prezintă anumite similitudini, care
derivă din cele două caracteristici de bază ale oricărui algoritm: iterativitatea şi
recursivitatea.
01:50
29
* Iterativitatea constă în reluarea anumitor operaţii de prelucrare, în general
cu alte valori ale variabilelor.
* Recursivitatea reprezintã procesul de determinare a valorii unei variabile, la
un moment dat, pe baza uneia sau a mai multor valori anterioare. Din cele prezentate
rezultã cã, se poate face o asociere între recursivitate şi iterativitate, în sensul că,
obţinerea valorilor succesive ale unei variabile recursive se poate asigura print-un
proces iterativ.
Definiţi cele două caracteristici de bază ale unui algoritm. ........................................................................................................................................
.......................................................................................................................................
......................................................................................................................................
3.7. Clasificarea algoritmilor
După modul de succesiune a operaţiilor (acţiunilor) pe care le implică, algoritmii se
împart în trei mari grupe:
• algoritmi liniari sau cu structură secvenţială;
• algoritmi cu ramificaţii sau cu structură alternativă;
• algoritmi ciclici sau cu structură repetitivă.
Algoritmii liniari (cu structură secvenţială) conţin operaţii care se succed în
secvenţă (operaţie după operaţie) de la admiterea informaţiilor iniţiale (datelor de
intrare) şi până la obţinerea informaţiilor finale (datelor de ieşire), fără condiţii
prestabilite de execuţie şi fără repetări ale operaţiilor.
Exemplu:
Calculul expresiei E = A + B – C implică efectuarea în ordine secvenţială a
celor trei operaţii specificate:
adunarea valorii variabilei A cu valoarea variabilei B;
scăderea din suma obţinutã a valorii variabilei C;
atribuirea rezultatului obţinut variabilei E.
Algoritmii cu ramificaţii (cu structură alternativă) conţin operaţii (acţiuni)
care se execută în funcţie de îndeplinirea sau neîndeplinirea unor condiţii logice din
structura algoritmilor; structura se ramifică pe alternative distincte, fiecare având
operaţii care se executã condiţionat.
Exemplu:
Calculul rădacinilor ecuaţiei de gradul doi se desfăşoarã pe etape, astfel:
• etapa 1: se calculează discriminantul ecuaţiei pe baza formulei cunoscute;
• etapa 2: se compară discriminantul D cu zero;
• etapa 3: se calculează rădăcinile ecuaţiei astfel:
• dacã D>0 se execută operaţiile pentru obţinerea celor douã rădăcini reale
şi distincte;
• dacã D=0 se execută operaţiile pentru obţinerea celor două rădăcini reale
şi egale;
• dacã D<0 se execută operaţiile pentru obţinerea celor două rădăcini
02:05
30
complexe.
Algoritmii ciclici (cu structură repetitivă) conţin operaţii (acţiuni) care se
executã ciclic (repetat), în funcţie de îndeplinirea sau neindeplinirea unei condiţii
impuse. În structura unui algoritm ciclic parcurgerea o singură dată a blocului de
operaţii repetabile se numeşte ciclu sau pas. Elementele unui ciclu (pas) sunt: corpul
ciclului, reprezentat de blocul de operaţii care se repetã şi condiţia impusă, de care
depinde continuarea sau terminarea procesului repetitiv.
În funcţie de posibilitatea cunoaşterii numărului de cicluri (paşi) înainte de a
începe procesul ciclic (repetitiv), algoritmii ciclici sunt de două feluri:
• algoritmi ciclici cu un număr cunoscut de cicluri (paşi) sau cu variabilă de
ciclare;
• algoritmi ciclici cu un număr necunoscut de cicluri (paşi) sau cu condiţie
logică.
Algoritmii ciclici cu un număr cunoscut de cicluri sunt algoritmii ciclici în
structura cărora blocul de operaţii se repetă până când se ajunge la numărul de cicluri
prestabilit. Acest număr de cicluri este controlat de o variabilã denumită variabilă de
ciclare (contor sau numărător) simbolizată, în general, cu V.
Variabila de ciclare V este determinată elementele:
• valoarea iniţială Vi;
• valoarea finală Vf;
• raţia (pasul) de variaţie R.
Aceste trei elemente se găsesc într-o relaţie bine definită cu variabila de ciclare
şi anume:
• la începutul procesului repetitiv variabilei de ciclare V i se atribuie valoarea
iniţială Vi pe baza relaţiei V=Vi;
• după efectuarea fiecărui ciclu (pas)variabila de ciclare V se modifică pe baza
relaţiei V=V+R şi apoi se verifică condiţia V>Vf, astfel că:
• dacă această condiţie este falsă, atunci procesul de ciclare continuă;
• dacă această condiţie este adevărată, atunci acest proces se termină.
Algoritmii ciclici cu un număr necunoscut de cicluri sunt algoritmii ciclici în
care blocul de operaţii se repetă în funcţie de îndeplinirea sau neîndeplinirea unei
anumite condiţii care se numeşte condiţie logică.
Ţinând seama de locul unde este situată condiţia logică în structura algoritmilor
ciclici cu un număr necunoscut de cicluri se pot distinge:
• algoritmi ciclici cu condiţia logică situată anterior;
• algoritmi ciclici cu condiţia logică situată posterior.
Algoritmii ciclici cu condiţia logică situată anterior sunt algoritmii în care
condiţia logică se verifică înainte de executarea blocului de operaţii. Ca atare, când
condiţia logică este falsă de la prima verificare, blocul de operaţii nu se execută
niciodatã şi se încheie procesul repetitiv.
Algoritmii ciclici cu condiţia logică situată posterior sunt algoritmii în care
condiţia logică este verificată după executarea blocului de operaţii. Când condiţia
logică este falsă de la prima verificare, blocul de operaţii se execută o singură dată şi
31
se încheie procesul repetitiv.
Care sunt diferenţele între algoritmii ciclici cu condiţia logică situată anterior si
algoritmii ciclici cu condiţia logică situată posterior ?
…………………………………………………………………………………………..
…………………………………………………………………………………………...
3.8. Rezumat
Noţiunea de algoritm este definitã ca un ansamblu de reguli ce determină în
mod univoc un proces finit de operaţii de prelucrare automată asupra unor
informaţii admisibile iniţiale în scopul obţinerii informaţiilor finale care sunt
aşteptate de utilizatori.
Algoritmii au următoarele proprietăţi: generalitate, finitudine, unicitate,
corectitudine şi eficienţă.
În funcţie de natura operaţilor conţinute şi informaţilor folosite, algoritmii se
pot împărţi în două mari grupe: algoritmi numerici şi algoritmi nenumerici.
Algoritmii numerici sunt algoritmii care, în urma efectuării unui număr finit
de operaţii aritmetice elementare asupra unor informaţii numerice, furnizează
un rezultat numeric ce constituie soluţia sau aproximaţia acesteia pentru
problema rezolvată.
Algoritmii nenumerici denumiţi şi algoritmi de prelucrare sunt algoritmii în
care soluţia rezolvării problemelor (rezultatul prelucrării) se obţine în urma
efectuării unui număr finit de operaţii care nu sunt operaţii aritmetice (de
exemplu: sortarea, indexarea, filtrarea, ventilarea, regruparea, interclasarea
etc.).
Operaţiile reprezentate în algoritmi pot fi de tipul urmator: operaţii de calcul,
operaţii de atribuire, operaţii de decizie, operaţii de intrare/iesire.
După modul de succesiune a operaţiilor (acţiunilor) pe care le implică,
algoritmii se împart în trei mari grupe:
- algoritmi liniari sau cu structură secvenţială;
- algoritmi cu ramificaţii sau cu structură alternativă;
- algoritmi ciclici sau cu structură repetitivă.
3.9. Test de autoevaluare a cunoștințelor
(timp necesar : 20 minute)
1) Definiţi noţiunea de algoritm.
2) Definiţi proprietatea de Generalitate.
3) Definiţi proprietatea de Finitudine.
4) Prin ce se caracterizează algoritmii numerici?
5) Ce întelegeţi prin operaţiile de decizie?
6) Care sunt caracteristicile de bază ale unui algoritm?
7) Cum pot fi reprezentate operaţiile de decizie?
8) Ce întelegeţi prin algoritmii ciclici cu un număr cunoscut de cicluri?
02:40
32
Răspunsuri:
1) Noţiunea de algoritm este definitã ca un ansamblu de reguli ce determină în
mod univoc un proces finit de operaţii de prelucrare automată asupra unor
informaţii admisibile iniţiale în scopul obţinerii informaţiilor finale care sunt
aşteptate de utilizatori.
2) Generalitatea este proprietatea algoritmilor prin care orice algoritm nu rezolvã
în general o singurã problemã, ci o clasã de probleme de acelaşi tip.
3) Finitudinea este proprietatea algoritmilor potrivit căreia informaţiile finale
rezultă din informaţiile iniţiale printr-un numãr finit de transformări (operaţii).
4) Algoritmii numerici se caracterizează prin:
▪ mărginirea (limitarea) în timp a duratei de execuţie;
▪ definirea riguroasă a fiecărui ciclu (pas) din cadrul structurii algoritmului;
▪ executabilitatea tuturor acţiunilor (operaţiilor) conţinute;
▪ corectitudinea metodelor de evaluare a algoritmilor.
5) Operaţiile de decizie se referă la verificarea unei condiţii logice şi în funcţie de
rezultatul obţinut se alege fie o alternativă de urmat (în cazul algoritmilor cu
ramificaţii), fie continuarea, respectiv terminarea procesului repetitiv (în cazul
algoritmilor ciclici).
6) Caracteristicile de bază ale unui algoritm sunt: iterativitatea şi recursivitatea.
7) Operaţiile de decizie pot fi reprezentate prin două feluri de simboluri:
- simbolul de comparare;
- simbolul de relaţie.
8) Algoritmii ciclici cu un număr cunoscut de cicluri sunt algoritmii ciclici în
structura cărora blocul de operaţii se repetă până când se ajunge la numărul de
cicluri prestabilit.
3.10. Test de evaluare a cunoștințelor
Care sunt operaţiile reprezentate în algoritmi?
Cum se clasifică algoritmii după modul de succesiune a operaţiilor (acţiunilor) pe care
le implică?
3.11. Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,
2012
5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economică, Bucureşti, 2004
6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi
33
practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002
7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,
Bucureşti, 2003
8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureşti, 2004
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura
Economică, Bucureşti, 2000
3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
34
UNITATEA DE ÎNVĂŢARE 4. DESCRIEREA ALGORITMILOR ŞI FORME DE REPREZENTARE
CUPRINS
4.1. Obiective
4.2. Competenţele unităţii de învăţare
4.3. Reprezentarea algoritmilor
4.4 Reprezentarea algoritmilor prin scheme logice
4.5. Reprezentarea algoritmilor prin limbaj pseudocod
4.6. Rezumat
4.7. Test de autoevaluare a cunoştinţelor 4.8. Test de evaluare a cunoştinţelor
4.9. Bibliografie
4.1. Obiective
În această unitate de învățare se vor prezenta principalele forme folosite pentru
reprezentarea (descrierea) algoritmilor în scopul adaptării specificaţiilor acestora la
specificul construcţiilor limbajelor de programare. De asemenea, se vor prezenta
simbolurile folosite la construcţia blocurilor din schemele logice de sistem şi de
program.
4.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
Utilizaţi formele de reprezentare (descriere) a algoritmilor în scopul adaptării
descrierii algoritmice la specificul limbajului de programare în care se
elaborează programele;
Identificaţi simbolurile standard folosite la construirea blocurilor din care se
alcătuiesc schemele logice de sistem şi de program;
Construiţi scheme logice de sistem şi de program adaptate la specificul sintaxei
instrucţiunilor program ale limbajului de programare folosit.
Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.
4.3. Reprezentarea algoritmilor
După ce un algoritm a fost elaborat (stabilit sau precizat), este necesar să fie
prezentat într-o formă accesibilă pentru elaborarea ulterioară a programului pentru
calculator. Această operaţie se numeşte reprezentarea (descrierea) algoritmului.
Reprezentarea algoritmilor se poate realiza în mai multe feluri: prin cuvinte,
printr-un limbaj logico-matematic, prin scheme logice, prin limbaj pseudocod etc.
00:05
35
Care sunt metodele de reprezentare a unui algoritm?
...........................................................................................................................................
...........................................................................................................................................
4.4 Reprezentarea algoritmilor prin scheme logice
Schema logică este o formă de reprezentare a algoritmilor răspândită în practica
programării calculatoarelor, care se remarcă prin simplitate şi claritate de a reflecta în
mod concentrat şi complet logica efectuării unei aplicaţii (rezolvării unei probleme) cu
calculatorul electronic.
Schema logică este o formă grafică de reprezentare a algoritmilor alcătuită din
blocuri de operaţii legate prin săgeţi sau linii de flux.
Orice schemă logică începe cu un bloc de intrare (START) şi se termină cu un
bloc de ieşire (STOP). Între aceste două blocuri terminale se interpun celelalte blocuri
aranjate conform algoritmului pe care îl descrie. În schema logică fiecare bloc are o
singură intrare şi o singură ieşire, cu excepţia blocului de decizie, care are o singură
intrare şi două ieşiri (câte una pentru fiecare alternativă), a blocului de intrare care are
numai ramura de ieşire şi a blocului de ieşire care are numai ramura de intrare.
Modul de parcurgere a algoritmilor (cum se trece de la un bloc la altul) se indică
explicit prin săgeţi sau implicit prin linii de flux. Legătura dintre blocurile schemei
logice poate fi numai univocă, condiţie impusă de noţiunea de algoritm. În interiorul
blocurilor se specificã operaţiile de efectuat (operatorii) şi datele de prelucrat
(operanzii).
În funcţie de natura operaţiilor pe care le conţin, blocurile schemei logice sunt
descrise prin diferite simboluri (figuri geometrice) standardizate. Există o diversitate de
simboluri folosite în acest scop, totuşi blocurile fundamentale necesare elaborării unei
scheme logice, cu denumirea şi semnificaţia corespunzătoare, sunt următoarele:
Blocul terminal. Acest bloc marchează începutul, respectiv sfârşitul
algoritmului, astfel că în interiorul blocului se scrie, după caz, START sau STOP.
Blocul de intrare/ieşire. Marchează operaţiile de CITIRE/SCRIERE a datelor.
Blocul de calcul. Indică operaţiile de calcul şi de atribuire, iar în algoritmii de
prelucrare poate indica şi o procedură sau o secvenţă de operaţii.
Blocul de decizie. Pune în evidenţă operaţiile de test şi decizie în construirea
structurilor alternative şi repetitive.
Blocul de procedură. Pune în evidenţă apelarea unui algoritm sau subalgoritm
care există independent, respectiv apelarea unei secvenţe autonome; (în interiorul
blocului se scrie numele procedurii).
Săgeata. Indică sensul de parcurgere a algoritmului şi uneşte blocurile între ele.
Dacă este plasată în interiorul blocului de calcul, atunci indică o operaţie de atribuire.
Conectorul de procedură. Indică punctele de întâlnire ale săgeţilor (liniilor de
flux) sau locurile de conec-tare a două părţi din schema logică, pe aceeaşi pagină.
Conectorul de pagină. Leagă două blocuri (părţi) succesive dispuse pe pagini
diferite. Se utilizeazã pentru a indica continuarea schemei logice de pe o paginã pe alta;
se poate înlocui cu conectorul de procedurã.
00:15
36
Să ne reamintim...
Blocurile fundamentale necesare elaborării unei scheme logice sunt: blocul terminal,
blocul de intrare/ieşire, blocul de calcul, blocul de decizie, blocul de procedură,
săgeata, conectorul de procedură, conectorul de pagină.
4.5. Reprezentarea algoritmilor prin limbaj pseudocod
O formă de descriere sintetică care asigură transpunerea algoritmilor în
limbajele de programare o constituie limbajul orientat către descrierea progresivã a
specificaţiilor algoritmilor, denumit limbaj pseudocod.
Limbajul pseudocod poate fi definit ca un limbaj simbolic situat între limbajul
natural şi limbajele de programare, obţinut prin introducerea în limbajul natural a unor
reguli specifice limbajelor de programare.
Logica limbajului pseudocod este mai apropriată de limbajele de programare cu
toate că foloseşte cuvinte şi expresii uzuale din limbajul natural. Cuvintele folosite în
limbajul pseudocod sunt considerate cuvinte simbolice, deoarece prin astfel de cuvinte
se simulează structurile necesare pentru descrierea algoritmilor. Având semnificaţii
stricte în construcţiile sintactice, aceste cuvinte mai sunt denumite şi cuvinte cheie şi se
scriu îngroşate sau subliniate.
Între blocurile de operaţii din schemele logice şi cuvintele cheie din limbajul
pseudocod există o oarecare echivalenţă, care se poate observa comparând conţinutul
blocurilor respective cu cuvintele cheie, folosite pentru descrierea specificaţiilor unui
algoritm.
Reprezentarea algoritmilor în limbajul pseudocod se realizează prin propoziţii.
În funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt:
propoziţii simple, prin care se exprimă operaţii ce urmează să fie transpuse
direct într-un limbaj de programare (ca de exemplu, citeşte două numere,
calculează suma, afişează suma etc);
propoziţii complexe, prin care se exprimă un grup de operaţii care trebuie
detaliate ulterior, în scopul transpunerii într-un limbaj de programare; pentru a fi
diferenţiate, propoziţiile complexe se marchează la început cu semnul #.
Fiecare propoziţie simplă sau complexă trebuie să înceapă cu un verb, care să
exprime cât mai corect operaţia descrisă şi care să poată continua, în unele cazuri, cu
anumite cuvinte prestabilite.
În limbajul pseudocod o importanţă deosebită, pentru evitarea erorilor, o are
folosirea semnelor de punctuaţie, cum sunt:
caracterul ';' folosit pentru separarea expresiilor;
caracterul '.' folosit pentru marcarea, alături de cuvântul sfârşit, încheierea
algoritmilor.
Pentru reprezentarea unui algoritm în limbajul pseudocod folosind aceste semne
de punctuaţie, este necesară şi suficientă o singură frază.
Reprezentarea algoritmilor prin limbaj pseudocod asigură:
flexibilitate mare în descrierea algoritmilor;
posibilitatea exprimării algoritmilor în limbaj natural;
transpunere facilă într-un limbaj de progamare.
01:00
5
37
Spre deosebire de schemele logice, pseudocodul este mai complet în descrierea
algoritmilor, posedând expresii care simulează cu claritate structurile fundamentale de
prelucrare (control). În consecinţă, limbajul pseudocod este din ce în ce mai mult folosit
ca formă preferată pentru reprezentarea (descrierea) algoritmilor.
Să ne reamintim...
Reprezentarea algoritmilor în limbajul pseudocod se realizează prin propoziţii. În
funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt simple şi complexe.
Care este deosebirea dintre schemele logice şi limbajul pseudocod în descrierea
algoritmilor?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
4.6. Rezumat
Schema logică este o formă grafică de reprezentare a algoritmilor alcătuită
din blocuri de operaţii legate prin săgeţi sau linii de flux.
Orice schemă logică începe cu un bloc de intrare (START) şi se termină cu
un bloc de ieşire (STOP). Între aceste două blocuri terminale se interpun
celelalte blocuri aranjate conform algoritmului pe care îl descrie.
Blocurile fundamentale necesare elaborării unei scheme logice sunt: blocul
terminal, blocul de intrare/ieşire, blocul de calcul, blocul de decizie, blocul
de procedură, săgeata, conectorul de procedură, conectorul de pagină.
Limbajul pseudocod poate fi definit ca un limbaj simbolic situat între
limbajul natural şi limbajele de programare, obţinut prin introducerea în
limbajul natural a unor reguli specifice limbajelor de programare.
Reprezentarea algoritmilor în limbajul pseudocod se realizează prin
propoziţii. În funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt
simple şi complexe.
4.7. Test de autoevaluare a cunoștințelor
(timp necesar : 20 minute)
1. Ce reprezinta o schema logica?
2. Care sunt blocurile fundamentale necesare elaborării unei scheme logice?
3. Ce reprezinta Blocul terminal?
4. Ce reprezinta Blocul de procedură ?
5. Definiti limbajul pseudocod.
6. Cum se reprezinta algoritmii in limbajul pseudocod?
7. Care sunt avantajele reprezentarii algoritmilor in limbajul pseudocod?
Răspunsuri:
1. Schema logică este o formă grafică de reprezentare a algoritmilor alcătuită
01:50
38
din blocuri de operaţii legate prin săgeţi sau linii de flux.
2. Blocurile fundamentale necesare elaborării unei scheme logice sunt: blocul
terminal, blocul de intrare/ieşire, blocul de calcul, blocul de decizie, blocul
de procedură, săgeata, conectorul de procedură, conectorul de pagină.
3. Blocul terminal marchează începutul, respectiv sfârşitul algoritmului, astfel
că în interiorul blocului se scrie, după caz, START sau STOP.
4. Blocul de procedură pune în evidenţă apelarea unui algoritm sau
subalgoritm care există independent, respectiv apelarea unei secvenţe
autonome; în interiorul blocului se scrie numele procedurii.
5. Limbajul pseudocod poate fi definit ca un limbaj simbolic situat între
limbajul natural şi limbajele de programare, obţinut prin introducerea în
limbajul natural a unor reguli specifice limbajelor de programare.
6. Reprezentarea algoritmilor în limbajul pseudocod se realizează prin
propoziţii. În funcţie de felul operaţiilor pe care le descriu, propoziţiile sunt
simple şi complexe..
7. Avantajele reprezentarii algoritmilor in limbajul pseudocod sunt:
flexibilitate mare în descrierea algoritmilor;
posibilitatea exprimării algoritmilor în limbaj natural;
transpunere facilă într-un limbaj de progamare.
4.8. Test de evaluare a cunoștințelor
Care este modul de parcurgere a unui algoritm descris printr-o schema logica?
Care este deosebirea dintre descrierea algoritmilor prin schemele logice şi
descrierea algoritmilor prin limbajul pseudocod?
Cum se numeşte forma grafică de reprezentare a algoritmilor alcătuită din
blocuri de operaţii legate prin săgeţi ?
Cum se numeşte forma de reprezentare a algoritmilor orientată către
descrierea progresivă a specificaţiilor ?
4.9. Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti, 2012
5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economică, Bucureşti, 2004
6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi
practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002
7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,
39
Bucureşti, 2003
8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureşti, 2004
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura
Economică, Bucureşti, 2000
3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
40
UNITATEA DE ÎNVĂŢARE 5. STRUCTURI FUNDAMENTALE DE PRELUCRARE (CONTROL)
CUPRINS
5.1. Obiective
5.2. Competenţele unităţii de învăţare
5.3. Structuri fundamentale de control
5.4. Reprezentarea structurii alternative
5.5. Reprezentarea structurii repetitive
5.6. Rezumat
5.7. Test de autoevaluare a cunoştinţelor
5.8. Test de evaluare a cunoştinţelor
5.9. Bibliografie
5.1. Obiective
În această unitate de învățare se vor prezenta structurile fundamentale de prelucrare
(control) şi modul cum aceste structuri sunt descrie în schemele logice de program. De
asemenea, se vor prezenta instrucţiunile prin care aceste structuri de prelucrare
(control) sunt reprezentate în programele elaborate (de exemplu în limbajul VBA).
5.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
Identificaţi structurile fundamentale de prelucrare (control) în care orice
algoritm se poate descompune pentru elaborarea programului de prelucrare.
Descompuneţi orice aplicaţie în structuri fundamentale de prelucrare (control)
pentru reprezentarea lor prin instrucţiuni în orice mediu de programare.
Reprezentaţi structurile fundamentale de prelucrare (control) prin instrucţiuni
specifice mediului de programare VBA.
Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.
5.3. Structuri fundamentale de control
Structurile de control reprezintă componentele programării structurate.
Programarea structurată este un stil de programare care se bazează pe
respectarea unei discipline de programare şi folosirea riguroasă a câtorva structuri de
calcul. Ca rezultat se va ajunge la un algoritm uşor de urmărit, clar şi corect.
Termenul programare nu este identic cu cel de programare propriu-zisă. Este
vorba de întreaga activitate depusă pentru obţinerea unui program, deci atât proiectarea
algoritmului cât şi traducerea acestuia în limbajul de programare ales.
Indiferent cât de complex ar fi un algoritm, s-a demonstrat matematic că acesta
poate fi descompus în structurile fundamentale de prelucrare (control) următoare:
• structura secvenţială;
• structura alternativă;
00:05
41
• structura repetitivă.
Reprezentarea în schema logică:
a) structura
secvenţială
b) structura
alternativă
c) structura
repetitivă
Figura 5.1. Structurile fundamentale de control
Reprezentarea structurii secvenţiale
Structura secvenţială este o succesiune de operaţii care se execută
necondiţionat şi fără repetări, în ordinea specificată în structura algoritmilor.
Cum poate fi descompus un algoritm?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
5.4. Reprezentarea structurii alternative
Structura alternativă este alcatuita dintr-o conditie plus instructiunile care se executa
daca respectiva conditie este adevarata, respectiv instructiunile care se executa daca
este falsa.
Reprezentarea în schema logică:
Figura 5.2. Schema logica pentru structura alternativă
Reprezentarea structurii alternative de tip selecţie
00:30
42
normală (IF-THEN-ELSE)
Structura alternativă de tip selecţie normală (IF-THEN-ELSE) conţine un bloc
de decizie şi două secvenţe de operaţii, care se execută alternativ, după cum condiţia
logică este adevărată sau falsă.
Reprezentarea structurii alternative de tip selecţie
simplă (IF-THEN şi IF-ELSE)
În acest tip de structură alternativă secvenţa de operaţii este inclusă în ramura
introdusă de clauza THEN sau în ramura introdusă de clauza ELSE, după cum condiţia
logică are valoarea logică adevărat sau fals.
Reprezentarea structurii alternative de tip selecţie
multiplă (CASE-OF)
Structura alternativă de tip selecţie multiplă are o variabilă selector I şi o
mulţime finită de n secvenţe de operaţii care se execută alternativ, după cum variabila
selector ia valori pe intervalul 1,...,n. Variabila I trebuie să ia una din aceste valori
înainte de intrarea în structură, pentru execuţia uneia din secvenţele Si, altfel se execută
secvenţa de operaţii S.
Să ne reamintim...
Structura alternativa este alcatuita dintr-o conditie si cel putin o instructiune!
5.5. Reprezentarea structurii repetitive
Reprezentarea structurii repetitive cu condiţie logică
Structurile repetitive cu condiţie logică conţin o secvenţă de operaţii care se
execută ciclic atât timp cât o condiţie logică este adevărată sau falsă. Condiţia logică
poate fi situată înainte de secvenţa de operaţii (varianta WHILE-DO) sau după această
secvenţa (varianta DO-UNTIL). Atunci când condiţia logică este falsă de la prima
testare, în varianta WHILE-DO nu se execută niciodată secvenţa de operaţii din
structură şi se încheie procesul ciclic, iar în varianta DO-UNTIL această secvenţă de
operaţii se execută o singură dată.
Structura repetitivă cu conditie iniţială
Aceasta structură este alcatuită dintr-o conditie, care se află la început, si un bloc de
instructiuni, care se execută daca rezultatul evaluarii conditiei este adevarat.
Reprezentarea în schema logică:
1:00
43
Figura 5.3. Schema logica pentru structura repetitivă cu conditie iniţială
Structura repetitivă cu condiţie finală
Alcatuirea acestei structuri este de forma bloc de instructiuni, apoi conditie.
De remarcat ca blocul de instructiuni se executa minim o data, spre deosebire de
structura repetitiva cu test initial, unde blocul de instructiuni era posibil sa nu se
execute deloc, daca rezultatul evaluarii conditiei initiale era fals.
Reprezentarea în schema logică:
Figura 5.4. Schema logică pentru structura repetitivă cu condiţie finală
Reprezentarea structurii repetitive cu variabilă
de ciclare (DO-FOR)
Această structură conţine o secvenţă de operaţii ce se execută repetat până
rezultă un număr prestabilit de cicluri. Procesul repetitiv este controlat de o variabilă
de ciclare V, cu valoarea iniţială Vi, ce se modifică pe parcurs prin relaţia V=V+R şi
care este testată ciclic prin relaţia V >Vf. Acest proces se termină când este îndeplinită
condiţia V > Vf .
Cum este alcătuită structura repetitivă?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
5.6 Rezumat
44
Orice algoritm poate fi descompus în următoarele structuri fundamentale de
control:
– structura secvenţială;
– structura alternativă;
– structura repetitivă.
Structura secvenţială este o succesiune de operaţii care se execută
necondiţionat şi fără repetări, în ordinea specificată în structura algoritmilor.
Structura alternativă este alcatuită dintr-o conditie plus instructiunile care se
executa daca respectiva conditie este adevarata, respectiv instructiunile care se
executa daca este falsa.
Structura repetitivă cu condiţie iniţială este alcatuită dintr-o conditie, care se
află la început, si un bloc de instructiuni, care se execută daca rezultatul
evaluarii conditiei este adevarat.
Structura repetitivă cu condiţie finală este de forma bloc de instructiuni, apoi
conditie.
5.7. Test de autoevaluare a cunoștințelor
(timp necesar : 20 minute)
1. Care sunt structurile de control ale unui algoritm?
2. Cum se reprezinta structura secventiala?
3. Cum este alcatuita structura alternativa?
4. Cum este alcatuita structura repetitivă cu condiţie iniţială?
5. Cum este alcatuita structura repetitivă cu condiţie finală?
Răspunsuri:
1. Structurile fundamentale de control sunt următoarele:
• structura secvenţială;
• structura alternativă;
• structura repetitivă.
2. Structura secvenţială este o succesiune de operaţii care se execută necondiţionat
şi fără repetări, în ordinea specificată în structura algoritmilor.
3. Structura alternativă este alcatuită dintr-o conditie plus instructiunile care se
executa daca respectiva conditie este adevarata, respectiv instructiunile care se
executa daca este falsa.
4. Structura repetitivă cu condiţie iniţială este alcatuită dintr-o conditie, care se
află la început, si un bloc de instructiuni, care se execută daca rezultatul
evaluarii conditiei este adevarat.
5. Structura repetitivă cu condiţie finală este de forma bloc de instructiuni, apoi
conditie.
01:30
45
5.8. Test de evaluare a cunoștințelor
Ce diferenţă există între cele trei structuri de control ale unui algoritm?
Cum se numeşte forma grafică de reprezentare a algoritmilor alcătuită din
blocuri de operaţii legate prin săgeţi ?
Cum se numeşte forma de reprezentare a algoritmilor orientată către
descrierea progresivă a specificaţiilor ?
5.9. Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,
2012
5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economică, Bucureşti, 2004
6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi
practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002
7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,
Bucureşti, 2003
8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureşti, 2004
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura
Economică, Bucureşti, 2000
3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
46
UNITATEA DE ÎNVĂŢARE 6. ETAPELE ELABORĂRII UNUI PROGRAM ÎNTR-UN MEDIU DE PROGRAMARE
CUPRINS
6.1. Obiective
6.2. Competenţele unităţii de învăţare
6.3. Principalele etape ale elaborării unui program într-un mediu de programare
6.4. Rezumat
6.5. Test de autoevaluare a cunoştinţelor
6.6. Test de evaluare a cunoştinţelor
6.7. Bibliografie
6.1. Obiective
În această unitate de învățare se vor prezenta principalele etape care trebuie parcurse
logic şi cronologic pentru elaborarea unui program în orice mediu de programare,
precum si operaţiile care trebuie efectuate în fiecare etapă pentru elaborarea unui
program în mediul VBA.
6.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
Parcurgeti principalele etape în ordinea lor logică şi cronologică în scopul
elaborării unui program în orice mediu de programare;
Efectuati operaţiile specifice fiecărei etape pentru elaborarea unui program în
mediul VBA.
Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.
6.3. Principalele etape ale elaborării unui program într-un mediu de programare
Elaborarea unui program în orice mediu de programare implică desfăşurarea
unor activităţi şi efectuarea unor operaţii, într-o ordine atât logică, cât şi cronologică,
care se pot grupa pe diferite etape şi tipuri de activităţi (operaţii).
Etapele principale şi activităţile (operaţiile) implicate sunt următoarele:
1. Definirea aplicaţiei de prelucrat (problemei de rezolvat). Este etapa în cadrul
căreia se stabileşte caracterul prelucrabil al aplicaţiei (problemei), adică posibilitatea
de efectuare cu calculatorul electronic. Orice aplicaţie sau problemă prelucrabilă se
poate defini direct, prin relaţii matematice sau descriptiv, prin propoziţii şi fraze.
Totodată, orice aplicaţie sau problemă prelucrabilă trebuie definită complet şi corect
00:05
47
pentru a fi posibilă prelucrarea (rezolvarea) acesteia cu calculatorul electronic.
2. Analiza logică a aplicaţiei (problemei) definite anterior. În această etapă se
precizează care sunt şi sub ce formă se prezintă rezultatele (datele de ieşire) aşteptate
de utilizator, felul şi volumul datelor de prelucrat (de intrare), modul de culegere şi
verificare a datelor de prelucrat, suporturile tehnice (de memorie) pe care se
înregistrează datele de intrare, modul de introducere în calculatorul electronic a acestor
date. De asemenea, în această etapă se specifică procedurile de prelucrare a datelor,
precum şi modul de lucru folosit (batch, interactive, teleprocessing etc).
Explicaţi in ce consta etapa de „definire a problemei de rezolvat”. Dar etapa de
„analiza logică a aplicaţiei”?
...........................................................................................................................................
3. Elaborarea algoritmului (algoritmilor) de efectuare a aplicaţiei (rezolvare
a problemei). Este etapa în care se precizează regulile necesare pentru efectuarea
operaţiilor de prelucrare implicate într-o ordine determinată. Ordinea de efectuare a
acestor operaţii este de obicei ordinea secvenţială, cu specificarea explicită a
modificării acestei ordini şi a altor cerinţe de prelucrare.
Algoritmii elaboraţi pot fi algoritmi de prelucrare sau de calcul şi/sau
combinaţii dintre un algoritm de prelucrare şi (sub)algoritmi de calcul. Prin aceşti
algoritmi se pun în evidenţă structurile fundamentale de prelucrare (de control), pe
baza cărora urmează să se contureze elaborarea ulterioară a programului pentru
efectuarea aplicaţiei (rezolvarea problemei).
Care este deosebirea dintre etapa de „analiza a problemei” si etapa de „elaborare a
algoritmului”?
...........................................................................................................................................
...........................................................................................................................................
..........................................................................................................................................
4. Întocmirea schemelor logice (de sistem şi de program). Este etapa în care
se descriu (reprezintă) sub formă grafică algoritmul (algoritmii) de efectuare a
aplicaţiei.
În acest context, schema logică constituie o descriere mai explicită a
algoritmului, în special când algoritmii au un nivel mai mare de complexitate.
Prin schemele logice de sistem se stabilesc resursele necesare programului
(sursele şi fluxurile de date, suporturile tehnice de date), iar prin schemele logice de
program se reprezintă succesiunea operaţiilor de prelucrare specificate de algoritmi.
Să ne reamintim...
Etapa de elaborare a algoritmului pune în evidenţă structurile fundamentale de de
control, pe baza cărora urmează să se contureze elaborarea ulterioară a programului
pentru efectuarea aplicaţiei.
00:40
48
Avantajele etapei de stabilire a schemelor logice sunt urmatoarele:
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
5. Scrierea programului sub formă de text sursă. În această etapă se
concretizează toate activităţile desfăşurate în etapele anterioare sub formă de program
text sursă scris pe un formular de programare (tipizat sau netipizat) şi conţinând
instrucţiunile pentru codificarea specificaţiilor algoritmului (algoritmilor) aplicaţiei.
Elaborarea programului implică îndeplinirea unor cerinţe, printre care în mod
necesar sunt următoarele: alegerea versiunii (variantei) de limbaj (mediu) de
programare, stabilirea modului de elaborare a programului sursă (monolit sau
modular) şi respectarea regulilor sintactice specifice versiunii (variantei) de limbaj
(mediu) de programare folosită.
În funcţie de specificul execuţiei instrucţiunilor, un astfel de program (monolit
sau modul) este alcătuit din trei părţi distincte:
▪ prima parte a programului, care conţine instrucţiuni pentru executarea operaţiilor
iniţiale, adică a acelor operaţii care se efectuează o singură dată la începutul
programului (ca de exemplu: instrucţiuni pentru declararea şi dimensionarea
variabilelor, reprezentând datele de intrare (de prelucrat), datele de ieşire (rezultatele
prelucrării) şi variabilele intermediare (de lucru); iniţializarea unor variabile;
deschiderea tabelelor (fişierelor) bază de date etc);
▪ a doua parte a programului, conţinând instrucţiuni pentru executarea operaţiilor
din corpul programului, adică a operaţiilor care sunt specifice fiecărei aplicaţii (ca de
exemplu: instrucţiuni de calcul, de atribuire, de control al structurilor fundamentale de
prelucrare etc);
▪ a treia parte a programului, care conţine instrucţiuni pentru executarea operaţiilor
finale, adică a acelor operaţii care se efectuează o singură dată la sfârşitul programului
(ca de exemplu: afişarea rezultatelor prelucrării şi/sau a unor mesaje specifice fiecărei
aplicaţii (pe ecran sau imprimantă), închiderea tabelelor (fişierelor) bază de date etc).
Să ne reamintim...
In etapa de scriere a programului se concretizează toate activităţile desfăşurate în
etapele anterioare sub formă de program text sursă scris pe un formular de
programare (tipizat sau netipizat) şi conţinând instrucţiunile pentru codificarea
specificaţiilor algoritmilor aplicaţiei.
6. Introducerea programului text sursă în memoria calculatorului. Este etapa
în care se editează programul elaborat în etapa anterioară, adică se introduc
instrucţiunile de la tastatură în ordinea în care sunt scrise pe formularul de programare,
folosind editorul de programe propriu limbajului (mediului) de programare. În această
etapă se pot efectua corectări ale unor eventuale erori de tastare, pentru a evita apariţia
unor mesaje de erori de sintaxă în etapa următoare de lansare în execuţie a
programului.
7. Lansarea în execuţie a programului sursă editat anterior. În această
etapă utilizatorul poate proceda, în funcţie de versiunea (varianta) de limbaj (mediu)
de programare folosită, la execuţia programului sursă editat. De asemenea, în această
49
etapă, utilizatorul poate să efectueze depanarea programului pentru eliminarea unor
eventuale erori de sintaxă şi de logică. Această etapă se consideră încheiată după
obţinerea rezultatelor (datelor de ieşire) aşteptate, folosind un volum redus de date
(date de probă).
In ce etapa se pot efectua corectări ale unor eventuale erori de tastare ?
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
8. Elaborarea documentaţiei finale a programului. Este etapa în care se
strâng împreună toate documentele care au rezultat din parcurgerea etapelor anterioare
şi se elaborează instrucţiunile de exploatare curentă a programului.
9. Exploatarea curentă şi actualizarea ulterioară a programului. Această
etapă este ultima etapă a procesului de elaborare a unui program într-un mediu de
programare şi totodată un punct de plecare pentru un nou proces. Astfel, odată cu
folosirea programului pentru efectuarea aplicaţiei sau rezolvarea problemei se
desfăşoară şi activităţile care sunt necesare pentru îmbunătăţirea performanţelor sau
adaptării permanente a programului la modificările survenite în domeniul de
provenienţă a aplicaţiei.
Procesul de elaborare a unui program în orice limbaj (mediu) de programare nu
este un proces continuu, care se desfăşoară fără întrerupere de la prima până la ultima
etapă, ci este un proces iterativ, care implică parcurgerea unei etape sau a mai multor
etape, apoi analiza activităţilor desfăşurate şi întoarcerea, dacă este cazul, pentru
îmbunătăţirea sau chiar refacerea unora dintre aceste activităţi.
In ce etapa se pot efectua activităţi pentru îmbunătăţirea performanţelor sau adaptării
permanente a programului la modificările aparute?
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
6.4. Rezumat
Principalele etape ale elaborării unui program într-un mediu de programare sunt:
- definirea problemei de rezolvat
- analiza logică a aplicaţiei
- elaborarea algoritmului de rezolvare a aplicatiei
- intocmirea schemelor logice
- scrierea programului sub forma de text sursa
- introducerea programului text sursă în memoria calculatorului
- lansarea în execuţie a programului sursă
- elaborarea documentaţiei finale a programului
- exploatarea curentă şi actualizarea ulterioară a programului
01:40
50
6.5 Test de autoevaluare a cunoștințelor
(timp necesar : 20 minute)
1. În orice algoritm procesul de determinare a valorii unei variabile, la un moment dat,
pe baza uneia sau a mai multor valori anterioare se numeşte:
a. generalitate b. unicitate c. recursivitate d. iterativitate
2. Într-un algoritm numeric operaţia de decizie se poate simboliza printr-un operator:
a. de atribuire b. de comparare c. aritmetic d. de calcul
3. Operaţiile care se succed fără condiţii prestabilite de execuţie şi fără
repetări sunt în algoritmii:
a. cu orice structură b. cu structură alternativă
c. cu structură repetitivă d. cu structură secvenţială
4. Într-un algoritm numeric operaţia de decizie simbolizată cu caracterul special “:“
are ca rezultat ramificarea:
a. în trei alternative b. în două alternative
c. în mai mult de trei alternative d. nu are rezultat
5. Într-un algoritm numeric operaţia de decizie cu operator de relaţie are ca efect
ramificarea algoritmului:
a. nu are nici un efect b. în trei alternative
c. în două alternative d. în peste trei alternative
6. Ordinea de execuţie a operaţiilor în algoritm defineşte:
a. structura de control b. finitudinea
c. iterativitatea d. tipul algoritmului
7. Într-o schemă logică sensul implicit de parcurgere a algoritmului este indicat prin:
a. linii de flux b. săgeţi c. blocuri cu operaţii d. conectori de procedură
8. Operaţiile care se succed cu condiţii prestabilite de execuţie şi fără repetări sunt în
algoritmii:
a. cu orice structură b. cu structură alternativă
c. cu structură repetitivă d. cu structură secvenţială
9. Selecţia unei alternative de prelucrare, printr-o variabilă selector, se efectuează în
structura:
a. de tip selecţie simplă b. de tip selecţie normală
c. de tip selecţie multiplă d. repetitivă
10. Alternativa de execuţie vidă poate exista în structura fundamentală de prelucrare
(control):
a. de tip selecţie simplă b. de tip selecţie normală
c. de tip selecţie multiplă d. repetitivă
Răspunsurile corecte la întrebările din testul de tip grilă:
1 d 2 b 3 d 4 a 5 c 6 a 7 a 8 b 9 c 10 a
6.6 Test de evaluare a cunoștințelor
51
În care etapă de elaborare a unui program se stabileşte caracterul prelucrabil
al aplicaţiei ?
Care sunt părţile distincte din care este alcătuit orice program în funcţie de
specificul execuţiei instrucţiunilor ?
Cum se numeşte şi în ce constă procesul de elaborare a unui program care
implică parcurgerea unei etape sau a mai multor etape şi analiza activităţilor
desfăşurate ?
6.7 Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,
2012
5. Surcel T. şi colectiv – Medii de programare pentru gestiunea bazelor de date,
Editura Tribuna Economică, Bucureşti, 2004
6. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi
practice, cap. 5 (Programarea în limbajul VBA), Editura InfoMega, Bucureşti, 2002
7. Popa Gh. şi colectiv – Baze de date Access, cap. VI (Module), Editura CISON,
Bucureşti, 2003
8. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA
VECHE, Bucureşti, 2004
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura
Economică, Bucureşti, 2000
3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
52
UNITATEA DE ÎNVĂŢARE 7. ELEMENTE DE BAZĂ ALE MEDIULUI DE PROGRAMARE VBA
CUPRINS
7.1. Obiective
7.2. Competenţele unităţii de învăţare
7.3. Date şi structuri de date. Clasificarea datelor
7.4. Constante şi variabile
7.5. Alte tipuri de date
7.6. Operatori şi expresii
7.7. Funcţii
7.8. Proceduri
7.9. Controale Visual Basic (VBA)
7.10. Lucrul cu fisiere de date in mediul VBA
7.11. Rezumat
7.12. Test de autoevaluare a cunoştinţelor 7.13. Test de evaluare a cunoştinţelor
7.14. Tema de cotrol
7.15. Bibliografie
7.1. Obiective
▪ Însuşirea şi folosirea corectă la elaborarea programelor a elementelor de bază
ale mediului de programare VBA;
▪ Cunoaşterea şi folosirea corectă, în programele VBA, a datelor şi structurilor
de date (constante, variabile, masive);
▪ Cunoaşterea şi folosirea corectă, în programele VBA, a operatorilor şi
expresiilor;
▪ Cunoaşterea şi folosirea corectă, în programele VBA, a funcţiilor şi
procedurilor;
▪ Cunoaşterea şi folosirea corectă, în programele VBA, a controalelor;
▪ Cunoaşterea şi folosirea corectă, în programele VBA, a fişierelor de date.
7.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
înţelegeti rolul datelor şi criteriilor de clasificare a acestora în programele
elaborate în mediul VBA;
folosiţi constantele şi variabilele în programele elaborate în mediul VBA;
folosiţi operatorii şi expresiile în programele elaborate în mediul VBA;
utilizaţi funcţiile şi procedurile în programele elaborate în mediul VBA;
utilizaţi controalele si sa prelucrati fişierele de date în programele elaborate în
mediul VBA.
Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.
53
7.3. Date şi structuri de date. Clasificarea datelor
Date şi structuri de date
Datele constituie suportul formal al informaţiilor, un model de reprezentare a
informaţiilor la nivel fizic şi logic.
La nivel fizic unei date îi corespunde o zonă de memorie de o anumită mărime,
situată la o anumită adresă, în care sunt înregistrate pe o anumită perioadă de timp şi
într-o formă specifică valorile acestora.
La nivel logic unei date i se pot asocia:
▪ un identificator, care reprezintă numele ce se asociază datei pentru a se distinge
de alte date şi pentru a fi referită în procesul de prelucrare cu calcu-latorul electronic;
▪ valori, care pot fi de diferite tipuri (întregi, reale, complexe, logice, şiruri de
caractere);
▪ atribute, care precizează proprietăţile informaţionale ale datei şi anume: tipul,
precizia de reprezentare internă, modul de alocare a memoriei (static, dinamic),
valoarea iniţială.
Clasificarea datelor
Datele se pot clasifica după diferite criterii şi anume:
● după gradul de complexitate:
▪ date elementare (scalare), care sunt definite ca entităţi indivizibile;
▪ colecţii de date, alcătuite dintr-o mulţime de date elementare între care se
stabilesc relaţii şi structuri;
● după tipul componentelor:
▪ date omogene, când toate componentele sunt de acelaşi tip;
▪ date eterogene, când componentele sunt de tipuri diferite;
● după modul de alocare a zonelor de memorie:
▪ date de tip static, care se declară explicit şi cărora se alocă zone de memorie
în timpul translatării programului;
▪ date de tip dinamic, cărora zonele de memorie se alocă în timpul execuţiei
programului;
● după modul de păstrare în zonele de memorie în timpul execuţiei
programului:
▪ constante, adică date care îşi păstrează aceeaşi valoare în timpul execuţiei
programului;
▪ variabile, adică date care îşi modifică valoarea în timpul execuţiei
programului.
Enumeraţi principalele criterii de clasificare a datelor:
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
7.4 Constante şi variabile
Constante
În Visual Basic for Applications constantele pot fi:
▪ constante native sau simbolice, adică constante încorporate în Visual Basic for
00:10
0
00:05
54
Applications, ca de exemplu:
◦ vb OK Only, care afişează numai butonul OK şi are valoarea 0;
◦ vb OK Cancel, care afişează butonul OK şi Cancel şi are valoarea 1;
▪ constante definite de utilizator, adică constante alese (generate) şi introduse în
program de utilizator.
În programele VBA, constantele au un domeniu, adică un loc unde sunt
declarate (vizibile), astfel că pot fi:
▫ constante locale, disponibile numai în procedura în care au fost declarate;
▫ constante globale, disponibile în toate modulele aplicaţiei;
▫ constante definite la nivelul modului formei sau codului, disponibile în toate
procedurile modului respectiv.
Forma generală (sintaxa) de declarare a unei constante este:
[Global]const nume_constantă = expresie
unde:
nume_constantă este numele constantei declarate;
expresie este exprexia numerică sau de tip şir care atribuie valoarea constantei.
Exemple:
Const COD_MAT = 2354
Const DEN_MAT = ”CIMENT”
Const U-M = ”TO”
Const STDC = 50
Variabile
În mediul de programare VBA, variabila este o zonă de memorie care îşi
modifică conţinutul în timpul executării programului.
Pentru a fi identificată, variabila are un nume, care trebuie:
▫ să fie un nume unic;
▫ să aibă o lungime de maxim 256 caractere;
▫ ca primul caracter din nume să fie literă;
▫ să nu conţină caractere punct;
▫ să nu fie cuvînt rezervat.
Variabilele pot fi:
▪ variabile definite de utilizator (ca de exemplu: COD_MAT; DEN_MAT; STOC);
▪ variabile definite ca proprietăţi pentru fiecare din obiectele de pe formă (ca de
exemplu: variabile numerice (lungimea şi lăţimea unui obiect), variabile logice (TRUE
şi FALSE), variabile şir de caractere (titlurile butoanelor).
Variabilele recunoscute de VB sunt de diferite tipuri:
Tip Sufix Lungime Domeniu
Byte fără 1 octet 0 - 255
Boolean fără 2 octeţi Adevărat sau Fals
Integer % 2 octeţi -32768 şi 32767
Long & 4 octeţi -2147483 şi 147483647
Sinngle ! 4 octeţi -3.40E38 şi 3.40E38
Double # 8 octeţi -1.80E308 şi 1.80E308
Currency @ 8 octeţi -9.22E14 şi 9.22E14
Date fără 8 octeţi Ian 1.100 - Dec 31.999
Object fără 4 octeţi Adresa oricărui obiect
00:20
55
String $ octet/caracter Max. 65500 octeţi
Variant fără după caz În funcţie de tip
User-Defined fără după caz În funcţie de tipul elementelor
Forma generală (sintaxa) de declarare a unei variabile este:
Dim/Static/Global nume_variabilă [As tip_dată] unde:
Dim/Static//Global – permite precizarea domeniului de vizibilitate al variabilei;
nume_variabilă este identificatorul variabilei declarate;
tip_dată este identificatorul tipului de dată.
Dacă tipul de dată nu este specificat, atunci se consi-deră implicit Variant.
Declararea variabilelor
Declararea implicită. Se efectuează astfel:
◦ variabilei i se ataşează un sufix, de exemplu %
VAL_PROD% = 25000
◦ dacă sufixul este omis, tipul variabilei se consi-deră Variant.
Declararea explicită. Se realizează cu instrucţiunea
DIM nume_variabilă AS tip_variabilă [lungime]
unde lungime este lungimea în octeţi a variabilei de tipul declarat.
Exemple:
DIM Val_prod AS Long
DIM Den_mat, Cod_mat ’Den_mat este de tipVariant
DIM U_M As Strinng*4 ’Şir din maxim 4 caractere
Domeniul unei variabile
Domeniul este locul unde se declară o variabilă, adică zona de program unde
variabila este vizibilă şi utilizabilă.
Sunt posibile trei nivele de domenii de vizibilitate:
◦ la nivel de procedură (local);
◦ la nivelul modulului de formă;
◦ la nivel global.
La nivel de procedură sunt:
a) variabile folosite numai în cadrul procedurii unde au fost declarate
(implicit sau explicit); exemplu:
Dim Den_mat As String;
b) variabile statice în procedură, care îşi păstrează valoarea între apelurile
succesive ale procedurii; de exemplu:
Static Cod_mat As Integer
Static Val_mat
La nivelul modulului de formă variabilele definite pot fi folosite în mai multe
proceduri de tratare a unui eveniment. O variabilă la nivelul modulului formei se
declară astfel:
a) se alege opţiunea Module din meniul Insert sau din alte variante de VB,
00:30
56
pentru a afişa fereastra de cod;
b) se execută un click pe caseta listă Object şi se selectează General;
c) se execută click pe casetă listă Proc şi se selectează Declaration;
d) se tastează instrucţiunea declarativă; de exemplu:
Dim Cod_mat As Integer
La nivel global variabilele declarate pot fi folosite de toate subprocedurile şi
funcţiile. Pentru a declara o variabilă la nivel global se procedează astfel:
a) se selectează opţiunea New Module din meniul File, după care apare
fereastra pentru scrierea instrucţiunilor;
b) se execută click pe caseta listă Proc şi se selec-tează Declaration;
c) se tastează instrucţiunile declarative; de exemplu:
Global Den_mat As String
Global Cod_mat As Integer
Global Stoc
Să ne reamintim...
Domeniul unei variabile este locul unde se declară o variabilă, adică zona de program
unde variabila este vizibilă şi utilizabilă.
7.5 Alte tipuri de date
Tipuri de date definite de utilizator (User- Defined)
În mediul VBA utilizatorul poate să definească tipuri noi de date, folosind
combinaţii de tipuri predefinite (ca de exemplu: Byte, Integer, Single, Double, String
etc), conform sintaxei următoare:
TYPE tip-nou
var 1 AS tip-1
var 2 AS tip-2
…………………………………
END TYPE
unde:
tip_nou reprezintă identificatorul tipului nou de date, definit conform regulilor
de sintaxă de construire a numelor în VBA;
var i este numele elementului de variabilă de rang i din structura tipului de dată
definit;
tip i este numele tipului de dată al elementului de rang i; este admis orice tip
de dată VBA, cu excepţia tipului Object.
Tipurile de date definite de utilizator (User-Defined) se folosesc de regulă în
programele care prelucrează baze de date, când într-un articol se regăsesc câmpuri de
orice tip de date şi se declară în secţiunea General/Declaration a modulului de cod cu
ajutorul cuvintelor cheie Type şi End Type, fiind vizibile în orice parte a aplicaţiei.
Exemplu:
Type MATERIALE
Cod_mat As Integer
Den_mat As String*20
U_m As String
00:40
5
57
P_u As Integer
Stoc_mat As Integer
Val_mat As Double
End Type
Variabile matriceale
În VBA variabilele cu care se lucrează sunt de regulă variabile obişnuite,
fiecare având numele său propriu. În unele cazuri este mai avantajoasă folosirea unor
variabile multidimensionale, numite masive sau tablouri.
Masivul (tabloul) este o mulţime de elemente de acelaşi tip (omogene), astfel
alcătuită încât fiecărui element i se asociază un indice (o dată de tip scalar) care indică
poziţia elementului în masiv.
Pentru apariţie în programele VBA, masivul (tabloul) trebuie declarat, folosind
forma generală (sintaxă) următoare:
{Global/Dim/Static}nume_masiv
([indice_1 To]indice_max_1...)
[As tip_dată]
unde:
Global/Dim/Static – alocă memorie masivelor şi iniţi-alizează elementele
acestora;
Numme_masiv este identificatorul masivului declarat;
indice j reprezintă valoarea minimă a indicelui pentru dimensiunea j; valoarea
implicită este 0, dar poate fi modificată la nivel de modul prin instrucţiunea Option
Base;
indice_max j reprezintă valoarea maximă pentru dimensiunea j;
tip_dată este tipul de dată corespunzător; implicit acest tip este Variant.
Exemple:
DIM Vânzări (20)
DIM Tarife (10) As Integer
DIM Preţuri (15,11) As Integer
DIM Masiv (1 TO 3, 4 TO 7, 3 TO 6) As Single
DIM Furnizori (1 TO 9) As String*4
DIM Clienţi (1 TO 6)
Descrieţi sintaxa masivului în programele VBA:
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
7.6 Operatori şi expresii
Operatori
Semnele (caracterele prelucrabile speciale) folosite pentru marcarea operaţiilor
care se efectuează asupra datelor în programele VBA se numesc operatori.
În VBA operatorii sunt de patru feluri:
01:00
58
◦ operatori aritmetice (numerici);
◦ operatori relaţionali (de comparare);
◦ operatori logici;
◦ operatori de concatenare.
Operatorii aritmetici sunt:
+ pentru adunare;
─ pentru scădere;
* pentru înmulţire;
/ pentru împărţire cu rezultat sub formă de număr fracţionar;
\ pentru împărţire cu rezultat sub formă de număr întreg;
MOD(MODULO) - pentru împărţire şi reţinerea numai a restului împărţirii;
^ pentru ridicarea la putere.
Ordinea de efectuare a operaţiilor aritmetice (evaluarea operatorilor aritmetici)
este cea naturală, adică:
◦ ridicarea la putere;
◦ înmulţirea şi împărţirea;
◦ adunarea şi scăderea.
Această ordine de prioritate se poate schimba prin folosirea parantezelor
rotunde. Astfel operaţiile incluse în aceste paranteze au prioritatea cea mai mare.
Operatorii relaţionali (de comparare) sunt:
< mai mic decât
> mai mare decât
= egal cu
< = mai mic decît şi egal cu
< = mai mare decât şi egal cu
< > diferit de
Operatorii logici sunt:
AND pentru înmulţire logică (operatorul şi logic);
OR pentru adunare logică (operatorul SAU logic);
XOR pentru adunare logică exclusivă
(SAU exclusiv);
NOT pentru negare logică.
Ordinea de efectuare a operaţiilor logice (evaluare a operatorilor logici este:
NOT
AND
OR şi XOR
Operatorii de concatenare sunt:
+ pentru conversia variabilei numerice într-un şir de caractere cu ajutorul
funcţiei Cstr (număr);
& pentru a forţa ca o variabilă să devină de tipul adecvat.
Expresii
O expresie este o construcţie tipică de limbaj alcătuită din operatori şi operanzi.
Ca operatori se pot folosi operatori aritmetici, opera-tori relaţionali, operatori
logici şi operatori de concatenare.
Ca operanzi se pot folosi constante, variabile, funcţii.
59
În funcţie de natura operatorilor, expresiile pot fi:
◦ expresii aritmetice;
◦ expresii relaţionale;
◦ expresii logice;
◦ expresii pentru şiruri de caractere.
7.7 Funcţii
O funcţie este o prelucrare predefinită destinată pentru efectuarea unei operaţii
sau unor operaţii care returnează o valoare.
Forma generală (sintaxa) funcţiei este:
Rezultat = nume_funcţie ([listă_argumente])
unde:
nume_funcţie este identificatorul (numele) de apel al funcţiei;
listă_argumente este lista care conţine argumentele (parametri) funcţiei; dacă
sunt cel puţin două argumente, acestea se separă prin virgulă.
Mediul de programare VBA dispune de numeroase funcţii, dintre care
principalele categorii sunt:
◦ funcţii pentru dialog cu utilizatorul;
◦ funcţii matematice şi statistice;
◦ funcţii pentru şiruri de caractere
◦ funcţii de editare;
◦ funcţii financiare.
Funcţii pentru dialog cu utilizatorul
Funcţia InputBox( ). Este o funcţie folosită pentru afişarea într-o casetă de
dialog un mesaj_invitaţie, aşteptînd ca utilizatorul să introducă date de la tastatură,
apoi atribuie unei variabile o valoare de tip Variant sau String, în funcţie de forma
generală (sintaxa) folosită.
Forma generală (sintaxa) acestei funcţii este:
a) Variabilă =InputBox(prompt,[title],
[default],[xpos],[ypos],
[helpfile],[context])
pentru tipul de date variant;
b) Variabilă$= InputBox(prompt,[title],
[default],[xpos],[ypos], [helpfile],[context])
pentru tipul de date şir de caractere, unde:
prompt specifică mesajul_invitaţie care se adresează utilizatorului, fiind
singura opţiune obligatorie;
title este un text (un şir de caractere) care se afişează pe bara de titlu a casetei
de dialog;
default este un şir de caractere care reprezintă un răspuns prestabilit ce se va
afişa implicit în caseta de text din caseta de dialog, dacă nu se introduce altceva;
scpos, ypos sunt expresii numerice care specifică coordonatele x şi y pentru
poziţionarea afişării pe ecran a datelor tastate (faţă de colţul din stânga sus al
ecranului);
01:20
60
helpfile, context sunt un şir de caractere, respectiv un întreg, fiind argumente
prin care se realizează asistenţa software pentru utilizatori.
Funcţia MsgBox( ). Este funcţia al cărei rol constă în afişarea pe ecran a unui
mesaj într-o casetă de dialog, specificând prin argumente titlul şi mesajul casetei şi
precizând tipul butoanelor afişate în fereastra casetei.
Forma generală (sintaxa) simplificată a acestei funcţii este:
MsgBox(prompt,[type],[title],[helpfile],[context])
unde:
prompt este un şir de caractere reprezentând mesajul care se afişează în caseta
de dialog, fiind singura opţiune obligatorie;
type este o expresie numerică care specifică numărul şi tipul butoanelor ce vor
fi afişate (OK, Cancel, Abort etc);
title este o expresie şir de caractere care se afişează pe bara de titlu a casetei de
dialog;
helpfile, context sunt opţiuni similare cu cele din funcţia InputBox( ).
În mediul VBA pe lângă funcţia MsgBox( ) există şi procedura MsgBox.
Funcţii matematice şi statistice
În VBA există diverse astfel de funcţii; de exemplu:
ABS(expN) - calculează valoarea absolută a expresiei numerice expN;
EXP(expN) - calculează valoarea lui e (baza logarit-milor naturali) la puterea
expN;
SQR(expN) - calculează rădăcina pătrată din expN;
INT (expN) - determină partea întreagă pentru expN.
Funcţii pentru şiruri de caractere
În VBA există o diversitate de funcţii pentru şiruri de caractere, ca de exemplu:
Len(exp_şir) - returnează lungimea unui şir de caractere;
Lcase(exp_şir) - transformă literele mari în litere mici;
Ucase(exp_şir) - transformă literele mici în litere mari;
LTrim(exp_şir) - elimină spaţiile de la începutul şirului de caractere
specificat;
RTrim(exp_şir) - elimină spaţiile de la sfâşitul şirului
de caractere specificat;
Val(şir_caractere) - transformă şirul de caractere într-un număr;
Chr( ) - returnează caracterul corespunzător codului;
Asc( ) - returnează codul corespunzător caracterului.
Funcţii de editare
Format( ). Este folosită pentru afişarea unei expresii într-o formă dorită.
Exemplu:
…………………
…………………
Val = Cant * Preţ
Valoare = Format (Val,”###0.00”)
Print Valoare
61
Funcţii financiare
DDB - calculează şi furnizează cota de amortizare a unui bun pe parcursul unei
perioade specificate;
FV - calculează şi redă valoarea viitoare a unei investiţii;
IPMT - calculează şi furnizează suma dobânzilor unei investiţii pentru o perioadă
dată;
IRR - calculează şi furnizează rata de rentabilitate internă a unei investiţii;
MIRR - similară cu IRR, dar fără a ţine seama de costu-rile de finanţare şi de
plusvaloarea de reinvestire;
NPER - calculează şi furnizează numărul plăţi pentru o investiţie dată;
NPV - calculează şi furnizează valoarea actuală a unei investiţii pe baza fluxurilor
financiare variabile;
PMT - calculează suma totală a fiecărei rambursări periodice;
PPMT - calculează partea vărsământului principal al unui împrumut pentru o
perioadă dată;
PV - calculează valoarea actuală a unei investiţii;
RATE - calculează rata dobânzii pe perioada unei investiţii date;
SLN - calculează amortismentul liniar al unui bun pentru o perioadă de timp dată;
SYD - calculează amortismentul unui bun pentru o peri-oadă dată pe baza metodei
americane Sum_of_Yar Digits.
Funcţii definite de utilizator
Definirea unei funcţii se realizează conform sintaxei:
[Static][Private]FUNCTION nume_funcţie
([listă_argumente])
secvenţă_instrucţiuni_1
[EXIT funcţie]
[secvenţă_instrucţiuni_2]
END FUNCTION
7.8 Proceduri
Mediul VBA conţine o serie de proceduri care sunt folosite pentru efectuarea unor
operaţii frecvent întâlnite în aplicaţii.
Procedurile se împart în :
◦ proceduri predefinite (încorporate);
◦ proceduri definite de utilizator.
Procedurile predefinite (încorporate)
Aceste proceduri se pot folosi de sine stătător (sau pot fi preluate în structura
unor proceduri definite de utilizator). Astfel de proceduri se apelează prin numele lor
propriu.
Exemple de proceduri predefinite:
Procedura Descriere Exemplu de utilizare
FileCopy Copiază un fişier FileCopy ”F1.dat”, “F2.dat”
Name Redenumeşte un fişier Name “F1.dat” As “F2.dat”
01:50
62
Kill Şterge un fişier Kill “F1.dat”
Date Stabileşte data sistemului Date # Dec 10.1999#
MsgBox Afişează o informaţie MsgBox “Media”& media
Print Afişează pe fundal Print “Media =”& media
Procedura MsgBox. Afişează un mesaj într-o casetă de dialog fără a returna o
valoare.
Forma generală (sintaxa):
MsgBox(prompt,[type],[title],[helpfile],[context])
unde:
elementele de sintaxă (opţiunile) au aceeaşi semnificaţie ca la funcţia MsgBox, cu
deosebirea că opţiunea type descrie numărul şi tipul butoanelor din caseta de dialog,
tipul pictogramei, butoanele prestabilite şi modalitatea casetei.
Procedurile definite de utilizator
Sunt proceduri care conţin instrucţiuni introduse de utilizator pentru efectuarea
operaţiilor specifice aplicaţiilor acestora în scopul de a optimiza activitatea de
programare.
Forma generală (sintaxa) este:
[Static][Private] Sub nume_procedură
([listă-parametri])
secvenţă_instrucţiuni_1
[Exit Sub]
[secvenţă_instrucţiuni_2]
End sub
unde:
Static - precizează domeniul de vizibilitate al procedurii, atunci când se doreşte
păstrarea valorilor tuturor variabilelor locale între două apeluri ale procedurii;
Private - precizează că procedura este accesibilă numai celorlalte proceduri din
modulul în care a fost definită;
nume_procedură este numele atribuit de utilizator procedurii definite;
listă_parametri este lista parametrilor formali, care reprezintă variabilele
cărora li se vor atribui datele de intrare (argumentele), la apelul procedurii.
Procedurile definite de utilizator sunt:
◦ proceduri pentru tratarea evenimentelor;
◦ proceduri generale.
Procedura pentru tratarea unui eveniment este ataşată unui obiect (ca de
exemplu: formă, buton de comandă, casetă de validare etc). Astfel, când se execută un
click pe obiectul formă se declanşează evenimentul click, urmat de lansarea automată
în execuţie a procedurii eveniment care-i corespunde.
O procedură eveniment poate fi lansată în execuţie şi în mod explicit (apelată
de către utilizator), caz în care evenimentul asociat nu are loc. Pentru fiecare tip de
obiect există un număr prestabilit de evenimente ce pot să apară.
63
Deoarece la apariţia evenimentului procedura asociată este apelată automat,
acest tip de programare se numeşte “event_driven” (condusă sau bazată pe
evenimente).
Exemplu:
Crearea unei proceduri de tratare a unui eveniment pentru un obiect (buton de
comandă):
Subprogram Nume obiect Eveniment
Sub cmdCalcul_Click( )
…………………………...
End Sub
Un program mai complex poate fi alcătuit din mai multe proceduri de tratare a
evenimentelor conţinute. Pentru a creşte calitatea programului se recomandă
împărţirea acestor proceduri în alte proceduri mai mici, pentru ca aplicaţia să fie mai
uşor de elaborat şi, după caz, de modificat.
Procedurile generale sunt rutine create de programator pentru a evita repetările
în procedurile de tratare a eveni-mentelor. Dacă mai multe astfel de proceduri conţin
aceleaşi instrucţiuni, atunci se recomandă folosirea procedurilor generale care să
conţină instrucţiunile comune.
Procedurile generale sunt lansate în execuţie explicit prin apelul lansat dintr-o
anumită parte a codului aplicaţiilor. Deci, aceste proceduri sunt invocate de
evenimentele asociate obiectelor, astfel că o procedură eveniment devine o proce-dură
apelantă a procedurii generale apelate.
Procedurile generale se pot apela (dintr-o altă procedură) în două moduri:
▪ prin specificarea numelei procedurii generale;
Exemplu:
Sub CmdStocuri_Click( )
Calcul_stocfinal ’procedură apelată
End Sub
▪ prin folosirea instrucţiunii CALL;
Exemplu:
Sub CmdStocuri_Click( )
CALL Calcul_strocfinal ’procedură apelată
End Sub
In unele cazuri, procedura apelată poate transmite anumite date, care se numesc
parametri reali, procedurii apelate, care le tratează ca parametri formali. Aceste date
pot fi constante numerice, constante şir de caractere, variabile numerice, variabile şir
de caractere.
Exemplu:
a) Procedura apelată:
Sub Calcul (zile As Integer, salarzi As Integer)
Calcul = zile * salarzi
End Sub
b) Procedura apelantă:
64
Sub cmdSalariu_Click( )
Dim zile As Intiger, salarzi As Integer
Zile = 22
salarzi = 100000
Calcul zile, Salarzi
End Sub
Procedurile se împart în:
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
7.9. Controale Visual Basic (VBA)
Visual Basic (VBA) permite crearea unor ferestre care vor alcătui interfaţa unei
aplicaţii, într-un număr limitat numai la capacitatea şi cerinţele aplicaţiei.
În aceste ferestre, denumite forme (forms) se pot introduce diferite elemente
vizibile de acţionare, denumite controale (controls).
Aceste controale se pot poziţiona, dimensiona şi aranja în fereastră (în pagină)
potrivit cerinţelor aplicaţiei şi opţiunii programatorului.
În mediul de programare Visual Basic (VBA) se pot folosi toate tipurile de
controale Windows standard:
▫ Etichete (Labels);
▫ Casete text (Text boxes);
▫ Chenare (Frames);
▫ Butoane (Command buttons);
▫ Casete de control (check boxes);
▫ Butoane de opţiune (Radio buttons);
▫ Casete listă (List boxes);
▫ Casete liste combinate (Combo boxes);
▫ Bare de defilare orizontale şi verticale (Horizontal vertical scrool bars);
▫ Casete imagine (Picture boxes);
▫ Generatoare de semnale de timp (Timers);
▫ Liste de unităţi de disc (Drive list boxes);
▫ Liste de directori (Directory list boxes);
▫ Liste de fişiere (File list boxes);
▫ Figuri geometrice (Shapes);
▫ Linii (Lines);
▫ Imagini (Images);
▫ Data (Date).
În afară de aceste controale se mai pot crea alte feluri de controale, folosind
fişierele cu extensia .VBX.
Etichete (Labels). Eticheta este un obiect VBA folosit pentru:
▫ afişarea unui text într-o fereastră (form);
▫ identificarea altor obiecte.
Etichetele au diferite proprietăţi:
◦ Name - identifică obiectul într-o procedură (exemplu: lblEtichete);
◦ Caption - şir de caractere care se afişează pe obiect (exemplu: “Tastarea textului”);
02:10
65
◦ Alignment - aliniază textul în cadrul unui context dat;
◦ BorderStyle - stabileşte tipul de chenar;
◦ Font - stabileşte corpul, stilul şi dimensiunea caracterelor;
◦ AutoSize şi WordWrap - stabileşte afişarea pe mai multe linii şi lungimi.
Casetele de text (Text boxes), denumite şi casete de editare, se folosesc pentru
afişarea informaţiilor furnizate în faza de editare sau introduse în timpul executării
procedurii.
Casetele de text au diferite proprietăţi:
◦ Name - identifică obiectul în procedură (exemplu: txtExamen);
◦ Border Style - stabileşte tipul de chenar;
◦ Font - stabileşte corpul, stilul şi dimensiunea caracterelor;
◦ Passwordchar - ascunde textul (exemplu: *);
◦ Tag - stochează informaţiile;
◦ MultiLine - afişează mai multe linii de text;
◦ Alignment - aliniază textul la: stănga, dreapta, centru;
◦ SelStart - stabileşte poziţia iniţială pentru selectarea textului;
◦ SelLenglh - stabileşte lungimea textului selectat.
Butoanele de opţiune (Option buttons). Butoanele de opţiune se folosesc
pentru a afişa opţiuni, care pot fi activate sau dezactivate prin stabilirea proprietăţii
Value la valoarea True sau False.
Aceste butoane se desenează direct pe formă, într-un cadru sau într-o casetă
de imagine de pe formă. Un astfel de cadru grupează controale înrudite (de regulă
butoane de opţiune, casete de validare).
Casetele de listă (List boxes). Casetele de listă se folosesc pentru a afişa liste
de articole din care utilizatorul poate selecta un articol sau mai multe articole.
Casetele combinate (ComboBox). Aceste casete sunt o combinaţie între
casetele de text (Text boxes) şi casetele cu listă, existând trei stiluri de casete
combinate, în funcţie de valoarea proprietăţii Style şi anume:
0 - casetă combinată derulantă care conţine o casetă cu listă derulantă şi o casetă
de text;
1 - casetă combinată simplă, care conţine o casetă de text şi o listă nederulantă;
2 - casetă cu listă derulantă, care permite doar selectarea din lista derulantă.
7.10 Lucrul cu fişiere de date în mediul VBA
Fişiere de date
Definiţia unui fişier de date. Fişierul de date este o colecţie (mulţime) de date
omogene ca natură şi cerinţe de prelucrare, înregistrate pe un suport tehnic de date, de
pe care calculatorul le poate “citi” (percepe) automat în procesul de prelucrare.
Pentru fişierele de date create în scopul prelucrării ulterioare, suportul tehnic de
date este un suport refolosibil (de regulă discul magnetic). În astfel de fişiere se pot
memora date numerice, texte şi informaţii diverse (imagini, sunete).
Operaţii de lucru cu fişiere de date
Deschiderea fişierelor. Lucrul cu un fişier de date implică, în primul rând,
validarea accesului la fişier, operaţie denumită deschiderea fişierului, care se
efectuează folosind comanda OPEN. Această comandă permite alocarea unei zone de
memorie tampon pentru operaţiile de intrare şi ieşire şi specifică modul de acces
02:30
66
asociat acestei zone.
Comanda OPEN are forma generală (sintaxa):
OPEN nume_fişier FOR mod_deschidere
AS # număr_fişier LEN = expresie
unde:
nume_fişier este un şir de caractere care, pe lângă numele fişierului, poate să
conţină numele unui folder şi al unui disc; dacă fişierul nu există în momentul
deschiderii, acesta este creat implicit la execuţia comenzii OPEN;
mod_deschidere specifică modul în care va fi deschis fişierul;
# număr_fişier specifică numărul prin care fişierul poate fi identificat în
diferite situaţii de lucru, având mărimea cuprinsă între 1 şi 511;
expresie este un număr mai mic sau egal cu 32767.
Exemplu:
OPEN fisdat FOR APPEND AS #1
Închiderea fişierelor. După terminarea lucrului cu un fişier de date, acest fişier
trebuie închis, adică să se interzică accesul ulterior la fişier. Operaţia se efectuează cu
comanda CLOSE, care are forma generală (sintaxa):
CLOSE listă_numere_fişiere
unde:
listă_numere_fişiere specifică unul sau mai multe numere separate prin
virgulă; dacă nu se specifică această listă (opţiune), atunci se închid toate fişierele, iar
după execuţia instrucţiunii CLOSE asocierea dintre fişier şi numele acestuia se
încheie.
Exemple:
CLOSE
CLOSE #1
Exploatarea fişierelor în acces secvenţial. Această operaţie se execută atât la
crearea fişierului, cât şi la prelu-crarea ulterioară a acestuia şi constă în scrierea,
respectiv citirea a câte o înregistrare în/din fişier.
Scrierea unei înregistrări (articol) în fişier în acces secvenţial se efectuează cu
comanda PRINT #, care are forma generală (sintaxa) următoare:
PRINT #număr_fişier,listă_expresii
unde:
număr_fişier este numărul atribuit fişierului, care urmează să fie creat;
listă_expresii specifică expresia şir sau numerică, respectiv expresiile care se
scriu în fişier; pentru a scrie un articol vid după număr_fişier se specifică numai
virgulă.
Expresia poate fi, după caz, un titlu de tabel, un chenar sau un câmp de date.
Exemple:
PRINT # 2, Tab(15); “LISTA DE INVENTAR”
PRINT # 2, String(6),”=”)
PRINT # 2, Cod_mat; Tab(10); Den_mat; Tab(20)
Citirea unei înregistrări (articol) din fişier în acces secvenţial se efectuează cu
comanda LINE INPUT #, care are forma generală (sintaxa) următoare:
67
LINE INPUT #număr_fişier, nume_variabilă
unde:
număr_fişier este numărul atribuit fişierului;
nume_variabilă este o variabilă de tip şir.
Exemplu:
LINE INPUT #1,1
Execuţia comenzii LINE INPUT # are ca efect citirea din fişier a înregistrării
(articolului) caracter după caracter până la întâlnirea unui retur de car Chr(13) sau
secvenţei retur de car_salt la linie nouă Chr(13) + Chr(10).
Pentru exploatarea unui fişier în acces secvenţial este necesar ca în comanda
OPEN:
▪ la opţiunea mod_deschidere se poate specifica:
▫ APPEND pentru a adăuga articole (linii de caractere) la sfârşitul fişierului
existent;
▫ INPUT pentru citirea de articole (linii de caractere) din fişier;
▫ OUTPUT pentru crearea unui nou fişier.
Pentru exploatarea unui fişier în acces aleator (direct), la opţiunea
mod_deschidere se poate specifica:
▫ BINARY pentru accesul binar;
▫ RANDOM pentru accesul aleator.
În modul de deschiderre cu clauzele:
▫ BINARY, INPUT sau RANDOM se poate deschide un fişier folosind un număr
nou, fără a închide în prealabil copia deschisă anterior;
▫ APPEND sau OUTPUT trebuie mai întâi să se închidă fişierul pentru a fi ulterior
redeschis cu un alt număr.
Când se lucrează cu mai multe fişiere simultan, în opţiunea #număr_fişier din
comanda OPEN trebuie să se folosească funcţia FREEFILE care returnează următorul
număr de fişier, pentru a evita folosirea aceluiaşi număr.
Exploatarea fişierelor în acces aleator (direct). Această operaţie se execută,
atât la crearea fişierelor, cât şi la prelucrarea ulterioară a acestora şi constă în scrierea
în fişier sub formă de articole de lungime fixă, respectiv citirea unui articol fără a
parcurge articolele precedente din fişier.
La deschiderea unui fişier în acces aleator (direct), în comanda OPEN trebuie
să se precizeze lungimea articolului.
Scrierea unui articol în fişier în acces aleator se efectuează cu comanda PUT #
care are forma generală (sintaxa) următoare:
PUT [#]număr_fişier,număr_articol,nume_variabilă
unde
număr_fişier este numărul fişierului care se crează;
număr_articol este numărul articolului care înmulţit cu lungimea articolului
determină poziţia scrierii;
nume_variabilă este numele variabilei care conţine datele ce urmează să fie
scrise.
Exemplu:
68
PUT # 2, nr, mat
Citirea unui articol din fişier în acces aleator se efec-tuează cu comanda GET
#, care are forma generală (sintaxa) următoare:
GET[#]număr_fişier,număr_articol,nume_variabilă
unde:
număr_fişier este numărul fişierului care se citeşte;
număr_articol este numărul articolului care înmulţit cu lungimea articolului
determină poziţia citirii;
nume_variabilă este numele variabilei care conţine datele ce urmează să fie
citite.
Exemplu:
GET # 2, nr, mat
Să ne reamintim...
Fişierul de date este o colecţie (mulţime) de date omogene ca natură şi cerinţe de
prelucrare, înregistrate pe un suport tehnic de date, de pe care calculatorul le poate
“citi” (percepe) automat în procesul de prelucrare.
7.11. Rezumat
Datele constituie suportul formal al informaţiilor, un model de reprezentare a
informaţiilor la nivel fizic şi logic.
La nivel fizic unei date îi corespunde o zonă de memorie de o anumită mărime,
situată la o anumită adresă, în care sunt înregistrate pe o anumită perioadă de
timp şi într-o formă specifică valorile acestora.
La nivel logic unei date i se pot asocia:
– un identificator, care reprezintă numele ce se asociază datei pentru a se
distinge de alte date şi pentru a fi referită în procesul de prelucrare cu
calcu-latorul electronic;
– valori, care pot fi de diferite tipuri (întregi, reale, complexe, logice,
şiruri de caractere);
– atribute, care precizează proprietăţile informaţionale ale datei şi anume:
tipul, precizia de reprezentare internă, modul de alocare a memoriei
(static, dinamic), valoarea iniţială.
În mediul de programare VBA, variabila este o zonă de memorie care îşi
modifică conţinutul în timpul executării programului.
Semnele (caracterele prelucrabile speciale) folosite pentru marcarea operaţiilor
care se efectuează asupra datelor în programele VBA se numesc operatori.
O funcţie este o prelucrare predefinită destinată pentru efectuarea unei operaţii
sau unor operaţii care returnează o valoare.
Procedurile in VBA se împart în :
◦ proceduri predefinite (încorporate);
◦ proceduri definite de utilizator.
Fişierul de date este o colecţie (mulţime) de date omogene ca natură şi cerinţe
de prelucrare, înregistrate pe un suport tehnic de date, de pe care calculatorul
le poate “citi” (percepe) automat în procesul de prelucrare.
02:55
69
7.12. Test de autoevaluare a cunoștințelor
(timp necesar : 20 minute)
1. O construcţie tipică de limbaj VBA alcătuită din operatori şi operanzi se numeşte:
a. expresie b. funcţie c. procedură d. parametru
2. În mediul VBA proprietăţile informaţionale ale unei date sunt:
a. atribute b. valori c. structuri d. colecţii
3. Prelucrarea predefinită destinată pentru efectuarea unei operaţii (unor operaţii)
care returnează o valoare se numeşte:
a. expresie b. funcţie c. procedură d. modul
4. Caracterele speciale folosite pentru marcarea operaţiilor în programele elaborate
în mediul VBA se numesc:
a. argumente b. funcţii c. operanzi d. operatori
5. Numele ce se asociază unei date pentru a se distinge de alte date şi pentru a se
referi în procesul de prelucrare se numeşte:
a. atribut b. constantă c. variabilă d. identificator
6. Dacă la declararea unei variabile tipul de date nu este specificat, atunci se
consideră implicit tipul:
a. Integer b. Single c. String d. Variant
7. Prin ataşarea unui sufix (de exemplu %) la numele unei variabile se realizează:
a. declararea implicită b. declararea explicită
c. atribuirea unei valori d. precizarea domeniului
8. În mediul VBA clauzele THEN şi ELSE se găsesc în instrucţiunea:
a. IF…END IF b. SELECT CASE…END SELECT
c. FOR…NEXT d. WHILE…WEND
9. Locul unde se declară o variabilă, adică zona de program unde variabila este
vizibilă se numeşte:
a. şir b. modul c. masiv d. domeniu
10. În VBA variabilele multidimensionale sunt denumite:
a. masive (tablouri) b. structuri de date
c. colecţii de date d. date omogene
Răspunsurile corecte la întrebările din testul de tip grilă:
1 a 2 a 3 b 4 d 5 d 6 d 7 a 8 a 9 d 10 a
7.13. Test de evaluare a cunoștințelor
▪ Ce se înţelege prin date în mediul de programare VBA ?
▪ Care sunt criteriile de clasificare a datelor folosite în programele VBA ?
▪ Cum se comportă constantele şi variabilele în timpul execuţiei programelor VBA ?
70
▪ Care sunt tipurile de operatori care se folosesc în cadrul programelor VBA ?
▪ Care sunt tipurile de expresii care se folosesc în cadrul programelor VBA ?
▪ Care sunt principalele funcţii şi cum se folosesc în cadrul progrmelor VBA ?
▪ Care sunt procedurile în mediul VBA şi cum se apelează aceste proceduri în
programele VBA ?
▪ Ce se înţelege prin controale şi cum se folosesc în cadrul programelor VBA ?
▪ Ce fel de fişiere de date cunoasteti şi cum se folosesc în programele elaborate în
mediul VBA?
7.14. Teme de control
▪ Se consideră două şiruri de numere reprezentând preţul unitar, respectiv cantitatea
vândută pentru 12 mărfuri dintr-un magazin. Se cere să se elaboreze o procedură de tip
funcţie în mediul de programare VBA pentru calcularea valorii totale a vânzărilor.
▪ Se consideră un şir de numere care reprezintă valoarea stocurilor de mărfuri dintr-
un magazin pe o perioadă de un an. Se cere să se elaboreze o procedură de tip
subrutină VBA pentru a determina pe ce lună (1,2,3,…) valoarea stocurilor a fost cea
mai mică.
▪ Se consideră un şir de numere reprezentând preţul unitar al unor produse dintr-un
magazin. Se cere să se elaboreze o procedură VBA pentru calcularea preţului mediu,
ştiind că nu se cunoaşte câte numere sunt în şir.
▪ Se consideră un şir de numere reprezentând preţul unitar pentru N mărfuri dintr-un
magazin. Se cere să se elaboreze o procedură VBA pentru a determina care este preţul
unitar cel mai mare, ştiind că N este cunoscut.
▪ Studiu comparativ privind posibilităţile de exploatare ale fişierelor cu acces
secvenţial şi cu acces direct în mediul de programare VBA.
7.15. Bibliografie
I. Bibliografie obligatorie
1. Baron C., Florea E. şi Creţan A. – Programarea calculatoarelor, Editura Pro
Universitaria, Bucureşti, 2012
2. Olteanu C., Baron C. şi Oancea B. - Baze de date, Editura Pro Universitaria,
Bucureşti, 2010
3. Olteanu C., - Baze de date în Marketing. Aplicaţii practice Microsoft Access,
Editura InfoMega, Bucureşti, 2012
4. Olteanu C.,- Bazele informaticii în Marketing. Aplicaţii practice Microsoft
Word, Excel, Powerpoint şi programe legislative, Editura InfoMega, Bucureşti,
2012
II. Bibliografie facultativă
1. Mureşan M. – Sisteme de gestiune a bazelor de date. Access 2002, Editura
CURTEA VECHE, Bucureşti, 2003
2. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura
CISON, Bucureşti, 2002
71
UNITATEA DE ÎNVĂŢARE 8. PROGRAME ELABORATE ÎN MEDIUL DE PROGRAMARE VBA
CUPRINS
8.1. Obiective
8.2. Competenţele unităţii de învăţare
8.3. Programul 1
8.4. Programul 2
8.5. Programul 3
8.6. Programul 4
8.7. Programul 5
8.8. Programul 6
8.9. Programul 7 8.10 Programul 8
8.1. Obiective
În această unitate de învățare se vor prezenta programe elaborate pentru a rezolva
câteva probleme propuse pentru exemplificarea modului de lucru în mediul de
programare VBA –Visual Basic Applications.
8.2. Competenţele unităţii de învăţare
După parcurgerea unităţii veţi fi în măsură să:
Elaborati programe pentru rezolvarea aplicatilor in mediul de programare
VBA;
Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.
8.3. Programul 1
'Problema propusa spre rezolvare
'Sa se realizeze un program care calculeaza Salariul net al unei persoane
'luând în considerare salariul brut, retinerile (se includ aici si impozitele)
'si premierile (se considera ca s-au platit impozitele aferente acestor premieri)
Sub Exercitiul1()
'Se declara cele variabilele necesare
Dim SalariulNet, Retineri, Premieri, SalariulBrut As Double
'Sectiunea de preluare a datelor de la tastatura
SalariulBrut = InputBox("Introduceti salariul brut:", "Introducere Date")
Retineri = InputBox("Introduceti retinerile:", "Introducere Date")
Premieri = InputBox("Introduceti premierile:", "Introducere Date")
'Sectiunea de prelucrare a datelor
SalariulNet = Val(SalariulBrut) - Val(Retineri) + Val(Premieri)
'Sectiune de afisare a rezultatului
MsgBox "Salariul net este " & SalariulNet, vbOKOnly, "Rezultat prelucrare date"
End Sub
00:05
72
8.4 Programul 2
'Problema propusa spre rezolvare:
'Se dau 4 variabile reprezentand:
' Q1: Cererea la produsul X la momentul T1 respectiv
' Q2: Cererea la produsul X la momentul T2 respectiv
' P1: Pretul la produsul X la momentul T1
' P2: Pretul la produsul X la momentul T2
'Sa se realizeze un program care sa realizeze preluarea valorilor
'celor 4 variabile de la tastatura. Sa se calculeze expresia
'E = (Q2-Q1)/(P2-P1) si sa se afiseze rezultatul obtinut.
Sub Exercitiul2()
'Se declara cele 5 variabile care vor stoca datele (A,B,C,D) respectiv rezultatul (E)
Dim Q1, Q2, P1, P2, E As Double
'Sectiunea de preluare a datelor de la tastatura
Q1 = InputBox("Introduceti cererea la momentul T1:", "Introducere Date")
Q2 = InputBox("Introduceti cererea la momentul T2:", "Introducere Date")
P1 = InputBox("Introduceti pretul la momentul T1:", "Introducere Date")
P2 = InputBox("Introduceti pretul la momentul T2:", "Introducere Date")
'Sectiunea de prelucrare a datelor
'Se testeaza daca P2-P1 este diferit egal cu 0 caz in care expresia E = (Q2-Q1)/(P2-P1)
nu are sens.
'aceasta se implementeaza cu o conditie de tipul
If Val(P2) - Val(P1) = 0 Then
MsgBox "Expresia nu poate fi calculata.Impartire la 0!", vbOKOnly, "Eroare"
End
End If
E = (Val(Q2) - Val(Q1)) / (Val(P2) - Val(P1))
'Sectiune de afisare a rezultatului
MsgBox "Rezultatul expresiei este E = " & E, vbOKOnly, "Rezultat prelucrare
date"
End Sub
8.5 Programul 3
'Sa se calculeze salariul net al unei persoane daca se cunosc salariul tarifar,
'retinerile si sporul de vechime care se acorda conform graficului:
' Vechimea in munca mai mica de 3 ani, 0% din salariul tarifar
' Vechimea in munca intre 3 ani si 10 ani, 10% din salariul tarifar
' Vechimea in munca intre 10 ani si 20 ani, 20% din salariul tarifar
' Vechimea in munca peste 20 ani, 30%
Sub Exercitiul3()
'Se declara cele variabilele care vor stoca datele si respectiv cele care vor stoca
rezultatele
Dim SalariulTarifar As Currency
Dim VechimeaInMunca As Integer
01:00
00:20
73
Dim Retineri As Currency
Dim ProcentSporDeVechime
Dim SporulDeVechime As Currency
Dim SalariulNet As Currency
'Sectiunea de preluare a datelor de la tastatura
SalariulTarifar = Val(InputBox("Introduceti Salariul Tarifar:", "Introducere Date"))
VechimeaInMunca = Int(Val(InputBox("Introduceti Vechimea in Munca:",
"Introducere Date")))
Retineri = Val(InputBox("Introduceti Retineri:", "Introducere Date"))
'Sectiunea de prelucrare a datelor
'Determinarea procentului sporului de vechime
If VechimeaInMunca < 3 Then
ProcentSporDeVechime = 0
Else
If VechimeaInMunca >= 3 And VechimeaInMunca < 10 Then
ProcentSporDeVechime = 0.1 'adica 10%
Else
If VechimeaInMunca >= 10 And VechimeaInMunca < 20 Then
ProcentSporDeVechime = 0.2 'adica 20%
Else
ProcentSporDeVechime = 0.3 'adica 30%
End If
End If
End If
'Calcularea efectiva a sporului de vechime si a salariului net
SporulDeVechime = SalariulTarifar * ProcentSporDeVechime
SalariulNet = SalariulTarifar + SporulDeVechime - Retineri
'Sectiune de afisare a rezultatului
MsgBox "Sporul de Vechime = " & SporulDeVechime & " Salariul Net = " &
SalariulNet, vbOKOnly, "Rezultat prelucrare date"
End Sub
8.6 Programul 4
'Sa se calculeze dobanda şi suma de ridicat pe care un client al unei banci
'O va ridica la sfarsitul perioadei de depozit cunoscut fiind faptul ca,
'variantele de depozit disponibile si dobanzile aferente sunt redate in
'graficul de mai jos:
' Durata exprimata in luni Rata Dobanzii
' 1 40% pe an
' 3 45% pe an
' 6 47% pe an
' 12 50% pe an
Sub Exercitiul4()
'Se declara variabilele care vor stoca datele si respectiv rezultatele
Dim SumaDepusa As Currency
Dim VariantaDeDepozit As Integer
Dim RataDobanzii As Currency
01:30
74
Dim Dobanda As Currency
Dim SumaDeRidicat As Currency
'Sectiunea de preluare a datelor de la tastatura
SumaDepusa = Val(InputBox("Introduceti Suma Depusa:", "Introducere Date"))
VariantaDeDepozit = InputBox("Introduceti Varianta de Depozit (1 - 1 luna,2 - 3
luni, 3 - 6 luni, 4 - 1 an):", "Introducere Date")
'Sectiunea de prelucrare a datelor
'Determinarea procentului sporului de vechime
Select Case VariantaDeDepozit
Case "1":
RataDobanzii = 0.4 / 12 '40% pe AN calculat pe 1 luna
Case "2":
RataDobanzii = (0.45 / 12) * 3 '45% pe AN calculat pe 3 luni
Case "3":
RataDobanzii = (0.47 / 12) * 6 '47% pe AN calculat pe 6 luni
Case "4":
RataDobanzii = (0.5 / 12) * 12 '50% pe AN calculat pe 12 luni
Case Else:
MsgBox "Optiune gresita!", vbOKOnly, "Eroare"
End
End Select
'Calcularea efectiva a sporului de vechime si a salariului net
Dobanda = SumaDepusa * RataDobanzii
SumaDeRidicat = SumaDepusa * (1 + RataDobanzii)
'Sectiune de afisare a rezultatului
MsgBox "Dobanda = " & Dobanda & " Suma de ridicat = " & SumaDeRidicat,
vbOKOnly, "Rezultat prelucrare date"
End Sub
8.7. Programul 5
'Unitatea economica x inregistreaza pe cele 12 luni ale unui an profit.
'Sa se realizeze o aplicatie care sa calculeze profitul total, mediu,
'minim si maxim pe cele 12 luni.
Sub Exercitiul5()
'Se declara variabilele care vor stoca datele si cele care vor stoca rezultatele
Dim Profit As Currency 'declararea unui masiv unidimensional care sa stocheze
pretul produselor
Dim Luna As Integer
Dim ProfitTotal As Currency
Dim ProfitMinim As Currency
Dim ProfitMaxim As Currency
Dim ProfitMediu As Currency
'Sectiunea de prelucrare a datelor
ProfitTotal = 0
01:45
75
TotalProduse = 0
For Luna = 1 To 12
'sectiune de introducere date
Profit = Val(InputBox("Introduceti profitul pe luna nr. " & Luna & " :",
"Introducere denumire produs"))
If Luna = 1 Then
ProfitMinim = Profit
ProfitMaxim = Profit
Else
If Profit > ProfitMaxim Then
ProfitMaxim = Profit
End If
If Profit < ProfitMinim Then
ProfitMinim = Profit
End If
End If
ProfitTotal = ProfitTotal + Profit
Next Luna
'Sectiune de afisare a rezultatului
MsgBox "Profit Total: " & ProfitTotal & "; Profit minim: " & ProfitMinim & ";
Profit maxim: " & ProfitMaxim & "; Profit mediu: " & ProfitTotal / 12, vbOKOnly,
"Rezultat final"
End Sub
8.8. Programul 6
'Sa se realizeze o aplicatie preia de la tastatura numele unui produs
'si efectueaza asupra lui urmatoarele operatii:
'il afiseaza cu litere mici
'il afiseaza cu majuscule
'converteste literele mici in litere mari si invers
Sub Exercitiul6()
Dim DenumireDePrelucrat As String
Dim Index As Byte
Dim LungimeDenumire As Byte
Dim DenumirePrelucrata As String
DenumireDePrelucrat = InputBox("Introduceti denumirea produsului :", "Introducere
denumire produs")
Debug.Print "Denumire introdusa: " & DenumireDePrelucrat
Debug.Print "Denumire cu litere mici: " & LCase(DenumireDePrelucrat)
02:00
76
Debug.Print "Denumire cu litere mari: " & UCase(DenumireDePrelucrat)
Index = 1
DenumirePrelucrata = ""
LungimeDenumire = Len(DenumireDePrelucrat)
Do
DenumirePrelucrata = DenumirePrelucrata & Chr(Asc(Mid(DenumireDePrelucrat,
Index, 1)) Xor 32)
Index = Index + 1
Loop Until (Index > LungimeDenumire)
Debug.Print "Denumire prelucrata :" & DenumirePrelucrata
End Sub
8.9. Programul 7
'Se considera 3 masive unidimensionale care stocheaza DenumireProdus, PretProdus si
'CantitateProdus. Introducandu-se de la tastatura numarul de produse care se gasesc
intr-o gestiune x,
'sa se construiasca un program care sa preia denumirea acestor produse,cantitatea si
pretul lor,
'in cele trei masive. Se cere sa se afiseze valoarea stocului pentru fiecare produs,
valoarea minma
'valoarea maxima, valoarea medie si valoarea totala pe gestiunea x.
Sub Exercitiul8()
'Se declara cele variabilele care vor stoca datele si respectiv cele care vor stoca
rezultatele
Dim NumarDeProduse As Integer
Dim PretProdus() As Currency 'declararea unui masiv unidimensional care sa
stocheze pretul produselor
Dim DenumireProdus() As String 'declararea unui masiv unidimensional care sa
stocheze denumirea produselor
Dim CantitateProdus() As Long 'declararea unui masiv unidimensional care sa
stocheze cantitatea dintr-un produs
Dim Contor As Integer
Dim ValoareStoc() As Currency 'declararea unui masiv unidimensional care sa
stocheze valoarea stocului pentru un anumit produs
Dim ValoareTotalaStoc As Currency
Dim ValoareMinima As Currency
Dim ValoareMaxima As Currency
Dim ValoareMedie As Currency
Dim TotalProduse As Currency
'Sectiunea de preluare a datelor de la tastatura
Do
NumarDeProduse = Int(Val(InputBox("Introduceti numarul de produse:(minim 2)",
"Introducere Date")))
Loop Until NumarDeProduse >= 2
02:15
0
77
'Se aloca spatiul pentru stocarea informatiilor cu privire la produse
ReDim PretProdus(NumarDeProduse)
ReDim DenumireProdus(NumarDeProduse)
ReDim CantitateProdus(NumarDeProduse)
ReDim ValoareStoc(NumarDeProduse)
'Sectiunea de prelucrare a datelor
ValoareTotalaStoc = 0
TotalProduse = 0
For Contor = 1 To NumarDeProduse
'sectiune de introducere date
DenumireProdus(Contor) = InputBox("Introduceti denumirea produsului " &
Contor & " :", "Introducere denumire produs")
PretProdus(Contor) = Val(InputBox("Introduceti pretul pentru produsul " &
DenumireProdus(Contor) & " :", "Introducere pret produs"))
CantitateProdus(Contor) = Val(InputBox("Introduceti cantitatea existenta in stoc
pentru produsul " & DenumireProdus(Contor) & " :", "Introducere pret produs"))
'sectiune de calcule date
ValoareStoc(Contor) = PretProdus(Contor) * CantitateProdus(Contor)
If Contor = 1 Then
ValoareMinima = ValoareStoc(Contor)
ValoareMaxima = ValoareStoc(Contor)
Else
If ValoareStoc(Contor) > ValoareMaxima Then
ValoareMaxima = ValoareStoc(Contor)
End If
If ValoareStoc(Contor) < ValoareMinima Then
ValoareMinima = ValoareStoc(Contor)
End If
End If
ValoareTotalaStoc = ValoareTotalaStoc + ValoareStoc(Contor)
TotalProduse = TotalProduse + CantitateProdus(Contor)
Next Contor
'Sectiune de afisare a rezultatului
For Contor = 1 To NumarDeProduse
MsgBox "Valoare Stoc: " & ValoareStoc(Contor) & " lei", vbOKOnly,
"Produsul: " & DenumireProdus(Contor)
Next Contor
MsgBox "Valoare Totala Stoc: " & ValoareTotalaStoc & "; Valoare minima: " &
ValoareMinima & "; Valoare maxima: " & ValoareMaxima & "; Valoare medie: " &
ValoareTotalaStoc / TotalProduse, vbOKOnly, "Rezultat final"
End Sub
02:45
78
Recommended