1. ALGORITM: DEFINIŢIE, REPREZENTARE, CLASIFICARE.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "1. ALGORITM: DEFINIŢIE, REPREZENTARE, CLASIFICARE."

Transcript

1 ALGORITMI Scopul: Prezentarea metodelor de alcătuire a algoritmilor şi de rezolvare a problemelor cu ajutorul acestora. Obiective: Partea I-a - Definiţia algoritmilor. Reprezentarea algoritmilor. Clasificare. - Algoritmi secvenţiali. - Algoritmi ramificaţi. - Algoritmi repetitivi. - Algoritmi pentru prelucrarea tablourilor de date(unidimensionale şi bidimensionale) Partea a II-a - Algoritmi de sortare? - Algoritmi specifici metodelor numerice Partea a III-a ( facultativă) - Tehnici de programare.?algoritmi specifici?. Partea I-a 1. ALGORITM: DEFINIŢIE, REPREZENTARE, CLASIFICARE. 1.1 Definiţie: Algoritmul poate fi definit ca o succesiunea finita de paşi care trebuie parcursă pentru a obţine, pornind de la datele iniţiale (numite şi date de intrare) informaţiile pe care dorim să le determinăm prin calcul (date de ieşire). Algoritmul se obţine prin completarea modelului matematic cu operaţiile necesare rezolvării complete a problemei (introducerea datelor, verificarea corectitudinii datelor de intrare, verificarea altor condiţii impuse de modelul matematic şi necesare parcurgerii acestuia, afişarea rezultatelor, apelarea unor funcţii predefinite în limbajul de programare ales etc.). Obs. Alcătuirea algoritmului precede în mod obligatoriu scrierea programului de calcul. 1.2 Etapele alcătuirii algoritmului de rezolvare a unei probleme Pentru o alcătuire corectă ma algoritmului de rezolvare a unei probleme este necesar să se parcurgă următoarele etape: - înţelegerea textului problemei; - precizarea mărimilor (datelor) care sunt cunoscute (date iniţiale sau date de intrare); - precizarea mărimilor cerute,a căror valoare se calculează (date de ieşire); 1

2 - stabilirea relaţiei(lor) de calcul pentru fiecare mărime căutată,eventual şi pentru mărimi intermediare(modelul matematic); - alegerea identificatorului(numelui) pentru fiecare variabilă care intervine în modelul matematic; - reprezentarea algoritmului (pseudocod şi organigramă); - verificarea algoritmului prin parcurgerea tabelului de verificare şi compararea rezultatelor cu valorile obţinute prin rezolvarea directă a problemei. 1.3 Reprezentarea algoritmilor Modalităţile de codificare a algoritmilor sunt diverse. Cele mai folosite dintre acestea sunt:pseudocodul şi schema logică. a. Pseudocodul este o reprezentare semantică a operaţiilor. Această formă este cea mai apropiată de programul de calcul. b. Schema logică (organigrama) este reprezentarea algoritmului sub forma unei succesiuni de simboluri grafice interconectate.fiecare operaţie este indicată printr-un simbol grafic distinct. Facem observaţia că operaţia de codificare a algoritmilor nu este încă complet standardizată. De aceea în unele cărţi s-ar putea găsi alte variante decât acelea folosite în cadrul acestui referat. 1.4 Clasificarea algoritmilor Organizarea unui algoritm este determinată de: problema de rezolvat, modelul matematic ales, limbajul de programare folosit pentru implementare. Cea mai utilizată formă de alcătuire este aceea a evidenţierii în cadrul algoritmului numai a unor blocuri de operaţii tip. Aceste se numesc structuri fundamentale (tip)şi sunt: - structura secvenţială; - structura de decizie; - structura repetitivă (cu cele trei variante: contorizare, test anterior, test posterior ). Algoritmii organizaţi numai sub forma structurilor tip interconectate se numesc algoritmi structuraţi. Deoarece în toate limbajele de programare există instrucţiuni care codifică direct structurile tip menţionate mai sus, în prezent pentru alcătuirea programelor de calcul se folosesc numai algoritmi structuraţi. 2. CODIFICAREA ALGORITMILOR 2.1. Structura secvenţială include operaţiile de: - citirea date de intrare; - calculul valorii unei/unor expresii şi atribuirea valorii unei/unor variabile; - afişarea rezultatelor; 2

3 În figura 1 se indică reprezentarea unui algoritm secvenţial sub forma de pseudocod (1.a) şi schemă logică (1.b) Reprezentarea unui algoritm secvenţial Ex. 1.S-a depus la o bancă suma de b lei pe termen de 6 luni. Cunoscând că dobânda anuală oferită de bancă este de 23%, să se determine suma aflată în cont la sfârşitul termenului de depunere. Etapele rezolvării problemei a) Definirea datelor de intrare/ieşire Date de intrare : - suma iniţială de bani b [în lei] - dobânda anuală db=23% - termenul de depunere n=6 luni Date de ieşire: - Suma finală în cont bf [în mii lei] b) Modelul matematic 23 - dobânda lunară dl = % 12 dl dl - suma în cont după prima lună s 1 = b + b = b suma finală după n luni este obţinută din relaţia anterioară, n 1 dl considerând creşterea lunară a valorii aflate în cont bf b = Temă Să se demonstreze formula de calcul a lui bf. c) Reprezentarea algoritmului: 3

4 Codificarea algoritmului sub formă de program de calcul şi execuţia programului vor fi prezentate în lucrarea de laborator nr. 4 Observaţii 1. Se observă că în etapele a şi b se aleg identificatorii mărimilor cu care se operează în rezolvarea problemei(b,db,n ). 2. Este de dorit ca aceste nume să fie scrise numai cu litere mici. 3. În etapele a, b se precizează care sunt mărimile cu care operează programul: - datele iniţiale(b,db,n) - datele finale(bf) - datele intermediare, dacă este necesar(dl,s1) De asemenea se precizează care sunt mărimile : - constante - variabile Constantele pot fi introduse direct prin valorile lor(12,100,etc)sau printr-un identificator propriu(db=23). Variabilele se definesc şi se folosesc în alcătuirea expresiilor de calcul numai prin intermediul identificatorilor(b,n,dl). 4. Alegerea valorilor datelor iniţiale şi alcătuirea expresiilor de calcul implică şi precizarea unităţilor de măsură. 5. Se observă că alcătuirea algoritmului este condiţionată în primul rând de posibilitatea alcătuirii unor relaţii de calcul pentru mărimile care se determină (variabile intermediare sau de ieşire) Ex. 2. Fie z 1 =a 1 +b 1 i, z 2 =a 2 +b 2 i două numere complexe. Se cere să se calculeze z=z 1 *z 2. Etapele rezolvării problemei a) Definirea datelor de intrare/ieşire Date de intrare : - a 1,b 1,a 2,b 2 4

5 Date de ieşire: - Rezultatul operatiei matematice z=z 1 *z 2 b) Modelul matematic z 1 =a 1 +b 1 i, z 2 =a 2 +b 2 i z=z 1 *z 2 =z re +z im i Forma generală a unui număr complex. Prin înmulţirea a două numere complexe se obţine tot un număr complex. z=z 1 *z 2 =(a 1 +b 1 i)*(a 2 +b 2 i)=a 1 a 2 +a 1 b 2 i+a 2 b 1 i+b 1 b 2 i*i=a 1 a 2 +a 1 b 2 i+a 2 b 1 i-b 1 b 2 = (a 1 a 2 - b 1 b 2 )+(a 1 b 2 + a 2 b 1 )i Identificăm, z re =a 1 a 2 - b 1 b 2 z im = a 1 b 2 + a 2 b 1 c) Reprezentarea algoritmului: Mai întâi se aleg variabilele pentru fiecare data (de intrare, ieşire sau auxiliară): Date Identificatori de variabile corespunzători a 1 a1 b 1 b1 a 2 a2 b 2 b2 z re zre zim z im 5

6 d) Tabel de verificare: Instrucţiuni Pas Citeşte a1,b1,a2,b2 a1=2 b1=1 a2=5,b2=-1 Afişează a1,b1,a2,b zre=a1a2-b1b2 zre=2*5-1*(-1)=11 zim=a1b2+ a2b1 zim=2*(-1)+5*1=-2+5=3 Afişează zre +i zim 11+i3 STOP STOP Observaţii 1. Se observă că în etapele a şi b se aleg identificatorii mărimilor cu care se operează în rezolvarea problemei(a1,b1,a2,b2,zre,zim...). 2. Este de dorit ca aceste nume să fie scrise numai cu litere mici. Se observă că în reprezentarea algoritmului nu s-au folosit indici pentru variabile(cu ar fi a 1,b 1,a 2,b 2,z re,z im ). Motivul este că în programarea reala în orice limbaj (C, Pascal, ADA, Prolog, etc), nu se pot folosi indici pentru variabile. Ca atare este recomandat ca şi în alcătuirea algoritmilor(scheme logice, pseudocod) să nu se folosească astfel de notaţii pentru a nu crea confuzii când se vor scrie programele, mai ales de către începători. 3. În etapele a, b se precizează care sunt mărimile cu care operează programul: - datele iniţiale(a1,b1,a2,b2) - datele finale(zre,zim) 4. Se observă ca la afişarea rezultatului se scrie +i. Pentru calculator i nu există(nu se poate face radical dintr-un număr negativ). Textul dintre ghilimele va fi afisat pe ecran exact asa cum a fost scris. Presupunând ca zre=4 si zim=2 pe ecran va apărea mesajul: 4+i2 5. Concluzie : variabilele care primesc valori nu se afisează între ghilimele, pe când mesajele care se doresc a fi afişate pe ecran se scriu între ghilimele. 6

7 2.2 Structura de decizie (se mai numeşte şi structură alternativă sau structură ramificată) introduce în algoritm operaţia de ramificare, adică evaluarea unei condiţii (notată test în cele ce urmează), stabilirea valorii adevărat sau fals a acesteia şi adoptarea unei decizii privind modul în care se continuă calculele. Definirea structurii instrucţiunii de decizie: În fig.2 este prezentată reprezentarea unei structuri de decizie care se bazează pe verificarea condiţiei test? în pseudocod (2.a), respectiv schemă logică(2.b) 1.a pseudocod 2.b schemă logică Fig. 2 Structura instrucţiunii de decizie: Structura obligatorie a secvenţei de decizie este: - o condiţie notată test? - două subblocuri de instrucţiuni (notate acţiune 1, acţiune 2) a căror interpretare este decisă de valoarea logică a condiţiei DA/NU; (adevărat/fals; true/false). Niciodată nu se pot interpreta şi executa ambele subblocuri. Condiţia de test poate fi o expresie : - relaţională (x>4) ; (x<=-7) ; - logică ((x>= -1) and (x<1)) ; ((x<-1) or (x>=1)). Expresiile logice includ :operatori relaţionali (<,>,>=,<=,=, ) şi/sau operatori logici : intersecţia (produs logic, and, şi) ; reuniunea (suma logică, or, sau) respectiv negarea logică( not ). Interpretarea instrucţiunii de decizie: Interpretarea structurii ramificate presupune efectuarea următoarelor operaţii : - evaluarea condiţiei de decizie (test?); - executarea subblocului de instrucţiuni corespunzătoare valorii logice obţinute în urma evaluării testului (acţiune 1 sau acţiune 2); - continuarea algoritmului cu instrucţiunea imediat următoare structurii de selecţie, respectiv acţiune 3. 7

8 Instrucţiunea de ramificare poate avea şi următoarele variante de alcătuire: - subblocurile de instrucţiuni pot conţine şi numai o singură instrucţiune; - se neglijează subblocul de instrucţiuni corespunzător ramurii neselectate; - există posibilitatea ca secvenţa de decizie să fie alcătuită dintr-un singur subbloc de instrucţiuni (fig. 3 unde lipseşte subblocul acţiune 2). 3.a pseudocod 3.b schemă logică Fig. 3 Ex. 3. Să se rezolve ecuaţia de gradul I (a*x + b = 0)în ipoteza considerării tuturor variantelor posibile ale datelor de intrare. a) Definirea datelor de intrare/ieşire Date de intrare : a,b Date de ieşire: x b) Modelul matematic. Ecuaţia de gradul I este ax+b=0.sub această formă rezolvarea ecuaţiei nu poate fi efectuată printr-un program de calcul. Algoritmul de calcul nu poate include decât relaţii de calcul pentru mărimile necunoscute. Deci se alcătuieşte b relaţia: x =. a b daca a 0 atunci x = a dacă a=0, atunci avem 2 cazuri: dacă b=0, ecuaţia devine 0*x+0=0, ecuaţia are o infinitate de soluţii. dacă b 0, ecuaţia nu are soluţii (este o imposibilitate). 8

9 c)reprezentarea algoritmului d)tabel de verificare DA operaţii citeşte a a=4 citeşte b b=2 a=0? 4=0? NU Nu DA b=0? NU x=-b/a - x=-2/4 afiş. Ec. are o inf. sol afiş. Ec. nu are sol afişează x -0,5 Stop Stop 2.3. Structura repetitivă: Problemele rezolvate cu ajutorul SC necesită parcurgerea repetată a unor grupuri de instrucţiuni de calcul şi de decizie. Pentru o programare mai convenabilă în limbajele de programare s-au definit structurile repetitive. 9

10 În toate limbajele de programare sunt definite trei structuri tip pentru secvenţa repetitivă(fig.4a,4b şi 4c): structura cu, contorizare; structura cu test iniţial (anterior); structura cu test final (posterior). Fig. 4 Structurile repetitive Din fig.4 rezultă că algoritmii celor trei tipuri de structuri repetitive au următoarele elemente comune: corpul ciclului sau blocul de instrucţiuni care se repetă; evaluarea variabilelor care definesc condiţia de oprire; testul de oprire (condiţia). De aceea, printr-o reaşezare a algoritmului există posibilitatea trecerii la o altă formă a structurii repetitive. În acelaşi timp se atrage atenţia că, de la un limbaj de programare la altul se pot întâlni unele diferenţe în ceea ce priveşte sintaxa şi execuţia instrucţiunilor prin care sunt codificate structurile repetitive Structura repetitivă cu contorizare Această structură este avantajoasă pentru rezolvarea problemelor în care se cunoaşte cu exactitate numărul de parcurgeri (paşi) repetate ale instrucţiunilor din corpul ciclului. Se pot defini structuri repetitive controlate de un singur contor( buclă simplă) sau de două sau mai multe contoare(cicluri suprapuse).structurile cu contorizare sunt folosite în special în problemele care prelucrează tablouri de date. 10

11 În figura 5 este reprezentată structura repetitivă cu contorizare simplă. 5a pseudocod 5b organigrama Fig. 5 Structura repetitivă cu contorizare are următoarele elemente: - o variabilă contor i de preferinţă cu valori întregi; - un interval închis ( [i iniţial, i final ]); - condiţia de test; - subblocul acţiune 1 care conţine instrucţiunile care se repetă; - i pas reprezintă pasul cu care se va modifica variabila i după fiecare ciclare.de regulă i pas = 1 (incrementare / decrementare).în acest caz valoarea i pas =1 nu este reprezentată exlicit în pseudocod(fig.5.a). Interpretare: - se iniţializează variabila cu valoarea i iniţial ; - se verifică condiţia de test i [iinitial, ifinal ]; - dacă testul are valoarea DA(adevărat) se execută acţiune 1; - se modifică valoarea variabilei i cu pasul ales; - se revine automat al verificarea testului; - pentru valoarea NU(fals) a testului se încheie secvenţa repetitivă, iar programul se continuă cu instrucţiunea imediat următoare structurii ciclice(acţiune 2). Obs. - Instrucţiunea este cu test anterior; - dacă i nu aparţine intervalului ales, instrucţiunile din corpul buclei (acţiune 1) nu se vor executa. - instrucţiunile de iniţializare, creştere şi verificare a contorului sunt incluse automat în program de către SC.Deci, deşi sunt reprezentate în algoritm, aceste instrucţiuni nu apar explicit în programul de calcul; - introducerea de către programator a unor instrucţiuni de modificare a contorului duce la o execuţie eronată a testului, nesemnalizată de către SC; - acelaşi efect îl are includerea în algoritm a condiţiei de test printr-o instrucţiune de decizie. 11

12 Ex. 4 Sa se determine valoarea expresiei a) Date de intrare : n b) Date de ieşire: S c) Model matematic: 3 S = n d) Reprezentarea algoritmului : = n S = i= 1 i 3 n i= 1 i 3 pseudocod schema logică Obs. - Instrucţiunea s=0 este obligatorie. În absenta acesteia valoarea finala obţinută pentru suma s este eronată(să se explice aceasta?) ; - instrucţiunea s=s+i 3 se interpretează astfel: suma (s) ce este calculată la momentul actual se obţine din suma (s) calculată la momentul anterior la care se adaugă i 3 (i fiind valoarea curentă a pasului). Verificarea corectitudinii unui algoritm se face prin alegerea unui set de valori pentru datele de intrare şi alcătuirea tabelului de verificare. 12

13 e) Tabel de verificare Tabelul 2 instrucţiune PAS 1 PAS 2 PAS 3 PAS 4 citeşte n n=3 afişează n 3//ecou s=0 s=0 i=1 i=1 i<=n? 1<=3? 2<=3? 3<=3? 4<=3? Instrucţ. repetitivă DA DA DA DA s=s+i 3 s=0+1 3 =1 s=1+2 3 =9 s=9+3 3 =36 i=i+1 i=1+1=2 i=2+1=3 i=3+1=4 afişează s 36 NU Ex. 5 Sa se calculeze valoarea sumei duble a) Date de intrare : n b) Date de ieşire: s c) Model matematic: S = n i i i= 1 j= 1 d) Reprezentarea algoritmului : j 2 S = n i i i= 1 j= 1 j 2 13

14 Obs. - Instrucţiunea s=0 este obligatorie şi permite reiniţializarea variabilei care memorează valoarea j 2 pentru fiecare pas al contorului i. e) Tabelul de verificare Tabelul 3 instrucţiune PAS 1 PAS 2 PAS 3 PAS 4 PAS 5 PAS 6 citeşte n n=2 afişează n 3//ecou S=0 S=0 i=1 i=1 i<=n? 1<=2 2<=2 3<2 DA j=1 j=1 j=1 j<=i? 1<=1 2<=1 1<=2 2<=2 3<=2 DA NU S=0+1*1 S=1+2*1 S=3+2*2 s=s+i*j Instrucţ. Repetitive j=j+1 j=2 j=2 j=3 i=i+1 i=2 i=3 afişează s 7 Obs. Algoritmul unei structuri duble cu contorizare este corect alcătuit dacă: - sunt definite două variabile contor; - ciclul exterior(primul deschis) cuprinde în totalitate ciclul interior.altfel spus,primul ciclul deschis este ultimul închis. - contorul ciclului exterior(i) nu este modificat în ciclul interior.învers,în afară ciclului interior contorul acestuia(j) poate fi redefinit Structura repetitivă cu test anterior (iniţial) Există algoritmi repetitivi pentru care utilizatorul nu poate aprecia numărul de repetări(reluări)a secvenţei ciclice. În aceste cazuri pentru controlul interpretării secvenţei ciclice este necesar să se definească o variabilă de control şi o expresia relaţională. După modul în care este amplasată condiţia de test se definesc secvenţe ciclice cu test iniţial respectiv final. Comparativ cu structura cu contorizare,în acest caz trebuiesc respectate următoarele condiţii: - este necesară iniţializarea explicită,prin program, a variabilelor care alcătuiesc condiţia de test. În caz contrar se va interpreta conţinutul locaţiei de memorie rezervate respectivei variabile ( v. şi lucr. de lab. nr. 1), ceea ce va compromite executarea respectivei secvenţe ciclice; - pe parcursul ciclului trebuie să existe cel puţin o instrucţiune prin care se recalculează valorile acestor variabile.în caz contrar secvenţa repetitivă poate deveni un ciclu infinit; - există posibilitatea ca instrucţiunile din corpul ciclului să nu fie parcurse nici măcar o singură dată. Algoritmii repetitivi cu test iniţial sunt specifici problemelor de: 14

15 aritmetica numerelor(divizibilitate, transformări de bază, etc) sau de validare a datelor de intrare. În fig. 5 se reprezintă pseudocodul şi organigrama unei secvenţe repetitive cu test anterior. a) pseudocod b) organigramă Fig. 6 Sintaxa algoritmului. Blocurile care alcătuiesc secvenţa repetitivă au următoarele semnificaţii: - iniţializarea valorii variabilelor care definesc condiţia care verifică incheierea execuţiei repetate (cond?); - cond? - condiţia care verifică încheierea execuţiei repetate:expresie relaţională (x <=5) sau logică ((x >= -1) ŞI (x<=1)) ; - acţiune 1 secvenţa de instrucţiuni care se repetă; - instrucţiunea prin care se modifică valorile care definesc cond? Interpretarea secvenţei repetitive cu test iniţial: - se efectuează testul de la începutul buclei; - pentru cond=da (adevărat) se execută instrucţiunile din corpul buclei; - pentru cond=nu (fals ) se abandonează bucla şi se trece la instrucţiunea imediat următoare secvenţei repetitive (acţiune 2). Ex. 6 Sa se tabeleze valorile funcţiei f ( x) = x 2 9 pentru x [x i, x f ] cu pasul de modificare a variabilei independente x p. a) Date de intrare : xi, xf, xp b) Date de ieşire: f (valoarea funcţiei determintă pentru o anumită valoare x) c) Model matematic: f ( x) = x 2 9 OBS. Fiecare valoare calculată este imediat tipărită.în acest mod locaţia din MO desemnată prin f este eliberată pentru înscrierea următoarei valori calculate. d) Reprezentarea algoritmului: program tabelare; 15

