Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Aleatoriedad y RandG

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Aleatoriedad y RandG Responder citando

Leo en la ayuda que es una orden para generar números aleatorios que sigan una distribución gausiana (normal).

Su formato es:

Código:
Extended RandG(Extended Mean, Extended StdDev);


¿Alguien sabe como usarla?
El formato lo entiendo, pero no se como manejar los "Extended", de forma que lo que obtenga y lo que introduzca sean formatos de dato como: int o float.

La ayuda también dice que pertenece a la
Código:
Math.RandG Function


Y cuando la uso de la siguiente forma:
Código:
   
Extended novo;
novo = RandG(20, 2);

Me da un error:
Código:

[BCC32 Error] Unit_1.cpp(4712): E2268 Call to undefined function 'RandG'

¿Es preciso entonces añadir alguna librería especial al proyecto.

Saludos y gracias por adelantado.

Nota: Estoy trabajando con CodeGear™ C++Builder® 2009
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Extended es (sysmac.h):

    typedef long double Extended; // 10 byte real


#include <math.hpp>

long double __fastcall RandG(long double Mean, long double StdDev);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Gracias Leo Responder citando

Como siempre: rápido, claro y conciso.

Muchas gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: No he sabido hacer funcionar las instrucciones Responder citando

Algo debo haber intrepretado mal porque el programa indica que RandG es una función desconocida.
El programa se compone básicamente de Unit1.h y Unit1.cpp.

1- En Unit.h, he puesto:
Código:
typedef long double Extended; // 10 byte real

2- En Unit.h he puesto luego:
Código:
#include <math>

junto a los otros #include previamente existentes.
3- En Unit.h también he puesto:
Código:
long double __fastcall RandG(long double Mean, long double StdDev);

tras las otras funciones públicas del tipo:
Código:
void __fastcall Button5Click(TObject *Sender);

4- En Unit.cpp, y dentro de una función, he hecho la llamada a RandG, llamada que me da el error señadaldo.
Código:
void GausAleas(long double mEdia, long double stdDev, int los30[])
{//begin
    for (int i = 0; i < 30; i++) {
      los30[i] = (int)RandG(mEdia,stdDev);
    }// end for
}//end

Entonces es cuando el compilador se detiene indicando que RandG es una función desconocida.

¿Alguna sugerencia?.
Saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Ojo "math" y "math.hpp" no son lo mismo, y lo del "typedef" solo lo puse para mostrar como estaba definido "Extended", no hay que ponerlo.

Resumiendo, solo hay que incluir la cabecera: #include <math.hpp> y usar la función normalmente.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Ya funciona Responder citando

Lo que me indicas en el último mensaje funciona.

Gracias nuevamente y siento no haber entendido las primeras indicaciones que me diste.

Saludos

beta
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.