Algoritmo, diagrammi di flusso e logica.

Algoritmo

Un algoritmo è un processo logico-matematico atto a risolvere un problema o a svolgere un compito. Esso è una sequenza di operazioni univoche, anche di tipo ciclico, che in un numero finito di passi portano alla risoluzione di un problema. Per descrivere graficamente l’algoritmo utilizziamo i diagrammi di flusso o Flow -chart, cioè una rappresentazione grafica delle operazioni da eseguire per l’esecuzione di un programma. Ogni singolo passo è visualizzato tramite una serie di simboli standard, che sono comprensibili dal punto di vista logico sia al programmatore che per la macchina.
Un algoritmo può essere considerato un insieme di regole per svolgere un dato compito progettato.

Potremmo definirlo così:

Un algoritmo è un insieme ben ordinato di operazioni non ambigue ed effettivamente calcolabili che eseguito , produce un risultato e termina in unaquantità finita di tempo.

Si ritiene che il nome deriva dal matematico persiano Muhammad ibn M ūsa ‘l-Khwārizmī (780-850).
Per chiarire meglio il concetto di algoritmo è bene fare riferimento a queste proprietà accennate che ora chiariremo meglio. Ecco un insieme di istruzioni che deve possedere affinché possa chiamarsi algoritmo:

Esecuzione di un algoritmo

Vengono eseguite in sequenza le operazioni che lo costituiscono; ed esistono algoritmi che prevedono:

Esempio: sequenza di esecuzione unica

Considerato il valore di X, calcolare: Y = 2 X + 7
Sequenza di esecuzione:

  1. ricevo il valore di X
  2. moltiplico X per 2 (sia Z il risultato)
  3.  sommo 7 a Z ( sia Y il risultato)
  4. visualizzo Y

Esempio: sequenze di esecuzione multiple

Dato il valore di X, calcolare la radice quadrata di X+8.
Sequenza di esecuzione:

  1.  ricevo il valore di X
  2.  sommo 8 a X (sia Y il risultato)
  3.  se Y è positivo o nullo, calcolo la sua radice quadrata e la visualizzo
  4.  se Y è negativo, indico che è impossibile calcolare la sua radice quadrata

Formalizzazione di una soluzione

Modo dei Diagrammi di flusso (flow-chart)

Le operazioni da compiere, rappresentate mediante sagome convenzionali (rettangoli, rombi, esagoni, parallelogrammi, rettangoli smussati…), ciascuna con un preciso significato logico e all’interno delle quali un’indicazione testuale descrive l’attività da svolgere. La sequenza nella quale devono essere compiute, è rappresentata con frecce di collegamento.

Una combinazione di blocchi elementari descrive un algoritmo se:

Condizioni di validità

Per questa loro connotazione topologica i diagrammi di flusso possono essere ricondotti alla classe più ampia dei diagrammi a blocchi, che a loro volta rientrano nell’ancora più vasta categoria delle mappe concettuali, utilizzate soprattutto per la descrizione e la rappresentazione delle informazioni e della conoscenza.
I diagrammi di flusso trovano la loro applicazione in vari ambiti, ma quello in cui storicamente si sono maggiormente affermati è stato quello informatico dove, solo in tempi più recenti, sono stati affiancati da altri strumenti metodologici quali lo pseudocodice e l’UML.