Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Documenti analoghi
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

Gestione di files Motivazioni

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Manuale Istruzione compilazione C1 per operatore economico

1) Il grafico rappresenta la quantità di acqua contenuta in una vasca da bagno al passare del tempo.

Calcolatori Elettronici

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

Esercitazione Dicembre 2010 (2 ore)

FONDAMENTI DI AUTOMATICA (Ingegneria Gestionale) Prof. Matteo Corno

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione.

Memorie Caratteristiche principali

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Progetto DSA: Guida al metodo di studio

Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei

MATLAB: Una veloce introduzione (Parte II)

AE RZT QSO RKPT SQZC

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 10 Settembre 2013

Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog. Marco Torciani. (Seconda lezione) Unitre Pavia a.a.

Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

Trasmettiamo gli strumenti di comunicazione di Dote Scuola, nella versione definitiva approvata dai nostri organismi interni.

MATEMATICA FINANZIARIA Appello del 25 gennaio 2010 studenti nuovo ordinamento

PIANO DI LAVORO. a.s / 2016

La disposizione estetica della lettera commerciale

Funzionamento del M.I.O. BOOK. 1. Che cos è il M.I.O. BOOK. 2. Avvio del M.I.O. BOOK»

Lab 11 Gestione file di testo"

PROTOCOLLO ITACA PUGLIA RESIDENZIALE Istruzioni d'uso del software Versione 1.0

Appello di Informatica B

A.A. 2016/2017 PIANIFICAZIONE / TEMPISTICA LAUREA Economia aziendale Classe 17, Economia aziendale Classe L-18 Giurisprudenza Classe 31

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

PRO MEMORIA PER PERSONALE SUPPLENTE. Istituto Comprensivo Statale C. Ederle C.so Fraccaroli, Villa Bartolomea (VR)

Sistemi Web per il turismo - lezione 3 -

REPUBBLICA ITALIANA - REGIONE SICILIANA MINISTERO DELL ISTRUZIONE DELL UNIVERSITÀ E DELLA RICERCA

Esercizio 1. Esercizio 2

Utilizzo collegamento remoto

La memoria centrale (RAM)

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 3

Prof. Pagani Corrado HTML

ABC16. 5 Indica nelle reti ethernet cosa è una collisione e come viene gestita. 6 Disegna lo schema della macchina di VON NEUMANN

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Corso Matlab : Terza lezione (Esercitazione, 04/10/13) Samuela Persia, Ing. PhD.

DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.

1238 1*8 2 +2*8 1 +3*8 0

Art. 1 Norme generali. Art. 2 Del bibliotecario

Introduzione al MATLAB c Parte 2

3. La sintassi di Java

TOP DOWN. Compiti in classe proposti Modulo 1 JUVENILIA SCUOLA. Iacobelli Ajme Marrone

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

IL SITO ISTITUZIONALE DELLA SCUOLA ITIS E. MATTEI - URBINO MANUALE D USO

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

GUIDA STUDENTE PIATTAFORMA ELEARNING MOODLE

Input/output in C e in C++

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

3. Terza esercitazione autoguidata: progetto gestione voli

REGISTRO PRESENZE GIORNALIERE ALLIEVI (APPRENDISTATO)

Biblioteca dell Accademia di Belle Arti di Napoli Anna Caputi

Esame del 3 febbraio 2010

18/05/2016 MANUALE UTENTE

MATEMATICA FINANZIARIA Appello del 30 giugno 2016

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8

OLIVETTI davinci DV1-DV2-DV4 PERSONAL DIGITAL ASSISTANT. Non ti molla mai.

HelpIviewer Manuale utente

I servizi del SITR-IDT

Matematica con il foglio di calcolo

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

POLITECNICO DI MILANO - FACOLTA DI INGEGNERIA ECONOMIA ED ORGANIZZAZIONE AZIENDALE

INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C

La Memoria Cache. Informatica B. Daniele Loiacono

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 13 Settembre COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio

AGE.AGEDC001.REGISTRO UFFICIALE U

ESAME DI STATO. SIMULAZIONE PROVA NAZIONALE Scuola Secondaria di I grado Classe Terza. Prova 3. Anno Scolastico Classe:... Data:...

Corso di Laurea in Informatica Architetture degli Elaboratori

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Fondamenti di Informatica Ingegneria Civile e Ambientale Esame del 28/06/2012 Tempo a disposizione: 2h 30 min

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Mobile Programming. Prova scritta del 22/01/2016. Prof. De Prisco. Corso di laurea in Informatica

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Esercizi di programmazione in linguaggio C - Costrutto sequenza

Prova Finale di Livello Base Compito n.21

TPL - Indagini di frequentazione: sistema di rilevamento. FAQ Frequently Asked Questions

Introduzione al corso di Programmazione e Laboratorio

Condizioni di Copyright per la distribuzione di materiale contenente Simboli Widgit

Si considerino le seguenti specifiche per la realizzazione di un sito web per la gestione di abbonamenti a riviste di vario genere..

Home Page. Title Page. Contents. Laboratorio di LATEX. Page 1 of 16. Go Back. maggio Full Screen. Close. Quit

SOCIAL CLASSROOM MANUALE DI UTILIZZO

IIS Vittorio Veneto «Città della Vittoria» - Sede ITT. GREEN SCHOOLS COMPETITION Quarta edizione

FONDAMENTI DI RETI DI TELECOMUNICAZIONI

Aritmetica dei Calcolatori 2

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Elaborato di Fondamenti di Informatica 2007/08. Claudio Guidi

Istruzioni per l uso Yealink T28

Grafici tridimensionali

Le regole del buon video reporter

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13

log. controllo

Transcript:

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 28 gennaio 2013 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Il tempo a disposizione è di 1 ora e 30. Non separate questi fogli. Scrivete la soluzione solo sui fogli distribuiti, utilizzando il retro delle pagine in caso di necessità. Cancellate le parti di brutta (o ripudiate) con un tratto di penna. Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione. È possibile scrivere a matita (e non occorre ricalcare al momento della consegna!). È vietato utilizzare calcolatrici, telefoni o pc. Chi tenti di farlo vedrà annullata la sua prova. È ammessa la consultazione di libri e appunti, purché con pacata discrezione e senza disturbare. Qualsiasi tentativo di comunicare con altri studenti comporta l espulsione dall aula. È possibile ritirarsi senza penalità. Non è possibile lasciare l aula conservando il tema della prova in corso. Saranno valutate meno le soluzioni che NON sfruttano i vantaggi sintattici del linguaggio Matlab/Octave nella gestione degli array. 1

Esercizio 1 (7 punti) La seguente figura mostra l andamento del profilo dell argine di un fiume. Come si nota, l argine presenta altezze diverse nei vari punti del fiume. Si supponga che il fiume scorra in piano lungo tutto il suo percorso (non ci sono quindi salti di livello). Si vuole sviluppare in Matlab/Octave una funzione calcolarischio che sia in grado di identificare e restituire al chiamante i punti dell argine a rischio di esondazione in base a: 1. profilo dell argine, rappresentato da un vettore profiloargine che contiene le altezze dell argine, in metri rispetto al fondo del letto del fiume, in vari punti del corso del fiume a distanze crescenti dalla sua foce (nella precedente figura i dati contenuti in profiloargine sono cerchiati) 2. l altezza attuale del fiume in metri rispetto al fondo del letto del fiume 3. i millimetri di incremento totale di altezza del fiume in base alla pioggia prevista per la giornata. Nota 1: il vettore profiloargine è tale che: profiloargine(1) contiene l altezza dell argine a 1 metro dalla foce del fiume profiloargine(2) contiene l altezza dell argine a 2 metri dalla foce del fiume profiloargine(3) contiene l altezza dell argine a 3 metri dalla foce del fiume e cosi via. Nota 2: i punti dell argine a rischio di esondazione sono quelli in cui il fiume potrebbe raggiungere un altezza superiore a quella dell argine. Li si indichi in termini della loro distanza dalla foce (in metri). A) Si definisca l intestazione della funzione calcolarischio, spiegando il significato dei suoi parametri in ingresso e dei sui valori di ritorno. B) Si scriva il codice della funzione calcolarischio. C) Si costruisca uno script che: carica da un file ascii profiloargine.txt (contenente un numero per ogni riga) i dati relativi alle altezze dell argine del fiume nei vari punti; chiede all utente le informazioni relative all altezza attuale del fiume e alla previsione di incremento giornaliero totale di altezza del fiume in base alla pioggia prevista; richiama la funzione calcolarischio sviluppata al punto precedente; visualizza sullo schermo un grafico che mostri: i) l andamento del profilo dell argine, ii) il livello attuale del fiume, iii) i punti dell argine a rischio di esondazione, come rappresentato nella figura seguente: 2

genera e visualizza a video una tabella contenente i soli punti dell argine a rischio di esondazione; tale tabella deve contenere nella prima colonna la distanza del punto a rischio in metri dalla foce, nella seconda colonna l altezza dell argine in quel punto e, nella terza colonna, i minuti che passeranno tra il rilevamento e l esondazione in quel punto. [Per calcolare quest ultimo valore si usi la formula: minuti = (profiloargine - altezzafiume) * 1000 / (mmincrementoprevisto / 24 * 60)] Funzione function puntiarischio = calcolarischio(profiloargine, altezzafiume, mmincrementoprevisto) % function puntiarischio = calcolarischio(profiloargine, altezzafiume, mmincrementoprevisto) % % input: % profiloargine: vettore contenente l altezza dei punti dell argine % altezzafiume: scalare contenente il valore dell altezza attuale del fiume % mmincrementoprevisto: scalare contenente il valore dell incremento di altezza previsto % del fiume % output: % puntiarischio: vettore contenente i punti dell argine a rischio di esondazione % Script puntiarischio = find(profiloargine <= altezzafiume + (mmincrementoprevisto / 1000)); load('profiloargine.txt'); altezzafiume = input('altezza attuale del fiume in metri: '); mmincrementoprevisto = input('incremento totale di altezza del fiume in millimetri: '); puntiarischio = calcolarischio(profiloargine, altezzafiume, mmincrementoprevisto); ncampioni = length(profiloargine); x = 1:nCampioni; yaltezza = zeros(1, ncampioni); yaltezza(:) = altezzafiume; plot(x, profiloargine); hold on plot(x, yaltezza); plot(puntiarischio, altezzafiume+ mmincrementoprevisto /1000,'*'); hold off metri = 1:length(profiloArgine); minuti = 1000 * 24 * 60 * abs(profiloargine - altezzafiume) / (mmincrementoprevisto); tabella = [metri', profiloargine,minuti]; tabella = tabella(puntiarischio, :) disp(tabella); 3

Esercizio 2 (6 punti) Punto 1) Scrivere la funzione ricorsiva cifra che riceve come parametri due numeri interi num e k (si supponga che entrambi i numeri siano sempre strettamente positivi). La funzione cifra restituisce la k-esima cifra del numero num a partire da destra. Per esempio: cifra(1456, 1) deve restituire 6 cifra(5136, 4) deve restituire 5 cifra(512, 2) deve restituire 1 Nota: Non è consentito l uso della funzione num2str di Matlab/Octave. Suggerimento: un numero intero positivo di n cifre, c n,, c 1 può essere rappresentato in termini di potenze di 10 come segue: c n *10 n-1 + c n-1 *10 n-2 + +c 2 *10+c 1. Per esempio 1456 = 1*10 3 +4*10 2 +5*10+6. La cifra 1 del numero può essere ricavata calcolando il resto della divisione tra il numero e 10. Per esempio, il resto della divisione 1456/10 è pari a 6. Punto 2) Scrivere la funzione ricorsiva cifraconcontrollo che, in modo analogo alla funzione precedente, riceve come parametri due numeri interi num e k (si supponga che entrambi i numeri siano sempre strettamente positivi). La funzione cifraconcontrollo restituisce la k-esima cifra del numero num a partire da destra. Nel caso in cui k sia maggiore del numero effettivo di cifre che compongono num, la funzione restituisce -1. Per esempio: cifraconcontrollo (512, 2) deve restituire 1 cifraconcontrollo (123, 5) deve restituire -1 (perché in questo caso num è composto da sole 3 cifre) Nota: Non è consentito l uso della funzione num2str di Matlab/Octave. Punto 1) function ris = cifra(num, k) if k == 1 ris = mod(num, 10); ris = cifra(floor(num/10), k-1); Punto 2) function ris = cifraconcontrollo(num, k) if (k > 1 && num < 10) ris = -1 if k == 1 ris = mod(num, 10); ris = cifraconcontrollo(floor(num/10), k-1); 4

Esercizio 3 (4 punti) Un sistema dotato solamente di memoria centrale ha un tempo di accesso ai dati pari a 300 ns. Per poter migliorare il tempo di accesso si decide di aggiungere una memoria cache dalle seguenti caratteristiche: Hit Rate = 60 % Hit Time = 50 ns Miss Penalty = 800 ns Rispondere alle seguenti domande (giustificando i risultati ottenuti con gli opportuni calcoli): a) Calcolare il tempo medio di accesso ai dati. b) Qual è il valore minimo che deve avere l Hit Rate affinché la cache offra un vantaggio in termini di prestazioni (cioè il tempo medio di accesso con la cache sia inferiore a 300 ns)? c) Il progettista suggerisce che è possibile incrementare l Hit Rate con i seguenti accorgimenti: (i) in caso di miss è opportuno portare in cache non solo il dato richiesto, ma anche un (piccolo) blocco di dati che si trovano nelle posizioni immediatamente successive al dato richiesto (ii) quando vengono caricati dei dati in cache, se la memoria cache è piena è opportuno che i nuovi dati sostituiscano quelli più recentemente caricati in cache. Commentare gli accorgimenti (i) e (ii) proposti dal progettista e in particolare valutarne l efficacia in riferimento ai principi utilizzati per gestire la memoria nei sistemi operativi. a) TM = 0.6 * 50 + 0.4 * 800 = 30 + 320 = 350 ns b) x * 50 + (1 - x) * 800 <= 300 750 * x >= 500 x > (2 / 3) ~ 66 % è l Hit rate minimo c) L accorgimento (i) è in accordo con il principio di località spaziale e può quindi portare a miglioramenti dell hit rate. L accorgimento (ii) invece è in disaccordo con il principio di località temporale e quindi potrebbe essere dannoso. 5