Dall’analisi del problema alla definizione dell’algoritmo

Slides:



Advertisements
Presentazioni simili
PROGETTO LAUREE SCIENTIFICHE
Advertisements

Modulo 4 – Seconda Parte Foglio Elettronico
Come possono essere classificati?
Scomposizione funzionale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Analisi – Progettazione - Programmazione
Linguaggi algoritmici
Costruzione di un semplice programma che opererà su uno smartphone
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Fondamenti di Informatica
Fondamenti di Informatica
1 Grandezze omogenee, commensurabili e incommensurabili
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
MACCHINE DI TURING Le macchine di Turing sono dispositivi astratti per la manipolazione di simboli, ideati nel 1936 dal matematico e logico britannico.
Iterazione enumerativa (for)
Elementi di Matematica
Algoritmi Politecnico di Milano
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Modelli simulativi per le Scienze Cognitive
Modelli simulativi per le Scienze Cognitive
Gli algoritmi AA 2003/04 © Alberti Programmazione 2. Algoritmi.
Docente : Grazia Cotroni
Gli algoritmi.
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
Elementi di Informatica
Elementi di Informatica
Dall’algoritmo al programma.
Dalle potenze ai numeri binari
Algoritmi e Programmazione strutturata
L’inventore del calcolatore odierno
PROGRAMMAZIONE: linguaggi
Somma fra frazioni algebriche
LA MACCHINA DI TURING Nel 1936 il matematico inglese A. M. Turing propose una definizione del concetto di algoritmo tramite un modello matematico di macchina.
Problema .. modello .. esecutore
La comunicazione uomo … macchina
Algoritmi: Modelli per Risolvere Problemi
EQUAZIONI DI PRIMO GRADO
ECDL Patente europea del computer
Programma di Informatica Classi Prime
Complessità di un algoritmo
IO E LA MATEMATICA PROCEDURALE
Linguaggi algoritmici
La scomposizione col metodo di Ruffini
Dal problema all’ algoritmo
Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco.
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
ORGANIZZAZIONE DI UN SISTEMA DI ELABORAZIONE
Rappresentazione degli algoritmi
Rappresentazione dell’informazione nel calcolatore.
Informatica 3 V anno.
Calcolo letterale.
1 Parte 2 Fondamenti di programmazione. 2 Definizione intuitiva di algoritmo Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo.
Algoritmi.
Conversione binario-ottale/esadecimale
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Frazioni e problemi.
Università degli Studi di Perugia 20/09/2015Informatica applicata all’educazione a.a Informatica applicata all’educazione a.a Corso.
Dal problema al programma
Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona.
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Criteri di divisibilità
Prof.ssa Livia Brancaccio 2015/16
Dall’analisi del problema alla definizione dell’algoritmo
Transcript della presentazione:

Dall’analisi del problema alla definizione dell’algoritmo A. Ferrari

Problema Problema è un termine largamente utilizzato dai molti significati quasi sempre intuitivi Risolvere un problema Passaggio da uno stato iniziale, attraverso stati intermedi, ad uno stato finale

Non solo problemi matematici

… altri problemi

Risoluzione di un problema Stato iniziale Dati iniziali Stato intermedio Dati intermedi Stato intermedio Dati intermedi Stato finale Dati finali

Le fasi Analisi Progettazione Verifica soluzione della

Analisi L’analista deve raccogliere le informazioni necessarie per definire il problema Individuare le informazioni iniziali significative Individuare le informazioni finali (risultato) Pitagora identifica come obiettivo la ricerca del valore dell’ipotenusa di un triangolo rettangolo e come dati iniziali significativi i valori dei due cateti

Progettazione L’obiettivo è fornire una descrizione passo passo del procedimento che porta alla soluzione del problema (algoritmo) Specificare, attraverso istruzioni, le azioni che devono essere intraprese per passare dai dati iniziali ai dati intermedi ai risultati finali Le istruzioni date da Pitagora: calcola il quadrato del primo cateto calcola il quadrato del secondo cateto somma i due valori ottenuti calcola la radice quadrata del valore ottenuto

(Programmazione) (Vedremo in seguito) Se il risolutore è un computer l’algoritmo deve essere tradotto in un linguaggio di programmazione

Verifica della soluzione Alla fine deve essere verificato che i risultati ottenuti non generino alcuna contraddizione con i dati iniziali In caso contrario si deve ripartire dall’analisi per poi passare di nuovo alla progettazione finché la verifica della soluzione non ha dato esito positivo

