Post on 20-Feb-2019
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
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
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.
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
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.
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
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
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 : stefano.quer@polito.itURL : 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à
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
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
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
ffy1
ffy2
ff
fnfn
x1
…
xn
…
…
Aspettilogici
22
Descrizione delle unità (3/4)
Architettura dell’elaboratore5TitoloUnità
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
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
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
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 : fulvio.corno@polito.itURL : http://elite.polito.it/corno/
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
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
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
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 : gianpiero.cabodi@polito.itURL : 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à
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
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
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