Cicli in C++: Ripeti finché

Il ripeti finché si utilizza in tutti i problemi in cui si chiede di fare qualcosa finché non si verifica una determinata condizione. Ad esempio inserire un numero che deve essere per forza positivo o diverso da zero. Oppure continuare il programma finché non si inserisce un particolare carattere.

Esercizi

Svolgi tutti questi esercizi commentandoli e scrivendo un'intestazione come puoi vedere nell'esempio sottostante.

  1. Chiedi all'utente di inserire un numero finché non inserisce un numero > 0.

  2. Chiedi all'utente di inserire un carattere finché non si inserisce il carattere 'x'. Per controllare che il carattere sia una 'x' si scrive c!='x'

  3. Chiedi all'utente di inserire un numero compreso tra 10 e 20. Se è minore di 10 o maggiore di 20 chiede ancora di reinserirlo.

  4. Chiedi all'utente di inserire due numeri e poi ne divide il primo per il secondo e stampa il risultato. Il secondo numero deve essere diverso da zero.

Esercizi Extra

  1. Chiedi all'utente di inserire un numero con la virgola finché la virgola del numero non è uguale a .5. Esempio il numero 3.2, 6.6 o 9.1 non vanno bene. 10.5 va bene. Ricorda che in C, come in genere nei linguaggi di programmazione, i numeri con la virgola si scrivono usando il punto. Cerca su internet la funzione trunc del c++.

  2. Chiedi all'utente di inserire un numero positivo (se è negativo lo chiede ancora) e poi ne calcola la radice quadrata con la funzione sqrt(). Cerca su internet la libreria in cui c'è la funzione sqrt.

  3. Dati due numeri N e M positivi (li richiede se sono negativi) disegna un rettangolo NxM.

Guida

Per risolvere questo tipo di esercizi si un altro tipo di ciclo che è il do/while. Questo ciclo si chiama anche a condizione finale, mente il normale while si chiama a condizione iniziale.

do {

qualcosa...

} while(condizione);

che si può leggere come fai (do) quello che devi fare (il qualcosa... dentro le parentesi grafe) finché (while) la condizione è vera.

Un esempio è il seguente: Chiedi all'utente di inserire un numero finché non inserisce un numero < 0.

/*

Name: Ripeti finché

Author: Fabio Biscaro

Date: 17/01/16 18:48

Description: Chiede un numero all'utente un numero negativo. Lo richiede se n è maggiore di zero

*/

#include <iostream>

using namespace std;

int main() {

cout << "Inserisci un numero minore di zero: \n";

int n; // dichiaro n

do {

cin >> n; // Chiede n all'utente

} while (n>0); // Resta nel ciclo finché n è minore di zero

cout << "Complimenti hai inserito un numero < 0";

}