16 citeşte x i, x f, x p ; afişează x i, x f, x p ; f=0; x= x i ; cât timp x< x f t=x 2-9; dacă (t>=0) f= t ; afişează x, f; sf. dacă x=x+x p ; sf. cât timp; sf. program. Obs. Variabila t permite verificarea domeniului de definiţie. Pentru t<0 se afişează mesajul indicat şi respectiva valoare a lui x. Acest caz se înscrie în problemele cu funcţii pentru care contează domeniul de definiţie. e)tabelul de verificare a algoritmului În continuare este prezentat un exemplu în care intervalul ales pentru valorile lui x este [0, 7], iar pasul 2. Tabelul 4 struct. repetit. Operaţii Pas 0 Pas 1 Pas 2 Pas 3 Pas 4 citeşte x i x i =0 citeşte x f x f =7 citeşte x p x p =2 f=0 f=0 x=x i x=0 cât timp 0<=7 2<=7 4<=7 6<=7 8<=7 x<=x f t=x 2-9 t=-9 t=-5 t=7 t=27 Dacă (t>=0) -9>=0-5>=0 7>=0 27>=0 NU f= t DA NU NU f= 7 f= 27 afiş. f x=x+x p x=2 x=4 x=6 x=8 Pas STOP 2.3.3Structura repetitivă cu test posterior (final) Structura repetitivă cu test posterior (final) se deosebeşte de varianta anterioară numai prin aceea că instrucţiunile din corpul ciclului sunt executate cel puţin o dată. Acest tip de algoritm este folosit în special de algoritmi specifici metodelor numerice( determinarea soluţiei reale a unei ecuaţii 16

17 transcendente, calculul valorii radicalului,determinarea valorii unei serii cu număr infinit de termeni etc). În figura 6 se reprezintă instrucţiunea repetitivă cu test anterior în pseudocod şi organigramă 7a Pseudocod 7b organigramă Fig. 7 Sintaxa algoritmului repetitiv cu test final Algoritmul este corect alcătuit dacă: - există marcat începutul secvenţei care trebuie repetată prin cuvântul execută (în limbajele de programare acest marcaj este reprezentat diferit: cuvântul repeat sau do) ; - există marcat finalul secvenţei de operaţii (comenzi,instrucţiuni) care se repetă prin cuvântul cât timp şi condiţia ataşată acestuia ( în limbajele de programare încheierea secvenţei repetate este indictă prin repeat sau while); - printre instrucţiunile care se repetă există şi o operaţie prin care se recalculează valorile variabilelor care definesc condiţia de test.în acest mod se elimină posibilitatea existenţei unei executări fără sfârşit a ciclului(buclă infinită). În fig.6 s-au reprezentat şi blocurile de operaţii: - acţiune 1 care precede secvenţa repetitivă; - acţiune 2 respectiv secvenţa care se interpretează repetat; - acţiune 3 adică instrucţiunile care se execută după încheierea secvenţei repetitive. Interpretarea algoritmului Spre deosebire de varianta anterioară,când testarea condiţiei cond? se face la începutul buclei, în cazul de faţă instrucţiunile din corpul buclei (acţiune 2) se execută cel puţin o dată. Executarea instrucţiunii se face astfel: - se interpretează instrucţiunile din blocul acţiune 2; - se verifică condiţia de test. Dacă aceasta are valoarea de adevărată se reia acţiune 2. În caz contrar se trece la interpretarea instrucţiunii imediat 17

18 următoare secvenţei repetitive (acţiune 3). Ex. 7 Să se calculeze media aritmetică a numerelor pozitive introduse de la tastatură care au valori în intervalul [a,b]. Calculul se încheie prin introducerea unui număr negativ. Obs. Se presupune că întotdeauna primul număr introdus este pozitiv.în caz contrar algoritmul nu mai asigură rezolvarea corectă a problemei. a) Date de intrare : a,b, x-variabila care memorează numerele introduse b) Date de ieşire: a media aritmetică c) Model matematic: Ma = S/n n = numărul de numere d) Reprezentarea algoritmului : 18

19 e) Tabel de verificare Instrucţ. Repetitivă instrucţiune PAS 1 PAS 2 PAS 3 PAS 4 citeşte a,b 2 9 afişează a,b 2 9 S=0 S=0 n=0 n=0 citeste x Daca (x>=0 si x>=a si x<=b) 5>=0 si 5>=2 si 5<=9? 1>=0 si 1>=2 si 1<=9? 3>=0 si 3>=2 si 3<=9? -8>=0 si -8>=2 si -8<=9? DA NU Da Nu Da Nu S=S+x n=n+1 S=0+5 n=1 S=5+3 n=2 cat timp x>=0 5>=0 1>=0 3>=0-8>=0? NU Daca n 0 n 0? NU DA Da Ma=S/n Ma=8/2=4 Afiseaza Ma 4 Afiseaza Date necorespunzatoare STOP Partea a II-a STOP 1. Operaţii asupra tablourilor de date Tablourile sau ariile de date se definesc şi se folosesc în programele de calcul atunci când: este necesar să se păstreze(memoreze) toate valorile succesive calculate pentru o variabilă în timpul executării programului; probleme care se rezolvă se referă la vectori, matrice sau alte tipuri de date organizate sub formă de tabele(de exemplu tabelul numelor studenţilor dintr-o grupă). Rezultă de aici că un tablou de date poate fi şi element propriu algoritmului şi implicit al programului, definit de utilizator în scopul obţinerii unei forme mai eficiente sau elegante a acestora. Caracteristica principală a algoritmilor care conţin ariile de date este prezenţa secvenţei repetitive cu contorizare Prelucrarea şirurilor unidimensionale(vectori) Operaţii simple cu şiruri unidimensionale 19

20 Ex. 8 Calculul mediei aritmetice a unui număr n elemente cuprinse intr-un anumit interval [y i, y f ]. Obs. Pentru o mai uşoară alcătuire şi urmărire a programului elementele respective se vor înscrie în MO sub forma unui vector,pe care îl denumim x. a) Date de intrare: n nr. de elemente din vector x[i] elementele vectorului y i, y f capetele intervalului b) Date de ieşire: ma media aritmetica c) Model matematic: x[ 0] + x[1] + x[2] + x[3] x[ n 1] ma = n d) Algoritm de calcul: program medie citeste n citeste yi,yf pentru i=0,n-1 execută //citirea vectorului citeste x[i] s=0 ma=0 p=0 pentru i=0,n-1 execută dacă (x[i]>=yi) AND (x[i]=<yf) s=s+x[i] p=p+1 sf. daca daca p=0 afiseaza Nu există solutie altfel ma=s/p afişează ma sf. dacă sf. program Algoritmi de ordonare (sortare) Ex. 9 Să se ordoneze (sorteze) crescător un vector x de dimensiune n. Metoda I- metoda bulelor Descrierea metodei : 20

21 Se compară două câte două elemente consecutive ale vectorului, interschimbându-le în cazul neîndeplinirii criteriului de ordonare (x i > x i+1 ). După o parcurgere integrală a vectorului procesul se reia, începând tot cu primul element. Comparaţia se opreşte atunci când, după o parcurgere completă, a vectorului nu s-a mai produs nici o interschimbare. Pentru evidenţierea în algoritm a efectuării unei interschimbări s-a declarat variabila flag ( steag ). Aceasta are rol de "semafor" indicând prin valoarea 1 dacă a avut loc o interschimbare. Deci, atunci când la o parcurgere completă a vectorului flag-ul rămâne cu valoarea 0 înseamnă că şirul este ordonat. Algoritmul cuprinde două secvenţe ciclice suprapuse: Secvenţa repetitivă exterioară este realizată cu o instrucţiune repetitivă cu test final (do-while). Acest ciclu este controlat de variabila "semafor" (flag) şi evidenţiază finalizarea ordonării ciclice. Secvenţa repetitivă interioară utilizează o secvenţă repetitivă cu contorizare şi are rolul de a verifica îndeplinirea criteriului de ordonare pentru două elemente adiacente ale vectorului (în cazul de faţă x i < x i+1 ). La fiecare reluare a ciclului exterior,după parcurgerea completă a unui ciclu interior, se reiniţializează variabila flag cu 0. 21

22 22

23 Obs. - variabila aux este necesară pentru interschimbarea poziţiei elementelor; - contorul ciclului intern nu poate depăşi valoarea (n-2). În caz contrar se va prelua un element din afara vectorului,adică dintr-o locaţie a MO care nu aparţine vectorului x.în acest mod sunt introduse în calcul valori întâmplătoare,ceea ce determină afişarea unor rezultate eronate. Această eroare nu este semnalizată de către SC. Metoda II a) Descrierea metodei : Se află minimul dintre elementele vectorului şi se duce pe prima poziţie.în continuare se află minimul dintre cele n-1 elemente rămase şi se duce pe a doua poziţie ş.a.m.d. b) Reprezentarea algoritmului: Obs. program sortare; citeşte n afişează n pentru i=0,n-1 execută citeşte x[i]; pentru i=0, n-2 execută pentru j=i+1,n-1 execută dacă x[i]>x[j] atunci aux=x[i] x[i]=x[j] x[j] =aux sf. dacă sf. program - Dacă i ar varia până la n, atunci j=i+1 ar determina o depăşire de domeniu. - În cazul în care se doreşte ordonarea descrescătore, este de ajuns să schimbăm semnul mai mare în mai mic în instrucţiunea de decizie. 23

24 Operaţii asupra mulţimilor de numere. Reamintim că o mulţime de numere are proprietatea că elementele sale sunt unice. Ex. 10 Se dă un vector de n numere. Se cere să se determine mulţimea numerelor care se pot obţine din acestea. a) Date de intrare n-numărul de elemente a[]- vectorul în care se află cele n elemente b) Date de ieşire b[] mulţimea de elemente,care se determină parcurgând algoritmul de calcul. c) Reprezentarea algoritmului program mulţime citeşte n pentru i=0,n-1 execută Citirea datelor de intrare citeşte a[i] //ecou k=0; - k va reţine câte numere sunt în mulţime b[k]=a[1] pentru i=0,n-1 execută flag=0 - reţine dacă un număr a fost ales deja(flag=1) pentru j=0,k execută dacă a[i]= b[j] atunci flag=1 sf. dacă dacă flag=0 atunci k=k+1 b[k]=a[i] sf. dacă pentru i=0,k execută afişează b[i] sf. program Dacă flag=0 înseamnă că a[i] nu este încă în mulţimea b Se va introduce acum. Afişarea datelor de ieşire(mulţimea b) 24

25 Ex. 11 Se dau două mulţimi de numere. Să se determine intersecţia acestora. a) Date de intrare n, m numărul de elemente al celor două mulţimi a[], b[] cele două mulţimi b) Date de ieşire c[] mulţimea rezultat: a intersectat cu b c) Reprezentarea algoritmului Obs. Se presupune că cele două mulţimi sunt corect introduse (adică au elemente unice) program intersecţie citeşte n pentru i=0,n-1 execută citeşte a[i] citeşte m pentru i=0,m-1 execută citeşte b[i] //ecou k=1 pentru i=0,n-1 execută pentru j=0,m-1 execută dacă a[i]= b[j] atunci c[k]=a[i] k=k+1 sf. dacă pentru i=0,k-1 execută afişează c[i] sf. program Citirea datelor de intrare Observăm că nu contează numele variabile contor Afişarea datelor de ieşire: vectorul cu mulţimea elementelor comune lui a şi b Obs. În unele exemple, pentru economie de spaţiu, nu se va include secvenţa de afişare a datelor iniţiale ( ecoul ). 25

26 1.2. Prelucrarea tablourilor bidimensionali (matrice) Operaţii simple cu matrice Ex. 12 Să se întocmească algoritmul de adunare a două matrice având n linii şi m coloane. a) Date de intrare: - dimensiunile matricelor, - matricele a şi b. b) Date de ieşire: - matricea c c) Algoritm de calcul: Este necesar ca algoritmul să includă două secvenţe ciclice suprapuse pentru:citirea datelor iniţiale,efectuarea adunării celor două matrice,afişarea matricei rezultat(c). program adunare citeste n,m pentru i=0,n-1 executa pentru j=0,m-1 executa citeste a[i,j] // ecoul pentru matricea a * pentru i=0,n-1 executa pentru j=0,m-1 executa citeste b[i,j] // ecoul pentru matricea b * pentru i=0,n-1 executa pentru j=0,m-1 executa c[i,j]=a[i,j]+b[i,j] pentru i=0,n-1 executa pentru j=0,m-1 executa afiseaza c[i,j] sf. program Obs: - *) să se completeze algoritmul cu secvenţa necesară afişării matricelor a respective b. 26

27 - în sintaxa limbajul C/C++ elementele unei matrice se scriu a[i][j]; - algoritmul nu este aplicabil dacă operanzii nu au aceleaşi dimensiuni. De regulă,pentru a se evita erorile de calcul,în algoritm se include şi o secvenţă de instrucţiuni prin care se verifică aceasta(un bloc de decizie sau repetitiv cu test iniţial).să se completeze algoritmul cu o astfel de secvenţă Înmulţirea a două matrice Ex. 13 Să se întocmească algoritmul de înmulţire a două matrice: c(n,p) = a(n,m) * b(m,p) Obs. Dimensiunile operanzilor sau ales astfel încât operaţia să fie posibilă din punct de vedere algebric. a) Date de intrare: - dimensiunile matricelor n, m, p ; - matricele a, b b) Date de ieşire: - matricea c c) Algoritm de calcul: Pentru a putea ca două matrice să poată fi înmulţită, trebuie să ca numărul de coloane din prima matrice să fie egală cu numărul de linii din a doua matrice. program înmulţire citeşte m,n,p pentru i=0,n-1 execută pentru j=0,m-1 execută citeşte a[i,j] Matricea a //ecou citeşte p pentru i=0,m-1 execută pentru j=0,p-1 execută citeşte b[i,j] Matricea b //ecou pentru i=0,n-1 execută pentru j=0,p-1 execută s = 0 Iniţial matricea rezultat este 0 pentru k=0,n-1 execută s= s+a[i,k]*b[k,j] c[i][j] = s 27

28 28

29 pentru i=0,n-1 execută pentru j=0,p-1 execută Afişarea datelor de ieşire afişează c[i][j] sf. program Observaţii La înmulţire se procedează astfel: o Câte instrucţiuni repetitive sunt necesare pentru o matrice? 2. Deci cum înmulţim două matrice vom avea nevoie de 2*2=4 instrucţiuni pentru. o Dar, ştim că numărul de linii din matricea b este egal cu numărul de coloane din matricea a, deci pentru acestea putem folosi o singură instrucţiune pentru în loc de două. Deci vom folosi 3 instrucţiuni repetitive cu contorizare. De ce a[i,k] sau b[k,j]? Ce dimensiuni au matricele a şi b? Ce variabile contor merg de la 1 la dimensiunea respectivă? De ce la a[i,k]*b[k,j]mai adunăm încă un c[i,j]? Cum se face înmulţirea a două matrice? Elementul c[1,1]=a[1,1]*b[1,1]+a[1,2]*b[2,1]+.. se observă ca după fiecare înmulţire se face câte o adunare. Deci trebuie să reţinem undeva rezultatele intermediare, şi anume chiar în matricea c Transpusa unei matrice Ex. 14 Să se determine transpusa unei matrice. a) Date de intrare: - dimensiunea matricei, - matricea a b) Date de ieşire: - matricea b=a t c) Algoritm de calcul: Fie a[m,n] Matricea finală va avea dimensiunile b[n,m]. Reamintim că transpusa unei matrice înseamnă schimbarea liniilor cu, coloanele. 29

30 program transpusa citeşte m,n pentru i=0,m-1 execută pentru j=0,n-1 execută citeşte a[i,j] //ecou pentru i=0,m-1 execută pentru j=0,n-1 execută b[j,i]= a[i,j] pentru i=0,n-1 execută pentru j=0,m-1 execută afişează b[i,j] sf. program Matricea a Afişarea datelor de ieşire d) Tabel de vetificare instrucţiuni Pas 0 Pas 1 Pas 2 Pas 3 Pas 4 Pas 5 Pas 6 citeşte m,n m=2 n=2 i=0 i=0 i<m? 0<2? 1<2 2<2 Nu Da Da Da NU j=0 j=0 j=0 j<n? 0<2? 1<2? 2<2? 0<2? 1<2? 2<2? Nu Da Da Da Nu Da Da NU citeste a[i,j] a[0,0]=-2 a[0,1]=7 a[1,0]=3 a[1,1]=8 J=j+1 j=1 j=2 j=1 j=2 I=i+1 i=1 i=2 i=0 i=0 instrucţiuni (continuare) Pas 7 Pas 8 Pas 9 Pas 10 Pas 11 Pas 12 i<m? 0<2 1<2 2<2 Nu Da Da Da NU j=0 j=0 j=0 j<n? 0<2 1<2? 2<2? 0<2? 1<2? 2<2? Nu Da Da Da Nu Da Da NU b[j,i]= a[i,j] b[0,0]=-2 b[1,0]=7 b[0,1]=3 b[1,1]=8 J=j+1 j=1 j=2 j=1 j=2 I=i+1 i=1 i=2 //afiseaza b[i][j] Pas 13 30

31 OBS. Afişarea matricei b ramâne ca temă! Matricea initiala (a) va arata astfel: Matricea finală (b) va arăta astfel: Metode numerice Metodele numerice se folosesc atunci când nu există posibilitatea definirii unor expresii prin care s[ fie posibil calculul exact al valorilor care se determină. În astfel de cazuri se folosesc relaţii de calcul recurente,care permit determinarea iterativă a unor valori apriximative. Obs. - din punct de vedere tehnic principala dificultate a acestui tip de calcul este alegerea convenabilă,de către utilizator, a nivelului de eroare ( max ) pentru care se poate accepta că valoarea obţinută prin calcul este tehnic corectă. O valoare max = 1 % se consideră suficientă; - pentru a se evita parcurgerea infinită a secvenţei repetitive algortmul se completează cu un bloc de verificare a numărului maxim de iteraţii efectuate. Pentru cele mai multe exemple acest nr_max = 100.Aceste situaţii sunt semnalizate prin mesajul soluţie divergentă. Ex. 15 Să se alcătuiască algoritmul pentru calculul valorii lui e x. a) Date de intrare: x, eps_max, nr_max b) Date de ieşire: s c) Model matematic: o Determinarea relaţiei de recurenţă: i x Ti = i! Ti Deci: T + 1 i T i+ 1 x = (i + 1) i+ 1 x = (i + 1)! deci x Ti + 1 = Ti, iar T 0 = 1; (i + 1) o Calculul sumei: S = S + T i+1 o Stabilirea valorilor iniţiale: i = 0, S = 1, T i = T 0 =1 o Stabilirea condiţiei de convergenţă: 31

32 Ti < εmax S o ε = 1%, numarul maxim de iteratii 20 max = d) Reprezentarea algoritmului: program calcul valoare citeşte x, eps_max, nr_max; //ecou s=1; t i =1; i=0; execută x tc = ti i + 1 s = s + t eps = c tc s 100 i = i + 1 dacă (i > nr_max) atunci afişează "Soluţie divergentă" STOP sfârşit dacă t i = t c cât timp (eps > eps_max) afişează s sfârşit program 32

33 33

34 e) Tabel de verificare Operaţii Pas 0 Pas 1 Pas 2 citeşte x 3 citeşte eps_max 50 citeşte nr_max 9 S=0 0 T i =1 1 i=0 0 executa struct. repetit. x tc = ti i + 1 s = s + t tc eps = 100 s i = i + 1 dacă (i > nr_max) da afişează "Soluţie divergentă" STOP Cat timp eps > eps_max c 3 t c = 1 1 s = 3 3 eps = i = 1 1>2 NU 3 t c = 3 2 s = eps = i = >2 NU 3 t c = s = = 12 eps = i = >9 NU t i = t c t i =3 t i =4.5 t i = >50 60>50? 37.5>50 DA DA NU Afis S 12 Pas 0 Stop Ex. 16 Să se alcătuiască algoritmul pentru calculul valorii lui n x c a) Date de intrare: n b) Date de ieşire: x c c)model matematic: d) x i = 1 2 x i 1 + n x i 1 34

35 unde x 0 =1; i=1,n 35

36 e) Reprezentarea algoritmului: program calcul citeşte n citeste eps_max //ecou x i =1; dacă (n <0) atunci afişează "Radical din nr. negativ" STOP sfârşit dacă executa 1 n x c = xi + 2 xi eps= xc*xc-n x i =x c cat timp(eps>eps_max) afişează x c sfârşit program f) Tabel de verificare: Operaţii Pas 0 Pas 1 citeşte n 2 citeşte eps_max 0.1 x i =1 1 n<0 2<0 nu da nu Afis NR. NRGATIV x c 1 = x 2 i n + xi xc 1 2 = x c 1 = 1, ,5 eps= x c *x c -n eps= 1,5-2 Eps=0 x i =x c x i =1,5 x i =1,41 Eps>eps_max 0,25>0,1 DA 0,02>0,1 NU Afis x c 1,41 Pas

37 Ex 17. Determinarea radacinii reale a unei ecuatii algebrice de ordin superior sau transcendente care se găseşte pe un interval cunoscut. Fie ecuatia : f(x) = x 3 +5x 2-30=0. Sa se determine radacina reala aflata pe intervalul [ 2, 3] { f(2) * f(3) < 0 } Se va folosi metoda injumatatirii. a) Date de intrare: a, b, eps_max, b) Date de iesire: x sol, care este considerată corectă dacă f(x sol ) <eps_max c) Modelul matematic: Presupunind ca ecuatia f(x) = 0 are o radacina in intervalul [a,b], atunci, conform unei proprietati a lui Darboux f(a)*f(b)<0. In aceste coditii, pentru a gasi punctul pentru care f(x sol )=0, sau un punct foarte aproape de acesta ( f(x sol ) <eps) parcurgem urmatorii pasi: a. x=(a+b)/2 b. f(x) <eps_max? daca NU : testam daca f(a)*f(x)<0. Daca da b=x; Daca Nu a =x; c. reluam punctul a. d) Algoritmul: Program calcul_ec2 citeste a,b,eps; fa=a*a*a+5*a*a-1; fb=b*b*b+5*b*b-1; executa x=(a+b)/2; f=x*x*x+5*x*x-1; daca (fa*f<0) atunci b=x; altfel a=x; fa=a*a*a+5*a*a-1; sf. daca cat timp ( f >eps_max); xsol=x; afisaza xsol; sfarsit program Tema 1. Sa se alcatuiasca schema logica la problemele 12, Sa se alcatuiasca tabelul de verificare la problemele 12,13 37

38 Partea a III-a Complemente asupra algoritmilor Tehnici de programare Prin tehnici de programare se înţeleg procedee speciale de rezolvare cu ajutorul programelor de calcul a unor probleme complexe. În continuare vom prezenta câteva metode de rezolvare a unor probleme folosind următoarele tipuri de algoritmi: - greedy - divide et impera - backtracking Din punct de vedere al alcătuirii programului de calcul aceste metode se bazează pe două concepte. - noţiunea de funcţie - apelul prin recursivitate 1. Funcţia utilizator Într-un program de calcul o funcţie reprezintă un grup de instrucţiuni care constituie o entitate independentă. Utilizarea unei funcţii(funcţie apelată) nu se poate face decât prin intermediul unei funcţii apelante.aceasta transferă către funcţia apelată un set de date de intrare. După încheierea executării instrucţiunilor funcţiei apelate, valorile calculate(rezultatele) sunt transferate în sens invers,de la funcţia apelată către funcţia apelantă. Transferul datelor de intrare se face automat în momentul apelului funcţiilor. Comunicarea rezultatelor către programul apelant este determinată de executarea instrucţiunii return. Există două feluri de funcţii: - cu parametri; - fără parametri. În programul apelant se precizează numai numele funcţiei urmat de parametri, dacă este cazul. Structura sintactică a unei funcţii este de forma: funcţie numefuncţie(parametri de intrare; parametri de ieşire) // corpul funcţiei returnează rezultat // dacă este cazul sf. funcţie. La funcţiile fără parametri este necesar ca variabilele folosite să fie cunoscute oriunde în program. Acestea se numesc variabile globale. La funcţiile cu parametri există două tipuri de apeluri a funcţiei: - prin valoare; - prin referinţă. 38

