C e C++. Le chiavi della programmazione
Book information
Description
La programmazione è una forma d'arte, così come possono esserlo la pittura, il disegno o la scultura. Realizzare un programma significa infatti creare qualcosa che prende vita grazie al talento di un essere umano. Questo testo vuole fornire gli strumenti per intraprendere il lungo viaggio che può portare chiunque sia dotato di passione per le macchine a diventare un vero programmatore e quindi a dialogare con esse. Per farlo individua quelle che potrebbero essere definite "le chiavi della programmazione" nell'uso dei linguaggi C e C++, strumenti imprescindibili per qualsiasi programmatore. Questa seconda edizione introduce inoltre il lettore alla programmazione delle schede per microcontroller e alla loro interconnessione con la rete Internet, un contesto in cui il linguaggio C mostra ancora tutta la sua potenza e attualità. Introduzione Parte 1 - Il linguaggio C e i fondamenti della programmazione 1 Premesse e motivazioni per unire la teoria e la pratica della programmazione Analogico versus digitale: la battaglia ormai persa In principio era il bit Quanti ne rappresento? Nibble e Byte Altre basi numeriche Rappresentazione dei dati alfanumerici Hardware e software Linguaggi naturali e artificiali I programmi traduttori Interpreti e compilatori A spasso con una “macchina virtuale” Il C e le sue origini Il C come primo linguaggio Ambienti di sviluppo Gli ambienti di sviluppo per il C Creare programmi con interfaccia grafica 2 Salve, mondo “Salve, mondo” con Dev-C++ Salutiamo il mondo da Code::Blocks 3 Le variabili e il mondo esterno Andiamo a capo Input e output di base Tipologie di variabili Anche l’occhio vuole la sua parte I nomi delle variabili Le costanti Quando le costanti sono tante: le enumerazioni 4 Operiamo sui dati Aiuto: quanti problemi! Algoritmo, la parola magica I diagrammi di flusso Operatori aritmetici printf, la stampa e le specifiche di formattazione Il casting delle variabili Operatori di incremento e decremento Operatori relazionali Operatori logici 5 Il debugging di un’applicazione Fare debug con Dev-C++ Il debug con Code::Blocks 6 Istruzioni condizionali: operiamo delle scelte Il costrutto if-else Il costrutto else if Strutture nidificate Il costrutto switch 7 Cicli, ovvero noi la mente e la macchina il braccio Spaghetti e programmazione strutturata Il ciclo for: ripetiamo contando Il ciclo while Il ciclo do-while Facciamo un break 8 Cominciamo a fare sul serio: gli array Premesse sulla complessità dei dati Le strutture dati composte Gli array Inizializziamo un array Array di caratteri, usiamo le stringhe Caratteri “numerici” Input di caratteri, la funzione getchar Una pausa alternativa Do ut des, ovvero getchar e putchar Il pappagallo rimbambito Input e output di stringhe: gets e puts Il pappagallo 2, la vendetta Alcune funzioni tipiche per le stringhe 9 Array bidimensionali Array a due dimensioni La scansione di un array 2D La generazione di numeri casuali 10 Ordiniamo le cose: gli algoritmi notevoli Selection Sort Bubble sort 11 Soluzioni semplici a problemi complessi: le funzioni Approccio Top-Down alla programmazione Procedure e funzioni Dichiarazione e definizione di una funzione Nessun input, nessun output Input sì, output no Input e output nella stessa funzione La visibilità delle variabili 12 La ricorsione e le funzioni ricorsive I numeri fattoriali Ancora ricorsione, Fibonacci 13 I puntatori I puntatori Puntatori e array Puntatori e funzioni L’eccezione che conferma la regola: array, funzioni e passaggio per indirizzo Comunichiamo con il programma, il passaggio di parametri al main 14 Le strutture: molti dati e un’unica variabile Campi, record e strutture Una struttura dentro l’altra Array di strutture Le strutture e le funzioni Nuovi tipi con typedef I campi di bit Le unioni 15 I file e gli archivi di dati secondo il C Archivi e file Apertura e chiusura di un file Modalità di apertura di un file Scriviamo e leggiamo file di testo: fprintf e fscanf Gestire gli errori Un carattere per volta: fgetc e fputc Scrivere e leggere file binari: fwrite e fread Gestire gli archivi di dati Parte 2 - Oltre le frontiere del C 16 La programmazione orientata agli oggetti e lo sviluppo di software complesso I linguaggi orientati agli oggetti Evoluzione dei linguaggi di programmazione Vita, morte e “miracoli” di un software Non solo codice Il versioning del software Dall’alfa al rilascio: versioni alfa, beta, RC 17 Dal C al C++ Un “Salve mondo” anche per il C++ Diamo spazio ai nomi Visibilità delle variabili in C++ I riferimenti 18 Input e output di dati Console input cin e le stringhe: un rapporto difficile Qualche dettaglio sull’output, un po’ di formattazione 19 Oggetti e classi Dalle struct alle classi Incapsulamento e occultamento dell’informazione Parliamo agli oggetti: messaggi e metodi Oggetti e istanze Come disegnare le classi 20 L’arte del creare e del distruggere Il costruttore Il distruttore La compilazione separata 21 Il polimorfismo del C++ Monomorfismo e polimorfismo Una firma per la classe Codice e ambiguità Quando il numero conta: array di oggetti Puntare sulla classe Da punto a punto: puntare su se stessi Overloading anche sugli operatori 22 Ereditarietà L’ereditarietà del C++ Proteggere i membri della propria classe Diversi ma non troppo: la sovrapposizione Quando il virtuale è realmente utile Dal virtuale all’astratto L’amicizia è una funzione importante 23 La programmazione generica e la libreria standard del C++ Riutilizzo del codice e applicazioni legacy Modelli, template e classi generiche Specializzare un template La programmazione generica STL: Standard Template Library 24 Flussi e file nel C++ Le classi per la gestione dei file Apertura e chiusura di un file Scriviamo file di testo Modalità di apertura Leggiamo il contenuto di un file File binari e archivi di dati Un archivio reale: gestiamo una collezione di fumetti 25 La gestione degli errori e delle eccezioni Try e catch Gestori multipli Eccezioni standard 26 L’allocazione dinamica della memoria Stack e Heap: come gestire la memoria New e delete: operiamo dinamicamente sulla memoria Il dinamismo di un array I memory leaks Verifichiamo la disponibilità di spazio di memoria Allochiamo dinamicamente oggetti 27 Le interfacce grafiche e la programmazione guidata da eventi La programmazione guidata da eventi Che fatica aprire una finestra WinMain: il punto di ingresso dell’applicazione La struttura di una finestra Un loop per i messaggi Rispondiamo ai messaggi Messaggi complessi Le risorse indispensabili per un’applicazione 28 Il C, Arduino e l’Internet delle cose Arduino Hardware e corrente elettrica La programmazione software di Arduino Un “salve, mondo” per Arduino Costanti e variabili Comunicazione seriale Arduino e la prototipazione Qualche cenno sui principi della corrente elettrica LED, resistenze e caduta di tensione Fritzing: un aiuto per la progettazione elettronica Bluetooth + Arduino = IoT Collegamento wireless: il modulo ESP8266 Hardware libero e sperimentazione
Similar books
C e C++. Le chiavi della programmazione
2016 · EPUB
Introduzione alla metafisica
2006 · PDF
Epistolae pontificiae ad Concilium florentinum spectantes
1940 · PDF
Tutti i colori dei ceri. Volti e storie di una festa senza tempo. Ediz. illustrata
2021 · PDF
Le case delle fate. L'incanto delle domus de janas
2022 · PDF
Pittura tardogotica in Sicilia
2008 · PDF
Carpaccio e gli scrittori anglo-americani dell'Ottocento a Venezia
2023 · PDF
La Cattedrale di Santa Maria del Fiore a Firenze. Uno scrigno di sapienza
2016 · PDF