Cuprins

7
Cuprins CUPRINS PARTEA I CAPITOLUL 1 Noţiuni introductive 3.2. Implementarea structurii de decizie . . . 42 1.1. Structura generală a unui sistem de 3.3. Implementarea structurilor repetitive calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 (ciclice) . . . . . . . . . . . . . . . . . . . . . . . . . 45 1.2. Algoritmi . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.1. Implementarea structurilor 1.2.1. Noţiuni generale . . . . . . . . . . . . . . 11 ciclice cu test iniţial . . . . . . . . . . 45 1.2.2. Definiţii şi caracteristici . . . . . . . . 12 3.3.2. Implementarea structurilor 1.2.3. Reprezentarea algorimilor . . . . . . . 12 ciclice cu test final . . . . . . . . . . . 46 1.2.3.1. Reprezentarea prin 3.4. Facilităţi de întrerupere a unei secvenţe 50 scheme logice . . . . . . . . . 13 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . 51 1.2.3.2. Reprezentarea prin pseudocod . . . . . . . . . . . . 14 CAPITOLUL 4 Tablouri 1.3. Teoria rezolvării problemelor . . . . . . . . 16 4.1. Declararea tablourilor . . . . . . . . . . . . . . . 53 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 18 4.2. Tablouri unidimensionale . . . . . . . . . . . . 53 4.3. Tablouri bidimensionale . . . . . . . . . . . . . 55 CAPITOLUL 2 Date, operatori şi expresii 4.4. Şiruri de caractere . . . . . . . . . . . . . . . . . . 57 2.1. Limbajele C şi C+ 19 Întrebări şi exerciţii . . . . 60 5

Transcript of Cuprins

Page 1: Cuprins

Cuprins

CUPRINS

PARTEA I

CAPITOLUL 1 Noţiuni introductive 3.2. Implementarea structurii de decizie . . . 421.1. Structura generală a unui sistem de 3.3. Implementarea structurilor repetitive

calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 (ciclice) . . . . . . . . . . . . . . . . . . . . . . . . . 451.2. Algoritmi . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.1. Implementarea structurilor

1.2.1. Noţiuni generale . . . . . . . . . . . . . . 11 ciclice cu test iniţial . . . . . . . . . . 451.2.2. Definiţii şi caracteristici . . . . . . . . 12 3.3.2. Implementarea structurilor 1.2.3. Reprezentarea algorimilor . . . . . . . 12 ciclice cu test final . . . . . . . . . . . 46

1.2.3.1. Reprezentarea prin 3.4. Facilităţi de întrerupere a unei secvenţe 50scheme logice . . . . . . . . . 13 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . 51

1.2.3.2. Reprezentarea prinpseudocod . . . . . . . . . . . . 14 CAPITOLUL 4 Tablouri

1.3. Teoria rezolvării problemelor . . . . . . . . 16 4.1. Declararea tablourilor . . . . . . . . . . . . . . . 53Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 18 4.2. Tablouri unidimensionale . . . . . . . . . . . . 53

4.3. Tablouri bidimensionale . . . . . . . . . . . . . 55CAPITOLUL 2 Date, operatori şi expresii 4.4. Şiruri de caractere . . . . . . . . . . . . . . . . . . 572.1. Limbajele C şi C++ . . . . . . . . . . . . . . . . 19 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 602.2. Programe în limbajul C/C++ . . . . . . . . . 192.3. Preprocesorul . . . . . . . . . . . . . . . . . . . . . 21 CAPITOLUL 5 Pointeri2.4. Elemente de bază ale limbajului . . . . . . 22 5.1.Variabile pointer . . . . . . . . . . . . . . . . . . . 61

2.4.1. Vocabularul . . . . . . . . . . . . . . . . . . 22 5.1.1. Declararea variabilelor pointer . . . 612.4.2. Unităţile lexicale . . . . . . . . . . . . . . 22 5.1.2. Iniţializarea variabilelor pointer . . 62

2.5. Date în limbajul C/C++ . . . . . . . . . . . . . 23 5.1.3. Pointeri generici . . . . . . . . . . . . . 632.5.1. Tipuri de date . . . . . . . . . . . . . . . . 23 5.2. Operaţii cu pointeri . . . . . . . . . . . . . . . . . 632.5.2. Constante . . . . . . . . . . . . . . . . . . . 25 5.3. Pointeri şi

tablouri . . . . . . . . . . . . . . . . . .64

2.5.2.1. Constante întregi . . . . . . . 25 5.3.1. Pointeri şi şiruri de caractere . . . . 642.5.2.2. Constante numerice, reale. 25 5.3.2.Pointeri şi tablouri bidimensionale. 662.5.2.3. Constante caracter . . . . . . 27 5.4. Tablouri de pointeri . . . . . . . . . . . . . . . . 672.5.2.4. Constante şir de caractere 28 5.5. Pointeri la pointeri . . . . . . . . . . . . . . . . . 68

