PROGRAMMIAMO
Algoritmi - Strutture di controllo
Definizione

In un algoritmo si dice struttura di controllo (control structure) un gruppo di istruzioni con un unico punto di ingresso e un unico punto di uscita. Un altro modo per definire una struttura di controllo è quello di considerarla come un gruppo di istruzioni "collegate fra loro", nel senso che vengono eseguite insieme oppure la cui esecuzione dipende l'una dall'altra.

Qualche esempio chiarirà meglio il concetto. Occorre intanto dire che in qualsiasi algoritmo si possono individuare solo tre tipi di strutture di controllo e precisamente:

  1. la sequenza
  2. la selezione
  3. il ciclo
Sequenza

Come suggerisce il nome, una sequenza è un gruppo di istruzioni che devono essere eseguite una dopo l'altra, in successione.

Un esempio di sequenza è quella mostrata qui sotto e che serve per calcolare area e perimetro di un cerchio data la misura del raggio:

sequenza

Gli algoritmi più semplici (come quello mostrato qui sopra) sono costituiti da un'unica sequenza di istruzioni. Con riferimento alla lezione di esempio sugli algoritmi, gli algoritmi a, b, c e d sono costituiti da sequenze di istruzioni.

Notiamo di passaggio che la moltiplicazione è stata indicata con l'asterisco *, usando la convenzione usata nella maggior parte dei linguaggi di programmazione. Allo stesso modo è stato utilizzato il punto decimale, invece della virgola, nella scrittura di pi greco (3.14), perché questa è la convenzione che viene di solito usata nei linguaggi di programmazione.

Selezione

La struttura detta selezione permette di eseguire istruzioni diverse a seconda della condizione scritta all'interno di un blocco di test. Un esempio semplice di selezione è presente nel seguente algoritmo che acquisisce un numero e lo rende positivo se è negativo:

selezione

Si osservi il metodo usato per rendere positivo il numero (se negativo):

numero = - numero

La selezione corrisponde in italiano all'istruzione SE... ALLORA. Negli algoritmi e ed f della lezione di esempio, si possono osservare esempi di selezioni.

Una selezione si dice semplice o a una via quando prevede l'esecuzione di un solo blocco di istruzioni nel caso in cui la condizione sia vera. Nel caso di condizione falsa, la selezione semplice non esegue nessuna istruzione. Un esempio di selezione semplice è:

SE piove ALLORA prendi l'ombrello

Se la condizione è falsa (cioè se NON piove), non viene prevista nessuna istruzione.

In una selezione a due vie, invece, viene eseguito qualcosa sia nel caso in cui la condizione sia vera sia nel caso in cui la condizione sia falsa. La selezione a due vie viene tradotta in italiano con SE... ALLORA.... ALTRIMENTI...., come nell'esempio seguente:

SE il semaforo è rosso ALLORA passa ALTRIMENTI fermati

In questo caso l'istruzione passa viene eseguita se la condizione è vera (cioè SE il semaforo è rosso), mentre l'istruzione fermati viene eseguita se la condizione è falsa.

 

Ciclo

Un ciclo è un gruppo di istruzioni in un algoritmo che devono essere ripetute più volte. Un esempio di ciclo lo troviamo nell'algoritmo per la moltiplicazione di due numeri usando solo somme:

ciclo

Osserviamo che anche il ciclo, come la selezione, contiene un blocco di test. In questo caso però il blocco di test controlla la ripetizione di un gruppo di istruzioni e non semplicemente la scelta fra due diversi percorsi nell'algoritmo.

La presenza di un ciclo all'interno di un algoritmo si distingue facilmente per via del percorso di ritorno, cioè di un ramo dell'algoritmo che torna indietro (a indicare il fatto che alcune istruzioni vengono ripetute).

Negli algoritmi g ed h della lezione di esempio, si possono osservare altri esempi di cicli.

Il ciclo viene tradotto in italiano con RIPETI FINTANTOCHE'... Si consideri il seguente esempio:

RIPETI FINTANTOCHE' ci sono ancora patate
  - prendi una patata dal cesto
  - sbuccia la patata
  - getta la patata nella pentola

Si noti che le tre istruzioni del ciclo vengono eseguite molte volte, finché ci sono ancora patate.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it