Strutture Fondamentali


Le tre strutture fondamentali, che consentono di codificare qualsiasi programma e algoritmo, sono quelle enunciate dal teorema di Bohm-Jacopini. E come già visto in un post precedente sono:

Sequenza

Nella struttura sequenziale, più istruzioni, anche di diverso tipo, vengono eseguite in modo sequenziale, cioè dall'alto in basso una per volta.
Si possono considerare più istruzioni come un unico blocco di codice. Dal punto di vista logico le istruzioni che consideriamo come un unico blocco di codice devono riguardare la risoluzione di un problema in particolare, come ad esempio la somma di due numeri, o un blocco di codice che prende in input più numero e li somma ecc...

L'immagine sopra mostra la somma di due numeri. Definendo le variabili A e B nei primi due blocchi e infine definendo la variabile 'Somma' come somma algebrica delle variabili A e B. I tre blocchi si possono tradurre in C così:
int main(void)
{
int a = 3; // primo blocco
int b = 4; // secondo blocco
int somma = a + b; // terzo blocco
}
Nelle sequenze più complesse è possibile suddividere ogni blocco in più azioni, oppure accorpare più azioni in un blocco unico suddividendo il diagramma per renderlo più leggibile.


Condizione

La struttura condizionale è già stata affrontata questo post.


Iterazione

La struttura iterativa valuta una condizione ed esegue uno o più blocchi di codice, alla fine rivaluta ancora la condizione e riesegue il blocco,  finché la condizione sarà vera il blocco di codice del ciclo continuerà ad eseguire.
Nel diagramma seguente il ciclo è all'interno del riquadro tratteggiato. In questo caso il programma richiede un numero in input, e termina solo quando si inserisce '-1'.


#include&ltstdio.h>

int main(void)
{
int a = 0;
while(a != -1)
{
printf("Inserisci un numero intero, -1 per uscire\n");
scanf("%d", &a);
}
}

Qualsiasi ciclo iterativo si può codificare in un while, ma è possibile ottenere rappresentazioni più specifiche e migliore utilizzando dei cicli do-while e for. Ma qualsiasi ciclo è codificabile con un semplice while, in un post specifico vedremo i tre tipi di cicli iterativi derivati dal while e come rappresentarli e codificarli.

Conclusione

Il prossimo post illustrerà le diverse strutture iterative oltre il while, per realizzare cicli più complessi ma più leggibile e codificabili con i costrutti per le iterazioni che forniscono i linguaggi di programmazione odierni.

Commenti

Post popolari in questo blog

Flowchart o Diagramma a Blocchi

Dungeon Siege