C++ probleempje

Status
Niet open voor verdere reacties.

Pitfire

Gebruiker
Lid geworden
11 jan 2008
Berichten
145
Goedenmiddag allemaal :)

Ik heb een probleempje met C++. We zijn op school bezig met de basis van C++, alleen ik heb de uitleg gemist :confused:
Ik moet nu een programma schrijven die aangeeft of het ingevoerde jaartal een schrikkeljaar is of niet. Het enige wat mij
verteld is is dat een schrikkeljaar altijd deelbaar is door 4, verder moest ik het zelf maar uitzoeken :eek: Ik heb nu dit:

PHP:
#include <iostream>
using namespace std;

int main()
{
	int a; // a word het jaartal
	int c; // c word het jaartal gedeeld door 4
	cout<< "Jaartal?" << endl;
	cin>> a; 
	c=a/4; 
	if (c== -heel getal- ) 
	{
		cout<< "Het jaar " << a << " is een schrikkeljaar !" << endl;
	}
	else
	{
		cout<< "Het jaar " << a << " is geen schrikkeljaar !" << endl;
	}
	cin.get();
}

Ik wil nu graag true uitvoeren áls 'C' een heel getal is.
En false als het getal decimalen heeft.

Maar dit lukt me niet :o
Alvast bedankt ! :thumb:
 
Een jaar is een schrikkeljaar als het deelbaar is door 4 en niet door 100, of deelbaar door 400. B.v. 1992 en 1996 zijn deelbaar door 4 en niet door 100, dus schrikkeljaren.
1900 is deelbaar door 4 en ook door 100, maar niet door 400, dus geen schrikkeljaar.
Dit houdt in dat eeuwjaren alleen een schrikkeljaar zijn als ze deelbaar zijn door 400, dus 1900 niet, maar 2000 wel.
Dus alleen delen door 4 is niet genoeg.
 
Een jaar is een schrikkeljaar als het deelbaar is door 4 en niet door 100, of deelbaar door 400. B.v. 1992 en 1996 zijn deelbaar door 4 en niet door 100, dus schrikkeljaren.
1900 is deelbaar door 4 en ook door 100, maar niet door 400, dus geen schrikkeljaar.
Dit houdt in dat eeuwjaren alleen een schrikkeljaar zijn als ze deelbaar zijn door 400, dus 1900 niet, maar 2000 wel.
Dus alleen delen door 4 is niet genoeg.

Wel bedankt ;)
Alleen mn probleem is;

Ik wil nu graag true uitvoeren áls 'C' een heel getal is.
En false als het getal decimalen heeft.

En dan kan ik dat er later in verwerken... :confused:
 
Ik ben verder niet bekend met C++, alleen VB. Dus mss iemand anders?
 
Je kunt het ook zo doen:
Gebruik C helemaal niet.
Test dan op de volgende manier:
Code:
if ((a % 4) == 0)  {
        cout<< "Het jaar " << a << " is een schrikkeljaar !" << endl;
    }
    else
    {
        cout<< "Het jaar " << a << " is geen schrikkeljaar !" << endl;
    }

Zie hier voor de functie van '%' (=modulo).

Succes,

Tijs.
 
Laatst bewerkt:
Hartstikke bedankt ! :thumb:
Het werkt, alleen ik snap het nog niet helemaal.
En daar gaat het om op school.

Met 'a % 4 == 0' kijk je dus wat er over blijft als je A door 4 deelt (als ik dat goed vertaald/begrepen heb van wiki :eek:)
Staat die 0 dan voor False of.. ? :o

Maar toch bedankt he ! :D
 
Die 0 is gewoon een waarde waarmee d.m.v. == vergeleken wordt.

Stel je hebt het jaar 1995
Dat wordt gedeeld door 4, wat oplevert 498,75
Alles vóór de comma wordt er (maal de modulo (=4)) erafgetrokken, dus 1995 - (4 x 498) = 3
Betekent dat 1995 geen schrikkeljaar is (gegeven het if statement waar je het gebruikt).
Stel je hebt het jaar 1996
Dat wordt gedeeld door 4, wat oplevert 499
Alles vóór de comma wordt er (maal de modulo (=4)) erafgetrokken, dus 1996 - (4 x 499) = 0
Betekent dat 1996 wél een schrikkeljaar is (gegeven het if statement waar je het gebruikt).

Je kunt dit ook gebruiken bij de andere informatie die je van andere posters hebt gehad over wat wél en niet een schrikkeljaar is, dus wordt het:
Code:
if (((a % 4) == 0) && (((a % 100) != 0) || ((a % 400) == 0))) {
        cout<< "Het jaar " << a << " is een schrikkeljaar !" << endl;
    }
    else
    {
        cout<< "Het jaar " << a << " is geen schrikkeljaar !" << endl;
    }

Succes,

Tijs.
 
Ah okee !! :D
Ik snap het nu, bedankt ! :thumb:

En voor het totale voorbeeld ook.
Ik zat zelf in de richting te denken van een if statement in een if... maar dit is natuurlijk makkelijker :thumb:

Bedankt !
Vraag is opgelost
 
Nog 1 vraagje als het mag :o

In de code staat ! en || wat doet dat en waarom staat dat daar ?
 
Er konden een hoop haakjes weg, dus als je het wilt vereenvoudigen:
Code:
    if (a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)) {
        cout<< "Het jaar " << a << " is een schrikkeljaar !" << endl;
    }
    else
    {
        cout<< "Het jaar " << a << " is geen schrikkeljaar !" << endl;
    }

Verder: Graag gedaan! :)

Tijs.
 
&& betekent 'en'
|| betekent 'of'

Dus het if-statement zegt:
Als het jaartal volledig deelbaar is door 4 én (geen hondertal is óf een getal dat volledig deelbaar is door 400)
dan is het een schrikkeljaar.

Tijs.
 
ik vind het een vreemde vraag als je nog neit weet wat && en || betekent en dat ze dan zon opdracht geven....

Het is redelijk moeilijk voor beginners
 
@NLScotty: Het had ook opgelost kunnen worden door een paar If 's te nesten (wat de topic-starter eigenlijk van plan was).

Dus ík neem het hem niet kwalijk: Het kan zomaar zijn dat geneste If 's op het niveau is waar de cursus van de topic-starter nu is.

Tijs.
 
Ik denk dat dat allemaal wel behandeld is in de les op school, alleen ik heb een uitwisseling gehad van school in athene, en ik heb dus de 4 lessen gemist waarin we begonnen zijn met C++ :(
En ik vind informatica het enige leuke vak op school :o
En daarom wou ik wel wat te weten komen...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan