Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:32 Der er 23 kommentarer og
1 løsning

hukommelses reference

Hey
Vi har fået sådan en obligatorisk opgave for på skolen hvor der skal benyttes en klasse og et array.

En af funktionerne har følgende:

bool udtagTalFraKoe( int &vaerdi)

hvordan defineres denne i headerfilen?
Har forsøgt med:

bool udtagTalFraKoe( int ); men det kan man ikke.

Hvordan gøres det?
Avatar billede arne_v Ekspert
17. april 2004 - 21:34 #1
bool udtagTalFraKoe( int &vaerdi);

eller:

bool udtagTalFraKoe( int &)
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:37 #2
oki takker, vil du have point nu, eller vil du ikke være venlig at hjælpe mig lidt med min opgave, så hæver jeg point til 50 :)
Avatar billede arne_v Ekspert
17. april 2004 - 21:40 #3
Hvis du har flere afklarende spørgsmål må du gerne stille dem.

Men jeg laver ikke hele opgaver.
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:44 #4
Jeg har et lille array, hvorfra der skal udtages den sidst indlæste værdi

Jeg har forsøgt med følgende kode, men den virker bare ikke.

bool Koe::udtagTalFraKoe(int &vaerdi)
{
    if(ledigPladsNr!=0)
    {
        ledigPladsNr--;
        &vaerdi=koeArray[ledigPladsNr];
        ledigPladsNr++;
        return true;
    }
    else
    {
        return false;
    }
}

Melder fejl i linien her:
    &vaerdi=koeArray[ledigPladsNr];

Hvad gør jeg?
Avatar billede arne_v Ekspert
17. april 2004 - 21:44 #5
Det skal vist bare være:

vaerdi = koeArray[ledigPladsNr];

uden & foran vaerdi.
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:45 #6
Altså det jeg vil er at indlæse værdien fra koeArray[ledigPladsNr] ind i referencen &vaerdi

PS. skal siges at jeg aldrig har leget med & før
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:46 #7
Vil der være lovligt i følge opgaven?
mener den der (int &vaerdig) skal være der, har den så ingen betyning eller?
Avatar billede arne_v Ekspert
17. april 2004 - 21:47 #8
Den skal være i argument listen til metoden, men ikke i assignmentet.
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:48 #9
Det jeg reelt skal er at udtage tallet fra array'et ligge det i &vaerdi og herefter udskrive denne vaerdi.

I opgaven står der:
int &vaerdi:
  Reference til den varibel, hvor det tal, der skal udtages af køen, skal gemmes.
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:49 #10
hvis jeg så bare skriver

vaerdi = koeArray[ledigPladsNr];

Hvordan kan jeg så udskrive værdien?

cout << &vaerdi; ?
Avatar billede arne_v Ekspert
17. april 2004 - 21:51 #11
Metoden erklæres med &:

bool Koe::udtagTalFraKoe(int &vaerdi)

Inde i metoden assignes uden &:

vaerdi = koeArray[ledigPladsNr];

Og hvis du vil skrive vaerdi ud så er det også uden &:

cout << vaerdi << endl;
Avatar billede arne_v Ekspert
17. april 2004 - 21:52 #12
cout << &vaerdi << endl;

skriver adressen på vaerdi ud.
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:55 #13
ahh oki, mange tak, vil nu arbejde videre med opgaven :)

Har lige smit opgaven ud på mit domæne, så kan du lige se den igennem, hvis du får tid og lyst :)
http://www.bjerrumsoft.frac.dk/download/obligatorisk opgave.doc

Skal du have point :)
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:55 #14
Avatar billede arne_v Ekspert
17. april 2004 - 21:57 #15
Point - jo tak
Avatar billede spiritusanta Nybegynder
17. april 2004 - 21:58 #16
ups skal jeg lige lave et spørsmål, så du kan få de sidste 20 point :)
Avatar billede spiritusanta Nybegynder
17. april 2004 - 22:00 #17
Avatar billede arne_v Ekspert
17. april 2004 - 23:24 #18
Jeg har lige kigget opgaven igennem.

Det ser nogenlunde overkommeligt ud.
Avatar billede spiritusanta Nybegynder
17. april 2004 - 23:34 #19
naa har dog et lille problem, som jeg måske bliver nødt til at oprette et spørgsmål til.

Har en del af min kode herunder.
Klassen:
bool Koe::udtagTalFraKoe(int &vaerdi)
{
    bool svar;
    svar=erKoeTom();
    if(svar==true)
    {
        ledigPladsNr--;
        vaerdi=koeArray[ledigPladsNr];
        ledigPladsNr++;
        return true;
    }
    else
    {
        return false;
    }
}

og main koden.

while(ikkeTom!=false)
    {
        ikkeTom=lifoKoe1.udtagTalFraKoe( &vaerdi );
        if(ikkeTom==true)
        {
            cout << "vaerdi";
        }
        else
        {
            cout << "Koen er tom";
        }
        lifoKoe1.sletKoe();
        svar=lifoKoe1.erKoeTom();
    }

Koden virker ikke, da den skriver:
error C2065: 'vaerdi' : undeclared identifier

Skal jeg definere denne værdi på forhånd eller hvordan

Og hvordan får jeg den så udskrevet?

Er villig til at give flere point :)
Avatar billede arne_v Ekspert
17. april 2004 - 23:40 #20
while(ikkeTom!=false)
    {
        int vaerdi; // <--- erklær vaerdi
        ikkeTom=lifoKoe1.udtagTalFraKoe( &vaerdi );
        if(ikkeTom==true)
        {
            cout << "vaerdi";
        }
        else
        {
            cout << "Koen er tom";
        }
        lifoKoe1.sletKoe();
        svar=lifoKoe1.erKoeTom();
    }
Avatar billede arne_v Ekspert
17. april 2004 - 23:41 #21
while(ikkeTom!=false)
    {
        int vaerdi; // <--- erklær vaerdi
        ikkeTom=lifoKoe1.udtagTalFraKoe( vaerdi ); // <--- kald uden &
        if(ikkeTom==true)
        {
            cout << "vaerdi";
        }
        else
        {
            cout << "Koen er tom";
        }
        lifoKoe1.sletKoe();
        svar=lifoKoe1.erKoeTom();
    }
Avatar billede spiritusanta Nybegynder
17. april 2004 - 23:42 #22
Vil denne variabel så blive gemt i min hukommelse ifølge definitionen for funktionen?

bool Koe::udtagTalFraKoe(int &vaerdi)
{
    bool svar;
    svar=erKoeTom();
    if(svar==true)
    {
        ledigPladsNr--;
        vaerdi=koeArray[ledigPladsNr];
        ledigPladsNr++;
        return true;
    }
    else
    {
        return false;
    }
}
Avatar billede arne_v Ekspert
17. april 2004 - 23:48 #23
ser umiddelbart Ok ud
Avatar billede spiritusanta Nybegynder
18. april 2004 - 00:37 #24
oki takker
Næsten færdig, har bare en lille ting der driller, men det tjekker jeg op på i morgen :)

Mange tak for din hjælp :)
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