Documente Academic
Documente Profesional
Documente Cultură
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
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
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
8emorie intern
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'
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
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 %;
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
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
D$
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
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
CAPITOLUL 1
Noiuni introductive
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
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