PDA

View Full Version : [c++] programmino semplice ma non va :-((


AYAMY
07-02-2007, 22:13
Ciao a tutti.. ho trovato in rete questo programmino che dovrebbe simulare una funzione matematica... ma non va.. come mai?

#include <iostream>
#include <math.h>
using namespace std;

float gaussdev(long *idum)
{ float ran1(long *idum);
static int iset=0;static float gset;
float fac,rsq,v1,v2;
if (iset == 0) {
do { v1=2.0*ran1(idum)-1.0;
v2=2.0*ran1(idum)-1.0;
rsq=v1*v1+v2*v2;
} while (rsq >= 1.0 || rsq == 0);
fac= sqrt(-2.0*log(rsq)/rsq);
gset=v1*fac; iset=1;
cout << v2*fac << endl;
return v2*fac;
}else {iset= 0; return gset;}
cout << gset << endl;
}


cacciando questi errori...

[Linker error] undefined reference to `ran1(long*)'
[Linker error] undefined reference to `WinMain@16'

:mc:

che cosa ho combinato?
Mi potreste dare una mano?

Grazie

andbin
07-02-2007, 22:36
[Linker error] undefined reference to `ran1(long*)'
[Linker error] undefined reference to `WinMain@16' Vedo che:

a) C'è il prototipo e la chiamata ad una funzione ran1(), di cui però non vedo alcuna definizione.
b) Manca un "entry-point", per i programmi tradizionali è la funzione main().
c) Per come hai impostato il progetto e la compilazione, stai cercando di creare una applicazione Win32 "gui", non console. La funzione WinMain è l'entry-point per applicazioni grafiche su Windows.

Messo così, il sorgente ha poco senso e serve a nulla.

tomminno
08-02-2007, 00:05
Quel nome, ran1, mi ricorda i Numerical Recipes.