Cheres amies, chers amis du forum
J'ai besoin d'aide sur un algo pour un projet en C++ qui doit me permettre de réviser le calcul mental.
Contexte général :
Dans un temps limité, je dois répondre à un certain nombre de questions avec réponses à choix multiples (4 réponses possibles par question).
Chaque question est obligatoirement une opération à deux chiffres.
Les chiffres peuvent être entiers (compris entre -10000 et 10000), décimaux (jusqu'à trois chiffres après la virgule), positifs ou négatifs pour de petits chiffres (ex : 0.009) ou à deux chiffres pour ceux compris entre -100 et 100, des fractions.
À ce stade de la conception, j'ai besoin d'être aiguillé sur trois choses :
- la génération aléatoire de nombre qui correspondent à la description ci-dessus ;
- le choix aléatoire d'un style opération (addition,...) ;
- et enfin le placement aléatoire de la bonne réponse dans les propositions, les propositions fausses doivent être ressemblantes pour semer le doute.
voici une idée de l'algo :
Dans l'ordre, je génèrerai d'abord l'opération, car l'intervalle de valeurs pour l'opération dépend de cette opération .
Mes trois problèmes concernent 3 tirages aléatoires successifs mais avec un objectif différent :
1/ Un tirage pour les opérandes dans leur espace de valeur ;
2/ Un tirage aléatoire de 0 -> N, où tu fais correspondre un nombre avec une des opérations ;
3/ Un tirage entre 0 et 3 pour te donner la place de la bonne réponse.
étape 1/ j'utiliserais l'opérateur module (%) :
Pour générer une opération aléatoire, je génère un nombre, tu regardes le résultat de ce nombre modulo 4, et en fonction, tu choisis ton opération (0 = addition, 1 = soustraction, etc).
Pour la division, pour être sûr de tomber sur une valeur entière, une astuce consiste à générer deux nombres, à faire leur produit, et à proposer comme opération la division du produit par la première opérande (par exemple).
Voila ou j'en suis, j'ai surtout besoin d'idées pour les erreurs
Merci.