39 Apelul prin valoare se face prin scrierea numelui funcţiei urmat de numele variabilelor ale căror valori se comunică în acest mod funcţiei apelate. Apelul prin referinţă se face prin scrierea numelui funcţiei urmat de lista adreselor variabilelor ale căror valori sunt calculate în cuprinsul funcţiei.acestea sunt variabilele prin intermediul cărora se transferă valorile numerice de la funcţia apelată către funcţia apelantă. Ex. În limbajele de programare pentru calculul radicalului există funcţia predefinită sqrt(x). Deci f(x)=sqrt(x).în figura 7 este prezentat modul de apelare a funcţiei sqrt(x). x=5 a=sqrt(x) sqrt(x) return y funcţie apelantă funcţie apelată Fig. 7 În Lucrarea de laborator 9 se vor prezenta şi exemplifica toate elementele necesare folosirii funcţiilor în C/C Funcţii recursive Recursivitatea este proprietatea unei funcţii de a se autoapela. Aceasta înseamnă că instrucţiunile unei funcţii,deci din interiorul acesteia se face apel chiar la aceeaşi funcţie. Autoapelarea este posibilă datorită modului în care se organizează datele în memoria operativă. Este obligatoriu ca în corpul funcţiei apelate să se includă şi o condiţie de oprire a apelurilor repetate. În caz contrar execuţia programului devine necontrolabilă,în cele mai multe cazuri aceasta determinând în final abandonarea execuţiei programului. După atingerea condiţiei de oprire operaţiile se vor parcurge în sens invers de la ultimul apel către programul apelant. În fig. 8 se exemplifică modul de realizare a apelului recursiv. S-a presupus că după trei apeluri condiţia de oprire este îndeplinită şi deci începe parcurgerea drumului în sens invers,către programul apelant. primul apel al II-le apel al III-lea apel return funcţia apelantă funcţia apelată funcţia apelată funcţia apelată Fig. 8 39

40 Ex. 18. Să se calculeze n!. Există mai mulţi algoritmi de calcul. Cel clasic este prezentat mai jos.... p=1 pentru i=1,n execută p=p*i... Dar mai există şi alte metode. Una dintre ele este aceea recursivă. a) Date de intrare n-numărul pt. care calculăm n! b) Date de ieşire rezultatul calculului, valoarea lui n! c) Modelul matematic f=1*2*3* *n d) Reprezentarea algoritmului funcţie factorial( n ) dacă n=0 atunci returnează 1 altfel returneză n*factorial(n-1) // autoapelul funcţiei sf. funcţie e) Tabel de verificare Vom considera ca date de intrare n=3 Operaţie Pas 0 Pas 1 Pas2 Pas 3 n n=3 factorial(n) factorial(3) factorial(2) factorial(1) factorial(0) n=0? 3=0? 2=0? 1=0? 0=0? DA NU NU NU NU DA 1 1 n*factorial(n-1) 3*factorial(2) 2*factorial(1) 1*factorial(0) 3 * 2 = 6 2 * 1 = 2 1 * 1 = 1 rezultat final 6 40

41 3. Metoda greedy (lacom) Această metodă se aplică problemelor ce presupun o organizare crescătoare (sau descrescătoare) a datelor după anumite criterii pentru ca, mai apoi,să se aleagă dintre ele anumite elemente (cele mai mici/mari) care sunt soluţii ale problemei. Se aplică în general în probleme de optimizare. Ex. 13 Se doreşte încarcarea cât mai mult posibil a unui sac care suportă o greutate maxima g_max. În magazie există n obiecte de greutăţi :g 1,g 2,...g n. Se cere să se determine care sunt obiectele ce trebuiesc luate astfel încât să se încarce în sac cât mai multe obiecte. a) Date de intrare: g_max, n g[i], i=1,n Obs. Se presupune că suma greutăţilor obiectelor este mai mare decât g_max. b) Date de ieşire: greutăţile obiectelor ce pot fi luate c) Modul de rezolvare: Matematic se poate demonstra că se asociază numărul maxim de obiecte prin considerarea corpurilor în ordinea crescătoare a greutăţii lor. Deci: - pentru a lua cât mai multe obiecte vom ordona crescător vectorul g. - vom pune în sac atâtea obiecte câte suportă sacul. d) Reprezentarea algoritmului: Obs. NU vom scrie întreg algoritmul. Partea de ordonare sau de citire a unui vector se consideră a fi cunoscute. program hoţul citeşte g_max,n citeşte vectorul g // a se vedea problema 5 ordonarea vectorului g // a se vedea problema 6 s=0 // s va reţine greutatea deja pusă în sac. i=0; cît timp (s<=g_max) execută //introducem în sac s=s+g[i] i=i+1 sf. cît timp dacă s>g_max atunci // Verificăm dacă ultimul obiect depăşeşte g_max i=i-1 //scoatem din sac ultimul obiect introdus s=s-g[i] sf. dacă pentru j=1,i execută //afişarea rezultatelor afişează g[j] sf. program 41

42 4. Metoda divide et impera O altă tehnică este cea a metodei divide et impera. Problemele care se pot rezolva cu această metodă sunt diverse, dar presupun un mod de tratare aparte: pentru a aplica metoda divide et impera este necesar ca datele să fie ordonate după diverse criterii (în funcţie de cerinţele problemei). Metoda presupune 3 etape: a) împărţirea problemelor în subprobleme, b) rezolvarea fiecărei subprobleme şi aflarea soluţiilor parţiale, c) reunirea soluţiilor parţiale, obţinându-se soluţia finală. Această metodă poate fi implementată numai printr-un algoritm recursiv. Datorită faptului că recursivitatea salvează datele parţiale în stivă de date şi la sfârşit le extrage în sens invers, metoda nu trebuie descrisă explicit de programator, ea făcându-se automat. Ex. 14 Se dă un vector ordonat. Să se determine dacă un număr x se găseşte între elementele unui vector. Obs. Este posibilă verificarea pas cu pas adică element cu element. Dar ce se întâmplă dacă vectorul este foarte mare şi elementul x se află pe ultima poziţie? Se vor face un număr foarte mare de teste şi se va pierde timp. Prin metoda divide et impera căutarea se realizează mult mai rapid. a) Date de intrare: n, x g[i], i=1,n b) Date de ieşire: poziţia în care se află x, sau mesaj că nu este în vector c) Modul de funcţionare: - vom împărţi vectorul în două şi vom verifica dacă x este în stânga sau în dreapta. Apoi procedeul se aplică recursiv. d) Reprezentarea algoritmului: Obs. NU vom scrie întreg algoritmul. Partea de citire a vectorului se consideră a fi cunoscute. program divide_et_impera funcţie recursiv (st,dr) mij=(st+dr)/2 dacă v[mij]=x atunci returnează mij //mij este poziţia lui x în vector altfel dacă st<dr atunci dacă v[mij]>x atunci dr=mij recursiv(st,dr) altfel st=mij recursiv(st,dr) 42

43 sf. dacă altfel afişează x nu este vector sf. dacă sf. dacă sf. funcţie citeşte n, x citeşte vectorul v // a se vedea problema 5 recursiv(1,n) sf. program 5. Metoda backtracking Metoda de programare backtracking are avantajul că, la orice problemă, obţine toate soluţiile. Totuşi ea rămâne o metoda destul de dificilă. Se aplică în general în probleme de căutare.algoritmul care foloseşte această metodă poate fi rezolvat atât prin varianta iterativă cât şi prin cea recursivă. În general problemele ce se rezolvă prin această metodă necesită o perioadă de timp mai mare pentru compilare şi execuţie în limbajele de programare, mai ales pentru probleme complexe(orarul unei clase, etc.), aici fiind importantă şi structura hardware a calculatorului (un calculator cât mai puternic). Ex. 12 Problema celor 8 dame Să se determine cum pot fi aşezate 8 dame pe o tablă de şah astfel încât acestea să nu se poată elimina reciproc. Problema poate fi extinsă la n dame pe o tablă de dimensiune (n * n). Modul de funcţionare: Tabla de şah se va reţine într-un vector şi nu într-o matrice. De ce? Pentru că pe o coloană nu putem avea 2 dame. Atunci indicele i al vectorului poate fi coloana pe care se află regina, iar valoarea x[i] linia. Condiţiile ce trebuie mai trebuie îndeplinite sunt: 1. să nu fie 2 dame pe aceeaşi linie: i,j, x[i] x[j] 2. daca se considera 2 elemente pe aceeaşi diagonala (i,x[i]),(k,x[k]) i- x[i]=k-x[k] sau i+ x[i]=k+x[k] x[i]- x[k]=i-k x[i]-x[k]=k-i adică se poate folosi condiţia j-l k-i. Construim funcţia pune(k) care returneaza 0 daca dama cu numărul de ordine k nu poate fi plasata pe linia data de x(k). Operaţiile care se fac sunt: - se testează daca x(k)!= x(i) i=1,2,...k-1 - se testează daca nu exista alta dama in aceeaşi diagonala. 43

44 funcţie pune(k) i=1; cât timp (i<k) execută dacă (x(i)=x(k) sau x(i)-x(k) = i-k ) returnează 0 sf. dacă i=i+1 sf. cât timp returnează 1 sf. funcţie Funcţia dama(n) este metoda backtracking ce rezolvă problema funcţie dama(n) // x(1...n)- vectorul de soluţii x(1)=0; k=1; cât timp (k>0) execută x(k)=x(k)+1; cît timp x(k)<=n şi pune(k)=0 x(k)=x(k)+1; sf. cât timp dacă( x(k)<=n ) // place(k)=1- o poz. gasită dacă (k=n) // sol. completa afişează x //ATENŢIE x este vector altfel k=k+1; x(k)=0 sf. dacă altfel //nu este o sol. bună k=k-1; sf. dacă sf. cât timp sf. funcţie 6. Matrice rare Atunci când avem o matrice de dimensiuni mari (de ex. 100 * 100), care are foarte multe elemente nule (peste 80%).Cum se poate memora o astfel de matrice? O modalitate este folosirea unui tablou cu trei linii şi un număr suficient de mare de coloane. Pe prima linie se reţine valoarea nenegativă, pe a doua numărul liniei pe care se afla acesta, pe a treia linie coloana. Operaţii cu matrice rare Ex.13 Citirea matricelor rare Vom nota cu x[3][nr] matricea în care vom reţine în mod economic matricea iniţială(x va fi o matrice fără zerouri,iar nr numărul elementelor nenule din matricea iniţială). 44

