Cuprins 4
1. Structura generală a unui program C 10
1.1. Istoric, concepţie , evoluţie 10
1.2. Conceptul de funcţie 10
1.2.1. Definiţia unei funcţii 11
1.2.2. Antet şi prototip 12
1.2.3. Corpul unei funcţii 12
1.3. Construcţiile de bază ale limbajului 12
1.3.1. Caractere 12
1.3.2. Nume 13
1.3.3. Cuvinte cheie 13
1.3.4. Tipuri de bază 14
1.3.5. Constante 14
1.3.6. Variabile simple 16
1.3.7. Tablouri 16
1.3.8. Comentariu 17
1.4. Preprocesare 17
1.4.1. Includerea unui fişier sursă 18
1.4.2. Constante simbolice 18
2. Clase de variabile (de memorie) 20
2.1. Variabile globale 20
2.2. Variabile locale 20
2.3. Variabile registru 22
2.4. Iniţializare 22
3. Expresii, operanzi, operatori 25
3.1. Expresii 25
3.2. Operanzi 25
3.3. Operatori 25
3.3.1. Operatori aritmetici 26
3.3.2. Operatori relaţionali 26
3.3.3. Operatori de egalitate 26
3.3.4. Operatori logici 27
3.3.5. Operatori logici pe biţi 27
3.3.6. Operatori de atribuire 29
3.3.7. Operatori de incrementare şi decrementare 30
3.3.8. Operatorul de conversie explicită (expresie cast) 30
3.3.9. Operatorul dimensiune (sizeof) 31
3.3.10. Regula conversiilor implicite 31
3.3.11. Operatori condiţionali 32
3.3.12. Operatorul virgulă 33
4. Intrări / ieşiri standard 34
4.1. Funcţia standard printf 34
4.2. Funcţia standard scanf 36
4.3. Funcţia standard putchar 38
4.4. Funcţia standard getchar 39
4.5. Funcţiile standard getche şi getch 39
5. Instrucţiuni 41
5.1. Scurt istoric al metodelor de programare 41
5.1.1. Programare artizanală 41
5.1.2. Programare procedurală 41
5.1.3. Programare modulară 41
5.1.4. Programare structurată 42
5.1.5. Programare prin abstractizarea datelor 43
5.1.6. Programarea orientată spre obiecte 43
5.2. Instrucţiunea vidă 44
5.3. Instrucţiunea expresie 45
5.4. Instrucţiunea compusă 45
5.5. Instrucţiunea if 46
5.6. Instrucţiunea while 47
5.7. Instrucţiunea for 48
5.8. Instrucţiunea do while 49
5.9. Instructiunea switch 50
5.10. Instrucţiunea break 51
5.11. Instrucţiunea continue 52
5.12. Instrucţiunea goto 52
5.13. Apelul şi revenirea dintr-o funcţie 52
5.13.1. Apelul unei funcţii 52
5.13.2. Prototipul unei funcţii 53
5.13.3. Apel prin valoare şi apel prin referinţă 54
5.13.4. Revenirea dintr-o funcţie 54
6. Pointeri 56
6.1. Declaraţia de pointer 56
6.2. Legătura dintre pointeri şi tablouri 57
6.3. Operaţii cu pointeri 58
6.3.1. Incrementare şi decrementare 58
6.3.2. Adunarea şi scăderea unui întreg dintr-un pointer 58
6.3.3. Compararea a doi pointeri 59
6.3.4. Diferenţa a doi pointeri 59
6.3.5. Exemple 59
6.4. Alocarea dinamică a memoriei 60
6.5. Pointeri spre funcţii 61
6.6. Tratarea parametrilor din linia de comandă 63
6.7. Modificatorul const 64
6.8. Stiva 66
7. Recursivitate 67
8. Structuri, tipuri utilizator 72
8.1. Declaraţia de structură 72
8.2. Accesul la elementele unei structuri 74
8.3. Atribuiri de nume pentru tipuri de date 75
8.4. Uniune 76
8.5. Câmp 81
8.6. Tipul enumerat 82
9. Liste 85
9.1. Date structurate definite recursiv 85
9.2. Liste înlănţuite 85
9.3. Lista liniară simplu înlănţuită 86
9.4. Crearea şi afişarea unei liste 87
10. Prelucrarea fişierelor 89
10.1. Fişiere 89
10.2. Nivelul inferior de prelucrare al fişierelor 89
10.2.1. Deschiderea unui fişier 89
10.2.2. Citirea dintr-un fişier (consultare) 90
10.2.3. Scrierea într-un fişier (creare, actualizare, adăugare) 91
10.2.4. Poziţionarea într-un fişier 91
10.2.5. Închiderea unui fişier 92
10.3. Nivelul superior de prelucrare a fişierelor 93
10.3.1. Deschiderea unui fişier 93
10.3.2. Prelucrarea pe caractere a unui fişier 94
10.3.3. Închiderea unui fişier 94
10.3.4. Operaţiile de intrare-ieşire cu format 95
10.3.5. Intrări-ieşiri de şiruri de caractere 96
10.3.6. Poziţionarea într-un fişier 97
10.3.7. Prelucrarea fişierelor binare 97
10.4. Ştergerea unui fişier 99
11. Funcţii standard 100
11.1. Macrouri de clasificare 100
11.2. Macrouri de transformare a simbolurilor 101
11.3. Conversii 101
11.4. Funcţii de prelucrare a şirurilor de caractere 103
11.5. Funcţii de calcul 104
11.6. Funcţii pentru controlul proceselor 105
11.7. Funcţii pentru gestiunea datei şi orei 105
11.8. Alte funcţii diverse de uz general 106
12. Gestiunea ecranului în mod text 107
12.1. Setarea ecranului în mod text 108
12.2. Definirea unei ferestre 108
12.3. Ştergerea unei ferestre 109
12.4. Gestiunea cursorului 109
12.5. Determinarea parametrilor ecranului 110
12.6. Modurile video alb/negru 110
12.7. Setarea culorilor 111
12.8. Gestiunea textelor 111
13. Gestiunea ecranului în mod grafic 114
13.1. Setarea modului grafic 114
13.2. Gestiunea culorilor 116
13.3. Starea ecranului 118
14. Probleme diverse 120
14.1. Generarea combinărilor 120
14.2. Metoda greedy 121
14.3. Metoda backtracking (căutare cu revenire) 123
14.4. Metoda divide et impera (divide şi stăpâneşte) 128
14.5. Metoda programării dinamice 130
15. Facilităţi noi în limbajul C++ 135
15.1Extinderea limbajului C 135
15.2. Operatori 137
15.2.1. Operatorul de rezoluţie 137
15.2.2. Folosirea operatorului adresă pentru definirea tipului referinţă 137
15.2.3. Apelul prin referinţă 138
15.2.4. Operatori pentru alocare şi dezalocare dinamică a memoriei 139
15.3. Structuri, reuniuni şi tipuri enumerare 140
15.4. Funcţii 141
15.4.1. Iniţializarea parametrilor formali ai funcţiilor 141
15.4.2. Funcţii care returnează tipuri referinţă 142
15.4.3. Supraîncărcarea funcţiilor 143
15.4.4. Funcţii inline 145
15Noţiunea de clasă 147
16.1. Realizarea protecţiei datelor prin metoda programării modulare 147
16.2. Tipuri abstracte de date 147
16.3. Declararea claselor 148
16.4. Referirea la elementele claselor. Pointerul this 150
16.5. Constructorul 150
16.5.1. Iniţializarea obiectelor prin constructor 150
16.5.2 Apelarea constructorilor în cazul în care datele membru sunt obiecte 151
16.6. Destructorul 151
16.7. Supraîncărcarea operatorilor 152
16.7.1. Metoda generală de supraîncărcare 152
16.7.2. Supraîncărcarea operatorilor de atribuire 153
16.7.3. Supraîncărcarea operatorilor de incrementare şi decrementare 155
16.8. Conversii definite de programator 156
16.8.1. Efectuarea conversiilor 156
16.8.2. Conversii implicite definite de programator 156
16.8.3. Supraîncărcarea operatorului de conversie explicită 159
17. Metoda programării orientate obiect 161
17.1. Bazele teoretice ale metodei programării orientate obiect 161
17.2. Declararea claselor derivate 161
17.3. Funcţii membru virtuale 162
17.4. Clase virtuale 164
17.5. Clase abstracte. Funcţia membru virtuală pură 165
18. Ierarhii de clase pentru operaţii de intrare/ieşire 167
18.1. Streamuri 167
18.2. Ieşiri formatate 168
18.2.1. Operatorul de inserare 168
18.2.2. Funcţia membru setf 169
18.2.3. Funcţiile membru width, fill şi precision 171
18.2.4. Manipulatori 173
18.2.5. Supraîncărcarea operatorului de inserare 174
18.3. Intrări formatate 176
18.3.1. Operatorul de extragere 176
18.3.2. Starea de eroare 177
18.3.3. Supraîncărarea operatorului de extragere 181
19.Anexă 183
19.1. Un memento al sintaxei limbajului C 183
19.2. Lista programelor C++ 188
1.Secţiune caracter.cpp15.1.increm1.cpp16.7.3.conv1.cpp15.1.increm2.cpp16.7.3.rezol.cpp15.2.1.conv2.cpp16.8.2.refer1.cpp15.2.2.lung1.cpp16.8.2.refer2.cpp15.2.2.conv3.cpp16.8.3.valoare1.cpp15.2.3.lung2.cpp16.8.3.valoare2.cpp15.2.3.virtual1.cpp17.1.refer3.cpp15.2.3.fractie2.cpp17.3.union1.cpp15.3.animal1.cpp17.4.init1.cpp15.4.1.animal2.cpp17.4.init2.cpp15.4.1.virtual2.cpp17.4.refer4.cpp15.4.2.abstract.cpp17.5.sup_fun1.cpp15.4.3.stream1.cpp18.2.1.sup_fun2.cpp15.4.3.stream2.cpp18.2.1.macro1.cpp15.4.4.stream3.cpp18.2.1.inline1.cpp15.4.4.stream4.cpp18.2.2.vector1.cpp16.1.stream5.cpp18.2.3.vector2.cpp16.1.stream6.cpp18.2.3.vector3.cpp16.4.stream7.cpp18.2.4.vector4.cpp16.4.stream8.cpp18.2.4.pereche1.cpp16.5.1.fractie2.cpp18.2.5.pereche2.cpp16.5.1.fractie3.cpp18.2.5.pereche3.cpp16.5.2stream9.cpp18.3.1.destruct.cpp16.6.stream10.cpp18.3.1.fractie1.cpp16.7.2.stream11.cpp18.3.1.vector5.cpp16.7.2.stream12.cpp18.3.1.vector6.cpp16.7.2.stare1.cpp18.3.2.vector7.cpp16.7.2.stare2.cpp18.3.2.vector8.cpp16.7.2.20. Bibliografie: 189