Sei sulla pagina 1di 297
e Corso completo di programmazione Titolo originale: C How to Program, Second Edition Autori: Harvey
e Corso completo di programmazione Titolo originale: C How to Program, Second Edition Autori: Harvey

e

Corso completo di programmazione

Titolo originale:

C How to Program, Second Edition

Autori:

Harvey M. Deitel, PaulJ. Deitel

Published by arrangement with the or.igioal publisher, PRENTICE HALL, INC.,

a Pearson Education Company

Sommario

P

REFAZIONE

.•.•.•••.••

Lo scopo di questo libro

La metodologia di insegnamento

••

•••

•••

Xl

xi

xii

Lapprendimenro attraverso il

cod ice

x ii

Laccesso al Wodd W ide Web

xii

Obiettivi

x ii

~i;: c: ~~a~i:~~~.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :

Consigli e

suggerimenà

xiii

Esercizi di

autovalutazione

xiv

Esercizi

xiv

Indice analitico

xiv

Panoramica sul libro

xiv

Copyright © 1994 - PRENTICE HALL, INC.

C

APITOLO I : N OZIONI SULLA ELABORAZIONE ELETTRONICA ••

••

••.

I

1.1

Inn:oduzio ne

1

1.2

Che cosa è un computer?

 

3

Copyright per l'edizione italiana © 2000 - APOGEO stl

1.3

L'organizzazione d el compucer

3

Viale Papiniano 38 - 20123 Milano (ltaly)

1.4

L' elaborazione

batch, la multiprogrammazione e il timesharing

 

4

Telefono: 02-461920 (5 linee r.a.) - Fax: 02-4815382

1.5

L'elaborazione

perso nale, distribuita e dient/server

5

Email

educati on@apogeonline.com

1.6

I linguaggi macchina, assemb.ly e di alto livello

 

6

U.R.L.

www. apogeonline. com

1 .7

La sroria del c

7

 

1.8

La libreria standard del c

 

8

ISBN 88-7303-669-4

1.9

Gli altri linguaggi di alto livello

8

1.1

O

La

programmazione

strutturata

9

Traduzione cli Michele Trulli

1 .1

1

Le

basi dell 'amb i e nte

c

10

Revisione di Ivan Scagnetto

1.1

2

Note generali sul Ce

su questo libro

12

Impaginazione di Guido e Gianfranco Giuseppini

1.13

Il Concurrenr C

13

Realizzazione editoriale di Spock s.a.s. di Augusto Vico e c.

1.1 4

La programmazione orientata agli oggetti e il C ++

13

Editor: Alberto Kratter Thaler

Esercizi di autovalutazione

14

Copertina e pcogetto grafico: Enrico Marcandalli

Risposte agli esercizi di autovalutazione

14

Responsabile di produzione: Vitiano Zaini

Esercizi

15

Letture consigliare

16

Tutti i di.ritti sono riservati a norma di legge e a norma delle convenzioni intèrnazionali. Nessuna parte di questo ]jbro può essere riprodotta con sistemi elettronici, meccanici

o altri, senza l'autorizzazione scritta dell'Editore.

Nomi e marchi citati nel testo sono generalmente depositati o registraci dalle rispettive case produttrici.

CAPITOLO 2: I NTRODUZIONE A LLA PROGRAMMAZIONE IN C

• •

•.••• .• • ••

.••• I9

2.

1

lnuoduzione

19

2.2

Un

semplice programma C: v.isualizzareuna riga di tesro

19

2.3 Un altro semplice programma C: sommare due interi

23

2.4 Nozioni sulla memoria

28

2.5 L' arianetica del C

29

2.6 Prendere delle decisioni: gli operatori di uguaglianza e relazionali

33

Esercizi di autovalutazione

37

j

Sommario e Corso completo di programmazione Titolo originale: C How to Program, Second Edition Autori:
Sommario e Corso completo di programmazione Titolo originale: C How to Program, Second Edition Autori:

Sommario

e

