Fondazione San Benedetto Liceo delle scienze applicate Anno 2012-2013 Docente Anna Carla Capodivento Informatica vs Matematica Esempio: somma tra due numeri L’informatica è la scienza della rappresentazione e dell’elaborazione dell’informazione INFORmazione + autoMATICA Studio sistematico degli algoritmi che descrivono e trasformano l’informazione Algoritmi e Calcolatori È una descrizione completa e non ambigua di una procedura risolutiva di un problema Esempio: Fare benzina alla macchina Computer: è un esecutore di algoritmi Programmi: sequenze di istruzioni in un linguaggio Esperto informatico: produce algoritmi e li codifica in programmi Problemi È una questione in base alla quale si devono trovare una o più soluzioni partendo da elementi noti Strategia risolutiva è un insieme di passi da compiere per giungere alla soluzione di un problema Soluzione: è l’obiettivo che vogliamo raggiungere Esempio: biglietto ferroviario Emettere un biglietto ferroviario Strategia risolutiva • • • • Dati iniziali Stazione di partenza Stazione di arrivo Data e ora di partenza Numero di persone in partenza Verifica dei risultati Risultato finale Strategia risolutiva Analisi del problema Obiettivo Stato iniziale Progettazione Azioni Verifica della soluzione Stato finale Problem solving Indica l’insieme dei processi per individuare un metodo per risolvere situazioni problematiche Divide et impera RISOLUZIONE Stato iniziale L’insieme dei fatti iniziali è detto DATI INIZIALI NO NO Stato finale Prodotto della soluzione sono i DATI FINALI O Strade scartate Criterio di verifica RISULTATI Formulazione del problema ATTENZIONE!!! Una cattiva formulazione compromette la risoluzione Riformulare correttamente il problema 1. Individuare obiettivi evidenziando regole e dati impliciti 2. Eliminare i dettagli inutili e ambigui 3. Individuare il criterio di verifica Astrazione del problema Astrazione è il procedimento mentale attraverso il quale si sostituisce un insieme di oggetti con un concetto che li descrive in base a proprietà comuni Esempio: insieme di automobili concetto di automobile Esempio: trovare il minimo tra 4, 8, 2 trovare il minimo tra tre numeri A, B, C Analisi Fornisce una breve descrizione di cosa si vuole fare evidenziando: VINCOLI REQUISITI (esempio X*Y) Area di interesse: (specifiche funzionali) Dati iniziali o Dati in ingresso Istanza Dati finali o Dati in uscita Il processo di analisi prende il nome di Problem setting Cosa fare? Problema 1: fare una telefonata Analisi del problema Voglio chiamare un abbonato col telefono. Dopo aver composto il numero può verificarsi che: 1. l’abbonato risponde 2. il telefono è occupato o non risponde Specifiche funzionali Dati iniziali Numero da comporre Dati finali Messaggio «telefonata riuscita» Messaggio «telefonata non riuscita» Problema 2: trovare il maggiore tra due numeri Analisi del problema Voglio trovare il maggiore tra due numeri interi X e Y. Usiamo una semplice sottrazione: se X-Y > 0 il maggiore è X se X-Y < 0 il maggiore è Y se X-Y = 0 X e Y sono uguali Specifiche funzionali Dati iniziali Due numeri interi X e Y Dati finali X, se X-Y > 0 Y, se X-Y < 0 Problema 3: calcolare il prodotto tra due numeri interi Analisi del problema Voglio trovare il prodotto tra due numeri interi X e Y. Usiamo l’addizione: se Y = 0 il è prodotto è 0 se Y > 0 il prodotto è X + X + X + … + X (per Y volte) Specifiche funzionali Dati iniziali Due numeri interi X e Y Dati finali 0, se Y = 0 X*Y, se Y > 0 Problema 4: trovare il massimo tra tre numeri Analisi del problema Specifiche funzionali Dati iniziali Dati finali Problema 5: cercare il numero di un utente in un elenco telefonico Analisi del problema Specifiche funzionali Dati iniziali Dati finali Modellizzazione del problema Modello è la rappresentazione semplificata della situazione analizzata che evidenzi tutti gli elementi utili alla risoluzione del problema Realtà Modello interpretazione Rappresentazione della realtà Classificazione dei modelli In base al loro uso: Descrittivi: riproducono la realtà senza presupporre l’uso che ne verrà fatto (es. modelli grafici-tabellari) Predittivi: forniscono gli elementi necessari della realtà di interesse per prevederne l’evoluzione Prescrittivi: impongono un comportamento particolare in previsione dell’obiettivo da raggiungere Classificazione dei modelli In base alla loro natura: Analogici: forniscono una rappresentazione fedele della realtà in scala ridotta (es. modellini di auto) Simbolici o matematici: forniscono una rappresentazione astratta della realtà a cui si riferiscono mediante un’equazione Logici: forniscono un insieme di regole logico-funzionali che, se seguite, permettono di emulare integralmente la realtà Algoritmi A quale categoria appartengono gli algoritmi? MODELLI LOGICI C B A D S Studio di un problema PROBLEMA: «studiamo una popolazione virtuale composta da persone che vivono all’infinito» Tempo Ammalat i T0 0 T1 10 T2 20 T3 40 T4 Tempo 80 Dtn = Dt1 * 2n-1 Dtn = Dt1 * (2-0.3)n-1 Ammalati Morti T0 0 0 T1 10 0 T2 (10*2)-3=17 10*0.3=3 T3 (17*2)-5.1=28.9 17*0.3=5.1 T4 (28.9*2)-8.7=49.1 28.9*0.3=8.7 Somma di lunghezze Somma le seguenti lunghezze: 3.5 km, 23 hm, 125 cm, 59 mm 1. (59+1250+2300000+3500000) mm = 5801309 mm 2. (3,5+2,3+0,00123+0,00059) km = 5,801309 km Strategia risolutiva Strategia efficace funziona Strategia efficiente dispendio minimo di risorse Metodi 1. Conoscere il tema oggetto del problema 2. Procedere per tentativi 3. Servirsi dell’esperienza e di metodi già sperimentati 4. Ripercorrere il cammino all’indietro 5. Scindere il problema in sottoproblemi Approccio composto L’approccio migliore è sempre quello composto!! Divide et impera Torta Sacher Preparare la pasta Preparare la marmellata di albicocche Preparare le farciture Preparare il cioccolato fuso Farcire la torta Preparare la panna Guarnire la torta Risolutore ed esecutore Risolutore: la persona che definisce e costruisce la strategia risolutiva per un dato problema. Esecutore: colui che esegue le azioni descritte dal risolutore Problema Calcolare la lunghezza della diagonale di un rettangolo conoscendo le sue dimensioni D? a b Strategia risolutiva • Prendere la misura della base • Prendere la misura dell’altezza • Calcolare il quadrato della base • Calcolare il quadrato dell’altezza • Sommare i due quadrati • Calcolare la radice quadrata • Visualizzare il risultato Dati Iniziali Base = 5 Altezza = 12 Esecutore 25 144 169 13 Dati Finali 13 Computer come esecutore Linguaggio che è in grado di interpretare Insieme di azioni che è in grado di compiere Insieme di regole che associano linguaggio e azioni Risolutore Programma Prendi la base Prendi l’altezza …. Traduzione in linguaggio di programmazione Dati Iniziali Esecutore Verifica dei risultati Capra, cavolo e lupo Un contadino deve trasportare al di là del fiume il suo lupo, la sua capra e il suo cavolo. Ha a disposizione una barca che può trasportare solo lui e uno solo degli altri. Deve stare attento che la capra non mangi il cavolo e il lupo la capra. Strategia risolutiva • Inizio strategia • Porta la capra sull’altra sponda • Torna indietro • Porta il cavolo sull’altra sponda • Porta la capra indietro • Porta il lupo sull’altra sponda • Torna indietro • Porta la capra sull’altra sponda • Fine strategia ax + b = 0 ax + b = 0 ax = -b x = -b/a Strategia risolutiva • Inizio strategia risolutiva • Acquisisci i valori di a e b • Calcola-b • Dividi -b per a e assegna il risultato a x • Visualizza il valore di x • Fine strategia risolutiva Azione Soggetto (detto esecutore) Oggetto Trasformazione Es. Daniela mangia una mela Daniela prende una mela; Daniela sbuccia la mela; Daniela taglia a fette la mela; Daniela mastica la mela. Le azioni devono avvenire in sequenza Algoritmo Istruzione è un’azione elementare in quanto non può essere scomposta in altre azioni più semplici. Algoritmo è un procedimento risolutivo che descrive passo per passo il procedimento che risolve un problema costruendo una successione ordinata e finita di istruzioni. Caratteristiche di un algoritmo Finito Univoco o non ambiguo o preciso Generale Completo Osservabile nei risultati Deterministico Efficienza Un algoritmo si dice efficiente quando: è corretto, cioè produce il risultato atteso; è veloce in termini di tempo impiegato per produrre il risultato; è parsimonioso in termini di risorse allocate per produrre il risultato. Prelievo dal Bancomat 1. Verificare che il bancomat funzioni correttamente Non è in servizio È in servizio 9. Cercare un altro bancomat 2. Introdurre la carta nel lettore 3. Digitare il codice segreto 4. Verificare che il codice sia corretto Non è corretto 8. Operazione terminata È corretto 5. Digitare l’importo da prelevare 6. Prelevare le banconote 7. Ritirare la carta dal bancomat I diagrammi a blocchi INIZIO CONDIZ IONE FINE INPUT AZIONE OUTPUT ORDINE D’ESECUZIONE REGOLE INIZIO FINE AZIONE INPUT CONDIZ IONE OUTPUT Equazione di II grado Maggiore tra 3 numeri a, b, c