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.
Maggiori Informazioni
Autore
Cabodi Gianpiero;Camurati Paolo Enrico;Pasini Paolo
Editore
Maggioli Editore
Anno
2025
Tipologia
Libro
Collana
Apogeo education
Lingua
Italiano
Indice
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