


#include <iostream> //includeren van input en output
#include <string> //includeren van de string
using namespace std; //de namespace

//faculteit
double fac (double a)
{
  if (a > 1)
   return (a * fac (a-1));
  else
   return (1);
}
//de faculteit beschreven


int main(){ //de main
 
//beginnen met integers en doubles benoemen
double totaal,succes,geensucces,uitpakken,aantalkeersucces,aantalzondersuccesinberekening;

//wat info van tevoren
cout << "De volgende getallen moeten ingevuld worden volgens het vaasmodel." << endl; 
cout << "Druk op ENTER om door te gaan" << endl;//meedelen voor het vaasmodel en enter drukken

cin.get();//zorgen dat je eerst op enter moet drukken


//vragen
cout << "Hoeveel 'knikkers' zijn er in totaal?" << endl;//vragen hoeveel knikkers er in de vaas zitten
cin >> totaal;

cout << "Hoeveel 'knikker(s)' hebben succes?" << endl; //vragen hoeveel succes hebben
cin >> succes;

//uitrekenen van niet succesen
geensucces = totaal - succes;

//vragen...
cout << "Hoeveel 'knikker(s)' pak je uit de vaas?" << endl;//vragen hoeveel je er uit pakt
cin >> uitpakken;

cout << "Hoeveel keer wil je succes hebben?" << endl;//de rest van de knikkers
cin >> aantalkeersucces;


aantalzondersuccesinberekening = uitpakken - aantalkeersucces;//aantal knikkers die geen succes hebben
cout << " " << endl << endl;
cin.get();


//berekenen van de kansen:
//berekenen van n1 en r1 het allereerste getal dus
double n1, r1, n1faculteit, r1faculteit, n1minr1, n1minr1faculteit, onderdeler1, gedeelddoor1, bovendeler1;//benoemen van doubles
//invoer gegevens
n1 = succes;
r1 = aantalkeersucces;
//faculteit berekenen
n1faculteit = fac (n1);
r1faculteit = fac (r1);
//onder de deler berekenen
n1minr1 = n1 - r1; //n1 - r1
n1minr1faculteit = fac (n1minr1);// faculteit van n1 - r1
// r! * (n-r)!
bovendeler1 = n1faculteit;
onderdeler1 = r1faculteit * n1minr1faculteit;
//gedeeld door som
gedeelddoor1 = bovendeler1 / onderdeler1;
cout << n1 << " nCr " << r1 << " is: " << gedeelddoor1 << endl;

//berekenen van n2 en r2 tweede getal dus
double n2, r2, n2faculteit, r2faculteit, n2minr2, n2minr2faculteit, bovendeler2, onderdeler2, gedeelddoor2;
//invoer gegevens
n2 = geensucces;
r2 = aantalzondersuccesinberekening;
//faculteiten berekenen
n2faculteit = fac (n2);
r2faculteit = fac (r2);
//onder de deler berekenen
n2minr2 = n2 - r2;
n2minr2faculteit = fac (n2minr2);
//r! * (n-r)!
bovendeler2 = n2faculteit;
onderdeler2 = r2faculteit * n2minr2faculteit;
//gedeeld door som
gedeelddoor2 = bovendeler2 / onderdeler2;
cout << n2 << " nCr " << r2 << " is: " << gedeelddoor2 << endl;

//berekenen van n3 en r3 het 3e getal (de deler)
double n3, r3, n3faculteit, r3faculteit, n3minr3, n3minr3faculteit, bovendeler3, onderdeler3, gedeelddoor3;
//invoer van gegevens
n3 = totaal;
r3 = uitpakken;
//faculteiten berekenen
n3faculteit = fac (totaal);
r3faculteit = fac (uitpakken);
//onder de deler berekenen
n3minr3 = n3 - r3;
n3minr3faculteit = fac (n3minr3);
// r! * (n-r)!
bovendeler3 = n3faculteit;
onderdeler3 = r3faculteit * n3minr3faculteit;
//gedeeld door som
gedeelddoor3 = bovendeler3 / onderdeler3;
cout << n3 << " nCr " << r3 << " is: " << gedeelddoor3 << endl;

//complete som weergeven
cout << "De som wordt: (" << n1 << " nCr " << r1 << " * " << n2 << " nCr " << r2 << ") / (" << n3 << " nCr " << r3 << ")" << endl;


//berekenen van de complete som
double bovendedelereind, onderdedelereind, uitkomst;
bovendedelereind = gedeelddoor1 * gedeelddoor2;
onderdedelereind = gedeelddoor3;
uitkomst = bovendedelereind / onderdedelereind; 

cout << "De uitkomst is: " << uitkomst << endl;
cin.get();


   
   return 0; //de afsluit prodedure
   
}

