Sunteți pe pagina 1din 24

Grigore ALBEANU http://www.researcherid.

com/rid/H-4522-2011

G. Albeanu, Programare Procedural M1

Versiunea 2013

Obiectivele disciplinei Coninutul tematic Lucrri de laborator Evaluare Bibliografie C1 - Algoritmi: Algoritmi: Caracteristici. Caracteristici. Descriere. Descriere. Complexitate

G. Albeanu, Programare Procedural M1

Versiunea 2013

G. Albeanu, Programare Procedural M1

Versiunea 2013

Algoritmi: Caracteristici. Descriere. Complexitate [Complexitatea programelor (time.h)]. Corectitudine [Corectitudinea programelor C. Metoda aseriunilor (assert.h)]. Limbaje de programare. Caracteristici. Exemple: FORTRAN, C, Pascal... Limbajul de programare C: Entiti sintactice. Operatori. Expresii. Instruciuni. Funcii (definire i declarare, transferul parametrilor). Directive de preprocesare. Tablouri i Pointeri. Funcia main cu argumente. Pachetele: stdio.h, math.h, string.h Alocare static Alocare dinamic. Structuri de date dinamice (liste i arbori). Aplicaii ale utilizrii tipurilor de date structurate (struct, union, typedef) cu ajutorul pointerilor: crearea i explorarea structurilor de date. Pachetele: stdlib.h, alloc.h Operaii de intrare-ieire. Fiiere n C i aplicaii. Pachetul iostream.h (C++). Testarea programelor C. Utilizarea bibliotecilor statice (.LIB) i dinamice (.DLL). Metode de proiectarea programelor.

G. Albeanu, Programare Procedural M1

Versiunea 2013

Prezena (Realizarea lucrrilor practice-proiectelor) obligatorie ! Tematica: Tematica:

1. Structura programelor C. Instruciuni decizionale. Instruciuni repetitive 2. Tablouri unidimensionale. Tablouri bidimensionale 3. Tablouri i pointeri 4. Transferul parametrilor 5. Uniti de translatare. Funcia main cu argumente. Comunicare cu module scrise n limbaj de asamblare sau alte limbaje de programare. 6. Funcii cu numr variabil de argumente. Pointeri 7. Aplicaii ale pointerilor (liste, arbori, grafuri). Fiiere 8. Corectitudinea i complexitatea programelor 9. Testarea programelor 10. Biblioteci statice i biblioteci dinamice. Realizarea aplicaiilor complexe.
G. Albeanu, Programare Procedural M1

Versiunea 2013

30% Laborator 70% Evaluare final n (pre)sesiune Sesiuni de examinare: iarn, var, toamn/mrire de not Refacerea lucrrilor de laborator condiioneaz intrarea n evaluarea final. Structura lucrrii finale: Sintaxa/semantica C, algoritmi, complexitate (teorie i aplicaii), corectitudine (aseriuni), directive de preprocesare, pointeri, fiiere, funcii cu numr variabil de argumente, main cu parametri, generarea secvenelor de test.

G. Albeanu, Programare Procedural M1

Versiunea 2013

G. Albeanu, Algoritmi i limbaje de programare, Editura Fundaiei Romnia de Mine, Bucureti, 2000. B.W. Kernighan, D.M. Ritchie, The C programming language, Prentice Hall, 1988 (2nd ed.). Peter Salus, Handbook of Programming Languages: Vol. II: Imperative Programming Languages, Macmillan Technical Publishing, 1998. C.A. Giumale, Introducere n Analiza Algoritmilor, Polirom, 2004. H.S. Wilf, Algorithmes et complexite, Masson / Prentice+Hall, 1989. Blnescu T., Corectitudinea Algoritmilor, Editua Tehnic, 1995. B.W. Kernighan, R. Pike, The practice of programming, Addison-Wesley, 1999. P. van der Linden, Expert C programming, Prentice Hall, 1994. G. Perry, C by examples, Que, 2000. P.S. Deshpande, O.G. Kakde, C and Data structures, Charles River Media, 2004.

G. Albeanu, Programare Procedural M1

Versiunea 2013

