Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati



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

Introduzione al corso

Informatica - A.A. 2010/11

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

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Introduzione agli Abstract Data Type (ADT)

Automazione Industriale (scheduling+mms) scheduling+mms.

Concetti di base di ingegneria del software

Strutturazione logica dei dati: i file

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Modulo 1. Concetti di base della Tecnologia dell Informazione ( Parte 1.1)

Progettazione di Basi di Dati

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Fasi di creazione di un programma

Organizzazione della memoria principale Il bus

Corso di Informatica

Lezione 8. La macchina universale

Organizzazione degli archivi

Esame di INFORMATICA

Artifact Centric Business Processes (I)

Algoritmi e strutture dati. Codici di Huffman

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Database. Si ringrazia Marco Bertini per le slides

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Fondamenti dei linguaggi di programmazione

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

PREVENTIVO uno strumento che ci tutela!

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Appunti sulla Macchina di Turing. Macchina di Turing

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

Piano di gestione della qualità

Progettazione concettuale

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Il database management system Access

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

Al giorno d oggi, i sistemi per la gestione di database

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Esempi di algoritmi. Lezione III

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

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

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione dei processi

BASE DI DATI: sicurezza. Informatica febbraio ASA

Archivi e database. Lezione n. 7

Anno 3. Funzioni: dominio, codominio e campo di esistenza

Laboratorio di Informatica. Il computer

Funzioni in C. Violetta Lonati

Introduzione alla Programmazione

1. Definizione di budget e collocazione nel processo di programmazione e controllo

IMPIANTI INDUSTRIALI. I Sistemi di gestione per la qualità secondo norma UNI EN ISO 9001:2008 Di Andrea Chiarini andrea.chiarini@chiarini.

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

Circolare n. 9. del 22 luglio 2009

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Basi di Dati Relazionali

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico


Progettaz. e sviluppo Data Base

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Introduzione al MATLAB c Parte 2

I.I.S. Primo Levi Badia Polesine A.S

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Università Politecnica delle Marche. Progetto Didattico

Introduzione ai tipi di dato astratti: applicazione alle liste

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Nozione di algoritmo. Gabriella Trucco

Lezione 4 Le code. Informatica. 26 Aprile Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini

1.4b: Hardware. (Memoria Centrale)

Workflow di Test. Valerio Mercanti - ISP0607 1

IL SISTEMA INFORMATIVO

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Università degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale

Sistemi Informativi Territoriali. Map Algebra

Corso di Informatica

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

La memoria - generalità

Introduzione ai database relazionali

Il Problem-Based Learning dalla pratica alla teoria

Dispensa di Informatica I.1

Limiti della gestione tradizionale degli archivi. Prof. Francesco Accarino IIS Altiero Spinelli

Le Basi di Dati. Le Basi di Dati

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

fit-up), cioè ai problemi che si verificano all atto dell assemblaggio quando non si riescono a montare i diversi componenti del prodotto o quando il

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Programmi e Oggetti Software

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

Progettazione di un Database

Transcript:

Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè studiare algoritmi e strutture dati Politecnico di Milano - Prof. Sara Comai 1 Politecnico di Milano - Prof. Sara Comai 2 Importanza delle strutture dati Organizzazione dei dati Obiettivo: efficienza Calcolatori più potenti applicazioni più complesse maggiori capacità di calcolo e programmi sempre più efficienti occorrono principi che permettono di progettare programmi efficienti Struttura dati = qualsiasi rappresentazione dei dati e le operazioni associate ad essa Esempio: Collezione di dati: array di record Operazioni: cercare, processare in qualsiasi ordine, modificare Scegliere la corretta struttura dati esecuzioni in pochi secondi oppure in molti giorni Politecnico di Milano - Prof. Sara Comai 3 Politecnico di Milano - Prof. Sara Comai 4

