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



Documenti analoghi
Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

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

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

Fasi di creazione di un programma

Problemi, Algoritmi e Programmi

Introduzione. Informatica B. Daniele Loiacono

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

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

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il concetto di informatica. Bogdan Maris ( )

Appunti di Sistemi Elettronici

Esempi di algoritmi. Lezione III

Lezione 8. La macchina universale

Introduzione al Corso di Algoritmi

Descrizione di un algoritmo

Gestione del workflow

Nozione di algoritmo. Gabriella Trucco

Linguaggi di programmazione

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

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

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

Come ragiona il computer. Problemi e algoritmi

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

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

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

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Funzionalità di un Algoritmo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Introduzione ai tipi di dato astratti: applicazione alle liste

Origini e caratteristiche dei calcolatori elettronici

Linguaggi e Paradigmi di Programmazione

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Gestione dell account AdWords di Google Guida pratica

IL PROBLEMA DELLE SCORTE

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Cos è un Calcolatore?

Calcolo delle probabilità

Elementi di Informatica e Programmazione

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

I PROBLEMI ALGEBRICI

Fondamenti di Informatica Ingegneria Clinica Lezione 15/10/2009. Prof. Raffaele Nicolussi

Ricerca Operativa (Compito A) Appello del 18/06/2013 Andrea Scozzari

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

Informatica. appunti dalle lezioni del 20/09/2011 e del 27/09/2011

Algoritmi e Strutture Dati

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Automazione Industriale (scheduling+mms) scheduling+mms.

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

Corso di Informatica

Modellazione di sistema

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

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

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Introduzione al MATLAB c Parte 2

4 3 4 = 4 x x x 10 0 aaa

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

Algoritmi e diagrammi di flusso

Studente: SANTORO MC. Matricola : 528

Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D

Metodologie di programmazione in Fortran 90

Gli algoritmi: definizioni e proprietà

Microsoft Access. Microsoft Access

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Capitolo 4 - Teoria della manutenzione: la gestione del personale

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

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

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

Appunti sulla Macchina di Turing. Macchina di Turing

Tecniche di Simulazione: Introduzione. N. Del Buono:

Funzioni in C. Violetta Lonati

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

Algoritmi e strutture dati. Codici di Huffman

ALGEBRA DELLE PROPOSIZIONI

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

OPAC di Ateneo: servizi on-line per utenti registrati

Corso di Matematica per la Chimica

Modulo 1: Motori di ricerca

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Diagrammi di Flusso dei Dati

La Metodologia adottata nel Corso

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

Prodotto Disponibilità Costo e rispettando le seguenti regole di composizione delle benzine:

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

gestione_installatori_e_manutentori Pagina 1 di 14 Software Quadri Lucio Servizi Web

Ottimizzazione Multi Obiettivo

uadro Soluzione software e hardware Per le rilevazione presenze Gestione Aziendale Fa quadrato attorno alla tua azienda

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Raggruppamenti Conti Movimenti

Efficienza, efficacia, economicità. Alessandro Scaletti

Ciclo di vita del software: Tipologie di software

LE FUNZIONI A DUE VARIABILI

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Transcript:

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y Somma z al risultato OUTPUT: risultato OUTPUT: x+y+z Algoritmo: Sequenza di azioni per svolgere il calcolo Programma: Algoritmo espresso in notazione formale (linguaggio di programmazione) Creazione programma: Fase 1 = algoritmo Fase 2 = implementazione in dato linguaggio (C) Vedremo: Elementi di base per semplici algoritmi e programmi

ALGORITMI Tecniche algoritmiche permettono di risolvere problemi Trasmissione dati in Internet come si gestisce in pratica il flusso di dati nella rete? Ricerca nel WEB come fa Google a trovare le informazioni nel WEB? Bioinformatica come il DNA determina le nostre caratteristiche? Processi economici come si gestiscono le aste on-line su Ebay? come si effettua la compravendita di azioni su Internet? Organizzazione di risorse e servizi come si schedulano i voli delle aerolinee? come si assegnano le frequenze nelle celle delle reti cellulari?

Il termine Algoritmo deriva dal matematico Arabo al-khwarizmı (c. 780-850), autore del testo Al-jabrw al-muqabâla (da cui anche il termine Algebra)

Algoritmi di tipo numerico furono studiati da matematici babilonesi ed indiani più di di 3000 anni fa. Algoritmi in uso fino a tempi recenti furono studiati dai matematici greci nel 500 a.c. Esempio: Algoritmo di Euclide per il Massimo Comun Divisore Esempio: Algoritmi geometrici (calcolo di tangenti, sezioni di angoli,...)

Algoritmo: procedura computazionale che prende certi valori in input (ingresso) e produce i valori richiesti in output (uscita)

Un esempio si prepara ad un uscita galante... Va in profumeria, ma vuole risparmiare Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se e minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da 1. 5. Se le bottiglie sono finite, la bottiglia più economica è quella in mano

Algoritmo: procedura computazionale che prende certi valori in input (ingresso) e produce i valori richiesti in output (uscita) Problema: determina il profumo più economico Input: profumi con relativi costi Output: profumo di costo minimo Algoritmo: 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da 1. 5. Se le bottiglie sono finite, la bottiglia più economica è quella in mano Procedura computazionale per ottenere la relazione costi/costo minimo

