L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco...

16
L’iterazione while La sintassi è la seguente: while (condizione) { blocco istruzione } Il blocco di istruzione viene ripetuto fino a quando la condizione risulta vera Quante volte viene ripetuto il ciclo?

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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