A. Ferrari algoritmi

Documenti analoghi
Dall analisi del problema alla definizione dell algoritmo A. Ferrari

Unità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati

Le fasi. Analisi Proge2azione - Programmazione. Il problema. Il procedimento risolufvo. Soluzione dei problemi. Algoritmo 10/12/2011

Caratteristiche di un calcolatore elettronico

Laboratorio di Calcolo di Aerodinamica: II Lezione

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Linguaggi algoritmici A. Ferrari

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

PROBLEMI ALGORITMI E PROGRAMMAZIONE

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Risoluzione di un problema

Introduzione agli Algoritmi 4

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Corso di Fondamenti di Informatica

PROGRAMMAZIONE: Le strutture di controllo

Introduzione alla programmazione

Algoritmi. Andrea Passerini Informatica. Algoritmi

MODULO 07. La soluzione dei problemi mediante gli algoritmi

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Che cosa si intende per INFORMATICA?

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

L uomo come esecutore di algoritmi

LABORATORIO DI INFORMATICA

Sviluppo di programmi

PROGRAMMAZIONE: La selezione

Dispensa di Informatica II.1

Algoritmi e diagrammi di flusso versione biennio

Elementi di Informatica e Programmazione

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Algoritmi e Programmi

Algoritmi. Informatica B. Daniele Loiacono

L INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Algoritmi. Informatica B. Daniele Loiacono

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Un algoritmo è costituito da una serie di passaggi che portano alla risoluzione di un problema.

Unità di apprendimento 6. Dal problema al programma

CAPITOLO 3 - ALGORITMI E CODIFICA

Fasi di creazione di un programma

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Nuovi scenari per la matematica Salerno 29/08/2012.

Algoritmi e (cenni sul) calcolatore

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

Corso di Fondamenti di Informatica Algoritmi ed esecutori

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

generalità concetti di base

Formalismi per la descrizione di algoritmi

CORSO DI INFORMATICA Maria Grazia Celentano

Introduzione. Informatica B. Daniele Loiacono

Sviluppo di programmi

L ELABORATORE ELETTRONICO

Esercizi sugli Algoritmi numerici

Sistemi di Elaborazione delle Informazioni

LA METAFORA DELL UFFICIO

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

L ELABORATORE ELETTRONICO!

Introduzione agli Algoritmi

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Sviluppo di programmi

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Computer. Capitolo 2. 05/04/2012 continuazione 1

LA METAFORA DELL UFFICIO

Questo teorema era già noto ai babilonesi, ma fu il matematico greco Pitagora, intorno al 500 a.c., a darne una descrizione precisa.

Algoritmo. Programmazione

ESERCIZI DI MATEMATICA

Curricolo Verticale Scuola Secondaria di I Grado I. C. S. Via Libertà San Donato Milanese (MI) CLASSE PRIMA

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini

L ELABORATORE ELETTRONICO

Algoritmi e diagrammi di flusso

Rappresentazione con i diagrammi di flusso (Flow - chart)

DISCIPLINA: MATEMATICA

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Linguaggi di programmazione

Come scrivere bene codice? (1 di 1)

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

Introduzione all informatica

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Elaboratore Elettronico

ALGORITMI: PROPRIETÀ FONDAMENTALI

Algoritmi. Pagina 1 di 5

Come ragiona il computer. Problemi e algoritmi

Parte 1. Fondamenti di Informatica Modulo Fondamenti di programmazione Prof.ssa Elisa Tiezzi

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

DISPENSE DI PROGRAMMAZIONE

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Interazione tra matematica e informatica

Transcript:

algoritmi dall analisi del problema alla definizione dell algoritmo

problema o risolvere un problema: o passare da uno stato iniziale o a uno stato finale o attraverso stati intermedi

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

non solo problemi matematici

problem solving (1) See capire il problema quali sono i dati, quali le incognite? quali sono le condizioni? sono soddisfacibili, ridondanti, contraddittorie? figure, notazione Make things as simple as possible, but not simpler. (A. Einstein) For every complex problem there is an answer that is clear, simple, and wrong. (H.L. Mencken)

problem solving (2) Plan elaborare un piano mettere in relazione dati e incognite metodologie: divide et impera, composizione, astrazione... computational thinking cominciare a risolvere un problema più semplice (vincoli rilassati) If you can't solve a problem... then there is an easier problem you can solve: find it. (G. Polya)

problem solving (3) Do eseguire il piano controllare ogni passo è corretto? (4) Check controllare la soluzione è corretta? è ottenibile in altro modo? il risultato è utilizzabile per altri problemi?

sintesi Analisi Verifica della soluzione Progettazione

esempio: analisi l analista deve raccogliere le informazioni necessarie per definire il problema individua le informazioni iniziali significative individuare le informazioni finali (risultato) esempio: Pitagora identifica come obiettivo la ricerca del valore dell ipotenusa di un triangolo rettangolo e come dati iniziali significativi i valori dei due cateti