Riassumendo Un algoritmo è una serie di operazion non ambigue ed efficientemente computabili, che una volta eseguite producono un risultato in un tempo finito Se possiamo specificare un algoritmo allora possiamo automatizzare la soluzione

Definire il problema Eliminare le ambiguità nella formulazione del problema Individuare il risultato che si vuole ottenere, gli obiettivi da raggiungere Evidenziare le regole da rispettare i vincoli interni ed esterni i dati espliciti ed impliciti Eliminare i dettagli inutili ed ambigui

Relazione tra Realtà e Modello Mondo Reale Costruzione modello Modello Ricerca della soluzione ft tt re 12 14 tf 13 15 F = m a Interpretazione della soluzione

Scegliere astrazione: definire un Insieme di dati che rappresentano la realta (modello di dati) Risolvere problema Scegliere rappresentazione della informazione (struttura dati) Algoritmo e programma Es. Archivio impiegati contiene insieme di dati rilevanti (astrazione) su ogni impiegato Rilevanti: Nome, stipendio, mansione Non rilevanti: altezza, peso, colore occhi, colore capelli

Algoritmo Un algoritmo è una sequenza finita di passi elementari che descrive come risolvere in un tempo finito un problema

Un esempio Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da 1. 5. Se le bottiglie sono finite, la bottiglia più economica è quella in mano E un algoritmo? La soluzione è corretta? Quanto tempo prende?

Un algoritmo è una sequenza finita di passi elementari che descrive come risolvere in un tempo finito un problema Altri esempi di algoritmi: Istruzioni di montaggio Preparazione del caffè Prelievo bancomat Preparazione di un ricetta Algoritmo Calcolo del massimo comun divisore tra due interi

Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Algoritmo: sequenza di azioni elementari che consenta di trasformare i dati iniziali nei risultati finali attraverso un numero finito di passi, elementari e non ambigui. Note: Insieme di dati iniziali ben definito Sequenza di passi può essere eseguita da un opportuno esecutore (es. calcolatore).

Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Proprietà fondamentali di un Algoritmo Correttezza; produce sempre una soluzione Efficienza: L algoritmo perviene alla soluzione del problema usando la minor quantità possibile di risorse fisiche, quali tempo di esecuzione, memoria,.

Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Ricapitolando, un algoritmo deve essere: applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizione dell algoritmo costituito da operazioni appartenenti ad un determinato insieme di operazioni fondamentali costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o macchina ) che le legge

Un esempio Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da 1. 5. Se le bottiglie sono finite, la bottiglia più economica è quella in mano Dati ingresso? Operazioni? Esecutore?

Algoritmo Esempio: prendere l automobile 1. Aprire l auto 2. Aprire la portiera 3. Sedersi al posto di guida 4. Schiacciare la frizione 5. Avviare il motore 6. Inserire la prima marcia 7. Rilasciare delicatamente la frizione per partire I passi sono eseguiti in sequenza l'ordine delle istruzioni è essenziale per la correttezza

I libri sono disposti sugli scaffali Esempio: Biblioteca La posizione di ogni libro è fissa ed è individuata da due coordinate: -Scaffale(i.e. numero dello scaffale) -Posizione nello scaffale La biblioteca è dotata di uno schedario (ordinato per autore/i e titolo). Ogni scheda contiene, nell ordine: -cognome e nome dell autore -titolo del libro -data di pubblicazione -numero dello scaffale in cui si trova -posizione attribuita al libro nello scaffale.

Esempio: Biblioteca Esempio di scheda Autore/i:Sciuto, DonatellaBuonanno, GiacomoMari, Luca Titolo:Introduzione ai Sistemi Informatici, III Edizione, 2005 Scaffale:22 Posizione:11

Formulazione dell algoritmo 1.Decidi il libro da richiedere 2.Preleva il libro richiesto Esempio: Biblioteca Raffinamenti successivi : se un passo non è direttamente comprensibile ed eseguibile dall esecutore (operazione semplice), occorre dettagliarlo a sua volta mediante un ulteriore algoritmo.

Un algoritmo per il prelievo Esempio: Biblioteca 1.Decidi il libro da richiedere 2.Cerca la scheda del libro richiesto 3.Segnati numero scaffale e posizione 4.Cerca lo scaffale indicato 5.Accedi alla posizione indicata e preleva il libro 6.Scrivi i tuoi dati sulla "scheda prestito"

Il sotto-algoritmo di ricerca 1.Prendi la prima scheda. Esempio: Biblioteca 2.Esamina se titolo e autore/i sono quelli cercati. In caso positivo la ricerca termina con successo, altrimenti passa alla scheda successiva e ripeti. 3.Se esaurisci le schede il libro cercato non esiste.

Un algoritmo per il prelievo Esempio: Biblioteca 1.Decidi il libro da richiedere 2.Cerca la scheda del libro richiesto come segue: 2.1. Prendi la prima scheda. 2.2. Esamina se titolo e autore/i sono quelli cercati. In caso positivo la ricerca termina con successo, altrimenti passa alla scheda successiva e ripeti. 2.3. Se esaurisci le schede il libro cercato non esiste. 3.Segnati numero scaffale e posizione 4.Cerca lo scaffale indicato 5.Accedi alla posizione indicata e preleva il libro 6.Scrivi i tuoi dati sulla "scheda prestito"