|
|
Prodotto ESAURITO/FUORI CATALOGO
C Corso completo di programmazione
|
| Editore | Apogeo |
| Autore | Deitel & Deitel |
| Titolo originale | C How to program - second edition |
| Editore originale | Prentice Hall |
| Collana | PerCorsi di studio |
| Pagine | 573 |
| Volumi | 1 |
| Livello | Introduttivo-Intermedio |
| Lingua | italiano |
| Data pubblicazione | 11 - 2000 |
| ISBN | 8873036694 |
|
|
| Prezzo di copertina |
| Euro 33,05 |
|
Indice
Prefazione xv
Lo scopo di questo libro xv
La metodologia di insegnamento xvi
L'apprendimento attraverso il codice xvi
L'accesso al World Wide Web xvi
Obiettivi xvi
Il codice e gli esempi xvi
Figure e immagini xvi
Consigli e suggerimenti xvii
Esercizi di autovalutazione xviii
Esercizi xviii
Indice analitico xviii
Panoramica sul libro xviii
Capitolo 1: Nozioni sulla elaborazione elettronica 1
1.1 Introduzione 1
1.2 Che cosa è un computer? 3
1.3 L'organizzazione del computer 3
1.4 L'elaborazione batch, la multiprogrammazione e il timesharing 4
1.5 L'elaborazione personale, distribuita e client/server 5
1.6 I linguaggi macchina, assembly e di alto livello. 6
1.7 La storia del C 7
1.8 La libreria standard del C 8
1.9 Gli altri linguaggi di alto livello 8
1.10 La programmazione strutturata 9
1.11 Le basi dell'ambiente C 10
1.12 Note generali sul C e su questo libro 12
1.13 Il Concurrent C 13
1.14 La programmazione orientata agli oggetti e il C++ 13
Esercizi di autovalutazione 14
Risposte agli esercizi di autovalutazione 14
Esercizi 15
Letture consigliate 16
Capitolo 2: Introduzione alla programmazione in C 19
2.1 Introduzione 19
2.2 Un semplice programma C: visualizzareuna riga di testo 19
2.3 Un altro semplice programma C: sommare due interi 23
2.4 Nozioni sulla memoria 28
2.5 L'aritmetica del C 29
2.6 Prendere delle decisioni: gli operatori di uguaglianza e relazionali 33
Esercizi di autovalutazione 37
Risposte agli esercizi di autovalutazione 39
Esercizi 40
Capitolo 3: Lo sviluppo di programmi strutturati 45
3.1 Introduzione 45
3.2 Gli algoritmi 45
3.3 Lo pseudocodice 46
3.4 Le strutture di controllo 47
3.5 La struttura di selezione If 49
3.6 La struttura di selezione If/Else 51
3.7 La struttura di iterazione while 55
3.8 Formulazione degli algoritmi: studio di un caso 1 (iterazione controllata da un contatore) 56
3.9 Formulazione degli algoritmi con processo top-down per raffinamenti successivi: studio di un caso 2 (iterazione controllata da un valore sentinella) 58
3.10 Formulazione degli algoritmi con processo top-down per raffinamenti successivi: studio di un caso 3 (strutture di controllo nidificate) 65
3.11 Gli operatori di assegnamento 69
3.12 Gli operatori di incremento e di decremento 70
Esercizi di autovalutazione 73
Risposte agli esercizi di autovalutazione 74
Esercizi 76
Capitolo 4: Il controllo del programma 85
4.1 Introduzione 85
4.2 Gli elementi della iterazione 85
4.3 Iterazione controllata da un contatore 86
4.4 La struttura di iterazione for 88
4.5 La struttura for: note e osservazioni 91
4.6 Esempi di utilizzo della struttura for 92
4.7 La struttura di selezione multipla switch 95
4.8 La struttura di iterazione do/while 101
4.9 Le istruzioni break e continue 103
4.10 Gli operatori logici 105
4.11 Confondere gli operatori di uguaglianza (==)
e di assegnamento (=) 108
4.12 Riassunto della programmazione strutturata 110
Esercizi di autovalutazione 115
Risposte agli esercizi di autovalutazione 117
Esercizi 118
Capitolo 5: Le funzioni 125
5.1 Introduzione 125
5.2 I moduli di programma in C 125
5.3 Le funzioni della libreria matematica 126
5.4 Le funzioni 127
5.5 Le definizioni di funzione 129
5.6 I prototipi di funzione 133
5.7 I file di intestazione 136
5.8 Invocare le funzioni: chiamata per valore e per riferimento 137
5.9 Generazione di numeri casuali 138
5.10 Esempio: un gioco d'azzardo 142
5.11 Le classi di memoria 145
5.12 Le regole di visibilità 148
5.13 La ricorsione 151
5.14 Esempio di utilizzo della ricorsione: la serie di Fibonacci 155
5.15 Ricorsione e iterazione 158
Esercizi di autovalutazione 161
Risposte agli esercizi di autovalutazione 163
Esercizi 165
Capitolo 6: I vettori 175
6.1 Introduzione 175
6.2 I vettori 175
6.3 La dichiarazione dei vettori 177
6.4 Esempi di utilizzo dei vettori 178
6.5 Passare i vettori alle funzioni 190
6.6 L'ordinamento dei vettori 195
6.7 Studio di un caso: calcolare la media, la mediana e la moda usando i vettori 197
6.8 La ricerca nei vettori 201
6.9 I vettori multidimensionali 206
Esercizi di autovalutazione 212
Risposte agli esercizi di autovalutazione 214
Esercizi 215
Esercizi sulla ricorsione 225
Capitolo 7: I puntatori 227
7.1 Introduzione 227
7.2 Dichiarazione e inizializzazione dei puntatori 227
7.3 Gli operatori sui puntatori 228
7.4 La chiamata per riferimento delle funzioni 231
7.5 Utilizzare il qualificatore const con i puntatori 235
7.6 L'ordinamento a bolle utilizzando una chiamata per riferimento 241
7.7 Le espressioni con i puntatori e l'aritmetica dei puntatori 246
7.8 La relazione tra i puntatori e i vettori 249
7.9 I vettori di puntatori 253
7.10 Studio di un caso: simulazione di un mescolatore e distributore di carte 254
7.11 I puntatori a funzioni 259
Esercizi di autovalutazione 264
Risposte agli esercizi di autovalutazione 266
Esercizi 267
Sezione speciale: costruite il vostro computer 270
Capitolo 8: I caratteri e le stringhe 281
8.1 Introduzione 281
8.2 I concetti fondamentali delle stringhe e dei caratteri 281
8.3 La libreria per la gestione dei caratteri 283
8.4 Le funzioni per la conversione delle stringhe 289
8.5 Le funzioni della libreria per l'input/output standard 293
8.6 Le funzioni per la manipolazione delle stringhe incluse nella libreria per la gestione delle stringhe 297
8.7 Le funzioni di confronto incluse nella libreria per la gestione delle stringhe 299
8.8 Le funzioni di ricerca incluse nella libreria per la gestione delle stringhe 302
8.9 Le funzioni per la manipolazione della memoria incluse nella libreria per la gestione delle stringhe 308
8.10 Le altre funzioni della libreria per la gestione delle stringhe 312
Esercizi di autovalutazione 313
Risposte agli esercizi di autovalutazione 314
Esercizi 315
Sezione speciale: esercizi di manipolazione avanzata delle stringhe 318
Un progetto impegnativo per la manipolazione delle stringhe 322
Capitolo 9: La formattazione dell'input/output 323
9.1 Introduzione 323
9.2 Gli stream 323
9.3 Formattare l'output con printf 324
9.4 Visualizzare gli interi 324
9.5 Visualizzare i numeri in virgola mobile 326
9.6 Visualizzare le stringhe e i caratteri 328
9.7 Gli altri indicatori di conversione 329
9.8 Visualizzare con le dimensioni di campo e le precisioni 330
9.9 Utilizzare i flag nella stringa di controllo del formato 333
9.10 Visualizzare i letterali e le sequenze di escape 336
9.11 Formattare l'input con scanf 336
Esercizi di autovalutazione 342
Risposte agli esercizi di autovalutazione 344
Esercizi 345
Capitolo 10: Le strutture, le unioni, la gestione dei bit e le enumerazioni 349
10.1 Introduzione 349
10.2 La definizione delle strutture 349
10.3 Inizializzare le strutture 352
10.4 Accedere ai membri delle strutture 352
10.5 Usare le strutture con le funzioni 354
10.6 Typedef 354
10.7 Esempio: simulazione di un mescolatore e distributore di carte ad alta efficienza 355
10.8 Le unioni 357
10.9 Gli operatori bitwise 360
10.10 I campi di bit 368
10.11 Le costanti di enumerazione 371
Esercizi di autovalutazione 373
Risposte agli esercizi di autovalutazione 375
Esercizi 375
Capitolo 11: L'elaborazione dei file 379
11.1 Introduzione 379
11.2 La gerarchia dei dati 379
11.3 I file e gli stream 381
11.4 Creare un file ad accesso sequenziale 382
11.5 Leggere i dati da un file ad accesso sequenziale 387
11.6 I file ad accesso casuale 392
11.7 Creare un file ad accesso casuale 393
11.8 Scrivere i dati in modo casuale in un file ad accesso casuale 395
11.9 Leggere i dati in modo casuale da un file ad accesso casuale 398
11.10 Studio di un caso: un programma per l'elaborazione delle transazioni 399
Esercizi di autovalutazione 404
Risposte agli esercizi di autovalutazione 405
Esercizi 406
Capitolo 12: Le strutture di dati 411
12.1 Introduzione 411
12.2 Le strutture ricorsive 412
12.3 Allocazione dinamica della memoria 412
12.4 Le liste concatenate 414
12.5 Le pile 422
12.6 Le code 428
12.7 Gli alberi 434
Esercizi di autovalutazione 439
Risposte agli esercizi di autovalutazione 441
Esercizi 442
Sezione speciale: costruite il vostro compilatore 449
Primo passaggio 452
Secondo passaggio 454
Un esempio completo 454
Un esame passo per passo del processo di compilazione 456
Capitolo 13: Il preprocessore 463
13.1 Introduzione 463
13.2 La direttiva del preprocessore #include 463
13.3 La direttiva del preprocessore #define: le costanti simboliche 464
13.4 La direttiva del preprocessore #define: le macro 464
13.5 La compilazione condizionale 466
13.6 Le direttive del preprocessore #error e #pragma 468
13.7 Gli operatori # e ## 468
13.8 I numeri di riga 469
13.9 Le costanti simboliche predefinite 469
13.10 Le asserzioni 469
Esercizi di autovalutazione 470
Risposte agli esercizi di autovalutazione 471
Esercizi 472
Capitolo 14: Argomenti avanzati 473
14.1 Introduzione 473
14.2 Redirezionare l'input/output su sistemi UNIX e DOS 473
14.3 Gli elenchi variabili di argomenti 474
14.4 Usare gli argomenti della riga di comando 477
14.5 Note sulla compilazione di programmi formati da vari file sorgente 478
14.6 Chiusura dei programmi con Exit e Atexit 480
14.7 Il qualificatore di tipo Volatile 481
14.8 I suffissi per le costanti intere e in virgola mobile 482
14.9 Ancora sui file 482
14.10 La gestione dei segnali 484
14.11 Allocazione dinamica della memoria: le funzioni calloc e realloc 485
14.12 Il salto incondizionato: goto 486
Esercizi di autovalutazione 489
Risposte agli esercizi di autovalutazione 489
Esercizi 490
Appendice A: La sintassi del C 491
Sommario della sintassi del linguaggio 491
A.1 Grammatica lessicale 491
A.2 Grammatica della struttura della frase 495
A.3 Direttive del preprocessore 501
Appendice B: La libreria standard 503
B.1 Errori 503
B.2 Definizioni comuni 503
B.3 Diagnostica 504
B.4 Gestione dei caratteri 504
B.5 Localizzazione 505
B.6 Matematica 509
B.7Salti non locali 511
B.8 Gestione dei segnali 512
B.9 Argomenti variabili 513
B.10 Input/Output 514
B.11 Utilità generiche 525
B.12 Gestione delle stringhe 532
B.13 Data e ora 536
B.14 Limiti dell'implementazione 539
< limits.h > 539
< float.h > 540
Appendice C: Priorità e associatività degli operatori 543
Appendice D: L'insieme dei caratteri ASCII 545
Appendice E: I sistemi numerici 547
E.1 Introduzione 547
E.2 L'abbreviazione dei numeri binari in ottali ed esadecimali 550
E.3 La conversione dei numeri ottali ed esadecimali in binari 551
E.4 La conversione da binario, ottale o esadecimale in decimale 552
E.5 La conversione da decimale a binario, ottale o esadecimale 553
E.6 I numeri binari negativi: la notazione con complemento a due 554
Esercizi di autovalutazione 555
Risposte agli esercizi di autovalutazione 556
Esercizi 557
Indice analitico 559
|
|
|
|