Prin algoritm vom nelege o secven finit de comenzi explicite i neambigue care executate pentru o mulime de date (ce satisfac anumite condiii iniiale), conduce n timp finit la rezultatul corespunztor. Caracteristici: Caracteristici: Generalitate, Claritate, Finititudine, Corectitudine, Performan, Robustee Descriere: Limbaj natural / Pseudocod, Diagram (schem logic), program, ...

G. Albeanu, Programare Procedural M1

Versiunea 2013

Analiza complexitii unui algoritm presupune determinarea resurselor de care acesta are nevoie pentru a produce datele de ieire. Prin resurs nelegem timpul de executare, dar uneori este necesar s analizm i alte resurse precum: memoria intern, memoria extern etc. Modelul mainii pe care va fi executat algoritmul nu presupune existena operaiilor paralele; operaiile se execut secvenial. n analiza complexitii unui algoritm avem n vedere cazul cel mai defavorabil din mai multe motive:
a) Timpul de executare n cazul cel mai defavorabil ofer o limit superioar a timpului de executare (avem certitudinea c executarea algoritmului nu va dura mai mult). Aceast situaie va fi acoperitoare pentru algoritmii cu funcionare n cadrul sistemelor pentru controlul proceselor n timp real. b) Situaia cea mai defavorabil este ntlnit des. c) Timpul mediu de executare este, uneori, apropiat de timpul de executare n cazul cel mai defavorabil, dar dificil de estimat.
G. Albeanu, Programare Procedural M1

Versiunea 2013

G. Albeanu, Programare Procedural M1

Versiunea 2013

10

G. Albeanu, Programare Procedural M1

Versiunea 2013

11

Tem:
Determinarea maximului i minimului, simultan, folosind 3n/2 + O(1) operaii de comparare.

G. Albeanu, Programare Procedural M1

Versiunea 2013

12

G. Albeanu, Programare Procedural M1

Versiunea 2013

13

G. Albeanu, Programare Procedural M1

Versiunea 2013

14

Tem:
Complexitatea algoritmului de nmulire a unui ir de matrice A1, A2, ..., Ak, k>2. (Metoda programrii dinamice permite obinerea unui algoritm cu numr minim de operaii de nmulire)

G. Albeanu, Programare Procedural M1

Versiunea 2013

15

Pentru msurarea timpului includei fiierul antet <time.h>. Acesta conine prototipul functiei clock(), care ntoarce numrul de tacte de ceas de timp real scurs de la nceperea programului, pna n punctul n care se plaseaz aceast funcie. Pentru obtinerea timpului n secunde se folosete expresia clock()/CLK_TCK. Plasnd dou asemenea expresii, naintea i dup apelul subprogramului aflat sub msurare, diferena lor ne d timpul consumat de algoritm.

In versions of Microsoft C before 6.0, the CLOCKS_PER_SEC constant was called CLK_TCK.
G. Albeanu, Programare Procedural M1

Versiunea 2013

16

G. Albeanu, Programare Procedural M1

Versiunea 2013

17

G. Albeanu, Programare Procedural M1

Versiunea 2013

18

G. Albeanu, Programare Procedural M1

Versiunea 2013

19

G. Albeanu, Programare Procedural M1

Versiunea 2013

20

G. Albeanu, Programare Procedural M1

Versiunea 2013

21

G. Albeanu, Programare Procedural M1

Versiunea 2013

22

G. Albeanu, Programare Procedural M1

Versiunea 2013

23

Generarea numerelor pseudoaleatoare: http://en.wikipedia.org/wiki/Random_number_generation Rezolvarea ecuaiilor liniare: http://en.wikipedia.org/wiki/System_of_linear_equations Cutare n iruri de caractere: http://en.wikipedia.org/wiki/String_searching_algorithm Generarea permutrilor, aranjamentelor, combinrilor, etc. Metode algoritmice n geometrie: http://en.wikipedia.org/wiki/Computational_geometry Metode algoritmice n algebr: http://en.wikipedia.org/wiki/Computer_algebra_system Metode algoritmice n analiza matematic: http://en.wikipedia.org/wiki/Numerical_analysis Algoritmi evoluioniti: http://en.wikipedia.org/wiki/Evolutionary_algorithm Alte clase de algoritmi (inclusiv aproximativi): http://en.wikipedia.org/wiki/Approximation_algorithm

G. Albeanu, Programare Procedural M1

Versiunea 2013

24

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