Utilisation de tableaux - programme débutant (besoin d'aide !) - C++ - Programmation
Marsh Posté le 07-11-2016 à 11:25:38
vekoros a écrit : f = 1; |
Tu sors quand de cette boucle ?
Marsh Posté le 07-11-2016 à 11:31:36
Addendum:
tu auras le même problème avec
vekoros a écrit : div = ((annee - 2000) / 4); |
Marsh Posté le 08-11-2016 à 12:42:53
Très juste ! je n'avais pas fait attention. J'aurais dû incrémenter les compteurs. Merci !
Marsh Posté le 28-11-2016 à 19:54:14
Hi all, je me permets de poster ici
Pour m'entrainer j'ai fait l'exercice : trouver quel jour de la semaine à partir d'une date.
Ça fonctionne.
Vos observations sont les bienvenues !
C'est bon de faire comme j'ai fait ? Je me sert de fonctions mais j'ai pas de return, sinon il me faut wat mille variables et je me perds, et puis (sur un autre programme) j'avais eu aussi des problèmes "xxx was not declared in this scope"
Code :
|
Marsh Posté le 28-11-2016 à 20:32:25
variables globales pour passer des paramètres à des fonctions => à fuire comme la peste. Ça fonctionne sur des cas simples comme ici, mais ça devient très très vite le bordel total.
En règle générale, les variables globales devraient être initialisées une fois au démarrage et on n'y touche plus après. Si on est obligé de modifier une variable globale, il est préférable d'encapsuler ça dans une API et éviter les accès direct.
Marsh Posté le 28-11-2016 à 21:09:42
ok je m'en doutais, tu le confirmes.
Bon ben j'ai du boulot !
merci
Marsh Posté le 29-11-2016 à 09:47:38
Comme tu indiques [C++], pourquoi ne pas envisager tout çà avec une (ou des) classe(s) ?
Marsh Posté le 29-11-2016 à 13:21:42
Je me dis qu'il faut dans un premier temps que je m'entraine avec les fonctions, qui me semblent d'ailleurs plus simples que les classes. J'ai bon ?
Marsh Posté le 29-11-2016 à 16:28:31
Pas forcément.
Tes variables et tes fonctions peuvent constituer les membres d'une classe.
Cela te permet, entre autres, de restreindre la portée des variables et/ou de t'affranchir de les passer en paramètres.
Suppose que tu encapsules ton problème dans une classe. Ex:
Code :
|
ton main() pourrait ressembler à
Code :
|
Marsh Posté le 29-11-2016 à 18:02:50
Génial
Je vais essayer
Dans ton code :
Je déduis que ce qui est avant public est privé.
A quoi sert le MaDate() juste en dessous de public ?
Mes fonctions dIFY etc, je les écris directement dans la classe ? Tu n'as pas mis les {} alors je me demande si elles sont déclarées dans la classe et écrites en dehors (avant la classe ?)
Merci !
Edit : bon, je me doc à donf sur les classes sur le cours openclassrooms
Marsh Posté le 06-12-2016 à 09:13:37
Pour répondre (tardivement) à tes questions, même si depuis le temps tu as dû trouver les réponses :
- par défaut, ce qui est déclaré dans une classe est privé. Tu ne mets à disposition que ce qui est nécessaire (en le passant en public)
- le MaDate() est ce qu'on appelle un constructeur. Quand tu vas faire ton nouvel objet (ici la ligne 3 du main), c'est cette fonction qui sera appelée. En général, tu peux t'en servir pour initialiser tes données.
- Les méthodes sont à définir dans un fichier .cpp : le code qu'a donné benriach doit être dans un fichier MaDate.h, et dans ton fichier MaDate.cpp, tu dois avoir le code des méthodes.
Hésites pas à poster ce que tu fais / tes questions
Marsh Posté le 06-12-2016 à 09:46:28
Hello Osx-Wind
Merci pour tes infos
J'ai en effet bien avancé, j'ai créé un topic : http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
Tu peux aller aux derniers posts directement
N'hésite pas à faire part de tes observations, elles seront bienvenues !
Marsh Posté le 06-11-2016 à 19:28:07
Salut !
c'est mon premier post sur le forum. Je suis étudiant en DUT Informatique en 1ère année. J'aurai besoin d'un petit peu d'aide ! Au niveau des tableaux en C++, il y a quelque chose dans le programme que je dois faire que je ne comprends pas.
En gros, mon programme doit être le suivant : l'utilisateur rentre une date (il rentre le jour dans une première variable, puis le mois, puis l'année), et le programme doit dire de quel jour de la semaine il s'agit. Par exemple, le 31/12/2003 est le jour 3. 0 correspond à Lundi, 2 à mardi, etc... jusqu'à 6 qui correspond au dimanche.
Pour ce faire, j'ai l'aide suivante : on doit saisir une date postérieure au 1/1/2000. Et le 1/1/2000 est le jour 5, donc un samedi.
J'ai fait mon programme en utilisant 3 procédures. Voici le code :
Programme principal
Procédure de saisie de la date
Procédure de contrôle au niveau du mois de février
Procédure de calcul du jour de la semaine
Mon problème se situe plutôt au niveau de la dernière procédure, celle du calcul du jour de la semaine. J'ai décidé de déclarer un tableau assez grand, et d'attribuer un numéro à chaque jour, jusqu'au jour saisi. Ensuite, je regarde la divisibilité de ce nombre par 7, et j'en déduis le numéro du jour.
Le truc c'est que ça marche pour le 1/1/2000, mais dès que j'essaie le 2/1/2000 j'ai un debug error... Et pas la peine de parler d'un jour en 2001, le programme cesse tout bonnement de fonctionner...
J'ai l'impression que l'erreur se situe au niveau du tableau Jour[P]. Est-ce véritablement comme ça qu'on doit utiliser un tableau ? Ma méthode est-elle adéquate ? Qu'ai-je fait de mal ?
Si quelqu'un pourrait éclairer ma lanterne, ce serait vraiment sympa...
En tout cas, merci par avance !
EDIT : désolé, j'ai mis des balises spoiler pour que ce soit un peu moins chiant, mais ça n'a pas l'air de fonctionner...
Message édité par vekoros le 07-11-2016 à 09:51:53