Sunteți pe pagina 1din 10

CAPITOLUL 1

Noiuni introductive

NOIUNI INTRODUCTIVE
1.1. Structura general a unui siste 1.!. $lgorit i 1.!.1. Noiuni generale de calcul 1.!.!. De"iniii #i caracteristici 1.!.%. Re&re'entarea algori ilor 1.%. Teoria re'olvrii &ro(le elor

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')' Date de intrare (datele ini%iale ale problemei) /RO)R$, (ir de ac%iuni $ prelucrri$ algoritm) Date de ieire (rezultatele ob%inute)

4i&ura 1'1' Calculatorul " sistem automat de prelucrare a datelor Principalele avanta(e ale #olosirii calculatorului constau !n) viteza mare de e#ectuare a opera%iilor* capacitatea e tins de prelucrare i memorare a in#orma%iei' +ei construc%ia unui calculator " determinat de te,nolo&ia e istent 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 co une' 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 e ploatare) 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 e ecu%ia aplica%iilor' 5 emple 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 te te$ 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 comple e$ dar bine precizate$ numite SISTE, O/ER$RE 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' UTI*I2$TOR
0$RD1$RE

SO3T1$RE DE $/*IC$IE = SO3T1$RE

4i&ura 1'1' 5c,ipamentul de calcul ca un sistem ,ard/are"so#t/are

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 e ecutate asupra datelor de intrare pentru a ob%ine rezultatele)' Aceast in#orma%ie de intrare este prezentat !ntr"o "or a e4tern$ accesibil omului (numere$ te t$ &ra#ic) i va #i trans#ormat de ctre calculator !ntr"o "or a intern$ binar' Unitatea de intrare (cu #unc%ia de citire) realizeaz aceast conversie a in#orma%iei din #ormat e tern !n cel intern' +in punct de vedere lo&ic$ #lu ul (in#orma%ia) de intrare este un ir de caractere$ din e terior 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 e tern$ 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 e orie' ,e oria 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 e emplu$ 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 e ecutate 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 e trem 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 e ecu%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 numere reale'

ate atic F circuit inte&rat destinat realizrii cu vitez sporit a opera%iilor cu

Unitate de intrare (#lu de intrare " istream !n CKK)

8emorie intern

Unitate de ieire (#lu de ieire " ostream !n CKK)

Unitate central

8emorie e tern 4i&ura 1';' Unit%ile #unc%ionale ale unui sistem de calcul -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)' ,e oria e4tern este reprezentat$ #izic$ prin unit%ile de discuri (discuri dure" -ard dis8$ discuri #le ibile" "lo&&6 dis8$ discuri de pe care in#orma%ia poate #i doar citit"C+3O8$ +>+3O8$ etc)' 0pre deosebire de memoria intern$ memoria e tern 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


$lgorit ul 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. 5 emplu 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(le e legate de algorit i +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

CAPITOLUL 1

Noiuni introductive

Cutarea unor al&oritmi pentru rezolvarea unor probleme din ce !n ce mai comple e 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 e ecutabili$ descrii #r ec,ivoc$ care de#inesc un proces #init' /ro&rietile "unda entale 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 e ecut la un moment dat de timp* Caracterul determinist ) ordinea ac%iunilor !n e ecu%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 &ri itive (blocuri elementare care stau la baza reprezentrii al&oritmilor)' 4iecare primitiv se caracterizeaz prin sintax i semantic' 0inta a se re#er la reprezentarea simbolic a primitivei* semantica se re#er la semni#ica%ia primitivei' 5 emplu 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 algorit ilor &rin sc-e e 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 e ecu%ie a proceselor de calcul' Cate&orii de simboluri)

0imboluri de nceput i sfrit 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' 0emni#ic procese (opera%ii) de intrare7ieire (citirea sau scrierea)

ST$RT

STO/

0imbolul paralelogram
CITE9TE a: (

$3I9E$2+ a: ( 11

CAPITOLUL 1

Noiuni introductive

0imbolul dreptung i
a %;

0emni#ic o atribuire (modi#icarea valorii unei date)'

0imbolul romb 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 e ecut ACIUNE1' +ac nu$ se e ecut ACIUNE2' La un moment dat$ se e ecut sau ACIUNE1$ sau ACIUNE2'

NU

Condiie <nde&linit =

D$

$CIUNE!

$CIUNE1

4i&ura 1'C' 0tructura de decizie 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 0e evalueaz condi%ia de test (#i&ura 1'M')' +ac aceasta este !ndeplinit$ se e ecut ACIUNE1' 0e revine apoi i se testeaz iar condi%ia' +ac este !ndeplinit$ se e ecut (se repet) ACIUNE1$ 'a'm'd' Abia !n momentul D$ NU Condiie !n care condi%ia nu mai este !ndeplinit$ se trece <nde&linit la e ecu%ia ACIUNE2' = Ast#el$ c<t ti & condi%ia este !ndeplinit$ se repet ACIUNE1' -n cazul !n care$ la prima $CIUNE! $CIUNE1 testare a condi%iei$ aceasta nu este !ndeplinit$ se e ecut ACIUNE2' Ast#el$ este posibil ca ACIUNE1 s nu fie executat niciodat' 4i&ura 1'M' !n 0tructur test ini%ial 5 is i situa%ii care se repetitiv tie de la cu !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 e ecu%ii ale ac%iunii' +e c<te ori se e ecut ac%iunea$ contorul este incrementat'
contorvaloare?iniial NU valoare?contor<= valoare?"inal D$

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

$CIUNE valoare?contor valoare?contor @ 1

incrementare contor (se adun 1 la valoarea anterioar a contorului)'

4i&ura 1'H' 0tructur repetitiv cu test ini%ial$ cu numr cunoscut de pai


1;

CAPITOLUL 1

Noiuni introductive

!tructur repetitiv cu test final: 0e e ecut 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 e ecutat cel pu%in o dat'

$CIUNE 1

Condiie <nde&linit = NU $CIUNE !

D$

4i&ura 1'I' 0tructur repetitiv cu test #inal

1.!.%.!. Re&re'entarea algorit ilor &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 e ist un standard pentru re&ulile le icale' 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) SFRIT -nceput al&oritm) NCEPUT Citire (introducere) date) CITETE lista 0criere (a#iare) date) SCRIE lista Atribuire) <0tructura de decizie (alternativ)) DAC con i!i" ATUNCI ac!i#n"1 A$TFE$ ac!i#n"2 0tructuri repetitive cu test ini%ial) CT TI%P con i!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 con i!i" sau) REPET ac!i#n" PN CND con i!i"
A$/ORIT% a*la&")a&i") &"@t Pe l<n& cuvintele c,eie$ !n reprezentarea al&oritmilor !n pseudocod pot apare i propozi%ii nestandard a caror INCEPUT detaliere va #i realizat ulterior' 0TA3T CITETE -n cazul !n care se realizeaz un al&oritm modularizat$ pot apare cuvintele c,eie) $;l a&ia <- $>l SU.A$/ORIT% n#0" 1lista)int&2&i3 AFIEAAA a&ia 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 e empli#ica i modul de implementare a acestor al&oritmi !n limba(ul CKK)' 5incl# " <iost&"a0678 Implementare) O" L Pl 1' 0e citesc 1aria valori numerice reale$ care reprezint dimensiunile (lun&imea i l%imea unui dreptun&,i)' 0 se (oi 0ain1 3 calculeze i s se a#ieze aria dreptun&,iului' 9 o#:l" $; lA4IN5AGQ aria 1C 0TOP co#t<<<$#n=i0"'<- cin88$co#t<<<$a!i0"'<- cin88lo#:l" a&ia ' $ > lco#t << <A&ia'<<< a&ia?

CIT5NT5 L$ l

SFARIT

CAPITOLUL 1

Noiuni introductive

1' 0e citesc 1 valori reale' 0 se a#iseze valoarea ma imului dintre cele 1 numere'
A$/ORIT% 0aB)2)n& INCEPUT CITESTE a; : DACA a 8' : ATUNCI 0aB<-a A$TFE$ 0aB<-: AFISEAAA 0aB SFARIT Implementare !n limba(ul CKK) 5incl# " <iost&"a0678 (oi 0ain1 3 9 *loat a; :; 0aBco#t<<<a'<- cin88aco#t<<<:'<- cin88:i* 1a 8' :3 0aB ' a"ls" 0aB ' :co#t<<<%aBi0#l "st"C<<<0aB-?

0au)

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'<-cin88aco#t<<<:'<- cin88:i* 1a 8' :3 co#t<<<%aBi0#l "st"C<<<a"ls" co#t<<<%aBi0#l "st"C<<<:- ?

;' 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 ma imul' Al&oritm care utilizeaz structur repetitiv cu test ini%ial)
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

Al&oritm care utilizeaz structur repetitiv cu test #inal)


1M

CAPITOLUL 1 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

Noiuni introductive

1.%. TEORI$ RE2O*V+RII /RO7*E,E*OR


Creterea comple it%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)* 5 ploatarea 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 conte t$ 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%ional (#unc%ii sau proceduri !n +escompunerea a unui limba(ul Pascal$ #unc%ii !n limba(ul C)' pro&ram P const !n identi#icarea P P #unc%iilor (tas@"urilor$ sarcinilor) principale ale pro&ramului (P$ P$ P)$ #iecare dintre aceste #unc%ii P1 P P1 reprezent<nd un subpro&ram (#i&ura 1'A')' Problemele de pe acelai nivel i sunt independente unele #a% de altele'
P P 1H

4i&ura 1'A' +escompunerea #unc%ional

CAPITOLUL 1

Noiuni introductive

1.%.1. Eta&ele re'olvrii unei &ro(le e cu aAutorul calculatorului


0 detaliem !n continuare etapa de implementare' +up analiza problemei i stabilirea al&oritmului$ acesta trebuie tradus (i &le entat) !ntr"un limba( de pro&ramare'

0rierea (editarea) pro&ramului surs' %rogramele surs sunt #iiere te t 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$ e tensia .c$ iar cele CKK$ e tensia .cppB' Pentru a putea #i e ecutat$ 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 sinta a i semantica limba(ului' +ac e ist 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 e tensia .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 e ecu%iei acestuia' Lin@editorul Rlea&S modulele obiect$ rezolv re#erin%ele ctre #unc%iile e terne i rutinele din biblioteci i produce cod e ecutabil$ memorat !ntr"un alt #isier$ numit fiier executabil (acelai nume$ e tensia .exe) 5 ecu%ia Lansarea !n e ecu%ie const !n !ncrcarea pro&ramului e ecutabil !n memorie i startarea e ecu%iei sale' (Preprocesor) Compilator Lin@editor

Cod Codsurs surs

Cod Codobiect obiect

Cod Cod ee ecutabil ecutabil

4i&ura 1'=' 5tapele necesare ob%inerii #iierului e ecutabil 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 e ecu%ie)* 1' +ac nu se utilizeaz un mediu inte&rat$ pro&ramatorul va apela !n mod e plicit (!n linie de comand) un editor de te te$ compilatorul$ lin@editorul' Lansarea !n e ecu%ie se va #ace tot din linie de comand' ;' 5 tensiile speci#icate pentru #iierele surs$ obiect i e ecutabile sunt

CNTRE7+RI 9I EDERCIII
1I

CAPITOLUL 1

Noiuni introductive

C-estiuni teoretice
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