Goedeavond allemaal,
Aangezien dit mijn eerste post is op dit forum zal ik eerst even wat achtergrond blootstellen, alvorens over te gaan tot mijn technisch gerichte vraag.
Afgelopen weekend ben ik met c++ gestart.Programmeren in c++ lijkt me een nieuwe uitdaging, destemeer omdat ik redelijk onervaren ben op vlak van programmeren. Op school heb ik enkel een zeer kleine basis opgedaan met visual basic.
Maar na het internet een tijdje te zijn afgeschuimd wilde ik met behulp van een zelfstudie boek het een kans geven. Ik ben me bewust dat het niet de gemakkelijkste weg is die ik kies, maar na enkele reviews over het boek c++ prime plus gelezen te hebben leek het me met behulp daarvan het proberen waard.
Zo gezegd, zo gedaan. Het boek is nu in mijn bezit en tot nu toe heb ik er geen spijt van. (Van de eerste 50(?) bladzijden alleszins
)
Zoals de titel het al aangeeft ben ik bezig met gebruik te maken van User-Defined functions; meer bepaald die waarbij een Return value gebruikt wordt.
In het boek wordt volgend voorbeeld gegeven:
Na dit voorbeeld doorgenomen te hebben, en de uitleg erbij gelezen te hebben wilde ik het graag zelf uittesten met een eigen "verzonnen" voorbeeld.
Hetgeen ik wilde doen is simpelweg de lengte van de zijde van een vierkant ingeven, zodat het programma de oppervlakte kon berekenen.
Na wat denkwerk kwam ik tot het volgende:
Het probleem is dat als ik het programma in een win32 console scherm uitvoer dat de uitkomst zoiets als 00E61253 bedraagt bij een zijde van 4.
Eerst dacht ik dat er misschien gemixt werd tussen decimale getallen en iets anders. Na wat zoekwerk leek het mij een hexadecimaal getal te zijn, maar helaas, als ik dit getal omzette naar een decimale waarde kwam ik een getal vele vele male groter uit dan gewoon 16.
Daarna vreesde ik dat het gebruik van "opp" in plaats van "oppervlakte" misschien het probleem gaf. Dat "opp" misschien een standaard sleutelwoord was binnen c++. Maar wederom bleek het dat niet te zijn.
Heeft iemand een idee wat er scheelt aan de code?
Alvast bedankt
Groeten Tom
EDIT: Ik zie het al waar de code klopt niet helemaal klopt. Ik zal het nog eens moeten nakijken.
Naderhand zal ik posten als ik het gevonden heb.
Aangezien dit mijn eerste post is op dit forum zal ik eerst even wat achtergrond blootstellen, alvorens over te gaan tot mijn technisch gerichte vraag.
Afgelopen weekend ben ik met c++ gestart.Programmeren in c++ lijkt me een nieuwe uitdaging, destemeer omdat ik redelijk onervaren ben op vlak van programmeren. Op school heb ik enkel een zeer kleine basis opgedaan met visual basic.
Maar na het internet een tijdje te zijn afgeschuimd wilde ik met behulp van een zelfstudie boek het een kans geven. Ik ben me bewust dat het niet de gemakkelijkste weg is die ik kies, maar na enkele reviews over het boek c++ prime plus gelezen te hebben leek het me met behulp daarvan het proberen waard.
Zo gezegd, zo gedaan. Het boek is nu in mijn bezit en tot nu toe heb ik er geen spijt van. (Van de eerste 50(?) bladzijden alleszins

Zoals de titel het al aangeeft ben ik bezig met gebruik te maken van User-Defined functions; meer bepaald die waarbij een Return value gebruikt wordt.
In het boek wordt volgend voorbeeld gegeven:
Code:
// convert.cpp -- converts stone to pounds
#include <iostream>
int stonetolb(int); // function prototype
int main()
{
using namespace std;
int stone;
cout << "Enter the weight in stone: ";
cin >> stone;
cin.get();
int pounds = stonetolb(stone);
cout << stone << " stone = ";
cout << pounds << "pounds." << endl;
cin.get();
return 0;
}
int stonetolb(int sts)
{
return 14 * sts;
}
Na dit voorbeeld doorgenomen te hebben, en de uitleg erbij gelezen te hebben wilde ik het graag zelf uittesten met een eigen "verzonnen" voorbeeld.
Hetgeen ik wilde doen is simpelweg de lengte van de zijde van een vierkant ingeven, zodat het programma de oppervlakte kon berekenen.
Na wat denkwerk kwam ik tot het volgende:
Code:
//ReturnValue.cpp -- Gebruik maken van een return value
#include <iostream>
int oppervlakte(int);
int main()
{
using namespace std;
cout << "Hoeveel bedraagt de zijde van het vierkant: ";
int zijde;
cin >> zijde;
cin.get();
oppervlakte (zijde);
cout << endl;
cout << "De oppervlakte bedraagt: " << oppervlakte << "vierkante meter";
cin.get();
return 0;
}
int oppervlakte (int zijde)
{
return zijde * zijde;
}
Het probleem is dat als ik het programma in een win32 console scherm uitvoer dat de uitkomst zoiets als 00E61253 bedraagt bij een zijde van 4.
Eerst dacht ik dat er misschien gemixt werd tussen decimale getallen en iets anders. Na wat zoekwerk leek het mij een hexadecimaal getal te zijn, maar helaas, als ik dit getal omzette naar een decimale waarde kwam ik een getal vele vele male groter uit dan gewoon 16.
Daarna vreesde ik dat het gebruik van "opp" in plaats van "oppervlakte" misschien het probleem gaf. Dat "opp" misschien een standaard sleutelwoord was binnen c++. Maar wederom bleek het dat niet te zijn.
Heeft iemand een idee wat er scheelt aan de code?
Alvast bedankt
Groeten Tom
EDIT: Ik zie het al waar de code klopt niet helemaal klopt. Ik zal het nog eens moeten nakijken.

Naderhand zal ik posten als ik het gevonden heb.
Laatst bewerkt: