Programarea calculatoarelor

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

Download "Programarea calculatoarelor"

Transcript

1 Programarea calculatoarelor 1

2 Cuprins I. Introducere 1. Generalitati despre calculatoarele electronice 3 2. Sisteme de numeratie Descrierea algoritmilor in pseudocod 15 II. Programarea in C++ 4. Programul C Instructiuni Tablouri Siruri de caractere Pointeri Variabile dinamice Structuri Uniuni Enumerari Functii Afisarea pe ecran in modul text Afisarea pe ecran in modul grafic Functii recursive Functii inline Tratatrea exceptiilor Parametrii functiei main Pointeri de functii 81 III. Structuri de date 21. Liste Cozi Stive Grafuri Arbori 100 IV. Programarea orientată pe obiecte 26. Noţiuni introductive despre POO Clase. Constructori şi destructori Supradefinirea operatorilor Funcţii şi clase prietene Moştenire. Clase derivate Moştenire multiplă 125 Bibliografie 128 2

3 I. INTRODUCERE 1. GENERALITATI DESPRE CALCULATOARELE ELECTRONICE Structura si functionarea unui calculator electronic Sistemul de calcul este un ansamblu de echipamente fizice care prelucreaza informatia codificata conform unui program ce indica o succesiune determinata de operatii aritmetice si logice. Calculatorul este alcatuit din doua subsisteme principale: -subsistemul hardware; -subsistemul software. Subsistemul hardware. Subsistemul hardware este reprezentat prin totalitatea echipamentelor si dispozitivelor fizice din sistemul de calcul. Structura de baza a unui calculator secvential, cu program memorat, a fost stabilita de catre celebrul informatician John von Neumann si a fost publicata in iunie 1945 in lucrarea Prima schita de raport asupra EDVAC. Un astfel de calculator este compus din cinci unitati functionale (fig.1.1.1). UM UI UAL UE UC Fig Structura unui calculator secvemtial. Unitatea de intrare (UI) permite introducerea informatiilor in calculator, realizand conversia reprezentarii acesteia de la forma externa la un format intern binar. Evident ca reprezentarea interna binara este o consecinta a faptului ca la constructia calculatoarelor electronice se utilizeaza circuite cu doua niveluri stabile de tensiune la iesiri: un nivel ridicat, la care se asocieaza valoarea logica 1 si un nivel coborat, la care se asocieaza valoarea logica 0. Unitatea de intrare este reprezentata prin echipamente periferice de intrare, cum sunt: tastatura, mouse, scanner, joy-stick, light-pen, cititoare optice de caractere, cititoare de bare. Memoria (unitatea de memorare, UM) este unitatea functionala a unui calculator in care se stocheaza informatia (programe si date de prelucrat). Din unitatea de memorare informatia poate fi citita, prelucrata, rememorata sau transferata in exterior. O caracteristica importanta a memoriei este capacitatea acesteia, masurata prin numarul de biti de informatie pe care ii poate stoca. Ca unitate de masura se utilizeaza octetul (sau byte in limba engleza), care este un ansamblu de 8 biti (in realitate sunt cel putin 9 biti, caci se utilizeaza un bit de verificare a corectitudinii informatiei, bitul de paritate, sau pot fi chiar si mai multi biti, in cazul utilizarii codurilor corectoare si detectoare de erori). Se mai poate utiliza ca unitate de masura a capacitatii memoriei si in general a unei cantitati 3

4 de informatie, cuvantul, precizand numarul de biti (de exemplu, 16 biti, 32 biti, 128 biti, etc.). Se utilizeaza si multiplii ai octetului, avand urmatoarele relatii de transformare: 1 Koctet = 2 10 octeti 1 Moctet = 2 20 octeti 1 Goctet = 2 30 octeti 1 Toctet = 2 40 octeti respectiv, multiplii ai cuvantului: Kcuvant, Mcuvant, Gcuvant si Tcuvant. Memoria unui calculator nu este omogena, din considerente de perfomanta si cost (costul unei memorii este cu atat mai mare cu cat si performantele acesteia sunt mai bune). Este necesar sa se realizeze un compromis intre performantele memoriei unui calculator si costul acesteia. Din aceasta cauza memoria este realizata ierarhic (fig.1.1.2) si se disting cel putin urmatoarele niveluri: -memoria de registre (sau registrele procesorului) este foarte rapida, avand o viteza comparabila cu viteza de operare a unitatii aritmetice-logice, dar evident si costul acesteia este foarte mare. Aici se pastreaza in general operanzii care se prelucreaza la un moment dat. Capacitatea acestui nivel este redusa, fiind de cateva zeci sau sute de octeti. -memoria intermediara (sau memoria cache ) este rapida, dar ceva mai lenta decat memoria de registre si pastreaza fragmente de cod si date care sunt necesare sistemului de calcul la momentul curent, fiind inlocuite cu noi fragmente pe masura ce executia programului avanseaza. Capacitatea memoriei intermediare se situeaza aproximativ intre limitele 16 Kocteti si 1 Moctet. -memoria principala (sau memoria operativa) este de asemenea rapida, dar mai lenta decat memoria intermediara. Aici se pastreaza, in principiu, intregul program aflat in executie si datele corespunzatoare. Capacitatea memorie principale pentru sistemele secventiale este aproximativ 16 Mocteti 1 Goctet. Primele trei niveluri de memorie formeaza impreuna memoria interna a sistemului de calcul. -memoria secundara (sau memoria externa) este reprezentata prin echipamente periferice de memorare, avand o capacitate nelimitata. Cele mai utilizate astfel de echipamente sunt diferitele tipuri de unitati de disc (disc flexibil sau floppy disk, disc dur, sau hard disk ), unitati de discuri optice (CD-ROM, DVD), unitati de benzi magnetice si casete magnetice. Memoria secundara creste capacitatea Memoria principala Memoria cache Memoria de registre creste viteza UAL Fig Organizarea ierarhica a memoriei. Unitatea aritmetica-logica (UAL) efectueaza toate operatiile aritmetice si logice din calculator. Astfel, aici se executa operatiile logice cum sunt operatiile NU, SAU, SI, SAU- EXCLUSIV, etc. Tabelele de adevar pentru aceste operatii sunt prezentate in continuare: 4