Un esempio Partiamo da un altro problema molto semplice: Data la lunghezza di un lato di un triangolo equilatero trovare il perimetro e l’area

Il procedimento risolutivo Per calcolare il perimetro il procedimento è molto semplice: basta moltiplicare per 3 la lunghezza del lato Per calcolare l’area si deve prima calcolare l’altezza del triangolo, per fare questo prendiamo in considerazione il triangolo rettangolo con alla base metà lato e con ipotenusa un lato del triangolo equilatero. Per ottenere l’area si applica la formula base*altezza / 2

I personaggi Risolutore Esecutore

Risolutore Il risolutore svolge le attività legate all’analisi e alla progettazione Analisi e progettazione sono attività di studio e di ricerca Hanno carattere creativo, presuppongono intelligenza, esperienza e intuizione

Esecutore Deve comprendere, interpretare correttamente e deve essere in grado di eseguire le istruzioni per trasformarle in azioni Il lavoro dell’Esecutore: eseguire le istruzioni sui dati iniziali per giungere ai dati finali

Calcolo dell’ipotenusa

Classi di problemi Molti problemi hanno radice comune, appartengono alla stessa classe Uno stesso elenco di istruzioni può servire per la soluzione di problemi specifici che differiscono solo per le informazioni iniziali La sequenza di istruzioni dell’esempio precedente ci permette di trovare l’ipotenusa non solo del triangolo con cateti di cm 3 e cm 4 (problema specifico) ma di un qualsiasi triangolo rettangolo con cateti di dimensione x, y. I cateti x, y sono i parametri che caratterizzano questa classe di problemi Da ora in avanti quando useremo il termine problema intenderemo classi di problemi

Problemi e classi di problemi Problema specifico: Quali sono le istruzioni per calcolare la somma di 103+439? Soluzione: somma 3 con 9, scrivi 2 e porta 1 somma 3 con 0 e con 1 (il riporto), scrivi 4 e porta 0 Problema generale: Quali sono le istruzioni per calcolare la somma di due numeri interi qualsiasi? Soluzione: somma la cifra meno significativa del primo addendo con la cifra meno significativa del secondo addendo……

Il linguaggio Il Risolutore deve usare un linguaggio per comunicare con l’Esecutore Pitagora ci ha passato la formula con un linguaggio matematico (elevamento a potenza, somma e radice quadrata)

Algoritmo Insieme delle istruzioni che permettono ad un esecutore di partire dai dati iniziali ed ottenere i risultati desiderati Sono esempi di algoritmi le procedure che permettono di: effettuare le quattro operazioni matematiche ordinare di una sequenza di numeri verificare la presenza di una parola in un testo simulare il volo di un aereo far diventare il computer un grande giocatore di scacchi.

Esempi … sono algoritmi? Ricetta per la torta al cioccolato Istruzioni IKEA

Torta al cioccolato

Ricetta

IKEA (billy)

?!?

Un esempio di problema Determinare se un numero è primo Analisi: un numero è primo se è divisibile esattamente solo per 1 e per se stesso si cerca il minimo divisore intero maggiore di 1 del numero se è uguale al numero stesso allora questo è primo Dato iniziale: un qualsiasi numero intero Dato finale: il minimo divisore del dato iniziale maggiore di 1

Progettazione L’idea è quella di provare a dividere il numero per 2, per 3, per 4 e così fino a che il resto della divisione intera è diverso da zero I tentativi si esauriscono quando il resto è uguale a zero (si è individuato un divisore esatto del numero) Se il divisore è uguale al numero stesso allora si è in presenza di un numero primo

Algoritmo prendi un numero intero e un suo divisore inizialmente di valore 1 aggiungi al divisore il valore 1 calcola il resto della divisone intera del numero per il divisore finché il resto è diverso da zero torna all’istruzione b il divisore è il risultato cercato (il numero è divisibile esattamente per il divisore)

Verifica della soluzione Se viene immesso come numero iniziale 35 l’algoritmo restituisce 5 17 restituisce 17 (numero primo) 20 restituisce 2 E’ importante effettuare prove di esecuzione dell’algoritmo con diversi dati in ingresso Non è possibile dimostrare però che il procedimento applicato funziona per qualsiasi numero intero E’ possibile dimostrare solo che un algoritmo è errato, non che è corretto

Flusso di esecuzione L’esecuzione di un’ istruzione costituisce un passo, la sequenza dei passi il flusso di esecuzione Un’istruzione in generale può essere eseguita più volte Normalmente il numero di passi è diverso dal numero di istruzioni

Passi - Istruzioni

Memoria Per poter eseguire le istruzioni che compongono l’algoritmo è necessario poter memorizzare i dati iniziali i dati intermedi i risultati finali ma anche le istruzioni stesse è necessaria una memoria, indipendentemente dal fatto che l’Esecutore sia umano o una macchina

Automi Un automa è una macchina in grado di eseguire in modo automatico una sequenza di azioni predefinite, capace di acquisire elementi dall’esterno e restituire elementi all’esterno.

Stato interno In un certo istante di tempo la macchina ha una sua condizione interna, detta stato, che può cambiare durante il funzionamento passando a un altro stato

Macchina di Turing Una Macchina di Turing è composta da: un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere; un’unità o organo di controllo costituita da uno stato interno, da un insieme di regole e dall’interprete delle regole stesse; una Testina di Lettura/Scrittura (TLS) per leggere e scrivere i caratteri presenti nelle celle.

Tesi di Church “qualsiasi funzione calcolabile attraverso un qualsivoglia procedimento meccanico può essere calcolata utilizzando un’opportuna macchina di Turing”

Proprietà degli algoritmi gli algoritmi hanno un numero finito di istruzioni; le istruzioni devono essere eseguibili da un esecutore; ogni istruzione deve essere eseguita in un tempo finito; l’ esecutore ha una memoria; il calcolo avviene per passi discreti; non c’è un limite alla lunghezza dei dati di ingresso; non c’è un limite finito alla quantità di memoria; sono ammesse esecuzioni con un numero di passi illimitato; il calcolo non può essere probabilistico; sono ammesse esecuzioni con un numero di passi infinito.

… pensare prima di risolvere … Un treno merci lascia Milano per Bologna nello stesso momento in cui un rapido lascia Bologna per Milano. Se il treno merci viaggia a 50 Km/h e il rapido a 100 Km/h quale dei due sarà più vicino a Bologna quando si incontreranno? (distanza Milano Bologna 198 Km). Due treni che viaggiano a 50 Km/h partono contemporaneamente da due stazioni A e B alla distanza di 100 Km. Un passero parte nello stesso momento dalla stazione A e vola all'altezza di 15 metri a 100 Km/h verso la stazione B. Quando incontra il treno proveniente da B torna verso A. Vola avanti e indietro tra i due treni finché essi si incontrano. Che distanza ha percorso il passero nel suo volo? Due missili viaggiano uno contro l'altro uno a 16000 Km/h e l'altro a 20000 Km/h. Essi partono ad una distanza iniziale di 2000 Km. Calcolare quanto sono distanti un minuto prima della collisione.

Definire i dati di input e di output Si abbia a disposizione il valore che rappresenta la produzione industriale dell’anno precedente, e si supponga che sia aumentata del 5% nell’anno in corso: qual è il suo valore attuale? Dato il lato trovare il perimetro e l’area del quadrato. Calcolare la misura dell’ipotenusa di un triangolo rettangolo noti i cateti. Data l’età di 3 persone calcolare l’età media. Data la colonna vincente del totocalcio, si vuole sapere quanti segni sono stati indovinati nella colonna giocata. Date le informazioni sui nomi degli studenti, di una classe composta da 27 alunni, e sui voti che essi hanno ottenuto in una prova, si vuole stabilire il voto medio della classe. Date le temperature misurate nel mese di luglio in una città, si vuole sapere in quanti giorni del mese si è avuta una temperatura superiore a 30 gradi. Stabilita la percentuale di sconto, dato il prezzo di un prodotto, calcolare lo sconto e il prezzo scontato e comunicare i risultati.

Risolvere i problemi Dato il raggio calcolare il perimetro e l’area del cerchio. Date le coordinate di due punti A e B trovare le coordinate del punto medio del segmento AB. Per il lavoro di un operaio sono registrati l’orario di entrata e l’orario di uscita sia al mattino che al pomeriggio: calcolare il totale delle ore e dei minuti lavorati e, data la paga oraria, calcolare la paga giornaliera. Dato un elenco di 20 studenti, per ogni studente sono indicati il nome e due voti relativi a due prove di Matematica; si deve segnalare il nome di coloro che dovranno frequentare un corso di recupero perché hanno media insufficiente. Per la vendita di un prodotto si deve applicare uno sconto progressivo in base al numero di pezzi ordinati in base alla regola: fino a 3 pezzi 5%, fino a 5 pezzi 10%, fino a 10 pezzi 20%, oltre 10 pezzi 30%. Dato il prezzo del prodotto e il numero di pezzi ordinati calcolare il prezzo da pagare.