Introduzione alla programmazione ed elementi di strutture dati con il linguaggio C++

Andrea Domenici, Graziano Frosini

Introduzione alla programmazione ed elementi di strutture dati con il linguaggio C++

Edizione a stampa

38,50

Pagine: 480

ISBN: 9788846462022

Edizione: 6a ristampa 2022, 8a edizione, aggiornata e ampliata 2004

Codice editore: 700.12

Disponibilità: Buona

In questo testo vengono illustrati i principi della programmazione e forniti elementi di strutture dati, facendo riferimento al linguaggio di programmazione C++.

La descrizione del linguaggio arriva fino alle classi (non viene esaminata la parte che riguarda la programmazione a oggetti, trattata in D. Dorbolò, G. Frosini, B. Lazzarini, Programmazione a oggetti con riferimento al C++ ,, FrancoAngeli, 2001): il testo è quindi adatto per un corso di fondamenti di informatica, in cui si vogliano illustrare le tecniche più importanti della programmazione, i tipi di dato astratti e alcune strutture dati basilari, utilizzando un linguaggio di programmazione largamente diffuso nel mondo produttivo.

I vari costrutti linguistici del linguaggio C++ vengono presentati in forma semplificata, evitando dettagli che possano distrarre l'attenzione del lettore. Gli esempi sono stati scelti prendendo argomenti che hanno riscontro nell'esperienza comune, in modo da rendere il testo largamente utilizzabile.

Questo volume è assai ricco di programmi. Molti di essi sono disponibili anche via Internet, al sito: http://www.ing.unipi.it/progc++

Andrea Domenici è ricercatore presso la Facoltà di Ingegneria dell'Università di Pisa, settore ING-INF/05. Si è laureato in Ingegneria elettronica presso l'Università di Pisa nel 1986 e ha conseguito il dottorato di ricerca in Ingegneria elettronica, informatica e delle telecomunicazioni. Tiene attualmente il corso di Ingegneria del software presso la Facoltà di Ingegneria dell'Università di Pisa. Svolge ricerche nell'area dell'ingegneria del software.

Graziano Frosini è professore ordinario di Calcolatori elettronici presso la Facoltà di Ingegneria dell'Università di Pisa. Si è laureato in Ingegneria elettronica presso l'Università di Pisa nel 1967, come allievo della Scuola Superiore di Studi Universitari e Perfezionamento "S. Anna" di Pisa. È stato ricercatore presso l'Istituto di Elaborazione dell'Informazione del CNR di Pisa, e docente presso l'Università di Ancona. Svolge ricerche nell'area dell'architettura dei sistemi di elaborazione.


Sviluppo di un programma
(Ambiente di programmazione DJGPP; Scrittura, traduzione, collegamento ed esecuzione di un programma; Esempio di sviluppo di un programma; Programmazione a moduli; Ambiente di programmazione RHIDE)
Sintassi del C++
(Metalinguaggio per la sintassi C++; Caratteri utilizzati ed elementi lessicali)
Tipi fondamentali
(Oggetti e tipi; Dichiarazioni e definizioni; Tipo intero; Tipo reale; Tipo booleano; Tipo carattere; Tipi enumerazione; Operazioni miste e conversioni di tipo; Definizione di oggetti costanti; Operatore sizeof; Funzioni di libreria)
Istruzioni semplici
(Struttura di un programma; Espressioni di assegnamento; Espressioni aritmetiche e logiche; Operatore condizionale; Operatore virgola)
Ingresso e uscita dei dati
(Stream di ingresso e comando di lettura; Stream di uscita e comando di scrittura; Uso dei file; Un semplice programma C++)
Istruzioni strutturate e di salto
Funzioni
(Definizione, dichiarazione e chiamata; Argomenti e variabili locali; Funzioni void; Funzioni senza argomenti; Ricorsione; Esempio: problema della torre di Hanoi; La funzione exit())
Riferimenti e puntatori
Array
(Array multidimensionali; Stringhe; Array come argomenti di funzioni; Array, indirizzi e puntatori; Funzioni di libreria per le stringhe; Esempi)
Strutture e unioni
Altri aspetti delle funzioni
(Puntatori a funzione; Argomenti default; Overloading; Funzioni inline)
Altre forme di dichiarazione
(Dichiarazioni di oggetti e funzioni; Dichiarazioni di tipo; Dichiarazioni typedef; Forme consigliate per le dichiarazioni)
Memoria libera
(Operatori new e delete; Liste semplici; Operazioni sulle liste; Esempio di programma con le liste; Liste con puntatore ausiliario; Liste complesse; Pile e code con le liste; Alberi binari; Visite; Rappresentazione di espressioni)
Visibilità, collegamento e moduli
(Organizzazione di un programma; Regole di visibilità; Blocchi; Unità di compilazione; Spazi di nomi; Collegamento; Collegamento con altri linguaggi; Classi di memorizzazione degli oggetti; Riepilogo sull'uso della parola chiave static; Allocazione in memoria libera; Effetti collaterali; Moduli; Programma per una agenda telefonica)
Alcuni algoritmi di uso comune
(Complessità di un algoritmo; Ordinamento di un vettore; Ricerca in un vettore)
Classi
(Limitazioni dei tipi derivati; Tipi classe; Oggetti classe; Puntatore this; Visibilità a livello di classe; Modularità e ricompilazione; Funzioni globali; Costruttori; Distruttori; Costruttore di copia; Funzioni friend; Tipi pila e di coda con le classi)
Operatori con oggetti classe
(Overloading di operatori; Simmetria degli operatori; Operatore di assegnamento; Esempi; Operatori che si possono ridefinire)
Altre proprietà delle classi
(Costanti e riferimenti nelle classi; Membri classe all'interno di classi; Array di oggetti classe; Membri statici; Funzioni const; Puntatori a membro; Espressioni letterali; Conversioni di tipo; Allocazione e deallocazione; Strutture e classi)
Tipi di dato comuni con le classi
(Tipi vettore; Tipi lista; Tipi albero; Tipi tabella)
Classi per l'ingresso e per l'uscita
(Operazioni di lettura e di scrittura; Classi istream ed ostream; Uso dei file; Lettura e scrittura per i tipi definiti dall'utente; Letture e scritture non formattate; Programma riepilogativo)
Preprocessore
(Funzioni del preprocessore; Inclusione di file; Macro; Compilazione condizionale)
Appendice
(Programmi in rete; Operatori C++; Codici ASCII; Sintassi).
Indice analitico

Collana: Informatica

Argomenti: Programmazione e sviluppo del software

Livello: Textbook, strumenti didattici - Testi per professional

Potrebbero interessarti anche