La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

IL CONCETTO DI ALGORITMO

Presentazioni simili


Presentazione sul tema: "IL CONCETTO DI ALGORITMO"— Transcript della presentazione:

1 IL CONCETTO DI ALGORITMO

2 Definizione di Algoritmo
Un algoritmo è un elenco finito di istruzioni univocamente interpretabili, ciascuna delle quali deve essere precisamente definita e la cui esecuzione si arresta per fornire i risultati di una classe di problemi per ogni valore dei dati di ingresso. In generale un algoritmo può essere visto come una funzione da un dominio d’ingresso ad uno d’uscita. Algoritmo Dati(Input) x Dati(Output) f(x)

3 Per definire un algoritmo occorre
Condurre un'attenta analisi del problema. Individuare i possibili ingressi. Precisare le uscite. Definire completamente e dettagliatamente la sequenza dei passi che portano alla soluzione.

4 Proprietà di un algoritmo
Non ambiguità: le istruzioni devono essere univocamente interpretabili dall’esecutore dell’algoritmo Eseguibilità: l’esecutore deve essere in grado di eseguire ogni istruzione in un tempo finito. Finitezza: l’esecuzione di un algoritmo deve terminare in un tempo finito per ogni insieme di valori in ingresso. Realizzabilità: l’esecutore deve essere in grado di eseguire l’algoritmo con le risorse a sua disposizione (informazioni + tecnologia). Generalità: un algoritmo, compatibilmente con i vincoli espressi dal problema, si occupa della risoluzione di famiglie di problemi.

5 Proprietà di un algoritmo
Correttezza: l’algoritmo permette effettivamente di risolvere il problema, e eseguito più volte e da diversi esecutori, a parità di premesse, deve giungere a medesimi risultati. Efficienza: l’esecuzione dell’algoritmo richiede un uso limitato di risorse. Leggibilità: essere facilmente comprensibile. Modificabilità: essere facilmente modificabile, a fronte di (piccole) modifiche nelle specifiche del problema risolto dall’algoritmo. Con il termine algoritmo, quindi si indica una sequenza finita di passi effettuabili per risolvere una classe di problemi in un tempo finito.

6 Algoritmi equivalenti
Due algoritmi si dicono equivalenti quando: Hanno lo stesso dominio di ingresso; Hanno lo stesso dominio di uscita; In corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita. Due algoritmi equivalenti: • Forniscono lo stesso risultato • Ma possono avere diversa efficienza • E possono essere profondamente diversi!

7 Come si costruisce un algoritmo
Scrivere un algoritmo è una attività complessa. Una metodologia efficace nella progettazione degli algoritmi è basata sulla strategia top-down (dall’alto verso il basso). La strategia top-down consiste nel spezzare, frantumare, analizzare, decomporre il lavoro da fare o il compito/attività da eseguire in sotto-problemi o semplici attività/istruzioni. Lo scopo è quello di individuare delle fasi del lavoro e in quale sequenza devono essere eseguite, in modo che si arrivi ad una soluzione congiunta di tutti i sotto-problemi per portare a termine il lavoro o compito assegnato che costituisce la soluzione del problema iniziale. Occorre creare una procedura di lavoro.

8 Una metodologia per la progettazione di algoritmi
Progettazione di algoritmi per raffinamenti successivi: Scrivi una versione iniziale dell’algoritmo. una sequenza di uno o più passi. Raffina ciascun passo dell’algoritmo, fintanto che l’algoritmo non sia completo di tutti i dettagli. il raffinamento di un passo consiste nella sostituzione del passo con una istruzione semplice o con una istruzione di controllo. La progettazione di un algoritmo per raffinamenti successivi è una attività iterativa. il raffinamento di un passo può richiedere ulteriori raffinamenti.

9 Quali ragionamenti fare…
Nell’ideare un algoritmo torna utile anche pensare ai ragionamenti intuitivi che facciamo mentalmente per risolvere alcuni problemi. Talvolta la costruzione di un algoritmo si può avvalere di questi ragionamenti. Si tratta proprio di rendere espliciti questi ragionamenti, renderli concreti, ancorandoli con i costrutti dell’algoritmo.

10 Elementi degli algoritmi
Costanti e Variabili possono rappresentare: Dati iniziali del problema, informazioni ausiliarie, risultati parziali, risultati finali. Un dato è costante quando il suo valore non può essere aggiornato durante l’esecuzione dell’algoritmo. Una variabile è una coppia nome, valore, che può essere immaginata come una scatola sulla quale è scritto un nome e che può contenere al suo interno un valore.

11 Elementi degli algoritmi
L’assegnamento: è l’operazione che permette di modificare il valore di una variabile. L’operazione di assegnamento va fatta con il nome di una e una sola variabile, e può esserci assegnata una costante, una variabile o anche un’espressione complessa. Il tipo di dato della variabile deve essere compatibile con il tipo di dato assegnato/ottenuto dall’espressione.

12 Elementi degli algoritmi
Operatori aritmetici: +, -, , /, ... agiscono sugli operandi (variabili o costanti). producono un valore numerico. Operatori di confronto: >, =, <, ... producono un valore logico (vero o falso). Funzioni: cos(x), log(x), ... agiscono su valori detti parametri (variabili oppure costanti). producono un valore.

13 Elementi degli algoritmi
Procedure: Leggi(X), Scrivi(N), ... agiscono su valori detti parametri. effettuano operazioni. Espressione: 5+cos(Y), ... composizione di operatori, funzioni, variabili e costanti. ad essa è associato un valore.

14 Elementi degli algoritmi
Strutture di controllo: Sequenza: le operazioni sono eseguite una in seguito all’altra Selezione: blocchi di operazioni sono eseguite in alternativa Iterazione: blocchi di operazioni sono eseguite diverse volte

15 Come si rappresenta un algoritmo
I diagramma di flusso: elementi grafici per indicare il flusso di controllo e i tipi di operazioni. elementi testuali per descrivere le operazioni e gli oggetti. Pseudo-codice: completamente testuale. costrutti di controllo descritti con la forma e le parole chiave dei linguaggi di programmazione. le operazioni possono essere descritte in modo informale.

16 Esempi Calcolo dell’area di un rettangolo: Input dell’altezza (H)
START Calcolo dell’area di un rettangolo: Input dell’altezza (H) Input della base (B) Calcola l’area con la moltiplicazione di base per altezza (B x H) Output del risultato (Area) Leggi Altezza (H) Leggi Base (B) Area = B x H Stampa Area STOP

17 Esempi Verifica del max tra due numeri: Input del primo numero(A)
START Verifica del max tra due numeri: Input del primo numero(A) Input del secondo numero (B) Confronta se A e maggiore di B (A > B) Allora A è max Altrimenti B è max Output del risultato Leggi Numero (A) Leggi Numero (B) V A > B F Stampa A max Stampa B max STOP

18 Esempi Realizzare la somma di N numeri inseriti in Input:
Input della quantità di numeri (N) da sommare Assegna ad i e ad Somma il valore 0 (zero) Ripeti fino a quando i è minore di N (i < N) Input del numero (num) Aggiungi a Somma il numero inserito (Somma = Somma + num) Incrementa i di 1 Output stampa della Somma START Leggi quantità (N) i = 0 ; Somma = 0 i < N NO SI Leggi Num Stampa Somma Somma = Somma + Num STOP i = i+1


Scaricare ppt "IL CONCETTO DI ALGORITMO"

Presentazioni simili


Annunci Google