DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015.

Slides:



Advertisements
Presentazioni simili
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Advertisements

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
1 Classi di memorizzazione. 2 Definiscono le regole di visibilità delle variabili e delle funzioni quando il programma è diviso su più file Stabiliscono.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Recap sul C Marco D. Santambrogio – Ver. aggiornata al 11 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: 16 Maggio 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 15 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 8 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 11 Aprile 2013 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 6: I corsi del SIT Marco D. Santambrogio – 13 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 18 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: 13 Maggio 2013 Gianluca Durelli – Marco D. Santambrogio –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 24 Ottobre 2011 Sadegh Astaneh – Marco D. Santambrogio –
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ExtraLab 4: Partiamo con il SIT! Marco D. Santambrogio – 19 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 19 Aprile 2013 Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ulitma lezione… fine corso IEIM 2013 Marco D. Santambrogio – Ver. aggiornata al.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Funzioni. Lab.Calc. AA 2005/062 Astrazione Consiste nell'ignorare i dettagli e concentrarsi sull'essenziale: in particolare ci consente di utilizzare.
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Javascript 6 Funzioni. Una funzione sarà eseguita in risposta ad un evento o ad una chiamata diretta. Le funzioni possono essere inserite comodamente.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione VI Un primo programma Programmazione di Calcolatori: Un primo programma 1.
I NUMERI INTERI Il secondo insieme che prenderemo in esame è quello dei numeri interi. Esso si indica con la lettera Z (dal tedesco Zahl = numero) e i.
INTERFACCIAMENTO ASSEMBLY - C++
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione 1 Marco D. Santambrogio – Ver. aggiornata al 9 Aprile 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
Una "vera" classe.. ..un esempio pratico: la calcolatrice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 31 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 24 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 3 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 27 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
Esercizio 14 – chiamata di una procedura Il codice deve: Passare due parametri alla procedura ‘salva’ Questa procedura deve salvare i due parametri nel.
1 Laboratorio di Programmazione di Sistema - C Susanna Pelagatti Ricevimento: Me ,
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Recap su: array e puntatori Marco D. Santambrogio – Ver. aggiornata al 20 Aprile.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 4: 11 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 L Maggio 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 6: 22 Giugno 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 3: 27 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 5: 18 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 14 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2016.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 15 Giugno.
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Veniamo a noi… 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice? 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice? 4 Umh….

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice? 5 Umh…. Meglio!

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V0 Tutto in un file, con funzioni 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V0 Tutto in un file, con funzioni 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V0 Tutto in un file, con funzioni 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Organizzazione 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 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 1 In IEIM_Calcolatrice.c, abbiamo un main che invoca alcune funzioni!!!  Come diciamo al main come invocare le funzioni di cui ha bisogno? 13

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 1 In IEIM_Calcolatrice.c, abbiamo un main che invoca alcune funzioni!!!  Come diciamo al main come invocare le funzioni di cui ha bisogno? 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 16

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Organizzazione 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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Soluzione Dobbiamo prima creare il codice oggetto per le implementazioni Quindi compilare il main fornendogli il file oggetto delle implementazioni 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Soluzione Dobbiamo prima creare il codice oggetto per le implementazioni Quindi compilare il main fornendogli il file oggetto delle implementazioni 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Soluzione Dobbiamo prima creare il codice oggetto per le implementazioni Quindi compilare il main fornendogli il file oggetto delle implementazioni 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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? 26

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Organizzazione 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 27

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Compilazione Come per la V2  Prima tutti i file oggetto  Quindi l’eseguibile 28

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Compilazione Come per la V2  Prima tutti i file oggetto  Quindi l’eseguibile 29 gcc IEIM_FunzioniIO.c -c gcc IEIM_FunzioniAritmetiche.c -c

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Compilazione Come per la V2  Prima tutti i file oggetto  Quindi l’eseguibile 30 gcc IEIM_FunzioniIO.c -c gcc IEIM_FunzioniAritmetiche.c -c gcc IEIM_CalcolatriceV3.c IEIM_FunzioniAritmetiche.o IEIM_FunzioniIO.o –o exe

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 31

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 32

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 33

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 34

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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? 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 1 Se le funzioni hanno bisogno di dati, come facciamo a dargli questa informazione? Sfruttiamo gli include nei file di progetto!  Vediamolo nel codice… 36

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 2 Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 37

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 2 Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 38

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 2 Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 39

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Organizzazione 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 40

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V6 Ma se volessimo creare una libreria? 41 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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice 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 42

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine 43