Corso completo di programmazione

Titolo

originale:

C How to Program, Second Edition

Autori:

Harvey M. D eitel,

P aul

J.

D eitel

Published by

arraogcmenr

with

th e origi a al

a Pearson Educacion Company

publisher,

PRE N TICE HALL,

lNC .,

Coprnght

©

1994 -

PRENTICE

HA.LL,

INC.

Copyright

per

l'edizione

italiana

©

2000 -APOGE O

srl

Vìalc Paptniano

38 -

20123

Milano

(h aly)

Telefono:

02-461920 (5

linee

r.a.) -

Fax:

02-4815382

Email

U. R.L.

educati on@a pogeo nli ne .com a pog eo nline.

www .

com

ISBN 88-7303-669-4

Tmduzione

di

Michele

Trulli

Revisione

di

l van

Scagncuo

P

REFAZIO NE

•.•.•• • •.••••••••••• ••. •• •.••.•.•

.

Lo

la

sco po

di

questo

lib ro

metodologia d i insegnamento

I.:app rendimcmo

aa:raverso il codice

t.:accesso

al

Wotld Wide Web

Obic:n.ivi

Il

codice

e

F

.

tgur~

:

Co ns igli

E

~erci·1.i

.

11n

e

di

Eserc iz i

gli

m

esempi

.

.

ag~ 1

·· · ···:

s uggenm entt

au to valucaz io n e

1n<licc:

Pan oramica

sul

ana litico

libro

~

• •• ••••.••••.•.• ••

C

APITOLO

I

:

N

OZION I SULLA ELABORAZIONE ELETTRONICA • •••• •• • ••• •

••• •• • •• ••• ••••

1. 1

Inrrod uzione

1.2

C he cosa

è

un

com pu ter?

1.3 L'organ izza:Lione

del

compu ter

l.4

l.5

L'elabor.nio ne b acch , la L'elaborazione personale.

m ul t ipro grammazione e

dimihuita e

il

dient/server

1.6

1.7

I

lin g uaggi macchina , asscmbly e d i aJ ro li veliQ

La

scoria d el

e

1.8

La

l.ib rcn a

scan d

ard

d el

e

ti mesha ring

1.9

Gli

al tr i li nguaggi di

al to livello

LIO

La

program mazion e

scru crurara

L.11

Le

basi

d ell'amb ic:n cc:

e

1.

U

No te

general i

sul

C

e su qucst0

lib ro

l mp aginazione

di

Guido

e

Gianfranco

Giusèppini

I

.1 3

li

Co n c urr e n t

e

RcaJizzazlone eclito ria le

di

Spock

s.a.s.

cli

Augu s to Vico e c .

1.

L4

La

programmaz:ione o rientata agli oggetti e

il

C++

Edi tor: Alberto K.rnttcr Tbitler

 

·Esercizi

d.i

aurovaJurazi<;>ne

 

Copertina e

p roge t to g ra fi co : Eru:ico M arcandalli

.Res p onsabile dJ

procl nrio nc: 'Vitian o Zaini

Tuto

i

diritti

sono

riservaci u

norma

di

le~

e

a

no.an,1

R:isposcc

agl i esercizi d i aucovalu rnziMc

Tuercizi

,

Letture con sigliate

C APITOLO

2:

I NTRO DUZIONE ALLA

PROGRAM MAZIO N E IN

C

.••

•.

. •••

•• . •

••••.•.••

.

X l

x i

xi i

xi i

xii

xii

xii

~

'.'.

x 111

xiv

xiv

xiv

xiv

•••

I

1

3

3

4

5

6

7

8

8

9

1o

12

13

13

14

14

15

16

.•

19

dell e

convenzioni

in tc:r oaz1on:ùi.

Nessuna pane

di

questo

libro

 

2.1

fn rrod urio oc:

 

19

può esi.erc ciprodoua con

s1stcmj

elettronici,

mcccaruct

 

2 .2

Un

semplice program ma C:

visualizzareuna

