Corso di Informatica Modulo T1 1 - Il concetto di problema 1 Prerequisiti Concetti intuitivi di: Proporzione Problema Variabile Numeri interi e reali 2 1
Introduzione Nel risolvere un problema abbiamo visto che occorre scrivere un procedimento risolutivo in linguaggio naturale. Questo linguaggio è ancora molto complesso per essere compreso dal calcolatore, perciò dobbiamo affrontare i seguenti problemi: Come si può rendere comprensibile all esecutore il procedimento risolutivo di un problema? Qual è il repertorio che possiamo usare? Rispondiamo a questi interessanti quesiti. 3 Esecutore e risolutore Nello studio di un problema occorre distinguere tra: risolutore, colui che individua il procedimento risolutivo (soluzione) che dagli input conduce agli output. Risolutore esecutore, colui che esegue il processo risolutivo per determinati valori di input ed ottiene determinati valori in output (risultato). Esecutore 4 2
Il risolutore tipicamente è l uomo, che sfruttando intelligenza, esperienza, intuito è in grado di: risolvere un problema di geometria; sviluppare la traccia di un tema; cercare un percorso stradale alternativo 5 mentre l esecutore in genere è una macchina, un dispositivo o un apparato che sfruttando caratteristiche meccaniche, elettriche, idrauliche è in grado di: svolgere calcoli (calcolatrice); innalzare carichi (ascensore); eseguire programmi (calcolatore); controllare gli apparati di un veicolo (centralina) 6 3
Consultare un orario ferroviario ATTIVITA : nel cercare un treno Roma (Tiburtina) Parigi, in genere, quali domande ci poniamo relativamente al percorso e ai tempi? 1. Quali treni partono da Roma-Tiburtina? 2. Quale treno impiega il minor tempo per il tragitto? 3. Quali viaggi prevedono il minimo numero di cambi? 7 Cambiare una ruota forata ATTIVITA : Nel cambiare una ruota forata, in genere, quali domande ci poniamo? 1. Cosa mi serve per cambiare la ruota? 2. Cosa devo saper fare per cambiarla? 3. In che ordine devo eseguire le varie operazioni? 4. Come verifico di aver fatto le cose correttamente? 8 4
Svolgere un calcolo ATTIVITA : Nel dover svolgere un calcolo, in genere, quali domande ci poniamo? 1. Quali dati ho a disposizione? 2. Conosco le tabelline? 3. So scrivere i numeri? 4. In che ordine vanno eseguite le operazioni? 9 Il concetto di problema Un problema è un quesito che attende una risposta che non sappiamo dare con immediatezza. Risolvere l equazione 3 * x - 5 = 0 Testo del problema Risultato X = 5/3 Dati (input) 3 * 5/3-5 = 0 0 = 0 (Sì) Procedimento risolutivo Verifica (Sì/No) 10 5
Analisi del problema Per giungere al procedimento risolutivo, dobbiamo affrontare un compito detto analisi del problema (che indichiamo con Fase 1), che prevede: a. Analisi del testo b. Creazione di un eventuale modello che rappresenti il problema e che serva a chiarirne il significato c. Tabella delle variabili di I/O d. Descrizione del procedimento risolutivo del problema 11 Analisi del problema a. Analisi del testo Consiste nei seguenti passi: P1: precisare gli obiettivi, descrivendo in dettaglio cosa chiede il problema; P2: eliminare i dettagli inutili, in quanto spesso non tutte le frasi e le parole presenti nel testo sono necessari; P3: distinguere i dati che sono menzionati nel testo (dati espliciti), da quelli espressi indirettamente (dati impliciti); P4: stabilire di che argomento si tratti (aritmetica, matematica, fisica, elaborazione di parole e frasi, ); 12 6
Analisi del problema a. Analisi del testo Verificare che il problema sia ben posto P5: verificare che il problema sia solubile, ossia che abbia senso cercarne una soluzione; P6: verificare che l insieme dei dati in ingresso sia completo; P7: verificare che esiste un solo criterio di verifica, ossia un modo per stabilire che i risultati siano quelli cercati; L analisi del testo è un documento scritto che si ottiene rispondendo a ciascuno dei punti P1 P7 13 Analisi del problema b. Creazione di un modello Per rappresentare il problema possiamo usare modelli: iconici, che fanno uso di immagini grafici, che fanno uso di grafici e diagrammi matematici, che fanno uso di formule e relazioni matematiche A = b * h / 2 tabellari, quando i dati sono sotto forma di tabella 14 7
Analisi del problema c. Tabella delle variabili di I/O È una tabella del tipo seguente : Il nome è scelto da noi Dati Nome Tipo Significato INPUT v1 Reale Significato di v1 v2 Reale Significato di v2 Intera OUTPUT... Reale. Quali tipi possiamo usare? 15 Analisi del problema d. Procedimento risolutivo Un procedimento risolutivo è la descrizione in linguaggio naturale ideata dal risolutore che, operando sui dati in ingresso, produce i dati in uscita. Il procedimento risolutivo rappresenta la soluzione del problema che, in corrispondenza a certi dati produce determinati risultati Dati (Input) La descrizione del procedimento risolutivo è un testo in linguaggio naturale che spiega come viene risolto il problema (soluzione) Risultati (Output) Passo 2 Passo 1 Passo n 16 8
Altezza di una piramide ATTIVITA : Data una piramide di pietra bianca, posta su una superficie di sabbia, individuare un modo per calcolarne l altezza Fase 1 Il problema può essere risolto considerando la proporzionalità diretta tra l ombra della piramide e quella di un bastone piantato in terra di fronte ad essa, di cui si conosca l altezza. Modello del problema Raggi solari hp Pertanto vale la relazione: per cui: op hb ob hp : hb = op : ob hp = hb * op : ob 17 Altezza di una piramide ATTIVITA : Data una piramide di pietra bianca, posta su una superficie di sabbia, individuare un modo per calcolarne l altezza P1: precisare gli obiettivi P2: eliminare i dettagli inutili P3: individuare dati espliciti e dati impliciti P4: conoscere l argomento Il problema chiede di calcolare l altezza della piramide e la risposta è rappresentata da un numero reale. Le frasi di pietra bianca e posta su una superficie di sabbia sono dettagli inutili. I dati espliciti sono hb, op e ob, che supponiamo essere numeri reali. Come dati impliciti, assumiamo di conoscere le proporzioni. Occorre conoscere le operazioni aritmetiche, le proporzioni e saper misurare lunghezze. 18 9
Altezza di una piramide P5: il problema non è insolubile Se ob è diversa da 0, il problema è solubile e la soluzione si ricava mediante la proporzione detta. P6: l insieme dei dati in ingresso è completo I dati in ingresso hb, op e ob sono sufficienti a risolvere il problema. P7: Esiste un solo criterio di verifica La soluzione calcolata è unica e soddisfa la richiesta. 19 Altezza di una piramide ATTIVITA : tracciare la tabella delle variabili Dati Nome Tipo Significato INPUT hb Reale Altezza bastone op Reale Ombra della piramide ob Reale Ombra del bastone OUTPUT hp Reale Altezza della piramide 20 10
Altezza di una piramide ATTIVITA : scrivere il procedimento risolutivo Procedimento risolutivo Si acquisiscono i valori delle variabili hb, ob e op. Si ricava il valore hp dalla relazione hp = hb * op : ob e si comunica il risultato all esterno. 21 Orario ferroviario ATTIVITA : Quale treno parte da Roma-Tiburtina, richiede meno cambi e impiega meno tempo? Fase 1 P1: precisare gli obiettivi P2: eliminare i dettagli inutili P3: individuare dati espliciti e dati impliciti P4: conoscere l argomento La risposta è rappresentata da un numero intero, indicante il numero del treno. Ci interessa solo la seconda colonna della tabella Sono la città di partenza, il numero del treno. Come dati impliciti supponiamo che la tabella-orario sia aggiornata. Saper leggere una tabella a doppia entrata. 22 11
Orario ferroviario ATTIVITA : Quale treno parte da Roma-Tiburtina, richiede meno cambi e impiega meno tempo? P5: il problema non è insolubile P6: l insieme dei dati in ingresso è completo P7: Esiste un solo criterio di verifica Il problema è solubile e la soluzione può essere il numero del treno, oppure ad esempio 0 per indicare che nessun treno risponde alla richiesta I dati in ingresso (tabella e nome della città di partenza) sono sufficienti. Dalla tabella si verifica che il treno n. 1 soddisfa la richiesta 23 Orario ferroviario ATTIVITA : Quale treno parte da Roma-Tiburtina? Modello del problema 24 12
Orario ferroviario ATTIVITA : scrivere la tabella delle variabili Dati Nome Tipo Significato INPUT partenza Stringa Nome della città di partenza OUTPUT n Intero Numero del convoglio 25 Orario ferroviario ATTIVITA : scrivere il procedimento risolutivo Procedimento risolutivo Si acquisisce dall esterno il nome della stazione di partenza (partenza). Si esamina la tabella, riga per riga, fino a trovare la riga in cui il campo Stazione-Fermata contenga la stringa partenza, oppure si trova la fine dalla tabella. Se è stata trovata la stazione di partenza, si comunica il numero n del convoglio presente sulla stessa riga, altrimenti si stampa il valore 0, indicante che nessun convoglio richiesto è stato trovato. 26 13
Classe di problemi Dati 1 Risultati 1 Dati 2 PROBLEMA Procedimento risolutivo Risultati 2 Dati 3 Risultati 3 Un procedimento risolutivo non risolve un solo problema, ma una classe di problemi 27 Argomenti Esecutore e risolutore Il concetto di problema Il risolutore mentre l esecutore Consultare un orario ferroviario Cambiare una ruota forata Svolgere un calcolo Il concetto di problema Analisi del problema a. Analisi del testo b. Creazione di un modello c. Tabella delle variabili di I/O d. Procedimento risolutivo Classe di problemi Altezza di una piramide Orario ferroviario Classe di problemi 28 14
Altre fonti di informazione G.Callegarin Corso di Informatica 1, ed. CEDAM M. Pellerey-Informatica: fondamenti culturali e tecnologici, ed. SEI 29 15