Lezione p19.pptx - Riccardo Cassinis

Programmazione Avanzata Java e C 2011-­‐2012 Lezione 19 Lezione interlocutoria Programmazione Avanzata Java e C
Lezione 19
Lezione interlocutoria
15 novembre 2011
Nella scorsa lezione
 Abbiamo visto gli strumenti per gestire dinamicamente
la memoria:
 
malloc(), free(), calloc(), realloc()
 Occorre esercitarsi e studiarle in pratica, guardando gli
esempi “memdinamicax”
 Il lavoro che faremo domani (ma che sarebbe bene
cominciare già oggi:
Lezione 19 Lezione interlocutoria
15 novembre 2011 15 novembre 2011
© 2011 -­‐ 2013 Riccardo Cassinis -­‐ TuB i diriB riservaC 1 Programmazione Avanzata Java e C 2011-­‐2012 Lezione 19 Lezione interlocutoria Problema:
 Sfruttando il programma di giovedì scorso, scrivere un
programma che:
 
 
 
 
 
Legga il testo della Divina Commedia;
Elenchi una sola volta tutte le parole che vi compaiono;
Per ogni parola, indichi il numero di volte che essa compare;
Ordini alfabeticamente le parole;
Scriva i risultati su un file.
Lezione 19 Lezione interlocutoria
15 novembre 2011
Dal concetto di oggetto in Java…
 Spesso è utile “aggregare” insieme diversi dati:
 Coordinate di un punto
 
 
 
int X
int Y
int Z
 Descrizione di uno studente
 
 
 
 
char cognome [50]
char nome [50]
int matricola
int anno_di_corso
Lezione 19 Lezione interlocutoria
15 novembre 2011 15 novembre 2011
© 2011 -­‐ 2013 Riccardo Cassinis -­‐ TuB i diriB riservaC 4
2 Programmazione Avanzata Java e C 2011-­‐2012 Lezione 19 Lezione interlocutoria …alle struct
 Una struct è un tipo di dato aggregato che, a differenza
del vettore
 
 
Ha nomi diversi per i vari elementi
Può essere composto da elementi di tipo e dimensione diversa
 Vediamo esempi pratici
Lezione 19 Lezione interlocutoria
15 novembre 2011
Un primo semplice esempio
 Definiamo un oggetto che rappresenta un punto su un
piano
Struct1
Lezione 19 Lezione interlocutoria
15 novembre 2011 15 novembre 2011
© 2011 -­‐ 2013 Riccardo Cassinis -­‐ TuB i diriB riservaC 6
3 Programmazione Avanzata Java e C 2011-­‐2012 Lezione 19 Lezione interlocutoria Anche le funzioni…
 Possono avere un tipo definito da noi
struct2
Lezione 19 Lezione interlocutoria
15 novembre 2011
7
Se lo troviamo comodo…
 Possiamo dare un nostro nome a qualunque tipo di dato,
anche a quelli già definiti
struct3
Lezione 19 Lezione interlocutoria
15 novembre 2011 15 novembre 2011
© 2011 -­‐ 2013 Riccardo Cassinis -­‐ TuB i diriB riservaC 8
4 Programmazione Avanzata Java e C 2011-­‐2012 Lezione 19 Lezione interlocutoria Un esempio più completo
 Da sviscerare in ogni particolare, soprattutto per quanto
riguarda quella definizione “static”
struct4
Lezione 19 Lezione interlocutoria
15 novembre 2011 15 novembre 2011
© 2011 -­‐ 2013 Riccardo Cassinis -­‐ TuB i diriB riservaC 9
5