Avatar billede ferret Nybegynder
26. marts 2004 - 10:34 Der er 5 kommentarer og
1 løsning

Meget newbie spørgs mål omkring libs.

Jeg har i den seneste tid ledt efter et BigNum library og har fundet dette http://panoramix.ift.uni.wroc.pl/~bosy/bignum/

Men jeg opdager nu at jeg aner en bjælde om at bruge det, skal det compiles eller bare #include's? Hvis nogen kender en klasse der er let at bruge vil jeg da gerne se den.

Må også gerne kunne håndtere floats, og skal selvfølgelig have overloadede regne operatorer.

Vil gerne lære at RTFM.
Avatar billede soreno Praktikant
26. marts 2004 - 11:26 #1
Du skal bare inklude de filer du skal bruge.

Hvordan fandt jeg ud af det ?

Ved logik. Der er kun include filer som er relevante for bignum, ingen lib filer. Desuden kan det ses at include filerne indeholder implementeringen af bignum, dermed er det ikke nødvendigt med libs.

Desuden hvis du kigger nærmere på de eksempler der følger med så vil du opdage at det er nok at inkludere filerne (kig på compile.bat).
Avatar billede soreno Praktikant
26. marts 2004 - 11:27 #2
Det skal dog lige understreget at jeg ikke har testet.. :-)
Avatar billede ferret Nybegynder
26. marts 2004 - 12:06 #3
Må være ærlig og sige at jeg sgu' ikke kan gennemskue de eksempler, jeg kan ikke se hvor BigNum Variablen defineres, grunden til jeg leder efter et bignum er for at implementere den i dette program:

#include <iostream>
using namespace std;
int main (int argc, const char * argv[]) {
    int i = 1;
    int c = 0;
    char ch ='n';
    unsigned int n1 = 1;
    unsigned int n2 = 0;
    unsigned int nc = 1;
    float ratio = 0.0;
   
    cout<<"Fibbonachi number generator."<<endl<<"How many numbers to generate? ";
    cin>>c;
    if(c>47){
        cout<<c<<" is too large a value, defaulting to 45."<<endl<<" Continue?(y/n)";
        cin>>ch;
        if((ch == 'n') || (ch == 'N')){
            cout<<"Exiting..."<<endl;
            return 0;}
        else
            c = 45;
        }
   
    while(i<=c){
            nc = n1 + n2;
            ratio = (float)nc / (float)n2;
            cout<<i<<". "<<nc<<" | Ratio: "<<nc<<" / "<<n2<<" = "<<ratio<<endl;
            n1 = n2;
            n2 = nc;
            i++;
            }

    return 0;
}

Har kigget på ekemplerne, men den siger ikke dart til mig, jeg har ikke den helt store erfaring med programering ud over hvad jeg har brugt i det overstånende.


Idelt ville jeg have en klasse så jeg kan sige

BigNum nc = nb+na;

Men så vidt jeg kan se i den BigNum implementering jeg har fundet kan man ikke gøre det.
Avatar billede brhino Nybegynder
26. marts 2004 - 15:03 #4
Jeg har ikke rodet så meget med bignum libraries, men dette skulle efter sigende være en af de bedre:

http://indigo.ie/~mscott/
Avatar billede ferret Nybegynder
29. marts 2004 - 17:16 #5
Brhino -
Den du giver mig der virker udemærket, eller næsten, jeg kan kompile programmet, men så får jeg en error der siger:

"Instruktionen ved "0x00412986" referede hukommelse ved "0x0000022x". Hukommelsen kunne ikke "read" "

Når jeg så kører degugeren i VC++

Finder den følge linje:
Big(int j)  {MR_INIT_BIG convert(j,fn); }

Med fejlen:
First-chance exception in Fibbo.exe: 0xC0000005: Access Violation.
Fejlen i dissasembleren ser således ud:
00415AB6  mov        ecx,dword ptr [eax+22Ch]
Avatar billede ferret Nybegynder
19. maj 2004 - 09:42 #6
Jeg giver Soreno points for dette spm da han fik programmet til at compile, at det ikke virkede bagefter ta'r jeg ikke så tungt :>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester