Che cos’è un algoritmo?
Un algoritmo, citando Fonte Enciclopedica: “è una strategia atta alla risoluzione di un problema, costituita da una sequenza finita di operazioni (dette anche istruzioni), che consente di risolvere tutti i quesiti di una stessa classe”.
Quindi, possiamo dire che un algoritmo racchiude una serie di istruzioni eseguibili per arrivare ad un fine. Ma per essere considerato tale, un algoritmo deve rispettare certe caratteristiche:
- Finito: Quando l’algoritmo è costituito da un numero di istruzioni finite ed esso ha una fine.
- Deterministico: Quando, avendo gli stessi parametri in input, si ottiene lo stesso output dall’algoritmo.
- Non ambiguo: Quando le operazioni devono poter essere interpretate nello stesso modo da tutti anche se l'esecutore è differente.
- Generale: Quando la soluzione è uguale per tutti i problemi dello stesso tipo.
Esempi di algoritmi
Per capire meglio come funzionano e cosa sono, possiamo fermarci ad osservare ciò che ci circonda e noteremo ben più algoritmi di quanti se ne possa pensare. Facciamo un esempio: è mattina, e non c’è mattinata che si rispetti che parta senza caffè; se ti soffermi a pensarci seguirai una sorta di rituale, no? Probabilmente controllerai se hai acceso la macchinetta del caffè, nel caso sia spenta l’accenderai, verificherai, quindi, che ci sia acqua nel serbatoio, ed eventualmente lo riempirai; poi prenderai una cialda, la inserirai nell’apposito slot, posizionerai la tazzina sotto l’ugello della macchinetta e premerai il pulsante per erogare il caffè.
Come step successivo, una volta che la macchinetta avrà compiuto il suo lavoro, probabilmente andrai a recuperare la tua tazzina e zuccherare il tuo caffè finchè ne sarai soddisfatto. Ottimo lavoro! Oltre ad avere un’ottima tazza di caffè caldo, abbiamo anche scritto il tuo primo algoritmo.
Se nella stesura siamo sembrati un pò troppo specifici di quanto avremmo dovuto essere, niente paura: è tutto normale! L'abbiamo fatto perché ogni frase rappresenta un’istruzione del nostro algoritmo. Nel caso volessi visualizzarlo meglio, prova a dare un'occhiata all'immagine qui sopra.
A cosa servono gli algoritmi?
Bella domanda! Abbiamo detto che un algoritmo è una serie ordinata di istruzioni. Colui che le esegue, sta effettivamente eseguendo l'algoritmo.
Se prendiamo in analisi l’algoritmo di cui sopra per preparare una tazza di caffè, quindi, esso viene eseguito da chiunque voglia prepararsi un caffè con la macchinetta.
Ora, immagina di preparare due,tre,quattro,cinque tazzine di caffè; forse sei stanco, ma in sala break ci sono 10 persone! Ti fai sostituire quindi dal tuo collega.
Stareste ripetendo gli stessi passaggi una seconda, terza, quarta volta e via discorrendo.
Tralasciando l’errore umano, otterreste sempre lo stesso risultato: avreste una tazzina di caffè.
Questo è un chiaro esempio di utilizzo per un algoritmo. Esso serve a definire una serie di istruzioni, che siano comprensibili e sempre uguali ogni volta che vengono ripetute. In questo modo, chiunque le segua, otterrà sempre lo stesso risultato ogni singola volta.
Algoritmo nel mondo Tech e Programming
Trasliamo adesso il tutto in un mondo a noi più familiare: quello della programmazione informatica. Stiamo scrivendo un programma che, in base al valore contenuto all’interno di un database, scriverà, sempre all’interno del database ma in uno spazio diverso, un TRUE o un FALSE. Bene, qualsiasi sia il linguaggio di programmazione scelto per il suddetto programma, in ogni caso, la sua funzione sarà la medesima. Possiamo anche cambiare il database da controllare, ma il risultato resterà sempre lo stesso. In questo caso, l’algoritmo lo esegue la macchina su cui eseguiamo il programma da noi scritto. E, come ribadito prima, pur cambiando la macchina esecutrice, il risultato non cambierà.