Sei sulla pagina 1di 2

Correttezza di un algoritmo

Introduzione
Lobiettivo della dispensa presentare una metodologia mediante la quale verificare la correttezza di un algoritmo. Un algoritmo corretto quando fa ci che noi ci aspettiamo, cio se a partire dai dati iniziali consente di ottenere i risultati attesi. Quando ci accorgiamo che i risultati sono diversi da quelli desiderati (ammesso che riusciamo ad accorgercene) occorre andare alla ricerca dellerrore e correggerlo.

Simulazione di un algoritmo
Utilizzeremo a tal scopo una tabella con tante colonne quante sono i dati pi una per loutput. Prima di iniziare la simulazione occorre determinare un insieme di valori di input, che siano significativi ai fini della verifica di correttezza, e stabilire quali debbano essere i risultati dopo lesecuzione. Considerando il precedente esempio delladdizione di due numeri: possiamo fissare come valori di input i due numeri 10 e 5 e attenderci come risultato il valore 15. Se il risultato al termine della simulazione diverso da 15, significa che presente un errore nellalgoritmo. Prima di cominciare dobbiamo anche numerare progressivamente i blocchi del diagramma di flusso che rappresenta graficamente lalgoritmo. STEP 1 Numeriamo ogni blocco del diagramma di flusso
Start

input (num1)

input (num2)

somma= num1+num2

output (somma)

End

Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

STEP 2 Creiamo una tabella contenente tante colonne quanti sono i dati pi una per loutput. num1 num2 somma output

STEP 3 Per ogni azione che andiamo a eseguire, creiamo una riga nella precedente tabella e inseriamo i valori dei dati nella cella opportuna. Osservazione importante! Vi invito ad osservare che le azioni presenti nel diagramma di flusso dellesempio sono svolte in sequenza, una dopo laltra. In tal caso si dice che lalgoritmo ha una struttura sequenziale. Vedremo in seguito che non sempre sar cos. Iniziamo la simulazione. num1 10 num2 somma output

azione 1

Viene acquisito in input il primo numero (10) e assegnato a num1. num1 10 num2 5 somma output

azione 1 azione 2

Viene acquisito in input il secondo numero (5) e assegnato a num2. num1 10 num2 5 15 somma output

azione 1 azione 2 azione 3

Con lazione 3 si prende il valore di num1 (10), lo si aggiunge al valore di num2 (5) per porre poi il risultato (15) in somma. num1 10 num2 5 15 15 somma output

azione 1 azione 2 azione 3 output

Lazione 4 produce in output il valore di somma, cio 15. Il risultato ottenuto uguale a quello che ci aspettavamo, quindi lalgoritmo corretto. ______________________________________________________________
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11