45 citeşte n,m //citim dimens. matricei iniţiale k=0 //poz în matricea a 2-a a unui element din matricea iniţială pentru i=1,n execută pentru j=1,n execută citeşte elem //se citeşte elementul de pe poziţia i,j dacă elem 0 atunci x[0][k]=elem; x[1][k]=i; x[2][k]=j; k=k+1; sf. dacă Numărul de elemente ce vor fi scrise în matricea x este k, de pe poz 0 până la poz k-1. Ex. 14 Adunarea matricelor rare Fie x şi y cele două matrice de dimensiuni m,n, ce pot fi adunate. Se pune întrebarea cum va arăta matricea z=x+y. Problema care apare este că nu toate elementele din cele două matrice sunt pe aceleaşi poziţii. Nu vom prezenta la această problemă pseudocodul, ci doar paşii importanţi pt. rezolvarea ei. 1. se citesc elementele nenule din cele două matrice x şi y (a se vedea punctul ex. 13) 2. k=i=j=0 3. cât timp i<=m şi j<n execută 4. dacă x[1][i]=y[1][j] atunci 5. dacă x[2][i]<y[2][j] atunci 6. z[0][k]=x[0][i] 7. i=i+1;k=k+1 8. altfel 9. z[0][k]=y[0][j] 10. j=j+1;k=k sf. dacă 12. dacă x[2][i]=y[2][j] atunci 13. z[0][k]=x[0][i]+y[0][j] 14. i=i+1;j=j+1;k=k sf. dacă Temă Se cere să se completeze pseudocodul de mai sus. Dacă x[1][i]=y[1][j] înseamnă că elementele din y sunt pe linii superioare faţă de cele din x. 45

46 Întrebări de autocontrol 1 Ce este un algoritm? 2 Care este diferenţa dintre un algoritm repetitiv cu test iniţial şi unul cu test final? 3 Cum putem face ca un algoritm cu test final să funcţioneze ca unul cu test iniţial? 4 Cum putem face ca un algoritm cu test iniţial să funcţioneze ca unul cu test final? 5 Cum putem prelucra o matrice ca un vector? 46

47 Probleme propuse Partea I Structura secventiala 1. Se consideră un mobil aflat în mişcare rectilinie uniformă. Se cere să se determine distanţa parcursă de acesta atunci când se deplasează cu viteza v[m/s], un timp t[h]. 2. Un vehicul merge cu viteza V km/h, parcurgând distanţa D(m). Să se determine timpul T (sec) în care se parcurge distanţa dată. 3. Se considera mişcarea rectilinie uniform accelerata cu viteza iniţiala a unui mobil. Daca se cunosc v 0, a, d, se cere să se determine t şi v 4. La o casierie trebuie plătita o sumă de bani B, folosind cât mai puţine bancnote şi monezi. Dacă se cunosc bancnote de , 5.000,1.000, 100, 1 leu, să se determine cum se plăteşte această suma. 5. Fie z 1,z 2,z numere complexe. Să se calculeze z=z 1 +z 2, z=z 1 *z 2, z=z 1 /z 2 Structura de decizie 6. Se dau 5 numere. Să se determine maximul dintre acestea fără a folosi vectori. 7. Să se rezolve complet ecuaţia de gradul al II lea. 8. Pentru algoritmii descrişi în pseudocod ex. 26, 55, 56, 57, 61 (din culegerea de teste pentru admitere), alcătuiţi organigrama corespunzătoare fiecăruia. ediţia Structuri repetitive 9. Să se calculeze integrala definită pe intervalul [a,b] prin metoda trapezelor. 10. Să se calculeze cmmdc şi cmmmc a două numere 11. Să se calculeze : S 1 = n S 2 =1+2(1+2)+3(1+2+3)+..+n( n) S 3 =1!+2!+ +n! m S 4 = i= 1 2π S 5 = i= 0 m ( i + i S 6 = 2 ) cos( i ) n i= 1 j= i m n S 7 = i= 1 j= i ( j + i) ( i / j) Partea a II-a Vectori 1. Se dă un vector de n elemente. Să se determine maximul(minimul). 2. Fie funcţia f(x)=x Se dau valorile x 1,x 2,..x n. Să se calculeze f(x 1 ), f(x 2 ), f(x n ). 3*. Se dau 2 mulţimi. Să se determine reuniunea acestora. 4. Se dau 2 mulţimi A şi B. Să se determine A\B. 47

Metode iterative pentru probleme neliniare - contractii

Metode iterative pentru probleme neliniare - contractii Metode iterative pentru probleme neliniare - contractii Problemele neliniare sunt in general rezolvate prin metode iterative si analiza convergentei acestor metode este o problema importanta. 1 Contractii

Διαβάστε περισσότερα

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a. Definiţie Spunem că: i) funcţia f are derivată parţială în punctul a în raport cu variabila i dacă funcţia de o variabilă ( ) are derivată în punctul a în sens obişnuit (ca funcţie reală de o variabilă

Διαβάστε περισσότερα

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie p, q N. Fie funcţia f : D R p R q. Avem următoarele

Διαβάστε περισσότερα

Metode de interpolare bazate pe diferenţe divizate

Metode de interpolare bazate pe diferenţe divizate Metode de interpolare bazate pe diferenţe divizate Radu Trîmbiţaş 4 octombrie 2005 1 Forma Newton a polinomului de interpolare Lagrange Algoritmul nostru se bazează pe forma Newton a polinomului de interpolare

Διαβάστε περισσότερα

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică Gh. Asachi Curs 14 Funcţii implicite Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie F : D R 2 R o funcţie de două variabile şi fie ecuaţia F (x, y) = 0. (1) Problemă În ce condiţii ecuaţia

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1 Functii definitie proprietati grafic functii elementare A. Definitii proprietatile functiilor. Fiind date doua multimi X si Y spunem ca am definit o functie (aplicatie) pe X cu valori in Y daca fiecarui

Διαβάστε περισσότερα

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu INTRODUCERE Laborator 1: ÎN ALGORITMI Întocmit de: Claudia Pârloagă Îndrumător: Asist. Drd. Gabriel Danciu I. NOŢIUNI TEORETICE A. Sortarea prin selecţie Date de intrare: un şir A, de date Date de ieşire:

Διαβάστε περισσότερα

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE. 5 Eerciţii reolvate 5 UNCŢII IMPLICITE EXTREME CONDIŢIONATE Eerciţiul 5 Să se determine şi dacă () este o funcţie definită implicit de ecuaţia ( + ) ( + ) + Soluţie ie ( ) ( + ) ( + ) + ( )R Evident este

Διαβάστε περισσότερα

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor. Fiind date doua multimi si spunem ca am definit o functie (aplicatie) pe cu valori in daca fiecarui element

Διαβάστε περισσότερα

Sisteme diferenţiale liniare de ordinul 1

Sisteme diferenţiale liniare de ordinul 1 1 Metoda eliminării 2 Cazul valorilor proprii reale Cazul valorilor proprii nereale 3 Catedra de Matematică 2011 Forma generală a unui sistem liniar Considerăm sistemul y 1 (x) = a 11y 1 (x) + a 12 y 2

Διαβάστε περισσότερα

Curs 4 Serii de numere reale

Curs 4 Serii de numere reale Curs 4 Serii de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Criteriul rădăcinii sau Criteriul lui Cauchy Teoremă (Criteriul rădăcinii) Fie x n o serie cu termeni

Διαβάστε περισσότερα

Curs 1 Şiruri de numere reale

Curs 1 Şiruri de numere reale Bibliografie G. Chiorescu, Analiză matematică. Teorie şi probleme. Calcul diferenţial, Editura PIM, Iaşi, 2006. R. Luca-Tudorache, Analiză matematică, Editura Tehnopress, Iaşi, 2005. M. Nicolescu, N. Roşculeţ,

Διαβάστε περισσότερα

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM Seminar S ANALA ÎN CUENT CONTNUU A SCHEMELO ELECTONCE S. ntroducere Pentru a analiza în curent continuu o schemă electronică,

Διαβάστε περισσότερα

Integrala nedefinită (primitive)

Integrala nedefinită (primitive) nedefinita nedefinită (primitive) nedefinita 2 nedefinita februarie 20 nedefinita.tabelul primitivelor Definiţia Fie f : J R, J R un interval. Funcţia F : J R se numeşte primitivă sau antiderivată a funcţiei

Διαβάστε περισσότερα

Esalonul Redus pe Linii (ERL). Subspatii.

Esalonul Redus pe Linii (ERL). Subspatii. Seminarul 1 Esalonul Redus pe Linii (ERL). Subspatii. 1.1 Breviar teoretic 1.1.1 Esalonul Redus pe Linii (ERL) Definitia 1. O matrice A L R mxn este in forma de Esalon Redus pe Linii (ERL), daca indeplineste

Διαβάστε περισσότερα

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare 1 Planul în spaţiu Ecuaţia generală Plane paralele Unghi diedru 2 Ecuaţia generală Plane paralele Unghi diedru Fie reperul R(O, i, j, k ) în spaţiu. Numim normala a unui plan, un vector perpendicular pe

Διαβάστε περισσότερα

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0 Facultatea de Hidrotehnică, Geodezie şi Ingineria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucian MATICIUC SEMINAR 4 Funcţii de mai multe variabile continuare). Să se arate că funcţia z,

Διαβάστε περισσότερα

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Metode de Optimizare Curs V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Propoziţie 7. (Fritz-John). Fie X o submulţime deschisă a lui R n, f:x R o funcţie de clasă C şi ϕ = (ϕ,ϕ

Διαβάστε περισσότερα

Subiecte Clasa a VIII-a

Subiecte Clasa a VIII-a Subiecte lasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul

Διαβάστε περισσότερα

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE ABSTRACT. Materialul prezintă o modalitate de a afla distanţa dintre două drepte necoplanare folosind volumul tetraedrului. Lecţia se adresează clasei a VIII-a Data:

Διαβάστε περισσότερα

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea Serii Laurent Definitie. Se numeste serie Laurent o serie de forma Seria n= (z z 0 ) n regulata (tayloriana) = (z z n= 0 ) + n se numeste partea principala iar seria se numeste partea Sa presupunem ca,

Διαβάστε περισσότερα

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă. III. Serii absolut convergente. Serii semiconvergente. Definiţie. O serie a n se numeşte: i) absolut convergentă dacă seria modulelor a n este convergentă; ii) semiconvergentă dacă este convergentă iar

