necesito ayuda para una practica
tengo que escribir un programa en c que simule la tirada de 4 dados de 6 caras n veces (que se pide al usuario). Tiene que sumar los 4 valores y sacar por pantalla el porcentaje en el que ha salido cada suma, la media de las sumas obtenidas y su desviacion estandar. Gracias
Yo tengo que lavar el auto y comprar un kilo de pan....
Hace una pregunta concreta. ¿o pretendes TODO el programa echo?
Hace una pregunta concreta. ¿o pretendes TODO el programa echo?
lo que no se es como se simulan las tiradas de los dados, si es que hay algo con lo que te salen numeros al azar o que hay que hacer, pero que si me la dabas entera yo te lavaba el auto. A lo mejor daba la casualidad de que alguien lo había tenido que hacer, chao
Bueno eso ya es otra cosa, hablando se entiende la gente. Para generar numeros pseudo aleatorios el ANSI C define una funcion llamada rand() que genera un numero PSEUDOALEATORIO entre 0 y RAND_MAX, pero con esto solo, cada vez que ejecutemos nuestro programa tendremos los mismos numeros:
EJ:
1000
4003
5004
30
Para lograr que cambie tenemos que cambiar la semilla con la que rand() genera nuestros numeros, eso lo hacemos con:
srand( (unsigned)time( NULL ) );
Esto nos dara siempre numeros distintos, OK?
Pero... seguiran siendo numeros grandes, para que los numeros aleatorios esten dentro del rango que queremos (1 al 6) usamos el siguiente macro:
#define getrandom( min, max ) ((rand() % (int)(((max) + 1) - (min))) + (min))
que quedaria:
iDado = getrandom( 1, 6 );
Te recomiendo que leas lo que dise el amual sobre rand() y srand() asi te queda claro como funciona el macro getrandom()
Suerte
EJ:
1000
4003
5004
30
Para lograr que cambie tenemos que cambiar la semilla con la que rand() genera nuestros numeros, eso lo hacemos con:
srand( (unsigned)time( NULL ) );
Esto nos dara siempre numeros distintos, OK?
Pero... seguiran siendo numeros grandes, para que los numeros aleatorios esten dentro del rango que queremos (1 al 6) usamos el siguiente macro:
#define getrandom( min, max ) ((rand() % (int)(((max) + 1) - (min))) + (min))
que quedaria:
iDado = getrandom( 1, 6 );
Te recomiendo que leas lo que dise el amual sobre rand() y srand() asi te queda claro como funciona el macro getrandom()
Suerte
Te envio el principio del programa, el sorteo de 4 dados n veces. El resto lo dejo por tu cuenta.
Cuentame como te fue.
// programa dados.cpp
// written in Borland CPP ver 4.5
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
int GetData()
{
int num = -1;
while(num < 0)
{
cout << "x = ";
cin >> num;
}
cout << endl;
return num;
} // GET DATA
void main()
{
randomize();
int n = GetData();
for(int i= 1;i <= n;i++)
{
int a = random(6) + 1,
b = random(6) + 1,
c = random(6) + 1,
d = random(6) + 1;
cout << "[" << setw(2) << i << "] : " << setw(5) << a
<< setw(5) << b << setw(5) << c << setw(5) << d << endl;
}
cout << endl << "end of program - good bye ! ! ! " << endl;
} // MAIN
Cuentame como te fue.
// programa dados.cpp
// written in Borland CPP ver 4.5
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
int GetData()
{
int num = -1;
while(num < 0)
{
cout << "x = ";
cin >> num;
}
cout << endl;
return num;
} // GET DATA
void main()
{
randomize();
int n = GetData();
for(int i= 1;i <= n;i++)
{
int a = random(6) + 1,
b = random(6) + 1,
c = random(6) + 1,
d = random(6) + 1;
cout << "[" << setw(2) << i << "] : " << setw(5) << a
<< setw(5) << b << setw(5) << c << setw(5) << d << endl;
}
cout << endl << "end of program - good bye ! ! ! " << endl;
} // MAIN
