Bonjour a tous!
Je suis debutante en C++ et voila un petit travail qu'on m'a conseillé de faire. Le soucis? je n'arrive pas a atteindre le resultat souhaité alors que tout semble correct.
/Voici la demarche a suivre:
1; On donne à minimum une valeur plus grande que celle qu'on attend. On calcule plusieurs de valeurs V que l'on compare ensuite avec minimum.
À chaque fois que V est inférieur à minimum, on remplace
minimum par V. Si on fait ceci un nombre suffisant de fois, la valeur finale de minimum devrait être la plus petite valeur aléatoire générée par la formule.
2. On applique la même chose à maximum, sauf que l'on commence par une valeur plus petite que celle attendue.
On calcule plusieurs valeurs de V que l'on compare apres à maximum. À chaque fois que V est supérieur à maximum, on remplace la valeur de maximum par celle de V. Si on fait ceci un nombre suffisant de fois, la valeur finale de maximum devrait être la plus grande valeur aléatoire générée par la formule.
3.on utilise les mêmes valeurs de V pour trouver les valeurs de minimum et maximum.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 // Probleme_1.cpp : Defines the entry point for the console application. // INFO1002 Devoir1 q1.cpp : définit le point d'entrée pour l'application console. // #include "stdafx.h" #include <iostream> #include <time.h> using namespace std ; int _tmain(int argc, _TCHAR* argv[]) { // Comment s'assurer que les valeurs ne sortent pas de l'intervalle ? // On doit trouver la borne inférieure et la borne supérieure de l'intervalle desdonnées générées. srand( unsigned int (time( NULL ) ) ) ; short minimum = 32768, maximum = 0, V ; for( long I = 0 ; I < 1000000 ; I++) // Faire un très grand nombre d'itérations. { V = 65 + rand()%(90-65+1) ; if( V < minimum) {minimum = V ; }// Gardez trace de la plus petite valeur générée. else if( V > maximum) {maximum = V ;} // Gardez trace de la plus grande valeur générée. } cout << "L'intervalle genere est [ " << minimum << ", " << maximum << " ] " << endl ; system("pause"); return 0; }
Le résultat attendu est [ 65, 90 ] mais je n'arrive pas. Au contraire j'ai un [-32768, 65] J'ai beau modifier mes intervalles mais c'est de pire en pire en fait. Je ne vois absolument pas ce qui cloche ??
Partager