label Cursuri autorenew 2025-09-29, 16:57
Cursul se adreseaza tuturor celor care doresc sa patrunda tainele programarii calculatoarelor. Elevii, studentii, profesorii si orice persoana interesata in rezolvarea problemelor cu ajutorul calculatorului pot face primii pasi parcurgand aceasta carte.

A doua editie, modificata, la sugestiile studentilor si a profesorilor care au studiat prima editie, restructureaza materialul in doua mari parti: elemente de algoritmica si respectiv elemente de programare avansata.

Subiectul acestei carti ramane fundamentarea cunostintelor elementare legate de elaborarea algoritmilor, structurarea si conceperea acestora, precum si modalitati de reprezentare a datelor in cadrul rezolvarii problemelor cu ajutorul calculatorului si reprezinta prima categorie prezentata mai sus. Cursul parcurge gradat etapele de elaborare a algoritmilor si de rezolvare a problemelor.

Continutul lucrarii este elaborat in trepte, cu succesiuni naturale ale evenimentelor, incepand cu notiunile introductive despre algoritmi si descrierea acestora pana la descrierea principalilor algoritmi impreuna cu modalitatile de reprezentarea a datelor. Prezentarea metodelor evoluate de programare va fi subiectul celei de a doua parti, pe care cititorii o vor gasi sub titlul Programarea calculatoarelor. Capitolele care intregesc lucrarea se refera la elaborarea, corectitudinea, complexitatea si testarea algoritmilor, la modurile de reprezentare a datelor structurate.

Cuprins

1.Introducere 7

1.1. Scurt istoric 7

1.2.Notiunea de algoritm. Caracteristici. 8

1.3.Verificarea cunostintelor 11

1.4. Raspunsuri. 12

2.Descrierea algoritmilor 13

2.1.Proiectarea algoritmilor 13

2.2.Programarea structurata. Programarea modulara. Programarea orientata-obiect. 15

2.3.Moduri de organizare si reprezentare a datelor 16

2.3.1.Tipul datelor 16

2.3.2.Organizarea datelor. 17

2.3.2.1. Date structurate care contin marimi de acelasi tip sau date structurate omogene. 18

2.3.2.2. Date structurate care contin marimi de diverse tipuri 20

2.3.3.Modul de reprezentare. 20

2.3.4.Natura datelor. 21

2.4.Subalgoritmi 24

2.5.Metode de descriere a algoritmilor 25

2.5.1.Limbajul pseudocod 25

2.5.2.Schema logica 25

2.5.3. Descriere comparativa pseudocod / schema logica 26

2.5.3.1. Definirea unui algoritm si a eventualilor parametrii 26

2.5.3.2.Declararea constantelor si variabilelor 26

2.5.3.3. Structura liniara 26

2.5.3.4. Structura alternativa 28

2.5.3.5. Structura repetitiva 29

2.6. Exemple folosind structuri alternative 31

2.6.1.Proprietati ale structurii alternative. 35

2.7. Exemple care utilizeaza structuri repetitive 36

2.8.Verificarea cunostintelor 40

2.9.Raspunsuri. 43



3.Elaborarea, corectitudinea, complexitatea si testarea algoritmilor 46

3.1.Elaborarea algoritmilor 46

3.2.Corectitudinea algoritmilor 47

3.3.Complexitatea algoritmilor 48

3.4.Testarea algoritmilor 49

3.5.Verificarea cunostintelor 51

3.6.Raspunsuri. 51

4.Algoritmi elementari 53

4.1.Schimbarea valorilor a doua variabile 53

4.2.Parcurgerea elementelor unei multimi, (secvente). 54

4.3.Implementarea cuantificatorilor matematici oricare si exista. 55

4.4.Implementarea produsului cartezian a doua multimi. 56

4.5.Metode de sortare a elementelor unei multimi. 57

4.5.1. Sortarea prin metoda bulelor, algoritmul “Bubble Sort” 58

4.5.2.Sortarea prin selectie 59

4.5.3.Sortarea prin insertie 59

4.5.4.Sortarea prin numarare 59

4.6.Interclasarea 60

4.7.Recursivitatea 61

4.8.Functii. Functii recursive. 64

4.8.1. Functii. Subalgoritm de tip functie. 64

4.8.2. Functii recursive. 64

4.9.Verificarea cunostintelor 66

4.10.Raspunsuri. 69

5.Structuri de date 71

5.1.Liste 71

5.2.Tipuri de liste 72

5.2.1. Stiva 72

5.2.2. Coada 73

5.2.3. Lista circulara 74

5.2.4. Lista dublu inlantuita 75

5.3.Verificarea cunostintelor 76

5.4.Raspunsuri. 76

6.Anexa 1 77

7.Anexa 2 88

8.Bibliografie 91