Διαβάστε περισσότερα

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 SERII NUMERICE Definiţia 3.1. Fie ( ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 şirul definit prin: s n0 = 0, s n0 +1 = 0 + 0 +1, s n0 +2 = 0 + 0 +1 + 0 +2,.......................................

Διαβάστε περισσότερα

Asupra unei inegalităţi date la barajul OBMJ 2006

Asupra unei inegalităţi date la barajul OBMJ 2006 Asupra unei inegalităţi date la barajul OBMJ 006 Mircea Lascu şi Cezar Lupu La cel de-al cincilea baraj de Juniori din data de 0 mai 006 a fost dată următoarea inegalitate: Fie x, y, z trei numere reale

Διαβάστε περισσότερα

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Cuprins Scheme de algoritmi Divide et impera Exemplificare

Διαβάστε περισσότερα

Criptosisteme cu cheie publică III

Criptosisteme cu cheie publică III Criptosisteme cu cheie publică III Anul II Aprilie 2017 Problema rucsacului ( knapsack problem ) Considerăm un număr natural V > 0 şi o mulţime finită de numere naturale pozitive {v 0, v 1,..., v k 1 }.

Διαβάστε περισσότερα

Seminar 5 Analiza stabilității sistemelor liniare

Seminar 5 Analiza stabilității sistemelor liniare Seminar 5 Analiza stabilității sistemelor liniare Noțiuni teoretice Criteriul Hurwitz de analiză a stabilității sistemelor liniare În cazul sistemelor liniare, stabilitatea este o condiție de localizare

Διαβάστε περισσότερα

Matrice. Determinanti. Sisteme liniare

Matrice. Determinanti. Sisteme liniare Matrice 1 Matrice Adunarea matricelor Înmulţirea cu scalar. Produsul 2 Proprietăţi ale determinanţilor Rangul unei matrice 3 neomogene omogene Metoda lui Gauss (Metoda eliminării) Notiunea de matrice Matrice

Διαβάστε περισσότερα

5.4. MULTIPLEXOARE A 0 A 1 A 2

5.4. MULTIPLEXOARE A 0 A 1 A 2 5.4. MULTIPLEXOARE Multiplexoarele (MUX) sunt circuite logice combinaţionale cu m intrări şi o singură ieşire, care permit transferul datelor de la una din intrări spre ieşirea unică. Selecţia intrării

Διαβάστε περισσότερα

Subiecte Clasa a VII-a

Subiecte Clasa a VII-a lasa a VII Lumina Math Intrebari Subiecte lasa a VII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate

Διαβάστε περισσότερα

MARCAREA REZISTOARELOR

MARCAREA REZISTOARELOR 1.2. MARCAREA REZISTOARELOR 1.2.1 MARCARE DIRECTĂ PRIN COD ALFANUMERIC. Acest cod este format din una sau mai multe cifre şi o literă. Litera poate fi plasată după grupul de cifre (situaţie în care valoarea

Διαβάστε περισσότερα

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă Noţiunea de spaţiu liniar 1 Noţiunea de spaţiu liniar Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară 2 Mulţime infinită liniar independentă 3 Schimbarea coordonatelor unui vector la o schimbare

Διαβάστε περισσότερα

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale. 5p Determinați primul termen al progresiei geometrice ( b n ) n, știind că b 5 = 48 și b 8 = 84 5p Se consideră funcția f : intersecție a graficului funcției f cu aa O R R, f ( ) = 7+ 6 Determinați distanța

Διαβάστε περισσότερα

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor Facultatea de Matematică Calcul Integral şi Elemente de Analiă Complexă, Semestrul I Lector dr. Lucian MATICIUC Seminariile 9 20 Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reiduurilor.

Διαβάστε περισσότερα

Programarea Calculatoarelor

Programarea Calculatoarelor Programarea Calculatoarelor Modul 1: Rezolvarea algoritmică a problemelor Introducere în programare Algoritm Obiectele unui algoritm Date Constante Variabile Expresii Operaţii specifice unui algoritm şi

Διαβάστε περισσότερα

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005. SUBIECTUL Editia a VI-a 6 februarie 005 CLASA a V-a Fie A = x N 005 x 007 si B = y N y 003 005 3 3 a) Specificati cel mai mic element al multimii A si cel mai mare element al multimii B. b)stabiliti care

Διαβάστε περισσότερα

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă Coordonatori DANA HEUBERGER NICOLAE MUŞUROIA Nicolae Muşuroia Gheorghe Boroica Vasile Pop Dana Heuberger Florin Bojor MATEMATICĂ DE EXCELENŢĂ pentru concursuri, olimpiade şi centre de excelenţă Clasa a

Διαβάστε περισσότερα

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice 1 Conice pe ecuaţii reduse 2 Conice pe ecuaţii reduse Definiţie Numim conica locul geometric al punctelor din plan pentru care raportul distantelor la un punct fix F şi la o dreaptă fixă (D) este o constantă

Διαβάστε περισσότερα

Curs 2 Şiruri de numere reale

Curs 2 Şiruri de numere reale Curs 2 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Convergenţă şi mărginire Teoremă Orice şir convergent este mărginit. Demonstraţie Fie (x n ) n 0 un

Διαβάστε περισσότερα

III. Reprezentarea informaţiei în sistemele de calcul

III. Reprezentarea informaţiei în sistemele de calcul Metode Numerice Curs 3 III. Reprezentarea informaţiei în sistemele de calcul III.1. Reprezentarea internă a numerelor întregi III. 1.1. Reprezentarea internă a numerelor întregi fără semn (pozitive) Reprezentarea

Διαβάστε περισσότερα

Instructiunea while. Forma generala: while (expresie) instructiune;

Instructiunea while. Forma generala: while (expresie) instructiune; Instructiunea while while (expresie) instructiune; Modul de executie: 1) Se evalueaza expresie, daca expresie = 0 (fals) se iese din instructiunea while, altfel (expresie 0, deci adevarat) se trece la

Διαβάστε περισσότερα

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice Teme de implementare in Matlab pentru Laboratorul de Metode Numerice As. Ruxandra Barbulescu Septembrie 2017 Orice nelamurire asupra enunturilor/implementarilor se rezolva in cadrul laboratorului de MN,

Διαβάστε περισσότερα

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite Capitolul 4 Integrale improprii 7-8 În cadrul studiului integrabilităţii iemann a unei funcţii s-au evidenţiat douăcondiţii esenţiale:. funcţia :[ ] este definită peintervalînchis şi mărginit (interval

Διαβάστε περισσότερα

Laborator 6. Integrarea ecuaţiilor diferenţiale

Laborator 6. Integrarea ecuaţiilor diferenţiale Laborator 6 Integrarea ecuaţiilor diferenţiale Responsabili: 1. Surdu Cristina(anacristinasurdu@gmail.com) 2. Ştirbăţ Bogdan(bogdanstirbat@yahoo.com) Obiective În urma parcurgerii acestui laborator elevul

Διαβάστε περισσότερα

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE 5.5. A CIRCUITELOR CU TRANZISTOARE BIPOLARE PROBLEMA 1. În circuitul din figura 5.54 se cunosc valorile: μa a. Valoarea intensității curentului de colector I C. b. Valoarea tensiunii bază-emitor U BE.

Διαβάστε περισσότερα

riptografie şi Securitate

riptografie şi Securitate riptografie şi Securitate - Prelegerea 12 - Scheme de criptare CCA sigure Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Schemă de criptare

Διαβάστε περισσότερα

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, aprilie 7 Proba scrisă la MATEMATICĂ SUBIECTUL I (3 puncte) ) (5 puncte) Fie matricele A = 3 4 9 8

Διαβάστε περισσότερα

Sisteme liniare - metode directe

Sisteme liniare - metode directe Sisteme liniare - metode directe Radu T. Trîmbiţaş 27 martie 2016 1 Eliminare gaussiană Să considerăm sistemul liniar cu n ecuaţii şi n necunoscute Ax = b, (1) unde A K n n, b K n 1 sunt date, iar x K

Διαβάστε περισσότερα

prin egalizarea histogramei

prin egalizarea histogramei Lucrarea 4 Îmbunătăţirea imaginilor prin egalizarea histogramei BREVIAR TEORETIC Tehnicile de îmbunătăţire a imaginilor bazate pe calculul histogramei modifică histograma astfel încât aceasta să aibă o

Διαβάστε περισσότερα

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1) Ecuatii exponentiale Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. Cea mai simpla ecuatie exponentiala este de forma a x = b, () unde a >, a. Afirmatia.

Διαβάστε περισσότερα

Curs Programarea Calculatoarelor si Limbaje de Programare PRELEGEREA 1 ETAPELE REZOLVĂRII UNEI PROBLEME CU AJUTORUL UNUI SISTEM DE CALCUL

Curs Programarea Calculatoarelor si Limbaje de Programare PRELEGEREA 1 ETAPELE REZOLVĂRII UNEI PROBLEME CU AJUTORUL UNUI SISTEM DE CALCUL PRELEGEREA 1 ETAPELE REZOLVĂRII UNEI PROBLEME CU AJUTORUL UNUI SISTEM DE CALCUL 1. Formularea problemei Presupunem că problema care urmează a fi rezolvată cu ajutorul sistemului de calcul se referă la

Διαβάστε περισσότερα

2 Transformări liniare între spaţii finit dimensionale

2 Transformări liniare între spaţii finit dimensionale Transformări 1 Noţiunea de transformare liniară Proprietăţi. Operaţii Nucleul şi imagine Rangul şi defectul unei transformări 2 Matricea unei transformări Relaţia dintre rang şi defect Schimbarea matricei

Διαβάστε περισσότερα

1.3 Baza a unui spaţiu vectorial. Dimensiune

1.3 Baza a unui spaţiu vectorial. Dimensiune .3 Baza a unui spaţiu vectorial. Dimensiune Definiţia.3. Se numeşte bază a spaţiului vectorial V o familie de vectori B care îndeplineşte condiţiile de mai jos: a) B este liniar independentă; b) B este

Διαβάστε περισσότερα

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare.

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare. Metode de sortare Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare. 1. Sortare prin selecţie directă Sortarea prin selecţia minimului

Διαβάστε περισσότερα

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Aplicaţii ale principiului I al termodinamicii la gazul ideal Aplicaţii ale principiului I al termodinamicii la gazul ideal Principiul I al termodinamicii exprimă legea conservării şi energiei dintr-o formă în alta şi se exprimă prin relaţia: ΔUQ-L, unde: ΔU-variaţia

Διαβάστε περισσότερα

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)

Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1) Universitatea din ucureşti.7.4 Facultatea de Matematică şi Informatică oncursul de admitere iulie 4 omeniul de licenţă alculatoare şi Tehnologia Informaţiei lgebră (). Fie x,y astfel încât x+y = şi x +

Διαβάστε περισσότερα

z a + c 0 + c 1 (z a)

z a + c 0 + c 1 (z a) 1 Serii Laurent (continuare) Teorema 1.1 Fie D C un domeniu, a D şi f : D \ {a} C o funcţie olomorfă. Punctul a este pol multiplu de ordin p al lui f dacă şi numai dacă dezvoltarea în serie Laurent a funcţiei

Διαβάστε περισσότερα

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Functii Breviar teoretic 8 ianuarie ianuarie 2011 Functii Breviar teoretic 8 ianuarie 011 15 ianuarie 011 I Fie I, interval si f : I 1) a) functia f este (strict) crescatoare pe I daca x, y I, x< y ( f( x) < f( y)), f( x) f( y) b) functia f este (strict)

Διαβάστε περισσότερα

Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi

Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Iteraţia 2 Reprezentare internă 3 Operaţii

Διαβάστε περισσότερα

Progresii aritmetice si geometrice. Progresia aritmetica.

Progresii aritmetice si geometrice. Progresia aritmetica. Progresii aritmetice si geometrice Progresia aritmetica. Definitia 1. Sirul numeric (a n ) n N se numeste progresie aritmetica, daca exista un numar real d, numit ratia progresia, astfel incat a n+1 a

Διαβάστε περισσότερα

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB 1.7. AMLFCATOARE DE UTERE ÎN CLASA A Ş AB 1.7.1 Amplificatoare în clasa A La amplificatoarele din clasa A, forma de undă a tensiunii de ieşire este aceeaşi ca a tensiunii de intrare, deci întreg semnalul

Διαβάστε περισσότερα

Noţiuni introductive

Noţiuni introductive Metode Numerice Noţiuni introductive Erori. Condiţionare numerică. Stabilitatea algoritmilor. Complexitatea algoritmilor. Metodele numerice reprezintă tehnici prin care problemele matematice sunt reformulate

