L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco...
-
Upload
pierina-ferri -
Category
Documents
-
view
213 -
download
0
Transcript of L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco...
![Page 1: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/1.jpg)
L’iterazione while
La sintassi è la seguente:while (condizione){ blocco istruzione}Il blocco di istruzione viene ripetuto fino a quando la condizione risulta veraQuante volte viene ripetuto il ciclo?
![Page 2: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/2.jpg)
L’iterazione while
Quante volte viene ripetuto il ciclo?
Questo dipende da come viene espressa la condizione e la modalità di modificarne il valore di veritàVi sono dei cicli che non vengono mai eseguiti
nel caso la condizione risulta falsa al primo test
EsempioInt a=0While (a<0){ cout <<a;}
![Page 3: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/3.jpg)
L’iterazione while
Quante volte viene ripetuto il ciclo?
Vi sono dei cicli che non terminano mainel caso la condizione risulta sempre vera
EsempioInt a=0;While (a==0){ cout <<a;}
![Page 4: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/4.jpg)
L’iterazione while
Quante volte viene ripetuto il ciclo?
Vi sono dei cicli di cui possiamo dire quante volte vengono eseguitinel caso la condizione ha un valore iniziale e un valore finale
EsempioInt a=0;While (a<10){ cout <<a; a++;}
Il ciclo verrà eseguito esattamente 10 volte
![Page 5: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/5.jpg)
L’iterazione while
Quante volte viene ripetuto il ciclo?
Vi sono dei cicli che non possiamo prevedere quante volte vengono eseguiti
nel caso la condizione diventa falsa al verificarsi di un certo evento che non possiamo prevedere
Esempio
while(!kbhit());
Int ,n,a=0;While (a<100){ cin>>n; a=a+n;}cout<<a;
![Page 6: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/6.jpg)
L’iterazione do… whileViene definito con controllo in coda perché prima esegue il blocco di istruzione e poi valuta se lo deve ripetere:
La sintassi è la seguente:do{ blocco _struzione}while (condizione);
Il blocco di istruzione viene ripetuto fino a quando la condizione risulta veraQuante volte viene ripetuto il ciclo? la risposta è almeno una voltaIl numero preciso dipende da come viene posta la condizione secondo i criteri visti per il WhileCon il do…while non si può implementare il caso che il ciclo non venga mai eseguito.
![Page 7: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/7.jpg)
L’iterazione
In realtà si può affermare che ogni ciclo while si può tradurre in un ciclo do..while e viceversa, con opportuni accorgimenti
Vediamo alcuni esempi:
![Page 8: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/8.jpg)
L’iterazione
Int a=0;While (a<10){ cout <<a; a++;}
Int a=0;do{ cout <<a; a++;}While (a<10);
![Page 9: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/9.jpg)
Vediamo alcuni esempi dell’uso del While
Per esercizio
Provate a capire quali problemi risolvono e scrivete una possibile
consegna o traccia
Poi risolvete i problemi proposti alla fine della dispensa
![Page 10: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/10.jpg)
int main() {
int i = 32; char c ;
while (i < 127) {
c = i;
cout << c << '\t';
if ((i % 10) == 2)
cout << endl;
i ++;
}
system("pause");
return 0;
}
![Page 11: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/11.jpg)
int main() {
int a, b;
cout << "DAI IL PRIMO NUMERO: ";
cin >> a;
cout << "DAI IL SECONDO NUMERO: ";
cin >> b;
int ma = a, mb = b;
while (ma != mb) {
if (ma < mb)
ma = ma + a;
Else
mb = mb + b;
}
cout << "IL M.C.M. DI " << a << " E " << b << " E': " << ma << endl;system("pause"); return 0; }
![Page 12: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/12.jpg)
int main() {
float somma = 0;
int x; contatore = 0;
cout << "Inserisci sequenza di interi terminata da numero negativo" << endl; cin >> x;
while (x >= 0) {
somma += x;
contatore + +;
cin >> x;
}
if (contatore == 0) // E' stato immesso subito un numero negativo.
cout << "la media non e' definita!" << endl;
else
cout << "la media e' " << somma / contatore << endl;
return 0; }
![Page 13: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/13.jpg)
int main() {
int n,i=1, fatt = 1;
do {
cout << "Immetti il numero ( >=0 ): "; cin >> n;
} while (n < 0);
while( i<= n) {
fatt = fatt*i;
i++;
}
cout << "Il fattoriale di " << n << " e' " << fatt << endl;
return 0;
}
![Page 14: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/14.jpg)
int main() {
int n, m,resto;
cout <<"Inserisci i due numeri interi:" << endl;
cin >> n >> m;
resto = m;
while (resto != 0) {
resto = n % m;
n = m;
m = resto;
}
cout <<"il M.C.D. e' " << abs(n) << endl;
return 0;
}
![Page 15: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/15.jpg)
int main() {
char c;
int vocali_minusc = 0;
cout << "Inserisci sequenza di caratteri terminata da .'" << endl;
do {
cin>>c;
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
vocali_minusc++;
} while (c != ‘.');
cout << "La sequenza data contiene " << vocali_minusc << " vocali minuscole" << endl;
return 0;
}
![Page 16: L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione.](https://reader036.fdocuments.net/reader036/viewer/2022082920/5542eb73497959361e8d9ea0/html5/thumbnails/16.jpg)
Scrivere un programma C++ che1. sommare i primi n numeri2. Visualizzare i primi n numeri pari3. Visualizzare i primi n numeri dispari4. dato in input n sommare gli n numeri inseriti da tastiera 5. calcolare la media di n numeri dati in input da tastiera6. verificare se un numero è primo esso primo se non ammette un divisore diverso
da 1 e se stesso7. Visualizzare i primi n numeri della serie di Fibonacci la serie è la seguente 0 1 1
2 3 5 8 13 21 …. Ogni numero è dato dalla somma dei due che lo precedono tranne per i primi due che sono fissi
8. indovinare un numero tra 1 e 20 in tre tentativi9. calcolare a elevato a b come prodotto ripetuto:Per b=0 il risultato r è 1
altrimenti è r=a; e r=r*a per b-1 volte10.Dato in input n calcolare n! è il prodotto dei numeri che vanno da 1 a n0!= 1 n!=n*n-1*n-2*…*3*2*1