Programmazione in C - Politecnico di...

22
Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 1 Programmazione in C 2 Requisiti didattici Nessun requisito specifico Tutti gli argomenti vengono trattati in maniera completa e incrementale Nozioni elementari di Matematica di base Fisica di base Capacità personali di Analisi Sintesi Ragionamento logico

Transcript of Programmazione in C - Politecnico di...

Page 1: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 1

Programmazione in C

2

Requisiti didattici

Nessun requisito specificoTutti gli argomenti vengono trattati in manieracompleta e incrementaleNozioni elementari di

Matematica di baseFisica di base

Capacità personali diAnalisiSintesiRagionamento logico

Page 2: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 2

3

Caratteristiche dei contenuti

Corso di tipoMetodologicoProgettuale

Elevato contenuto ingegneristico

4

Organizzazione e obiettivi

Linguaggio C e “problem solving”C

Programmazione e linguaggio CB

Teoria e introduzione alla programmazioneA

ArgomentiParte

Page 3: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 3

5

Sorgenti C

Attenzione

Errori Frequenti

Idee e suggerimenti

SimboloTipo di informazione

Notazione e simbologia

nomefile.c

6

Collegamenti con altri corsi

Il corso può essere considerato propedeutico permolti argomenti/corsi del settore informatico

Programmazione avanzataLinguaggio CAltri linguaggi (C++, Java, C#, etc.)

Strutture dati e algoritmi complessiSistemi operativiBasi di datiSistemi di calcolo (microprocessori, etc.)Etc.

Page 4: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 4

7

Riferimenti bibliografici (1/2)

Teoria e introduzione alla programmazioneA

ArgomentiParte

Testi didatticiP. TosorattiIntroduzione all’informaticaAmbrosiana, 1998, ISBN 88-408-0929-5G. Cabodi, S. Quer, M. Sonza ReordaIntroduzione alla programmazione in linguaggio CHoepli, 1995, ISBN 88-203-2211-0

8

Riferimenti bibliografici (1/2)

Teoria e introduzione alla programmazioneA

ArgomentiParte

Risorse on-lineWikipedia – The free encyclopediahttp://en.wikipedia.org/wiki/Main_Page

Page 5: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 5

9

Riferimenti bibliografici (1/2)

Teoria e introduzione alla programmazioneA

ArgomentiParte

Risorse on-lineRicerche con parole chiave

Binary number, complement, George Boole, Booleanalgebra, hardware, software, computer architecture, flow chart, computer program, etc.

10

Riferimenti bibliografici (1/2)

Teoria e introduzione alla programmazioneA

ArgomentiParte

Risorse on-lineForniscono riferimenti alle voci principali

http://en.wikipedia.org/wiki/Binary_numberhttp://en.wikipedia.org/wiki/Complementhttp://en.wikipedia.org/wiki/Floating_pointhttp://en.wikipedia.org/wiki/Boolean_algebrahttp://en.wikipedia.org/wiki/Computer_architecturehttp://en.wikipedia.org/wiki/Binary_numberhttp://en.wikipedia.org/wiki/Flow_chartEtc.

Page 6: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 6

11

Riferimenti bibliografici (2/2)

Programmazione e linguaggio CB

Linguaggio C e “problem solving”C

ArgomentiParte

Manuale di riferimento del linguaggioB. W. Kerninghan, D. M. RitchieIl linguaggio CPearson-Prentice Hall, 2004, ISBN 88-7192-200-X

12

Riferimenti bibliografici (2/2)

Programmazione e linguaggio CB

Linguaggio C e “problem solving”C

ArgomentiParte

Testo didatticoG. Cabodi, S. Quer, M. Sonza ReordaIntroduzione alla programmazione in linguaggio CHoepli, 1995, ISBN 88-203-2211-0

Page 7: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 7

13

Riferimenti bibliografici (2/2)

Programmazione e linguaggio CB

Linguaggio C e “problem solving”C

ArgomentiParte

Testi didattici aggiuntiviA. Kelley, I. PohlC Didattica e ProgrammazioneAddison-Wesley, 2004, ISBN 88-7192-219-0Deitel & DeitelC Corso completo di programmazioneApogeo, 2000, ISBN 88-7303-669-4

Introduzione al corso

Page 8: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 8

15

Docente

DocenteStefano QuerPolitecnico di TorinoDipartimento di Automatica e InformaticaTel : +39 – 011 – 564 7076Fax : +39 – 011 – 564 7099E-mail : [email protected] : http://staff.polito.it/stefano.quer/

16

Unità

Architettura dell’elaboratore5Algebra di Boole4

Sistemi numerici: numeri senza segno1Sistemi numerici: numeri con segno2Sistemi numerici: numeri in virgola mobile3

Introduzione alla programmazione6

TitoloUnità

Page 9: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 9

17

Sistemi numerici: numeri senza segno1Sistemi numerici: numeri con segno2Sistemi numerici: numeri in virgola mobile3

TitoloUnità

Descrizione delle unità (1/4)

18

Sistemi numerici: numeri senza segno1Sistemi numerici: numeri con segno2Sistemi numerici: numeri in virgola mobile3

TitoloUnità

Descrizione delle unità (1/4)

Sistemi numerici a base fissaConversioniOperazioni elementari

012345678

b=16

01234567

10

b=8

01

1011

100101110111

1000

b=2

012345678

b=10

Page 10: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 10

19

Descrizione delle unità (2/4)

Algebra di Boole4TitoloUnità

20

Descrizione delle unità (2/4)

Algebra di Boole4TitoloUnità

Aspettilogici

Page 11: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 11

21

Descrizione delle unità (2/4)

Algebra di Boole4TitoloUnità

f1 (i2, i1, i0) = i2’ ⋅ i1’ ⋅ i0 + i2 ⋅ i1’ ⋅ i0f2 (i2, i1, i0) = i2’ ⋅ i1’ ⋅ i0 + i2 ⋅ i1 ⋅ i0’f3 (i2, i1, i0) = i2’ ⋅ i1’ ⋅ i0 + i2 ⋅ i1 ⋅ i0

i2 i1 i0

f1

f2

f3

ym

f y1

f y2

f

fn

x1

xn

Aspettilogici

22

Descrizione delle unità (3/4)

Architettura dell’elaboratore5TitoloUnità

Page 12: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 12

23

Descrizione delle unità (3/4)

Architettura dell’elaboratore5TitoloUnità

Aspettiarchitetturali

24

Descrizione delle unità (3/4)

Architettura dell’elaboratore5TitoloUnità

CPU(Central Process Unit)

Unitàuscita

Unitàingresso

Unitàoperativa

Memoria

Unitàcontrollo

#include <stdio.h>

int read (){

int d1, d2, r;r = d1 + d2;return (r);

} 3E 203F 03C610 20 1176

Aspettiarchitetturali

Page 13: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 13

25

Descrizione delle unità (4/4)

Introduzione alla programmazione6TitoloUnità

26

Descrizione delle unità (4/4)

Introduzione alla programmazione6TitoloUnità

Scrivo: fat

n > 1?

fat ← 1

falsa

vera

fat ← fat ⋅ n

n ← n – 1

Fine

Scrivo: “Introduci n: “

Leggo: n

Inizio

Page 14: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 14

27

Descrizione delle unità (4/4)

Introduzione alla programmazione6TitoloUnità

Scrivo: fat

n > 1?

fat ← 1

falsa

vera

fat ← fat ⋅ n

n ← n – 1

Fine

Scrivo: “Introduci n: “

Leggo: n

Inizio

28

Materiale di supporto

Esercizi risoltiEsercizi propostiTest a risposta multipla di autovalutazione

Page 15: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 15

Introduzione al corso

30

Docente

DocenteFulvio CornoPolitecnico di TorinoDipartimento di Automatica e InformaticaTel : +39 – 011 – 564 7053Fax : +39 – 011 – 564 7099E-mail : [email protected] : http://elite.polito.it/corno/

Page 16: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 16

31

Unità

Funzioni13Matrici – Vettori di stringhe12Caratteri e stringhe11Vettori10Cicli ed iterazioni9

Primo programma in C7Scelte ed alternative8

I/O avanzato e File14

TitoloUnità

32

Primo programma in C7Scelte ed alternative8Cicli ed iterazioni9

TitoloUnità

Descrizione delle unità (1/3)

Ambiente di sviluppoIstruzioni e costrutti fondamentali del linguaggio C

Page 17: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 17

33

Vettori10Caratteri e stringhe11Matrici – Vettori di stringhe12

TitoloUnità

Descrizione delle unità (2/3)

Tipi di dato strutturatiDati testualiStrutture datimultidimensionali

34

Funzioni13I/O avanzato e File14

TitoloUnità

Descrizione delle unità (3/3)

Programmi di dimensioni maggioriAccesso a fileInterazione con ilsistema operativo

Page 18: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 18

35

Materiale di supporto

Sorgenti di tutti gli esempi presentati nei lucidiEsercizi risoltiEsercizi propostiSchede sintetiche degli argomenti principali

Introduzione al corso

Page 19: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 19

37

Docente

DocenteGianpiero CabodiPolitecnico di TorinoDipartimento di Automatica e InformaticaTel : +39 – 011 – 564 7082Fax : +39 – 011 – 564 7099E-mail : [email protected] : http://fmgroup.polito.it/cabodi/

38

Unità

Problem solving elementare su dati scalari17

I puntatori e l’allocazione dinamica di memoria16

Aggregati di dati eterogenei: il tipo struct15

Problem solving elementare su dati vettoriali18

TitoloUnità

Page 20: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 20

39

Descrizione delle unità (1/2)

Puntatore: dato e riferimento a dato, strumento per accedere a memoria allocata in esecuzione

Aggregati di dati eterogenei: il tipo struct15

I puntatori e l’allocazione dinamica di memoria16

TitoloUnità

matricola: 123456 media: 27.25nome: Mariocognome: Rossi

Struct: dati aggregati con componenti di tipo diverso

40

Descrizione delle unità (2/2)

Problem solving elementare su dati scalari17

Problem solving elementare su dati vettoriali18

TitoloUnità

Problema Soluzione

Page 21: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 21

41

Descrizione delle unità (2/2)

Problem solving elementare su dati scalari17

Problem solving elementare su dati vettoriali18

TitoloUnità

Problema Soluzione

Struttura dati

42

Descrizione delle unità (2/2)

Problem solving elementare su dati scalari17

Problem solving elementare su dati vettoriali18

TitoloUnità

Problema Soluzione

Algoritmo…while (…) {x = f(…);

}…

Struttura dati

Page 22: Programmazione in C - Politecnico di Torinocorsiadistanza.polito.it/on-line/Prog_in_C/pdf/U0_bn.pdf · Programmazione in C Introduzione al corso © 2006 Politecnico di Torino 3 5

Programmazione in C Introduzione al corso

© 2006 Politecnico di Torino 22

43

Descrizione delle unità (2/2)

Problem solving elementare su dati scalari17

Problem solving elementare su dati vettoriali18

TitoloUnità

Problema Soluzione

puzzle.c

44

Materiale di supporto

Sorgenti di tutti gli esempi presentati nei lucidiEsercizi risoltiEsercizi propostiSchede sintetiche degli argomenti principali