PROGRAMMIAMO
C++ - Cicli standard e non
Diagramma di flusso di un ciclo standard

Un ciclo in un diagramma di flusso è rappresentato da una serie di istruzioni ripetute. La ripetizione delle istruzioni del ciclo dipende da una condizione (detta appunto condizione del ciclo).

Nel diagramma di flusso qui sopra le istruzioni del ciclo vengono ripetute per tutto il tempo in cui la condizione del ciclo rimane vera. Quando la condizione del ciclo diventa falsa, il ciclo termina. La condizione di ripetizione del ciclo si trova all'inizio del ciclo. Un ciclo con queste caratteristiche si dice ciclo standard.

Per esempio il ciclo seguente serve per calcolare il fattoriale di numero intero num (il fattoriale di un numero è il prodotto di tutti gli interi compresi fra 1 e il numero stesso e si indica col simbolo del punto esclamativo; es. 4! = 1*2*3*4 =24):

Cicli non standard

Chiamiamo non standard quei cicli la cui struttura differisce da quella esaminata nel paragrafo precedente.

Un caso molto semplice di ciclo non standard è un ciclo che si ripete quando la condizione è falsa (invece di quando la condizione è vera). Per esempio il ciclo seguente calcola l'elevamento a potenza di un numero base con un esponente esp:

Il ciclo precedente può essere facilmente ricondotto a un ciclo standard invertendo semplicemente la condizione (esp==0 diventa esp!=0, cioè diverso da zero):

Leggermente più complesso da ricondurre al ciclo standard è il caso di un ciclo in cui la condizione di ripetizione non si trovi all'inizio del ciclo. Si consideri per esempio il ciclo seguente in cui una serie di valori viene acquisita da tastiera allo scopo di eseguire una somma totale di tutti i valori acquisiti. L'acquisizione termina quando viene fornito un valore negativo:

Si noti che l'istruzione di acquisizione input: val viene eseguita sempre almeno una volta prima della condizione del ciclo. Il ciclo può essere trasformato in un ciclo standard ripetendo due volte l'istruzione di acquisizione, prima fuori e poi dentro il ciclo:

link precedente -successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it