5 x NU x X y x SAU y x y x SI y x y x SAU-EX y Operatiile aritmetice cuprind evident operatiile aritmetice de baza (adunare, scadere, inmultire si impartire) pentru numere cu diferite precizii de reprezentare. Unitatea de iesire (UE) permite furnizarea in exterior a rezultatelor prelucrarilor, realizand conversia din formatul intern binar intr-un format extern. Exista doua categorii de formate externe: -prima categorie de formate se adreseaza direct utilizatorului uman si este reprezentata prin numere, texte, grafice, imagini, sunete. In acest caz, unitatea de iesire este reprezentata prin echipamente periferice de iesire si interfetele acestora. -a doua categorie de formate este reprezentata de semnale electrice, destinate actionarii de echipamente. In acest caz, unitatea de iesire este implementata prin module speciale, continand circuite convertoare numeric-analogice (CNA), care convertesc rezultatele numerice in semnale electrice (la calculatoarele de proces). Astfel, din procesul tehnologic se culeg informatii de interes cu ajutorul unor traductoare care transforma marimile fizice cum sunt presiunea, temperatura, etc. in semnale electrice, ce sunt apoi convertite in valori numerice binare prin intermediul unor module continand convertoare analog-numerice (CAN), aflate in unitatea de intrare. Datele achizitionate sunt prelucrate conform algoritmului implementat, iar rezultatele numerice sunt apoi transformate in semnale electrice, care actionand o serie de echipamente regleaza procesul tehnologic controlat. Unitatea de comanda (UC) controleaza functionarea celorlalte unitati ale sistemului de calcul. Controlul se face conform cerintelor utilizatorului, specificate prin intermediul programului memorat si aflat in curs de executie. Caracterul secvential al unui astfel de sistem de calcul rezulta din modul de executie a unui program. Astfel, unitatea de comanda citeste din memorie instructiunea curenta (faza de fetch), o decodifica (faza de decodificare), citeste operanzii daca acestia sunt necesari (faza de citire operanzi), executa operatia ceruta de instructiune (faza de executie), iar apoi trece la executia instructiunii urmatoare, parcurgandu-se aceleasi faze (de remarcat cele patru faze necesare executiei unei instructiuni!). Astfel programul este executat instructiune cu instructiune, deci intr-o maniere secventiala. Chiar daca la sistemele de calcul uniprocesor actuale se realizeaza anumite suprapuneri intre fazele de executie a instructiunilor, in primul rand suprapunerea fazei de executie a instructiunii curente cu faza de citire a instructiunii urmatoare, se considera ca si aceste sisteme sunt de asemenea secventiale. In constructia sistemelor de calcul actuale se utilizeaza microprocesoare. Un microprocesor este un circuit integrat pe scara foarte larga (cu un numar foarte mare de componente elementare pe pastila de siliciu) care implementeaza total sau partial functii ale unor unitati din calculator, in primul rand functiile unitatii de comanda si ale unitatii aritmetice-logice. Deci microprocesorul este in primul rand UC+UAL. Dar majoritatea microprocesoarelor integreaza si functii ale altor unitati functionale, de exemplu, integreaza intotdeauna din cadrul UM nivelul memorie de registre, iar uneori cel putin o parte a nivelului memoriei cache. Unele microprocesoare integreaza si functii ale UI+UE avand capabilitati de comunicatie cu exteriorul (de exemplu interfata seriala). Primul microprocesor comercial a fost realizat in anul 1971 de firma Intel (Intel 4004, pe 4 biti). Dezvoltarea microprocesoarelor a fost din ce in ce mai rapida, datorita concurentei puternice de pe piata de componente. Cateva exemple mai semnificative de microprocesoare, grupate in functie de lungimea cuvantului prelucrat: 5

6 -microprocesoare pe 8 biti: Intel 8080, Zilog Z80, Motorola 6800; -microprocesoare pe 16 biti: Intel 8086, Zilog Z8000, Motorola 68000; -microprocesoare pe 32 biti: Intel (primul microprocesor pe 32 biti), Motorola 68030, Intel Pentium (intern pe 32 biti, magistrala externa de date pe 64 biti); -microprocesoare pe 64 biti: Sun UltraSPARC, Intel Core 2 Extreme. Subsistemul software Subsistemul software este reprezentat prin totalitatea programelor si structurilor de date. Primele calculatoare electronice au fost programate initial direct in cod masina (secvente de biti 0 si 1), ceea ce facea ca aceasta activitate sa fie deosebit de laborioasa. Apoi, anumite secvente de biti care se repetau au fost reprezentate prin nume simbolice, care erau translatate automat in cod masina, aparand astfel primele limbaje de programare. Limbajele de programare au evoluat continuu, ajungandu-se la multitudinea de limbaje de astazi. Se poate face o clasificare a limbajelor de programare. Exista doua mari categorii: -limbaje de nivel coborat; -limbaje de nivel inalt. Limbajele de nivel coborat sunt specifice fiecarui tip de calculator. Un astfel de limbaj desemneaza operatii elementare la nivelul cel mai de jos al masinii fizice, facand referiri directe la locatii de memorie, registre ale procesorului, porturi de intrare/iesire. Programarea intr-un astfel de limbaj presupune din partea programatorului o cunoastere buna a structurii sistemului de calcul. Avantajul programelor scrise in aceste limbaje este viteza superioara de executie. Limbajele de nivel inalt sunt universale. Programele scrise in aceste limbaje se pot executa pe aproape orice tip de calculator. Un astfel de limbaj desemneaza operatii complexe asupra datelor, facand abstractie de structura fizica a sistemului de calcul, ceea ce permite programatorului sa se concentreze mai mult pe problema de rezolvat. Limbajele de nivel inalt se pot clasifica la randul lor in cateva categorii, in functie de natura prelucrarilor: -limbaje pentru calcule tehnico-stiintifice, avand un volum mare de calcule si un volum relativ mic de date, cum sunt ALGOL, FORTRAN, BASIC, PASCAL, C; -limbaje pentru calcule economice, cu un volum mic de calcule, dar un volum mare de date, exemple: COBOL, DBASE, FOXPRO, SQL; -limbaje de timp real (pentru programarea unor evenimente in concordanta cu timpul real al utilizatorului), cum sunt RTL/2 si PASCAL Concurent; -limbaje pentru calcule nenumerice, aici fiind incluse limbajele inteligentei artificiale, ca de exemplu LISP si PROLOG. Software-ul unui calculator poate fi clasificat in doua mari categorii: -software de aplicatii; -software de baza. Software-ul de aplicatii este reprezentat prin programe de aplicatii care permit rezolvarea unor probleme practice din diferite domenii de utilizare. Aceste programe sunt scrise in general de catre utilizatorii sistemului de calcul, iar programele mai complexe de catre firme specializate de software. Software-ul de baza permite o utilizare eficienta si comoda a sistemului de calcul, fiind scris in general de catre constructorii sistemului de calcul sau de firme specializate. Sistemul de operare este un ansamblu de programe ce realizeaza gestiunea resurselor calculatorului. Principalele functii ale sistemului de operare sunt: -exploatarea eficienta a echipamentelor; 6

7 -rezolvarea conflictelor ce apar intre utilizatori sau task-uri (cereri simultane pentru aceleasi resurse); -gestiunea procesorului central (evidenta starii proceselor, sincronizarea proceselor, alocarea procesorului); -gestiunea echipamentelor periferice (urmarirea starii echipamentelor periferice, alocarea si eliberarea acestora, initierea operatiilor de intrare / iesire); -gestiunea memoriei interne (alocarea zonelor de memorie, securitatea acestora); -comunicarea utilizatorului cu sistemul de calcul printr-un limbaj de comanda (comenzile sistemului de operare, exemplu Unix) sau in mod grafic (exemplu Windows); -contabilizarea automata a lucrarilor; -intocmirea automata a unor statistici privind aparitia defectelor; -lansarea in executie a unor programe de test la momente bine stabilite. 7 Istoric Momente timpurii. In jurul anului 500 i.h. a fost construit in China antica abacul, un dispozitiv rudimentar de calcul. In evul mediu au fost realizate cateva calculatoare mecanice, dintre care s-au remarcat: -in 1617 John Napier construieste un dispozitiv asemanator riglei de calcul; -in 1642 fizicianul francez Blaise Pascal realizeaza o masina de adunat; -in 1671 Gottfried Wilhelm von Leibniz pune la punct prima masina mecanica pentru operatia de inmultire; Mai aproape de zilele noastre profesorul de la Universitatea din Cambridge, Charles Babbage, lucrand pentru perfectionarea tabelelor de logaritmi, a realizat in anul 1823 masina diferentiala, care utiliza cartele perforate. In 1830 incepe lucrul la un alt echipament, masina analitica, importanta acesteia constand in introducerea unor concepte noi, cum sunt: program, subprogram, memorie, unitate aritmetica. Calculatoare electronice. In anul 1943 guvernul britanic a finantat realizarea primului calculator electronic Colossus, in mare secret, pentru decodificarea mesajelor germane in timpul celui de-al doilea razboi mondial. Pe data de 7 august 1944 Howard Aiken de la Universitatea Harvard, in colaborare cu IBM (International Business Machines) si Bell Telephone lanseaza Mark I, un calculator electro-mecanic utilizat pentru calculul traiectoriilor balistice. O echipa condusa de Eckert si Mauchly de la Universitatea din Pensylvania, avand drept consultant pe John von Neumann, realizeaza in anul 1946 calculatorul bazat pe aproximativ tuburi electronice, ENIAC (Electronic Numerical Integrator and Computer). Sistemul dispunea de mai multe elemente de calcul care lucrau in paralel si o singura unitate de comanda. In iunie 1945 o echipa condusa de von Neumann finalizeaza sistemul EDVAC (Electronic Discrete Variable Automatic Computer), care dispunea de o singura unitate de calcul, suficienta datorita vitezei mari a componentelor electronice si pastra programele in memorie. Cu aceasta ocazie von Neumann publica o lucrare intitulata Prima schita de raport asupra EDVAC, in care sunt evidentiate unitatile functionale ale unui calculator secvential. Ar trebui amintite aici inca doua realizari importante si anume, in anul 1951 UNIVAC I, primul calculator comercial (firma infiintata de Eckert si Mauchly), iar in 1952 sistemul IAS (Institute for Advanced Studies), realizat de von Neumann la Institutul Princeton. Dezvoltarea tehnicii de calcul in Romania. Primul calculator electronic din Romania a fost realizat in anul 1957 de un colectiv condus de dr.ing. Victor Toma si numit CIFA 1 (Calculator al Institutului de Fizica Atomica), cu tuburi electronice. A urmat apoi CIFA 101.