riga

di

resco

 

19

o aJm, senza l'aucorizzaz1one senna dell'Edito!e.

 

2. 3

Un altro

sem plice

programm a C:

 

23

 

2 .4

Norion.i

sulla memoria

sommare due interi -

28

N omi

e mardu

citati

rispettive case

nel resto sono generl}lmente

depos1catì

o

ccgistraa

1. 5

L'a rirmetica

dcl

C

29

dalle

produrtnct.

 

2.6

Prendere delle decisio ni:

gli o peratori d i uguaglianza

e

relazionali

33

 

Esercizi

di

a ucovalut:u.ionc

37

ni: gli o peratori d i uguaglianza e relazionali 33   Esercizi di a ucovalut:u.ionc 37
ni: gli o peratori d i uguaglianza e relazionali 33   Esercizi di a ucovalut:u.ionc 37

I

I

IV

SOMMARIO

Risposcc

agli

esercizi

di

aurovalutazione

 

39

Esercizi

40

CA PITOLO

3:

Lo

SVILUPPO DI

PROGRAMMI STRUTTURATI

.•

••.•••.•

•••.•••••.

•.

45

3.1

Introduzione

45

3.2

Gli

algoriuni

45

3.3

Lo

pseudocodicc

46

~.4

3.5

Le

L;i

strutture di cona·ollo

·scrui:o.u:a di

selezione

lf

3 6

La

suutcura

di

selezione

lf/El~e

,

,,

3.7

La

scrucrura

<.li

iterazione

wbile

3.8

Formulazione degli aJgoàani:

srudio di

un

caso

1

(icerazione

Gontrollaca

da un

concarore)

47

49

51

55

56

3.9

3.1

o

Formulazione

per raffinamenri successivi:

(irer.Wene contro ll ata

degli

algoritmi con processo

da

srudio

di

un valore

un

top-down

caso

2

senti neUa)

rormulaziçne degli

algoàcm.i con

processo rop-down

per

raffi

n;unemi

successivi: studio di

un

caso

3

(suurrure di

conrroUo nidificare)

·3.11

Gli

ope.rarori

di assegnamentò

 

3.12

Gli

opcrarori

di

incremento

e di

decremento

Esercizi

di

aucovalucazione

 

.Risposte agli

esercizi

d i aurovalutazione

 

Esercizi

58

65

69

70

73

74

, 76

CA PITOLO

4:

I L CONTROLLO

DEL PROGRAMMA

••

••.••

••.•

85

SOMMARIO

 

V

5.5

Le

definizioni

di

funzione

129

5.6

I

prototipi

d i funz.lone

 

133

5.7

I file

di

inresrazione

 

136

5.8

Invoca.re le funi.ioni: chiamata per valore e per

dferimento

137

5.9

Generazione

di

numeri

casuali

138

5.10

Esempio:

un

gioco

d'azzardo

 

142

5.11

Le

classi

di

memoria

 

145

5.12

Le

J:egole

di

visibilità

 

,

1.48

).13

La

ricor~ione

 

151

5.14

Esempio

di

ut:ilizzo

della

ticorsione:

la

serie

di

Fibonacci

155

5.15

Ricorsione

e

iterazione

 

158

.Esercizi

di

autovalucazione

 

161

Risposte

agli

Eserci?.i

esercizi

di

C

A PITO LO

6:

I

vEn oR1

6.1

6.2

lnrroduzione

I

vettori

autovalucazione

163

165

175

175

175

6.3

La

dichiarai.ione

dei ven:qri

177

6.4

Esempi di

ucili220

dei

vecroci

178

6.5

Passare

i

vertori

alle

funzioni

190

6.6

L'ordinam.coco

dei

verto.ri

,

195

6.7

Srudio di un

caso:

calcolate la media,

la

mediana

e la

moda usand o

i

vettori 197

6.8

La

ricerca

nei

vettori

 

,

201

6.9

I

vercori

mulcidimensionali

 

206

Esercizi

