aiutoo...informatica..programmazione C++?
eserzizio 1.
costruire un programma C++ che stampa a video 20 numeri casuali tra 200 e 210.
esercizio2.
costruire un programma C++ che stampa a video 20 numeri casuali ma è utente a scegliere il numero maggiore e numero minore di numeri casuali.
2 risposte
- Anonimo9 anni faRisposta preferita
Ciao!
In C e C++ c'è un modo preciso per generare numeri casuali (o meglio, pseudocasuali).
Questo modo è usare la funzione srand() per inizializzare il generatore di numeri pseudocasuali, e per produrne uno usa la funzione rand().
Più nella precisione, il generatore va inizializzato così:
srand( time(NULL) );
Questo garantisce che a ogni esecuzione del programma, questo genererà numeri diversi.
Per ottenere numeri in un certo intervallo, la funzione rand() va usata "in collaborazione" con l'operatore modulo % (il resto della divisione).
Ad esempio, se vuoi ottenere numeri nell'intervallo [0; 10], devi fare:
rand() % (10 + 1) → rand() % 11
Questo perchè in una divisione per 11, il valore del resto è minimo 0 e massimo 10.
Quindi, per ottenere numeri casuali nell'intervallo [0; n] basta fare:
rand() % (n + 1).
Il tuo primo esercizio chiede numeri casuali nell'intervallo [200; 210].
Come si può ottenere questo range di valori?
[200; 210] = 200 + [0; 10].
Quindi, basterà scrivere :
200 + rand() % 11;
Il programma 1:
#include <iostream>
#include <cstdlib>
#include <ctime> //per utilizzare la funzione time()
using namespace std;
int main(void) {
srand(time(NULL)); //inizializza il generatore di numeri pseudocasuali
for (int i = 0; i < 20; i++)
cout << 200 + rand() % 11 << endl;
//se ti serve, inserisci qua system("pause") o simili
return 0;
}
Il secondo esercizio è molto simile al primo. Unica differenza è che devi far inserire due numeri che diventeranno l'estremo inferiore e l'estremo superiore dell'intervallo.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(void) {
int min, max;
srand(time(NULL));
cout << "Inserire estremo inferiore:" <<endl;
cin >> min;
cout << "Inserire estremo superiore:" << endl;
cin >> max;
for (int i = 0; i < 20; i++)
cout << min + rand() % (max - min + 1) << endl;
return 0;
}
Spero di esserti d'aiuto, ciao! ^^
- Anonimo9 anni fa
Per me è la cipolla ಠ_ಠ