8 La Timisoara in 1961 este realizat MECIPT 1 (Masina Electronica de Calcul Institutul Politehnic Timisoara) cu tuburi electronice, iar ceva mai tarziu MECIPT 2 si 3, cu tranzistoare. In anul 1966 la Cluj a fost construit DACICC 1. Bazele industrie de calculatoare au fost puse in tara noastra in anul 1970 prin construirea Fabricii de Calculatoare Bucuresti si intrarea in productie de serie a sistemului Felix C256, dupa o licenta franceza. Dintre produsele de succes ale acestei intreprinderi ar trebui amintite urmatoarele: -FELIX M18, M18B, M118, cu microprocesor Intel 8080 la 2 MHz, 64 Kocteti de memorie interna, display grafic de 512x256 pixeli (numai la M118), unitati de disc flexibil de 8, sistem de operare CP/M si SFDX-18; -CUB-Z, cu microprocesor Zilog Z80 la 2.5 MHz, 64 Kocteti de RAM, display grafic 512x256 pixeli, sistem de operare CP/M; -FELIX M216, sistem biprocesor cu 8086 si 8080, memorie RAM de 128 Kocteti, extensibila pana la 1 Moctet, display grafic color de 512x512 pixeli; -FELIX PC, realizat cu microprocesor Intel 8086 (8088), coprocesor matematic 8087, memorie RAM de 256 Kocteti, extensibila la 640 Kocteti pe placa de baza, unitati de disc flexibil de 5¼, sistem de operare MS-DOS; -CORAL 4030, cu microprocesor bit-slice, structura microprogramata, memorie de 4 Mocteti, sistem de operare RSX-11; -HC-85, destinat utilizarii acasa sau in scoli, cu microprocesor Zilog Z80, 64 Kocteti de RAM, interfata cu unitate de caseta magnetica audio (casetofon audio), afisare pe televizor si interpretor BASIC; -FELIX 5000, calculator de capacitate medie pe 32 de biti, compatibil software cu sistemele FELIX C256, C512, C1024, unitate centrala de prelucrare microprogramata, memorie RAM de 4 Mocteti, sistem de operare HELIOS si U (Unix). Generatii de calculatoare Sistemele de calcul construite incepand inca din anii 40 si pana in zilele noastre se pot grupa in functie de nivelul tehnologic in asa numitele generatii de calculatoare. Astfel se pot delimita urmatoarele generatii: Generatia I ( ) utiliza tuburi electronice, avand o structura serie, cablaj prin fire, cu instructiuni simple. Raportul intre timpul pentru o operatie de inmultire si timpul pentru o operatie de adunare t * /t + =20, iar t ms. Calculatoarele dispuneau de putine echipamente periferice de tipul cititor / perforator de banda de hartie. Memoria interna era realizata cu tambur magnetic avand de cuvinte. Programarea se facea direct in cod masina, iar viteza de calcul era mica (sute-mii de operatii / secunda). Generatia a II-a ( ) se remarca prin inlocuirea tuburilor electronice cu tranzistoare cu germaniu si siliciu, oferind astfel un gabarit redus, fiabilitate sporita, putere consumata mai scazuta, siguranta in functionare si tensiuni de alimentare si comanda mai mici. Alte caracteristici: memorie interna cu ferita, cablaj imprimat, tipizarea circuitelor logice (simplificand activitatea de proiectare si depanare). Echipamentele periferice s-au diversificat: tambur magnetic, banda magnetica cu densitate mica de inregistrare, dispozitiv de imprimare, trasator de curbe, dispozitiv de afisare pe tub catodic. Raportul dintre timpul pentru o operatie de inmultire si timpul pentru o operatie de adunare t * /t + =10, iar t µs. Au aparut si primele limbaje de programare: FORTRAN (FORmula TRANslation) in 1956, ALGOL (ALGOrithmical Language) in 1958 si COBOL (Common Business Oriented Language) in Generatia a III-a ( ) se caracterizeaza prin utilizarea circuitelor integrate pe scara simpla, cablaj multistrat, memorii externe de mare capacitate. Raportul intre timpul pentru o operatie de inmultire si timpul pentru o operatie de adunare t * /t + =2.5, iar t µs. Limbajele de 8

9 programare se perfectioneaza, aparand si limbaje noi: PL/1, ALGOL 60-68, FORTRAN IV, COBOL, LISP. In dezvoltarea echipamentelor periferice se remarca pe de o parte imbunatatirea celor existente, iar pe de alta parte construirea de echipamente noi, in special pentru preluarea informatiilor din documentele primare. Apar concepte noi, cum sunt multiprelucrarea, multiprogramarea, microprogramarea, programarea in timp real. Generatia 3,5 ( ) se remarca prin utilizarea circuitelor integrate pe scara larga, a memoriilor cu circuite integrate, si a primelor microprocesoare pe 8 si 16 biti. Generatia a IV-a (1980-astazi) utilizeaza in realizarea echipamentelor de calcul circuite integrate pe scara foarte larga (VLSI), avand timpi de comutatie de 1-5 ns, memorii rapide cu timp de acces sub 10 ns. Sunt realizate noi echipamente periferice performante. O alta caracteristica a acestei generatii este interconectarea calculatoarelor in retele. Se poate vorbi si de viitoarea generatie de calculatoare, generatia a V-a. Necesitatea acesteia a aparut datorita performantelor relativ modeste ale sistemelor actuale in aplicatii complexe, care includ prelucrari de imagini, recunoasterea vorbirii, simulare etc. De asemenea, componentele electronice au ajuns aproape de viteza limita de functionare. Tehnologia viitoare pentru implementarea acestei noi generatii se va baza pe circuite integrate pe scara ultra larga (ULSI) si 3D. Arhitectura unui astfel de calculator va cuprinde trei componente de baza: 1) interfata inteligenta cu utilizatorul uman, comunicatia realizandu-se prin limbaj natural, voce, imagini; 2) masina pentru rezolvarea de probleme care sa realizeze singura rationamente logice care sa conduca la solutia problemei; 3) baza de cunostinte cu volum imens si in care cautarea sa se faca rapid, prin hardware. 2. SISTEME DE NUMERATIE Sistem de numeratie este totalitatea regulilor de reprezentare a numerelor cu ajutorul unor simboluri numite cifre. Cifra este un simbol care reprezinta o cantitate intreaga. Baza (radacina) sistemului de numeratie este numarul de simboluri permise pentru reprezentarea cifrei. In activitatea de programare se utilizeaza cel mai mult sistemele de numeratie cu bazele 2, 8, 10 si 16. In continuare este prezentat un tabel cu reprezentarile unor numere naturale in cele patru baze: b=10 b=2 b=8 b= A B C D E F 9

