Tratamiento de datos y azar, pregunta formulada por Codificadorac, hace 1 mes

Escoger dos cuentas aleatorias y transferir montos entre ellas; en codigo c++


CapYemacruda: :v si funca no ? xd

Respuestas a la pregunta

Contestado por mariabaezc
0

Respuesta:

okey......??

Explicación:


CapYemacruda: :v oe espero que funcke que es pa una tarea
themasteredx: pnpnpnpnpn
themasteredx: cholisor
Contestado por jhonquequearias
1

Respuesta:

#include <iostream>

#include <thread>

#include <time.h>

#include <stdlib.h>

#define cantidad 100

using namespace std;

bool s1, s2;

int turno;

int cuentas[cantidad];

void traspasos(void);

void contabilizar(void);

void p1(){

   while(true){

       s1=true;

       turno=1;

       while(s2==true and turno==1);

       contabilizar(); //SECCION CRITICA

       s1=false;

   }

}

void p2(){

   while(true){

       s2=true;

       turno=0;

       while(s1==true and turno==0);

       traspasos(); //SECCION CRITICA;

       s2=false;

   }

}

void traspasos(){

   srand(time(NULL));

   int cuenta[2], monto; //conservar las cuentas y los montos para el traspaso

   for(int i=0; i<2; i++){//para dos cuentas

       cuenta[i] = rand() % 99; //tener una cuenta aleatoria

   }

   monto = rand() % 10;

   cuentas[cuenta[0]] = cuentas[cuenta[0]] + monto;

   cuentas[cuenta[1]] = cuentas[cuenta[1]] - monto;

}

void contabilizar(){

   int suma=0;

   for(int i=0; i<cantidad; i++){

       if(cuentas[i]<10){

           cout<<cuentas[i]<<"  ";

       }else{

           cout<<cuentas[i]<<" ";

       }

       suma = suma + cuentas[i];

       cout<<endl;

   }

   cout<<"\nLa suma de todas las cuentas es : "<<suma<<endl;

}

int main()

{

   s1=false;

   s2=false;

   turno=0;

   for(int i=0; i<cantidad; i++){

       cuentas[i] = 100;

   }

   thread a(p1); //Aqui contabilizo

   thread b(p2); //Aqui hago los traspasos de montos

   a.join();

   b.join();

   return 0;

}

Explicación:

Todo siendo un gozu


Codificadorac: eres muy inteligente, estoy agradecida. <3 <3< 3
Otras preguntas