begin process at 2012 05 28 11:55:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Aide urgent C++ années bissextiles


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Aide urgent C++ années bissextiles

mardi 23 septembre 2003 à 19:06:53 | Aide urgent C++ années bissextiles

Le Messie

Salut à tous

voilà, je suis depuis peu ( 2 semaines à peine ) en IUT d'info et on doit rendre un tp sur le c++ très rapidement
malheureusement, moi même et un camarade n'arrivont pas du tout à faire marcher un des 4 programmes demandé.
je vous donne l'énoncé :

"écrire la fonction qui calcule le nombre d'années bissextiles entre deux années annee_depart et annee_arrivee ,
Rappel : une année est bissextile si elle divisible par 400 ou par 4 mais pas par100.
Exemple
annee_depart = 1896
annee_arrivee = 1904
1896
1904
nombres d'annee bisextilles = 2"

Pour écrire ce programme, il faut qu'on utilise au moins une fonction séparée de la "main" procédure. Donc dans le cas d'années bissextile ou non, une booléenne ...
je pensais à un truc du genre :

bool bissextile()
{
bool bissextile;
bissextile=( annee%400==0 || (annee%4==0 && (annee%100)!=0));
return bis;
}

mais voilà, après ça, pas moyen de faire la suite du programme pour que ça marche. J'ai écris :

#include <iostream.h>
bool bissextile(); //fonction qui renvera la valeur bissextile si l'annee testée l'est
int annee;
int bis;
void main(void)
{
int nb ;
int dddd ; //annee de depart
int aaaa ; //annee d'arrivee
nb=0; //nb d'annees bisextiles au début : 0
cout<<"Entrez l'annee de depart : "<<endl;
cin>>dddd ;
cout<<"Entrez a present l'annee d'arrivee : "<<endl;
cin>>aaaa;
annee=dddd ;
while (annee<=aaaa)
{
if (bis)
{
cout<<annee<<endl;
annee=annee+1;
nb=nb+1;
}
else
{
annee=annee+1;
}
}
}
bool bissextile(int annee)
{
bool bissextile;
bissextile=( annee%400==0 || (annee%4==0 && (annee%100)!=0));
return bis;
}



j'ai également essayé des tonnes d'autres possibilités, sans succès. Soit le programme m'affiche toutes les années comprises entre dddd et aaaa et j'ai un total de aaaa-dddd années bissextiles, soit il n'affiche strictement rien, et 0 années bissextiles.
Donc si quelqu'un pouvait me donner de l'aide d'une façon la plus simple possible ( jsuis un newbie, oué ), ou même me filer un code source avec des commentaires en conséquences, ça serait vraiment sympa.

Merci d'avance à vous tous. Si vous pouviez répondre par mail, ça serait encore 100 fois mieux :)

ps : jsais que le programme ci-dessus est complètement faux; c'est juste pour vous donner une idée de ce qu'on sait faire au bout de 2 semaines de c++ :)



Le_Messie@numericable.fr
mardi 23 septembre 2003 à 19:38:29 | Re : Aide urgent C++ années bissextiles

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut, ton problème vient, je pense, du retour de ta fonction : tu renvoie bis, seulement tu ne définit pas sa valeur !
Pour ta fonction, essaye plutôt :

bool bissextile(int annee)
{
bool m_bBissextile;
m_bBissextile=( annee%400==0 || (annee%4==0 && (annee%100)!=0));
return m_bBissextile;
}

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
mardi 23 septembre 2003 à 20:16:16 | Re : Aide urgent C++ années bissextiles

Le Messie

'lut

Ok, merci déjà, ça fait un souci de moins :)
maintenant, la valeur m_bBissextile est donc renvoyé vers la procédure ppale
mais pour cela, il faut également la déclarer dans cette procédure ( car utilisée dans le if(m_bBissextile) )
c'est ce que j'ai fait en entrant :
bool m_bBissextile;
le problème à présent c'est que le compilateur me demande d'initialiser la valeur de m_bBissextile dans la procédure ppale. Or je ne vois pas comment l'initialiser : étant une booléenne, ça serait soit true soit false ...
ça ne peut pas être initialisé à "true" puisque la date de départ n'est pas nécessairement une année bissextile
et si j'initialiséà "false", le programme ne fonctionne pas et renvoie 0 années bissextiles ...

en fait je pense qu'il y a une embrouille avec le if(m_bBissextile), ou bien quelque part dans la boucle while ...

mardi 23 septembre 2003 à 20:30:54 | Re : Aide urgent C++ années bissextiles

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Apparement, tu n'a pas trop compris comment fonctionnais les fonctions :

Une fonction te permet d'éxécuter des instructions qui sont dépendantes de ton programme principal mais beaucoup moins que si elle était écrite en "dur" dans le prog.

