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.
Chiedi all'utente di inserire un numero finché non inserisce un numero > 0.
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'
Chiedi all'utente di inserire un numero compreso tra 10 e 20. Se è minore di 10 o maggiore di 20 chiede ancora di reinserirlo.
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
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++.
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.
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";
}