2.5.3. Variabile . . . . . . . . . . . . . . . . . . . . 29 5.6. Modificatorul const în declararea2.5.3.1. Declararea variabilelor . . 29 pointerilor . . . . . . . . . . . . . . . . . . . . . . . . 692.5.3.2. Iniţializarea variabilelor în Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 69

declaraţii . . . . . . . . . . . . . . 292.5.3.3. Operaţii de intrare/ieşire . 30 CAPITOLUL 6 Funcţii

2.6. Operatori şi expresii . . . . . . . . . . . . . . . . 31 6.1. Structura unei funcţii . . . . . . . . . . . . . . . 712.6.1. Operatori . . . . . . . . . . . . . . . . . . . . 31 6.2. Apelul şi prototipul unei funcţii . . . . . . . 722.6.2. Expresii . . . . . . . . . . . . . . . . . . . . . 39 6.3. Transferul parametrilor unei funcţii . . . . 742.6.3. Conversii de tip . . . . . . . . . . . . . . . 39 6.3.1. Transferul parametrilor prin

Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 39 valoare . . . . . . . . . . . . . . . . . . . . . 756.3.2. Transferul prin pointeri . . . . . . . . 75

CAPITOLUL 3 Implementarea 6.3.2.1. Funcţii care returnează structurilor de control pointeri . . . . . . . . . . . . . . 773.1. Implementarea structurii secvenţiale . . . 41 6.3.3. Transferul prin referinţă . . . . . . . 77

5

Page 2: Cuprins

Cuprins

PARTEA a II a

6.3.4. Transferul parametrilor către CAPITOLUL 9 Concepte de bază alefuncţia main . . . . . . . . . . . . . . . . 81 programării orientate obiect

6.4. Tablouri ca parametri . . . . . . . . . . . . . . . 81 9.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . 1296.5. Funcţii cu parametri impliciţi . . . . . . . . . 84 9.2. Abstractizarea datelor . . . . . . . . . . . . . . 1296.6. Funcţii cu număr variabil de parametri . 84 9.3. Moştenirea . . . . . . . . . . . . . . . . . . . . . . . 1306.7. Funcţii predefinite . . . . . . . . . . . . . . . . . 85 9.3.1. Moştenirea unică . . . . . . . . . . . . . 130

6.7.1. Funcţii matematice . . . . . . . . . . . . 85 9.3.1. Moştenirea multiplă . . . . . . . . . . . 1306.7.2. Funcţii de clasificare (testare) a 9.4. Încapsularea informaţiei . . . . . . . . . . . . . 131

caracterelor . . . . . . . . . . . . . . . . . 85 9.5. Legarea dinamică (târzie) . . . . . . . . . . . . 1326.7.3. Funcţii de conversie a 9.6. Alte aspecte . . . . . . . . . . . . . . . . . . . . . . 132

caracterelor . . . . . . . . . . . . . . . . . 876.7.4. Funcţii de conversie din şir în CAPITOLUL 10 Clase şi obiecte

număr . . . . . . . . . . . . . . . . . . . . . . 87 10.1. Definiţia claselor şi accesul la 6.7.5. Funcţii de terminare a unui proces Membri . . . . . . . . . . . . . . . . . . . . . . . . . 133

(program) . . . . . . . . . . . . . . . . . . . 87 10.1.1. Legătura clasă-structură-6.7.6. Funcţii de intrare/ieşire . . . . . . . . 88 Uniune . . . . . . . . . . . . . . . . . . . 133

6.8. Clase de memorare . . . . . . . . . . . . . . . . . 90 10.1.2. Declararea claselor . . . . . . . . . 1336.9. Moduri de alocare a memoriei . . . . . . . 92 10.1.3. Obiecte . . . . . . . . . . . . . . . . . . 1366.10.Funcţii recursive . . . . . . . . . . . . . . . . . . 95 10.1.4. Membrii unei clase . . . . . . . . . 1366.11.Pointeri către funcţii . . . . . . . . . . . . . . . 100 10.1.5. Pointerul this . . . . . . . . . . . . . . 139Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 101 10.1.6. Domeniul unui nume,

vizibilitate şi timp de viaţă . . . 139CAPITOLUL 7 Tipuri de date definite 10.2. Funcţii inline . . . . . . . . . . . . . . . . . . . . 140de utilizator 10.3. Constructori şi destructori . . . . . . . . . . 1427.1. Tipuri definite de utilizator . . . . . . . . . . 103 10.3.1. Iniţializarea datelor . . . . . . . . . 1427.2. Structuri . . . . . . . . . . . . . . . . . . . . . . . . . 103 10.3.2. Constructori . . . . . . . . . . . . . . 1437.3. Câmpuri de biţi . . . . . . . . . . . . . . . . . . . . 106 10.3.1.1. Constructori cu 7.4. Declaraţii typedef . . . . . . . . . . . . . . . . . . 107 liste de iniţializare. . 1447.5. Uniuni . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.3.1.2. Constructori de 7.6. Enumerări . . . . . . . . . . . . . . . . . . . . . . . . 108 copiere . . . . . . . . . . 145Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 111 10.3.3. Destructori . . . . . . . . . . . . . . . 145