di

autovalutazione

 

212

4.1

lnuoduzione

 

85

Risposte

agli

es~rcizi

di

aurovalurazione

 

2 14

4.2

4.3

Gli

elemem:i

della

iterazione

Jcei;azioBe cÒntroll ara da

un

contatore

 

""··········

85

86

Eserci2i

Esc::,rcizi

sulla

rieo rsione

 

,

215

225

4.4

La

strurcura

di

icera7Àone

for

88

4_5

La struttura for: noce e

osservazioni

 

91

CAPITOLO

7:

I

PUNTATORI

 

227

4,.6

Esempi di

utilizzo

della

srrurrura

tor

92

7.1

Introduzione

 

227

4.7

 

La

sm:rrrura

di

selezione mulcipla swicch ··········································-··············

95

7.2

Dichiarazione

e

iniziaJjzzazione dci

puntarori

 

227

4.8 la

struinl.Ea

di

iterai.ione do/while

101

7.3

Gli

operatori

sui

puntatori

228

4.9

Le

isrn1zi0ni

break e concioue

 

103

7.4

la

chiamara per riferimento delle

fun?.ioni

23

1

4. 10

 

G li

operatori

logid

 

"

··········· ··· ······ ····· ··· ·········

105

7:5

Ucilizz.are

il

qualifìcarox:e const con

i

punratol'i

235

4.1

·1

Confondere gli

operacori

di

uguaglianza

(:=)

e

di assegnamento

 

C•=.) .••.•••••

 

•••

I08

7.6

L'ordina.mento a

bolle u tilizzando

una chiamata

per

riferimento

24

1

4.12

Riassumo

ddla

programmazione sr:rurturaca

 

110

7.7

Le

espressioni con

i

puntatori

e

l'aàtmetica dci puntatori

 

246

Esercizi

di

I

15

7.8

La

relazione tra

i

puntatoci

e

i

verrori

 

249

Risposte

agli

eserçizi

di

autovaJuraz.ioqe

117

7.9

l

vettori di puntatori

 

253

Esercizi

 

J 18

7.10

Srudio di

un caso:

simulazione di

un

mescolacore e discribucore

cli

carte

254

' C AP TOLO

I

5

:

LE:

FUNZ ONI

I

• •

••

••

. •

I

25

7.11

Esercizi di

I puntatori a

fun1,ionj

aurov-aluta.7.ione

 

,

259

264

 

.

.

.

.

.

.

.

.

       
   

,

5.1 lnrroduzione

 

125

Risposce

agli

esercizi

cli

aucovalutàrione

 

,

266

5.i

1

moduli

di

programma

jn_

e

 

125

-Esercizi

267

5.3

Le

funzioni

della

libreria

maremacica

126

Sezione

speciale:

cosrruire

il

vostro computer

 

·-·············

270

s.4

te

funzioru

127

   

--~ -

-=--

-

Vl

CA PIT OLO

8:

I

CARATTERI E

LE

STRINGHE

SOMMARIO

281

SOMMl\RJO

10. 1 1

Le

cascanti

d i enumerazione

Vll

37 1

8.

1

lnrrod:uzione

 

,

281

Esercizi

d

i autovalutazione

 

373

8.2

1

concerti

fondamen rali deUe

stringhe

e

dei ca.racreri

 

281

Risposte

agli

eserciz i di au covalucazi.on e

 

375

8.3

La

libreri a

per

la

gestione

d ei

carartcri

 

283

Eserc izi

375

8.4 Le fu.m.iorù

per

la

conversione deUe srringhe

 

289

8.5 Le

funzioni deUa

libreria per l'iopuc/oucpur

standard

 

293

CA PITO LO

11 :

L ElABORAZIONE

DEJ

FILE

 

379

8.6

Le

funzioni

per

la

manipolazione

delle

stringhe incluse

neUa

libreria

11. I

Introduzione

379

per la

gcscion e

delle

so:inghc;:

297

11.2

La

ger.arGh ia

dei

dari

-

379

8

.7

Le

fi;m~ioni

d i

confr omo.in:cluse

nell a librer i a per

 

la

gest i one de ll e

so.ingh e

299

11.3

I fil.e

e

g.li

Strea.in

38 1

8.8

Le fu.rrzion i

d i ri cerca

incluse nell a libre.ria

pcr

ta -gestione del le stringhe

302

] 1.4

Creare

un

file ad

accesso

sequenrt.iale

 

382

8.9

Le

funz ioni

per

la

manipò lai.iorn:

della mc.moria inclu se ne lla libreria

11.5

Leggere i dari

da

un

file

ad

a-ccesso

sequenziale

 

387

per

la

gestione

dclle

stri nghe

308

11.6

I

file

ad accesso

casuale

392

8.

1 O

alrre fu.oz.i oni

della lib reria

per La gestione

delle stringhe

 

312

11.7 ad

Creare

un

fù e

accesso

casuaJe

 

393

Esercizi

di

aurovalurazio ne

 

3 L3

11.8 Scrivere i dari

in

modo

casuale

in. un

file

ad

ac::éesso

casuale

395

Risposte agli

esercizi

di

autovalutazione

3 14

11.9

Leggere

i

dari in

modo

casuale

 

da

un

fìle

ad

accesso casuale

398

Eserciz.i

·······-···

 

315

11.10

Studio

di

un

caso:

un

progratllJilll

pe.r l'elabo razione de ll e

m ll1s;I2Ìoui

399

Sezione

speciale: esercizi

di

manipolazione

avanzata: dclle

strin ghe

;

31 8

Esercizi

di

aurovaluraz.ionc

 

404

Un

progetto

impegnativo

per

la

manipo lazione

delle

stringhe

322

Risposte agli esercizi

di

autovalutazione

 

405

CA PITO LO

9:

lA

FORMATTAZJON E DELL'I NPUT/OUTPUT

 

323

'Esercizi

 

406

9.1

9.2

9 .3

9.4

ln

Gli

rroduzione

srrearn

f

o anattit'e

Visua.lizz.are

l' ou tput

con

gl.i

interi

priurf

323

32.3

324

324

C

APITOLO

I 2:

L E STRUTTURE D I DATI

12.1

U.2

12.3

l

orroduzion!!

Le

srrumrrè

rico rsive

Allocazione

dinamica

della

memoria

,

41

I

4 11

412

412

9.5

 

V is ualizzare

i

owneri

in

virgola mobile

 

326

12.4

Le liste concarenace

 

414

9.6

Visualizzare

Gli

le stringhe e

i

caratteri

 

328

12.5 pile

Le

422

9.7

 

altri indicatori

di

conversione

 

,

329

12.6 code

Le

428

9.8

 

Visualizzare co11

le

d imens ioni

di

campo

e

le

p

.recision i

 

330

12.7

Gli alberi

434

9.

.9

9.1

O

Uti li z1

are

j

Visualizzare

H.ag

n e ll a srri:oga di

.

coum'>.ll o

del

fo.anato

i

~lerterali

e

l

e

s.e.que112e

di

escape:

 

333

336

Esei:cizi

di

t,rspoSte a

-a·

:turqvalut:az.ione

gli

eserClZJ

di aurov

al

uEaZione

.

.

 

439

4" 1

1

9.1

l

Pormarciire l'input con

scanf

 

336

Eserciz i

442

Esercizi

di

aurovaJutazione

 

342

Sezione

speciale:

costruite

il

voStro

compilatore

 

449

Risposte

agli

esercizi

 

di

aucovalucazione

 

344

Primo

passaggio

 

452

Esercizi

 

345

Secondo

passaggio

 

454

 

Un

esempio

completo

454

CAPITOLO

I 0:

LE

STRUTTURE,

LE

UNION l1

LÀ GESTIONE

DE I

BIT E

LE

EN UM ERAZION I

349

Un

~e

passo

per

passo

del processo

di

comp ilazione

456

10.1

 

ln rrod~on e

 

349

10.2

La

definizione

delle

srrurrure

 

349

C

APITOLO

13:

I L PREPROCESSORE

 

463

10.3 Inizializzare le srrurrure

10.4

Accedere

ai

membri

delle

suunure

 

352

352

13.1 Tnrroduz.ione

13.2 La

~rriva

d el

preprocessore

#

include

 

,

463

463

10.5

 

Usare

le

suurru re co n Le

fun~ioni

 

354

13.3 La

d iretàva

del

p rep rocessore

# defìne:

le

cosranù simboliche

464

1.0.6

Typedef

 

354

13.4 La

diren:iva

del prep roces.soce

#define:

lt:

macro

464

L0 .7

Esempio:

simulazione

di

un. mescolatore

e distributore di

carre

13.5

La

compilazione

c0ndizi0nale

 

,

466

 

ad

a lt.a.

efficienza

 

355

13.6

l e

direttive

del prcprocc,:ssorc

#errar

e

#pragma

-

468

L0.8

 

Le

un.ioni

3 57

13.7

Cli

operatori# e ##

 

468

L0.9

Gli

operatori

bicwise

360

1 3.8

I

numeri

di

riga

469

10.10

l

campi

dj

bit:

368

13.9

Le

cosranci

simboliche

predefinite

 

469

Vili

SOMMARJO

13.

J

O Le

asserzioni

-

46 9

~erciz.i

d

i a utovalutazion e

 

4 70

R1spo~t~

ag li

esercizi

di

aurov-.tlutazi.one

 

471

Ese rc1z1

 

472

UPITOLO

14:

ARGOMENTI AVANZATI

 

473

14.1

Introduzione

473

1!·2

Re~rezioo.arel~in~~t:/?utpucsa

sistemi

UNIX

e

DOS

473

\·;.

GL1

elcn~hi

variabili

di

a:rgomenci

 

474

1

.

I

Usare gli argomemi

della

riga

di

comando

 

477

14.5

Noce

sulla

compilazione

cl.i

programmi fqrmari da

vari

file

sorgente

1!.6

1

.7

Chius~adei pr~g~

c:pn

Exit:

Il

qua116carore

di

npo Volatile

e

Acexir

J:·8

l

Sllffissi per

le costanti

~n(èrèe

in virgola mobile

1

1

4

.9

.10

Ancora

sai

file

La

ges'l!ione dei

,

segnali

14.11 Allocaz.ione dinamica della memoria:

le funzioni calloc e

rea11oc

478

480

481

·482

482

484

4.85

.14.

l~

. IJ

sa lt o iacondìzi()nacq: goto

486

Eserc1z.1

di

aucpvaluraiione

 

489

Rispo~t~

agli esercizi

di

aurovalur;u.iqne

489

Eserc1z1

 

490

A PPENDICE A :

lA

SINTASSI

Sommario

della

sincassi

del

DEL C

linguaggio

49 1

491

A. l

Grammacica

lessicale

491

A.2

Grammatica

della suunura della frase

495

A.3

Oircrcive del

preprocessore

501

APPEN DICE

B: LA

LIBRERIA STANDARD

B. l

Erro

ci

<erroo

1

h>

503

503

 

.2

Oefinizi òni

co muni

<srdde.f.h>

5

03

B

·~

Diagno s ti ca

<asserr.h>

50

4

8

.

~

·~

Gestione

dei

Loca lizz.~one

caratteri

<crype.h>

<loci.le.h>

B

B: 7

·

~r~e:~~~~c~~srher.~m>··~·

)

segnali

P.JV>

818 Gesrione dei

B.9

.Argomenti

<signalh>

<stdarg.h>

v.ariabili

·•··

····

·••·•·

504

505

50

51

I

512

513

B.10·

lnpur/O ucpur

<stdio.h>

514

B.l l

Urilirà

generiche

<srdlib.h>

525

B.12

Gestione delle stringhe <suiog.li>

532

B.13

Data e ora

<time.h>

536

B.14

Lim.ici

dell'imp1e.mencazione

539

:~:[~:».::::::::::::::::::::::::~::::::::::::::::::::::'.::::::::::::::::::::::::::::::::::::::::'.::'.:'.:::::::: ;!~

APPENDICE

C:

P RIORITÀ E ASSOCIATIVITÀ DEGLI

OPERATORI

543

SOMMARI O

A D:

PPENDICE

LINSIEME

DEI

CARATTERI ASC I I

A E:

PPENDICE

I

SISTEMI

NUMERICI

E.

I

lncrodu.zione

~~-

./

1

~'f~1,

:··~~'

\;'

"i'.

.•

:ç~\

•. •~

}iH

,

).·,

~~ID,

·,~

,

'.Cj

··l;~,\>'

545'~

547

547

E.2

L'abbreviazione dci

oaali

ed

esadecimali

550

E.3

La

conversione dei

numeri bina ri in numeri oaali ed

esadecimali in

binari

551

E.4

La

conversione da binario,

orcale o

esadecimale

in decimale

552

E. 5

La

conversione

da

decimale a

binario,

ocrale

o

esadecimale

553

E.6

I numeri

binari negativi:

la

notazione con rnmplernenco

a

due

554

Esercizi

di

aurovaluraz.ione

 

555

Risposte

agli

esercizi

di

aucovalurazione

 

556

Ese rcii.i

557

INDICE ANALITICO

 

559

t

Prefazione

Benveouci nel mondo del

da. suo figlio,

Paulj.

Deicel.

C. Q uesco libro è scaro scrirro

JI

padre

ha

Deitel, e

p rogrammaco e/o insegnaco la programmazione per

da

un padre,

l:larvey M.

38 anni,

menrre

il

figlio h:1programmato e/o insegnar.o la programmazione per 18. Il padre

p·rogramma

e

insegna grazie all'esperienza maturam;

il

figlio,

invece, programma

e

insegna

gazie

a

un'inesa.uribile riserva di energia.

Il

padre

pwita alla chiarezza,

Ufiglio

alle

presta-

"!li.oni.

H

padre

c

er ca

l'eleganza e

I.a bellezza,

iJ

figlio vuo le soprammo

risultati

eo ne.reti.

lnsieme

hann0 ce rcaco

di

rcafu.zarc

un

libro

che

speriam0

possiate

trova re mi.le,

complero

e diverre.nce.

Lo scopo di questo libro

Il

Professor

Deird ha cenuco corsi universirari. inrrodurrivi sulla programmaz.io-

possibile sviluppare programmi

insegnare come

scrirri e ben srrurcuraci. Molà dci suoi inscgnamenà riguardano i concetti fondamen-

Harvey M.

ne pe!r 20 anni, punrando soprarruno

ben

a

sia

tali

della programmazione,

con particolare

suU'ucilizzo

efficace deile

al l'interno

strutture d i di quesro

~i

q>nrrollo e sulla funzionalità. Questi

argomenti vengono presentati

libro

.srudeori

esanamente

nel

universirari.

modo

in

cuj

il

Professor Deicd

li

ba

sempre

p roposti

ai

propri

In

base

aila

noma esperienza,

gli

srudenti affronranp i temi presentaci io questi capitoli

n~llo

sresso modo

in cuiaffrontaoo

i

corsi

di

Pascal.

Gè,

comunque,

un' importante diffe-

rénza::

gli srudemi sono escre.mame.nre mo tivaci

dal

farro che sranno imparando un linguag-

gio che porranno

.110

ucilizzare immediacameme quando

lascer.lDilo l'università e a.ffromeran-

I.oro entusiasmo nei confron-

il

mondo del lavoro. Turro quesro aumenta notevolmente

il

ci

del

e,

nono stante ci

siil

moltissimo

da

imp atare.

 

U

l10StEO

obiettivo

er.a.

