determinare la complessitá di I/O e il work dell algoritmo in funzione di N = n 2, M, B considerando che una entry corrisponde ad una parola.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "determinare la complessitá di I/O e il work dell algoritmo in funzione di N = n 2, M, B considerando che una entry corrisponde ad una parola."

Transcript

1 Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 22 maggio 2006 Argomento: Esercizio: moltiplicazione di matrici (EM, Indexing Scribes: Antonio arbalace, Paolo Repele, Federico Wegher 1 Esercizio Testo Date due matrici quadrate, X e Y, di taglia = n 2 si desidera: scrivere l algoritmo in pseudocodice che effettui il prodotto delle due matrici, X Y = Z, per il Disk Model assumendo che all inizio X, Y e Z siano scritte su disco in row major. determinare la complessitá di I/O e il work dell algoritmo in funzione di = n 2, M, considerando che una entry corrisponde ad una parola. Soluzione Il prodotto righe per colonne tra matrici quadrate pu agevolmente essere risolto in modo ricorsivo, infatti date le tre matrici: [ ] [ ] [ ] x 1 x 2 y 1 y 2 z 1 z 2 X = Y = Z = x 3 x 4 y 3 y 4 z 3 z 4 vale la seguente relazione: [ ] [ x 1 x 2 y 1 y 2 Z = x 3 x 4 y 3 y 4 ] = [ z 1 z 2 z 3 z 4 ] = [ x 1 y 1 + x 2 y 3 x 1 y 2 + x 2 y 4 x 3 y 1 + x 4 y 3 x 3 y 2 + x 4 y 4 ] dove X, Y e Z sono state divise in quattro sottomatrici quadrate n 2 n 2. Ció ci permette quindi di dividire il problema in sottoproblemi piú piccoli, e la ricombinazione di questi ci permette di ottenere la soluzione finale. Per comoditá, definiamo z i1 e z i2, rispettivamente, il primo e il secondo addendo della somma z i per i = 1, 2, 3, 4, cioé: [ ] [ ] z 1 z 2 z 11 + z 12 z 21 + z 22 Z = = z 3 z 4 z 31 + z 32 z 41 + z 42 Ove: z 11 = x 1 y 1 z 12 = x 2 y 3 z 21 = x 1 y 2 1

2 z 22 = x 2 y 4 z 31 = x 3 y 1 z 32 = x 4 y 3 z 41 = x 3 y 2 z 42 = x 4 y 4 Determinato l approccio con cui affrontare il problema, occorre considerare che stiamo operando con il modello di calcolo External Memory e quindi le matrici X, Y e Z sono memorizzate su disco in row major. Per minimizzare il numero di trasferimenti di blocchi dal disco alla RAM, una volta suddiviso il problema, occorre scrivere le matrici X e Y su disco in modo che le singole sottomatrici x 1, x 2, x 3, x 4 e y 1, y 2, y 3, y 4 siano scritte in row major. É quindi necessario effettuare una permutazione su ciascuna matrice X e Y in modo che ogni quadrante sia scritto in row major (vedi figure 1. (a (b Figure 1: La linea verde rappresenta i dati come sequenzialmente sono scritti su disco: (a matrice su disco in row major, (b matrice su disco dopo la permutazione: ogni sottomatrice é in row-major su disco; le sottomatrici su disco sono una di seguito all altra. Una volta effettuata la permutazione su entrambe le matrici X e Y si possono risolvere gli 8 sottoproblemi, questi daranno luogo ad una matrice i cui elementi non sono in row major é necessario, perció, applicare alla matrice Z una permutazione inversa a quella su descritta. Segue quindi lo pseudocodice. EM-MatrixMult(X,Y,Z X + Y IF ( M THE risolvi il problema interamente in RAM ; ELSE { permuta X e Y affinché le sottomatrici x i e y i (1 i 4 siano memorizzate su disco in 2

3 row major EM-MatrixMult(x 1,y 1,z 11 ; EM-MatrixMult(x 2,y 3,z 12 ; EM-MatrixMult(x 1,y 2,z 21 ; EM-MatrixMult(x 2,y 4,z 22 ; EM-MatrixMult(x 3,y 1,z 31 ; EM-MatrixMult(x 4,y 3,z 32 ; EM-MatrixMult(x 3,y 2,z 41 ; EM-MatrixMult(x 4,y 4,z 42 ; } FOR i 1 TO 4 DO z i z i1 + z i2 permuta le righe di z 1,z 2,z 3,z 4 in modo che Z sia scritta su disco in row major Analisi delle complessitá di I/O Dato che l algoritmo é ricorsivo, per determinarne la complessitá d I/O scriveremo la seguente relazione di ricorrenza. { Θ ( T (, M, = M 8 T ( 4, M, + Θ ( > M La complessitá di I/O nel caso base é lineare ed é dovuta al trasferimento di X e Y in RAM e di Z su disco. Per quanto riguarda la composizione della relazione di ricorrenza, abbiamo 8 chiamate ricorsive ciascuna per sottoproblema di taglia 4 ; resta da valutare il costo per le permutazioni di X e Y in modo che le sottomatrici siano memorizzate in row major e il costo per la memorizzazione del risultato anch esso in row major. In entrambi i casi, possiamo dire che si tratta di un problema semplice da risolvere: é sufficiente un numero costante di letture e scritture delle matrici in questione. Per questo motivo, la complessitá é Θ (. Risolviamo in modo iterativo la ricorsione, nell ipotesi >> M: T (, M, = 8 T ( 4, M, + Θ ( = 8 2 T (, M, + 2 Θ ( ( Θ = 8 3 T (, M, Θ ( ( Θ ( + Θ =... = 8 h T (, M, + Θ ( 4 h h 1 i=0 2i = 8 h Θ ( ( 4 h + Θ h 1 i=0 2i = Θ ( h i=0 2i 3

4 con h tale che 4 h M (caso base, ossia con h = log 2 M 2. Vediamo immediatamente che h i=0 2i Θ ( ( 2 h Θ M La complessitá di I/O é dunque pari a Θ ( M ell ipotesi M la complessitá di I/O risulta, invece, pari a Θ (. Combinando i due casi in un unica formula, otteniamo Θ ( ( T (, M, Θ M. M > M ossia T (, M, Θ ( min (, M Θ ( ( 1 + M Analisi del work Come per la complessitá di I/O, essendo l algoritmo ricorsivo, definiamo innanzittutto la relazione di ricorrenza per il lavoro svolto dall algoritmo. Ricordiamo che Θ ( n 2 e che l algoritmo usato per il prodotto di matrici in RAM é l algoritmo banale con complessitá Θ ( n 3, per cui ne deriva che Θ ( n 3 ( Θ 3 2. W (, M, = { ( Θ 3 2 M 8 W ( 4, M, + Θ ( > M Come prima, risolviamo la relazione di ricorrenza mediante il metodo iterativo: W (, M, = 8 W ( 4, M, + Θ ( = 8 2 W T (, M, + 2 Θ ( + Θ ( 4 2 = 8 3 W T ( 4 3, M, Θ ( + 2 Θ ( + Θ ( =... = 8 h W T ( 4 h, M, + Θ ( h 1 i=0 2i Esattamente come nell analisi della complessitá di I/O, ci fermiamo ad h = log 2 M 2, per cui 4

5 ( W (, M, Θ h 1 i=0 2i + 8 t M 3 2 ( Θ M M 3 M ( Θ M Otteniamo cosí il seguente risultato finale: ( W (, M, Θ 3 2 É interessante notare come la complessitá sia dominata dalla moltiplicazione delle rispettive sottomatrici, ossia dal caso base, anziché dalla ricorsione. 1.1 ote sulla programmazione in C Come é giá noto dal corso di Sistemi Operativi, per poter accedere ad un file su disco, e quindi per poter fare operazioni di input/output su di questo, si usa chiamare la seguente funzione di libreria: int open(const char *pathname, int flags; int open(const char *pathname, int flags, mode_t mode; cosí definita, almeno in ambiente UIX/Linux; equivalentemente nel sistema di Redmond si puó utilizzare la API: HADLE CreateFile( LPCTSTR lpfileame, DWORD dwdesiredaccess, DWORD dwsharemode, LPSECURITY_ATTRIUTES lpsecurityattributes, DWORD dwcreationdisposition, DWORD dwflagsandattributes, HADLE htemplatefile; La funzione open viene servita dalla syscall sys open( del SO che riceve come parametri il percorso del file da aprire, alcuni flag e una bit mask di permessi opzionale. É il kernel, quindi, a gestire il flusso dei dati dal disco alla memoria e viceversa. Una delle tecniche usata dai SO é quella di avere una disk cache in RAM che funziona in modo simile alla cache memory del processore: viene mantenuta, allo stesso modo, una tabella dei blocchi dei file contenuti in RAM. Quando si esegue un operazione di read il kernel controlla se la posizione di lettura contenuta in RAM nella disk cache, in caso di miss richiede la posizone dal disco caricando il blocco che la contiene. Esiste un meccanismo di caching anche per la scrittura dei dati su disco chiamato a volte delayed write. 5

6 Le funzioni sopra riportate permettono per di evitare il meccanismo intermedio di caching specificando opportuni flag. In ambiente UIX/Linux si deve specificare il flag O DIRECT che permette il trasferimento diretto dei dati di IO senza il kernel buffering, mentre in ambiente win32 é necessario impostare il parametro dwflagsandattributes alla costante FILE- FLAG O UFFERIG. Riguardo all uso di questo flag, Microsoft segnala la necessitá di inserirlo in un programma robusto e incoraggia a gestire con ogni riguardo la memoria stando attenti agli allineamenti e alle dimensioni dei blocchi da scrivere su e verso disco. 2 Indexing Argomento centrale di questo nuovo capitolo é l indexing, ossia quella tecnica che permette l accesso veloce ai dati di grandi collezioni. Prima di entrare nel vivo della trattazione é necessario affrontare alcune definizioni appartenenti all area delle basi di dati. Definizione 1 Un record é una tupla di valori per attributi associati a domini specifici. Definizione 2 C é una collezione di record. Ad esempio, nel modello relazionale una tabella popolata da un numero non nullo di tuple costituisce una collezione. Quando C é molto grande, essa viene memorizzata su disco dopo esser stata ordinata in base a una qualche chiave 1. elle basi di dati l ordinamento é in funzione della chiave primaria. Definizione 3 Una chiave é un sottoinsieme di attributi sui quali é possibile definire un ordinamento totale. Per esempio, supponendo di avere la seguente tabella studente (Matricola, Cognome, ome, Dataascita due possibili chiavi sono {Matricola} oppure {Cognome, ome, Dataascita}, nella ipotesi di non ammettere dei duplicati. el caso in cui questo non fosse vero 2, é possibile definire la chiave {Cognome, ome}. Osservazione: il significato di chiave utilizzato in questo contesto é diverso da quello proprio dell Information Retrieval. Gli indici definiti su una tabella di dati strutturati hanno il ruolo di aumentare l efficienza dell accesso ai dati, mentre quelli definiti su una collezione di dati non strutturati (é il caso del Reperimento dell Informazione hanno il ruolo di permettere un accesso efficacie. Infatti, una tupla é sempre reperibile da una tabella anche se nessun indice é stato definito in corrispondenza ad una chiave. el secondo caso, invece, non é possibile reperire alcun documento da una collezione se prima la collezione stessa non é stata indicizzata. 1 La definizione di chiave é successiva a quella di collezione. 2 Rispetto al modello relazionale, in questo contesto si permette la presenta di duplicati in una tabella 6

7 Definizione 4 Un indice per C rispetto ad una chiave K é una struttura dati che per ogni insieme di valori degli attributi della chiave K permette di ritrovare il record o i record con quei valori di chiave (se esitono, e che supporta anche le operazioni di: inserimento di un nuovo record; cancellazione di un record; (opzionale range query: trova tutti i record con i valori di chiave in un certo intervallo; (opzionale next: restituisce il record successivo a quello appena trovato in base alla chiave K, ovvero il record in C con il successivo valore della chiave (indipendentemente da come la collezione é organizzata su disco. Un indice quindi é molto simile ad un dizionario ma ha delle funzionali in piú. Si distinguono di seguito diversi tipi di indice. Definizione 5 Un indice si dice primario se C é ordinata su disco in base a K (chiave dell indice. Dato quindi un valore della chiave k (k K l indice restituisce il blocco contenente il primo record (se esiste con chiave k. Definizione 6 Un indice si dice secondario se C é ordinata su disco in base a una chiave K diversa dalla chiave K dell indice. É possibile distinguere due casi, diversi tra loro per l output restituito dall operazione di ricerca sull indice: K non ammette duplicati: dato un valore k K l indice dovrá restituire il blocco che contiene l unico record (se esiste con chiave k; K ammette duplicati: data un valore k K l indice dovrá restituire un blocco o una lista di blocchi contenente i puntatori a tutti i blocchi con record di C con chiave k. La seguente figura rappresenta la collezione C come tabella. Sia nel caso in cui la chiave k ammetta duplicati sia nel caso in cui non li ammetta, i record con chiave k potrebbero non essere consecutivi su disco. Mediante la ricerca con indice secondario, data la chiave k, é possibile ottenere i puntatori ai blocchi su disco che contengono i record con chiave k. Se questi record fossero tanti, i puntatori potrebbero non stare in un singolo blocco e sarebbe necessario organizzarli in una lista di blocchi, introducendo quindi uno o piú livelli di indirezione. Facciamo un esempio. Richiamando il problema precedente della collezione Studenti, possiamo avere i record ordinati in base al numero di matricola e quindi avere come indice primario l attributo Matricola. L indice secondario, invece, potrebbe essere definito sugli attributi ome e Cognome. Solitamente, gli indici primari vengono creati automaticamente dal DMS, associandoli alla chiave primaria della relazione. A ogni modo é sempre possibile richiedere al sistema 7

8 Figure 2: Indice secondario: K ammette duplicati di gestione di creare degli indici secondari per permettere all utente un accesso piú veloce attraverso altre chiavi. La struttura dati piú utilizzata per gli indici secondari 3 é il + tree. Per gli indici primari, spesso, si preferisce ricorrere alle tabelle hash. ibliografia [AV88] A. Aggarwal and J.S. Vitter. The input/output complexity of sorting and related problems. Communications of the ACM, 31(9: , [CLR90] T.H. Cormen, C.E. Leiserson, and R.L. Rivest. Introduction to Algorithms. McGraw-Hill, ew York Y, [PCG01] [C05] The PC Guide, Versione 2.2.0, Sito web D. ovet, M. Cesati. Understanding the Linux Kernel 3rd edition. O Reilly Media, Inc, A volte anche per gli indici primari 8

1 Trasposizioni di matrici

1 Trasposizioni di matrici Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 15 maggio 2006 Argomento: Trasposta di una matrice Scribes: Simone Favaro, icola Gumiero e Giulio Triani 1 Trasposizioni di matrici Abbiamo

Dettagli

1 Località negli algoritmi di ordinamento e trasposizione di una matrice

1 Località negli algoritmi di ordinamento e trasposizione di una matrice Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 16 maggio 2006 Argomento: Località spaziale,temporale e trasformata di Fourier Scribes: Daniele unarin e Luca Spataro 1 Località negli algoritmi

Dettagli

1 Introduzione. 2 Merge Sort

1 Introduzione. 2 Merge Sort Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 8 maggio 2006 Argomento: Algoritmi di ordinamento nel Disk odel: ergesort e ulti-way ergesort con analisi della complessitá di I/O e work.

Dettagli

1 Algoritmo per la ChunkTranspose (CT)

1 Algoritmo per la ChunkTranspose (CT) Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 11 maggio 2006 Argomento: Trasposizione di matrici Scribes: Mario ardini, Fabio Dalla Libera e Diego Pizzocaro 1 Algoritmo per la ChunkTranspose

Dettagli

PROVA SCRITTA 23 MARZO 2010

PROVA SCRITTA 23 MARZO 2010 PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa

Dettagli

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

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System 1 Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i

Dettagli

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

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

Dettagli

Organizzazione Fisica dei Dati (Parte II)

Organizzazione Fisica dei Dati (Parte II) Modello Fisico dei Dati Basi di Dati / Complementi di Basi di Dati 1 Organizzazione Fisica dei Dati (Parte II) Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Modello Fisico

Dettagli

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Il file È un insieme di informazioni: programmi. Il File System. Il file system Il File System Il file È un insieme di informazioni: programmi d a t i testi rappresentati come insieme di record logici (bit, byte, linee, record, etc.) Ogni file è individuato da (almeno) un nome simbolico

Dettagli

Il file system. Il File System. Il file È un insieme di informazioni: programmi dati testi

Il file system. Il File System. Il file È un insieme di informazioni: programmi dati testi Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Il File System Realizza i concetti

Dettagli

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti Ricorsione La ricorsione è un approccio per la risoluzione

Dettagli

CAPITOLO 2. Divide et Impera

CAPITOLO 2. Divide et Impera CAPITOLO 2 Divide et Impera In questo capitolo discuteremo alcuni algoritmi progettati mediante la tecnica di progettazione del Divide et Impera. Algoritmi progettati usando questa tecnica consistono di

Dettagli

Architettura dei calcolatori e sistemi operativi. Input Output. IO 3 Device driver

Architettura dei calcolatori e sistemi operativi. Input Output. IO 3 Device driver Architettura dei calcolatori e sistemi operativi Input Output IO 3 Device driver Device driver - gestori delle periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi

Dettagli

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Gestione ed Elaborazione di Grandi Moli di Dati. Scritto 29/08/2006: SOLUZIONI

Gestione ed Elaborazione di Grandi Moli di Dati. Scritto 29/08/2006: SOLUZIONI Gestione ed Elaborazione di Grandi Moli di Dati Scritto 29/08/2006: SOLUZIONI Gest. ed Elab. di Grandi Moli di Dati: Scritto 29/08/2006 Problema. Con riferimento ai sistemi di dischi RAID a. Definire le

Dettagli

Esercizio. 2 i=i*2) j=j*2)

Esercizio. 2 i=i*2) j=j*2) Esercizio 1 Esercizio 2 i=i*2) j=j*2) Soluzione Il frammento è composto da due parti quasi identiche. L unica differenza è il modo in cui crescono i contatori. Nella prima parte la crescita è lineare mentre

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome

Dettagli

Struttura interna del sistema operativo Linux

Struttura interna del sistema operativo Linux Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04

Dettagli

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione Informatica Generale Andrea Corradini 14 - Algoritmi: ordinamento per inserimento e ricorsione Sommario Un algoritmo iterativo: l'ordinamento per inserimento (insertion sort) La ricorsione: i numeri triangolari

Dettagli

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo

Dettagli

Laboratorio di Algoritmi

Laboratorio di Algoritmi Laboratorio di Algoritmi Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 8.30-10.30 in aula 3 Mercoledì 10.30-12.30 in Aula 2 Giovedì 8.30-10.30 in

Dettagli

Basi di dati. Gabriella Trucco

Basi di dati. Gabriella Trucco Basi di dati Gabriella Trucco gabriella.trucco@unimi.it Algebra relazionale Definizione: insieme di operazioni (query) che servono per manipolare relazioni (tabelle). Formalizzazione matematica del modo

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)

Dettagli

Memorizzazione di una relazione

Memorizzazione di una relazione Heap file File ordinati Indici o Hash o B+-tree Costo delle operazioni algebriche Simboli: NP: numero di pagine NR: numero record LP: lunghezza pagina LR: lunghezza record Memorizzazione di una relazione

Dettagli

Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista

Esercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 11 Esercitazione: 27 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo del numero di

Dettagli

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio Relazioni e tabelle Introduzione alle Basi di Dati Relazionali Nelle Basi di Dati relazionali le informazioni sono organizzate in tabelle Le tabelle sono rappresentate mediante griglie suddivise in colonne

Dettagli

Note per la Lezione 6 Ugo Vaccaro

Note per la Lezione 6 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,

Dettagli

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con

Dettagli

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Criteri da tenere a mente

Criteri da tenere a mente 2 Alcune considerazioni sul progetto di soluzioni software Criteri da tenere a mente Lo stile di programmazione è importante leggibilità (commenti / nomi significativi di variabili / indentazioni /...)

Dettagli

Sommario della lezione:

Sommario della lezione: Sommario della lezione: Metodologie per il progetto di algoritmi: La Tecnica Divide et Impera Esempi di applicazione a: Ricerca del massimo e minimo di una sequenza di numeri Calcolo di potenze di numeri

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 matricole congr. 0 mod 3 I/O non bufferizzato System Call open close read write lseek 2 1 file descriptor sono degli interi non negativi il kernel assegna un file descriptor

Dettagli

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:

Dettagli

Pag Politecnico di Torino 1

Pag Politecnico di Torino 1 Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,

Dettagli

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.

Premessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1. Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma

Dettagli

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2 INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato

Dettagli

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica D B M G 2 Pag. 1 2007 Politecnico di Torino 1 D B M G Organizzazione

Dettagli

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, nè in C++, etc. ). Di tutti gli

Dettagli

Ricerca di Massimo e Minimo di un Array

Ricerca di Massimo e Minimo di un Array Universitá degli Studi di Salerno Corso di Introduzione agli Algoritmi e Strutture Dati Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/18 Ricerca di Massimo e Minimo di un Array Problema. Trova l elemento di

Dettagli

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash Funzioni Hash Sommario Tabelle ad indirizzamento diretto e hash Funzioni Hash Requisiti Metodo della divisione Metodo della moltiplicazione Funzione Hash Universale La ricerca Talvolta si richiede che

Dettagli

Nozioni di base (II Parte)

Nozioni di base (II Parte) Nozioni di base (II Parte) 1 Ricorsione [GTG14, Par. 5.1-5.4 and 13.1] Algoritmo Ricorsivo: algoritmo che invoca se stesso (su istanze sempre più piccole) sfruttando la nozione di induzione. La soluzione

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi

LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un

Dettagli

FILE E INDICI Architettura DBMS

FILE E INDICI Architettura DBMS FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le

Dettagli

Informatica. appunti dalla lezione del 13/12/2011

Informatica. appunti dalla lezione del 13/12/2011 Informatica appunti dalla lezione del 13/12/2011 Iterazione vs ricorsione Ogni algoritmo ricorsivo può essere riscritto in forma iterativa: tipicamente con un ciclo for o un ciclo while, e senza che nel

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base

Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile

Dettagli

I supporti utilizzati per il tertiary storage sono magnetici (ad esempio nastri magnetici) oppure ottici (ad esempio CD-ROM, DVD).

I supporti utilizzati per il tertiary storage sono magnetici (ad esempio nastri magnetici) oppure ottici (ad esempio CD-ROM, DVD). Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 4 maggio 2006 Argomento: Tertiary Storage Scribes: Francesco Pasqualotto, Erik Squizzato e Michele Stecca 1 Tertiary Storage Gli scopi del

Dettagli

Algoritmi di ordinamento (I parte)

Algoritmi di ordinamento (I parte) (I parte) Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Definizione formale del problema Input:! Una sequenza di n numeri Output:! Una permutazione

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees

Databases. Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Databases Architettura di un DBMS: Struttura ad indice per i files, B + -Trees Indici Un indice consiste di coppie e supporta l efficiente recupero di tutte le etichette con chiave

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Lezione 1 Concetti generali

Lezione 1 Concetti generali Inizio contenuto della pagina. Lezione 1 Concetti generali Introduzione Microsoft Access è un programma per la gestione di database relazionali sviluppato da Microsoft. Un database (in italiano "base di

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini Note ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi

Dettagli

Metodi di Join. Corso di Basi di Dati e Sistemi Informativi

Metodi di Join. Corso di Basi di Dati e Sistemi Informativi Metodi di Join Corso di Basi di Dati e Sistemi Informativi 1 Preliminari L operazione di join si usa nel modello relazionale per combinare tuple di diverse tabelle sulla base di certe condizioni. In seguito,

Dettagli

La ricorsione. Sommario. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

La ricorsione. Sommario. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino La ricorsione Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario! Definizione di ricorsione e strategie divide et impera! Semplici algoritmi ricorsivi! Merge

Dettagli

In questa lezione Alberi binari di ricerca

In questa lezione Alberi binari di ricerca In questa lezione Alberi binari di ricerca!1 Dizionari Un dizionario è una struttura dati costituita da un insieme con le operazioni di inserimento, cancellazione e verifica di appartenenza di un elemento.

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore

Dettagli

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C:

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C: Fondamenti Informatica B Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2 Esercizio 1 tema 1 Siano date le seguenti definizioni di costanti e tipi in linguaggio C: #define MAX_LENGTH 40

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree

Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina) Esercizi su Alberi Binari di Ricerca e (2,4)-Tree Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Scrivere una versione iterativa di TreeSearch con la stessa

Dettagli

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 6 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Funzioni che restituiscono tuple di valori Le funzioni Python possono

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

definire definire una una funzione in termini di se stessa compare una chiamata alla funzione stessa identificare un caso base

definire definire una una funzione in termini di se stessa compare una chiamata alla funzione stessa identificare un caso base Funzioni e Ricorsione La ricorsione consiste nella possibilità di definire una funzione in termini di se stessa Nel codice di una funzione ricorsiva compare una (o più di una) chiamata alla funzione stessa

Dettagli

definire definire una una funzione in termini di se stessa compare una chiamata alla funzione stessa identificare un caso base

definire definire una una funzione in termini di se stessa compare una chiamata alla funzione stessa identificare un caso base Funzioni e Ricorsione La ricorsione consiste nella possibilità di definire una funzione in termini di se stessa Nel codice di una funzione ricorsiva compare una (o più di una) chiamata alla funzione stessa

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Algoritmo di ordinamento sul posto che ha tempo di esecuzione :

Algoritmo di ordinamento sul posto che ha tempo di esecuzione : QuickSort Algoritmo di ordinamento sul posto che ha tempo di esecuzione : - O(n 2 ) nel caso peggiore - O(n log n) nel caso medio Nonostante le cattive prestazioni nel caso peggiore, rimane il miglior

Dettagli

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il

Dettagli

Organizzazione fisica dei dati

Organizzazione fisica dei dati Organizzazione fisica dei dati Appunti dalle lezioni SQL come DDL Sistemi informativi e basi di dati La Progettazione Concettuale SQL come DML Il modello relazionale La Progettazione Logica SQL come DCL

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli

Gli algoritmi e la loro complessità

Gli algoritmi e la loro complessità Gli algoritmi e la loro complessità Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Algoritmo Un algoritmo è una procedura di calcolo (eventualmente composta da un certo numero di passi)

Dettagli

INTRODUZIONE ALLE BASI DATI RELAZIONALI

INTRODUZIONE ALLE BASI DATI RELAZIONALI INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Laboratorio di Python

Laboratorio di Python Documentare il codice,, Comprendere cosa calcola una funzione Università di Bologna 20 e 22 marzo 2013 Sommario 1 2 3 4 o Scrivere un programma che sia in grado di calcolare le seguenti serie: la somma

Dettagli

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved Capitolo 9 Sistemi di basi di dati 2007 Pearson Addison-Wesley. All rights reserved Capitolo 9: Sistemi di basi di dati 9.1 Definizione di Sistemi di Basi di Dati 9.2 Modello relazionale 9.3 Basi di dati

Dettagli

Modulo 13: System call relative al File System

Modulo 13: System call relative al File System Modulo 13: System call relative al File System Chiamate di sistema relative ai file Restituzione descrittore Uso di namei Assegnazione inode Attributi I/O File System Struttura Manipolazione open creat

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Moltiplicazione veloce di interi

Moltiplicazione veloce di interi Moltiplicazione veloce di interi Ogni numero intero w di n cifre può essere scritto come 10 n/2 w s + w d w s indica il numero formato dalle n/2 cifre più significative di w w d denota il numero formato

Dettagli

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè

Dettagli

Sommario della Lezione

Sommario della Lezione Sommario della Lezione Analisi di Algoritmi Ricorsivi: Come esprimere la complessitá di algoritmi ricorsivi mediante relazioni di ricorrenza Come derivare le relazioni di ricorrenza Come risolvere le relazioni

Dettagli

ELEMENTI DI INFORMATICA. Linguaggio C

ELEMENTI DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

Parte 6 Esercitazione sull accesso ai file

Parte 6 Esercitazione sull accesso ai file Gestione dei dati Parte 6 Esercitazione sull accesso ai file Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/

Dettagli

Lezione 6: 12 Novembre 2013

Lezione 6: 12 Novembre 2013 Tutorato di Algoritmi e Strutture Dati [CT0371] Tutor: Alberto Carraro Lezione 6: 12 Novembre 2013 Disclaimer: Queste note non sono state sottoposte al consueto controllo riservato alle pubblicazioni ufficiali.

Dettagli

LEZIONE BASI DI DATI I 22/10/2008 XML

LEZIONE BASI DI DATI I 22/10/2008 XML LEZIONE BASI DI DATI I 22/10/2008 XML Il linguaggio XML (Extended Markup Language) è uno standard per la strutturazione dei dati sul web. A differenza di html, che è utilizzato per formattare documenti

Dettagli

Informatica e Bioinformatica: Circuiti

Informatica e Bioinformatica: Circuiti Date TBD Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle viste nella lezione precedente). Un sistema operativo

Dettagli

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita

n n 1 n = > Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita Il calcolo del fattoriale La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita n! = 1 n( n 1)! se se n n = > 0 0 dove n è un numero intero non negativo Il calcolo del fattoriale

Dettagli

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 7 luglio 2005 Esercizio 1 (punti 2) Considerare la rappresentazione dei numeri relativi su 10 bit in complemento a

Dettagli

Il teorema di Rouché-Capelli

Il teorema di Rouché-Capelli Luciano Battaia Questi appunti (1), ad uso degli studenti del corso di Matematica (A-La) del corso di laurea in Commercio Estero dell Università Ca Foscari di Venezia, campus di Treviso, contengono un

Dettagli

Architettura dei sistemi di elaborazione: La memoria (parte 2)

Architettura dei sistemi di elaborazione: La memoria (parte 2) Architettura dei sistemi di elaborazione: La memoria (parte 2) La cache è una memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale. Memoria Cache La cache e la memoria principale

Dettagli

Compito di Informatica Grafica 2 appello 02/02/2009. Nome e Cognome Numero di Matricola

Compito di Informatica Grafica 2 appello 02/02/2009. Nome e Cognome Numero di Matricola Nome e Cognome Numero di Matricola Esercizio 1 (12 punti) Si consideri la base di dati di un ospedale riportata in figura. Ogni Operatore ha una Qualifica che può essere o medico o infermiere. Ogni operatore

Dettagli

Ambienti di Programmazione per il Software di Base

Ambienti di Programmazione per il Software di Base Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base

Dettagli