esempio: progettazione il progettista fornisce una descrizione del procedimento che porta alla soluzione del problema (algoritmo) specifica le azioni da eseguire per passare dai dati iniziali ai dati intermedi ai risultati finali esempio: calcola il quadrato del primo cateto calcola il quadrato del secondo cateto somma i due valori ottenuti calcola la radice quadrata del valore ottenuto

esempio: programmazione o se il risolutore è un computer l algoritmo deve essere tradotto in un linguaggio di programmazione """ pitagora """ import math # dati di input c1 = float(input("primo cateto: ")) c2 = float(input("secondo cateto: ")) # calcola il quadrato del primo cateto q1 = math.pow(c1,2) # calcola il quadrato del secondo cateto q2 = math.pow(c2,2) # somma i due valori ottenuti s = q1 + q2 # calcola la radice quadrata del valore ottenuto ip = math.sqrt(s) # dati di output print("ipotenusa",ip)

esempio: verifica della soluzione il tester verifica 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

definizioni o algoritmo: procedimento che risolve un determinato problema attraverso un numero finito di passi (800~ بو جعفر محمد خوارزمی (al-khwarizmi, elementari o dati: iniziali (istanza problema), intermedi, finali (soluzione) o passi elementari: azioni atomiche non scomponibili in azioni più semplici o processo (esecuzione): sequenza ordinata di passi o proprietà dell algoritmo: finitezza, non ambiguità, realizzabilità, efficienza...

problema o data la lunghezza di un lato di un triangolo equilatero trovare il perimetro e l area

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 l esecutore esegue le istruzioni sui dati iniziali per giungere ai dati finali l esecutore deve comprendere, interpretare correttamente e deve essere in grado di eseguire le istruzioni per trasformarle in azioni

classi di problemi o molti problemi hanno radice comune, appartengono alla stessa classe o uno stesso elenco di istruzioni può servire per la soluzione di problemi specifici che differiscono solo per le informazioni iniziali o la sequenza di istruzioni che permette di trovare l ipotenusa del triangolo con cateti di cm 3 e cm 4 (problema specifico) è la stesa che permette di trovare l ipotenusa di un qualsiasi triangolo rettangolo con cateti di dimensione x, y. o i cateti x, y sono i parametri che caratterizzano questa classe di problemi o è importante quindi non trattare un problema specifico ma una classe di problemi

esempi di algoritmi o sono esempi di algoritmi le procedure che permettono di: o e o effettuare le quattro operazioni matematiche o ordinare di una sequenza di numeri o verificare la presenza di una parola in un testo o simulare il volo di un aereo o far diventare il computer un grande giocatore di scacchi o la ricetta per la torta al cioccolato? o le istruzioni di IKEA per montare la libreria MALSJÖ?

linguaggi algoritmici o caratteristiche di un linguaggio algoritmico o non ambiguità o capacità di esplicitare il flusso di esecuzione delle istruzioni o deve contenere istruzioni di tipo: o operativo (fare qualcosa) o input/output (comunicare con il mondo esterno) o decisionale (variare il flusso di esecuzione)

diagrammi di flusso o diagramma di flusso (flow-chart): o rappresentazione grafica di algoritmi o più efficace e meno ambigua di una descrizione a parole o è un grafo orientato o due tipi di entità: o nodi o archi

tipi di nodi

programmazione strutturata o strutture di controllo: o sequenza o selezione o iterazione Qualunque algoritmo può essere implementato utilizzando queste tre sole strutture (Teorema di Böhm-Jacopini, 1966)

strutture di controllo esempi quotidiani di if e while: se non c'è il lievito, usare due cucchiaini di bicarbonato battere gli albumi finché non montano

blockly http://blockly-games.appspot.com/maze http://www.ce.unipr.it/~aferrari/codowood/maze.html

problema o determinare se un numero è primo o analisi: o un numero è primo se è divisibile esattamente solo per 1 e per se stesso o si cerca il minimo divisore intero maggiore di 1 del numero o se è uguale al numero stesso allora questo è primo o dato iniziale: o un qualsiasi numero intero o dato finale: o «primo» o «non primo»

progettazione o provare a dividere il numero per 2, per 3, per 4 e così fino a che il resto della divisione intera è diverso da zero o i tentativi si esauriscono quando il resto è uguale a zero (si è individuato un divisore esatto del numero) o se il divisore è uguale al numero stesso allora questo è un numero primo

flow chart

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

pensare prima di risolvere 1. 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) 2. 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? 3. 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. Quanto sono distanti un minuto prima della collisione?

definire i dati di input e di output 1. 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? 2. dato il lato trovare il perimetro e l area del quadrato 3. data l età di 3 persone calcolare l età media 4. data la colonna vincente del totocalcio, si vuole sapere quanti segni sono stati indovinati nella colonna giocata 5. date le informazioni sui nomi degli studenti, di una classe composta da 28 alunni, e sui voti che essi hanno ottenuto in una prova, si vuole stabilire il voto medio della classe 6. 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 7. 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 1. dato il raggio calcolare il perimetro e l area del cerchio 2. date le coordinate di due punti A e B trovare le coordinate del punto medio del segmento AB 3. 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 4. 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 5. 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.