Iterazione
L'iterazioneè l'atto di ripetere un procedimento con l’obiettivo di avvicinarsi a un risultato desiderato. Ogni ripetizione del procedimento è essa stessa definita un'iterazione, e i risultati di una sono utilizzati come punto di partenza per quella successiva. Diffuso è l'utilizzo neglialgoritmie nellaprogrammazionein ambitoinformatico,ma anche in campi come quello della gestione del progetto (project management).
Matematica
[modifica|modifica wikitesto]Informatica
[modifica|modifica wikitesto]Teorema di Böhm-Jacopini
[modifica|modifica wikitesto]Nellaprogrammazione informatica,l'iterazione,chiamata anchecicloo con il termineingleseloop,è unastruttura di controllo,all'interno di unalgoritmorisolutivo di un problema dato, che ordina all'elaboratore di eseguire ripetutamente unasequenzadiistruzioni,solitamente fino al verificarsi di particolari condizioni logiche specificate.
Assieme allasequenzao blocco e allaselezioneè una delle tre strutture fondamentali per la risoluzionealgoritmicadi un dato problema secondo il Teorema di Böhm-Jacopini. Esistono varie forme di iterazione; le più conosciute sono ilMENTRE(in inglese:while..do), ilRIPETI(in inglese:repeat..untilodo..while), ed ilPER(comunemente dettociclo for). Si può dire che l'iterazione è l'anello forte della programmazione che consente di automatizzare portando a termine un processo, al quale non basta la semplice esecuzione in sequenza di istruzioni.
Il cosiddetto "ciclo infinito", o "loop infinito",è un caso di iterazione dovuto solitamente ad un errore di programmazione che manda in stallo l'esecuzionedelprogramma,mentre in alcune tecniche di programmazione soprattutto conmicrocontrolloriè utilizzato in maniera voluta per iterare infinitamente all'interno del programma.
Sintassi
[modifica|modifica wikitesto]MENTRE ( condizione )
blocco di istruzioni
FINE-MENTRE
L'iterazioneMENTREcontrolla la condizione e successivamente, se la condizione lo permette, esegue il blocco di istruzioni che contiene, che può anche non essere eseguito nemmeno una volta (ciò avviene nel caso in cui la condizione risulti falsa già al primo controllo).
Esempio inC:
while(condizione){
...;
...;
}
RIPETI
blocco di istruzioni
FINCHÉ condizione
L'iterazioneRIPETItermina quando la condizione è falsa, e, siccome la condizione viene controllata dopo aver eseguito il blocco di istruzioni, esegue sempre almeno una volta il ciclo.
Esempio inC:
do{
...;
...;
}
while(condizione);
PER N volte
blocco di istruzioni
FINE-PER
L'iterazionePERè paragonabile alMENTREma contiene una condizione implicita che deriva dal fatto che in questo tipo di ciclo il numero di volte che si dovrà eseguire il blocco di istruzioni è noto sin dall'inizio; moltissimi linguaggi di programmazione obbligano il programmatore ad utilizzare unavariabilecontatore, il cui compito è contare il numero di iterazioni compiute, che contiene ad ogni ciclo un numero (solitamente intero), e la condizione solitamente è che una determinata variabile sia minore, maggiore o uguale della variabile contatore. Essa assume tutti i valori intermedi via via che i cicli proseguono, partendo da un valore iniziale fino ad arrivare al valore finale (entrambi dichiarati esplicitamente dal programmatore).
La forma sopra diventa quindi:
PER variabile = inizio A fine PASSO = passo
blocco di istruzioni
FINE-PER
Esempi
[modifica|modifica wikitesto]Per scrivere 10 volte la parolaCiao
[modifica|modifica wikitesto]PER variabile = 1 A 10 PASSO = 1
SCRIVI "Ciao"
FINE-PER
Esempio inC:
for(v=1;v<=10;v++){
printf("Ciao");
}
Tabellina del 2
[modifica|modifica wikitesto]PER variabile = 2 A 20 PASSO = 2
SCRIVI variabile
FINE-PER
Esempio inC:
for(v=2;v<=20;v+=2){
printf("%d\n",v);
}
Strutture cicliche
[modifica|modifica wikitesto]Nella creazione diprogrammi informatici,spesso è necessario ripetere più volte uno stesso gruppo di istruzioni; le istruzioni di controllo che permettono di controllare la ripetizione vengono dettestrutture ciclicheoripetitive. Le strutture cicliche permettono quindi di ripetere una sequenza di operazioni, terminando quando si verifica una particolare condizione.
La realizzazione di algoritmi ripetitivi
[modifica|modifica wikitesto]Per realizzare unalgoritmociclico si devono determinare:
- le inizializzazioni da effettuare prima del ciclo;
- le operazioni che devono essere ripetute all'interno del ciclo;
- la condizione di terminazione del ciclo;
- le istruzioni da eseguire alla fine del ciclo.
Il ciclo può terminare:
- quando è stato eseguito un certo numero di ripetizioni noto;
- quando l'utente lo richiede esplicitamente;
- quando viene inserito un valore particolare;
- più in generale quando si verifica una condizione particolare dipendente dal problema.
Una scelta più tecnica riguarda il fatto di utilizzare:
- la ripetizione con controllo della condizione in testa, cioè all'inizio del ciclo(precondizionale);
- la ripetizione con controllo della condizione in coda, cioè alla fine del ciclo(postcondizionale).
La differenza sostanzialmente riguarda il fatto di valutare la condizione di terminazione prima di eseguire il ciclo o dopo averlo eseguito almeno una volta. Un'altra differenza più marginale riguarda il fatto se si deve uscire dal ciclo quando la condizione è vera o quando la condizione è falsa.
Bibliografia
[modifica|modifica wikitesto]- F. Scorzoni - Giuseppe Costa,Informatica: Programmazione in C++,Loescher
Voci correlate
[modifica|modifica wikitesto]Altri progetti
[modifica|modifica wikitesto]- Wikizionariocontiene il lemma di dizionario «iterazione»
Collegamenti esterni
[modifica|modifica wikitesto]- iterazióne,suVocabolario Treccani,Istituto dell'Enciclopedia Italiana.
- iterazione,inEnciclopedia della Matematica,Istituto dell'Enciclopedia Italiana,2013.
- (EN)iteration,suEnciclopedia Britannica,Encyclopædia Britannica, Inc.
- (EN) Denis Howe,iteration,inFree On-line Dictionary of Computing.Disponibile con licenzaGFDL