Blocage sur un exercice du livre de Bjarne Stroustrup
Bonjour à toutes et tous .
Le but de l'exercice :
Réaliser un programme qui trouve un nombre pensé entre 1 à 100 en sept questions :
Question du programme :
(Le nombre auquel vous pensez est inférieur à 50.)
Je suis complétement perdu ..
D'avance merci .
Cordialement.
Blocage exercice livre Bjarne Stroustrup
Bonjour à toutes et tous .
@aslo92 , Trademark , Merci pour vos réponses .
C'était bien ce que je pensais avoir compris .
J'essaye d'écrire le programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include "std_lib_facilities.h"
int main()
{
int debut = 0,fin = 100 ;
int mil = (debut+(fin-debut)/2);
cout << "Le nombre auquel vous pensez est inférieur à " << mil << "?";
cin >> mil;
vector <int> tb (0,100) ;
int t ;
while (cin>>mil)
mil.push_back(tb);
} |
C'est un début , qui ne fonctionne pas .
Sauriez-vous m'indiquer mes erreurs ..
Merci .
Cordialement.
Blocage exercice livre Bjarne Stroustrup
Bonjour à toutes et tous .
Merci pour vos réponses .@aslo92 , @Bousk .
Alors je parviens à obtenir une partie du résultat escompté :
L'invite : Le nombre auquel vous pensez est inférieur à 50 s'affiche .
Si j'écris oui , la question deviens ... est inférieur à 25 , ensuite 12 , 6 , 3 et 0
Ok .. Mais je ne parviens pas à comprendre pourquoi non n'est pas pris en compte .
après 25 si j'écris 'non' cela devrait remonter à 37 puis 18 ...etc ..
Voilà mon code :
Code:
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
| #include "std_lib_facilities.h"
int main()
{
int debut = 0;
int fin = 100 ;
int ok = 0;
do
{
int mil = (debut + (fin - debut) / 2);
cout << "Le nombre auquel vous pensez est-il inférieur à " << mil << " ? \n";
string oui , non ;
cin >> oui , non ;
if ( oui == oui)
fin = mil;
else if (non == non)
debut = mil +1 ;
if (debut == fin -1)
{
ok = 1;
if (oui == oui)
cout << "Le nombre auquel vous pensez est " << (debut) << " ! \n ";
}
}
while (ok == 0);
return 0;
} |
Si vous pouviez m'expliquer ou je me trompe et pourquoi ... ???
Pas me donner la solution toute crue ...
Merci .
Cordialement.
Blocage exercice livre Bjarne Stroustrup
Bonjour à toutes et tous .
Je pense avoir compris ce que je ne comprends pas ...
1ère invite : plus petit que cinquante . oui
2eme : plus petit que vingt-cinq .non . Comment lui dire que 25 est le début et 50 la fin ???
Cordialement.
Blocage exercice livre Bjarne Stroustrup
Bonjour à toutes et tous .
@Trademark . Merci .
Citation:
Ahh mais quoi tu n'avais pas compris ton code ?
Euh ....:oops: Si en partie .
Si je dit oui à la 1ére invite , j'obtiens bien 25 , mais si ensuite , je répond non
j'obtiens quant même 12 alors que je devrais obtenir 32 ????.
Je suis vraiment nul car je ne comprend pas mon erreur et ou elle ce situe .
Je me posais la question de la possible réalisation de l'exercice ...... Sans commentaires .:calim2:
Cordialement.
Blocage exercice livre Bjarne Stroustrup
Bonsoir à toutes et tous .
Je cherche depuis plusieurs jours à comprendre l'algorithme de ce "jeu".
@aslo92 Me la donné , mais je voulais comprendre .
En fait il ne " fonctionnerait pas avec un string " ,
Code:
string oui_non // Cela ne marche pas
Pourquoi ? ais-je raison ?
Le code qui fonctionne :
Code:
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 37 38 39
| #include "std_lib_facilities.h"
int main()
{
int debut = 0;
int fin = 100 ;
int ok = 0;
do
{
int mil = (debut + (fin - debut) / 2);
cout << "Le nombre auquel vous pensez est-il inférieur à " << mil << " ? \n";
char oui_non;
cin >> oui_non;
if (oui_non == 'y') // 1ère condition
fin = mil ; // La valeur du milieu deviens la valeur de départ
else // 2ème condition
debut = mil ; // Si autre entrée que oui la valeur du milieu deviens celle de fin
if ( debut == fin -1)
{
ok = 1;
if (oui_non == 'y')
cout << "Le nombre auquel vous pensez est " << debut << " ! \n ";
else
cout << "Le nombre auquel vous pensez est " << fin << " ! \n ";
}
}
while (ok == 0);
return 0;
} |
Cordialement.
Encore MERCI à vous tous .
Blocage exercice livre Bjarne Stroustrup
Bonjour à toutes et tous .
@Trademake , merci pour ton aide .
Donc si je t'écoute , il devrais fonctionner avec un string . Je vais trouver .
@JolyLoic ,Pour ce qui est de l'écriture de mon code en brouillon sur un papier ....3 blocs rempli .... Et pour le reste , je suis un peu dyslexique ...
Cordialement.