DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Exe 19 Aprile 2013
Marco D. Santambrogio – [email protected]
Ver. aggiornata al 18 Aprile 2013
WAT
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
WAT… prima reazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
3
Feedback 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Mettere gli extra Lab alle 8 del mattino
vorrebbe dire avere in aula metà della
gente
4
Feedback 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Mettere gli extra Lab alle 8 del mattino
vorrebbe dire avere in aula metà della
gente
Lunedì
Martedì Mercoledì
Giovedì
Venrdì
6am - 7am
7am - 8am
8am - 9am
9am - 10am
10am - 11am
11am - 12pm
12pm - 1pm
1pm - 2pm
2pm -3pm
3pm - 4pm
4pm - 5pm
5pm - 6pm
5
Feedback 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Mettere gli extra Lab alle 8 del mattino
vorrebbe dire avere in aula metà della
gente
Lunedì
Martedì Mercoledì Giovedì
Venrdì
6am - 7am
7am - 8am
8am - 9am
9am - 10am
10am - 11am
11am - 12pm
12pm - 1pm
1pm - 2pm
2pm -3pm
3pm - 4pm
4pm - 5pm
5pm - 6pm
6
Feedback 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Mettere gli extra Lab alle 8 del mattino
vorrebbe dire avere in aula metà della
gente
Lunedì
Martedì
Mercoledì
Giovedì
Venrdì
6am - 7am
7am - 8am
8am - 9am
9am - 10am
10am - 11am
11am - 12pm
12pm - 1pm
1pm - 2pm
2pm -3pm
3pm - 4pm
4pm - 5pm
5pm - 6pm
7
Feedback 1 e 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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)
Lunedì
Martedì Mercoledì Giovedì
Venrdì
6am - 7am
7am - 8am
8am - 9am
9am - 10am
10am - 11am
11am - 12pm
12pm - 1pm
1pm - 2pm
2pm -3pm
3pm - 4pm
4pm - 5pm
5pm - 6pm
8
Gruppi OreRicevimento
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Gruppo 1






• Gruppo3
Chiara Crippa
Giada Bandera
Alessandra Camassa
Maria Veronica Lipreri
Chiara Balestra
Valeria Luraghi





• Gruppo 5
Matteo Lepori
Andrea Crippa
Luca Foppoli
Girogio Andriani
Francesca Berti




Daniele Alberti
Mattia Bergaglio
Gabriele Bianchi
Pierfrancesco
Capone
 Matteo Butti
• Gruppo 2






Francesco La Marca • Gruppo 4
 Silvia Contini
Chiara Fattore
Francesca Donnaloja
 Giuseppina Lauriola
Vincenza Cascella
 Martina Gava
Clara Andolina
 Samuele Colombo
Patrizia Casali
 Tommaso Cazzato
9
Veniamo a noi…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
10
La calcolatrice?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Umh….
Meglio!
11
La calcolatrice!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Quante calcolatrici?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
•
•
•
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
Calcolatrice V0
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Tutto in un file, con funzioni
14
Calcolatrice V1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V1: Organizzazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V1: Problema 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• In IEIM_Calcolatrice.c, abbiamo un
main che invoca alcune funzioni!!!
 Come diciamo al main come invocare le
funzioni di cui ha bisogno?
17
Calcolatrice V1: Problema 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Quando compiliamo, come diciamo a
IEIM_Calcolatrice.c dove si trova
IEIM_Calcolatrice.h?
18
Pausa!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
15’… poi seduti!
19
Calcolatrice V2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V2: Organizzazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V2: Problema
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V2: Soluzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Dobbiamo prima creare il codice
oggetto per le implementazioni
• Quindi compilare il main fornendogli il
file oggetto delle implementazioni
23
Calcolatrice V3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V3: Organizzazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V3: Compilazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Come per la V2
 Prima tutti i file oggetto
gcc IEIM_FunzioniIO.c -c
gcc IEIM_FunzioniAritmetiche.c -c
 Quindi l’eseguibile
gcc IEIM_CalcolatriceV3.c
IEIM_FunzioniAritmetiche.o
IEIM_FunzioniIO.o –o exe
26
Pausa!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
15’… poi seduti!
27
Calcolatrice V4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Tutto in un file, con strutture
28
Calcolatrice V5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V5: Problema 1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Se le funzioni hanno bisogno di dati,
come facciamo a dargli questa
informazione?
• Sfruttiamo gli include nei file di progetto!
 Vediamolo nel codice…
30
Calcolatrice V5: Problema 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Se i parametri sono strutturati, e vengono
passati per indirizzo, come faccio a
salvare i valori nei loro campi?
31
Calcolatrice V5: Organizzazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Calcolatrice V6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Ma se volessimo creare una libreria?
cd CalcolatriceV6
gcc IEIM_FunzioniIO.c
IEIM_FunzioniCalcolatrice.c -c
ar -r libreria.a IEIM_FunzioniIO.o
IEIM_FunzioniCalcolatrice.o
gcc IEIM_Calcolatrice_V6.c libreria.a -o exe
33
Calcolatrice V7… per casa
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
Fine
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
35
Scarica

PPT - V1 - Dipartimento di Elettronica ed informazione