10 Se observa ca pentru fiecare sistem de numeratie numarul de cifre diferite utilizate este egal cu baza. In baza 16 pe langa cele 10 cifre zecimale se utilizeaza primele sase litere ale alfabetului pentru reprezentarea cifrelor cu valorile 10 (10) -15 (10). Schimbarea bazei de numeratie O problema importanta care se pune in legatura cu sistemele de numeratie este schimbarea bazei de numeratie pentru reprezentarea numerelor. Considerand un numar real fara semn (sau pozitiv), schimbarea bazei se face separat pentru partea intreaga si separat pentru partea subunitara. Se considera un numar intreg fara semn N reprezentat in baza x si se doreste reprezentarea acestuia intr-o noua baza y. Operatia de conversie este echivalenta cu aflarea coeficientilor polinomului in puteri pozitive ale noii baze y, prin care se poate reprezenta numarul: N = a n y n + a n-1 y n a 1 y + a 0 Se efectueaza impartiri succesive la noua baza y, retinand la fiecare operatie restul. Se face o prima operatie de impartire la noua baza, obtinandu-se: N / y = a n y n-1 + a n-1 y n a 1 + a 0 /y Restul impartirii a 0 este prima cifra, cea mai putin semnificativa a rezultatului, iar catul (numar intreg) se noteaza cu N 1 si se face o noua impartire: N 1 / y = a n y n-2 + a n-1 y n a 2 y + a 1 /y Din nou, restul impartirii a 1 este cifra urmatoare a rezultatului, iar catul se noteaza cu N 2 si se face o noua impartire la y,..., astfel incat la un pas oarecare se obtine: N k / y = a n y n-k-1 + a n-1 y n-k a k+1 y + a k /y Rezulta cifra curenta a rezultatului conversiei a k, ca fiind restul impartirii, iar catul se noteaza cu N k+1 si se continua. Conversia se incheie atunci cand dupa o operatie de impartire se obtine catul zero (chiar daca dupa acest moment se continua algoritmul se vor obtine numai cifre 0 la rest, ceea ce inseamna zerouri nesemnificative in stanga unui numar intreg). Exemplu. Sa se realizeze conversia numarului N = 41 (10) din baza 10 in noua baza : 2 => cat =20 si rest = 1 => a 0 = 1 20 : 2 => cat =10 si rest = 0 => a 1 = 0 10 : 2 => cat = 5 si rest = 0 => a 2 = 0 5 : 2 => cat = 2 si rest = 1 => a 3 = 1 2 : 2 => cat = 1 si rest = 0 => a 4 = 0 1 : 2 => cat = 0 si rest = 1 => a 5 = 1 10

11 S-a obtinut astfel ca N = (2). Se poate face si o verificare a rezultatului obtinut facand conversia inversa din baza 2 in baza 10, prin adunarea tuturor produselor intre fiecare cifra a reprezentarii in baza 2 si ponderea sa: N = = 41 deci, conversia s-a facut corect. Aplicatie. Sa se scrie un algoritm in pseudocod pentru conversia unui numar intreg din zecimal in binar. citeste nr i = 0 cat timp nr 2 i executa a[i] = 0 i = i + 1 i = i - 1; n = i; a[n] = 1; nr = nr 2 i cat timp nr 0 executa i = i 1 daca nr 2 i atunci a[i] = 1 nr = nr 2 i scrie (a[i], i = 0,n) Se considera un numar N subunitar, fara semn, scris in baza x si se doreste realizarea conversiei intr-o noua baza y. Operatia de conversie este echivalenta cu aflarea coeficientilor polinomului in puteri negative ale noii baze y, prin care se poate reprezenta numarul: N = a -1 y -1 + a -2 y a -m y -m Indicii negativi ai coeficientilor polinomului nu au nici o semnificatie speciala, s-a incercat numai punerea in corespondenta a acestora cu puterile corespunzatoare ale bazei y. Pentru aflarea coeficientilor este necesar sa se efectueze inmultiri succesive cu noua baza y, retinand de fiecare data partea intreaga a rezultatului. Astfel, la prima inmultire se obtine: N y = a -1 + a -2 y -1 + a -3 y a -m y -m+1 Partea intreaga a rezultatului a -1 este prima cifra, cea mai semnificativa, a rezultatului conversiei. Partea subunitara se noteaza cu N 1 si se face o noua inmultire: N 1 y = a -2 + a -3 y -1 + a -4 y a -m y -m+2 Rezulta a -2 cifra urmatoare a rezultatului, iar partea subunitara se noteaza cu N 2 executand o noua inmultire, etc., astfel incat la un pas oarecare se obtine: N k y = a -k-1 + a -k-2 y -1 + a -k-3 y a -m y -m+k+1 Se obtine partea intreaga a -k-1, iar partea subunitara se noteaza N k+1 si se continua. Conversia se incheie fie in momentul in care se obtine partea subunitara a rezultatului inmultirii egala cu zero (daca in acest moment s-ar continua algoritmul, atunci s-ar obtine numai cifre 0 nesemnificative in dreapta unui numar subunitar), fie cand s-a calculat numarul propus de cifre (s-a atins precizia dorita). Spre deosebire de conversia numerelor intregi, care se realizeaza intotdeauna exact, conversia numerelor subunitare se face de cele mai multe ori aproximativ (in functie de cele doua 11

12 baze sau de numerele care se convertesc). De aceea, pentru numerele subunitare se propune de la inceput numarul de cifre pe care sa se reprezinte rezultatul, iar in momentul in care s-au calculat toate cifrele conversia se incheie. Exemplu. Sa se converteasca numarul N = 0.37 (10) din baza 10 in baza 2. Ne propunem ca rezultatul sa fie obtinut pe 7 biti (este precizia rezultatului) x 2 = 0.74 => a -1 = x 2 = 1.48 => a -2 = x 2 = 0.96 => a -3 = x 2 = 1.92 => a -4 = x 2 = 1.84 => a -5 = x 2 = 1.68 => a -6 = x 2 = 1.36 => a -7 = 1 S-a obtinut N (2). Se poate face o verificare asupra preciziei rezultatului, efectuand conversia din baza 2 in baza 10, cum s-a facut si pentru numerele intregi, prin adunarea produselor intre cifre si ponderile acestora. N = = ( )/2 7 = = 47 / 128 = Rezultatul este destul de aproape de valoarea initiala, tinand cont de numarul mic de biti care s-au utilizat pentru reprezentarea rezultatului. Evident, marind numarul de biti se poate obtine o precizie mai buna. Aplicatie. Sa se scrie un algoritm in pseudocod pentru conversia unui numar subunitar din zecimal in binar, cu precizia pe m biti. citeste nr, m pentru i=1,m executa a[i] = 0 i = 0 cat timp (nr 0)si(i < m) executa i = i + 1 daca nr 2 -i atunci a[i] = 1 nr = nr 2 -i scrie (a[i], i = 1,m) Exemplu. Sa se converteasca numarul N = (10) din baza 10 in baza 2. Ne propunem ca partea subunitara sa fie obtinuta pe 7. Se realizeaza conversia separat pentru numarul intreg 41 si separat pentru numarul subunitar 0.37 (ca in exemplele precedente), iar apoi se concateneaza cele doua rezultate, obtinand in final N (2). Cazuri particulare Exista doua cazuri particulare la schimbarea bazei de numeratie, cand conversia se face in mod direct, fara operatii de impartire si inmultire, iar rezultatul este exact si pentru partea subunitara. 12

