Sei sulla pagina 1di 667
A education Corso completo di programmazione terza edizione H.M. Deitel P. J. Deitel c Corso completo di programmazione, terza edizione Titolo originale: C How to Program, Fifth Edition Autori: Harvey M. Deitel, Paul J. Deitel Published by arrangement with the original publisher, PRENTICE HALL, INC., a Pearson Education Company Copyright © 2007 ~ PRENTICE HALL, INC. Copyright per ledizione italiana © 2007 - APOGEO s.r. Socio Unico Giangiacomo Feltrinelli Editore s.r. Via Natale Battaglia, 12 ~ 20127 Milano (Italy) Telefono: 02-289981 - Telefax: 02-26116334 Email education@apogeonline.com URL. — http://Avww.apogeonline.com ISBN-13 978-88-503-2633-4 Traduzione e revisione: Ivan Scagnetto Impaginazione elettronica: Grafica editoriale ~ Vimercate Editor: Alberto Kratter Thaler Copertina e progetto grafico: Enrico Marcandalli Responsabile di produzione: Vitiano Zaini ‘Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni internazionali. Nessuna parte di questo libro pud essere riprodotta con sistem elettronici, meccanici o altri, senza Pautorizzazione scritta dell’Editore. Nomi ¢ marchi citati nel testo sono generalmente depositatio registrati dalle rispettive case produttrci. Fotocopie per uso personale de! letore possono essere effettuate nei limiti del 15% di ciascun volume dietro pagamento alla SLAE del compenso previsto dall'art. 68, comma 4, della legge 22 aprile 1941 n. 633 owvero dell’accordo stipulato tra SLAE, AIE, SNS e CNA, CONFARTIGIANATO, CASA, CLAAI, CONFCOMMERCIO, CONFESERCENTI il 18 dicembre 2000. Le riproduzioni a uso differente da quello personale potranno avvenire, per un numero di pagine non superiore al 15% del presente volume, solo a seguito di specifica autorizzazione rilasciata da AIDRO, Csodi Porta Romana,n. 108,~20122 Milano, telefono 02 89280804, telefax 02 892864, e-mail aidro@iol. Finito di stampare nel mese di giugno 2007 da Legoprint - Lavis, Trento Sommario PREFAZIONE Lo scopo di questo libro .. La metodologia di insegnamento Panoramica sul libro . xiv Ringraziamenti xix Gli autori xxii CapitoLo |: INTRODUZIONE Al COMPUTER, A INTERNET E AL WEB... 1d Introduzione.... 1.2 Che cosa é un computer? 13 Lorganizzazione 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 ¢ di alto livello 17 FORTRAN, COBOL, Pascal e Ad: 18 La storia del C .... 19 La libreria standard del C 1.10 0 C++ Al Java 1.12 BASIC, Visual Basic, Visual C++, C# e NET... 1.13 La chiave dell’evoluzione del software; la tecnologia a ogge 1.14 Le basi di un tipico ambiente di sviluppo di un programma C. 1.15 L’evoluzione dell’hardware 1.16 La storia di Internet ... 1.17 La storia del World Wide Web 1.18 Note generali sul C e su questo libro . Esercizi di autovalutazione ... Risposte agli esercizi di autovalutazione Eserci CaPiTOLo 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C .. 21 Introduzione.... 2.2 Un semplice programma C: visualizzare una riga di testo 2.3 Unaltro semplice programma C: sommare due interi 24 Nozioni sulla memoria .. 25 Laritmetica del C.... 2.6 Prendere delle decisio: Esercizi di autovalutazion Risposte agli esercizi di autovalutazione Esercizi gli operatori di uguaglianza ¢ relazionali Vv SOMMARIO CaPiTOLo 3: Lo SvILUPPO DI PROGRAMM! STRUTTURATI INC .. 3.1 Introduzione 3.2 Gli algoriem 3.3. Lo pseudocodice..... 34 Le structure di controllo 3.5 Il comando di selezione if. 3.6 Il comando di selezione if...else 37 Il comando di iterazione while. 3.8 Formulazione degli algoritmi: studio di un caso 1 (iterazione controllata da un contatore) .... 3.9 Formulazione degli algoritmi con processo top-down per raffinamenti successivi: studio di un caso 2 (iterazione controllata da un valore sentinella) 3.10 Formulazione degli algoritmi con processo top-down per raffinamenti successivi: studio di un caso 3 (strutture di controllo nidificate) .. 69 3.11 Gli operatori di assegnamento Gli operatori di incremento e di decremento CaPiToLo 4: IL CONTROLLO DEL PROGRAMMA IN C ... 41 Introduzione... 42 Gli elementi dell’iterazione . 43 Iterazione controllata da un contatore 44 Il comando di iterazione for 45 Tl comando for: note e osservazioni 4.6 Esempi di utilizzo del comando for 47 Icomando di selezione multipla switch 48 Il comando di iterazione do...while .. 49 Le istruzioni break e continue... 410 Gli operatori logic 4.11 Confondere gli operatori di uguaglianza 4.12 Riassunto della programmazione strutturata Esercizi di autovalutazione . Risposte agli esercizi di autovalutazione Esercizi ) e di assegnamento Capiroto 5: Le FUNZIONI IN C 5.1 Introduzione.. 5.2 I moduli di programma in C 5.3 Le funzioni della libreria matematica 5.4 Le funzioni 5.5 Le definizioni di funzione 5.6 I prototipi di funzione . 5.7 I file di intestazione .. SOMMARIO. v 5.8 [file di intestazione 5.9 Invocare le funzioni: chiamata per valore e per riferimento 5.10 Generazione di numeri casuali 5.11 Esempio: un gioco d’azzardo 5.12 Le classi di memoria 5.13 Le regole di visibilic: 5.14 La ricorsione 5.15 Esempio di utilizzo della ricorsion 5.16 Ricorsione e iterazione.. Esercizi di autovalutazione.. Risposte agli esercizi di autovalutazione Esercizi Ja serie di Fibonacci Capiroio 6: | veTTORI INC 61 Introduzione 6.2 I vettori 63 La dichiarazione dei vettori 6.4 Esempi sui vettori.. 65 Passare i vettori alle funzioni 6.6 Lordinamento dei vettori.. 67 Studio di un caso: calcolare la media, 68 La ricerca nei vettori 69 I vettori multidimensionali Esercizi di autovalutazione.... Risposte agi eseciai di autovalutazione la mediana e la moda usando i vettori .... 210 Caritoto 7: | PUNTATORI IN C 7A Introduzione. 7.2 Dichiarazione ¢ inizializzazione dei puntatori 7.3 Gli operatori sui puntatori 7.4 La chiamata per riferimento delle funzioni 7.5 Utilizzare il qualificatore const con i puntatori 76 Lordinamento a bolle utilizzando una chiamata per riferiment 7.7 Loperatore sizeof. 78 — Leespressioni con i puntatori e Fariemetica dei puncatori 7.9 — Larelazione tra i puntatori e i vettori 7.10 I vettori di puntatori 7.11 Studio di un caso: simulazione di un mescolatore e distributore di carte 7.12 I puntatori a funzioni Esercizi di autovalutazione .. Risposte agli esercizi di autovalutazione Esercizi Sezione speciale: costruite il vostro computer . vl SOMMARIO. CapiToLo 8: | CARATTERI E LE STRINGHE IN C... 81 Introduzione... 8.2 I concetti fondamentali delle stringhe e dei caratteri 8.3 La libreria per la gestione dei caratteri 8.4 Le funzioni per la conversione delle stringhe .... 8.5 Le funzioni della libreria per input/output standard . 8.6 Le funzioni per la manipolazione delle stringhe incluse nella libreria per la gestione delle stringhe 8.7 Le funzioni di confronto incluse nella libreria per la gestione delle stringh« 8.8 Le funzioni di ricerca incluse nella libreria per la gestione delle stringhe. 8.9 Le funzioni per la manipolazione della memoria incluse nella libreria per la gestione delle stringhe 8.10 Lealtre funzioni della libreria per la gestione delle stringhe Esercizi di autovalutazione ... Risposte agli esercizi di autovalutazione Esercizi Un progetto impegnativo per la manipolazione delle stringhi CapiToLo 9: LA FORMATTAZIONE DELL’INPUT/OUTPUT IN C .... 91 Introduzione 9.2 Gli stream 9.3. Formattare output con printf 94 Visualizzare gli interi 95, Visualizzare i numeri in virgola mobile .. 9.6 Visualizzare le stringhe e i caratteri 97 Gli altri indicatori di conversione 98 Visualizzare con le dimensioni di campo e le precision 99 Utilizzare i flag nella stringa di controllo del formato della printf. 9.10 — Visualizzare i letterali ¢ le sequenze di escape 9.11 Formattare input con scanf... Esercizi di autovalutazione ... Risposte agli esercizi di autovalutazione Eserci CaprroLo 10: Le sTRUTTURE, LE UNIONI, LA GESTIONE DEI BIT E LE ENUMERAZIONI IN C... 10.1 Introduzione... 10.2 La definizione delle structure 10.3. Inizializzare le strutture. 10.4 Accedere ai membri delle strutture 10.5 Usare le strutture con le funzioni 10.6 typedef.. 10.7 Esempio: simulazione di un mescolatore e distributore di carte ad alta efficienza ..

Potrebbero piacerti anche