10.3.4. Tablouri de obiecte . . . . . . . . . 150CAPITOLUL 8 Fişiere 10.4. Funcţii prietene (friend) . . . . . . . . . . . . 1518.1. Caracteristicile generale ale fişierelor. . . 113 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 1518.2. Deschiderea unui fişier . . . . . . . . . . . . . . 1148.3. Închiderea unui fişier . . . . . . . . . . . . . . . 116 CAPITOLUL 11 Supraîncărcarea 8.4. Prelucrarea fişierelor text . . . . . . . . . . . . 116 operatorilor

8.4.1. Prelucrarea la nivel de caracter . . 116 11.1. Moduri de supraîncărcare a 8.4.2. Prelucrarea la nivel de cuvânt. . . . 117 operatorilor . . . . . . . . . . . . . . . . . . . . . 1538.4.3. Prelucrarea la nivel de şir de 11.1.1. Supraîncărcarea prin funcţii

caractere . . . . . . . . . . . . . . . . . . . 118 membre . . . . . . . . . . . . . . . . . . 1538.4.4. Intrări/ieşiri formatate . . . . . . . . . 119 11.1.2. Supraîncărcarea prin funcţii

8.5. Intrări/ieşiri binare . . . . . . . . . . . . . . . . . 119 prietene . . . . . . . . . . . . . . . . . . 1548.6. Poziţionarea într-un fişier . . . . . . . . . . . . 120 11.2. Restricţii la supraîncărcarea8.7. Funcţii utilitare pentru lucrul cu fişiere. . 121 operatorilor . . . . . . . . . . . . . . . . . . . . . 1558.8. Alte operaţii cu fişiere . . . . . . . . . . . . . . 122 11.3. Supraîncărcarea operatorilor unari . . . 156Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 126 11.4. Membrii constanţi ai unei clase . . . . . 156

6

Page 3: Cuprins

Cuprins

11.5. Supraîncărcarea operatorilor 12.4. Moştenirea simplă . . . . . . . . . . . . . . . 179insertor şi extractor . . . . . . . . . . . . . . . 156 12.5. Moştenirea multiplă . . . . . . . . . . . . . . 186

11.6. Supraîncărcarea operatorului de 12.6. Redefinirea membrilor unei clase deatribuire = . . . . . . . . . . . . . . . . . . . . . . . 157 bază în clasa derivată . . . . . . . . . . . . . 187

11.7. Supraîncărcarea operatorului de 12.7. Metode virtuale . . . . . . . . . . . . . . . . . 191indexare [ ] . . . . . . . . . . . . . . . . . . . . . . 158 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . 195

11.8. Supraîncărcarea operatorilor new şi delete. . . . . . . . . . . . . . . . . . . . . . . . . . 164 CAPITOLUL 13 Intrări/ieşiri

11.9. Supraîncărcarea operatorului ( ) . . . . . 166 13.1. Principiile de bază ale sistemului de 11.10. Supraîncărcarea operatorului -> . . . . . 166 I/O din limbajul C++ . . . . . . . . . . . . . 19711.11. Conversii . . . . . . . . . . . . . . . . . . . . . . 172 13.2. Testarea şi modificarea stării unui

11.11.1. Conversii din tip flux . . . . . . . . . . . . . . . . . . . . . . . . . . . 199predefinit1 în tip predefinit2. 172 13.3. Formatarea unui flux . . . . . . . . . . . . . 201

11.11.2. Conversii din tip predefinit 13.3.1. Formatarea prin în clasă . . . . . . . . . . . . . . . . . 172 manipulatori . . . . . . . . . . . . . 202

11.11.3. Conversii din clasă în tip 13.3.1.2. Manipulatori fărăpredefinit . . . . . . . . . . . . . . . 173 parametri . . . . . . . . 202

11.11.4. Conversii din clasă1 în 13.3.1.2. Manipulatori cuclasă2 . . . . . . . . . . . . . . . . . . 173 parametri . . . . . . . . 202

Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . . . 176 13.3.2. Formatarea prin metode . . . . . 20313.4. Metodele clasei istream . . . . . . . . . . . 204

CAPITOLUL 12 Crearea ierarhiilor de 13.5. Metodele clasei ostream . . . . . . . . . . 205clase 13.6. Manipulatori creaţi de utilizator . . . . 20612.1. Mecanismul moştenirii . . . . . . . . . . . . . 176 13.7. Fluxuri pentru fişiere . . . . . . . . . . . . . 20712.2. Modul de declarare a claselor derivate. 177 13.8. Fişiere binare . . . . . . . . . . . . . . . . . . . 21012.3. Constructorii claselor derivate . . . . . . . 178 Întrebări şi exerciţii . . . . . . . . . . . . . . . . . . .

7