Soluzione efficiente Una soluzione si dice efficiente se risolve il problema soddisfacendo vincoli di risorse Spazio (su disco, in memoria centrale) Tempo Il costo di una soluzione dipende dalla quantità di risorse che la soluzione consuma Tempo Scegliere una struttura dati Passi da seguire: Analizzare il problema per determinare i vincoli delle risorse Determinare le operazioni di base da supportare. Quantificare i vincoli di risorse per ciascuna operazione Selezionare la struttura dati che meglio soddisfa i requisiti Politecnico di Milano - Prof. Sara Comai 5 Politecnico di Milano - Prof. Sara Comai 6 Cosa chiedersi I dati vengono inseriti nella struttura dati tutti all inizio oppure tra un inserimento e l altro vengono effettuate altre operazioni? I dati possono essere cancellati? I dati devono essere processati secondo un particolare ordine oppure occorre potervi accedere in modo casuale? strutture dati più o meno complesse Politecnico di Milano - Prof. Sara Comai 7 Costi e benefici Ogni struttura dati ha costi e benefici Raramente una struttura dati è migliore di un altra in tutte le situazioni Una struttura dati richiede: spazio per ogni informazione da memorizzare tempo per eseguire le operazioni di base sforzo di programmazione Esempio: banca Apertura conto: pochi minuti Transazioni: pochi secondi Chiusura conto: durante la notte Politecnico di Milano - Prof. Sara Comai 8

Obiettivi del corso Informatica 3 Studiare le strutture dati più comuni e alcune strutture dati più complesse Analizzare costi/benefici di queste strutture dati Comprendere come misurare l efficienza di un algoritmo o di una struttura dati giudicare anche nuove strutture dati Lezione 10 - Modulo 2 Definizioni di base Politecnico di Milano - Prof. Sara Comai 9 Politecnico di Milano - Prof. Sara Comai 10 Tipi di dati astratti Forma fisica e logica dei dati Tipi di dati astratti o Abstract Data Type (ADT): definizione di un tipo di dato solamente in termini di insieme di valori e insieme di operazioni sul tipo di dato Ogni operazione di un ADT è definita attraverso i suoi input e output I dettagli di come il tipo di dato è implementato sono nascosti Una struttura dati è l implementazione fisica di un ADT Ogni operazione associata con l ADT viene implementata tramite una o più funzioni I dati hanno una forma logica e una forma fisica Forma logica: definizione di un dato all interno dell ADT Es. Interi (intesi in senso matematico) con operazioni +, - Forma fisica: implementazione del dato all interno di una struttura dati Es. intero a 16/32 bit, overflow Politecnico di Milano - Prof. Sara Comai 11 Politecnico di Milano - Prof. Sara Comai 12

Relazione tra dati, ADT e strutture dati ADT: Tipo Operazioni Tipo di dato Struttura dati: Spazio di memoria Funzioni Dato: forma logica Dato: forma fisica Problema Problema: compito da eseguire può essere pensato in termini di input ed output la definizione del problema dovrebbe includere i vincoli sulle risorse che possono essere consumati in una soluzione accettabile I problemi possono essere visti come funzioni matematiche Una funzione mappa input (dominio) in output (codominio) Un input può essere un singolo numero oppure una collezione di dati I valori che costituiscono un input vengono detti parametri della funzione In corrispondenza di un input la funzione calcola un output Politecnico di Milano - Prof. Sara Comai 13 Politecnico di Milano - Prof. Sara Comai 14 Algoritmi e programmi Algoritmo: metodo o processo per risolvere un problema Es. ricetta Un algoritmo riceve l input di un problema (funzione) e lo trasforma in output Un problema può essere risolto attraverso diversi algoritmi Proprietà di un algoritmo Proprietà che deve possedere un algoritmo: Correttezza Deve essere costituito da una serie di passi concreti Non deve essere ambiguo Deve essere costituito da un insieme finito di passi Deve terminare Un programma è un istanza, o rappresentazione concreta, di un algoritmo in un linguaggio di programmazione Politecnico di Milano - Prof. Sara Comai 15 Politecnico di Milano - Prof. Sara Comai 16

Concetti di matematica Insiemi Relazioni Logaritmi Ricorsione Somme e ricorrenze Dimostrazioni per assurdo e per induzione Stima Politecnico di Milano - Prof. Sara Comai 17