Sunteți pe pagina 1din 10

CAPITOLUL 1 Noiuni introductive

NOIUNI INTRODUCTIVE
1.1. Structura general a unui siste de calcul 1.!.!. De"iniii #i caracteristici
1.!. $lgoriti 1.!.%. Re&re'entarea algoriilor
1.!.1. Noiuni generale 1.%. Teoria re'olvrii &ro(leelor
1.1. STRUCTUR$ )ENER$*+ $ UNUI SISTE, DE C$*CU*
Calculatorul reprezint un sistem electronic (ansamblu de dispozitive i circuite diverse) comple care
prelucreaz datele introduse !ntr"o #orm prestabilit$ e#ectueaz diverse opera%ii asupra acestora i #urnizeaz
rezultatele ob%inute (#i&ura 1'1')'
Principalele avanta(e ale #olosirii calculatorului constau !n)
viteza mare de e#ectuare a opera%iilor*
capacitatea etins de prelucrare i memorare a in#orma%iei'
+ei construc%ia unui calculator " determinat de te,nolo&ia eistent la un moment dat$ de domeniul de
aplica%ie$ de costul ec,ipamentului i de per#orman%ele cerute " a evoluat rapid !n ultimii ani$ sistemele de
calcul$ indi#erent de model$ serie sau &enera%ie$ au o serie de caracteristici coune' Cunoaterea acestor
caracteristici uureaz procesul de !n%ele&ere i !nv%are a modului de #unc%ionare i de utilizare a
calculatorului'
-n orice sistem de calcul vom &si dou pr%i distincte i la #el de importante) -ard.are"ul i so"t.are"ul'
.ard/are"ul este reprezentat de totalitatea ec,ipamentelor i dispozitivelor #izice*
0o#t/are"ul este reprezentat prin totalitatea pro&ramelor care a(ut utilizatorul !n rezolvarea problemelor
sale (#i&ura 1'1')'
0o#t/are"ul are dou componente principale)
0istemul de operare (de eploatare) care coordoneaz !ntrea&a activitate a ec,ipamentului de calcul'
0istemul de operare intr !n #unc%iune la pornirea calculatorului i asi&ur$ !n principal$ trei #unc%ii)
2estiunea ec,itabil i e#icient a resurselor din cadrul sistemului de calcul*
3ealizarea inter#e%ei cu utilizatorul*
4urnizarea suportului pentru dezvoltarea i eecu%ia aplica%iilor'
5emple de sisteme de operare) 30611$ CP78$ 80"+O0$ LI9U6$ :I9+O:0 9T$ U9I6'
0istemul de aplica%ii (de pro&ramare)) medii de pro&ramare$ editoare de tete$ compilatoare$ pro&rame
aplicative din diverse domenii (economic$ tiin%i#ic$ #inanciar$ divertisment)'
Componentele unui sistem de calcul pot #i &rupate !n unit%i cu #unc%ii complee$ dar bine precizate$ numite
uniti "uncionale' 8odelul din #i&ura 1';' #ace o prezentare simpli#icat a structurii unui calculator$
#acilit<nd !n%ele&erea unor no%iuni i concepte de baz privind #unc%ionarea i utilizarea acestuia' +enumirea
#iecrei unit%i indic #unc%ia ei$ iar s&e%ile " modul de trans#er al in#orma%iei'
=
Date de intrare
(datele ini%iale ale
problemei)
Date de ieire (rezultatele
ob%inute)
/RO)R$, (ir de ac%iuni $
prelucrri$ algoritm)
4i&ura 1'1' Calculatorul " sistem automat de prelucrare a datelor
1
4i&ura 1'1' 5c,ipamentul de calcul ca un sistem ,ard/are"so#t/are
0$RD1$RE
SISTE, O/ER$RE
UTI*I2$TOR
SO3T1$RE
SO3T1$RE DE
$/*IC$IE
CAPITOLUL 1 Noiuni introductive
>om utiliza !n continuare termenii de citire pentru opera%ia de introducere (de intrare) de la tastatur a datelor
ini%iale ale unei probleme$ i scriere pentru opera%ia de a#iare (de ieire) a rezultatelor ob%inute' -n cazul !n
care utilizatorul dorete s rezolve o problem cu a(utorul calculatorului$ in#orma%ia de intrare (#urnizat
calculatorului de ctre utilizator) va consta din datele ini%iale ale problemei de rezolvat i dintr"un pro&ram
(numit pro&ram surs)' -n pro&ramul surs utilizatorul implementeaz (traduce) !ntr"un limba( de pro&ramare
un algorit (ac%iunile eecutate asupra datelor de intrare pentru a ob%ine rezultatele)' Aceast in#orma%ie de
intrare este prezentat !ntr"o "ora e4tern$ accesibil omului (numere$ tet$ &ra#ic) i va #i trans#ormat de
ctre calculator !ntr"o "ora intern$ binar'
Unitatea de intrare (cu #unc%ia de citire) realizeaz aceast conversie a in#orma%iei din #ormat etern !n cel
intern' +in punct de vedere lo&ic$ #luul (in#orma%ia) de intrare este un ir de caractere$ din eterior ctre
memoria calculatorului' +in punct de vedere #izic$ unitatea de intrare standard este tastatura calculatorului'
Tot ca unit%i de intrare$ pot #i enumerate) mouse"ul$ (o?stic@"ul$ scanner"ul (pentru introducerea in#orma%iilor
&ra#ice)'
Unitatea de ie#ire (cu #unc%ia de scriere$ a#iare) realizeaz conversia invers$ din #ormatul intern !n cel
etern$ accesibil omului' +in punct de vedere #izic$ unitatea de ieire standard este monitorul calculatorului'
Ca unit%i de ieire !ntr"un sistem de calcul$ mai putem enumera) imprimanta$ plotter"ul$ etc'
In#orma%ia este !nre&istrat !n eorie'
,eoria intern (memoria R$, 5 Random $cces ,emor?) se prezint ca o succesiune de octe%i (octet sau
(6te sau loca%ie de memorie)' Un octet are A (ii' 7it"ul reprezint unitatea elementar de in#orma%ie i poate
avea una din valorile) B sau 1'
Ca&acitatea unei memorii este dat de numrul de loca%ii pe care aceasta le con%ine i se msoar !n
multiplii de 1B1C (1
1B
)' +e eemplu$ 1 8b?teD1B1CEb?tes* 1Eb?teD1B1Cb?tes'
9umrul de ordine al unui octet !n memorie se poate speci#ica printr"un cod$ numit adres. Ordinea !n
care sunt adresate loca%iile de memorie nu este impus$ memoria #iind un dispozitiv cu acces aleator la
in#orma%ie'
-n memorie se !nre&istreaz dou cate&orii de in#orma%ii)
+ate " in#orma%ii de prelucrat*
Pro&rame " con%in descrierea (implementarea !ntr"un limba( de pro&ramare) a ac%iunilor care vor #i
eecutate asupra datelor$ !n vederea prelucrrii acestora'
-n memoria intern este pstrat doar in#orma%ia prelucrat la un moment dat' 8emoria intern are capacitate
redus* accesul la in#orma%ia pastrat !n aceasta este etrem de rapid$ iar datele nu sunt pstrate dup
terminarea prelucrrii (au un caracter temporar)'
Unitatea central prelucreaz datele din memoria intern i coordoneaz activitatea tuturor componentelor
#izice ale unui sistem de calcul' 5a !n&lobeaz)
,icro&rocesorul" circuit inte&rat comple cu urmtoarele componente de baz)
Unitatea de eecu%ie (realizeaz opera%ii lo&ice i matematice)*
Unitatea de inter#a% a ma&istralei (trans#er datele la7de la microprocesor)'
1B
CAPITOLUL 1 Noiuni introductive
Co&rocesorul ateatic F circuit inte&rat destinat realizrii cu vitez sporit a opera%iilor cu
numere reale'
-n #unc%ie de numrul de bi%i trans#era%i simultan pe ma&istrala de date$ microprocesoarele pot #i clasi#icate
ast#el) microprocesoare pe A bi%i (GAB$ ABAB)* microprocesoare pe 1H bi%i (ABAH$ ABAA$ AB1AH) cu
coprocesoarele corespunztoare (ABAI$ AB1AI)* #amilii de procesoare pe ;1 bi%i (AB;AH+6$ ABCAH$
P59TIU8) cu coprocesoarele corespunztoare (!ncep<nd de la CAH$ coprocesoare sunt !ncorporate
microprocesoarelor)'
,eoria e4tern este reprezentat$ #izic$ prin unit%ile de discuri (discuri dure"-ard dis8$ discuri #leibile"
"lo&&6 dis8$ discuri de pe care in#orma%ia poate #i doar citit"C+3O8$ +>+3O8$ etc)' 0pre deosebire de
memoria intern$ memoria etern are capacitate mult mai mare$ datele !nre&istrate au caracter permanent$ !n
dezavanta(ul timpului de acces la in#orma%ie'
1.!. $*)ORIT,I
1.!.1. NOIUNI )ENER$*E
$lgoritul este conceptul fundamental al in#ormaticii' Orice ec,ipament de calcul poate #i considerat o
main al&oritmic' -ntr"o definiie aproximativ algoritmul este un set de pai care definete modul n care
poate fi dus la ndeplinire o anumit sarcin. 5emplu de al&oritm) al&oritmul de interpretare a unei buc%i
muzicale (descris !n partitur)' Pentru ca o main de calcul s poat rezolva o anumit problem$
pro&ramatorul trebuie mai !nt<i s stabileasc un al&oritm care s conduc la e#ectuarea la sarcinii respective'
Exemplu:
Al&oritmul lui 5uclid pentru determinarea celui mai mare divizor comun (cmmdc) a 1 numere !ntre&i
pozitive'
+ate de intrare) cele 1 numere !ntre&i
+ate de iesire) cmmdc
1' 0e noteaz cu A i J" cea mai mare$ respectiv cea mai mic$ dintre datele de intrare
1' 0e !mparte A la J i se noteaz cu 3 restul !mpr%irii
;' a' +ac 3 di#erit de B$ se atribuie lui A valoarea lui J i lui J valoarea lui 3' 0e revine la
pasul 1'
b' +ac 3 este B$ atunci cmmdc este J'
/ro(lee legate de algoriti
+escoperirea unui al&oritm care s rezolve o problem ec,ivaleaz !n esen% cu descoperirea unei solu%ii a
problemei' +up descoperirea al&oritmului$ pasul urmtor este ca al&oritmul respectiv s #ie reprezentat !ntr"o
#orm !n care s poat #i comunicat unei maini de calcul' Al&oritmul trebuie transcris din #orma conceptual
!ntr"un set clar de instruc%iuni' Aceste instruc%iuni trebuie reprezentate !ntr"un mod lipsit de ambi&uitate' -n
acest domeniu$ studiile se bazeaz pe cunotin%ele privitoare la &ramatic i limba( i au dus la o mare
varietate de sc,eme de reprezentare a al&oritmilor (numite limba(e de pro&ramare)$ bazate pe diverse abordri
ale procesului de pro&ramare (numite paradi&me de pro&ramare)'
11
Unitate de intrare (#lu de
intrare " istream !n CKK)
8emorie intern
Unitate de ieire (#lu de
ieire " ostream !n CKK)
Unitate central
8emorie etern
4i&ura 1';' Unit%ile #unc%ionale ale unui sistem de calcul
CAPITOLUL 1 Noiuni introductive
Cutarea unor al&oritmi pentru rezolvarea unor probleme din ce !n ce mai complee a avut ca urmare apari%ia
unor !ntrebri le&ate de limitele proceselor al&oritmice$ cum ar #i)
Ce probleme pot #i rezolvate prin intermediul proceselor al&oritmiceL
Cum trebuie procedat pentru descoperirea al&oritmilorL
Cum pot #i !mbunt%ite te,nicile de reprezentare i comunicare a al&oritmilorL
Cum pot #i aplicate cunotin%ele dob<ndite !n vederea ob%inerii unor maini al&oritmice mai per#ormanteL
Cum pot #i analizate i comparate caracteristicile diverilor al&oritmiL
1.!.!. DE3INIII 9I C$R$CTERISTICI
De"iniii)
Al&oritmul unei prelucrri const !ntr"o secven% de primitive care descrie prelucrarea'
Al&oritmul este un set ordonat de pai eecutabili$ descrii #r ec,ivoc$ care de#inesc un proces #init'
/ro&rietile "undaentale ale al&oritmilor)
Caracterul finit: orice al&oritm bine proiectat se termin !ntr"un numr #init de pai*
Caracterul unic i universal) orice al&oritm trebuie s rezolve toate problemele dintr"o clas de probleme*
Realizabilitatea) orice al&oritm trebuie s poat #i codi#icat !ntr"un limba( de pro&ramare*
Caracterul discret) #iecare ac%iune se eecut la un moment dat de timp*
Caracterul determinist) ordinea ac%iunilor !n eecu%ie este determinat !n mod unic de rezultatele ob%inute
la #iecare moment de timp'
9erespectarea acestor caracteristici &enerale conduce la ob%inerea de al&oritmi neper#orman%i$ posibil in#ini%i
sau nerealizabili'
1.!.%. RE/RE2ENT$RE$ $*)ORIT,I*OR
3eprezentarea (descrierea) unui al&oritm nu se poate #ace !n absen%a unui limba( comun celor care vor s !l
!n%elea&' +e aceea s"a stabilit o mul%ime bine de#init de &riitive (blocuri elementare care stau la baza
reprezentrii al&oritmilor)' 4iecare primitiv se caracterizeaz prin sintax i semantic' 0intaa se re#er la
reprezentarea simbolic a primitivei* semantica se re#er la semni#ica%ia primitivei' 5emplu de primitiv) aer"
din punct de vedere sintactic este un cuv<nt #ormat din trei simboluri (litere)* din punct de vedere semantic este
o substan% &azoas care !ncon(oar &lobul pm<ntesc'
Al&oritmii se reprezint prin)
sc,eme lo&ice*
pseudocod'
1.!.%.1. Re&re'entarea algoritilor &rin sc-ee logice
Primitivele utilizate !n sc,emele lo&ice sunt simboluri &ra#ice$ cu #unc%iuni (reprezent<nd procese de calcul)
bine precizate' Aceste simboluri sunt unite prin arce orientate care indic ordinea de eecu%ie a proceselor de
calcul'
Cate&orii de simboluri)
0imboluri de nceput i sfrit
0imbolul paralelogram
11
0emni#ic procese (opera%ii) de
intrare7ieire (citirea sau scrierea)
CITE9TE a: (
$3I9E$2+ a: (
ST$RT STO/
0imbolul START desemneaz !nceputul unui
pro&ram sau al unui subpro&ram'
0imbolul STOP desemneaz s#<ritul unui
pro&ram sau al unui subpro&ram' Prezen%a lor
este obli&atorie'
CAPITOLUL 1 Noiuni introductive
0imbolul dreptungi
0imbolul romb

Cu a(utorul acestor simboluri &ra#ice se poate reprezenta orice al&oritm'
Repetarea unei secven%e se realizeaz prin combinarea simbolurilor de decizie i de atribuire'
0tructurile repetitive ob%inute pot #i) cu test ini%ial sau cu test #inal'
!tructuri repetitive cu test initial
5is i situa%ii !n care se tie de la !nceput de c<te ori se va repeta o anumit ac%iune' -n aceste cazuri se
#olosete tot o structur de control repetitiv cu test ini%ial' 0e utilizeaz un contor (numeric) pentru a %ine o
eviden% a numrului de eecu%ii ale ac%iunii' +e c<te ori se eecut ac%iunea$ contorul este incrementat'
1;
a %;
0emni#ic o atribuire (modi#icarea
valorii unei date)'
4i&ura 1'C' 0tructura de decizie
D$ NU
$CIUNE! $CIUNE1
0imbolul romb este utilizat pentru decizii
(#i&ura 1'C')' 0e testeaz !ndeplinirea
condi%iei din blocul de decizie' Dac
aceast condi%ie este !ndeplinit$ se
eecut ACIUNE1' +ac nu$ se eecut
ACIUNE2' La un moment dat$ se eecut
sau ACIUNE1$ sau ACIUNE2'
Condiie
<nde&linit
=
0e evalueaz condi%ia de test (#i&ura 1'M')'
+ac aceasta este !ndeplinit$ se eecut
ACIUNE1' 0e revine apoi i se testeaz iar
condi%ia' +ac este !ndeplinit$ se eecut (se
repet) ACIUNE1$ 'a'm'd' Abia !n momentul
!n care condi%ia nu mai este !ndeplinit$ se trece
la eecu%ia ACIUNE2'
Ast#el$ c<t ti& condi%ia este !ndeplinit$ se
repet ACIUNE1' -n cazul !n care$ la prima
testare a condi%iei$ aceasta nu este !ndeplinit$
se eecut ACIUNE2' Ast#el$ este posibil ca
ACIUNE1 s nu fie executat niciodat'
D$
NU
$CIUNE! $CIUNE1
Condiie
<nde&linit
=
4i&ura 1'M' 0tructur repetitiv cu test ini%ial
4i&ura 1'H' 0tructur repetitiv cu test ini%ial$ cu
numr cunoscut de pai
0e atribuie contorului valoarea ini%ial
(#i&ura 1'H')' C>t ti& condiia (valoarea
contorului este mai mic sau e&al cu
valoarea #inal) este !ndeplinit$ se re&et)
ACIUNE
incrementare contor (se adun 1 la valoarea
anterioar a contorului)'
contorvaloare?iniial
valoare?contor<=
valoare?"inal
$CIUNE
valoare?contor valoare?contor @ 1
D$
NU
CAPITOLUL 1 Noiuni introductive
!tructur repetitiv cu test final:
1.!.%.!. Re&re'entarea algoritilor &rin &seudocod
Pseudocodul este inspirat din limba(ele de pro&ramare$ ne#iind !ns at<t de #ormalizat ca acestea' Pseudocodul
reprezint o punte de le&tur !ntre limba(ul natural i limba(ele de pro&ramare' 9u eist un standard pentru
re&ulile leicale' Limba(ul pseudocod permite comunicarea !ntre oameni$ i nu comunicarea om"maina
(precum limba(ele de pro&ramare)' Pseudocodul utilizeaz cuvinte c,eie (scrise cu ma(uscule subliniate) cu
urmtoarele semni#ica%ii)
0#<rit al&oritm) SF RIT
-nceput al&oritm) NCEPUT
Citire (introducere) date) CITETE lista
0criere (a#iare) date) SCRIE lista
Atribuire) <-
0tructura de decizie (alternativ)) DAC coni!i"
ATUNCI ac!i#n"1
A$TFE$ ac!i#n"2
0tructuri repetitive cu test ini%ial) CT TI%P coni!i"
REPET ac!i#n"
PENTRU conto&'(al)ini! $A (al)*in +PAS,
REPET ac!i#n"-
0tructuri repetitive cu test #inal)
REPET ac!i#n" CT TI%P coni!i"
sau)
REPET ac!i#n" PN C ND coni!i"
Pe l<n& cuvintele c,eie$ !n reprezentarea al&oritmilor !n pseudocod pot apare i propozi%ii nestandard a caror
detaliere va #i realizat ulterior'
-n cazul !n care se realizeaz un al&oritm modularizat$ pot apare cuvintele c,eie)
SU.A$/ORIT% n#0" 1lista)int&2&i3
C4EA% n#0" 1lista)(alo&i)"*"cti(")")int&a&"3
Exemple:
0e vor reprezinta !n continuare al&oritmii de rezolvare pentru c<teva probleme simple (pentru primele 1
probleme se va eempli#ica i modul de implementare a acestor al&oritmi !n limba(ul CKK)'
1' 0e citesc 1 valori numerice reale$ care reprezint dimensiunile (lun&imea i l%imea unui dreptun&,i)' 0 se
calculeze i s se a#ieze aria dreptun&,iului'
1C
0TA3T
CIT5NT5 L$ l
aria O" L P l
A4IN5AGQ aria
0TOP
5incl#" <iost&"a0678
(oi 0ain1 3
9 o#:l" $; l-
co#t<<<$#n=i0"'<- cin88$-
co#t<<<$a!i0"'<- cin88l-
o#:l" a&ia ' $ > l-
co#t << <A&ia'<<< a&ia-
?
A$/ORIT% a*la&")a&i")&"@t
INCEPUT
CITETE $;l
a&ia <- $>l
AFIEAAA a&ia
SFARIT
Implementare)
0e eecut mai !nt<i ACIUNE1' 0e
testeaz apoi condi%ia (#i&ura 1'I')' 0e
re&et ACIUNE1 c>t ti& condi%ia este
!ndeplinit'
-n acest caz$ corpul ciclului (ACIUNE1)
este eecutat cel pu%in o dat'
NU
D$
$CIUNE 1
$CIUNE !
Condiie
<nde&linit
=
4i&ura 1'I' 0tructur repetitiv cu test #inal
CAPITOLUL 1 Noiuni introductive
1' 0e citesc 1 valori reale' 0 se a#iseze valoarea maimului dintre cele 1 numere'
Implementare !n limba(ul CKK)
;' 0 se citeasc c<te 1 numere !ntre&i$ p<n la !nt<lnirea perec,ii de numere B$ B' Pentru #iecare perec,e de
numere citite$ s se a#ieze maimul'
Al&oritm care utilizeaz structur repetitiv cu test ini%ial)
Al&oritm care utilizeaz structur repetitiv cu test #inal)
1M
A$/ORIT% 0aB)2)n&
INCEPUT
CITESTE a; :
DACA a 8' :
ATUNCI 0aB<-a
A$TFE$ 0aB<-:
AFISEAAA 0aB
SFARIT
A$/ORIT% 0aB)2)n&
NCEPUT
CITETE a; :
DACA a 8' :
ATUNCI AFISEAAA a
A$TFE$ AFISEAAA :
SFARIT
5incl#" <iost&"a0678
(oi 0ain1 3
9 *loat a; :-
co#t<<<a'<-cin88a-
co#t<<<:'<- cin88:-
i* 1a 8' :3
co#t<<<%aBi0#l "st"C<<<a-
"ls"
co#t<<<%aBi0#l "st"C<<<:- ?
5incl#" <iost&"a0678
(oi 0ain1 3
9 *loat a; :; 0aB-
co#t<<<a'<- cin88a-
co#t<<<:'<- cin88:-
i* 1a 8' :3
0aB ' a-
"ls" 0aB ' :-
co#t<<<%aBi0#l "st"C<<<0aB-?
0au)
A$/ORIT% 0aB)@"&"c7i1
INCEPUT
CITESTE a;:
CAT TI%P1a5Dsa# :5D3REPETA
INCEPUT
DACA 1a8':3
ATUNCI AFISEAAA a
A$TFE$ AFISEAAA :
CITESTE a;:
SFARSIT
SFARSIT
A$/ORIT% 0aB)@"&"c7i2
INCEPUT
a E F
CAT TI%P 1a5D sa# :5D3 REPETA
INCEPUT
CITESTE a; :
DACA 1a8':3
ATUNCI AFISEAAA a
A$TFE$ AFISEAAA :
SFARSIT
SFARSIT
A$/ORIT% 0aB)@"&"c7iF
INCEPUT
REPETA
INCEPUT
CITETE a;:
DACA 1a8':3
ATUNCI AFIEAAA a
A$TFE$ AFIEAAA :
SFARIT
CAT TI%P 1a5D sa# :5D3
SFARIT
CAPITOLUL 1 Noiuni introductive
1.%. TEORI$ RE2O*V+RII /RO7*E,E*OR
Creterea compleit%ii problemelor supuse rezolvrii automate (cu a(utorul calculatorului) a determinat ca
activitatea de pro&ramare s devin$ de #apt$ un comple de activit%i'
Pentru rezolvarea unei probleme trebuie parcurse urmtoarele etape)
Analiza problemei (!n%ele&erea problemei i speci#icarea cerin%elor acesteia)' 0e stabileste ce trebuie s
#ac aplica%ia$ i nu cum' 0e stabilesc datele de intrare (identi#icarea mediului ini%ial) i se stabilesc
obiectivele (identi#icarea mediului #inal$ a rezultatelor)*
Proiectarea (conceperea unei metode de rezolvare a problemei printr"o metod al&oritmic)*
Implementarea (codi#icarea al&oritmului ales !ntr"un limba( de pro&ramare)*
Testarea aplica%iei ob%inute (veri#icarea corectitudinii pro&ramului)*
5ploatarea i !ntre%inerea (mentenan%a$ activitatea de modi#icare a aplica%iei la cererea bene#iciarului sau
!n urma unor de#icien%e constatate pe parcursul utilizrii aplica%iei)'
-n acest contet$ activitatea de pro&ramare a devenit o activitate or&anizat$ de#inindu"se metode #ormale de
dezvoltare a #iecrei etape' 5tapele descrise anterior alctuiesc ciclul de via al unui produs soft"are i
constituie obiectul de studiu al disciplinei numite ingineria sistemulor de programe #soft"are engineering$'
Teoreticienii in&ineriei pro&ramrii consider c rezolvarea unei probleme se poate #ace pe ; direc%ii)
3ezolvarea orientat pe algoritm (pe ac%iune)$ !n care or&anizarea datelor este neesen%ial*
3ezolvarea orientat pe date$ ac%iunile #iind determinate doar de or&anizarea datelor*
3ezolvarea orientat obiect$ care combin tendin%ele primelor dou abordri'
Abordarea aleas determin modelarea problemei de rezolvat'
+intre metodele de proiectare orientate pe algoritm amintim) metoda programrii structurate i metoda
rafinrii succesive' Ambele au ca punct de plecare metoda de proiectare top-down$ considerat ca #iind o
metod clasic de #ormalizare a procesului de dezvoltare a unui produs so#t/are'
La baza metodei top"do/n st descompunerea funcional a problemei P$ adica &sirea unui numr de
subprobleme P
1
$ P
1
$ ''' P
n
$ cu urmtoarele propriet%i)
4iecare subproblem P
i
(1ODiODn) poate #i rezolvat independent' +ac nu constituie o problem
elementar$ poate #i$ la randul ei$ descompus*
4iecare subproblem P
i
este mai simpl dec<t problema P*
0olu%ia problemei P se ob%ine prin reuniunea solu%iilor subproblemelor P
i
*
Procesul de descompunere se oprete !n momentul !n care toate subproblemele P
i
ob%inute sunt
elementare$ deci pot #i implementate*
Comunicarea !ntre aceste subprobleme se realizeaz prin intermediul parametrilor' Implementarea metodei
top"do/n !ntr"un limba( de pro&ramare se #ace cu a(utorul modulelor de pro&ram (#unc%ii sau proceduri !n
limba(ul Pascal$ #unc%ii !n limba(ul C)'
1H
+escompunerea #unc%ional a unui
pro&ram P const !n identi#icarea
#unc%iilor (tas@"urilor$ sarcinilor)
principale ale pro&ramului (P$ P$ P)$
#iecare dintre aceste #unc%ii
reprezent<nd un subpro&ram (#i&ura
1'A')' Problemele de pe acelai nivel i
sunt independente unele #a% de altele'
P
P
P
1
P
P P
P
1
4i&ura 1'A' +escompunerea #unc%ional
CAPITOLUL 1 Noiuni introductive
1.%.1. Eta&ele re'olvrii unei &ro(lee cu aAutorul calculatorului
0 detaliem !n continuare etapa de implementare' +up analiza problemei i stabilirea al&oritmului$ acesta
trebuie tradus (i&leentat) !ntr"un limba( de pro&ramare'
0rierea (editarea) pro&ramului surs'
%rogramele surs sunt #iiere tet care con%in instruc%iuni (cu sintactica i semantica proprii limba(ului
utilizat)' Pro&ramul (#iierul) surs este creat cu a(utorul unui editor de texte i va #i salvat pe disc
(pro&ramele surs C primesc$ de obicei$ etensia .c$ iar cele CKK$ etensia .cppB'
Pentru a putea #i eecutat$ pro&ramul surs trebuie compilat i lin&editat.
Compilarea
Procesul de compilare este realizat cu a(utorul compilatorului$ care translateaz codul surs !n cod obiect
(cod main)$ pentru ca pro&ramul s poat #i !n%eles de calculator' -n cazul limba(ului C$ !n prima #az a
compilrii este invocat preprocesorul' Acesta recunoate i analizeaz mai !nt<i o serie de instruc%iuni
speciale$ numite directive procesor' >eri#ic apoi codul surs pentru a constata dac acesta respect
sintaa i semantica limba(ului' +ac eist erori$ acestea sunt semnalate utilizatorului' Utilizatorul
trebuie s corecteze erorile (modi#ic<nd pro&ramul surs)' Abia apoi codul surs este translatat !n cod de
asamblare$ iar !n #inal$ !n cod main$ binar$ propriu calculatorului' Acest cod binar este numit cod obiect
i de obicei este memorat !ntr"un alt #iier$ numit fiier obiect' 4iierul obiect va avea$ de obicei$ acelai
nume cu #iierul surs i etensia .ob''
Lin@editarea
+upa ce pro&ramul surs a #ost translatat !n pro&ram obiect$ el este va #i supus opera%iei de lin@editare'
0copul #azei de lin@editare este acela de a ob%ine o #orm #inal a pro&ramului$ !n vederea eecu%iei
acestuia' Lin@editorul Rlea&S modulele obiect$ rezolv re#erin%ele ctre #unc%iile eterne i rutinele din
biblioteci i produce cod eecutabil$ memorat !ntr"un alt #isier$ numit fiier executabil (acelai nume$
etensia .exe)
5ecu%ia
Lansarea !n eecu%ie const !n !ncrcarea pro&ramului eecutabil !n memorie i startarea eecu%iei sale'
Observaii:
1' 8ediile de pro&ramare inte&rate (JO3LA9+C$ TU3JOC) !n&lobeaz editorul$ compilatorul$ lin@editorul
i depanatorul (utilizat !n situa%iile !n care apar erori la eecu%ie)*
1' +ac nu se utilizeaz un mediu inte&rat$ pro&ramatorul va apela !n mod eplicit (!n linie de comand) un
editor de tete$ compilatorul$ lin@editorul' Lansarea !n eecu%ie se va #ace tot din linie de comand'
;' 5tensiile speci#icate pentru #iierele surs$ obiect i eecutabile sunt
CNTRE7+RI 9I EDERCIII
C-estiuni teoretice
1I
Cod surs
Cod surs
(Preprocesor)
Compilator
Lin@editor
Cod obiect
Cod obiect
Cod
eecutabil
Cod
eecutabil
4i&ura 1'=' 5tapele necesare ob%inerii #iierului eecutabil
CAPITOLUL 1 Noiuni introductive
1' 5numera%i unit%ile #unc%ionale componente ale
unui sistem de calcul'
1' Care sunt di#eren%ele !ntre so#t"ul de aplica%ie
i sistemul de operareL
;' Care este deosebirea !ntre al&oritm i
pro&ramL
C' Care sunt propriet%ile #undamentale ale
al&oritmilorL
M' Care sunt modalit%ile de reprezentare a
al&oritmilorL
C-estiuni &ractice
1' 3eprezenta%i al&oritmul lui 5uclid (pentru calculul celui mai mare divizor comun a 1 numere !ntre&i) prin
sc,ema lo&ic'
1' Proiecta%i un al&oritm care s rezolve o ecua%ie de &radul I (de #orma a K b D B)$ unde a$b sunt numere
reale' +iscu%ie dup coe#icien%i'
;' Proiecta%i un al&oritm care s rezolve o ecua%ie de &radul II (de #orma a
1
K b K c D B)$ unde a$b$c sunt
numere reale' +iscu%ie dup coe#icien%i'
C' Proiecta%i un al&oritm care s testeze dac un numr !ntre& dat este numr prim'
M' Proiecta%i un al&oritm care s a#ieze to%i divizorii unui numr !ntre& introdus de la tastatur'
H' Proiecta%i un al&oritm care s a#ieze to%i divizorii primi ai unui numr !ntre& introdus de la tastatur'
I' Proiecta%i un al&oritm care calculeaz #actorialul unui numr natural dat' (Prin de#ini%ie BTD1)
1A

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