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