Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B



Documenti analoghi
Introduzione al MATLAB c Parte 2

12 Funzioni e Strutture con MATLAB

Funzioni in C. Violetta Lonati

Esame del 3 febbraio 2010

Lab 11 Gestione file di testo"

Informatica B

Esercitazioni di Calcolo Numerico 23-30/03/2009, Laboratorio 2

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

Luigi Piroddi

Laboratorio di Informatica

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

Calcolatori Elettronici B a.a. 2008/2009

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

CHIUSURE di MAGAZZINO di FINE ANNO

Testi di Esercizi e Quesiti 1

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Corso di Matematica per la Chimica

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

EFFETTI DEGLI INVESTIMENTI AMBIENTALI B.A.T. SULLA COMPATIBILITà AMBIENTALE

Product Shipping Cost Guida d'installazione ed Utilizzo

Lab 04 Istruzioni, cicli e array"

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Gerarchie di Memoria Andrea Gasparetto

min 4x 1 +x 2 +x 3 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 +x 2 3x 3 = 5 Innanzitutto scriviamo il problema in forma standard: x 1 x 2 +3x 3 = 5

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Esercizio 1. Esercizio 2

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

La memoria centrale (RAM)

Modelli matematici e realtà:

ARCHIVIA PLUS - ARCHIFILE

Manuale per i redattori del sito web OttoInforma

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Matlab: Strutture di Controllo. Informatica B

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

Uso di base delle funzioni in Microsoft Excel

Calcolatori Elettronici A a.a. 2008/2009

Programmazione I - Laboratorio

Codifica dei numeri negativi

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Dimensione di uno Spazio vettoriale

1 Serie di Taylor di una funzione

4 3 4 = 4 x x x 10 0 aaa

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Lezione 8. La macchina universale

Interpolazione ed approssimazione di funzioni

Ammortamento di un debito

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

La Memoria Cache. Informatica B. Daniele Loiacono

Problem solving elementare su dati vettoriali

Studente: SANTORO MC. Matricola : 528

Esercitazione 23 maggio 2016

Esercizi per il corso di Algoritmi e Strutture Dati

FH-SY capitolo Versione 3 - FH-SY.NET - FAQ -

Matlab: Gestione avanzata dei file

a) Determinare i numeri indice a base fissa del fatturato con base 2007=100 e commentare i risultati ottenuti per gli anni 2008 e 2012

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

Il concetto di valore medio in generale

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

Prof. Silvio Reato Valcavasia Ricerche. Il piano cartesiano

Informatica. Rappresentazione dei numeri Numerazione binaria

La memoria - generalità

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Matematica in laboratorio

Plate Locator Riconoscimento Automatico di Targhe

E naturale chiedersi alcune cose sulla media campionaria x n

Servizio di Visualizzazione PROSPETTO PAGA E CUD IN FORMATO ELETTRONICO GUIDA AL PORTALE

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

IL FANTABASKET DEDICATO AL CAMPIONATO DI BASKET A2 FEMMINILE

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Alcuni consigli per un uso di base delle serie di dati automatiche in Microsoft Excel

SIGOP versione Rilascio del 17/05/2013

Sistema operativo: Gestione della memoria

COME CREARE UN SONDAGGIO CON SCELTA SU MOODLE

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

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

PROBABILITA CONDIZIONALE

Guida alla Navigazione e Utilizzo dell Area Fattura PA

Università di Firenze - Corso di laurea in Statistica Seconda prova intermedia di Statistica. 18 dicembre 2008

Basi di dati 9 febbraio 2010 Compito A

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

Introduzione a Dev-C++

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Fondamenti di Informatica 2

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

ISI s.r.l. Corso di Access 05 CREARE UN ELENCO MAILING ED INVIARE MESSAGGI DI POSTA ELETTRONICA Pag. 1/6

prima registrazione del 4 gennaio watch?v=_ursc5we6ny ; seconda registrazione del 4 gennaio

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

( x) ( x) 0. Equazioni irrazionali

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

Comandi di Input/Output in Matlab

Corso integrato di informatica, statistica e analisi dei dati sperimentali Altri esercizi_esercitazione V

LABORATORIO DI MATEMATICA I PROBLEMI DI SCELTA IN CONDIZIONI DI INCERTEZZA CON EXCEL

Slide Cerbara parte1 5. Le distribuzioni teoriche

Transcript:

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Esercitazione del 22/01/2013 Esercizio 1 Un sistema dispone di 16 pagine di memoria fisica e 64 di memoria virtuale. Sapo che l indirizzo fisico è di 12 bit, rispondere alle seguenti domande giustificando le risposte: a) Qual è la dimensione della pagina di memoria fisica e la dimensione totale della memoria fisica? b) Qual è la dimensione della pagina di memoria virtuale e la dimensione totale della memoria virtuale? c) Qual è la struttura dell indirizzo virtuale e di quello fisico (indicarne i campi e la rispettiva lunghezza)? Si ricordano le seguenti relazioni utili per risolvere questa tipologia di esercizi: bit_indirizzo_fisico = NPF + bit_offset bit_indirizzo_virtuale = NPV + bit_offset dimensione_pagina = 2^bit_offset pagine_fisiche_indirizzabili = 2^NPF pagine_virtuali_indirizzabili = 2^NPV dimensione_memoria_fisica = 2^bit_indirizzo_fisico dimensione_memoria_virtuale = 2^bit_indirizzo_virtuale c) 12 bit indirizzo fisico, 16 pagine fisiche à NPF: 4 bit offset: 8bit 64 pagine virtuali à 14 bit indirizzo virtuale à NPV=6bit offset: 8bit a) pagina fisica da 256 byte, memoria fisica da 4Kbyte b) pagina virtuale da 256 byte, memoria virtuale da 16 Kbyte Esercizio 2 Un sistema dotato solamente di memoria centrale ha un tempo di accesso ai dati pari a 350ns. Per poter migliorare il tempo di accesso si decide di aggiungere una memoria cache dalle seguenti caratteristiche: Hit Rate=80% e Hit Time=40ns. Miss Penalty pari a due volte l'hit Time della cache, più il tempo di accesso alla memoria centrale. 1. Calcolare il tempo di accesso ai dati dopo l'aggiunta della cache; 2. Poto scegliere una cache alternativa con Hit Time ridotto e stesso Hit Rate, quanto dovrebbe valere l'hit Time della nuova cache per avere un tempo di accesso ai dati pari a 100ns? Risposte prive di giustificazione dei risultati ottenuti non saranno valutate.

punto 1 TACC=HR*HT+(1 HR)*MP MP=2HT+TMEM TACC=0.8*40ns+(1-0.8)*(2*40ns+350ns)= =0.8*40ns+0.2*(80ns+350ns)= =32ns+86ns=118ns punto 2 HR*HT+(1 HR)*MP=100ns HR*HT+(1 HR)*(2HT+TMEM)=100ns HR*HT+2HT+TMEM-2*HR*HT-HR*TMEM=100ns (HR+2-2HR)*HT=100ns-TMEM+HR*TMEM HT=(100ns-TMEM+HR*TMEM)/(2-HR) HT=(100ns-350ns+0.8*350ns)/(2-0.8) HT=30ns/1.2ns=25ns Esercizio 3 Un call centre possiede un archivio che contiene informazioni sulla produttività dei dipenti. L archivio consiste in un file di testo (prod.dat) contenente una tabella di 3 colonne: nella prima sono contenuti i nomi dei dipenti, nella seconda la media di ore giornaliere di lavoro relative all ultimo mese e nella terza il numero di contratti stipulati in quel mese dal dipente. L azia calcola la retribuzione dei dipenti nel seguente modo: se un dipente ha lavorato in media meno di 7 ore al giorno la paga è di 5 all ora, se ha lavorato da 7 a 12 ore in media, è di 10, altrimenti è di 6. Ai fini del calcolo dello stipio si supponga che i giorni di lavoro al mese siano 24. Inoltre se il numero di contratti stipulati è superiore a 48 l azia premia un dipente con un bonus di 500. Si scriva uno script che legga da file l archivio sulla produttività (utilizzando la funzione predefinita textread) e inserisca i dati letti in un array di strutture. Tale array deve contenere, per ogni dipente, una struttura con un campo nome per memorizzare il nome del dipente, un campo ore per il numero medio di ore, e un campo contratti per il numero di contratti. Successivamente lo script deve - calcolare, per ogni dipente, lo stipio, memorizzandolo in un opportuno campo di nome stipio aggiunto alla struttura che già contiene gli altri dati, e - stampare a video il numero dei dipenti che, pur lavorando più di 12 ore al giorno (in media), guadagnano meno della media dei dipenti. [nomi ore contratti] = textread('prod.dat', '%s %f %f'); for i=1:length(nomi) dipenti(i).nome = nomi(i); dipenti(i).ore = ore(i); dipenti(i).contratti = contratti(i); for i=1:length(nomi) coefficiente = 10; if dipenti(i).ore < 7 coefficiente = 5; elseif dipenti(i).ore > 12 coefficiente = 6; dipenti(i).stipio = dipenti(i).ore * 24 * coefficiente;

if dipenti(i).contratti >= 48 dipenti(i).stipio = dipenti(i).stipio + 500; mediastipi = mean([dipenti.stipio]); numdipenti = sum([dipenti.stipio] < mediastipi &... [dipenti.ore]> 12); fprintf('numero dipenti richiesti: %d \n', numdipenti); Esercizio 4 Data una serie di misurazioni i cui valori misurati sono contenuti in un vettore x e i relativi pesi sono contenuti in un vettore w (delle stesse dimensioni di x), la media pesata si calcola come segue: Si risponda ai seguenti quesiti utilizzando il linguaggio MATLAB. 1) Scrivere una funzione mediapesata avente come argomenti i vettori x e w e come risultato la media pesata. 2) Scrivere una funzione mediapesataspeciale con parametri analoghi alla precedente, ma che calcoli la media pesata considerando come zeri i pesi relativi alle misurazioni con il valore minimo e il valore massimo. 3) Si consideri una matrice Z di dimensione 2xN precedentemente definita in cui le colonne rappresentano le N misurazioni, la prima riga contiene i valori di ogni misurazione e la seconda riga i relativi pesi. Si scriva uno script per trovare gli indici delle misurazioni con valore compreso tra la media pesata e la media pesata speciale (estremi inclusi). 4) Scrivere una funzione di ordine superiore mediapesatasuperiore avente come argomenti x, w, e una funzione f con parametri analoghi a quelle sviluppate ai punti 1 e 2. Il risultato sarà la media pesata calcolata utilizzando f. Si mostri infine un esempio di invocazione. punto 1 function r=mediapesata(x,w) r=sum(x.*w./sum(w)); punto 2 function r=mediapesataspeciale(x,w) selmin=min(x)==x; selmax=max(x)==x; w(selmin selmax)=0; r=mediapesata(x,w); punto 3 x=z(1,:); w=z(2,:); sel1=x>=mediapesata(x,w)&x<=mediapesataspeciale(x,w); sel2=x<=mediapesata(x,w)&x>=mediapesataspeciale(x,w); find(sel1 sel2) punto 4 function r=mediapesatasuperiore(x,w,f) r=f(x,w); mediapesatasuperiore(x,w,@mediapesata)

Esercizio 5 Un metodo per calcolare il valore approssimato della radice quadrata di un numero reale non negativo z, detto metodo babilonese, utilizza la seguente relazione ricorsiva: " $ # $ % x(n) = 1 z (x(n 1)+ 2 x(n 1) ) x(0) =1 Dove n è un intero positivo arbitrario, mentre x(n) rappresenta un'approssimazione della radice quadrata del numero z. Per esempio, se z è pari a 2 e n è pari a 3 il valore di x(n) ottenuto applicando la formula indicata sopra è 1.4142 (che è una buona approssimazione di 2). L'errore di approssimazione associato ad x(n) è definito come segue: errore(n) = x(n) x(n 1) e decresce al crescere di n. Per esempio, se si calcola la radice di 2 con n pari a 1 si ottiene il valore 1.5000 con errore 0.5000. Se invece si calcola la radice dello stesso valore con n pari a 2 si ottiene il valore 1.4167 con errore 0.0833. 1. Si scriva una funzione ricorsiva sqrt1(z,n) che restituisca un'approssimazione della radice quadrata di z e il relativo errore utilizzando il metodo babilonese. Quando n è pari a zero, si assuma un valore dell errore pari a inf. 2. Si scriva una funzione sqrt2(z,err) che, utilizzando la funzione sqrt1, restituisca un valore approssimato della radice quadrata di z con errore non superiore al valore err fornito come parametro. Nella soluzione di entrambi i quesiti non è permesso utilizzare alcuna funzione di libreria di MATLAB/Octave a parte la funzione abs per il calcolo del valore assoluto. function [r err] = sqrt1(z,n) if (n == 0) % caso base r=1; err = inf; % va bene un valore arbitrario elseif (n > 0) ) % caso ricorsivo [tmp_r tmp_err] = sqrt1(z,n-1); r = 0.5 * (tmp_r + z / tmp_r); err = abs(r - tmp_r); function r = sqrt2(z,err) k = 0; tmp_err = inf; while (tmp_err > err) k = k + 1; [r tmp_err] = sqrt1(z,k);

Esercizio 6 Si analizzi la funzione ricorsiva sotto riportata e si spieghi in modo sintetico che cosa calcola. Si indichi inoltre cosa restituisce la funzione quando viene chiamata con argomento pari a 5. function M=cosafa(n) if (n == 1) M = 1; else S = cosafa(n-1); k = size(s,1)+2; M = ones(k)*n; M(2:k-1,2:k-1)=S; Nota: La funzione MATLAB ones(n) restituisce una matrice di dimensione n x n in cui tutti gli elementi sono pari ad 1 La funzione calcola una matrice di dimensione (2 n 1) x (2 n 1) che ha come elemento centrale 1 le cui cornici concentriche hanno valori che vanno da 2 ad n: cosafa(1) 1 cosafa(2) 222 212 222 cosafa(3) 33333 32223 32123 32223 33333 cosafa(5) 555555555 544444445 543333345 543222345 543212345 543222345 543333345 544444445 555555555