Argomento: C++, Informatica, Linguaggi e Programmazione, Programmazione Object-Oriented.
di Harvey M. Deitel, Paul J. Deitel
Prezzo: 35,64 Euro
Acquistalo da: laFeltrinelli.it
Prefazione XI
Lo scopo di questo libro
Le sezioni "Pensare in termini di oggetti"
Il CD-ROM
La metodologia di insegnamento
L'apprendimento attraverso il codice
L'accesso al World Wide Web
Obiettivi
Il codice e gli esempi
La programmazione orientata agli oggetti
Figure e immagini
Consigli e suggerimenti
Esercizi di autovalutazione
Esercizi
Indice analitico
Panoramica del libro
Capitolo 1: Introduzione: i computer, la programmazione e il C++ 1
1.1 Introduzione
1.2 Che cos'è un computer?
1.3 La struttura del computer
1.4 L'evoluzione dei sistemi operativi
1.5 I personal computer, i sistemi distribuiti e i sistemi client/server
1.6 I linguaggi macchina, assembly e ad alto livello
1.7 Il C e il C++: un po' di storia
1.8 La libreria standard del C++
1.9 Java, Internet e il World Wide Web
1.10 Altri linguaggi ad alto livello
1.11 La programmazione strutturata
1.12 Gli elementi fondamentali di un tipico ambiente C++
1.13 Alcune considerazioni generali sul C++ e sul nostro corso
1.14 Un programma semplice: visualizzare una linea di testo
1.15 Un altro semplice programma: l'addizione di due numeri interi
1.16 La memoria: concetti fondamentali
1.17 I calcoli aritmetici
1.19 Prendere decisioni: gli operatori relazionali e di uguaglianza
1.20 Le nuove convenzioni per i file di intestazione e gli spazi dei nomi
1.21 Pensare in termini di oggetti: le tecniche orientate agli oggetti e UML (Unified Modeling Language?)
Introduzione all'analisi e alla progettazione orientate agli oggetti (OOAD)
Storia di UML
Che cos'è UML?
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 2: Le strutture di controllo
2.1 Introduzione
2.2 Gli algoritmi
2.3 Lo pseudocodice
2.4 Le strutture di controllo
2.5 La struttura di selezione if
2. 6 La struttura di selezione if/else
2.7 La struttura iterativa while
2.8 Tipologie degli algoritmi di iterazione: l'iterazione controllata da un contatore
2.9 Tipologie degli algoritmi di iterazione: l'iterazione controllata da un valore sentinella
2.10 Tipologie di algoritmi e ridefinizione top-down: le strutture di controllo nidificate
2.11 Gli operatori di assegnamento
2.12 Gli operatori di incremento e decremento
2.13 Concetti fondamentali dei cicli controllati da variabili contatore
2.14 La struttura di iterazione for
2.15 Esempi di costrutti for
2.16 La struttura di selezione switch
2.17 La struttura iterativa do/while
2.18 Le istruzioni break e continue
2.19 Gli operatori logici
2.20 Un errore tipico: confondere l'operatore di uguaglianza == con l'operatore di assegnamento =
2.21 Riepilogo dei concetti fondamentali della programmazione strutturata
2.22 Pensare in termini di oggetti: come individuare le classi in un problema [progetto opzionale]
Definizione del problema
Analisi e progettazione del sistema
I diagrammi dei casi d'uso
L'identificazione delle classi di un sistema
I diagrammi delle classi
I diagrammi degli oggetti
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 3: Le funzioni
3.1 Introduzione
3.2 I componenti di un programma in C++
3.3 Le funzioni matematiche della libreria standard
3.4 Le funzioni
3.5 La definizione di una funzione
3.6 I prototipi di funzione
3.7 I file di intestazione
3.8 La generazione di numeri casuali
3.9 I giochi d'azzardo e la parola riservata enum
3.10 Le informazioni di memorizzazione
3.11 Le regole di visibilità
3.12 Il concetto di ricorsione
3.13 Un altro esempio di ricorsione: la serie di Fibonacci
3.14 Ricorsione o iterazione?
3.15 Le funzioni che hanno una lista di parametri vuota
3.16 Le funzioni in linea
3.17 I riferimenti e il passaggio di parametri per riferimento
3.18 Gli argomenti di default
3.19 L'operatore unario di risoluzione dello scope
3.20 L'overloading delle funzioni
3.21 Le funzioni generiche
3.22 Pensare in termini di oggetti : come identificare gli attributi di una classe [progetto opzionale]
I diagrammi di stato
I diagrammi delle attività
Conclusione
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 4: Gli array
4.1 Introduzione
4.2 Gli array
4.3 Come si dichiara un array
4.4 Alcuni esempi di array
4.5 Il passaggio di un array a una funzione
4.6 Gli algoritmi di ordinamento e gli array
4.7 Il calcolo di media, mediana e moda con gli array
4.8 Le ricerche in array: ricerca lineare e binaria
4.9 Gli array multidimensionali
4.10 Pensare in termini di oggetti : come identificare le operazioni di una classe [progetto opzionale]
I diagrammi di sequenza
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Esercizi sulla ricorsione
Capitolo 5: Puntatori e stringhe
5.1 Introduzione
5.2 Come si dichiarano e si inizializzano i puntatori
5.3 Gli operatori di manipolazione dei puntatori
5.4 La chiamata per riferimento con argomenti di tipo puntatore
5.5 Privilegi di accesso e passaggio dei parametri
5.6 L'algoritmo di ordinamento a bolle con i puntatori
5.7 L'aritmetica dei puntatori
5.8 La correlazione tra puntatori e array
5.9 Gli array di puntatori
5.10 Un programma per mescolare e distribuire carte da gioco
5.11 I puntatori a funzione
5.12 Introduzione alla manipolazione di caratteri e stringhe
5.12.1 Caratteri e stringhe: concetti fondamentali
5.12.2 Le funzioni di libreria per le stringhe
5.13 Pensare in termini di oggetti : le collaborazioni tra gli oggetti [progetto opzionale]
I diagrammi delle collaborazioni
Riepilogo
Risorse in rete sull'UML
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Sezione speciale: costruite il vostro computer
Ultriori esercizi sui puntatori
Esercizi sulla manipolazione di stringhe
Sezione speciale: esercizi avanzati sulla manipolazione di stringhe
Un progetto di manipolazione di stringhe complesso
Capitolo 6: Le classi e l'astrazione dei dati
6.1 Introduzione
6.2 Come si definisce una struttura
6.3 Come si accede ai membri di una struttura
6.4 L'implementazione del tipo di dato Time come struttura
6.5 L'implementazione del tipo di dato Time come classe
6.6 La visibilità a livello di classe e l'accesso ai membri di una classe
6.7 La separazione di interfaccia e implementazione
6.8 Il controllo dell'accesso ai membri di una classe
6.9 Le funzioni di accesso e di utilità
6.10 L'inizializzazione degli oggetti di una classe: i costruttori
6.11 I costruttori e gli argomenti di default
6.12 I distruttori
6.13 Quando sono chiamati i costruttori e i distruttori?
6.14 L'utilizzo dei dati e delle funzioni membro
6.15 Un sottile errore logico: restituire un riferimento a un dato membro private
6.16 L'assegnamento tra oggetti: la copia di default membro a membro
6.17 Ancora sul concetto di software riutilizzabile
6.18 Pensare in termini di oggetti : programmazione delle classi del simulatore [progetto opzionale]
Implementazione: visibilità
Implementazione: handle
Implementazione: i file di intestazione delle classi
Conclusione
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 7: Le classi: seconda parte
7.1 Introduzione
7.2 Gli oggetti e le funzioni membro costanti
7.3 Il concetto di composizione: oggetti che diventano membri di altre classi
7.4 Le funzioni e le classi friend
7.5 Il puntatore this
7.6 L'allocazione dinamica della memoria: gli operatori new e delete
7.7 I membri static di una classe
7.8 Due concetti importanti: astrazione dei dati e occultamento delle informazioni
7.8.1Il tipo di dato astratto "array"
7.8.2 Il tipo di dato astratto "stringa"
7.8.3 Il tipo di dato astratto "coda"
7.9 Le classi container e gli iteratori
7.11 Pensare in termini di oggetti : l'implementazione delle classi del simulatore [progetto opzionale]
Una panoramica dell'implementazione
Implementazione del simulatore
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 8: L'overloading degli operatori
8.1 Introduzione
8.2 L'overloading degli operatori: concetti fondamentali
8.3 Restrizioni
8.4 La progettazione delle funzioni operatore: funzioni membro o funzioni friend?
8.5 L'overloading degli operatori di inserimento/estrazione per l'I/O su stream
8.6 L'overloading degli operatori unari
8.7 L'overloading degli operatori binari
8.8 Progettazione della classe Array
8.9 Conversioni tra tipi diversi
8.10 Progettazione della classe String
8.11 L'overloading degli operatori ++ e ??
8.12 Progettazione della classe Date
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 9: L'ereditarietà
9.1 Introduzione
9.2 Le classi base e le classi derivate
9.3 I membri protected
9.4 Il cast dei puntatori a una classe base in puntatori a una classe derivata
9.5 Utilizzo delle funzioni membro
9.6 L'overriding di membri della classe base in una classe derivata
9.7 Ereditarietà di tipo public, protected e private
9.8 Classi base dirette e indirette
9.9 Utilizzo dei costruttori e dei distruttori nelle classi derivate
9.10 Conversione implicita di un oggetto di una classe derivata in oggetto della classe base
9.11 Il ruolo dell'ereditarietà nell'ingegneria del software
9.12 Composizione ed ereditarietà
9.13 Le relazioni "uses a" e "knows a"
9.14 Progettazione delle classi Point, Circle e Cylinder
9.15 L'ereditarietà multipla
9.16 Pensare in termini di oggetti : come sfruttare l'ereditarietà nel simulatore di ascensore [progetto opzionale]
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 10: Le funzioni virtuali e il polimorfismo
10.1 Introduzione
10.2 I campi di tipo e le istruzioni switch
10.3 Le funzioni virtuali
10.4 Le classi base astratte e le classi concrete
10.5 Il polimorfismo
10.6 Progettazione di un libro paga elettronico
10.7 L'aggiunta di nuove classi e il binding dinamico
10.8 I distruttori virtuali
10.9 L'ereditarietà di interfaccia e di implementazione
10.10 L'implementazione di polimorfismo,
funzioni virtuali e binding dinamico
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Capitolo 11: Gli stream di input/output del C++
11.1 Introduzione
11.2 Gli stream
11.2.1 I file di intestazione della libreria iostream
11.2.2 Le classi e gli oggetti che effettuano l'input/output su stream
11.3 L'output su stream
11.3.1 L'operatore di inserimento nello stream
11.3.2 Utilizzo degli operatori di inserimento/estrazione in cascata
11.3.3 L'output delle variabili di tipo char*
11.3.4 L'output di caratteri tramite put
11.4 L'input da stream
11.4.1 L'operatore di estrazione dallo stream
11.4.2 Le funzioni membro get e getline
11.4.3 Altre funzioni membro di istream: peek, putback e ignore
11.4.4 L'I/O type-safe
11.5 L'input/output non formattato delle funzioni read, gcount e write
11.6 I manipolatori di stream
11.6.1 La base dei numeri interi su uno stream: dec, oct, hex e setbase
11.6.2 La precisione dei valori a virgola mobile: precision e setprecision
11.6.3 L'ampiezza dei campi: setw e width
11.6.4 I manipolatori definiti dall'utente
11.7 I valori di stato della formattazione
11.7.1 I flag di stato della formattazione
11.7.2 Gli zero in coda e i punti decimali: ios::showpoint
11.7.3 La giustificazione: ios::left, ios::right e ios::internal
11.7.4 Il riempimento dei campi: fill e setfill
11.7.5 La base dei numeri interi: ios::dec, ios::oct, ios::hex e ios::showbase
11.7.6 I numeri a virgola mobile e la notazione scientifica: ios::scientific e ios::fixed
11.7.7 Il controllo delle lettere maiuscole/minuscole: ios::uppercase
11.7.8 L'attivazione e la disattivazione dei flag di formattazione: flags, setiosflags e resetiosflags
11.8 I valori di stato degli errori in uno stream
11.9 Il collegamento di uno stream di output a uno stream di input
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Appendice A: Riepilogo degli operatori
Appendice B:L'insieme dei caratteri ASCII
Appendice C:I sistemi di numerazione
C.1 Introduzione
C.2 Usare i numeri ottali ed esadecimali per abbreviare i numeri binari
C.3 La conversione dei numeri ottali ed esadecimali in binari
C.4 La conversione da binario, ottale o esadecimale in decimale
C.5 La conversione da decimale a binario, ottale o esadecimale
C.6 I numeri binari negativi: la notazione in complemento a due
Esercizi di autovalutazione
Risposte agli esercizi di autovalutazione
Esercizi
Appendice D:Il C++ su Internet
D.1 Risorse
D.2 Tutorial
D.3 FAQ (risposte alle domande più comuni)
D.4 comp.lang.c++
D.5 Compilatori
D.6 Standard Template Library
Tutorial
Riferimenti
FAQ
Articoli, libri e interviste
Software
Indice analitico
Collana: PerCorsi di Studio
Uscita: Marzo 2001
Pagine: 696
ISBN: 9788873036708
Formato: 17 x 24 cm
Booksite:
» Presentazione
» Indice libro
» Indice
» Prefazione
» Capitolo primo
» Codice sorgente
» Area docenti
» Risorse in rete
*Nota per i docenti
I docenti interessati a ricevere copie saggio possono richiederle qui.
Feedback: View blog reactions
In questo volume gli autori completano la presentazione del linguaggio C++ iniziata con C++ Fondamenti di programmazione 2a ed.
La prima edizione italiana di questo volume si è imposta
come punto di riferimento nei corsi di introduzione alla programmazione in linguaggio C ++.
La seconda edizione è stata ampiamente riorganizzata nei contenuti e nell'esposizione anticipando la tra
La classifica delle vendite di questo sito durante l'ultimo mese.