dipartimento di elettronica e informazione exe 19 aprile 2013 marco d. santambrogio –...

35
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Exe 19 Aprile 2013 Marco D. Santambrogio – [email protected] Ver. aggiornata al 18 Aprile 2013

Upload: elena-ferrari

Post on 01-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 19 Aprile 2013Exe 19 Aprile 2013

Marco D. Santambrogio – [email protected]. aggiornata al 18 Aprile 2013

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

WATWAT

• Mettere gli extra Lab alle 8 del mattino vorrebbe dire avere in aula metà della gente

• NON è POSSIBILE DOVERSI ADEGUARE A CERTI ORARI. Per favore faccia delle modifiche al calendario.. (riferito alle OreRicevimento)

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

WAT… prima reazioneWAT… prima reazione

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Feedback 1Feedback 1

• Mettere gli extra Lab alle 8 del mattino vorrebbe dire avere in aula metà della gente

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Feedback 1Feedback 1

• Mettere gli extra Lab alle 8 del mattino vorrebbe dire avere in aula metà della gente

5

Lunedì Martedì Mercoledì Giovedì Venrdì6am - 7am7am - 8am8am - 9am9am - 10am10am - 11am11am - 12pm12pm - 1pm1pm - 2pm2pm -3pm3pm - 4pm4pm - 5pm5pm - 6pm

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Feedback 1Feedback 1

• Mettere gli extra Lab alle 8 del mattino vorrebbe dire avere in aula metà della gente

6

Lunedì Martedì Mercoledì Giovedì Venrdì6am - 7am7am - 8am8am - 9am9am - 10am 10am - 11am 11am - 12pm 12pm - 1pm 1pm - 2pm 2pm -3pm 3pm - 4pm 4pm - 5pm 5pm - 6pm

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Feedback 1Feedback 1

• Mettere gli extra Lab alle 8 del mattino vorrebbe dire avere in aula metà della gente

7

Lunedì Martedì Mercoledì Giovedì Venrdì6am - 7am7am - 8am8am - 9am9am - 10am 10am - 11am 11am - 12pm 12pm - 1pm 1pm - 2pm 2pm -3pm 3pm - 4pm 4pm - 5pm 5pm - 6pm

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Feedback 1 e 2Feedback 1 e 2

• Mettere gli extra Lab alle 8 del mattino vorrebbe dire avere in aula metà della gente

• NON è POSSIBILE DOVERSI ADEGUARE A CERTI ORARI. Per favore faccia delle modifiche al calendario.. (riferito alle OreRicevimento)

8

Lunedì Martedì Mercoledì Giovedì Venrdì6am - 7am7am - 8am 8am - 9am 9am - 10am 10am - 11am 11am - 12pm 12pm - 1pm 1pm - 2pm 2pm -3pm 3pm - 4pm 4pm - 5pm 5pm - 6pm

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Gruppi Gruppi OreRicevimentoOreRicevimento

• Gruppo 1 Chiara Crippa Giada Bandera Alessandra Camassa Maria Veronica Lipreri Chiara Balestra Valeria Luraghi

• Gruppo 2 Francesco La Marca Chiara Fattore Francesca Donnaloja Vincenza Cascella Clara Andolina Patrizia Casali

9

• Gruppo3 Matteo Lepori Andrea Crippa Luca Foppoli Girogio Andriani Francesca Berti

• Gruppo 4 Silvia Contini Giuseppina Lauriola Martina Gava Samuele Colombo Tommaso Cazzato

• Gruppo 5 Daniele Alberti Mattia Bergaglio Gabriele Bianchi Pierfrancesco

Capone Matteo Butti

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Veniamo a noi…Veniamo a noi…

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice?La calcolatrice?

11

Umh….Meglio!

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice!La calcolatrice!

• Si scriva un programma in C che, dati due numeri, permetta all’utente di calcolarne la somma, sottrazione, moltiplicazione, e la divisione tra essi

• Nota: l’utente, per ogni coppia di numeri inseriti, potrà eseguire una e una sola operazione

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Quante calcolatrici?Quante calcolatrici?

• V0: tutto in un file, con funzioni• V1: più file, con funzioni aritmetiche• V2: più file, con funzioni aritmetiche• V3: più file, con funzioni aritmetiche

e funzioni di I/O• V4: tutto in un file, con strutture• V5: più file, con strutture, con

funzioni aritmetiche e funzioni di I/O• V6: creiamo una libreria

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V0Calcolatrice V0

• Tutto in un file, con funzioni

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V1Calcolatrice V1

• Più file, con funzioni aritmetiche Perché non separare i prototipi dalle

implementazioni?• Un conto è il cosa (prototipi)• Un conto è il come (implementazioni)

In C• Il cosa: .h• Il come: .c

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V1: Calcolatrice V1: OrganizzazioneOrganizzazione

• Il cosa: IEIM_Calcolatrice.h Contiene la descrizione di tutti i nostri

prototipi

• Il come: IEIM_Calcolatrice.c Contiene la descrizione di tutte le

nostre funzioni

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V1: Problema Calcolatrice V1: Problema 11

• In IEIM_Calcolatrice.c, abbiamo un main che invoca alcune funzioni!!! Come diciamo al main come invocare

le funzioni di cui ha bisogno?

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V1: Problema Calcolatrice V1: Problema 22

• Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h?

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Pausa!Pausa!

15’… poi seduti!

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V2Calcolatrice V2

• Più file, con funzioni aritmetiche Perché non separare i prototipi dalle

implementazioni?• Un conto è il cosa (prototipi)• Un conto è il come (implementazioni)

In C• Il cosa: .h• Il come: .c

• Ma quindi… perché le implementazioni delle funzioni sono nel file del main?

20

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V2: Calcolatrice V2: OrganizzazioneOrganizzazione

• Il cosa: IEIM_FunzioniCalcolatrice.h• Contiene la descrizione di tutti i nostri

prototipi

• Il come: IEIM_FunzioniCalcolatrice.c• Contiene la descrizione di tutte le nostre

funzioni

IEIM_Calcolatrice_V2.c• Contiene il main

21

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V2: ProblemaCalcolatrice V2: Problema

• Quando compiliamo, come diciamo a IEIM_Calcolatrice_v2.c dove si trovano le implementazioni? Dobbiamo prima creare il codice

oggetto per le implementazioni• compilare i file con le implementazioni

Quindi compilare il main fornendogli il file oggetto delle implementazioni

22

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V2: SoluzioneCalcolatrice V2: Soluzione

• Dobbiamo prima creare il codice oggetto per le implementazioni

• Quindi compilare il main fornendogli il file oggetto delle implementazioni

23

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V3Calcolatrice V3

• Più file, con funzioni aritmetiche e funzioni di I/O

• Se le funzioni aritmentiche sono in IEIM_FunzioniCalcolatrice.c, perché non fare lo stesso per quelle di I/O?

24

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V3: Calcolatrice V3: OrganizzazioneOrganizzazione

• Il cosa: IEIM_FunzioniCalcolatrice.h

• Contiene la descrizione dei prototipi delle funzioni artimetiche

IEIM_FunzioniIO.h• Contiene la descrizione dei prototipi delle funzioni

di I/O

• Il come: IEIM_FunzioniCalcolatrice.c

• Contiene la descrizione delle funzioni aritmetiche IEIM_FunzioniIO.c

• Contiene la descrizione delle funzioni di I/O IEIM_Calcolatrice_V3.c

• Contiene il main

25

Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V3: CompilazioneCalcolatrice V3: Compilazione

• Come per la V2 Prima tutti i file oggetto

Quindi l’eseguibile

26

gcc IEIM_FunzioniIO.c -c

gcc IEIM_FunzioniAritmetiche.c -c

gcc IEIM_CalcolatriceV3.c IEIM_FunzioniAritmetiche.o

IEIM_FunzioniIO.o –o exe

Page 27: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Pausa!Pausa!

15’… poi seduti!

27

Page 28: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V4Calcolatrice V4

• Tutto in un file, con strutture

28

Page 29: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V5Calcolatrice V5

• Più file, con strutture, con funzioni aritmetiche e funzioni di I/O

• Problemi Se le funzioni hanno bisogno di dati,

come facciamo a dargli questa informazione?

Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi?

29

Page 30: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V5: Problema Calcolatrice V5: Problema 11

• Se le funzioni hanno bisogno di dati, come facciamo a dargli questa informazione?

• Sfruttiamo gli include nei file di progetto! Vediamolo nel codice…

30

Page 31: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V5: Problema Calcolatrice V5: Problema 22

• Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi?

31

Page 32: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V5: Calcolatrice V5: OrganizzazioneOrganizzazione

• Il cosa: IEIM_FunzioniCalcolatrice.h

• Contiene la descrizione dei prototipi delle funzioni artimetiche

IEIM_FunzioniIO.h• Contiene la descrizione dei prototipi delle funzioni di I/O

IEIM_Dati.h• Contiene la struttura dati

• Il come: IEIM_FunzioniCalcolatrice.c

• Contiene la descrizione delle funzioni aritmetiche IEIM_FunzioniIO.c

• Contiene la descrizione delle funzioni di I/O IEIM_Calcolatrice_V5.c

• Contiene il main

32

Page 33: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V6Calcolatrice V6

• Ma se volessimo creare una libreria?

33

gcc IEIM_Calcolatrice_V6.c libreria.a -o exe

cd CalcolatriceV6

gcc IEIM_FunzioniIO.c IEIM_FunzioniCalcolatrice.c -c

ar -r libreria.a IEIM_FunzioniIO.o IEIM_FunzioniCalcolatrice.o

Page 34: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Calcolatrice V7… per casaCalcolatrice V7… per casa

• Più file, con strutture, con funzioni aritmetiche e funzioni di I/O

• Problema Se i parametri sono strutturati, e

vengono passati per copia, come faccio a salvare i valori nei loro campi?• … è possibile passare per copia un dato

strutturato?• … è possibile ritornare un dato strutturato?

• Si veda il codice in CalcolatriceV7

34

Page 35: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 18 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

FineFine

35