POLITECNICO DI MILANO ESAME DI INFORMATICA 3 Prof.ssa Sara Comai Laurea On Line Anno Accademico 2003/2004 II Prova in itinere

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

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

Fondamenti di Internet e Reti

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Basi di Dati Complementi Esercizi. Esercizi su strutture fisiche di accesso. Soluzione Esercizio 1. Esercizio 1. Soluzione Esercizio 2.

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi. Matricole dispari Prof.ssa Anselmo. Pre-appello del 15 Gennaio Attenzione:

Fondamenti di Informatica 2

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Tabelle hash. Damiano Macedonio Università Ca' Foscari di Venezia.

Progettazione Fisica FILE

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Sottoprogrammi: astrazione procedurale

Corso di Laurea in Matematica

Files in C++ Fondamenti di Informatica. R. Basili. a.a

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

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

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

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

CALCOLO DEL MASSIMO COMUN DIVISORE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Appello di Informatica B

3. Terza esercitazione autoguidata: progetto gestione voli

PROGETTAZIONE FISICA

PHP e MySQL. Guida scaricata da

Gestione di files Motivazioni

GUIDA RAPIDA PER LA GESTIONE DELLE ADOZIONI LIBRI DI TESTO 2016/2017

Corso di Informatica Medica Esercitazione 1I ! Alessandro A. Nacci - alessandronacci.com

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

Ingegneria del Software II 12 Gennaio 2012 Parte teoria, punti 14 - Tempo a disposizione: 1h

I puntatori e l allocazione dinamica di memoria

CORSO DI LAUREA IN SCIENZE DELLA FORMAZIONE PRIMARIA

CORSO DI LAUREA IN SCIENZE DELLA FORMAZIONE PRIMARIA

Lab 11 Gestione file di testo"

RICERCA DI UN ELEMENTO

Programmazione Orientata agli Oggetti in Linguaggio Java

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2001/ febbraio A

Altri metodi di indicizzazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Esercizi per il corso di Algoritmi e Strutture Dati

Strumenti freeware/open source per l'insegnamento delle discipline scientifiche

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Programmazione 1 A.A. 2015/2016

Firma digitale con RSA

Problem solving elementare su dati vettoriali

Fondamenti di Informatica - 9Cfu Corso di Laurea in Ingegneria Informatica (ord. 270)

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015

Esempio: Array di struct

Informatica Medica C++ Informatica Medica I semestre Docenti: Fabio Solari e Manuela Chessa. Sviluppo di un applicazione eseguibile

Allocazione dinamica della memoria - riepilogo

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

La struttura dati ad albero binario

INFORMATICA 1 L. Mezzalira

Indirizzamento Aperto

FONDAMENTI DI AUTOMATICA (Ingegneria Gestionale) Prof. Matteo Corno

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

argomenti Hashing Richiamo sul concetto di dizionario Tabelle hash ! Hashing ! Funzioni hash per file ! Insieme di coppie del tipo <elemento, chiave>

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Gestione dinamica di una pila

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria

Prof. Pagani Corrado HTML

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

Lezione 9: Strutture e allocazione dinamica della memoria

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Esercizio 1. Esercizio 2

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

Esame di Informatica Generale 25 giugno 2012 Professori: Carulli, Fiorino. Docente Risultati Scritto Fiorino Carulli

U N I V E R S I T À D E G L I S T U D I D I B O L O G N A

Laboratorio di programmazione

Esercitazione 7. Procedure e Funzioni

Algoritmi e Strutture Dati

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Semplici esempi di programmi

FONDAMENTI di INFORMATICA L. Mezzalira

Utilizzo e scrittura di classi

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

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

Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Ordinamenti: mergesort e quicksort

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Laboratorio di Programmazione Gruppo III, Ml-ZZ. Alberto Finzi

PIANO DI LAVORO ANNO SCOLASTICO I.T.S.O.S C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO: SISTEMI E RETI PROF.

Algoritmi di ordinamento

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Transcript:

POLITECNICO DI MILANO ESAME DI INFORMATICA Prof.ssa Sara Comai Laurea On Line Anno Accademico 00/00 II Prova in itinere È sconsigliato l uso di libri e appunti. Salvare il file con nome: COGNOME.cpp, dove COGNOME è il cognome dello studente. All inizio del vostro file inserite Cognome: Nome: Matricola: Classe Virtuale: ESERCIZIO Data una tabella hash di lunghezza m=, si supponga di dover inserire (in ordine) le chiavi:,,, 0,,,, con la funzione di hash f(k) = k mod m. Si illustrino i risultati dell inserimento usando quadratic probing double hashing (la seconda funzione di hash è h (k)=k mod(m-)) Quadratic Probing 0 : collisione!! h()=(h()+)mod= collisione!! h()=(h()+)mod= (0!!!!) 0: collisione!! h(0)=(h(0)+)mod= : collisione!! h()=(h()+)mod= collisione!! h()=(h()+)mod= collisione!! h() =(h()+)mod= (!!!!) : collisione!! h()=(h()+)mod=

Double Hashing 0 : collisione!! h ()=mod= h()=(h()+*)mod= 0: collisione!! h (0)=0mod= h(0)=(h(0)+*)mod= : collisione!! h ()=mod= h()=(h()+*)mod= collisione!! h()=(h()+*)mod= : collisione!! h ()=mod= h()=(h()+*)mod= ESERCIZIO Quale dei seguenti alberi è uno heap? Per i casi negativi indicare il motivo, per quelli positivi disegnare un array che lo memorizzi. (a) (b) (c) (d)

(a) (b) No, -- (c) (d) No, non è completo ESERCIZIO Un generico gioco elettronico è composto da una serie di personaggi tra cui: Maghi caratterizzati da un nome, da un livello di esperienza (intero). L'elenco delle magie che possono lanciare e l'elenco degli oggetti raccolti durante il gioco. Cavalieri caratterizzati da un nome, da un livello di esperienza. L'energia della corazza che li protegge e l'elenco degli oggetti raccolti durante il gioco Draghi caratterizzati da un nome, da un livello energetico e da un livello di esperienza. Si supponga che durante lo svolgimento del gioco siano presenti un certo numero di maghi, un certo numero di cavalieri ed un certo numero di draghi. Si consideri di avere a disposizione un array di puntatori ai personaggi presenti nel gioco. Puntatori in posizione differente nell'array possono puntare anche allo stesso personaggio (come mostrato in figura). Cav M Mago G Cav C Drago A Drago E

Si realizzi un algoritmo per contare il numero di personaggi presenti nel gioco. L'algoritmo deve essere il più efficiente possibile e non deve far uso di informazioni ausiliarie associate ai personaggi. Un oggetto è caratterizzato dall'indirizzo di memoria dove è allocato. Puntatori che puntano allo stesso oggetto hanno lo stesso valore numerico intero. E' possibile trattare un array di puntatori a zone di memoria come un array di numeri interi. Se su questo array si applica un algoritmo di ordinamento e poi lo si scandisce saltando i valori uguali è possibile contare in modo efficiente il numero di oggetti presenti in memoria pseudocodice: const int N = 00; Personaggi* popolazione[n]; sort(popolazione,n); if (N == 0) cout << "Array nullo"; else { count = ; for (i=; i < N; i++) { if (popolazione[i]!= popolazione[i-]){ count++; } } cout << "Il numero di personaggi presenti nel gioco è pari a " << count; } ESERCIZIO Si supponga di inserire i seguenti record (dei quali vengono date le chiavi) in un B+ tree di ordine : 0 0 (i record vengono inseriti i quest'ordine). Si disegni il B+ tree ottenuto, supponendo che i nodi foglia possano contenere record. 0 0 0

. Si disegni il B+ tree dopo la cancellazione del nodo. 0 0 0 ESERCIZIO Dato il seguente grafo 0 0. individuare i percorsi più brevi generati applicando l'algoritmo di Dijkstra per il vertice : si mostri l'array D per ogni vertice processato. Inizio Processo 0 Processo 0 Processo 0 Processo 0 Processo 0 Processo 0

. individuare l'albero di ricoprimento ottenuto applicando l'algoritmo di Prim partendo dal vertice. (l'albero può essere mostrato graficamente oppure descritto tramite l'elenco degli archi) 0 0