Facoltà di Ingegneria, Università di Roma ``La Sapienza''
Corso di Informatica Grafica, Ingegneria Ambiente e Territorio
Appello del 24 gennaio 2001 - A.A.2000/01
 
tempo a disposizione: 2 ore

Un sito web mette a disposizione delle "play list" che sono file contenenti un elenco di brani mp3 con relativo link al sito dove il brano è presente. In particolare ogni record di una play list ha la seguente struttura:

nome_brano     artista     durata     link
dove

Ad esempio una play list potrebbe contenere:


all_you_need_is_love    beatles          04:30     http://www.beatles.com/mp3/all_you_need.mp3
jumping_jack_flash      rolling_stones   03:22     http://www.rollingstones.com/downloads/jjf.mp3
tangled_up_in_blue      bob_dylan        05:11     http://www.bobdylan.com/mp3/tub75.mp3
symphathy_for_the_devil rolling_stones   11:23     http://www.rollingstones.com/downloads/sd.mp3
penny_lane              beatles          05:20     http://www.beatles.com/mp3/penny_lane.mp3

Si noti che le play list non contengono esplicitamente il numero di record in esse presenti.

Problema 1  Scrivere una funzione C che prenda come parametri il nome f di un file da leggere contenente una play list, il nome di un artista a ed il nome r di un file su cui scrivere, e scriva su r la play list formata selezionando i record di f dove l'artista coincide con a.

Problema 2  Scrivere una funzione C che prenda come parametro il nome f di un file da leggere contenente una play list ed il nome r di un file su cui scrivere e scriva in r la play list ottenuta da f invertendo l'ordine dei record. Si assuma di avere a disposizione una funzione NumRec() già definita che, dato un file, restituisce il numero di record (cioè di linee) in esso presenti. L'intestazione di NumRec() è:

int NumRec(FILE* fp)







Nota: scrivere il proprio nome e cognome su tutti i fogli consegnati.