Donc, en gros, tu demande à ta fonction si les années envoyées à la fonction sont ou pas bissextiles. Celle-ci renvoie alors la réponse positive ou non de la bissextilité... (je sais pas si on dit comme cà).

Donc, pour ton programme : tu appelle ta fonction comme cà :

if (bissextile (aaaa) == true)
{
/*...*/
}

Donc pas besoin de variable bis !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
mardi 23 septembre 2003 à 20:48:07 | Re : Aide urgent C++ années bissextiles

PiX3L


Salut, bon j'avais rien à foutre alors je t'ai fait le programme qui marche :(avec deux fonctions comme tu le voulais)



#include <iostream>
using namespace std;

bool bissextileornot(int nombre);

int main()
{

int anneeDepart;
int anneeArrivee;
cout << "Entre l'ann\202e de d\202part :"; // le code octal 202 correspond à un "é"
cin >> anneeDepart;
cout << "\nEntre maintenant l'année d'arriv\202e :";
cin >> anneeArrivee;
for(int x=anneeDepart;x<=anneeArrivee;x++)
{
if(bissextileornot(x)) // Si bissextileornot renvoie true(c'est à dire que l'année est bissextile)
{
cout << "\nL'ann\202e "<<x<<" est une ann\202e bissextile";
}

}
int exit;
cout << "\nVoila c'\202tait pas si dur ! si ? :)";
cin >> exit;

return 0;

}

bool bissextileornot(int nombre)
{
if(nombre%400==0 || (nombre%4==0 && nombre%100!=0))
return true;

// sinon retourner false
return false;
}



mardi 23 septembre 2003 à 20:50:01 | Re : Aide urgent C++ années bissextiles

PiX3L


P.S : quand même c'est pas si dur, moi j'ai 14 ans j'arrive le faire alors en IUT je sais pas quoi :)....ça devrait aller.
sinon ton prof doit bien t'avoir expliquer comment faire non ?
mardi 23 septembre 2003 à 21:03:35 | Re : Aide urgent C++ années bissextiles

Le Messie


en fait le truc c'est que le prof veut qu'on apprenne par nous même ...
il nous a absolument pas expliqué le fonctionnement des fonctions, justement. il nous explique des trucs au hasard sans entrer dans le détail tu vois. Et on a pas forcément le temps de passer des heures chez nous à comprendre, sachant qu'il y a des matières bien plus dures à travailler, style architecture des ordinateurs, analyse, ou même les maths ...

voilà

merci encore et bonne soirée :)


Cette discussion est classée dans : int, annee, années, bissextile, bissextiles


Répondre à ce message

Sujets en rapport avec ce message

je cherche a traduire un code de VB vers VC++ [ par JoePatent ] Je cherche a traduire un code VB en VC++ . . . Voici le code :- - - - - -Function le_jour(ByVal annee As Integer, ByVal mois As Integer, ByVal jour As programmation en C [ par badramus ] Bonjour voici  le programme que j'ai pu faire mais ça ne marche comme je le souhaite. veuillez m'aidez a reoudre ce problème.voici le programme       conversion des années en jours [ par eishtein ] bonjour les gars; je suis entrain de développer une classe anniversaire permettant de nous donner une datte représentée sous forme de jours [à partir probleme de constucteur urgent [debutant] [ par yanne1985 ] salut class date{ int jour,mois,annee; public: date(int jour=0, int mois=0, int annee=0)     {     this->jour=jour;     this->mois=mois;     this->a Problèmes tableaux [ par Squallgamer ] Voila j'ai un exo en C et j'ai un peu de mal a faire les deux dernières question. J'ai beau cherché je vois pas trop la solution, je fais donc apelle probleme de pointeur et de thread?? [ par glycefr ] Bon jours,Voila j'essaie de faire un petit programe afin de me familiariser avec les thread... Afin de pouvoire passer des parametres a mon thread je Jeu de banco [ par ndubien ] Je souhaitait faire un jeu qui permette de jouer au banco(jeu de la francaise des jeux) et lorsque je le compile et que j'y joue je gagne toujours 1 o Allocation Dynamique d'une Matrice Help [ par EMSIEN ] Salut à vous toutes et à vous tous,voilà je veux déclarer une matrice de la sorte:     int** MaMatrice;  dans Une ClassePuis au Niveau du Contructeur Difference entre DWORD et unsigned int [ par mrous ] Bonjour,je crois que j'ai tt dit ds le titre, je voudrais savoir quelle est la difference entre DWORD et un unsigned int? Il me semble que c la meme c chronometre [ par TuxOnline ] Bonjour voila j'ai créer une classe en c++ d'un chronometre. Tout fonctionne pour celui-i aucun souci. Mais j'ai une question qui m'arrangerai bien. C


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales