Programmazione in C 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 2 2006 Politecnico di Torino 1
Caratteristiche dei contenuti Corso di tipo Metodologico Progettuale Elevato contenuto ingegneristico 3 Organizzazione e obiettivi Parte A B C Argomenti Teoria e introduzione alla programmazione Programmazione e linguaggio C Linguaggio C e problem solving 4 2006 Politecnico di Torino 2
Notazione e simbologia Tipo di informazione Simbolo Idee e suggerimenti Errori Frequenti Sorgenti C nomefile.c Attenzione 5 Collegamenti con altri corsi Il corso può essere considerato propedeutico per molti argomenti/corsi del settore informatico Programmazione avanzata Linguaggio C Altri linguaggi (C++, Java, C#, etc.) Strutture dati e algoritmi complessi Sistemi operativi Basi di dati Sistemi di calcolo (microprocessori, etc.) Etc. 6 2006 Politecnico di Torino 3
Riferimenti bibliografici (1/2) Parte A Argomenti Teoria e introduzione alla programmazione Testi didattici P. Tosoratti Introduzione all informatica Ambrosiana, 1998, ISBN 88-408-0929-5 G. Cabodi, S. Quer, M. Sonza Reorda Introduzione alla programmazione in linguaggio C Hoepli, 1995, ISBN 88-203-2211-0 7 Riferimenti bibliografici (1/2) Parte A Argomenti Teoria e introduzione alla programmazione Risorse on-line Wikipedia The free encyclopedia http://en.wikipedia.org/wiki/main_page 8 2006 Politecnico di Torino 4
Riferimenti bibliografici (1/2) Parte A Argomenti Teoria e introduzione alla programmazione Risorse on-line Ricerche con parole chiave Binary number, complement, George Boole, Boolean algebra, hardware, software, computer architecture, flow chart, computer program, etc. 9 Riferimenti bibliografici (1/2) Parte A Argomenti Teoria e introduzione alla programmazione Risorse on-line Forniscono riferimenti alle voci principali http://en.wikipedia.org/wiki/binary_number http://en.wikipedia.org/wiki/complement http://en.wikipedia.org/wiki/floating_point http://en.wikipedia.org/wiki/boolean_algebra http://en.wikipedia.org/wiki/computer_architecture http://en.wikipedia.org/wiki/binary_number http://en.wikipedia.org/wiki/flow_chart Etc. 10 2006 Politecnico di Torino 5
Riferimenti bibliografici (2/2) Parte B C Argomenti Programmazione e linguaggio C Linguaggio C e problem solving Manuale di riferimento del linguaggio B. W. Kerninghan, D. M. Ritchie Il linguaggio C Pearson-Prentice Hall, 2004, ISBN 88-7192-200-X 11 Riferimenti bibliografici (2/2) Parte B C Argomenti Programmazione e linguaggio C Linguaggio C e problem solving Testo didattico G. Cabodi, S. Quer, M. Sonza Reorda Introduzione alla programmazione in linguaggio C Hoepli, 1995, ISBN 88-203-2211-0 12 2006 Politecnico di Torino 6
Riferimenti bibliografici (2/2) Parte B C Argomenti Programmazione e linguaggio C Linguaggio C e problem solving Testi didattici aggiuntivi A. Kelley, I. Pohl C Didattica e Programmazione Addison-Wesley, 2004, ISBN 88-7192-219-0 Deitel & Deitel C Corso completo di programmazione Apogeo, 2000, ISBN 88-7303-669-4 13 2006 Politecnico di Torino 7
Docente Docente Stefano Quer Politecnico di Torino Dipartimento di Automatica e Informatica Tel : +39 011 564 7076 Fax : +39 011 564 7099 E-mail : stefano.quer@polito.it URL : http://staff.polito.it/stefano.quer/ 15 1 2 3 4 5 6 Sistemi numerici: numeri senza segno Sistemi numerici: numeri con segno Sistemi numerici: numeri in virgola mobile Algebra di Boole Architettura dell elaboratore Introduzione alla programmazione 16 2006 Politecnico di Torino 8
Descrizione delle unità (1/4) 1 2 3 Sistemi numerici: numeri senza segno Sistemi numerici: numeri con segno Sistemi numerici: numeri in virgola mobile 17 Descrizione delle unità (1/4) 1 2 3 Sistemi numerici: numeri senza segno Sistemi numerici: numeri con segno Sistemi numerici: numeri in virgola mobile b=10 b=2 b=8 b=16 0 1 2 3 4 5 6 7 8 0 1 10 11 100 101 110 111 1000 0 1 2 3 4 5 6 7 10 0 1 2 3 4 5 6 7 8 Sistemi numerici a base fissa Conversioni Operazioni elementari 18 2006 Politecnico di Torino 9
Descrizione delle unità (2/4) 4 Algebra di Boole 19 Descrizione delle unità (2/4) 4 Algebra di Boole Aspetti logici 20 2006 Politecnico di Torino 10
Descrizione delle unità (2/4) 4 Algebra di Boole Aspetti logici i 2 i 1 i 0 f 1 (i 2, i 1, i 0 ) = i 2 i 1 i 0 + i 2 i 1 i 0 f 2 (i 2, i 1, i 0 ) = i 2 i 1 i 0 + i 2 i 1 i 0 f 3 (i 2, i 1, i 0 ) = i 2 i 1 i 0 + i 2 i 1 i 0 x 1 f 1 x n f y 1 f y 2 f f 2 f n y m f 3 21 Descrizione delle unità (3/4) 5 Architettura dell elaboratore 22 2006 Politecnico di Torino 11
Descrizione delle unità (3/4) 5 Architettura dell elaboratore Aspetti architetturali 23 Descrizione delle unità (3/4) 5 Architettura dell elaboratore Aspetti architetturali Memoria #include <stdio.h> ingresso operativa controllo uscita int read () { int d1, d2, r; r = d1 + d2; return (r); } 3E 20 3F 03 C6 10 20 11 76 CPU (Central Process Unit) 24 2006 Politecnico di Torino 12
Descrizione delle unità (4/4) 6 Introduzione alla programmazione 25 Descrizione delle unità (4/4) 6 Introduzione alla programmazione Inizio Scrivo: Introduci n: Leggo: n fat 1 n > 1? vera fat fat n falsa n n 1 Scrivo: fat Fine 26 2006 Politecnico di Torino 13
Descrizione delle unità (4/4) 6 Introduzione alla programmazione Inizio Scrivo: Introduci n: Leggo: n fat 1 n > 1? vera fat fat n falsa n n 1 Scrivo: fat Fine 27 Materiale di supporto Esercizi risolti Esercizi proposti Test a risposta multipla di autovalutazione 28 2006 Politecnico di Torino 14
Docente Docente Fulvio Corno Politecnico di Torino Dipartimento di Automatica e Informatica Tel : +39 011 564 7053 Fax : +39 011 564 7099 E-mail : fulvio.corno@polito.it URL : http://elite.polito.it/corno/ 30 2006 Politecnico di Torino 15
7 8 9 10 11 12 13 14 Primo programma in C Scelte ed alternative Cicli ed iterazioni Vettori Caratteri e stringhe Matrici Vettori di stringhe Funzioni I/O avanzato e File 31 Descrizione delle unità (1/3) 7 8 9 Primo programma in C Scelte ed alternative Cicli ed iterazioni Ambiente di sviluppo Istruzioni e costrutti fondamentali del linguaggio C 32 2006 Politecnico di Torino 16
Descrizione delle unità (2/3) 10 11 12 Vettori Caratteri e stringhe Matrici Vettori di stringhe Tipi di dato strutturati Dati testuali Strutture dati multidimensionali 33 Descrizione delle unità (3/3) 13 14 Funzioni I/O avanzato e File Programmi di dimensioni maggiori Accesso a file Interazione con il sistema operativo 34 2006 Politecnico di Torino 17
Materiale di supporto Sorgenti di tutti gli esempi presentati nei lucidi Esercizi risolti Esercizi proposti Schede sintetiche degli argomenti principali 35 2006 Politecnico di Torino 18
Docente Docente Gianpiero Cabodi Politecnico di Torino Dipartimento di Automatica e Informatica Tel : +39 011 564 7082 Fax : +39 011 564 7099 E-mail : gianpiero.cabodi@polito.it URL : http://fmgroup.polito.it/cabodi/ 37 15 16 17 18 Aggregati di dati eterogenei: il tipo struct I puntatori e l allocazione dinamica di memoria Problem solving elementare su dati scalari Problem solving elementare su dati vettoriali 38 2006 Politecnico di Torino 19
Descrizione delle unità (1/2) 15 16 Aggregati di dati eterogenei: il tipo struct I puntatori e l allocazione dinamica di memoria Struct: dati aggregati con componenti di tipo diverso cognome: Rossi nome: Mario matricola: 123456 media: 27.25 Puntatore: dato e riferimento a dato, strumento per accedere a memoria allocata in esecuzione 39 Descrizione delle unità (2/2) 17 18 Problem solving elementare su dati scalari Problem solving elementare su dati vettoriali Problema Soluzione 40 2006 Politecnico di Torino 20
Descrizione delle unità (2/2) 17 18 Struttura dati Problem solving elementare su dati scalari Problem solving elementare su dati vettoriali Problema Soluzione 41 Descrizione delle unità (2/2) 17 18 Struttura dati Problem solving elementare su dati scalari Problem solving elementare su dati vettoriali Problema Algoritmo while ( ) { x = f( ); } Soluzione 42 2006 Politecnico di Torino 21
Descrizione delle unità (2/2) 17 18 Problem solving elementare su dati scalari Problem solving elementare su dati vettoriali puzzle.c Problema Soluzione 43 Materiale di supporto Sorgenti di tutti gli esempi presentati nei lucidi Esercizi risolti Esercizi proposti Schede sintetiche degli argomenti principali 44 2006 Politecnico di Torino 22