13 1) x = y n. In acest caz se inlocuieste fiecare cifra a reprezentarii in baza x printr-un grup de n cifre corespunzatoare in baza y. Exemplu. Sa se converteasca numarul N = 3CF.4AE (16) din baza 16 in baza 2. Intre cele doua baze exista relatia 16 = 2 4, deci n = 4. Pentru conversie se va inlocui fiecare cifra a reprezentarii in baza 16 printr-un grup de patru cifre in baza 2. Astfel: 3 C F. 4 A E Se poate renunta la scrierea zerourilor de la inceput si sfarsit, asa ca rezultatul final obtinut este N = (2). Foarte important, conversia s-a facut exact. 2) x n = y. In acest caz se formeaza in cadrul reprezentarii in vechea baza x, grupuri de cate n cifre de la punctul zecimal spre stanga pentru partea intreaga si de la punctul zecimal spre dreapta pentru partea subunitara (daca este necesar se vor completa grupurile extreme cu zerouri), iar apoi se inlocuieste fiecare grup printr-o cifra corespunzatoare in noua baza y. De asemenea, rezultatul este exact. Exemplu. Sa se converteasca numarul N = (2) din baza 2 in baza 8. Avem relatia 2 3 = 8 intre cele doua baze, deci n = 3. Se formeaza grupuri de cate trei cifre in cadrul reprezentarii in baza 2, se completeaza cu zerouri grupurile extreme si se inlocuiesc apoi grupurile cu cifrele corespunzatoare in baza S-a obtinut astfel rezultatul (exact!) N = (8), fara sa se utilizeze operatii de impartire si inmultire. 3. DESCRIEREA ALGORITMILOR IN PSEUDOCOD Pentru reprezentarea algoritmilor se utilizeaza in principal doua instrumente de descriere: -schemele logice (organigramele); -limbajul pseudocod. Schemele logice sunt constituite dintr-un set de figuri geometrice cu semnificatii prestabilite, desemnand diferite operatii de baza: atribuirea, decizia, citirea, scrierea, etc. In limbajul pseudocod actiunile (operatiile) sunt desemnate prin cuvinte cheie (cuvinte cu inteles prestabilit) reprezentate in text prin litere subliniate sau ingrosate, pentru a le deosebi de restul textului scris. Se utilizeaza de asemenea cateva reguli pentru alinierea pe verticala a textului scris. Limbajul pseudocod permite descrierea algoritmilor prin doua tipuri de enunturi (propozitii): -enunturi standard; -enunturi nestandard. 13

14 Enunturile standard reprezinta operatii cu corespondente directe intr-un limbaj de programare de nivel inalt. Enunturile nestandard sunt fraze in limbaj natural reprezentand operatii complexe asupra datelor. Acestea se utilizeaza in fazele incipiente de proiectare a algoritmilor, iar pe masura clarificarii solutiilor, aceste enunturi nestandard sunt transformate integral in enunturi standard. In final algoritmul este descris numai cu enunturi standard si scrierea programului corespunzator intr-un limbaj de nivel inalt este o problema de rutina. Operatii de baza citeste lista_variabile Se citeste de la echipamentul standard de intrare (tastatura) o lista de valori constante care se atribuie in ordine variabilelor din lista. scrie lista_iesire Permite trimiterea la echipamentul de iesire (display) a rezultatelor prelucrarilor. Lista de iesire cuprinde identificatori (nume) de variabile pentru care se afiseaza valorile acestora si siruri de carcatere cuprinse intre ghilimele, care se afiseaza intocmai la display (mesaje). variabila=expresie Este operatia de atribuire. Se evalueaza expresia, iar valoarea obtinuta este atribuita variabilei. Opreste executia algoritmului. Exemplu. Algoritm care pentru o suma de lei afiseaza numarul minim de bancnote de 100 lei, 50 lei, 10 lei, 5 lei si 1 leu. scrie "Introduceti suma in lei:" citeste s n100=s/100 //impartire intreaga, se obtine catul intreg al impartirii scrie n100, "bancnote de 100 lei" s=s%100 //restul impartirii n50=s/50 scrie n50, "bancnote de 50 lei" s=s%50 n10=s/10 scrie n10, "bancnote de 10 lei" s=s%10 n5=s/5 scrie n5, "bancnote de 5 lei" s=s%5 scrie s, "bancnote de 1 leu" Decizia Decizia permite selectarea unei secvente de operatii din doua secvente posibile, pe baza testarii unei conditii. Forma generala: 14

15 daca conditie secventa 1 altfel secventa2 Modul de executie: se evalueaza conditia (expresie logica), daca are valoarea adevarat se executa numai secventa 1, altfel (are valoarea fals) se executa numai secventa 2. In cazul in care pentru conditie neindeplinita nu trebuie executata nicio operatie (secventa2 este vida) se poate utiliza o forma simplificata a deciziei: daca conditie secventa 1 Exemplu. Rezolvarea ecuatiei de gradul al doilea ax 2 +bx+c=0, unde a, b, c R. scrie "Introduceti coeficientii ecuatiei:" citeste a, b, c daca a==0 daca b==0 daca c==0 scrie "Infinitate de solutii!" altfel scrie "Solutie vida!" altfel // ecuatie de gradul I x= b c scrie "x=", x altfel // ecuatie de gradul al II-lea delta=b 2-4 a c daca delta 0 // radacini reale x1= x2= b + 2 b 2 delta a delta a scrie x1, x2 altfel // radacini complexe Cicluri x1r= b 2 a x2r=x1r delta x1i= 2 a x2i= x1i scrie x1r, x1i, x2r, x2i Cele mai multe probleme implica executia repetata a unor secvente de operatii, deci folosirea ciclurilor. Exista trei tipuri de cicluri: ciclul cu test initial, ciclul cu test final si ciclul cu contor. 15

16 Ciclul cu test initial este: Secventa de operatii se executa cat timp o anumita conditie este indeplinita. Forma generala cat timp conditie secventa Modul de executie: 1) se evalueaza conditia: daca are valoarea adevarat se trece la pasul 2, daca are valoarea fals se iese din ciclu; 2) se executa secventa din corpul ciclului si se trece apoi la pasul 1. Observatii. Conditia poate fi orice expresie cu valori logice. Secventa din corpul ciclului poate fi orice secventa si poate sa contina la randul ei alte cicluri. Este necesar ca operatiile din corpul ciclului sa modifice valoarea conditiei, in sensul neindeplinirii acesteia pentru a se iesi din ciclu. Exemplu. Algoritmul lui Euclid pentru calcularea celui mai mare divizor comun a doua numere intregi. scrie "Introduceti doua numere intregi" citeste m, n r=m%n // calculeaza restul impartirii cat timp r!=0 m=n n=r r=m%n scrie "c.m.m.d.c.=", n Ciclul cu test final Secventa de operatii din corpul ciclului se executa de asemenea cat timp este indeplinita o anumita conditie, dar testul se efectueaza la sfarsitul ciclului. Forma generala: executa secventa cat timp conditie Modul de executie: 1) executa secventa de operatii din corpul ciclului si se trece la pasul 2; 2) evalueaza conditia, daca adevarat se trece la pasul 1, daca fals se iese din ciclu. Exemplu. Algoritmul lui Euclid pentru calcularea celui mai mare divizor comun a doua numere intregi. scrie "Introduceti doua numere intregi" citeste m, n executa r=m%n // calculeaza restul impartirii m=n n=r cat timp r!=0 scrie "c.m.m.d.c.=", m 16

