Ing Gestionale mercoledi’ 11/07/2012 FONDAMENTI -INFO Esame Finale(9 crediti) Prof. M. Angelaccio 90 minuti Istruzioni. 1. Rispondere a tutte le domande scrivendo negli spazi indicati usando eventualmente il retro del foglio previa indicazione 2. Scrivere chiaramente e in modo sintetico i passaggi intermedi ove necessario, si preferiscono risposte schematiche ma complete. 3. NON usare penna rossa 4. NON consultare appunti o libri, e NON comunicare 5. la durata è di 90 min. (45 minuti per ciascuna parte) 6. il candidato ha tempo 5 minuti per decidere di non consegnare e ritornare (automaticamente) al secondo appello di luglio 7. i risultati e le modalità di verbalizzazione verranno pubblicate su internet ai siti di didattica di ateneo (http://www.uniroma2.it/didattica/FondamentiInfo/deposito/) e del corso (http://dist.info.unir 8. i gravemente insufficienti (< 10/30) devono ripetere l’esame a Settembre. FondamentiInformatica-11/07/2012 Cognome : Nome: Mat: I [5 min.] Quali sono i ruoli di un Sistema Operativo ? (max 10 parole) .................................................................................................................................................. II [5 min.] Qual’è il minimo numero intero rappresentabile in modulo e segno con un byte ? Risposta: 0 -8 -127 -7 -255 E perchè ? ............................................................................................ III [8 min.] Sia a l’array ordinato dei numeri di due cifre diverse e formati combinando le cifre 1,2 e 3. Definizione a = ............................ Cosa stampa a[a[1]- a[0]]? ....................... IV [12 min.] Visualizzare la settimana in corso nel formato "DDD" n (vedi Test). weekCalendar.rb (da completare): Test: week = ["LUN", "MAR", "MER", "GIO", "VEN", "SAB", "DOM"] > > > > > > > > ruby weekCalendar.rb LUN 9 MAR 10 MER 11 GIO 12 VEN 13 SAB 14 DOM 15 for ............................................. puts ........................... end 1. Quale valore di i in week[i] corrisponde al mercoledi’ ? 3 MER ME 2 4 2. Cosa restituisce week.sort ? Risposta: .................................................................................................................................................. V [15 min.] Una persona è composta da nome e cognome, e uno studente è una persona con matricola (numero intero). Ad ogni studente è associato libretto dato da una lista di voti. Definire le due classi con i metodi accessori per i dati anagrafici e il libretto ed un metodo insertVoto specifico per studente. Applicare a due variabili completando l’esempio d’uso. # uso di Persona e Studente # Definizione di Persona class Persona #creazione di una persona -> Mario, Rossi p= ............... #Creazione di studente Mario, Rossi con matricola 1200 end # Definizione di Studente class Studente s= ......................... #inserimento di 30 e 18 nel libretto di Mario Rossi puts ..............#stampa del libretto di Mario Rossi end FondamentiInformatica-11/07/2012 Cognome : Nome: Mat: I [5 min.] Quali sono le 6 fasi del ciclo di esecuzione del Sistema Calcolatore ? 1...................2..........................3..........................4.............................5........................6................. II [5 min.] Qual’è il minimo numero intero rappresentabile in modulo e segno con 12 bit ? Risposta: 0 -11 -2047 -12 -4095 E perchè ? ............................................................................................ III [8 min.] Sia pari l’array dei numeri pari formati da una sola cifra decimale. Definizione pari = ................... Cosa stampa puts (pari.to s).to i ? ....................... IV [12 min.] L’IRPEF viene calcolata con il seguente metodo (basato su 5 aliquote): da da da da da 0 a 15.000 euro: 23% di aliquota IRPEF 2012 15.001 a 28.000 euro: 3.450 euro + 27% dell’eccedente della prima aliquota 28.001 a 55.000 euro: 6.960 euro + 38% dell’eccedente della seconda aliquota 55.001 a 75.000 euro: 17.220 euro + 41% dell’eccedente della terza aliquota 75.001 a salire: 25.420 euro + 43% dell’eccedente della quarta aliquota 1. Quale tra le seguenti espressioni verifica se una variabile importo appartiene alla seconda aliquota ? (15001..28000).include?importo importo in (15001..28000) if (importo > 15000) 2. Scrivere un programma calcolaAliquota.rb che calcola l’Aliquota di un importo (vedi Test). Test: > ruby calcolaAliquota.rb calcolaAliquota.rb(da Completare): aliquote = [.....................................................................] importo = ........................... #lettura importo > input: importo: 18500 > ALIQUOTA= 2, > input: importo: 30000 > ALIQUOTA = 3, puts "input: importo:.................................." #calcolo aliquota di importo con scansione da aliquote ..................................................... ..................................................... puts "ALIQUOTA = ......................." V [15 min.] Usare la classe Point con ascissa e ordinata (x e y) per definire come sua sottoclasse oggetti di tipo Circle in cui x e y sono le coordinate del centro e r il valore del raggio. Scrivere i metodi accessori e il metodo circonferenza per Circle (usare la costante Math.PI).Applicare a due variabili completando l’esempio d’uso. # uso di Point e Circle # Definizione di Point class # creazione di un punto di coordinate unitarie p = ................ # creazione di un cerchio di centro end # Definizione di Circle class p e raggio 1/2 c = ................ # stampa lunghezza circonferenza di c ............................ # stampa area di c end puts ................. #(perchè non è Math.PI*r**2?..........................) FondamentiInformatica-11/07/2012 Cognome : Nome: Mat: I [5 min.] Che cosa calcola il seguente programma in linguaggio macchina composto da 7 istruzioni memorizzate nelle locazioni (0..6)? LOA 7 ADD 8 STO 10 LOA 9 ADD 10 STO 11 STP 0 Risposta: Calcola la somma dei numeri ......................................................................................................... II [5 min.] Qual’è il minimo numero intero rappresentabile in modulo e segno con 10 bit ? 0 -9 -511 -10 -1023 E perchè ? ............................................................................................ III [8 min.] Sia a l’array ordinato dei numeri di due cifre diverse e formati combinando le cifre 2,3 e 4. Definizione a = ............................ Cosa stampa a[a[1]- a[0]]? ....................... IV [12 min.] Il coefficiente di correlazione rs di Spearman misura la correlazione tra scale di valori (ranghi). La formula è espressa a sinistra come funzione della somma delle differenze tra tutte le coppie di ranghi. Completare a destra la definizione di funzione che calcola rs per una coppia di ranghi. # definizione di funzione (da completare) def f(a,b) coeff=0 for i in (1..n) temp[i]= (a[i]-b[i])**2/(n*(n**2-1)) end rs = 1 − 6 n X (xi − yi )2 1 n(n2 − 1) coeff=1-6*sum(temp) Ad esempio per x = (1, . . . , 10) return coeff end # test di esempio (da completare) y = (6, 2, 3, 4, 5, 7, 9, 8, 1, 10]) → rs = 0, 4303 x = ...................... y = [6,2,3,4,5,7,9,8,1,10] puts f(x,y) # ---> 0.4303 V [15 min.] Una persona è composta da nome e cognome, e uno conto nominativo è una persona con nunmero di conto numconto (numero intero). Ad ogni conto nominativo è associato saldo dato da una variabile di saldo su cui sono effettuate le operazioni di prelievo e deposito. Definire le due classi con i metodi accessori per i dati anagrafici e il saldo. Applicare a due variabili completando l’esempio d’uso. #creazione di una persona -> Mario, Rossi # Definizione di Persona class Persona p= ............... #Creazione di conto con numero 3333 e anagrafica di p end # Definizione di conto nominativo class Conto c= ......................... # depositi di 1000 e 500 e prelievo di 200 end puts .................#stampa saldo di Mario Rossi FondamentiInformatica-11/07/2012 Cognome : Nome: Mat: VI[5 min.]Quali sono le Applicazioni e i dati scambiati nel protocollo di comunicazione HTTP? Risposta: Applicazioni .................................................................................................................. Risposta: Dati scambiati ................................................................................................................ VII [5 min.] A cosa serve il tag FORM in HTML ? Formattare il paragrafo Inserire una Formula Comunicare dati a server-script Comunicare dati al browser VII [10 min.] Completare la definizione di client e server TCP per l’esempio di comunicazione Client-Server in localhost della lettura dell’orologio del server, specificando le parti che realizzano le operazioni di apertura e chiusura sessione e usando l’indirizzo locale e il numero di porta 12345. require "socket" require "socket" server = ................ while session = server.accept client= ................... msg = .................. while msg= client.gets ............... puts msg end .............. client.close end IX [20 min.] Completare HTML mancante nella pagina di sistema solare seguente e rispondere alle domande. Completare Completare (max 12 parole per ciascuna domanda) <html> <body> <b>Il Sistema Solare</b> <p> <hr WIDTH="100%"> <br><a NAME="menu"></a><b>Indice</b> 1) Cosa significa #terra ? ...................................................... <ul> <li><a href="#terra">La terra</a></li> <li><a href="#luna">La luna</a></li> <li><a href="#marte">Marte</a></li> </ul> <hr WIDTH="100%"> <br><a NAME="terra"></a><b>La terra</b> <a href="terra.jpg"> <img SRC="terra.jpg" height=150 width=150 ></a> (<b>Nota: </b>si puo’ cliccare sull’immagine per andare alla figura con le dimensioni originali) <p> <a href=".......">Torna al menu principale</a> <br><a NAME="......."></a><b>La luna</b> <br><b>....</b> <p><a href="lunar.jpg"> <img SRC="lunar.jpg" height=144 width=101></a> <p><img SRC="top_arrow.gif" height=16 width=16> <a href=".......">Torna al menu principale</a> <p><a NAME="......."></a><b>Marte</b> <br>... <p><a href="marte.jpg"> <img SRC="marte.jpg" height=70 width=99></a> <br> <p> <a href=".......">Torna al menu principale</a> <p> <hr WIDTH="100%"> </body> </html> 2) Cosa significa <hr WIDTH="100%"> ? ...................................................... 3) Quante e quali voci ha il menu indice ? ...................................................... Qual’è la differenza tra <a NAME= "terra" > e <a href="terra.jpg"> ? ......................................................