chiaro:

offrire

un

testo

.sul

C

d6LÌ.naco

ai

corsi

W'liversirari

a

livéilo inrroi:lurrivo, per qu egli stud enti che

programmazione,

tradiz ionali

sra

ai

pur fornendo , allo sresso

corsi avanzati di

C.

non

rempo,

bruino -ak:una

la

esperienza nell'ambito del.la

rcori ca e pratica ricb ie·

~omplerezza

11 resro segue l o sranda rd

sono implementate

sul

linguaggio

vi

ANSl C;

rene(e p resence d1 e moire fun z i onali t à d ell ' ANSI

pre-ANSI

riferimemo

C

.nòn

:gliate

nell.e versioni

deJ

C.

Per

di

avere

informazion i più

dd

derca-

conviene consultare

il man uale

vostro s isrcma o

pn;>curarvi una

copia dd

documento

ANSiflSO

9899:

dar9

for lnformaòon Sysccms-Programming

Language

C",

l 990,

"Amecican

National

Scan-

clell'AmericanNationaJ Standards

1nsòrure,

11

Wcsc

42od

Streec,

New York,

New York 10036.

Xl!

PREFAZrONE

La

metodologia di insegnamento

Questo

libro contiene un'ampia varierà

cfj

esempi, esercizi e progerri che prendono spunto

da moire situazioni e che offi:ono

agli smdenri

la

possibilità di risolvere problemi reali.

Il

libro

prende

in

esame

i

principi

dclla

progena:iione dd

software, insistendo sulfimponan-

za

del la chiarezza dei

programmi

ed

evi cando J' uso

cfj

cerminologfa co mplessa

a favore

esempi chiari e

cLretti,

il cui

cocLce sia scaco collaudato sulle piaccaforme

C

più

diffuse.

cfj

l:apprendimento attraverso

il

codice

libro presenta

più finestre

molto

s imile

D

una

grande

di

un

quantità di

programma

C

l'oarput del

esempi

basaci

viene

funzionante, seguito sempre da una

sul

cocLce.

questione.

Ogni

argomento

presencaco neU'ambico

o

Llriguaggio per insegnare

completo

p rogramma

e

in

che mostrano

alla

il

Viene quindi usato

offre un'esperienza

il

Llnguaggio,

loro eseéuz io n e reale

e

la lettura di questi programmi

su

di

un

éomputer.

L:accesso al World Wide Web

Tu ero il

libro, all'indirizzo http:

siglio

che appare

imparando cosl a programmare prograìiimando. Tutto questo marcriaJe è protetto da dirir-

e vedere cosa succede,

codice presente nel lìhro si

è quello

nd

di

I

/www.

scaricare turro il

m;>va .anche

in

lnrerner,

nel booksite abbinato

Il

a

quesco

apogeonline. com . education . booksite.

cç>dice,

eseguendo

poi

ogni

singolo

codice degli esempi

nostro con-

via

programma via

resto. Potere anche modificare iJ

ci

d

'a ucore, quindi

urilizzatelo liberamente

per

studiare il

e,

ma

noo

pubblicatene

alcuna

parre senza

l'esplicito

permesso

da pane degli aurori e ddla casa editrice.

 

Obiettivi

 

Ogni

capirolo

inizia

con

la

presenrazione

degli

Obiativi.

Gli srudenci possono

cos}

sapere

in

anticipo

ciò che andranne ad apprendere e,

raggiunro

o

meno

alla fine della l.errura del capitolo, porranno

verificare se hanno

questi obiettivi.

Il codice e gli esempi

Le

fu

n zionalità del C vengono preseruare nelJ 'amb iro

di

programmi comp leti

e

funzionanti.

che gli

Ogni programma è scguiro dalle immagini degli ourpuc che vengono prodotti, cosl

stu denti possano assicurarsi della corrc:rcezla _dei risultati. I programmi presencati vanno

da

poche

linee di

codke

a esempi

ber o scaricare cucco

il codke dal

com