17 Exemplu. Tabelarea valorilor unei functii, pe un interval si cu un pas >0. 3x f ( x) = 2 x + 1 x [ a, b] executa scrie "Introduceti marginile intervalului si pasul" citeste a, b, pas cat timp (a b pas 0) // verifica corectitudinea datelor initiale x=a scrie " x y" // cap de tabel cat timp x b 3 x y= x scrie x, y x=x+pas Exemplu. Dezvoltarea in serie: e a 2 a a a a = ! 2! 3! n! 3 n In solutia acestei probleme se insumeaza un numar de termeni pana cand termenul general indeplineste conditia: a k < ε, ε > 0 k! executa scrie "Introduceti pct penrtu dezvoltarea in serie si pragul" citeste a, epsilon cat timp epsilon 0 suma=1 tg=a //termenul general al seriei n=1 //calculeaza factorialul de la numitor cat timp tg epsilon suma=suma+tg n=n+1 tg=tg n a scrie "Dezvoltarea in serie =", suma Ciclul cu contor Ciclul cu contor permite executia unei secvente de operatii de un numar prestabilit de ori. Forma generala este: unde: pentru var_contor=val_init, val_finala, val_pas secventa var_cont: variabila contor utilizata pentru contorizarea repetarilor secventei; 17

18 val_init: valoarea initiala a variabilei contor; val_finala: valoarea finala a variabilei contor; val_pas: valoarea pasului cu care se actualizeaza valoarea variabilei contor. Acest parametru poate sa lipseasca, valoarea implicita fiind 1 (multe probleme includ cicluri cu contor avand valoarea pasului 1). Modul de executie: 1) se evalueaza expresiile pentru valoarea initiala, valoarea finala si valoarea pas, determinandu-se astfel inca de la inceput numarul de repetari ale secventei; 2) se initializeaza var_contor cu val_init; 3) se compara valoarea var_contor cu val_finala, daca var_contor are o valoare val_finala atunci se trece la pasul 4, altfel se iese din ciclu; 4) se executa secventa de operatii din corpul ciclului; 5) se incrementeaza valoarea var_contor cu val_pas si se trece la pasul 3. Exemplu. Calcularea factorialului unui numar natural. scrie "Introduceti un numar natural:" citeste n fact=1 pentru i=2,n fact=fact i scrie "Factorial=", fact Exemplu. Calcularea mediei aritmetice a valorilor >0 dintr-o secventa de n numere introduse de la tastatura. scrie "Introduceti lungimea secventei de numere:" citeste n suma=0 contor=0 //contor de numere >0 pentru i=1,n scrie "Introduceti numarul ", i, "din secventa:" citeste x daca x>0 suma=suma+x contor=contor+1 daca contor==0 scrie "Nu exista numere >0 in secventa!" altfel suma=suma/contor //calculeaza media scrie "Media=", suma Exemplu. Descompunerea unui numar intreg in factori primi. scrie "Introduceti un numar intreg:" citeste nr fact_max=nr/2 // valoarea maxima a unui posibil factor prim=adevarat // initial se presupune numar prim pentru fact=2,fact_max putere=0 cat timp nr%fact==0 nr=nr/fact putere=putere+1 prim=fals daca putere>0 18

19 scrie "Factor=", fact, " la puterea=", putere daca prim scrie "Numarul este prim!" Tablouri Un tablou este o colectie de date elementare, toate de acelasi tip. Tablourile pot fi organizate pe o dimensiune (vectori), doua dimensiuni (matrici) sau mai multe dimensiuni (tablouri n- dimensionale). Un element de tablou poate fi specificat prin pozitia pe care acesta o ocupa in cadrul tabloului, utilizand cate o expresie pentru fiecare dimensiune, numita expresie indiciala: nume_tablou [expr_indic 1 ][expr_indic 2 ]...[expr_indic n ] Pentru analogia cu limbajele C/C++ se va considera ca pe fiecare dimensiune de lungime k indicii de tablou au valori de la 0 la k-1. Exemplu. Determinarea maximului dintr-o secventa de numere (vector) si a pozitiei sale. scrie "Introduceti lungimea vectorului:" citeste n scrie "Introduceti elementele vectorului" pentru i=0,n-1 scrie "x[", i, "]=" citeste x[i] maxim=x[0] //se presupune ca prima valoare este cea maxima pozitia=0 pentru i=1,n-1 daca x[i]>maxim maxim=x[i] //actualizeaza maximul pozitia=i scrie "Maxim=", maxim, " in pozitia=", pozitia Exemplu. Ordonarea crescatoare a unei secvente de numere (vector) prin metoda bulelor (Bubble Sort). scrie "Introduceti lungimea vectorului:" citeste n scrie "Introduceti elementele vectorului" pentru i=0,n-1 scrie "x[", i, "]=" citeste x[i] executa ordonat=adevarat pentru i=1,n-1 daca x[i-1]>x[i] temp=x[i-1] x[i-1]=x[i] x[i]=temp ordonat=fals cat timp nu(ordonat) scrie "Vectorul ordonat crescator:" pentru i=0,n-1 scrie "x[", i, "]=",x[i] 19

20 Exemplu. Calcularea mediei aritmetice a elementelor >0 dintr-o matrice oarecare. scrie "Introduceti dimensiunile matricii:" citeste m,n //numar de linii si numar de coloane pentru i=0,m-1 pentru j=0,n-1 scrie "a[",i,"][",j,"]=" citeste a[i][j] suma=0 contor=0 //contor de elemente >0 pentru i=0,m-1 pentru j=0,n-1 daca a[i][j]>0 suma=suma+a[i][j] contor=contor+1 daca contor==0 scrie "Nu exista elemente >0!" altfel suma=suma/contor scrie "Media=", suma Exemplu. Produsul a doua matrici: A l,m B m,n = C l,n unde fiecare element al matricii produs se calculeaza cu relatia: c i, j m 1 = a k = 0 i, k b k, j pentru i = 0,1,..., l 1 pentru j = 0,1,..., n 1 scrie "Introduceti dimensiunile celor doua matrici:" citeste l,m,n scrie "Introduceti prima matrice:" pentru i=0,l-1 pentru j=0,m-1 scrie "a[",i,"][",j,"]=" citeste a[i][j] scrie "Introduceti a doua matrice:" pentru i=0,m-1 pentru j=0,n-1 scrie "b[",i,"][",j,"]=" citeste b[i][j] pentru i=0,l-1 pentru j=0,n-1 s=0 pentru k=0,m-1 s=s+a[i][k] b[k][j] c[i][j]=s scrie "Matricea produs este:" pentru i=0,l-1 pentru j=0,n-1 scrie "c[",i,"][",j,"]=",c[i][j] 20

21 Functii si proceduri Functiile si procedurile sunt secvente de operatii care se definesc intr-un algoritm o singura data, dar pot fi executate (apelate) de mai multe ori, chiar cu unele variabile schimbate. Procedurile pot furniza mai multe rezultate prin intermediul parametrilor. O functie furnizeaza in principiu un singur rezultat (rezultatul principal), dar poate furniza si rezultate suplimentare prin intermediul parametrilor, la fel ca o procedura. Deoarece in limbajele C/C++ nu sunt disponibile procedurile, in continuare vor fi discutate numai functiile. Forma generala a unei functii este: functia nume_f (parametri) secventa unde: nume_f : numele functiei prin intermediul caruia functia poate fi apelata; secventa : secventa de operatii pseudocod care se executa la un apel; parametri : prezinta partea variabila a functiei, ceea ce inseamna ca secventa de operatii se poate executa la fiecare apel cu un alt set de variabile. Parametrii din definitia functiei sunt parametri formali, au rol descriptiv si in principiu nu corespund unor date concrete ale problemei de rezolvat. Apelul unei functii se face prin utilizarea nume_f (parametri) in cadrul unor expresii. Parametrii de la apel sunt parametrii efectivi: acestia trebuie sa corespunda ca numar cu cei formali de la definitia functiei si inlocuiesc in ordine parametrii formali din secventa de operatii inainte de executia acesteia. Rezultatul principal, corespunzator numelui functiei este furnizat la executia secventei printr-o operatie: intoarce expresie Se pot defini si functii care nu intorc un rezultat principal, deci in secventa din corpul functiei nu exista nicio operatie intoarce. La apelul functiei anumiti parametri furnizeaza date initiale de prelucrat pentru secventa de operatii din corpul functiei, de aceea acesti parametri pot fi considerati parametrii de intrare. Alti parametri furnizeaza rezultate suplimentare ale prelucrarilor, in plus fata de rezultatul principal, de aceea acestia pot fi considerati parametrii de iesire. Evident ca o functie poate avea parametri cu dublu rol, deci sunt parametrii de intrare / iesire. Exemplu. Calcularea C k m m! k!( m k)! = folosind formula factorialelor, pentru o secventa de perechi de numere naturale m k. Pentru calcularea factorialului unui numar natural se va defini o functie in cadrul algoritmului. functia factorial (n) fact=1 pentru i=2,n fact=fact i intoarce fact // modulul principal al algoritmului scrie "Introduceti lungimea secventei de perechi de numere:" citeste lung pentru j=1,lung executa scrie "Introduceti doua numere naturale, m k:" citeste m, k cat timp m<k 21

