find diameter med en funktion

Tags:    c++

hej jeg har fået en opgave af min bog at lave en funktion der finder en diameter ved hjælp af en funktion, det jeg har lavet indtil videre ser sådan ud
Fold kodeboks ind/udKode 


men den udskriver bare det jeg har skrevet ind, og ikke diameteren



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udKode 


Er det ikke sådan.. ret mig hvis jeg tager fejl er ikke ligefrem mester til at håndtere c++



Ka man oss, men nu ville jeg bare bygge videre på hans kode, med referencerne. man behøver forresten ikke lave r til en reference når man returnere den. Ud over det skal funktionen være float, for ellers får man ikke et kommatal tilbage. Hvis jeg havde lavet koden fra bunden havde jeg nok lavet det sådan:
Fold kodeboks ind/udKode 


Jeg har, ud over at lave areal() til at returnere float og fjerne referencen, fjernet variablen pi. Der er ingen grund til at oprette den, nå du kun skal bruge den en gang.



Indlæg senest redigeret d. 25.01.2008 23:35 af Bruger #11748
Det er fordi du udskriver radius, uden at have lavet den om. Du skal istedet gøre dette:

Fold kodeboks ind/udKode 


før udskrev du jo bare radius som du havde skrevet det ind, men nu laver den radius om til arealet.
Ud over det er din formel forkert. Det skal være A=pi*r^2 eller A=pi*r*r.
Du skal også have din function over main, for ellers kan den ikke finde den.
Sidst af alt behøver du ikke #include "areal.h". Aner ikke hvad det er, men det virker fint uden.





Indlæg senest redigeret d. 25.01.2008 14:05 af Bruger #11748
tak fik det til at virke nu, grunden til at den står nederst og jeg har inkluderet areal.h er fordi jeg har lært at man skal definere funktionen først, selvfølgelig kan man sætte den øverst men jeg gør bare som jeg har lært ;)



Uuups... Undskyld. Jeg har endnu ikke sat mig så meget ind i inkluderinger af funktioner, så den lagde jeg ikke lige mærke til. Men glad for at det virker



Det du prøver på er det ikke bare at refferer fra en variabel fra main funktionen og til din areal funktion? Altså noget i stil med,

Fold kodeboks ind/udKode 


Det er rigtigt at det er godt at have dine funktions deklerationer i andre filer, som du også gør med din header fil. I følgende eksempel kunne du også have gjort noget ala

Fold kodeboks ind/udKode 


Koden her er dog ikke særlig gennemsigtig da variablen radius faktisk indholder arealet.
En lidt anden måde ville måske være:
Fold kodeboks ind/udKode 


Men man skal passe meget på med refferencerne, da funktionen areal nu ændre på main scoopets variabel, det vil sige, at der ikke bliver lavet nogen kopi, da det er refferencer vi har med at gøre. Dette er farligt. Derfor er det bedst, i mine øjne, i denne situation, helt at lade være med at lave refferencer.
En god måde at bruge refferencer, eller pointere for den sags skyld, er at man sparer en masse plads, da argumentet netop er en refference til et noget plads. En anden god måde er at man slipper for deconstructor kaldene, hvis det er objekter man har med at gøre.



Indlæg senest redigeret d. 25.01.2008 23:20 af Bruger #1151
t