1. Che cos'è un Algoritmo?
Il termine algoritmo deriva dalla latinizzazione del nome del matematico persiano del IX secolo al-Khwarizmi. In informatica, un algoritmo rappresenta una sequenza finita di istruzioni non ambigue che trasformano un insieme di dati di input in un insieme di dati di output, risolvendo un problema specifico in un numero finito di passi.
2. Le Proprietà Fondamentali
Affinché una procedura possa essere definita formalmente un algoritmo, deve soddisfare requisiti imprescindibili:
- Finitezza: L'esecuzione deve necessariamente terminare dopo un numero finito di passi.
- Non ambiguità (Elementarietà): Ogni istruzione deve essere interpretabile in modo univoco dall'esecutore (umano o automatico) senza margini di soggettività.
- Determinatezza (o Determinismo): Eseguendo lo stesso algoritmo a parità di dati di input, si otterranno sempre e comunque i medesimi risultati di output.
- Generalità: L'algoritmo non deve risolvere un singolo caso isolato, ma un'intera classe di problemi simili attraverso l'uso di variabili e parametri.
- Input e Output: Deve prevedere zero o più dati in ingresso (input) e produrre almeno un risultato in uscita (output).
Prima di essere tradotti in un linguaggio di programmazione (es. C++, Python), gli algoritmi vengono progettati attraverso strumenti di astrazione logica:
- Diagrammi di flusso (Flowchart): Rappresentazione grafica basata su blocchi geometrici interconnessi.
- Pseudocodice (Linguaggio di Progetto): Notazione testuale strutturata che unisce il linguaggio naturale ai costrutti logici dei linguaggi di programmazione.
3. Costrutti Fondamentali della Programmazione
Secondo il teorema di Böhm-Jacopini, qualsiasi algoritmo può essere implementato combinando tre soli costrutti di controllo strutturato:
- Sequenza: Esecuzione lineare delle istruzioni una dopo l'altra.
- Selezione (o Condizionale): Bivio logico basato sulla verifica di una condizione booleana (es. se/altrimenti).
- Iterazione (o Ciclo/Loop): Ripetizione di un blocco di istruzioni finché una determinata condizione risulta vera.
4. Simulatore Interattivo: Valutatore di Proprietà e Test Logico
Seleziona un esempio di sequenza logica per verificare se possiede i requisiti formali di un algoritmo e simularne l'esecuzione.