|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
[c++] La libreria c'è .. ma per farla funzionare?
Ciao a tutti..e scusatemi visto che sto assillando il forum con sta distribuzione di gauss ma stavolta finalmente penso di aver trovato una libreria che mi possa aiutare a trovare sta benedetta distribuzione di Gauss ma mi servirebbe un aiutino per farla funzionare...la libreria si chiama newran e si trova qui http://www.robertnz.net/ftp/newran02.zip con annessa la documentazione http://www.robertnz.net/nr02doc.htm#overview
In sostanza visto che mi serve una DISTRIBUZIONE NORMALE il codice che , una volta che riuscirò a far funzionare la libreria , dovrò inserire nel mio main sarà il seguente Normal N; SumRandom Z = 10 + 5 * N; for (int i=0; i<100; i++) cout << Z.Next() << "\n"; in cui i valori 10 e 5 gli verranno passati da una precedente funzione già esistente.. Ho seguito i consigli della documentazione ed ho fatto il seguente codice Codice:
#include <iostream> #include <newran02/include.h> #include <newran02/newran.h> #include <newran02/boolean.h> #include <newran02/myexcept.h> #include <newran02/tryrand.h> #include <newran02/extreal.h> using namespace std; int main (int argc, char *argv[]) { Normal N; SumRandom Z = 10 + 5 * N; for (int i=0; i<100; i++) cout << Z.Next() << "\n"; cout << "Press ENTER to continue..." << endl; cin.get(); return 0; } 3 C:\Dev-Cpp\include\newran02\newran.h:13, from ran.cpp In file included from C:/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include/newran02/newran.h:13, from ran.cpp 28 C:\Dev-Cpp\include\newran02\extreal.h `ostream' is neither function nor member function; cannot be declared friend 28 C:\Dev-Cpp\include\newran02\extreal.h expected `;' before '&' token che pastrocchio ho fatto stavolta? Grazie ancora!! e please sopportatemi per qualche altro post... ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Ti faccio notare che sul sito è presente una versione più aggiornata della libreria rispetto a quella che stai utilizzando.
Questo compila e gira senza problemi: Codice:
#include <iostream> #include "newran.h" int main() { MotherOfAll urng; Random::Set(urng); Normal N; SumRandom Z = 10 + 5 * N; for (int i = 0; i < 10; ++i) std::cout << Z.Next() << "\n"; std::cout << std::endl; } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
ciao.... grazie per la dritta.. e scusami per il ritardo nella risposta ma ho la linea adsl che fa i capricci .....
per quanto riguarda la nuova libreria ti riferisci a quella chiamata newran03.zip ? ... quindi se utilizzassi le tue righe di codice.. con questa nuova libreria tutto dovrebbe funzionare a dovere... giusto? Grazie ancora!! Simo |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
... come mai a me non va?
ho creato con dev c++ un nuovo progetto (tipo hello world) ci ho copiato dentro il codice ed ho settato il path per la mia cartella dove ho newran.h dove ho sbagliato? mica devo aggiungere al progetto qualche altro file ? Grazie Ultima modifica di AYAMY : 14-02-2007 alle 10:21. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Ma stai includendo solo l'header? Se chiami librerie esterne, oltre all'header o linki i .lib, o copi la relativa dll, o includi direttamente i sorgenti nel progetto. Ad esempio, potresti avere un file chiamato newran.cpp. I file .h contengono solo definizioni, non il corpo delle classi/funzioni
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 704
|
io ho incluso solo il file.h cioè newran.h ........
il problema è che se includo tutti i file della libreria.. già c'è un main (mi pare serva per fare un test)..quindi non funziona.... come faccio a sapere quali file devo includere? Grazie |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:11.