Indice

Prefazione ..................................................................................................
Ringraziamenti dell’Editore

X

................................................................. XXII

La storia del C

.......................................................................................... XXIII

Capitolo 1

Computer ......................................................................

1

1.1
Hardware e software ............................................................
1.2
Processore ..........................................................................
1.3
Memorie .............................................................................
1.4
Periferiche di input/output .....................................................
1.5
Memorie di massa ...............................................................
1.6
Storia di una macchina ........................................................
1.7
Tipi di computer ..................................................................
1.8
Reti ....................................................................................
1.9
Architettura client/server .......................................................
Verifica le conoscenze ...................................................................

2
3
5
8
9
12
18
19
21
22

Capitolo 2

Sistemi operativi

.........................................................

25

2.1
Ruolo del SO .......................................................................
2.2
File system ..........................................................................
2.3
Linux ...................................................................................
2.4
Windows .............................................................................
2.5
Windows da linea di comando .............................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

26
29
33
39
43
46
47

Capitolo 3

Algoritmi

........................................................................

49

3.1
Istruzioni ..............................................................................
3.2
Esecuzione .........................................................................
3.3
Memoria ............................................................................
3.4
Calcolo meccanico ............................................................
3.5
Capacità di calcolo ............................................................
3.6
Complessità degli algoritmi ..................................................
3.7
Correttezza rispetto alle specifiche ........................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

50
51
52
53
55
60
63
65
65

IV

Indice

Capitolo 4

Programmi

....................................................................

67

4.1
Linguaggi ...........................................................................
4.2
Linguaggio macchina .........................................................
4.3
Linguaggio assembler .........................................................
4.4
Linguaggi di alto livello .........................................................
4.5
Programmi strutturati ............................................................
4.6
Sequenza, selezione, iterazione .............................................
4.7
Blocco d’istruzioni ................................................................
4.8
Massimo Comun Denominatore ...........................................
4.9
Scambio di valori fra variabili ................................................
4.10 Approcci alla programmazione ............................................
4.10.1 Top-down ............................................................................
4.10.2 Programmazione modulare .................................................
4.10.3 Oggetti ..............................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

68
69
70
73
76
79
83
84
86
87
87
88
88
89
90

Capitolo 5

Sequenza

......................................................................

93

5.1
Programmi .........................................................................
5.2
Variabili e assegnamenti ......................................................
5.3
Costanti .............................................................................
5.4
Input e output .....................................................................
5.5
Funzioni ..............................................................................
5.6
Fasi di programmazione ......................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

94
95
99
100
104
106
109
110

Capitolo 6

Tipi fondamentali

....................................................... 113

6.1
Interi ...................................................................................
6.2
Caratteri .............................................................................
6.3
Virgola mobile .....................................................................
6.4
Operazioni in virgola mobile .................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 7

114
117
119
121
123
124

Selezione .......................................................................

127

7.1
if .....................................................................................
7.2
Istruzioni composte ..............................................................
if annidati .........................................................................
7.3
7.4
Confronto fra caratteri ..........................................................
7.5
switch-case ..................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

128
130
133
135
136
140
140

Indice

Capitolo 8

Operatori .......................................................................

143

8.1
Operatori aritmetici ..............................................................
8.2
Operatori relazionali e logici .................................................
8.3
Espressioni condizionali ........................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

144
145
149
151
152

Capitolo 9

Iterazione

...................................................................... 155

9.1
for ...................................................................................
9.2
Incrementi e decrementi ......................................................
9.3
Calcolo del fattoriale ...........................................................
9.4
while ...............................................................................
9.5
do-while ........................................................................
9.6
Operatore virgola ................................................................
9.7
Cicli annidati .......................................................................
9.8
Interruzioni ...........................................................................
9.9
Zero di una funzione ............................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 10

Array

............................................................................... 183

10.1 Vettori .................................................................................
10.2 Esempio di uso dei vettori .....................................................
10.3 Inizializzazione di variabili ......................................................
10.4 Matrici ................................................................................
10.5 Prodotto di matrici ...............................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 11