22 factorial( m) comb= factorial( k) factorial( m k) scrie "Combinari=", comb Exemplu. Se definesc functii pentru calcularea produsului si catului a doua numere complexe reprezentate sub forma trigonometrica si utilizand aceste functii se calculeaza valoarea expresiei: z1 z2 z = z z 3 4 functia produs (ro1, alfa1, ro2, alfa2, ro, alfa) ro=ro1 ro2 alfa=alfa1+alfa2 functia cat (ro1, alfa1, ro2, alfa2, ro, alfa) ro=ro1/ro2 //testul ro2 0 se face inainte de apel alfa=alfa1-alfa2 // modulul principal scrie "Introduceti numerele complexe in forma trigonometrica" citeste r1, a1, r2, a2, r3, a3, r4, a4 produs (r1, a1, r2, a2, r12, a12) produs (r3, a3, r4, a4, r34, a34) daca r34==0 scrie "Numitor zero! Nu se poate calcula!" altfel cat (r12, a12, r34, a34, r, a) scrie "Expresia:", r, a Exemplu. Pentru o matrice citita de la tastatura se determina coloana cu numarul maxim de zerouri. In acest scop se defineste o functie care pornind de la o matrice genereaza un vector in care fiecare element reprezinta numarul de zerouri de pe coloana corespunzatoare a matricii. Se defineste o alta functie care determina maximul dintre elementele unui vector si pozitia acestuia. functia genvect (x, v, nl, nc) pentru i=0, nc-1 cont=0 pentru j=0, nl-1 daca x[j][i]==0 cont=cont+1 v[i]=cont functia maxvect (v, lung, vmax, vpoz) vmax=v[0] vpoz=0 pentru i=1, lung-1 daca v[i]>vmax vmax=v[i] vpoz=i //modulul principal scrie "introduceti dimensiunile matricii:" citeste m,n pentru i=0,m-1 pentru j=0,n-1 scrie "a[",i,"][",j,"]=" citeste a[i][j] genvect (a, b, m, n) maxvect (b, n, bmax, bpoz) 22

23 scrie "matricea are maxim ", bmax, " zerouri in coloana ", bpoz Exemplu. Rezolvarea unui sistem de trei ecuatii liniare cu trei necunoscute prin metoda Cramer. Sistemul este: a 0,0 x 0 + a 0,1 x 1 + a 0,2 x 2 = b 0 a 1,0 x 0 + a 1,1 x 1 + a 1,2 x 2 = b 1 a 2,0 x 0 + a 2,1 x 1 + a 2,2 x 2 = b 2 sau sub forma matriciala: A X = B functia det3 (y) dete=y[0][0]*y[1][1]*y[2][2]+y[1][0]*y[2][1]*y[0][2]+ y[0][1]*y[1][2]*y[2][0]-y[2][0]*y[1][1]*y[0][2]- y[0][1]*y[1][0]*y[2][2]-y[1][2]*y[2][1]*y[0][0] intoarce dete functia inloc (y, w, v, col) pentru i=0, 2 pentru j=0, 2 w[i][j]=y[i][j] pentru i=0, 2 w[i][col]=v[i] // modulul principal scrie "Introduceti coeficientii necunoscutelor:" pentru i=0, 2 pentru j=0, 2 scrie "a[",i,"][",j,"]=" citeste a[i][j] scrie "Introduceti termenii liberi: " pentru i=0, 2 scrie "b[",i,"]=" citeste b[i] ds=det3(a) daca ds==0 scrie "Sistemul nu este Cramer!" altfel pentru i=0,2 inloc (a,c,b,i) x[i]=det3(c)/ds scrie "x[",i,"]=",x[i] 23

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

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

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

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

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

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

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

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

(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ă

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ϕ = (ϕ,ϕ

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

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

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

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

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

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ă,

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

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:

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

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

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

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

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

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

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

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

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

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

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

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:

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

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

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

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ţ,

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

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

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

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

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

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER 2. Circuite logice 2.5. Sumatoare şi multiplicatoare Copyright Paul GASNER Adunarea în sistemul binar Adunarea se poate efectua în mod identic ca la adunarea obişnuită cu cifre arabe în sistemul zecimal

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

Curs 2 DIODE. CIRCUITE DR

Curs 2 DIODE. CIRCUITE DR Curs 2 OE. CRCUTE R E CUPRN tructură. imbol Relația curent-tensiune Regimuri de funcționare Punct static de funcționare Parametrii diodei Modelul cu cădere de tensiune constantă Analiza circuitelor cu

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

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,

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

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

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

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:, REZISTENTA MATERIALELOR 1. Ce este modulul de rezistenţă? Exemplificaţi pentru o secţiune dreptunghiulară, respectiv dublu T. RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii

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

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.

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

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,

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

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

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

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 }.

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

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

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

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

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

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

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

Problema a II - a (10 puncte) Diferite circuite electrice

Problema a II - a (10 puncte) Diferite circuite electrice Olimpiada de Fizică - Etapa pe judeţ 15 ianuarie 211 XI Problema a II - a (1 puncte) Diferite circuite electrice A. Un elev utilizează o sursă de tensiune (1), o cutie cu rezistenţe (2), un întrerupător

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

Subiecte Clasa a V-a

Subiecte Clasa a V-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

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

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

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

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

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

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36]. Componente şi circuite pasive Fig.3.85. Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36]. Fig.3.86. Rezistenţa serie echivalentă pierderilor în funcţie

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

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,.......................................

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

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I. Modelul 4 Se acordă din oficiu puncte.. Fie numărul complex z = i. Calculaţi (z ) 25. 2. Dacă x şi x 2 sunt rădăcinile ecuaţiei x 2 9x+8 =, atunci să se calculeze x2 +x2 2 x x 2. 3. Rezolvaţi în mulţimea

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

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,

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

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

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

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

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

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

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

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili Anexa 2.6.2-1 SO2, NOx şi de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili de bioxid de sulf combustibil solid (mg/nm 3 ), conţinut de O 2 de 6% în gazele de ardere, pentru

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

Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale

Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale Investeşte în oameni! FONDUL SOCIAL EUROPEAN Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 2013 Axa prioritară nr. 1 Educaţiaşiformareaprofesionalăînsprijinulcreşteriieconomiceşidezvoltăriisocietăţiibazatepecunoaştere

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

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,

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

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument: Erori i incertitudini de măurare Sure: Modele matematice Intrument: proiectare, fabricaţie, Interacţiune măurandintrument: (tranfer informaţie tranfer energie) Influente externe: temperatura, preiune,

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

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

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

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

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

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent Laborator 3 Divizorul de tensiune. Divizorul de curent Obiective: o Conexiuni serie şi paralel, o Legea lui Ohm, o Divizorul de tensiune, o Divizorul de curent, o Implementarea experimentală a divizorului

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

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.

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

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.

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

