Moeite met oefening

Status
Niet open voor verdere reacties.

Mshredder

Nieuwe gebruiker
Lid geworden
27 okt 2009
Berichten
4
Ik heb veel moeite met een oefening, waarschijnlijk lachen jullie me vierkant uit omdat het zeker niet zo moeilijk is , maar ik geraak der helemaal niet uit ! :(
Ik moet de dagen van een maand weergeven ( maand en jaar ingevoerd door gebruiker) , en moet ook rekening houden of het jaar al dan niet een schrikkeljaar is. Hiervoor moet ik 2 functies schrijven ; genaamd ; aantalDagen en isSchikkeljaar.
Dit is wat ik al heb :

[CPP]#include <iostream>

using namespace std;

int main()
{
int maand;
cout << "Geef de maand en het jaar in \n";
cin >> maand;

return 0;
}

int aantalDagen ( const int maand ) {
int aantal_dagen = 0;
switch (maand) {
case 1 : aantal_dagen = 31;
break;
case 2 : aantal_dagen = 28;
break;
case 3 : aantal_dagen = 31;
break;
case 4 : aantal_dagen = 30;
break;
case 5 : aantal_dagen = 31;
break;
case 6 : aantal_dagen = 30;
break;
case 7 : aantal_dagen = 31;
break;
case 8 : aantal_dagen = 31;
break;
case 9 : aantal_dagen = 30;
break;
case 10 : aantal_dagen = 31;
break;
case 11 : aantal_dagen = 30;
break;
case 12 : aantal_dagen = 31;
break;
}
return aantal_dagen;
}
[/CPP]




Ik heb wat hulp en tips nodig, niet de hele oplossing , ik ben echt slecht in C++ lol.
Maarja, men ouders wouden dat ik informatice deed.
Alvast bedankt
 
Ik heb veel moeite met een oefening, waarschijnlijk lachen jullie me vierkant uit omdat het zeker niet zo moeilijk is , maar ik geraak der helemaal niet uit ! :(

In het begin kan het zeker wel lastig zijn ja :p

[cpp]
#include <iostream>
using namespace std;

/* prototypes -> anders kun je de functies onder main niet aanroepen in de main-functie */
bool isSchrikkeljaar(const int jaar);
int aantalDagen(const int maand);

int main()
{
int maand, jaar, aantal_dagen;
// vraag om maand
// vraag om jaar
// aantal_dagen = aantalDagen(maand)
// als het een schrikkeljaar is en het is de maand februari -> aantal_dagen + 1
return 0;
}

bool isSchrikkeljaar(const int jaar) {
// jaar dat deelbaar is door 4, maar niet door 100. Of deelbaar door 400.
}
int aantalDagen(const int maand) {
// het aantal dagen van de maand
}[/cpp]

Met het bovenstaande zou je toch wel tot een oplossing moeten komen. (eigenlijk stond het al in je vorige topic :p);
 
Laatst bewerkt:
Weet je al hoe arrays werken? Anders kun je de dagen in maand functie vrij makkelijk maken:

[cpp]
int aantalDagen(const int maand) {
int dagenInMaand[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (maand > 0 && maand <= 12) {
return dagenInMaand[maand-1]; //array begint vanaf 0, daarom -1
} else {
return -1;
}
}[/cpp]

Natuurlijk houdt deze functie geen rekening met schrikkeljaar. Dat mag je zelf nog maken, maar dan wordt het iets als:

[cpp]
int aantalDagen(const int maand, const int jaar) {
int dagenInMaand[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (maand > 0 && maand <= 12) {
int dagen = dagenInMaand[maand-1]; //array begint vanaf 0, daarom -1
if (maand == 2 && isSchrikkeljaar(jaar)) {
dagen++;
}
return dagen;
} else {
return -1;
}
}[/cpp]
 
Weet je al hoe arrays werken? Anders kun je de dagen in maand functie vrij makkelijk maken:

[cpp]
int aantalDagen(const int maand) {
int dagenInMaand[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (maand > 0 && maand <= 12) {
return dagenInMaand[maand-1]; //array begint vanaf 0, daarom -1
} else {
return -1;
}
}[/cpp]

Natuurlijk houdt deze functie geen rekening met schrikkeljaar. Dat mag je zelf nog maken, maar dan wordt het iets als:

[cpp]
int aantalDagen(const int maand, const int jaar) {
int dagenInMaand[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (maand > 0 && maand <= 12) {
int dagen = dagenInMaand[maand-1]; //array begint vanaf 0, daarom -1
if (maand == 2 && isSchrikkeljaar(jaar)) {
dagen++;
}
return dagen;
} else {
return -1;
}
}[/cpp]


je kan schikkel jaar oo met mod af vangen
Code:
if (jaar % 4 == 0 && maand ==2 )  { dagen = 29;
}else{ 
dagen = dagenInMaand[maand-1]
}

return dagen;

dit gaat je denk of weg helpen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan