Fondamenti di informatica II
|
|
- Rosalia Pizzi
- 5 anni fa
- Visualizzazioni
Transcript
1 A09 41
2
3 Paolino Di Felice Quaderno di Fondamenti di informatica II ARACNE
4 Copyright MMIV ARACNE editrice S.r.l. editrice.it editrice.it via Raffaele Garofalo, 133 A/B Roma redazione: (06) telefax amministrazione: (06) ISBN I diritti di traduzione, di memorizzazione elettronica, di riproduzione e di adattamento anche parziale, con qualsiasi mezzo, sono riservati per tutti i Paesi. Non sono assolutamente consentite le fotocopie senza il permesso scritto dell Editore. I edizione: novembre 2004
5 Indice del volume Presentazione Parte I: Requisiti dei programmi 1. correttezza 2. efficienza temporale - modello dei costi - t(n), O(g(n)) - analisi dei programmi iterativi - metodo del conteggio delle frequenze - regola della somma e del prodotto - analisi dei programmi ricorsivi - le equazioni di ricorrenza 3. efficienza spaziale - s(n), O s (g(n)) Parte II: Tecniche di rappresentazione dei dati e strutture dati fondamentali 1. Liste 2. Pile 3. Code 4. Matrici sparse 5. Insiemi 6. Grafi 7. Alberi Parte III: Algoritmi fondamentali 1. Operazioni sulle liste 2. Operazioni sulle matrici sparse 3. Operazioni sugli insiemi 4. Operazioni sui grafi 5. Operazioni sugli alberi binari e alberi binari di ricerca 5
6 MOTIVAZIONI ED OBIETTIVI DI QUESTE NOTE Lo studio di buoni libri rimane un momento formativo unico ed insostituibile che ogni docente si sente in dovere di raccomandare ai suoi allievi. Purtroppo, con l avvento del Nuovo Ordinamento degli studi (la cosiddetta laurea 3+2 ), si assiste ad un fenomeno di larghissime proporzioni in cui i discenti studiano esclusivamente su magri appunti, talvolta persino non scritti di loro pugno. Le motivazioni da essi addotte sono molteplici, su tutte la seguente risulta essere prevalente: la nuova laurea ha reso molto stringenti le fasi di studio a carico degli allievi delle facoltà di Ingegneria esposti, in genere, allo stesso numero di esami del Vecchio Ordinamento, ma spalmati su di un triennio e non già sugli originali 5 anni. La motivazione a scrivere queste note è la speranza personale di venire incontro alle esigenze degli studenti offrendo loro del materiale di studio che si colloca a metà strada tra i voluminosi testi di informatica disponibili sul mercato e i magri appunti di cui sopra. L Aracne editrice, con la collona delle microtirature, ha offerto all Autore un ulteriore motivazione mancante nei precedenti anni accademici: il costo basso. Mi sento in dovere di ringraziarla a nome dei miei allievi. Questo volume raccoglie molta parte del materiale dell insegnamento denominato Fondamenti di Informatica II (FI2) nel Manifesto degli Studi degli allievi del Corso di Laurea triennale in Ingegneria Informatica ed Automatica. L obiettivo di FI2 è fornire un'ampia rassegna critica di strutture dati e algoritmi fondamentali nella soluzione automatica di problemi, unitamente ai metodi di analisi delle prestazioni dei programmi e loro sviluppo e messa a punto. Il linguaggio usato nella scrittura dei programmi è il C++ introdotto a Fondamenti d Informatica I. Il materiale qui raccolto è il punto di arrivo di tanti anni di insegnamento di FI2 e di altri analoghi previsti nel vecchio ordinamento tenuti dall Autore presso la Facoltà di Ingegneria dell Università degli Studi dell Aquila, sin dal Strutturalmente, il materiale è suddiviso in tre parti di seguito descritte in sufficiente dettaglio. PARTE I - Requisiti dei programmi Obiettivi: Discussione dei principali requisiti che ogni buon programma deve possedere, quindi ci si sofferma su uno di essi: l'efficienza spazio-temporale, fornendo metodi generali per la sua valutazione tanto per i programmi iterativi che ricorsivi. 6
7 Contenuti: Il metodo dei dati di prova, i livelli di correttezza. Analisi dei programmi: efficienza spaziale e temporale dei programmi. L'efficienza temporale: il modello dei costi per i costrutti presenti nei linguaggi ad alto livello (il caso del C++), la funzione costo temporale (t(n)), la dimensione dell'input (n), la configurazione dell'input (caso peggiore, medio e migliore). La complessità computazionale dei programmi: la notazione O(g(n)). Un metodo per la determinazione della t(n): il conteggio delle frequenze. Il passaggio dalla t(n) alla O(g(n)). Un teorema che governa tale passaggio nel caso di funzioni costo di tipo polinomiale. Il metodo per la determinazione diretta della O(g(n)) basato sulla regola della somma e del prodotto. Determinazione della t(n) nel caso di codici ricorsivi. L'efficienza spaziale: la funzione costo spaziale (s(n)) e la notazione O s (g(n)). Studio di casi. PARTE II Tecniche di rappresentazione fondamentali dei dati e strutture dati Obiettivi: a) introduce le tecniche di rappresentazione, nella memoria centrale del calcolatore, delle principali strutture discrete che intervengono nella modellazione dei dati coinvolti nella soluzione automatica di problemi rilevanti; b) ne mostra la realizzazione (le strutture dati -- SD) in C++; c) analisi critica dell occupazione di memoria causata dalle diverse soluzioni proposte. Contenuti: Liste: rappresentazione tramite array (r. sequenziale), r. tramite puntatore in avanti (r. collegata), r. tramite puntatore in avanti e indietro (r. collegata simmetrica). Pile: rappresentazione tramite array (r. sequenziale), r. tramite puntatori (r. collegata). Code: rappresentazione tramite array (r. sequenziale), r. tramite puntatori (r. collegata). Matrici sparse: rappresentazione compatta a 3 informazioni (r.1) e r. tramite vettore di accesso (r.2) (r. sequenziali), r. compatta a 3 informazioni (r.3) e r. tramite vettore di accesso mediante l uso di puntatori (r.4) (r. collegate), r. compatta tramite doppio vettore di accesso mediante l uso di puntatori (r.5). Insiemi: rappresentazione tramite array (r. sequenziale), r. tramite puntatori (r. collegata). 7
8 Grafi: rappresentazione tramite matrice delle adiacenze, r. compatta tramite vettore di accesso dinamico della matrice delle adiacenze (alias, liste dei successori). Alberi: rappresentazione tramite puntatori (r. collegata) di alberi binari ed ennari. PARTE III Algoritmi fondamentali e loro codifica Obiettivi: a) passa in rassegna i principali algoritmi noti per la soluzione di problemi classici dell'informatica quali: la visita di grafi ed alberi, l'ordinamento di un insieme di valori, la ricerca di un elemento in un insieme di valori e/o in un albero binario di ricerca, la fusione di sequenze ordinate, l unione di insiemi, ecc; b) ne discute la soluzione C++ ed i relativi costi computazionali. Contenuti: Operazioni sulle liste (creazione, aggiunta di un atomo, estrazione del primo atomo, test di appartenenza di un atomo ad una lista, stampa atomi, stampa bidirezionale atomi, concatenazione di due liste, fusione di due liste, conteggio atomi con medesimo valore su due liste distinte, inversione atomi lista). Operazioni sulle pile (creazione, stampa atomi, conta atomi, aggiunta/ eliminazione atomo). Operazioni sulle code (creazione, stampa atomi, conta atomi, aggiunta/ eliminazione atomo, concatenazione di due code). Operazioni sulle matrici sparse (leggi/stampa matrice, cerca massimo/ minimo valore, aggiorna valore, permuta righe, somma). Operazioni sugli insiemi (creazione, stampa elementi, unione/differenza/ intersezione di due insiemi, ricerca esaustiva di un valore, ricerca binaria iterativa/ricorsiva di un valore, ordinamento dei valori di un insieme: algoritmo a bolle, per selezione e merge-sort). Operazioni sui grafi (creazione e stampa di un grafo, aggiunta/eliminazione di un nodo/ramo, visita in profondità di un grafo, grado di ingresso/uscita di un nodo). Operazioni sugli alberi binari e alberi binari di ricerca (visita in preordine, postordine e simmetrica, ricerca di un elemento, stampa in notazione parentetica dei nodi, cancella albero). L Autore Estate
9 PARTE I REQUISITI DEI PROGRAMMI L obiettivo di ogni progettista di programmi (brevemente P nel seguito delle presenti note) è scriverne di buoni. Molto semplicemente si può affermare che P è buono se possiede buoni requisiti. Tra i numerosi requisiti meritano una menzione esplicita i seguenti: la leggibilità, la correttezza, la robustezza e l efficienza. In questa Prima Parte, dopo aver accennato alla leggibilità, ci si sofferma in dettaglio crescente sugli altri tre. Si desidera sin da ora sottolineare che nell economia del Corso di Fondamenti di Informatica 2, l efficienza ha un ruolo di assoluto rilievo. 9
10 1. LEGGIBILITÀ Per leggibilità di un P s intende la sua intrinseca proprietà di agevolare la comprensione, in ogni momento, delle scelte progettuali (sia in termini di strutture dati che di algoritmo) che sono alla sua base. Alcune regole per tenere alta la leggibilità dei programmi 1. Adottare una saggia articolazione di P in sottoprogrammi; 2. commentare adeguatamente ogni sottoprogramma (cosa fa e come lo fa); 3. indentare il codice; 4. usare identificatori auto-esplicativi. 2. CORRETTEZZA Definizione P è corretto se aderisce alle specifiche di progetto. Le specifiche di progetto di un P riguardano: - i vincoli sui dati iniziali, ossia i dati leciti per la sua attivazione (dati di input), - i vincoli sul risultato, ossia i risultati attesi al termine dell esecuzione di P (dati di output). Dunque: - le specifiche di input caratterizzano l insieme dei dati d ingresso, mentre - le specifiche di output caratterizzano l insieme dei risultati possibili. Per verificare la correttezza di un P esistono due percorsi alternativi: un metodo teorico e il metodo cosiddetto dei dati di prova. METODO TEORICO Esso consiste nel dimostrare che, a partire da dati di input leciti per P, l esecuzione di P produce dati di output corretti. Causa la difficoltà e la lentezza intrinseca dell approccio formale, nella realtà la prova di correttezza non viene effettuata, specie nel caso di P lunghi e complessi, ossia proprio in quelle situazioni ove maggiore è l esigenza di controllare l attendibilità del programma. Un altro punto a sfavore del metodo teorico è il seguente. La definizione di correttezza di un programma non specifica quale debba essere il suo comportamento quando i dati d ingresso su cui esso viene eseguito non 10
11 soddisfano le specifiche di input. Questa indeterminatezza non tiene conto del fatto che nella maggioranza delle applicazioni si richiede che il programma sia in grado di rilevare e trattare adeguatamente eventuali anomalie presenti nei dati d ingresso. Infatti, se questo non si verifica, può accadere che il programma termini fornendo dei risultati che di fatto non sono significativi. E a questo punto che interviene la nozione di robustezza di P, intesa come la capacità di P di operare in maniera prevedibile anche in quei casi in cui esso viene attivato con dati non conformi alle specifiche di input. 2.1 METODO DEI DATI DI PROVA (/TEST) L esito di una prova formale di correttezza (metodo teorico) può essere positivo o negativo. Se positivo, allora P è corretto, e se è negativo? Purtroppo il metodo formale (ed in generale tutti i metodi che poggiano su una dimostrazione) non ammette mezze tinte, gli unici colori conosciuti sono: bianco (ossia, prova ok e quindi P ok), oppure nero (ossia, prova ko e quindi P ko). Di seguito si presenta un approccio più pragmatico al problema della correttezza, il quale riunisce in sé le nozioni di correttezza e di robustezza dei programmi. Detto metodo persegue la correttezza del programma eseguendolo. I dati utilizzati nell attivazione di P sono detti dati di prova (/di test), ed il metodo è detto metodo dei dati di prova (/test). Il test di un programma consiste nei seguenti passi: 1. si procede alla determinazione di un insieme di dati di input I; 2. si esegue il programma con i dati in I; 3. si verificano i risultati ottenuti: 3.1. se l esecuzione del programma non termina in un lasso di tempo ragionevole o se i risultati ottenuti dalla sua esecuzione non sono quelli attesi, allora il programma non è corretto. Si noti che, generalmente, il test di un programma non permette di stabilirne la correttezza, a meno che non vengano provate tutte le possibili istanze dei dati d ingresso. Infatti, se eseguiamo il programma con un sottoinsieme dei possibili input non possiamo escludere che esista un insieme di dati, che non è stato provato, che ne evidenzi errori. Sfortunatamente la prova di un programma con tutti i possibili dati d ingresso è praticamente impossibile nella maggioranza dei casi reali. Si faccia ad esempio riferimento ad una funzione che calcola il prodotto di due interi compresi tra e : 11
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti
Edmond Çali. Poesie senza titolo ARACNE
Poesia Aracne 7 Edmond Çali Poesie senza titolo ARACNE Copyright MMIV ARACNE editrice S.r.l. www.aracne editrice.it info@aracne editrice.it via Raffaele Garofalo, 133 A/B 00173 Roma redazione: (06) 72672222
Silvia Briccoli Bati, Stefano Galassi, Giovanna Ranocchiai. Elementi di calcolo automatico delle strutture intelaiatae
A08 Silvia Briccoli Bati, Stefano Galassi, Giovanna Ranocchiai Elementi di calcolo automatico delle strutture intelaiatae Il Software FrameMAKER e la relativa guida introduttiva al programma è scaricabile
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Algoritmi e Strutture Dati
Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto
Algoritmi e Strutture Dati
Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti
FONDAMENTI DI INFORMATICA - canale 1
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-1 anno FONDAMENTI DI INFORMATICA - canale 1 ING-INF/05-9 CFU - Insegnamento
Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA
Dipartimento di Ingegneria Elettrica, Elettronica e Informatica Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA Docente titolare dell insegnamento: Proff.
Gabriella Bretti Paolo Emi lio Ricci. Breve corso di Analisi numerica
A01 83 Gabriella Bretti Paolo Emi lio Ricci Breve corso di Analisi numerica Copyright MMV ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133 A/B 00173 Roma (06)
Giuseppe Chinnici Federico Giannone Giuseppe Salvati COMUNICARE LA SANITÀ PER RENDERLA A MISURA D UOMO
Giuseppe Chinnici Federico Giannone Giuseppe Salvati COMUNICARE LA SANITÀ PER RENDERLA A MISURA D UOMO Guida alla comunicazione nella sanità pubblica e privata Aracne Copyright MMIV ARACNE editrice S.r.l.
Corso di Fondamenti di Informatica e Laboratorio
Corso di Fondamenti di Informatica e Laboratorio Corsi di Laurea Ingegneria Informatica (O-Z) Corsi di Laurea Ingegneria delle Telecomunicazioni - (A-Z) (ordinamento 03) A.A. 2009-2010 Prof. Giuseppe Mangioni
FONDAMENTI DI INFORMATICA A - Co
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2018/2019-1 anno FONDAMENTI DI INFORMATICA A - Co ING-INF/05-9 CFU - Insegnamento
Algoritmi e Strutture dati a.a. 2013/2014
a.a. 2013/2014 Dr Informazioni docente E-mail docente: fdrmra@unife.it Ricevimento: Mercoledì 15:00-16:00 presso ufficio docenti a contratto (3 piano), Dipartimento di Matematica e Informatica, Campus
FONDAMENTI DI INFORMATICA - canale 4
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-1 anno FONDAMENTI DI INFORMATICA - canale 4 ING-INF/05-9 CFU - Insegnamento
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
Algoritmi e Strutture dati a.a. 2012/2013
a.a. 2012/2013 Dr Informazioni docente E-mail docente: maria.federico@unimore.it Ricevimento: Su appuntamento (inviare e-mail) 2 Informazioni lezioni Lunedì, Martedì, Mercoledì 10:30-13:30 aula INFO2 15
Algoritmi e Strutture Dati
Introduzione al corso di Algoritmi e Strutture Dati Luigi Pontieri Il nome del corso: Algoritmi e Strutture Dati Algoritmo: metodo per la risoluzione di problemi di elaborazione di informazioni, espresso
Michele Angelaccio / Berta Buttarazzi. Reti logiche. PARTE SECONDA Reti sequenziali
A09 37 Michele Angelaccio / Berta Buttarazzi Reti logiche PARTE SECONDA Reti sequenziali Copyright MMIV ARACNE EDITRICE S.r.l. www.aracneeditrice.it info@aracneeditrice.it 00173 Roma via Raffaele Garofalo,
UNIVERSITA DEGLI STUDI DI PERUGIA
UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze
Indice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
In questa lezione. Il Mergesort: primo esempio di applicazione della tecnica divide et impera analisi tempo di esecuzione del Mergesort
In questa lezione Il Mergesort: primo esempio di applicazione della tecnica divide et impera analisi tempo di esecuzione del Mergesort [CLRS] par. 2.3. Prof. E. Fachini - Intr. Alg.!1 Progettazione di
Michele Lepore. La valutazione energetica dell edificio bioclimatico
A08 16 Michele Lepore La valutazione energetica dell edificio bioclimatico Copyright MMV ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133 A/B 00173 Roma redazione:
CURVE E SUPERFICI DIFFERENZIABILI
Giulio Campanella CURVE E SUPERFICI DIFFERENZIABILI ESERCIZI SVOLTI Copyright MMIII, ARACNE EDITRICE S.R.L. 00173 Roma, via R. Garofalo, 133 A B tel. (06) 72672222 telefax 72672233 ISBN 978-88-7999-281-7
FONDAMENTI DI INFORMATICA - canale 2
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2017/2018-1 anno FONDAMENTI DI INFORMATICA - canale 2 ING-INF/05-9 CFU - Insegnamento
Esercizi di Fondamenti di Sistemi Dinamici
Giuseppe Fusco Esercizi di Fondamenti di Sistemi Dinamici ARACNE Copyright MMVIII ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133 a/b 00173 Roma (06 93781065
Laboratorio Algoritmi 2016
Laboratorio Algoritmi 2016 Lunedì 10:30 13:30 Aula 2 in via Saldini. Ricevimento: inviare e-mail a frasca@di.unimi.it. 44 ore (9 CFU) Linguaggio di programmazione: C Esame : progetto Sito del corso http://frasca.di.unimi.it/algm16/algm.html
Introduzione alla gestione delle collezioni di oggetti
Introduzione alla gestione delle collezioni di oggetti Alcune tecniche di base Un esempio: l ADT Dizionario (mutabile) Un esempio: l ADT Pila (mutabile) Un esempio: l ADT Coda (mutabile) Tecniche di rappresentazione
Programma del corso di: Laboratorio di Programmazione e Calcolo Corso di laurea in Matematica a.a Proff. B. Paternoster, D.
Programma del corso di: Laboratorio di Programmazione e Calcolo Corso di laurea in Matematica a.a.009-0 Proff. B. Paternoster, D. Conte Risoluzione di un problema con il calcolatore: dal problema reale
MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari
A: CONOSCENZA E CAPACITA DI COMPRENSIONE Conoscere e saper comprendere i fondamenti della matematica discreta (insiemi, interi, relazioni e funzioni, calcolo combinatorio) Conoscere e saper comprendere
FONDAMENTI DI INFORMATICA Ps - Z
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2018/2019-1 anno FONDAMENTI DI INFORMATICA Ps - Z ING-INF/05-9 CFU - Insegnamento
Alberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Una breve introduzione all implementazione in C di algoritmi su grafo
Una breve introduzione all implementazione in C di algoritmi su grafo A cura di Gianmaria Leo Introduzione La lezione è un introduzione a concetti e strumenti che permettono l implementazione di algoritmi
ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15
ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
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
Alberi ed Alberi Binari di Ricerca
Alberi ed Alberi Binari di Ricerca Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell
PROVETTE D ESAME. Algoritmi e Strutture Dati
PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento
Andrea Loi Introduzione alla Topologia generale
A01 Andrea Loi Introduzione alla Topologia generale Copyright MMXIII ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133/A B 00173 Roma (06) 93781065 ISBN 978-88-548-xxxx-x
Elementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Introduzione
Algoritmi e Strutture Dati. Capitolo 4 Ordinamento: Selection e Insertion Sort
Algoritmi e Strutture Dati Capitolo 4 Ordinamento: Selection e Insertion Sort Ordinamento Dato un insieme S di n elementi presi da un dominio totalmente ordinato, ordinare S in ordine non crescente o non
ARCHITETTURA DEI CALCOLATORI
A09 139/3 Graziano Frosini Giuseppe Lettieri ARCHITETTURA DEI CALCOLATORI VOLUME III ASPETTI ARCHITETTURALI AVANZATI E NUCLEO DI SISTEMA OPERATIVO Con riferimento al Personal Computer all ambiente di
ALGORITMI E LABORATORIO
DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2016/2017-2 anno E 9 CFU - 1 semestre Docenti titolari dell'insegnamento DOMENICO CANTONE - Modulo - INF/01-6 CFU
COGNOME E NOME (IN STAMPATELLO) MATRICOLA
Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Campi, Ghezzi, Matera e Morzenti Appello del 14 Settembre 2006 Recupero II Parte COGNOME E NOME (IN STAMPATELLO) MATRICOLA
Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari
Algoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.
Algoritmi e Strutture Dati. Capitolo 3 Strutture dati elementari
lgoritmi e Strutture Dati Capitolo 3 Strutture dati elementari Gestione di collezioni di oggetti Tipo di dato: Specifica una collezione di oggetti e delle operazioni di interesse su tale collezione (es.
Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
Algoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Dipartimento di Matematica e Informatica Università di Camerino Parte I Il concetto di algoritmo Informalmente, un
Marco Liverani PROGRAMMARE IN C. Guida al linguaggio attraverso esercizi svolti e commentati
Marco Liverani PROGRAMMARE IN C Guida al linguaggio attraverso esercizi svolti e commentati Indice Introduzione iii 1 Le basi del linguaggio 1 1.1 Un linguaggio imperativo........................... 1
Algoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il
Vincenzo Marinello Eserciziario di statistica economica e contabilità nazionale
A13 Vincenzo Marinello Eserciziario di statistica economica e contabilità nazionale Con la collaborazione di Pasquale Montalbano Gian Peppino Di Maria Angelo Alfredo Gibaldi Copyright MMXII ARACNE editrice
Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è
Vincenzo Ciancio Armando Ciancio. Metodi matematici per le applicazioni finanaziarie
A01 73 Vincenzo Ciancio Armando Ciancio Metodi matematici per le applicazioni finanaziarie Copyright MMV ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
Mauro Piccioni PROBABILITÀ DI BASE CON 136 ESERCIZI SVOLTI. II edizione
A01 164 Mauro Piccioni PROBABILITÀ DI BASE CON 136 ESERCIZI SVOLTI II edizione Copyright MMXI ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133/A B 00173 Roma
Appunti di Ricerca Operativa
Appunti di Ricerca Operativa 2012/2013 Prefazione La Ricerca Operativa è un campo in continua evoluzione, il cui impatto sulle realtà aziendali ed organizzative è in costante crescita. L insegnamento di
Alessio Russo Numeri, gruppi, polinomi. Un introduzione all Algebra Nuova edizione
A1 Alessio Russo Numeri, gruppi, polinomi Un introduzione all Algebra Nuova edizione Copyright MMXIII ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133/A B
Correttezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione informale di algoritmo Insieme di istruzioni, definite
1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi
1 TEORIA DELLE RETI 1 1 Teoria delle reti 1.1 Grafi Intuitivamente un grafo è un insieme finito di punti (nodi o vertici) ed un insieme di frecce (archi) che uniscono coppie di punti Il verso della freccia
COGNOME E NOME (IN STAMPATELLO) MATRICOLA
Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Campi, Ghezzi, Matera e Morzenti Seconda prova in itinere 4 Luglio 2006 COGNOME E NOME (IN STAMPATELLO) MATRICOLA Risolvere
Complessità. Ricorda: Problema P decidibile Linguaggio L P decidibile Taglia input x x. Esempio: G è un grafo connesso? { G G è un grafo connesso}
Complessità Calcolabilità: studia la frontiera tra problemi solubili e insolubili, Si limita ad aspetti qualitativi della risolubilità dei problemi (distingue ciò che è risolubile da ciò che non lo è).
Algoritmi e Strutture di Dati A.A Esempio di prova scritta del 19 gennaio 2018 D.M CFU Libri e appunti chiusi Tempo = 2:00h
Algoritmi e Strutture di Dati A.A. 2017-2018 Esempio di prova scritta del 19 gennaio 2018 D.M. 270-9CFU Libri e appunti chiusi Tempo = 2:00h Note (es: correzione veloce, eventuali indisponibilità, ecc.)...
Università Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A08 Matematica Applicata Corso di Informatica Algoritmi su Grafi Marco Liverani (liverani@mat.uniroma.it) Sommario
Pierino e il lupo A volte il lupo perde il vizio
Ragno magico 11 Germana Bruno Pierino e il lupo A volte il lupo perde il vizio e non il pelo Copyright MMXIV ARACNE editrice S.r.l. www.aracneeditrice.it www.narrativaracne.it info@aracneeditrice.it via
Ordinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
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 /...)
Desidero esprimere un affettuoso ringraziamento al Prof. Lino Camillo Lucianetti per la fiducia che mi ha sempre accordato e per l attenzione e i
A13 419 Desidero esprimere un affettuoso ringraziamento al Prof. Lino Camillo Lucianetti per la fiducia che mi ha sempre accordato e per l attenzione e i preziosi consigli riservati. Ovviamente, la responsabilità
INSEGNAMENTO DI: FONDAMENTI DI INFORMATICA C
INSEGNAMENTO DI: FONDAMENTI DI INFORMATICA C Docente: Prof. Giacomo Cabri Esercitatore: Ing. Francesco De Mola Come Contattarmi: E-mail (consigliato) giacomo.cabri@unimore.it Telefono 059-2056190 Ricevimento
Tipi di dato e Strutture dati elementari
Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia
ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 08/09)
ESERCITAZIONI DI INTRODUZIONE AGLI ALGORITMI (A.A. 0/0) DISPENSA N. 6 Esercizi su alberi di ricerca e AVL Notazione: Per un albero T scriviamo T per indicare il numero dei nodi di T e h(t ) per indicare
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)
Francesco Schino. Approccio sistemico
A14 34 Francesco Schino Approccio sistemico alla SALUTE URBANA Copyright MMIV ARACNE editrice S.r.l. www.aracneeditrice.it info@aracneeditrice.it via Raffaele Garofalo, 133 A/B 00173 Roma 06 93781065
ISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s.
ISTITUTO SUPERIORE ENRICO FERMI PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s. 2016/2017 ARTICOLAZIONE: INFORMATICA DISCIPLINA: INFORMATICA ORE SETTIMANALI:
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati A.A. 15/16 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Contatti Studio: stanza 513, V piano DIB Telefono: 080 544 2297 email: nicola.dimauro@di.uniba.it
Linguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
Tempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
COMPLESSITA COMPUTAZIONALE. Esercitazioni Tutor: Francesca Piersigilli
COMPLESSITA COMPUTAZIONALE Esercitazioni Tutor: Francesca Piersigilli La complessità computazionale si occupa della valutazione del costo degli algoritmi in termini di risorse di calcolo: tempo di elaborazione;
Algoritmi e Strutture Dati 1
Esonero del 31/03/2009 Compito n 1 Dimostrare che non tutte le funzioni f: ℵ 0,1 sono calcolabili. Dire se, giustificando la risposta applicando la definizione delle notazioni asintotiche, a) n log n =
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
La comunicazione pubblica nella sanità
La comunicazione pubblica nella sanità In copertina: Antica farmacia italiana del Sec. XV. Bologna, Bibl. universitaria, MS 2197. Federico Giannone La comunicazione pubblica nella sanità Una sfida per
2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di
Tempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
Linee di programmazione
Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
Ordinamento per inserzione e per fusione
Ordinamento per inserzione e per fusione Alessio Orlandi 15 marzo 2010 Fusione: problema Problema Siano A e B due array di n A e n B interi rispettivamente. Si supponga che A e B siano ordinati in modo
COMPLESSITÀ COMPUTAZIONALE. Fondamenti di Informatica A - Massimo Bertozzi
COMPLESSITÀ COMPUTAZIONALE Tipi di complessità Consideriamo l'analisi della complessità di un programma da due punti di vista: spazio tempo Complessità Spaziale Lo spazio utilizzato da un programma può
I Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali
Motivazione: Fattorizzazioni di matrici speciali Diminuire la complessità computazionale = evitare operazioni inutili = risparmiare tempo di calcolo Diminuire l occupazione di memoria Come si fa? Si tiene
PROGRAMMAZIONE II A - L
DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2017/2018-1 anno PROGRAMMAZIONE II A - L INF/01-9 CFU - 2 semestre Docente titolare dell'insegnamento DARIO CATALANO
Algoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 21 Febbraio 2013 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 3 ore. Chi deve sostenere solo il modulo di Informatica
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un