Page 331 - Informatica dalla A a Z
P. 331

Introduzione alla Programmazione



                                       344
           Lo studio degli algoritmi  riveste il ruolo più importante nell’ambito della programma-
           zione. Infatti, la comprensione di un problema e la capacità di impostare una soluzione è
           condizione  fondamentale  per  chiunque  voglia avvicinarsi  al mondo  della  “programma-
           zione”. Gli algoritmi sono alla base della programmazione.


           Un algoritmo è un procedimento formato da una sequenza logica di istruzioni elementari,
           non ambigue che, eseguite in un ordine stabilito, consentono di trovare la soluzione di un
           problema in un numero finito di passi. Questo poi deve essere tradotto in un programma

           eseguibile. L’algoritmo, partendo da dei dati in ingresso, genera dei dati in uscita, come
           risultato di una serie di operazioni. In particolare l’algoritmo si presenta quale una serie
           finita di istruzioni, che sono elaborate da un computer, dopo essere state trasformate in
           un programma attraverso l’uso di un linguaggio di programmazione.


           Approfondimento: Un algoritmo è un procedimento formale che risolve un determinato
           problema attraverso un numero finito di passi.


           Un problema risolvibile mediante un algoritmo si dice “computabile”.

           Proprietà fondamentali degli algoritmi: i passi costituenti devono essere “elementari”,

           ovvero non ulteriormente scomponibili (atomicità); i passi costituenti devono essere “in-
           terpretabili” in modo diretto e univoco dall’esecutore, sia esso umano o artificiale (non
           ambiguità); l’algoritmo deve essere composto da un “numero finito di passi” e richiedere
           una quantità finita di dati in ingresso (finitezza).


           L’esecuzione deve avere termine dopo un tempo finito (terminazione); l’esecuzione deve
           portare a un risultato univoco (effettività); a ogni passo, il successivo deve essere uno e
           uno solo, ben determinato (determinismo). (fanno eccezione gli algoritmi randomizzati).


                                                                             345
           La complessità di un algoritmo si misura “asintoticamente ”.
           Esistono 4 metodi per calcolare la complessità di un algoritmo: metodo di sostituzione, me-
           todo dell’iterazione, metodo dell’albero e metodo dell’esperto.





           344  La parola algoritmo è entrata in uso negli anni ‘50 del secolo scorso per sostituire la parola algorismo che, dal medioevo,
           designava il processo di calcolare con i numeri arabi. Contrariamente a quanto molti suppongono, il suo nome deriva dal nome
           di Al-Khwarizmi, un grande matematico arabo del IX secolo, famoso per avere formalizzato il sistema di numerazione posizio-
           nale
           usato oggi in tutto il mondo.
           Le procedure che permettevano di effettuare i calcoli divennero note come algorismi o algoritmi, e lo stesso termine fu in
           seguito usato per definire le procedure di calcolo necessarie ad ottenere un determinato risultato.
           345  Si definisce asintotica per due motivi: poiché ogni calcolatore può implementare algoritmi in modo differente, non si può
           stimare il tempo preciso; si vuole dare un’idea quantitativa di come l’algoritmo possa crescere in consumo di tempo all’aumen-
           tare dell’input, per valori sempre maggiori.
                                                            327
   326   327   328   329   330   331   332   333   334   335   336