Problema 1 (18 punti)
In questo problema abbiamo a che fare con:
Ogni istituto fornisce alla DIS un file contenente esattamente 10 titoli (stringa di esattamente 13 caratteri), ciascuno affiancato dal relativo ascolto (intero). Le coppie <titolo,ascolto> sono distribuite una per riga e ordinate per ascolto decrescente.(Un esempio di classifica è in Fig.1).
Al termine della settimana la DIS raccoglie in un file di testo CLASSIF.TXT (stesso formato dei file contenenti previsioni) la classifica reale della settimana e calcola il compenso dovuto a ciascun istituto. (Un esempio di classifica è in Fig.2).
Un istituto viene pagato $1000 per ogni MP3 del quale ha indovinato la posizione nella classifica reale. Ad esempio, facendo riferimento alla classifica reale di Fig.2, l'istituto che ha emesso la previsione di Fig.1 verrà pagato $3000 perché tre MP3 hanno la classifica prevista (primo, ottavo, nono).
SensiUnivoci 2342 | SensiUnivoci 3523 | PREVIS9.txt Demo-MP3-SpA | LoSapevo-Srl, 10000 |
ComuneSentire 1999 | BotteDaOrbi 3445 | PREVIS3.txt Soc.Prev. |
![]() |
Accordo 1234 | Diverbio 2987 | PREVIS2.txt VELODIMONOI-SpA | Music-Inc., 3000 |
SentoBene 1001 | Imprevedibile 2787 | PREVIS1.txt Music-Inc. |
![]() |
Diverbio 987 | SpaccoTutto 2654 | PREVIS6.txt LoSapevo-Srl | VELODIMONOI-SpA, 0 |
Litigio 777 | ComuneSentire 1999 | ![]() |
|
SpaccoTutto 654 | NonCapisco 1001 | Soc.Prev., 5000 | |
MeNeVado 353 | MeNeVado 953 |
![]() |
|
Torno 299 | Torno 749 | Demo-MP3-SpA, 1000 | |
Vedremo 298 | SentoBene 298 | ||
FIG. 1 | FIG. 2 CLASSIF.TXT | FIG. 3 RICEVUT.TXT | FIG. 4: lista |
In particolare, la DIS raccoglie in un file di testo RICEVUT.TXT i nomi dei file con previsioni che ha ricevuto, ciascuno affiancato al nome dell'istituto che lo ha fornito (VEDI Fig.3: nell'esempio il file PREVIS9.TXT contiene le previsioni emesse dall'istituto Demo-MP3-SpA; il file PREVIS3.TXT contiene le previsioni emesse dall'istituto Soc.Prev., etc ...).
Si richiede di risolvere i seguenti punti:
(In Fig.4 c'e' un esempio di tale lista, ottenuta a partire dal file classifica di Fig.2 e dal file RICEVUT.TXT di Fig.3. Ad esempio, calcolando il compenso dovuto per la previsione contenuta in PREVIS3.TXT si ottiene $5000).
(Facoltativamente, costruire anche un file di testo in cui sia stato scaricato il contenuto della lista).
Problema 2 (4 punti)
Illustrare almeno uno dei principali algoritmi di visita di grafi, mostrandone gli effetti su un grafo di esempio.
Problema 3 (4 punti)
Si consideri il seguente programma Pascal, alla cui esecuzione si immagini di fornire come input le ultime tre cifre non nulle (A, B, C) del proprio numero di matricola.
program Uno ( input, output ); var x : integer; procedure Due ( var z : integer ); var y : integer; begin readln ( y ); { legge C } z := y+10; writeln ( x:4, y:4, z:4 ) end; { Due } procedure Tre ( w : integer ); var x : integer; begin readln ( x ); { legge B } Due ( w ); writeln ( x:4, w:4 ) end; { Tre } begin { Uno } readln ( x ); { legge A } Tre ( x ); writeln ( x:4 ) end.
Problema 4 (4 punti)
Data una matrice quadrata di interi M, l'elemento generico [i,j] si dice opposto a quello [j,i]. Se tutti gli elementi opposti di M sono uguali, la matrice si definisce speculare. Scrivere una unità di programma Fortran che, data una matrice quadrata M, restituisca opportunamente il valore di verità dell'affermazione ``M è speculare''.
Scrivere inoltre un esempio di main program contenente un'invocazione dell'unità progettata.
Ad esempio,
non è speculare (9<>1 e 6<>2).