Dal problema al processo risolutivo Dal problema al processo risolutivo 1 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. 2 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 3 Linguaggi di programmazione Linguaggi di Linguaggi di alto livello, perché …………………………………………………… ……………………………………. programmazione • Linguaggi utilizzati per scrivere programmi: C++, Java, Visual Basic,… Linguaggio macchina Linguaggi di basso livello, ………………………. • Utilizzato dal computer al suo interno; è composto da istruzioni elementari inviate al processore: esse sono formate da sequenze di bit , cioè 0 e 1. 4 Problemi da risolvere: il modello • Nell’affrontare un problema è opportuno farne un’analisi, individuarne …………………………………………………….. • L’analisi del problema produce ………………………………………… • Un modello è ……………………………… ……………..……………. 5 Modelli iconici • …………………………. 6 Modelli matematici • Modelli …………………………. 7 Dal problema al modello • …………………………………………………………. • Il processo risolutore …………………………… • input • output 8 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 9 Passi per risolvere un problema 1. Individuare con precisione le richieste, cioè gli obiettivi del problema. 2. Costruire un modello. 3. Nella costruzione del modello si deve tenere conto solo delle informazioni significative per la risoluzione del problema 4. Individuare le relazioni, i teoremi, le proprietà che possono essere utili per individuare il processo risolutivo 5. Costruire la procedura di risoluzione, tenendo conto di tutte le possibilità 6. Esecuzione della procedura risolutiva e comunicazione dei risultati 10 Algoritmo • Un algoritmo è …………………………………………………………… ……………………………………….. 11 Passi per risolvere un problema • In generale, per risolvere un problema affronteremo i seguenti passi: 1. 2. 3. 4. 5. 6. individuazione degli obiettivi costruzione del modello del problema individuazione del processo risolutivo costruzione dell’algoritmo esecuzione dell’algoritmo comunicazione dei risultati 12 Il risolutore e l’esecutore • Il risolutore è …………………………… • L’esecutore è……………………………………. 13 Esempio • Esempio del libro di testo – Pianificazione di un viaggio 1. RICHIESTE: Quanto costa il viaggio? Quanto il soggiorno? Quanto il totale e quanto per persona? 2. MODELLO: individuazione delle informazioni significative e delle formule (Litri carburante; costo carburante, costo pedaggio, costo soggiorno) Viaggio • Carburante • Pedaggio Soggiorno • Bed & Breakfast 14 Esempio (continua) 3. INDIVIDUAZIONE DEL PROCESSO RISOLUTIVO a) DATI DISPONIBILI: numero persone, consumo automobile, costo al litro del carburante,… b) PROCEDIMENTO: descrizione del modo di effettuare il calcolo 15 Esempio (continua) 6. COSTRUZIONE DELL’ALGORITMO Si deve distinguere chi deve eseguire l’algoritmo: a) se è una persona, si indicano i calcoli da eseguire con un linguaggio naturale b) se è una computer, si devono progettare algoritmi che siano eseguibili da una macchina, per comunicare con esso e si deve usare un linguaggio appropriato. 16 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 17 Abilità • Possiamo attribuire a un computer le seguenti abilità: 1. calcolare la somma, la differenza, il prodotto e il quoziente di due numeri (+, -, x, :); 2. svolgere operazioni di confronto (>, ≥, <, ≤, ≠, ⌐); 3. trasferire dati da una zona all’altra della memoria; 4. acquisire dati dall’esterno; 5. comunicare dati all’ambiente esterno. NOTA: NON possiamo attribuire l’abilità al computer di prendere iniziative in modo autonomo 18 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’’ 19 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 20 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 P=4xl lato = l A= axb a b 21