Gli algoritmi
Un algoritmo è un insieme di istruzioni logiche o matematiche che devono essere
eseguite in ordine per raggiungere il risultato desiderato.
Un algoritmo deve essere:
• Finito, ossia avere un numero finito di operazioni;
• Deterministico: partendo da dei dati in input si devono ottenere gli stessi risultati in uscita;
• Non ambiguo: le operazioni devono essere interpretate in un solo modo;
• Generale: deve essere applicabile a tutti i problemi della classe a cui si riferisce.
Il termine algoritmo deriva dal matematico persiano “Al-Khwarizmi”, uno dei primi
matematici ad aver citato questo concetto.
Il primo algoritmo informatico è stato ideato dalla matematica britannica “Ada
Lovelace”.
Nel corso del tempo altri matematici hanno basato i loro studi sugli algoritmi fino ad
arrivare alla creazione della macchina di Turing, dei primi computer e dei primi
linguaggi di programmazione, che usano gli algoritmi per risolvere problemi in modo
autonomo.
Per la creazione di un algoritmo entrano in gioco:
• Variabili: un oggetto che può assumere diversi valori;
• Costanti: il contrario della variabile, sono oggetti che non cambiano il proprio
valore;
• Azioni: sono le istruzioni che l’algoritmo esegue e possono essere matematiche
e logiche;
• Dati di ingresso (input): sono i dati con cui l’algoritmo lavora;
• Dati di uscita (output): sono i risultati dell’algoritmo.
Per rappresentare gli algoritmi si possono usare vari modi:
• Pseudocodifica: un linguaggio simile al linguaggio umano ma con alcune modifiche per definire l’algoritmoEsempio di algoritmo in pseudocodifica:
Esempio di algoritmo in pseudocodifica per calcolare l’area di un rettangolo
INIZIO
Immetti base
Immetti altezza
Calcola area = base * altezza
Scrivi area
FINE
• Diagramma di flusso (Flowchart): descrizioni grafiche dell’algoritmo che
usano figure geometriche per descrivere le varie istruzioni di esso.
• L’ellisse indica l’inizio e la fine dell’algoritmo.
• Il rettangolo indica un elaborazione (istruzione) e l’assegnazione di una
variabile o di una costante
• Il parallelogramma indica l’immissione o l’emissione di dati
• Il rombo indica un’operazione di confronto. A questo simbolo possono seguire una
decisione o un ciclo di operazioni

L’algoritmo visto prima per calcolare l’area del rettangolo come diagramma di flusso. Ogni forma rappresenta un’operazione diversa.
• Linguaggi di programmazione: linguaggio grazie al quale l’uomo scrive programmi comprensibili ed eseguibili dal computer.

Lo stesso algoritmo scritto con un linguaggio di programmazione (in questo caso il linguaggio C)