Professional Documents
Culture Documents
cont= 1
cont <= N
vero
falso
cont= cont+1
Come potete osservare dalla figura, le azioni fondamentali da compiere sono: 1. Stabilire il valore iniziale del contatore Il valore iniziale del contatore deve essere assegnato prima di entrare nel ciclo e pu essere un qualunque numero intero positivo. Per il momento utilizzeremo 1 come valore iniziale del contatore. 2. Imporre la condizione di terminazione (uscita) del ciclo Un ciclo deve terminare, prima o poi. In caso contrario si incorre in un problema che viene chiamato loop infinito. Un loop infinito un ciclo che non termina mai, perch la condizione di uscita da esso rimane sempre vera. Questa situazione assolutamente da evitare. Come condizione di terminazione useremo per il momento la seguente: cont<=N.
Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11
Iniziando con un contatore pari a 1 e imponendo la condizione cont<=N si ottengono esattamente N ripetizioni, come desiderato. Fate attenzione, per, perch se il valore iniziale del contatore diverso, questa regola non vale pi, ma necessario fare il seguente calcolo: N = numero_di_cicli + cont_iniziale -1 Vediamo - se - se - se alcuni esempi: numero_di_cicli 10 e cont_iniziale vale 1, allora N deve valere 10 numero_di _cicli 10 e cont_iniziale vale 0, allora N deve valere 9 numero_di_cicli 10 e cont_iniziale vale 8, allora N deve valere 17
3. Determinare esattamente quali istruzioni devono essere ripetute 4. Incrementare il contatore dopo lesecuzione di ciascun ciclo Con il termine incremento si intende laumento di 1 unit.
Un esempio
Il seguente diagramma di flusso rappresenta lalgoritmo per risolvere il problema: dati 5 numeri interi calcolarne la somma. ID
num somma cont
Descrizione
Valore Iniz.
Tipo
intero intero intero
Vincoli
Contiene i numeri inseriti di volta in volta Contiene le somme parziali e la somma totale Contatore del ciclo
FLOW CHART
Start somma= 0 cont= 1 1 2
Falso
output(somma)
End
TABELLA DI SIMULAZIONE Supponiamo che i 5 numeri inseriti siano: 1 5 2 0 3. Loutput atteso 11. ciclo istruz 1 2 3 4 5 6 3 4 5 6 3 4 5 6 3 4 5 6 3 4 5 6 3 7 num somma 0 cont 1 Vera 1 1 2 Vera 5 6 3 2 8 4 Vera 0 8 5 Vera 3 11 6 Falsa 11 Vera condizione output
Inizializzazione comprende la dichiarazione e linizializzazione del contatore o La dichiarazione necessaria solo se il contatore non stato dichiarato in precedenza. o Se la variabile contatore dichiarata allinterno del FOR, essa visibile solo allinterno del blocco. es. int cont = 1 oppure, se cont gi stato dichiarato cont = 1
Condizione unespressione booleana contenente la variabile contatore es. cont<=n, dove n il numero di volte che si desidera eseguire le istruzioni del ciclo.
Aggiornamento contiene lincremento del contatore es. cont = cont+1 Nota : Java consente di usare anche forme abbreviate per lincremento ; queste sono cont += 1 e cont ++
Le istruzioni del ciclo vengono eseguite mentre la condizione vera. Si esce dal ciclo quando la condizione diventa falsa.
Continuiamo, a questo punto, con la soluzione del problema posto inizialmente. Scrittura del programma Java 01 class CicloSomma 02 { 03 public static void main(String args[]) 04 { 05 ConsoleReader c= new ConsoleReader(System.in); 06 { 07 //dichiarazioni di variabili 08 int num,somma,cont; 09 //istruzione 1 10 somma=0; 11 //istruzioni 2, 3 e 6 12 for(cont=1;cont<=5;cont++) 13 { 14 //istruzione 4 15 System.out.println("Immetti il numero intero"); 16 num= c.readInt(); 17 //istruzione 5 18 somma= somma+num; 19 } 20 //istruzione 7 21 System.out.println("La somma totale e' "+somma); 22 } 23 } 24 }
Alcune varianti
Inizializzare somma durante la dichiarazione ID
num somma cont
Descrizione
Valore Iniz.
0
Tipo
intero intero intero
Vincoli
Contiene i numeri inseriti di volta in volta Contiene le somme parziali e la somma totale Contatore del ciclo
FLOW CHART
Start cont= 1 2
Falso
output(somma)
End
01 class CicloSomma 02 { 03 public static void main(String args[]) 04 { 05 ConsoleReader c= new ConsoleReader(System.in); 06 { 07 //dichiarazioni di variabili 08 int num,somma=0,cont; 09 //istruzione 1 10 somma=0; 11 //istruzioni 2, 3 e 6 12 for(cont=1;cont<=5;cont++) 13 { 14 //istruzione 4 15 System.out.println("Immetti il numero intero"); 16 num= c.readInt();
Autore: Cinzia Bocchi Ultimo aggiornamento: 20/09/11
17 18 19 20 21 22 23 24 }
} }
Utilizzare una costante simbolica, anzich esplicita, per indicare il numero di cicli (consigliato) Invece di utilizzare la costante numerica 5 possiamo definire una costante simbolica N di valore 5. TABELLA DATI ID Descrizione I/O/L/C Valore Tipo Vincoli Iniz.
Contiene i numeri inseriti di volta in volta Contiene le somme parziali e la somma totale Contatore del ciclo Numero di cicli
I O L C 0
FLOW CHART
Start cont= 1 2
Falso
output(somma)
End
01 class CicloSomma 02 { 03 public static void main(String args[]) 04 { 05 ConsoleReader c= new ConsoleReader(System.in); 06 { 07 //dichiarazioni di costanti 08 final int N=5; 09 //dichiarazioni di variabili 10 int num,somma=0,cont; 11 //istruzioni 2, 3 e 6 12 for(cont=1;cont<=N;cont++) 13 { 14 //istruzione 4 15 System.out.println("Immetti il numero intero"); 16 num= c.readInt(); 17 //istruzione 5 18 somma= somma+num; 19 } 20 //istruzione 7 21 System.out.println("La somma totale e' "+somma); 22 } 23 } 24 }
20 21 22 23 24 25 26 27 28 }
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.