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

Post on 02-May-2015

213 views 0 download

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

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?

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;}

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;}

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

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;

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.

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:

L’iterazione

Int a=0;While (a<10){ cout <<a; a++;}

Int a=0;do{ cout <<a; a++;}While (a<10);

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

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;

}

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; }

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; }

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;

}

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;

}

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;

}

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