Archief - [PROG]C++ Eerste programma

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

IcefoxXx

Legacy Member
Ik heb mij eens beziggehouden met het schrijven van mijn eerste programma. (Ik leer uit C++ grand cru)

Het is een programmatje om een vierkantswortelvergelijking op te lossen:
Dit is de code (geen bestandje, is daar te klein voor imo)
Code:
#include <iostream>
#include string
using namespace std

int main()
{
    string a, string b, string c, string discriminant;
    cout <<"a =?" <<endl;
    cin >> a;
    cout <<"b=?" <<endl:
    cin >>b;
    cout <<"b=?" <<endl;
    cin >>c;
    
int discriminant = (b-4*a*c);
oplossing1= (-b+(d/d))/(2*a);
oplossing2= (-b-(d/d))/(2*a);

if (discriminant<0)
{
cout <<"X1=" << oplossing1 <<endl;
cout <<"X2" << oplossing2 <<endl;
}
else
{
cout <<"ledige verzameling" <<endl;

cin.get()

return 0;
}

Als ik dit probeer te compileren met Dev-C++ krijg ik hopen foutmeldingen, waarvan ik meestal niets snap...:x

Kan mij iemand uitleggen wat ik allemaal mis doe?

Dank bij voorbaat.

Darth-Falcon

Legacy Member
IcefoxXx zei:
Ik heb mij eens beziggehouden met het schrijven van mijn eerste programma. (Ik leer uit C++ grand cru)

Het is een programmatje om een vierkantswortelvergelijking op te lossen:
Dit is de code (geen bestandje, is daar te klein voor imo)
Code:
#include <iostream>
#include string
using namespace std

int main()
{
    string a, string b, string c, string discriminant;
    cout <<"a =?" <<endl;
    cin >> a;
    cout <<"b=?" <<endl:
    cin >>b;
    cout <<"b=?" <<endl;
    cin >>c;
    
int discriminant = (b-4*a*c);
oplossing1= (-b+(d/d))/(2*a);
oplossing2= (-b-(d/d))/(2*a);

if (discriminant<0)
{
cout <<"X1=" << oplossing1 <<endl;
cout <<"X2" << oplossing2 <<endl;
}
else
{
cout <<"ledige verzameling" <<endl;
[COLOR="Red"]}[/COLOR]
cin.get()[COLOR="Red"];[/COLOR]

return 0;
}

Als ik dit probeer te compileren met Dev-C++ krijg ik hopen foutmeldingen, waarvan ik meestal niets snap...:x

Kan mij iemand uitleggen wat ik allemaal mis doe?

Dank bij voorbaat.

zie rode tekens

NecroNeo

Legacy Member
Code:
#include <iostream>
#include <string.h>
#include <math.h>

using namespace std;

int main()
{
    float a,b,c;
    cout <<"a =?" <<endl;
    cin >> a;
    cout <<"b=?" <<endl;
    cin >>b;
    cout <<"c=?" <<endl;
    cin >>c;
    
float d = (b*b-4*a*c);

if (d>0)
{
float oplossing1= (-b+(sqrt(d)))/(2*a);
float oplossing2= (-b-(sqrt(d)))/(2*a);
cout <<"X1=" << oplossing1 <<endl;
cout <<"X2=" << oplossing2 <<endl;
}
else
{
cout <<"ledige verzameling" <<endl;
}

cin.get();

return 0;
}

da lijkt er al wa meer op

EDIT: die rode tokens zijn echt niet het enige wat er mis is ;)
klopt trouwens ook iets niet met de logica van het programma (-b+(d/d))/(2*a);

EagleEye

Legacy Member
Kun je niet eerst een programma maken dat Hello World typt? bouw dan wat verder, altijd wat meer uitbreiden, zien of je wel kunt compileren op zich...


waar declareert ge uw oplossing1 en oplossing2?

EagleEye

Legacy Member
lol uwe vierkants wortel

Code:
oplossing1= (-b+(d/d))/(2*a);



kwadraat is d*d
dus vierkantswortel zal wel d/d zijn zeker? rofl ;) jammer genoeg niet :D


en waarom heet uw discriminant in het eene regeltje
Code:
discriminant
en in het volgende regeltje
Code:
d
? dieje compiler snapt da ni ze:p



