| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
beta Lt JG

Registrado: 01 Abr 2006Mensajes: 74
|
Publicado: Mar 09 Mar, 2010 5:39 pm Asunto: Aleatoriedad y RandG |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 09 Mar, 2010 9:31 pm Asunto: |
|
|
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 |
|
 |
beta Lt JG

Registrado: 01 Abr 2006Mensajes: 74
|
Publicado: Mar 09 Mar, 2010 9:52 pm Asunto: Gracias Leo |
|
|
Como siempre: rápido, claro y conciso.
Muchas gracias |
|
| Volver arriba |
|
 |
beta Lt JG

Registrado: 01 Abr 2006Mensajes: 74
|
Publicado: Mie 10 Mar, 2010 4:35 pm Asunto: No he sabido hacer funcionar las instrucciones |
|
|
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:
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 10 Mar, 2010 8:28 pm Asunto: |
|
|
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 |
|
 |
beta Lt JG

Registrado: 01 Abr 2006Mensajes: 74
|
Publicado: Mie 10 Mar, 2010 9:43 pm Asunto: Ya funciona |
|
|
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 |
|
 |
|