#2: Cos’è un algoritmo

Ecco cos’è un algoritmo!

Nella precedente guida, nella quale abbiamo affrontato i concetti di Input e Output (la potete trovare qui), abbiamo accennato la parola “algoritmo“.
Teoricamente parlando, un algoritmo “è una sequenza di istruzioni eseguite per ottenere il risultato fissato”.
Quindi, abbiamo a che fare con diversi algoritmi ogni giorno. Prendiamo l’esempio utilizzato nella guida precedente: fare il pane. I dati di input erano la farina, l’acqua, ecc.. ; mentre il dato di output era proprio il pane. Quello che c’è nel mezzo, ovvero il procedimento, è il nostro algoritmo. Espresso nell’esempio precedente, diventa dunque la macchina per fare il pane.
algoritmoPerò, parlando in termini informatici, l’algoritmo (definito “risolutivo“) non è altro che il programma che svolge le azioni richieste per arrivare al risultato.
Un  esempio di algoritmo informatico (schematizzato) lo potete vedere alla vostra sinistra, affianco al testo.
Rimaniamo dunque sempre nella teoria, perchè nella pratica, un algoritmo, è un codice di programmazione. Questi, al momento, verranno solo nominati e definiti, ma non ancora “studiati”. Nei prossimi articoli (molto più avanti), impareremo anche a conoscerli ed ad utilizzari per creare dei nostri programmi. Prima però, partiamo dalle basi.

Bene, cominciamo a differenziare i linguaggi di programmazione:
-Abbiamo il linguaggio natuale, ovvero quello che utilizziamo ogni giorno per dialogare con altre persone, come sto facendo adesso io con il lettore, ovvero con te.
-E abbiamo il/i linguaggio/i di programmazione, che utilizza l’uomo per dialogare e dare istruzioni alla macchina (il computer).

Ovviamente, ci sono delle nette differenze fra i due tipi di linguaggi. Il primo risulta essere molto ambiguo, ovvero esso può essere frainteso.
Mentre quando parliamo di linguaggio di programmazione, si intende qualcosa di finito (ovvero costituito da un numero fisso di passi eseguiti un certo numero per volta), deterministico (ovvero riprodurre gli stessi dati di output con gli stessi dati di input), non ambiguo (già spiegato, guarda sopra) e generale (ovvero avere la soluzione per tutti i problemi che appartengono alla stessa classe).

Ma c’è anche un’altra distinzione da fare, ovvero quella che c’è fra Linguaggio Macchina e Linguaggio procedurale.
-Il linguaggio macchina è il linguaggio che è direttamente comprensibile dalla CPU (spiegata nei prossimi articoli), ed è composto da una seria di numeri, formati da 0 e 1, chiamato sistema binario (il sistema binario è spiegato nel prossimo articolo).
-Il linguaggio procedurale, composto dai linguaggi di programmazione, è quello che invece di avere cifre, ha dei simboli (o parole) comprensibili sia dall’uomo che dalla macchina. Questi linguaggi di programmazione vengono definiti di alto livello, perchè un programma scritto in uno di questi linguaggi di altro livello può funzionare su qualsiasi elaboratore.

Ci vediamo nel prossimo articolo.

Precedente #1: Dati di input e di output Successivo #3: Il sistema binario

Lascia un commento