Διαβάστε περισσότερα

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy Metode Runge-Kutta Radu T. Trîmbiţaş 8 ianuarie 7 Probleme scalare, pas constant Dorim să aproximăm soluţia problemei Cauchy y (t) = f(t, y), a t b, y(a) = α. pe o grilă uniformă de (N + )-puncte din [a,

Διαβάστε περισσότερα

Examen AG. Student:... Grupa:... ianuarie 2011

Examen AG. Student:... Grupa:... ianuarie 2011 Problema 1. Pentru ce valori ale lui n,m N (n,m 1) graful K n,m este eulerian? Problema 2. Să se construiască o funcţie care să recunoască un graf P 3 -free. La intrare aceasta va primi un graf G = ({1,...,n},E)

Διαβάστε περισσότερα

V O. = v I v stabilizator

V O. = v I v stabilizator Stabilizatoare de tensiune continuă Un stabilizator de tensiune este un circuit electronic care păstrează (aproape) constantă tensiunea de ieșire la variaţia între anumite limite a tensiunii de intrare,

Διαβάστε περισσότερα

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R În cele ce urmează, vom studia unele proprietăţi ale mulţimilor din R. Astfel, vom caracteriza locul" unui punct în cadrul unei mulţimi (în limba

Διαβάστε περισσότερα

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3 SEMINAR 2 SISTEME DE FRŢE CNCURENTE CUPRINS 2. Sisteme de forţe concurente...1 Cuprins...1 Introducere...1 2.1. Aspecte teoretice...2 2.2. Aplicaţii rezolvate...3 2. Sisteme de forţe concurente În acest

Διαβάστε περισσότερα

Examen AG. Student:... Grupa: ianuarie 2016

Examen AG. Student:... Grupa: ianuarie 2016 16-17 ianuarie 2016 Problema 1. Se consideră graful G = pk n (p, n N, p 2, n 3). Unul din vârfurile lui G se uneşte cu câte un vârf din fiecare graf complet care nu-l conţine, obţinându-se un graf conex

Διαβάστε περισσότερα

Ecuatii trigonometrice

Ecuatii trigonometrice Ecuatii trigonometrice Ecuatiile ce contin necunoscute sub semnul functiilor trigonometrice se numesc ecuatii trigonometrice. Cele mai simple ecuatii trigonometrice sunt ecuatiile de tipul sin x = a, cos

Διαβάστε περισσότερα

a. 11 % b. 12 % c. 13 % d. 14 %

a. 11 % b. 12 % c. 13 % d. 14 % 1. Un motor termic funcţionează după ciclul termodinamic reprezentat în sistemul de coordonate V-T în figura alăturată. Motorul termic utilizează ca substanţă de lucru un mol de gaz ideal având exponentul

Διαβάστε περισσότερα

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4 SEMINAR 3 MMENTUL FRŢEI ÎN RAPRT CU UN PUNCT CUPRINS 3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere...1 3.1. Aspecte teoretice...2 3.2. Aplicaţii rezolvate...4 3. Momentul forţei

Διαβάστε περισσότερα

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)). Teoremă. (Y = f(x)). Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism Demonstraţie. f este continuă pe X: x 0 X, S Y (f(x 0 ), ε), S X (x 0, ε) aşa ca f(s X (x 0, ε)) = S Y (f(x 0 ), ε) : y

Διαβάστε περισσότερα

Laborator 11. Mulţimi Julia. Temă

Laborator 11. Mulţimi Julia. Temă Laborator 11 Mulţimi Julia. Temă 1. Clasa JuliaGreen. Să considerăm clasa JuliaGreen dată de exemplu la curs pentru metoda locului final şi să schimbăm numărul de iteraţii nriter = 100 în nriter = 101.

Διαβάστε περισσότερα

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Subspatii ane Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Oana Constantinescu Oana Constantinescu Lectia VI Subspatii ane Table of Contents 1 Structura de spatiu an E 3 2 Subspatii

Διαβάστε περισσότερα

Laborator 4 suport teoretic Tipuri de date utilizate în limbajul de programare C.

Laborator 4 suport teoretic Tipuri de date utilizate în limbajul de programare C. Laborator 4 suport teoretic Tipuri de date utilizate în limbajul de programare C. Toate valorile parametrilor unei probleme, adică datele cu care operează un program, sunt reprezentate în MO sub formă

Διαβάστε περισσότερα

10. STABILIZATOAE DE TENSIUNE 10.1 STABILIZATOAE DE TENSIUNE CU TANZISTOAE BIPOLAE Stabilizatorul de tensiune cu tranzistor compară în permanenţă valoare tensiunii de ieşire (stabilizate) cu tensiunea

Διαβάστε περισσότερα

Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii

Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii ilincamircea@yahoo.com postat 16.11.2016 TEMA III.3 v1: EXPRESII ÎN C/C++ (sinteză) Relațiile de calcul dintr-un algoritm

Διαβάστε περισσότερα

Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16

Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16 Sortare 29 martie 2005 Sortare 2 Sortarea. Generalitǎţi Sortarea = aranjarea unei liste de obiecte dupǎ o relaţie de ordine datǎ (ex.: pentru numere, ordine lexicograficǎ pt. şiruri, etc.) una din clasele

Διαβάστε περισσότερα

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ CONCURS DE ADMITERE, 7 iulie 207 Proba scrisă la MATEMATICĂ SUBIECTUL I (30 puncte) ) (0 puncte) Să se arate că oricare ar

Διαβάστε περισσότερα

Să se arate că n este număr par. Dan Nedeianu

Să se arate că n este număr par. Dan Nedeianu Primul test de selecție pentru juniori I. Să se determine numerele prime p, q, r cu proprietatea că 1 p + 1 q + 1 r 1. Fie ABCD un patrulater convex cu m( BCD) = 10, m( CBA) = 45, m( CBD) = 15 și m( CAB)

Διαβάστε περισσότερα

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca Conice Lect. dr. Constantin-Cosmin Todea U.T. Cluj-Napoca Definiţie: Se numeşte curbă algebrică plană mulţimea punctelor din plan de ecuaţie implicită de forma (C) : F (x, y) = 0 în care funcţia F este

Διαβάστε περισσότερα

I. Noţiuni introductive

I. Noţiuni introductive Metode Numerice Curs 1 I. Noţiuni introductive Metodele numerice reprezintă tehnici prin care problemele matematice sunt reformulate astfel încât să fie rezolvate numai prin operaţii aritmetice. Prin trecerea

Διαβάστε περισσότερα

4. CIRCUITE LOGICE ELEMENTRE 4.. CIRCUITE LOGICE CU COMPONENTE DISCRETE 4.. PORŢI LOGICE ELEMENTRE CU COMPONENTE PSIVE Componente electronice pasive sunt componente care nu au capacitatea de a amplifica

Διαβάστε περισσότερα

Seminar Algebra. det(a λi 3 ) = 0

Seminar Algebra. det(a λi 3 ) = 0 Rezolvari ale unor probleme propuse "Matematica const în a dovedi ceea ce este evident în cel mai puµin evident mod." George Polya P/Seminar Valori si vectori proprii : Solutie: ( ) a) A = Valorile proprii:

Διαβάστε περισσότερα

Principiul Inductiei Matematice.

Principiul Inductiei Matematice. Principiul Inductiei Matematice. Principiul inductiei matematice constituie un mijloc important de demonstratie in matematica a propozitiilor (afirmatiilor) ce depind de argument natural. Metoda inductiei

Διαβάστε περισσότερα

Subiecte Clasa a VIII-a

Subiecte Clasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

Διαβάστε περισσότερα

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b. Lucrare Soluţii 28 aprilie 2015 Varianta 1 I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2 Definiţie. Numărul întreg p se numeşte număr prim dacă p 0,

Διαβάστε περισσότερα

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2 .1 Sfera Definitia 1.1 Se numeşte sferă mulţimea tuturor punctelor din spaţiu pentru care distanţa la u punct fi numit centrul sferei este egalăcuunnumăr numit raza sferei. Fie centrul sferei C (a, b,

Διαβάστε περισσότερα

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a Capitolul II: Serii de umere reale. Lect. dr. Lucia Maticiuc Facultatea de Hidrotehică, Geodezie şi Igieria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucia MATICIUC SEMINARUL 3. Cap. II Serii

Διαβάστε περισσότερα

13. Grinzi cu zăbrele Metoda izolării nodurilor...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...

13. Grinzi cu zăbrele Metoda izolării nodurilor...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate... SEMINAR GRINZI CU ZĂBRELE METODA IZOLĂRII NODURILOR CUPRINS. Grinzi cu zăbrele Metoda izolării nodurilor... Cuprins... Introducere..... Aspecte teoretice..... Aplicaţii rezolvate.... Grinzi cu zăbrele

Διαβάστε περισσότερα

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1 FNCȚ DE ENERGE Fie un n-port care conține numai elemente paive de circuit: rezitoare dipolare, condenatoare dipolare și bobine cuplate. Conform teoremei lui Tellegen n * = * toate toate laturile portile

Διαβάστε περισσότερα

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri Generarea şi ordonarea permutărilor. Principiul porumbeilor. Principiul incluziunii si excluziunii Recapitulare din cursul trecut Presupunem că A este o mulţime cu n elemente. Recapitulare din cursul trecut

Διαβάστε περισσότερα

CURS 11. Rădăcină unei ecuatii: Cum se defineste o rădăcină aproximativă?

CURS 11. Rădăcină unei ecuatii: Cum se defineste o rădăcină aproximativă? CURS 11 Rezolvarea ecuaţiilor transcendente Fie ecuatia: f(x)=0 algebrică - dacă poate fi adusă la o formă polinomială transcendentă dacă nu este algebrică Ecuaţii algebrice: 3x=9; 2x 2-3x+2=0; x5=x(2x-1);

Διαβάστε περισσότερα

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER 2. Circuite logice 2.4. Decodoare. Multiplexoare Copyright Paul GASNER Definiţii Un decodor pe n bits are n intrări şi 2 n ieşiri; cele n intrări reprezintă un număr binar care determină în mod unic care

Διαβάστε περισσότερα

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită. Trignmetrie Funcţia sinus sin : [, ] este peridică (periada principală T * = ), impară, mărginită. Funcţia arcsinus arcsin : [, ], este impară, mărginită, bijectivă. Funcţia csinus cs : [, ] este peridică

Διαβάστε περισσότερα

Miscarea oscilatorie armonica ( Fisa nr. 2 )

Miscarea oscilatorie armonica ( Fisa nr. 2 ) Miscarea oscilatorie armonica ( Fisa nr. 2 ) In prima fisa publicata pe site-ul didactic.ro ( Miscarea armonica) am explicat parametrii ce definesc miscarea oscilatorie ( perioda, frecventa ) dar nu am

Διαβάστε περισσότερα

Geometrie computationala 2. Preliminarii geometrice

Geometrie computationala 2. Preliminarii geometrice Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Geometrie computationala 2. Preliminarii geometrice Preliminarii geometrice Spatiu Euclidean: E d Spatiu de d-tupluri,

Διαβάστε περισσότερα

Ovidiu Gabriel Avădănei, Florin Mihai Tufescu,

Ovidiu Gabriel Avădănei, Florin Mihai Tufescu, vidiu Gabriel Avădănei, Florin Mihai Tufescu, Capitolul 6 Amplificatoare operaţionale 58. Să se calculeze coeficientul de amplificare în tensiune pentru amplficatorul inversor din fig.58, pentru care se

Διαβάστε περισσότερα

INTERPOLARE. y i L i (x). L(x) = i=0

INTERPOLARE. y i L i (x). L(x) = i=0 INTERPOLARE Se dau punctele P 0, P 1,..., P n in plan sau in spatiu, numite noduri si avand vectorii de pozitie r 0, r 1,..., r n. Problemă. Să se găsească o curbă (dintr-o anumită familie) care să treacă

Διαβάστε περισσότερα

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii Clasa a IX-a 1 x 1 a) Demonstrați inegalitatea 1, x (0, 1) x x b) Demonstrați că, dacă a 1, a,, a n (0, 1) astfel încât a 1 +a + +a n = 1, atunci: a +a 3 + +a n a1 +a 3 + +a n a1 +a + +a n 1 + + + < 1

Διαβάστε περισσότερα