156
160
163
165
171
173
174
175
177
180
180

184
188
190
191
194
198
198

Funzioni ..........................................................................

201

11.1 Il concetto di sottoprogramma .............................................
11.2 Sottoprogrammi C ...............................................................
11.3 Dichiarazione di una funzione ...............................................
11.4 Definizione di una funzione ...................................................
11.5 Visibilità ...............................................................................
11.6 return ............................................................................
11.7 Chiamata di una funzione ....................................................
11.8 Passaggio dei parametri .......................................................
11.9 void .................................................................................
11.10 Scomposizione funzionale ....................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

202
202
204
205
209
211
212
214
216
219
221
222

V

VI

Indice

Capitolo 12

Ricerche e ordinamenti

........................................... 225

12.1 Introduzione ........................................................................
12.2 Ricerca completa ...............................................................
12.3 Ordinamenti ........................................................................
12.4 Ricerca binaria ...................................................................
12.5 Fusione ...............................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Caso di Studio I Gestione di una sequenza
Capitolo 13

Stringhe

................................. 241

......................................................................... 253

13.1 Definizione ..........................................................................
13.2 Esempi di uso delle stringhe ..................................................
13.3 Funzioni di libreria ................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 14

Puntatori

226
226
228
232
235
239
239

254
256
262
264
265

........................................................................ 267

14.1 Definizione di puntatore .......................................................
14.2 Array e puntatori ..................................................................
14.3 Aritmetica dei puntatori ........................................................
14.4 Passaggio di parametri per indirizzo .......................................
14.5 Oggetti dinamici .................................................................
14.6 Indirizzamento assoluto della memoria ..................................
14.7 Funzioni sulla memoria .........................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

268
270
272
273
279
282
283
285
286

Caso di Studio II Gestione di una sequenza con uso dei puntatori

287

Capitolo 15

Ricorsione

..................................................................... 295

15.1 Iterazione e ricorsione ..........................................................
15.2 Permutazioni e disposizioni ...................................................
15.3 Combinazioni .....................................................................
15.4 La successione di Fibonacci ................................................
15.5 Un classico della ricorsività: la torre di Hanoi ...........................
15.6 Ordinamento con quicksort ..................................................
15.7 Algoritmi di backtracking: il problema delle otto regine ..........
15.8 Mutua ricorsività ...................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

296
298
301
303
305
309
313
319
320
321

Indice

Capitolo 16

Strutture

......................................................................... 323

16.1 Tipi derivati .........................................................................
16.2 Struct ............................................................................
16.3 Strutture e puntatori .............................................................
16.4 Tipi derivati composti tramite struttura ....................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

324
324
327
329
330
331

Caso di Studio III Gestione anagrafica ..........................................

333

Capitolo 17

File ...................................................................................

347

17.1 Apertura e chiusura di file .....................................................
17.2 Lettura e scrittura sequenziale ...............................................
17.3 Posizionamento del puntatore ...............................................
17.4 Altre possibilità di lettura e scrittura ........................................
17.5 Standard Input e Standard Output ........................................
17.6 Funzioni di basso livello .........................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

348
349
353
355
359
360
366
367

Caso di Studio IV Gestione anagrafica con i file
Capitolo 18

....................... 369

Approfondimenti sui tipi e trattamento dei bit

18.1 Nomi ..................................................................................
18.2 Tipi fondamentali .................................................................
18.3 Costanti ..............................................................................
18.4 Trattamento dei bit ..............................................................
18.5 Conversioni di tipo ...............................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 19

381
382
383
386
390
394
398
399

I/O formattato e funzioni ad argomenti variabili

401

19.1 Funzioni di output formattato ................................................
19.2 Funzioni di input formattato ..................................................
19.3 Liste di argomenti variabili per numero e tipo .........................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

402
406
411
413
413

Capitolo 20
20.1
20.2
20.3
20.4
20.5

Tipi derivati e classi di memoria

.......................... 415

