necesito ayuda para una practica

keka
14 de Abril del 2004
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

Oliverio
14 de Abril del 2004
Yo tengo que lavar el auto y comprar un kilo de pan....
Hace una pregunta concreta. ¿o pretendes TODO el programa echo?

keka
14 de Abril del 2004
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

Oliverio
14 de Abril del 2004
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

noel solw
14 de Abril del 2004
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