Dal problema al programma
Introduzione al problem-solving in linguaggio C
di Gianpiero Cabodi, Paolo Enrico Camurati, Paolo Pasini, Denis Patti e Danilo Vendraminetto

Questo libro si propone di rispondere a una delle sfide più impegnative poste dai primi corsi di Programmazione nelle lauree di area scientifica e tecnologica: la necessità di acquisire non solo un nuovo strumento (il linguaggio, con la sua sintassi e le sue specificità), ma una nuova mentalità, una metodologia strutturata orientata alla risoluzione di problemi. L’enfasi del testo è posta proprio sul “problem-solving”: dopo la presentazione di uno schema generale per la classificazione dei problemi computazionali, il lettore è guidato passo passo nella risoluzione delle diverse tipologie di problemi, dalla costruzione di un modello formale alla definizione di un algoritmo alla scrittura del programma. Si presuppone la conoscenza sintattica dei principali costrutti del linguaggio C (che vengono comunque richiamati in un capitolo apposito). L’esposizione si basa in gran parte sugli esempi, svolti in notevole dettaglio, e su un gran numero di esercizi, molti dei quali corredati da soluzione.
Gianpiero Cabodi
Professore associato di Sistemi di elaborazione delle informazioni presso il Dipartimento di Automatica e Informatica del Politecnico di Torino.
Paolo Enrico Camurati
Professore ordinario di Sistemi di elaborazione delle informazioni presso il Dipartimento di Automatica e Informatica del Politecnico di Torino.
Paolo Pasini
Ricercatore di Elettronica presso il Dipartimento di Elettronica e Telecomunicazioni del Politecnico di Torino.
Denis Patti e Danilo Vendraminetto
Dottori di ricerca in Ingegneria Informatica e dei Sistemi del Politecnico di Torino.
Seconda edizione rivista
CONTENUTI AGGIUNTIVI
Disponibile online: codice sorgente degli esempi proposti nel testo
Pagine | 246 |
Data pubblicazione | Febbraio 2025 |
Data ristampa | |
ISBN | 8891649348 |
ean | 9788891649348 |
Tipologia prodotto | Cartaceo |
Sottotitolo | Introduzione al problem-solving in linguaggio C |
Collana | Apogeo Education |
Editore | Apogeo Education - Maggioli Editore |
Dimensione | 17x24 |
1 Prefazione ix
2 Introduzione 1
2.1 Ilproblem-solving
2.2 Iproblemicomputazionali
2.3 Tipologie di problemi computazionali
2.4 Approccio alla soluzione di problemi computazionali
2.5 Algoritmo
3 L’essenziale del C 7
3.1 Aspetti sintattici e struttura di un programma C
3.2 Tipi di dato primitivi, variabili e costanti
3.2.1 Dichiarazionedivariabili
3.2.2 Costanti
3.2.3 Espressioni
3.2.4 Assegnazionediunvalore
3.2.5 Esempi e casi particolari di assegnazione
3.2.6 Castdi tipo
3.2.7 Tipididatoaggregati
3.2.8 Puntatori
3.2.9 QuickRef
3.3 Costrutti per operazioni di input e output
3.3.1 Aperturae chiusuradiunfile
3.3.2 Operazionidi I/O
3.3.3 QuickRef
3.4 Costrutti condizionalie iterativi
3.4.1 Espressioni logiche, operatori relazionali e Booleani
3.4.2 Costrutto if
3.4.3 Costrutto switch
3.4.4 Costrutto while
3.4.5 Costrutto do ... while
3.4.6 Costrutto for
3.4.7 Terminazionenonstrutturata
3.4.8 QuickRef
3.5 Tipi di dato aggregati: vettori, matrici e strutture
3.5.1 Vettori ematrici
3.5.2 Strutture
3.5.3 QuickRef
3.6 Funzioni
3.6.1 Il prototipo di una funzione
3.6.2 Definizionedella funzione
3.6.3 Chiamatadella funzione
3.6.4 Puntatori e parametri by pointer
3.6.5 Vettori ematrici comeparametri
3.6.6 Gli argomentialmain
3.6.7 QuickRef
3.7 Argomentinontrattati
4 Problem-solving su dati scalari
4.1 Probleminumerici
4.1.1 Probleminoniterativi
4.1.2 Problemi iterativi
4.2 Problemi di codifica, decodifica, transcodifica
4.2.1 Problemi suvalorinumerici
4.2.2 Problemi su valori non numerici (caratteri)
4.3 Problemi di elaborazione testi (text-processing)
4.3.1 Confronto/selezione di caratteri/stringhe
4.3.2 Elaborazione di testi carattere per carattere
4.3.3 Elaborazione di testi mediante stringhe
4.4 Problemidiverifica edi selezione
4.4.1 Problemidiverifica
4.4.2 Problemidi selezione
4.4.3 Ordinamentoparziale
4.5 Esercizi risolti
4.6 Eserciziproposti
4.7 Scheda:classificazionedeiproblemi
5 Problem-solving su dati vettoriali
5.1 Ivettori
5.2 Probleminumerici
5.2.1 Problemi suinsiemidinumeri
5.2.2 Problemi su sequenze di numeri
5.2.3 Problemi su statistiche per gruppi
5.2.4 Problemi di codifica di numeri
5.3 Problemi di codifica, decodifica e transcodifica
5.3.1 Problemi di codifica, decodifica e transcodifica su valori non numerici (caratteri)
5.4 Problemidi text-processing
5.4.1 Selezionebasata sustringhe
5.4.2 Elaborazione di testi carattere per carattere
5.4.3 Problemi di elaborazione di testi mediante stringhe
5.5 Problemidiverifica e selezione
5.5.1 Problemidiverifica
5.5.2 Problemidi selezione
5.5.3 Problemidiordinamento
5.6 Esercizi risolti
5.7 Eserciziproposti
5.8 Scheda: ivettori
6 Problem-solving su problemi complessi
6.1 Introduzione
6.2 Ilparadigma“divideet impera”
6.2.1 La scomposizione delle strutture dati
6.2.2 La scomposizione degli algoritmi
6.3 Esercizi risolti
6.3.1 Importexport
6.3.2 Codificadi immagine
6.3.3 Labirinto
6.3.4 Orario
6.3.5 Operazionisupolinomi
6.3.6 Operazionisuinsiemi
6.3.7 Campionato
6.3.8 Posta
6.3.9 Posta (versione2)
6.3.10 Magazzino
6.4 Eserciziproposti