Tipi derivati ..........................................................................
Unioni .................................................................................
Campi ...............................................................................
typedef ..........................................................................
Tipi derivati composti ...........................................................

416
416
418
419
421

VII

VIII

Indice

20.6 Tipi derivati composti tramite funzione ...................................
20.7 Tipi derivati composti tramite puntatore .................................
20.8 Classificazione delle variabili ................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 21

Strutture dati

422
425
428
435
436

................................................................ 439

21.1 Limiti degli array ...................................................................
21.2 Liste lineari ..........................................................................
21.3 Gestione di una lista ............................................................
21.4 Determinazione del maggiore di una lista .............................
21.5 Somma tra liste ...................................................................
21.6 Soluzioni ricorsive .................................................................
21.7 Pila .....................................................................................
21.8 Gestione di una pila mediante array .....................................
21.9 Gestione di una pila mediante lista lineare ............................
21.10 Coda .................................................................................
21.11 Gestione di una coda mediante array ...................................
21.12 Gestione di una coda mediante liste .....................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

440
442
443
449
453
455
456
457
465
470
471
473
475
476

Caso di Studio V Gestione di una sequenza ordinata
con una lista lineare ...........................................

479

Capitolo 22

Alberi e grafi

................................................................ 489

22.1 Alberi binari .........................................................................
22.2 Implementazione di alberi binari ...........................................
22.3 Visita in ordine simmetrico ....................................................
22.4 Alberi binari di ricerca ..........................................................
22.5 Alberi ordinati ......................................................................
22.6 Implementazione di alberi ....................................................
22.7 Ricerca di un sottoalbero .....................................................
22.8 Trasformazione di alberi .......................................................
22.9 Grafi ..................................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 23
23.1
23.2
23.3
23.4
23.5
23.6

Preprocessore

490
491
496
497
499
500
504
505
509
514
515

............................................................. 517

Direttive .............................................................................. 518

#define .......................................................................... 518
Macroistruzioni: pro e contro ................................................. 521

#undef ............................................................................ 525
Macro predefinite ................................................................ 525

#line .............................................................................. 526

Indice

23.7 #include ........................................................................
23.8 Direttive condizionali di compilazione ....................................
23.9 Operatore defined ..........................................................
23.10 #error e #pragma .........................................................
23.11 Gli operatori # e ## ............................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

Capitolo 24

Semantiche e correttezza dei programmi .........

527
528
532
534
534
536
537
539

24.1 Introduzione ........................................................................ 540
24.2 Stato di un programma ......................................................... 541
24.3 Semantica semplice ............................................................ 544
24.4 Asserzioni ............................................................................ 549
24.5 Specifica ............................................................................ 553
24.6 The Grand Challenge .......................................................... 559
24.7 Bibliografia ragionata del capitolo ........................................ 559
Verifica le conoscenze ................................................................... 560

Caso di Studio VI Progetto per la gestione aziendale
della fatturazione di Maurizio Vincini ...................

561

Appendice A Sintassi ...........................................................................

581

A.1 Introduzione ............................................................................
A.2 Grammatica lessicale ..............................................................
A.3 Grammatica della struttura della frase .......................................
A.4 Osservazioni ............................................................................
A.5 Parole chiave del C++ ............................................................

582
583
588
596
598

Appendice B Librerie standard ......................................................... 599
Appendice C Operatori .......................................................................

613

Appendice D Rappresentazione dell’informazione ...................

615

D.1 Sistemi di numerazione ............................................................
D.2 Il sistema binario ......................................................................
D.3 I sistemi ottale ed esadecimale ................................................
D.4 Complemento a 2 ..................................................................
D.5 Virgola mobile .........................................................................
D.6 Sistemi di codifica ...................................................................
Verifica le conoscenze ...................................................................
Applica le abilità ...........................................................................

616
616
618
619
622
623
624
624

Appendice E Codice ASCII

............................................................... 625

Bibliografia ................................................................................................
Indice analitico

627

....................................................................................... 629

IX

Sign up to vote on this title
UsefulNot useful