28. SUPRADEFINIREA OPERATORILOR

28. SUPRADEFINIREA OPERATORILOR 28. SUPRADEFINIREA OPERATORILOR Pentru un tip clasă se poate defini un set de operatori asociaţi prin supradefinirea operatorilor existenţi, ceea ce permite realizarea de operaţii specifice cu noul tip

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

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

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

10 REPREZENTAREA DIGITALĂ

10 REPREZENTAREA DIGITALĂ 10 REPREZENTAREA DIGITALĂ 10.1 Niveluri logice În reprezentarea digitală pentru exprimarea cantitativă a informaţiei se folosesc semnale electrice care pot avea doar două niveluri de tensiune: un nivel

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

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,

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

Arhitectura Calculatoarelor

Arhitectura Calculatoarelor Universitatea din Craiova Facultatea de Automatică, Calculatoare și Electronică Catedra de Ingineria Calculatoarelor și Comunicații Arhitectura Calculatoarelor Concepte fundamentale Structura unui calculator

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

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ă

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

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,

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

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

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

2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1

2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1 2. Circuite logice 2.2. Diagrame Karnaugh Copyright Paul GASNER Diagrame Karnaugh Tehnică de simplificare a unei expresii în sumă minimă de produse (minimal sum of products MSP): Există un număr minim

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

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

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

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)

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

Componente şi Circuite Electronice Pasive. Laborator 4. Măsurarea parametrilor mărimilor electrice

Componente şi Circuite Electronice Pasive. Laborator 4. Măsurarea parametrilor mărimilor electrice Laborator 4 Măsurarea parametrilor mărimilor electrice Obiective: o Semnalul sinusoidal, o Semnalul dreptunghiular, o Semnalul triunghiular, o Generarea diferitelor semnale folosind placa multifuncţională

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

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

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

4. Măsurarea tensiunilor şi a curenţilor electrici. Voltmetre electronice analogice

4. Măsurarea tensiunilor şi a curenţilor electrici. Voltmetre electronice analogice 4. Măsurarea tensiunilor şi a curenţilor electrici oltmetre electronice analogice oltmetre de curent continuu Ampl.c.c. x FTJ Protectie Atenuator calibrat Atenuatorul calibrat divizor rezistiv R in const.

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

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

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

Tranzistoare bipolare şi cu efect de câmp

Tranzistoare bipolare şi cu efect de câmp apitolul 3 apitolul 3 26. Pentru circuitul de polarizare din fig. 26 se cunosc: = 5, = 5, = 2KΩ, = 5KΩ, iar pentru tranzistor se cunosc următorii parametrii: β = 200, 0 = 0, μa, = 0,6. a) ă se determine

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

a. Caracteristicile mecanice a motorului de c.c. cu excitaţie independentă (sau derivaţie)

a. Caracteristicile mecanice a motorului de c.c. cu excitaţie independentă (sau derivaţie) Caracteristica mecanică defineşte dependenţa n=f(m) în condiţiile I e =ct., U=ct. Pentru determinarea ei vom defini, mai întâi caracteristicile: 1. de sarcină, numită şi caracteristica externă a motorului

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

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)

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

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

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

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 +

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

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

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

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

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

Sisteme de numeraţie

Sisteme de numeraţie Sisteme de numeraţie F.Boian, Bazele matematice ale calculatoarelor, UBB Cluj-Napoca, 2002 Sistem de numeraţie - totalitatea regulilor folosite pentru scrierea numerelor cu ajutorul unor simboluri (cifre).

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

CIRCUITE INTEGRATE MONOLITICE DE MICROUNDE. MMIC Monolithic Microwave Integrated Circuit

CIRCUITE INTEGRATE MONOLITICE DE MICROUNDE. MMIC Monolithic Microwave Integrated Circuit CIRCUITE INTEGRATE MONOLITICE DE MICROUNDE MMIC Monolithic Microwave Integrated Circuit CUPRINS 1. Avantajele si limitarile MMIC 2. Modelarea dispozitivelor active 3. Calculul timpului de viata al MMIC

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

Stabilizator cu diodă Zener

Stabilizator cu diodă Zener LABAT 3 Stabilizator cu diodă Zener Se studiază stabilizatorul parametric cu diodă Zener si apoi cel cu diodă Zener şi tranzistor. Se determină întâi tensiunea Zener a diodei şi se calculează apoi un stabilizator

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

ANEXA 4. OPERAŢII ARITMETICE IMPLEMENTĂRI

ANEXA 4. OPERAŢII ARITMETICE IMPLEMENTĂRI ANEXA 4. OPERAŢII ARITMETICE IMPLEMENTĂRI ADUNAREA ÎN BINAR: A + B Adunarea a două numere de câte N biţi va furniza un rezultat pe N+1 biţi. Figura1. Anexa4. Sumator binar complet Schema bloc a unui sumator

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

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

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

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

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

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

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

1.3. Erori în calculele numerice

1.3. Erori în calculele numerice Prof.dr.ing. Universitatea "Politehnica" Bucureşti, Facultatea de Inginerie Electrică, Departamentul de Electrotehnică Suport didactic pentru disciplina Metode numerice, 2017-2018 1/41 Cuprins Caracterizarea

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

VII.2. PROBLEME REZOLVATE

VII.2. PROBLEME REZOLVATE Teoria Circuitelor Electrice Aplicaţii V PROBEME REOVATE R7 În circuitul din fiura 7R se cunosc: R e t 0 sint [V] C C t 0 sint [A] Se cer: a rezolvarea circuitului cu metoda teoremelor Kirchhoff; rezolvarea

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

Capitolul 4 Amplificatoare elementare

Capitolul 4 Amplificatoare elementare Capitolul 4 mplificatoare elementare 4.. Etaje de amplificare cu un tranzistor 4... Etajul emitor comun V CC C B B C C L L o ( // ) V gm C i rπ // B // o L // C // L B ro i B E C E 4... Etajul colector

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

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

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

Proiectarea filtrelor prin metoda pierderilor de inserţie

Proiectarea filtrelor prin metoda pierderilor de inserţie FITRE DE MIROUNDE Proiectarea filtrelor prin metoda pierderilor de inserţie P R Puterea disponibila de la sursa Puterea livrata sarcinii P inc P Γ ( ) Γ I lo P R ( ) ( ) M ( ) ( ) M N P R M N ( ) ( ) Tipuri

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

Codificatorul SN74148 este un codificator zecimal-bcd de trei biţi (fig ). Figura Codificatorul integrat SN74148

Codificatorul SN74148 este un codificator zecimal-bcd de trei biţi (fig ). Figura Codificatorul integrat SN74148 5.2. CODIFICATOAE Codificatoarele (CD) sunt circuite logice combinaţionale cu n intrări şi m ieşiri care furnizează la ieşire un cod de m biţi atunci când numai una din cele n intrări este activă. De regulă

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

III.2.2. Reprezentarea în virgulă mobilă

III.2.2. Reprezentarea în virgulă mobilă III... Reprezentarea în virgulă mobilă Una dintre cele mai răspândite reprezentări internă (în PC-uri) a numerelor reale este reprezentarea în virgulă mobilă. Reprezentarea în virgulă mobilă presupune

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

1. Reprezentarea numerelor şi operaţii aritmetice în sisteme de calcul.

1. Reprezentarea numerelor şi operaţii aritmetice în sisteme de calcul. 1. Reprezentarea numerelor şi operaţii aritmetice în sisteme de calcul. 1.1. Sisteme de reprezentare ale numerelor: a) Sistemul zecimal: baza sistemului este 10 simbolii (digiţi) sistemului sunt cifrele

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

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

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

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.

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