Sunteți pe pagina 1din 8

Capitolul 1.

Introducere
1.7
1.4. Proiectarea programelor
Programele modific[, memoreaz[ =i transfer[ datele cu ajutorul variabilelor.
Variabila este, din punct de vedere al implement[rii, o zon[ de memorie destinat[ memor[rii unei date.
Din punct de vedere logic, o variabil[ pote reprezenta (]n func\ie de problema de rezolvat) o presiune,
o densitate, o durat[ de timp etc.
Prin declara\ii ]n cadrul programelor se stabilesc atributele variabilelor.
Principalele atribute ale unei variabile sunt:
identificatorul (numele) variabilei;
tipul variabilei;
structura variabilei.
Tipul unei variabile este atributul care precizeaz[ domeniul de valori pe care le poate lua variabila
precum =i opera\iile care se pot efectua cu aceste valori.
Structura unei variabile este atributul care precizeaz[ dac[ variabila con\ine date simple sau date
structurate.
1.4.1. Etapele proiect[rii unui program
Pentru rezolvarea unei probleme se parcurg urm[toarele etape:
analiza problemei
proiectarea programului
implementarea programului
]ntre\inerea =i documentarea programului
Analiza problemei
}n aceast[ etap[:
se identific[ datele de intrare =i datele de ie=ire;
se precizeaz[ tipul =i structura variabilelor care con\in datele de intrare;
se precizeaz[ tipul =i structura variabilelor care con\in datele de ie=ire;
se precizeaz[ tipul =i structura variabilelor auxiliare;
se stabile=te func\ia programului (modul ]n care se ob\in datele de ie=ire din datele de intrare).
}n majoritatea cazurilor func\ia programului este precizat[ sub forma unui model matematic.
Modelul matematic este ansamblul de rela\ii =i principii pe baza c[rora se calculeaz[ datele de ie=ire
din datele de intrare.
Rezultatul etapei de analiz[ se nume=te specifica\ia programului.
Proiectarea programului
Scopul acestei etape este ob\inerea algoritmului de rezolvare a problemei.
Algoritmul constituie re\eta de rezolvare a problemei.
Pentru reperezentarea algoritmului se utilizeaz[:
limbajul natural;
schema logic[;
pseudocodul
limbaje de programare.
Capitolul 1. Introducere
1.8
Implementarea programului
}n acest[ etap[ se codific[ algoritmul ]n limbajul de programare ales. Programul ob\inut ]n urma
codific[rii se depaneaz[ (eventual) =i se testeaz[.
Depanarea este opera\ia prin care se elimin[ eventualele erori din program.
Pricipalele tipuri erori sunt:
erori sintactice;
erori de link-editare;
erori ]n faza de execu\ie;
erori logice.
Majoritatea erorilor sunt u=or de eliminat av`nd ]n verere faptul c[ mediile integrate utilizate ]n
realizarea programelor ofer[ instrumente pentru identificarea lor.
Cele mai dificile sunt erorile logice. Pentru eliminarea lor se utilizeaz[ de obicei simulatoare sau
depanatoare specializate.
Testarea programului ]nsemn[ execu\ia lui cu un set de date de intrare astfel ales ]nc`t datele de ie=ire
s[ fie previzibile sau u=or de calculat. Testarea constituie un instrument foarte bun pentru ]nl[turarea
erorilor logice.
}ntre\inerea =i documentarea programului
}ntre\inerea programului ]nseamn[ operarea unor mici modific[ri ]n program (care nu schimb[
specifica\ia programului), pe baza observa\iilor f[cute de utilizator asupra modului de func\ionare.
Documentarea programului presupune elaborarea unei documenta\ii care precizeaz[ modul de
instalare, condi\iile de func\ionare, modul de utilizare =i de ]ntre\inere a programului.
Un alt nivel de documentare ]l constituie comentarea programului care se realizeaz[ ]n programul
surs[ prin utilizarea comentariilor.
1.4.2. Algoritmi
Algoritmul este o succesiune finit[ de pa=i care se execut[ ]ntr-un timp finit =i ]ntr-o ordine bine
stabilit[. Pa=ii unui algoritm se mai numesc =i (pseudo-)instruc\iuni.
Un algoritm este alc[tuit din:
opera\ii de baz[;
structuri de control.
Opera\iile de baz[ sunt cele care permit prelucrarea, memorarea =i transferul datelor. Cele trei opera\ii
de baz[ sunt:
atribuirea;
citirea;
scrierea.
Opera\ia de atribuire are forma general[ ve ]n care v este o variabil[ iar e este o expresie.
Atribuirea se execut[ ]n dou[ etape: mai ]nt`i se evalueaz[ expresia e dup[ care, valoarea expresiei
este atribuit[ variabilei v.
Opera\iile de citire =i scriere permit citirea datelor de intrare, respectiv scrierea datelor de ie=ire.
Structurile de control precizeaz[ ordinea ]n care se execut[ pa=ii algoritmului.
Teorema Bohm Jacopini precizeaz[ c[ orice algoritm poate fi realizat cu numai trei structuri de
control numite structuri de control fundamentale: secven\a, decizia =i itera\ia.
Secven\a este o succesiune de pa=i care se execut[ ]n ordinea scrierii lor.
Capitolul 1. Introducere
1.9
Decizia permite ramificarea algoritmului ]n func\ie de ]ndeplinirea unei anumite condi\ii. Decizia
poate fi simpl[ sau cu alternativ[.
Itera\ia permite execu\ia repetat[ a unei secven\e, numit[ corpul ciclului.
Exist[ trei tipuri de itera\ii:
itera\ia cu test ini\ial;
itera\ia cu test final;
itera\ia cu contor.
Itera\ia cu test ini\ial execut[ corpul ciclului c`t timp este ]ndeplinit[ o anumit[ condi\ie.
Itera\ia cu test final execut[ corpul ciclului p`n[ c`nd este ]ndeplinit[ o anumit[ condi\ie.
Itera\ia cu contor permite execu\ia corpului ciclului pentru toate valorile unei variabile speciale
(numit[ variabil[ contor) ]ntr-un interval dat.
1.4.3. Reprezentarea algoritmilor
Cele mai utilizate modalit[\i de reprezentare a algoritmilor sunt pseudocodul =i schema logic[.
Pseudocodul
Este o modalitate de reprezentare a algoritmului sub form[ de text. Pa=ii algoritmului, numi\i pseudo-
instruc\iuni, sunt reprezenta\i prin cuvinte-cheie.
Cuvintele-cheie utilizate ]n pseudocod sunt:
ALTFEL, ATUNCI, CITETE, CT TIMP, DAC, ENDSEQ, EXECUT, PENTRU,
PN CND, REPET, SCRIE, SEQ, START, STOP.
Opera\iile de intrare-ie=ire se reprezint[ ]n pseudocod astfel:
CITETE <list variabile>
SCRIE <list variabile>
]n care list[ variabile este o succesiune de identificatori (de variabil[) separa\i prin virgul[.
Atribuirea se codific[ astfel:
ve
]n care v este un identificator de variabil[ iar e este o expresie cu valori de acela=i tip cu variabila.
Pentru reprezentarea unei secven\e se utilizeaz[ cuvintele-cheie SEQ =i ENDSEQ pentru a marca
]nceputul, respectiv sf`r=itul secven\ei. Secven\a este numit[ =i (pseudo-)instruc\iune compus[.
Decizia simpl[ se codific[ astfel:
DAC c ATUNCI instr
]n care c este o expresie cu valori de tip logic (numit[ condi\ie logic[) iar instr este orice instruc\iune
(inclusiv una compus[).
Decizia cu alternativ[ are sintaxa:
DAC c ATUNCI instr1
ALTFEL instr2
]n care c este o expresie cu valori de tip logic iar instr1 =i instr2 sunt instruc\iuni.
Itera\ia cu test ini\ial se codific[ ]n pseudocod astfel:
CT TIMP c EXECUT instr
]n care c este o expresie cu valori de tip logic, iar instr este orice instruc\iune (corpul ciclului).
Itera\ia cu test final se codific[ astfel:
Capitolul 1. Introducere
1.10
REPET instr PN CND c
]n care c este o expresie cu valori de tip logic iar instr este orice instruc\iune (corpul ciclului).
Sintaxa itera\iei cu contor cresc[tor este:
PENTRU v=e1,e2 EXECUT instr
]n care v este un identificator de variabil[ (variabil[-contor), e1 =i e2 sunt expresii cu valori de
acela=i tip cu v iar instr este orice instruc\iune (corpul ciclului).
Sintaxa itera\iei cu contor descresc[tor este:
PENTRU v=e1e2 EXECUT instr
}n ambele cazuri, corpul ciclului se execut[ pentru toate valorile variabilei v, cuprinse ]ntre valorile
e1 =i e2. }n primul caz, contorul este incrementat la fiecare parcurgere a ciclului iar ]n al doilea caz,
contorul este decrementat.
Cuvintele-cheie START =i STOP se utilizeaz[ pentru a marca ]nceputul, respectiv sf`r=itul
algoritmului.
Schema logic[
Este o modalitate grafic[ de reprezentare a unui algoritm.
Simbolurile utilizate ]n reprezentare sunt:
START

Blocul de start.
Marcheaz[ ]nceputul
algoritmului.
C
NU DA

Bloc de decizie
STOP

Blocul de stop.
Marcheaz[ sf`r=itul
algoritmului.

Simbol utilizat ]n
definirea =i apelul
subprogramelor.

Bloc de calcul. Con\ine
una sau mai multe
instruc\iuni de atribuire.


Bloc de intrare-ie=ire

Simboluri utilizate la
interconectarea
diverselor p[r\i ale
schemei logice.
Opera\iile de baz[ de intrare-ie=ire se reprezint[ prin blocuri de intrare-ie=ire iar opera\iile de atribuire
utilizeaz[ blocuri de calcul.
Secven\a nu necesit[ un simbol special pentru reprezentare ]n schema logic[.
}n figurile 1.1 =i 1.2 se prezint[ modul de reprezentare ]n schema logic[ a deciziei.
Figura 1.1. Reprezentarea deciziei simple.
instr
C
NU
DA
Capitolul 1. Introducere
1.11
Figura 1.2. Reprezentarea deciziei cu alternativ[.
Principalul dezavantaj al schemei logice este faptul c[ nu ofer[ simboluri specifice pentru
reprezenatrea structurilor de control de tip iterativ.
Itera\iile se reprezint[ ]n schema logic[ prin combina\ii de blocuri.
}n figurile 1.3 =i 1.4 sunt prezentate schemele logice echivalente pentru itera\ia cu test ini\ial, respectiv
pentru itera\ia cu test final.
Figura 1.3. Itera\ia cu test ini\ial.
Figura 1.4. Itera\ia cu test final.
}n figura 1.5 este exemplificat[ itera\ia cu contor cresc[tor:
PENTRU i=1,n EXECUT instr
instr2 instr1
C
NU DA
instr
C
NU
DA
instr
C
NU
DA
Capitolul 1. Introducere
1.12
Figura 1.5. Exemplu de itera\ie cu contor cresc[tor.

n i
NU
DA
i=i+1
instr
i=1
Capitolul 1. Introducere
1.13
1.5. Limbaje de programare
O categorie important[ de programe o constituie limbajele de programare. Un limbaj de programare
permite utilizatorului s[ creeze propriile programe (numite programe utilizator).
Limbajul de programare este un intermediar ]ntre problema de rezolvat =i calculator.
Figura 1.6. Rezolvarea unei probleme cu ajutorul calculatorului.
Algoritmul face trecerea de la problem[ la limbajul de programare iar asamblorul sau compilatorul
realizeaz[ trecerea de la limbaj la calculator.
Limbajele de programare se clasific[ dup[ apropierea de limbajul natural ]n:
limbaje de nivel ]nalt;
limbaje de nivel cobor`t.
Limbajele de nivel ]nalt permit programarea independent[ de arhitectura calculatorului =i sunt mai
apropiate de specificul problemei. Ele ofer[ urm[toarele avantaje:
portabilitatea programelor;
sunt mai apropiate de limbajul natural.
Principalele dezavantaje sunt:
necesit[ configura\ii hardware complexe;
vitez[ mic[ de execu\ie.
Limbajele de nivel cobor`t, numite =i limbaje de asamblare, depind de structura calculatorului =i
descriu opera\ii specifice acestuia. Ele ofer[ urm[toarele avantaje:
vitez[ mare de execu\ie;
utilizarea la maximum a resurselor hardware.
Principalele dezavantaje ale limbajelor de nivel cobor`t sunt:
lipsa portabilit[\ii programelor;
tehnicitatea program[rii.
1.5.1. Etapele compil[rii
Prima form[ a programului utilizator este programul surs[. Acesta este un fi=ier text realizat cu
ajutorul unui editor de text.
Programul surs[ con\ine instruc\iunile necesare rezolv[rii problemei, scrise ]n limbajul de programare
ales. El este tradus (translatat) ]n instruc\iuni recunoscute de calculator fie cu ajutorul asamblorului, fie
cu ajutorul compilatorului.
Forma ob\inut[ ]n urma translat[rii se nume=te program obiect relocabil.
Programul obiect relocabil este o form[ intermediar[ a programului care nu este direct executabil[. El
are proprietatea de a putea fi a=ezat oriunde ]n memoria calculatorului (este relocabil).
Programul obiect relocabil este transformat ]n program obiect absolut (sau executabil) cu ajutorul
link-editorului.
Pentru a putea fi executat, programul obiect absolut trebuie ]nc[rcat ]n memoria principal[ cu ajutorul
]nc[rc[torului de programe.
Compilator
Asamblor
Algoritm
programare
Calculator
Limbaj de
Problem[
Capitolul 1. Introducere
1.14
Utilizarea formei intermediare de program obiect relocabil ofer[ c`teva avantaje care sunt prezentate ]n
continuare.
}n primul r`nd, programele complexe pot fi sparte ]n mai multe module ce pot fi compilate =i testate
separat. Aceast[ tehnic[ se nume=te programare modularizat[.
Utilizarea program[rii modularizate conduce la cre=terea eficien\ei program[rii =i, ]n plus, permite
reutilizarea codului. Un modul, odat[ compilat =i testat, poate fi utilizat ]n mai multe proiecte, f[r[ a fi
necesar[ recompilarea sa.
Pe de alt[ parte, modulele precompilate pot fi organizate ]n biblioteci de programe.
}n acest fel, utilizatorul ]=i poate construi propriile biblioteci de programe care pot fi utilizate ]n faza de
link-editatare, al[turi de bibliotecile sistem (bibliotecile furnizate de limbajul de programare).
De men\ionat c[ exist[ o deosebire ]ntre utilizarea unui modul precompilat =i a unei biblioteci. La link-
editarea unui modul precompilat, modulul este incorporat ]n ]ntregime ]n program pe c`nd, ]n cazul unei
biblioteci, sunt incluse doar func\iile utilizate de program.
}n figura 1.7 sunt prezentate principalele faze ale compil[rii unui program.
Figura 1.7. Compilarea unui program.
1.5.2. Medii integrate de programare
Un mediu integrat pentru dezvoltarea programelor (Integrated Development Environment - IDE)
con\ine toate instrumentele necesare realiz[rii unui program utilizator: editor de text, asamblor,
compilator, link-editor, bibliotecar, ]nc[rc[tor de programe, depanator, simulator etc.

prog.exe
mod2.obj syslib.lib
Link-editor
Bibliotecar
mod1.obj
file2.obj main.obj file1.obj
Asamblor Compilator
Editor
file2.asm main.c
mylib.lib
file1.c

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