Multiplications: petit exercice de maths

Contenu du snippet

Ce programme très simple vous demande de trouver le produit d'une multiplication au hasard, compte le temps que vous prenez et le nombre d'erreurs et vous donne une note.

Source / Exemple :


#include <iostream>
#include <ctime>
#include <windows.h>
#include <cmath>
#include <string>
#include <string>
using namespace std;
static SYSTEMTIME st;

double temps (float temps_debut)
{
GetSystemTime(&st);
float secondes = st.wHour*3600 + st.wMinute*60 + st.wSecond;
if (temps_debut < 0) //c'est le début du "chronomètre)
{return secondes;}
else //c'est la fin du chronomètre
{return secondes - temps_debut;}    
    
}    

int random (int min, int max)
{       
int random_integer;
for(int index=0; index<20; index++)
{random_integer = (rand()%max)+min;}
return random_integer;
} 

void intro (int time, int nombre_de_multiplications, int level)
{ cout << "Dans " << time << " secondes, "<< nombre_de_multiplications << " multiplications a la difficulte " << level << " te seront posees auquelles \n";
cout << "tu doit repondre sans te tromper et le plus vite possible\nBonne chance!\n";
Sleep (1000*time);
cout << "\t\t\t\t  Temps pris  Erreur(s)  Gain/Perte    Total" <<endl;
}

int main(int argc, char *argv[])
{
srand ((unsigned)time(0));
bool fastmode;
string mode;
double answer=0, total =0, diff, a, b, erreur, conteur=0;
int level, x=0, vitesse,ndm;
string gain_perte, continuer;

while (x!=1){
cout << "modes\n1. rapide\n2. long\n3. court\n4. normal\n5. dur\n6. personalise\nmode ";
cin >> mode; 
if (mode=="rapide" || mode =="1")
{intro(1,10,1);x=1; level=1;ndm=10;vitesse=0;}

if (mode=="long" || mode =="2")
{intro(5,10,1);x=1; level=1;ndm=25;vitesse=1;}

if (mode=="court"|| mode =="3")
{intro(5,10,1);x=1; level=1;ndm=4;vitesse=1;}

if (mode=="normal"|| mode =="4")
{intro(5,10,1);x=1; level=1;ndm=10;vitesse=1;}

if (mode=="dur"|| mode =="5")
{intro(5,10,2);x=1; level=2;ndm=10;vitesse=1;}

if (mode=="personalise"|| mode =="6")
{cout << "vitesse(s): ";
cin >> vitesse;
cout << "nombre de multiplications: ";
cin >> ndm;
cout << "niveau(1-3 conseille): ";
cin >> level;                                             
intro(vitesse,ndm,level);x=1;}

}

  
while (continuer != "non" && conteur<ndm)
{
double chrono = temps(-1);
a=random(-3 + 4*level,8+2*level), b=random(-3 + 4*level,8+2*level), erreur=-1;

while (a*b != answer){
cout << a << "x" << b << "=";
cin >> answer;
erreur++;}

chrono = temps(chrono);
diff = (5*level-chrono-2*erreur)/2;
total = total + diff;

if (chrono<0) {gain_perte = "\t Perte:";}
if (chrono>0) {gain_perte = "\t Gain: ";}
if (chrono==0) {gain_perte = "\t       ";}

cout << "\t\t\t\t\t" << chrono; 
cout << "s\t " << erreur; 
cout << gain_perte << sqrt(diff*diff)  <<"   Total: " << total <<endl;    

conteur++;
answer = 0;    
Sleep(1000*vitesse);
}    

cout << "\n\nTotal: " << total << " / " << ndm*2 << "\n" ;   
system ("pause");    
return 0;    
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.