11) iterazioni (for, do, while). lab.calc.i aa2002/03 - cap.112 iterazioni 3 istruzioni che...
TRANSCRIPT
![Page 1: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/1.jpg)
11) Iterazioni (for, do, while)
![Page 2: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/2.jpg)
Lab.Calc.I AA2002/03 - cap.11 2
Iterazioni
3 istruzioni che consentono di eseguire un loop (ciclo):
1. while2. do...while3. for
con alcune differenze non solo sintattiche…
![Page 3: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/3.jpg)
Lab.Calc.I AA2002/03 - cap.11 3
Sintassi di while
while (espressione) istruzione
dove espressione è una qualsiasi espressione C++ e istruzione può essere una singola istruzione o una sequenza di istruzioni racchiusa tra { e }.
![Page 4: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/4.jpg)
Lab.Calc.I AA2002/03 - cap.11 4
Semantica di whileNellesecuzione di un'istruzione while viene 1. Valutata l'espressione espressione
– Se non è nulla si esegue l'istruzione– Se è nulla si passa alle istruzioni successive
al ciclo while
2. Si torna al punto 1
![Page 5: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/5.jpg)
Lab.Calc.I AA2002/03 - cap.11 5
Confronto tra if e while
espressione
if
![Page 6: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/6.jpg)
Lab.Calc.I AA2002/03 - cap.11 6
Confronto tra if e while
espressione espressione
if while
![Page 7: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/7.jpg)
Lab.Calc.I AA2002/03 - cap.11 7
Confronto tra if e while
espressione espressione
if while
falsa
![Page 8: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/8.jpg)
Lab.Calc.I AA2002/03 - cap.11 8
Confronto tra if e while
espressione espressione
if while
falsa falsa
![Page 9: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/9.jpg)
Lab.Calc.I AA2002/03 - cap.11 9
Confronto tra if e while
espressione
istruzione
espressione
if while
falsa vera falsa
![Page 10: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/10.jpg)
Lab.Calc.I AA2002/03 - cap.11 10
Confronto tra if e while
espressione
istruzione
espressione
istruzione
if while
falsa vera verafalsa
![Page 11: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/11.jpg)
Lab.Calc.I AA2002/03 - cap.11 11
Confronto tra if e while
espressione
istruzione
espressione
istruzione
if while
falsa vera verafalsa
![Page 12: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/12.jpg)
Lab.Calc.I AA2002/03 - cap.11 12
Confronto tra if e while
espressione
istruzione
espressione
istruzione
if while
falsa vera verafalsa
![Page 13: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/13.jpg)
Lab.Calc.I AA2002/03 - cap.11 13
Confronto tra if e while
while è un if insistente!
![Page 14: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/14.jpg)
Lab.Calc.I AA2002/03 - cap.11 14
Esempio 1 di uso di while
int contatore = 0;int somma = 0;while(contatore <= 25){
somma = somma + contatore;contatore = contatore + 1;
}
![Page 15: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/15.jpg)
Lab.Calc.I AA2002/03 - cap.11 15
double somma= 0;int contatore =0;while(1){ // sempre vero!
if (contatore > 25) break; // esce somma = somma + contatore;
contatore++; }
Esempio 2 di uso di while
![Page 16: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/16.jpg)
Lab.Calc.I AA2002/03 - cap.11 16
Sintassi di do...while
do istruzione while (espressione)
dove espressione è una qualsiasi espressione C++ e istruzione può essere una singola istruzione o una sequenza di istruzioni racchiusa tra { e }.
![Page 17: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/17.jpg)
Lab.Calc.I AA2002/03 - cap.11 17
Semantica di do...while 1. Nellesecuzione di un'istruzione
do...while viene 2. Eseguita l'istruzione 3. Valutata l'espressione tra parentesi:
– Se non è nulla si torna al punto 1– Se è nulla si passa alle istruzioni successive
al do...while
![Page 18: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/18.jpg)
Lab.Calc.I AA2002/03 - cap.11 18
Confronto tra while e do...while
espressione
istruzione espressione
istruzione
while do...while
falsa vera vera
falsa
![Page 19: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/19.jpg)
Lab.Calc.I AA2002/03 - cap.11 19
Confronto tra while e do...while
do...while esegue sempre l'istruzione almeno una volta
![Page 20: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/20.jpg)
Lab.Calc.I AA2002/03 - cap.11 20
Esempio 1 di uso di do...while
do {
cout << "Inserisci i tuoi anni " ;cin >> age;if(age <= 0)
cout<<"Deve essere un numero positivo! ";
}while(age <= 0);
![Page 21: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/21.jpg)
Lab.Calc.I AA2002/03 - cap.11 21
Esempio 2 di uso di do...while
#include <iostream.h>#include <fstream.h> // gestione di files int main( ) { double voto=0, somma=0; int num=0;// oggetto ifstream : file di input ifstream inFile= "voti.dat";
![Page 22: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/22.jpg)
Lab.Calc.I AA2002/03 - cap.11 22
do {inFile >> voto;
// inFile.eof( ) diverso da zero a fine file if(!inFile.eof( )) {
somma = somma + voti;num++;
} }
while(!inFile.eof( ));
![Page 23: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/23.jpg)
Lab.Calc.I AA2002/03 - cap.11 23
if(num)cout<< "voto medio
="<<sum/num<<endl;else
cout<< "file vuoto"<<endl;return 1;
} // chiude la parentesi del main
![Page 24: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/24.jpg)
Lab.Calc.I AA2002/03 - cap.11 24
Sintassi di for
for (espr1;espr2;espr3) istruzione
dove espr1 espr2 e espr3 sono espressioni C++ e istruzione può essere una singola istruzione o una sequenza di istruzioni racchiusa tra { e }.
![Page 25: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/25.jpg)
Lab.Calc.I AA2002/03 - cap.11 25
Semantica di forNellesecuzione di un'istruzione for viene 1. Valutata l'espressione espr1 (di solito
inizializzazione del contatore: esempio i=0)2. Valutata l'espressione espr2 (di solito un
test del contatore: esempio i<10)– Se non è nulla si esegue l'istruzione– Se è nulla si passa alle istruzioni successive al
ciclo for
3. Valuata l'espressione espr3 (di solito un incremento o decremento del contatore, esempio i++ )
4. Si torna al punto 2
![Page 26: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/26.jpg)
Lab.Calc.I AA2002/03 - cap.11 26
Confronto tra while e for
espressione
istruzione
espr1
istruzione
while for
falsa vera
verafalsa
espr3
espr2
![Page 27: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/27.jpg)
Lab.Calc.I AA2002/03 - cap.11 27
for (espr1;espr2;espr3) istruzione
Si può riscrivere anche come
espr1; while (espr2) { istruzione; espr3;
}
Confronto tra while e for
![Page 28: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/28.jpg)
Lab.Calc.I AA2002/03 - cap.11 28
Esempio 1 di uso di for
int sum=0;for (int i = 1; i <= n; i=i +1) sum = sum + i;cout << " La somma dei primi "<<n
<<" interi vale "<<sum<<endl;
![Page 29: 11) Iterazioni (for, do, while). Lab.Calc.I AA2002/03 - cap.112 Iterazioni 3 istruzioni che consentono di eseguire un loop (ciclo): 1. while 2. do...while](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb59497959361e8c423a/html5/thumbnails/29.jpg)
Lab.Calc.I AA2002/03 - cap.11 29
Esempio 2 di uso di for: calcolo del fattoriale
int fattoriale=1; int n; cout << "inserisci n" << endl; cin << n; for(int i=1; i<=n; i++) { fattoriale *= i; } cout << "n!=" << fattoriale << endl;