Dal problema al processo risolutivo
Risolvere un problema Per risolvere un problema bisogna fornire al computer le istruzioni da eseguire e i dati si cui le istruzioni devono operare in un codice a lui comprensibile. La successione delle operazioni da compiere per raggiungere il risultato richiesto si chiama algoritmo.
Linguaggi per il computer Le istruzioni di un algoritmo devono essere convertite in un codice comprensibile (codifica). Il risultato della traduzione si chiama programma (o codice). Distinguiamo tra linguaggi di alto livello e di basso livello
Linguaggi di programmazione Linguaggi di alto livello, perché usano parole della lingua naturale, quindi vicino all’utente Linguaggi utilizzati per scrivere programmi: C++, Java, Visual Basic,… Linguaggi di programmazione Utilizzato dal computer al suo interno; è composto da istruzioni elementari inviate al processore: esse sono formate da sequenze di bit , cioè 0 e 1. Linguaggio macchina Linguaggi di basso livello, perché è vicino al funzionamento fisico del computer
Problemi da risolvere: il modello Nell’affrontare un problema è opportuno farne un’analisi, individuarne le caratteristiche fondamentali. L’analisi del problema produce una rappresentazione semplificata della realtà, cioè un modello Un modello è una forma semplificata della realtà che tiene conto di tutti gli elementi determinanti per la risoluzione di un problema e solo di essi
Modelli iconici Modelli molto vicini alla realtà
Modelli matematici Modelli con un alto livello di astrazione
Dal problema al modello Il passaggio dal problema al modello è un processo di formalizzazione che individua le entità caratterizzanti della realtà osservata e le relazioni che intercorrono tra esse. Il processo risolutore consiste nell’acquisire i dati disponibili (dati di ingresso o di input), elaborarli e produrre i risultati (dati di uscita o di output)
Esempio Calcolare l’area di un triangolo rettangolo note le misure dei due cateti Richiesta: calcolare l’area del triangolo Dati di input: le misure dei cateti, per esempio 5 e 10 Relazioni: la formula dell’area del triangolo Processo risolutivo: calcolo dell’area: area = (cateto1 x cateto2) : 2 Soluzione numerica: calcolo dell’area: area = (5 x 10) : 2 = 25 Output: 25
Passi per risolvere un problema Individuare con precisione le richieste, cioè gli obiettivi del problema. Costruire un modello. Nella costruzione del modello si deve tenere conto solo delle informazioni significative per la risoluzione del problema Individuare le relazioni, i teoremi, le proprietà che possono essere utili per individuare il processo risolutivo Costruire la procedura di risoluzione, tenendo conto di tutte le possibilità Esecuzione della procedura risolutiva e comunicazione dei risultati
Algoritmo Un algoritmo è una successione finita di tutte le operazioni da compiere per risolvere un problema
Passi per risolvere un problema In generale, per risolvere un problema affronteremo i seguenti passi: individuazione degli obiettivi costruzione del modello del problema individuazione del processo risolutivo costruzione dell’algoritmo esecuzione dell’algoritmo comunicazione dei risultati
Il risolutore e l’esecutore Il risolutore è colui che individua e progetto il percorso di risoluzione di un problema e deve tenere conto dell’esecutore, cioè di colui che materialmente esegue le operazioni che portano alla soluzione
Esempio Esempio del libro di testo Pianificazione di un viaggio RICHIESTE: Quanto costa il viaggio? Quanto il soggiorno? Quanto il totale e quanto per persona? MODELLO: individuazione delle informazioni significative e delle formule (Litri carburante; costo carburante, costo pedaggio, costo soggiorno) Carburante Pedaggio Viaggio Bed & Breakfast Soggiorno
Esempio (continua) INDIVIDUAZIONE DEL PROCESSO RISOLUTIVO DATI DISPONIBILI: numero persone, consumo automobile, costo al litro del carburante,… PROCEDIMENTO: descrizione del modo di effettuare il calcolo
Esempio (continua) COSTRUZIONE DELL’ALGORITMO Si deve distinguere chi deve eseguire l’algoritmo: se è una persona, si indicano i calcoli da eseguire con un linguaggio naturale se è una computer, si devono progettare algoritmi che siano eseguibili da una macchina, per comunicare con esso e si deve usare un linguaggio appropriato.
Abilità di un computer e caratteristiche di un linguaggio Quando si scrive un algoritmo si deve tenere conto di alcuni fattori: le abilità che possiamo attribuire a un computer le caratteristiche e le possibilità del linguaggio che usiamo per scrivere l’algoritmo
Abilità Possiamo attribuire a un computer le seguenti abilità: calcolare la somma, la differenza, il prodotto e il quoziente di due numeri (+, -, x, :); svolgere operazioni di confronto (>, ≥, <, ≤, ≠, ⌐); trasferire dati da una zona all’altra della memoria; acquisire dati dall’esterno; comunicare dati all’ambiente esterno. NOTA: NON possiamo attribuire l’abilità al computer di prendere iniziative in modo autonomo
I dati nell’algoritmo Ai dati presenti nell’algoritmo deve essere dati un nome (per esempio Distanza, CostoCarburanteAlLitro, …) deve essere specificato il tipo dei dati che intendiamo utilizzare, per esempio dati numerici (numeri interi o reali) o dati alfanumerici (singoli caratteri o stringhe) Lato = 100 Nome =‘’Carlo’’ Via = ‘’Corso Italia 32’’
Riepilogo La stesura di un algoritmo eseguibile da parte di un computer deve contenere i nomi dei dati e degli oggetti usati e la loro tipologia la successione delle operazioni da compiere sui dati per produrre i risultati
Esercizi Scrivere un algoritmo per risolvere il problema del calcolo del perimetro di un quadrato Scrivere un algoritmo per risolvere il problema del calcolo dell’area di un rettangolo A= axb P=4xl a lato = l b