Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Risoluzione dei problemi Risoluzione di un problema Le azioni che gli esseri umani compiono ogni giorno sono nella maggior parte dei casi finalizzate alla soluzione di problemi in modo consapevole o inconsapevole Le decisioni e le conseguenti azioni intraprese sono dettate da schemi presenti nella nostra mente che si sono venuti formando negli anni sin dalla più piccola età e sono legati agli stimoli che si sono via via proposti alla nostra attenzione. Le attività che svolgiamo possono essere schematicamente identificate in: 1- Conoscenza di come si risolve il problema 2 - Effettiva capacità di risolvere il problema 3 - Capacità di descrivere il procedimento di soluzione del problema Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 2 of 16 1
Istruttore - Esecutore Problema Primo soggetto istruttore Analisi Soluzione analitica Descrizione Soluzione descrittiva Interpretazione Descrizione interpretata Attuazione Soluzione effettiva Secondo soggetto esecutore Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 3 of 16 Istruttore Descrizione dell esecuzione del problema: 1- effettuata avendo scomposto il problema nelle sue singole azioni elementari 2 - descrivere ogni azione elementare in modo che non ci sia nessuna ambiguità durante l esecuzione 3 - le azioni elementari devono essere poste in una forma tale che l esecutore sia in grado di comprendere pienamente ciò che deve svolgere nella giusta sequenza delle azioni. Le azioni elementari sono indicate con il termine ISTRUZIONI / AZIONI ELEMENTARI La descrizione è indicata con il termine PROCEDURA EFFETTIVA Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 4 of 16 2
Esecutore La procedura per l esecutore è composta quindi da: 1 - tutte le azioni elementari che l esecutore deve svolgere in modo determinato ed in un tempo finito 2 - è fissato l ordine di esecuzione delle azioni (istruzioni) 3 - è esplicitamente specificato il modo in cui l azione utilizza i risultati prodotti dalle azioni predenti. Dati input AZIONE Dati output Calcolo della superficie di un cerchio / Calcolo della superficie di una figura complessa Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 5 of 16 Soggetto istruttore Tale soggetto deve conoscere o definire le capacità dell esecutore al fine di impostare la descrizione dell esecuzione in modo che l esecutore sia perfettamente in grado di svolgere le azioni comprendendo pienamente le operazioni da svolgere. Soggetto esecutore Tale soggetto deve interpretare correttamente le istruzioni ed associare ad ognuna una azione specifica che lo conduca alla soluzione del problema. Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 6 of 16 3
Ambiguità Le ambiguità derivano spesso dal fatto che lo stesso problema può essere risolto secondo procedure diverse o sequenzialità diverse oppure su termini del linguaggio non specifici. Per evitare ciò è necessario: 1 - il linguaggio che l esecutore deve interpretare sia definito in modo completo e non ambiguo (caratteristica sintattica) 2 - l insieme delle azioni che l esecutore è in grado di compiere deve essere definito e tali azioni devono essere elementari per l esecutore (caratteristica pragmatica) 3 - l insieme delle regole di associazione tra i costrutti del linguaggio e azioni deve essere definito e non ambiguo (caratteristica semantica) Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 7 of 16 Algoritmo Le soluzioni a problemi per esecutori che siano caratterizzate secondo le indicazioni 1, 2, 3 vengono definiti ALGORITMI Gli algoritmi sono quindi una sequenza finita di istruzioni, fornite in un linguaggio definito, non ambigue attraverso le quali un essere umano addestrato o una macchina svolgono a partire da informazioni d ingresso un compito al fine di ottenere una soluzione in un tempo finito Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 8 of 16 4
Determinare tra due numeri x ed y il maggiore P 1 - leggi il valore ed assegnalo alla variabile x P 2 - leggi il valore ed assegnalo alla variabile y P 3 calcola la differenza x - y P 4 assegna il risultato alla variabile z P 5 rispondi alla domanda z è maggiore di 0 se la risposta è affermativa salta al punto P 6 altrimenti (risposta negativa) esegui il passo P 7. P 6 stampa la frase Il numero maggiore è seguita dal valore contenuto in x e prosegui con il passo P 8 P 7 stampa la frase Il numero maggiore è seguita dal valore contenuto in y e prosegui con il passo P 8 P 8 termina l esecuzione Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 9 of 16 Rappresentazione degli algoritmi La costruzione dell algoritmo per la risoluzione del problema è un passo fondamentale per ottenere al soluzione attraverso un esecutore A questo fine risulta utile porre sotto forma grafica quelli che sono i passi da compiere per passare dalle informazioni di ingresso alle soluzioni o informazioni di uscita. Per questo si utilizza la metodologia descrittiva a diagrammi di flusso. Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 10 of 16 5
Diagramma di flusso Un diagramma di flusso descrive per blocchi funzionali i passi che devono essere effettuati per raggiungere la soluzione. Rappresenta il percorso e tutte le operazioni necessarie, strutturate come singole azioni semplici, che devono essere svolte, sempre e comunque anche da un operatore umano, per giungere al risultato desiderato partendo dalle informazioni identificate come dati di ingresso Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 11 of 16 Simbologia Inizio Inizio/Fine Fine Operazione di Ingresso/Uscita I/O SELEZIONE AZIONE SOTTOPROGRAMMA Unità disco Unità nastro Unità stampa Unità Video grafica Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 12 of 16 6
Diagramma di flusso esempio precedente Inizio Prepara spazio per x, y, z Leggi X Leggi Y X Y Z Memoria dati CALCOLA X-Y e salvalo in Z Domanda Z > 0 Stampa la frase Il numero maggiore è Valore di X Stampa la frase Il numero maggiore è Valore di Y Fine Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 13 of 16 Diagramma di flusso per ricerca su n valori Inizio Prepara spazio per x, y, z Leggi X Leggi Y X Y Z Memoria dati Z = max ( X, Y) Ci sono ancora Valori da considerare? Leggi X Z = max (X, Z ) Stampa la frase Il massimo tra i numeri inseriti è Valore di Z Fine Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 14 of 16 7
SubRoutine calcola max(a, B) Trasferimento dati CALCOLA A-B e salvalo in C A B C Memoria dati Domanda C > 0? B A Fine Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 15 of 16 Variabili temporanee - scambio dati Ruolo delle variabili temporanee Scambiare x con y se y < x Passo X Y 1 8 5 2 Y X 8 8 3 8 8 4 X Y 8 8 5 8 8 1 8 5 2 X Y 5 5 3 5 5 4 Y X 5 5 5 5 5 Y X X Y X Y Y X T X X Y Y T T Y Y X X T Passo T X Y 1 8 5 2 T X 8 8 5 3 8 8 5 4 X Y 8 5 5 5 8 5 5 6 Y T 8 5 8 7 8 5 8 1 8 5 2 T Y 5 8 5 3 5 8 5 4 Y X 5 8 8 5 5 8 8 6 X T 5 5 8 7 5 5 8 Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 16 of 16 8
INIZIO CERCA LA MACCHINETTA DEL CAFFE APRENDO GLI SPORTELLI DELLA CUCINA TROVATA? APRI LA MACCHINETTA DEL CAFFE CERCA IL RUBINETTO DELL ACQUA TROVATO? RIEMPI LA MACCHINETTA E PIENA? Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 17 of 16 RIEMPIRE CON IL CAFFE CON CUCCHIANI CALIBRATO E PIE? CHIUDI LA MACCHINETTA METTILA SULLA CUCINA A GAS ACCENDI IL FORNELLO ACCESO? CONTA = CONTA + 1 CONTA = 3? CONTROLLA IL RUBINETTO GENERALE CONTA = 0 Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 18 of 16 9
CONTROLLA CHE A USCITO TUTTO E USCITO TUTTO? ATTESA 10 sec CHIUDI IL GAS PRENDI IL NUMERO DI TAZZINE 4 NUMERO = 1 VERSA IL CAFFE NELLA TAZZINA NUMERO E PIENA? NUMERO = NUMERO + 1 PRENDI UN ALTRA TAZZINA NUMERO > 4? FINE PROCESSO Informatica - Ingegneria Medica -2015 - Franco Del Bolgia Slide 19 of 16 Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Informatica - Ingegneria Medica - 2015 - Franco Del Bolgia Slide 20 of 16 10