http://www.nostarch.com/images/hownotc_big.jpg

:(

;)

nickman

Legacy Member
Als ik jou was, zou ik dit programma snel van je harde schijf wissen en beginnen met een nieu, minder ambitieus project :D

jodeman

Legacy Member
Niet lager beginnen, gewoon snappen wat je fout doet is een goede stap. Programmeren is vooral leren uit je fouten.

IcefoxXx

Legacy Member
EagleEye zei:
Kun je niet eerst een programma maken dat Hello World typt? bouw dan wat verder, altijd wat meer uitbreiden, zien of je wel kunt compileren op zich...


waar declareert ge uw oplossing1 en oplossing2?

Ik heb ook da programmake me hello world gedaan enzo. Maar ik dacht dat ik mss dit programma al zou kunnen schrijven... Blijkbaar niet xD

EagleEye zei:
en waarom heet uw discriminant in het eene regeltje
Code:
discriminant
en in het volgende regeltje
Code:
d
? dieje compiler snapt da ni ze:p

Nu da get zegt... Tis misschien omdat ik dit programma eerst op mijn rekenmachine gemaakt had, en daar is de wel me D :sop:

TiZon zei:
was jusit hetzelfde aan het afvragen

en wrm gebruikt ge niet gewoon een sqrt-functie zoals deze:
http://www.cplusplus.com/ref/cmath/sqrt.html

toch veel makelijker....

:D

Had da nog nie gezien oe ik een macht moest nemen van een getal. En toen ik dit programma schreef, had ik da boek nie bij mij.

BTW: bij die link gebruiken ze 'printf' om iets weer te geven, is da geen gewone C?

@necroneo, merci, kga das direct es proberen! :niceone:

Bedankt voor de replies , ga es zien en ik post dan wel terug.

IcefoxXx

Legacy Member
Woah! Da werkt (thx Necroneo)

Wa ik wel nog niet snap is:

- Om welke functie te gebruiken heb ik die "#include <math.h>" nodig? edit: voor die sqrt blijkbaar :)
- Wa is er mis met die acolade na die cout <<"ledige verzameling" <<endl;
- en met die ; na cin.get?
- waarom die .h na <string ? das toch gewone C?

thx

omaha

Legacy Member
IcefoxXx zei:
- Wa is er mis met die acolade na die cout <<"ledige verzameling" <<endl;

Uwen 'else' moet ge afsluiten met een accolade.

- en met die ; na cin.get?

Na elke declaratie/initialisatie/functieoproep/.. zet ge ';'

- waarom die .h na <string ? das toch gewone C?

string.h is een header-file(.h) die ge nodig hebt om met string functies te werken. (denk wel niet dat ge die hier nodig hebt aangezien ge niet met strings werkt.)


Eigenlijk is dit toch allemaal vrij basic hoor. Ofwel moet ge dat boek nog eens goed lezen, ofwel best een ander boek kopen.

killgore

Legacy Member
string.h is idd een oude zaak hoor, als je echt de c-string functies wilt moet je #include <cstring> doen ;).

edit: alsook cmath ipv math.h

IcefoxXx

Legacy Member
omaha zei:
Eigenlijk is dit toch allemaal vrij basic hoor. Ofwel moet ge dat boek nog eens goed lezen, ofwel best een ander boek kopen.

Ik heb da boek zelfs nog nie helemaal uitgelezen, heb eigenlijk 1 keer die eerste 2 hoofdstukken gelezen en dan ff geprobeerd.

killgore

Legacy Member
IcefoxXx zei:
Als je discriminant kleiner is als nul krijg je een complexe oplossing ipv "geen oplossing" :p.

Dit houdt in dat je best je eigen type complex maakt :).

Ma als ge complexe getallen niet kent -> niets van aantrekken of es opzoeken ;).

Shai Hulud

Legacy Member
Je leest strings in, en probeert er dan wiskundige bewerkingen mee te doen. Dat kan niet, je moet de string eerst omvormen naar een getal (int of float bvb).

Je zal ook de input moeten controleren. Wat doe je als de gebruiker een lege lijn meegeeft? Als hij "sdfsdf" intypt? ...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan