Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème incompréhensible [ Archives / Divers ] (JosueClement)

lundi 25 mars 2002 à 11:09:00 | Problème incompréhensible

JosueClement



Regardez plutot...
Ce programme est une sorte d'horloge!
Il n'y a aucune erreur de compilation, mais les heures n'augmentent jamais!!

A la ligne 54, j'ai marqué un commentaire : !!ERREUR ICI!! c'est la que se trouve mon erreur.

Quelqu'un pourrait me dire ce que je fais de faux pour que les heures ne bougent pas..

Compilé avec DEV C++ 4

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

class Temps
{
public:
void AjusterTemps(int , int , int);
int AjusterHeure(int);
int AjusterMinute(int);
int AjusterSeconde(int);
void AfficherTemps();
private:
int heure;
int minute;
int seconde;
};

int Temps::AjusterHeure(int h)
{
return (h >= 0 && h < 24 ? h : 0); //Ajuster l'heure si plus grand que 0
} //et si plus petit que 24

int Temps::AjusterMinute(int m)
{
return (m >= 0 && m < 60 ? m : 0); //Ajuster les minutes si plus grand que 0
} //et si plus petit que 60

int Temps::AjusterSeconde(int s)
{
return (s >= 0 && s < 60 ? s : 0); //Ajuster les sec si plus grand que 0
} //et si plus petit que 60

void Temps::AjusterTemps(int h , int m , int s)
{
heure = Temps::AjusterHeure(h); //Ajustement de l'heure
minute = Temps::AjusterMinute(m); //Ajustement des minutes
seconde = Temps::AjusterSeconde(s); //Ajustement des secondes
}

void Temps::AfficherTemps()
{
int kb = 70;

do
{
if (seconde == 60)
Temps::AjusterTemps(heure,minute+1,0);

if (minute == 60)
Temps::AjusterTemps(heure+1,0,seconde); //!!ERREUR ICI!!

if (heure == 24)
{
Temps::AjusterTemps(0,0,0);
}

cout <<(heure < 10 ? "0" : "") <<heure <<" : ";
cout <<(minute < 10 ? "0" : "") <<minute <<" : ";
cout <<(seconde < 10 ? "0" : "") <<seconde;

Sleep(1000);
system("cls");
seconde++;
}while(seconde != -1);
}



void main()
{
Temps t;
t.AjusterTemps(2,59,50);
t.AfficherTemps();
}

lundi 25 mars 2002 à 18:12:47 | Re : Problème incompréhensible

Toobad

Un conseil l'ami passe à VC++6, ça trouve toutes les erreurs alors que DEV C++4 il en oublie la moitié.



-------------------------------
Réponse au message :
-------------------------------



Regardez plutot...
Ce programme est une sorte d'horloge!
Il n'y a aucune erreur de compilation, mais les heures n'augmentent jamais!!

A la ligne 54, j'ai marqué un commentaire : !!ERREUR ICI!! c'est la que se trouve mon erreur.

Quelqu'un pourrait me dire ce que je fais de faux pour que les heures ne bougent pas..

Compilé avec DEV C++ 4

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

class Temps
{
public:
void AjusterTemps(int , int , int);
int AjusterHeure(int);
int AjusterMinute(int);
int AjusterSeconde(int);
void AfficherTemps();
private:
int heure;
int minute;
int seconde;
};

int Temps::AjusterHeure(int h)
{
return (h >= 0 && h < 24 ? h : 0); //Ajuster l'heure si plus grand que 0
} //et si plus petit que 24

int Temps::AjusterMinute(int m)
{
return (m >= 0 && m < 60 ? m : 0); //Ajuster les minutes si plus grand que 0
} //et si plus petit que 60

int Temps::AjusterSeconde(int s)
{
return (s >= 0 && s < 60 ? s : 0); //Ajuster les sec si plus grand que 0
} //et si plus petit que 60

void Temps::AjusterTemps(int h , int m , int s)
{
heure = Temps::AjusterHeure(h); //Ajustement de l'heure
minute = Temps::AjusterMinute(m); //Ajustement des minutes
seconde = Temps::AjusterSeconde(s); //Ajustement des secondes
}

void Temps::AfficherTemps()
{
int kb = 70;

do
{
if (seconde == 60)
Temps::AjusterTemps(heure,minute+1,0);

if (minute == 60)
Temps::AjusterTemps(heure+1,0,seconde); //!!ERREUR ICI!!

if (heure == 24)
{
Temps::AjusterTemps(0,0,0);
}

cout <<(heure < 10 ? "0" : "") <<heure <<" : ";
cout <<(minute < 10 ? "0" : "") <<minute <<" : ";
cout <<(seconde < 10 ? "0" : "") <<seconde;

Sleep(1000);
system("cls");
seconde++;
}while(seconde != -1);
}



void main()
{
Temps t;
t.AjusterTemps(2,59,50);
t.AfficherTemps();
}

lundi 25 mars 2002 à 20:12:03 | Re : Problème incompréhensible

jcecchi

Ha bon. Peut etre que ton vc++6 est meilleur que le mien car chez moi son code marche comme chez lui : les heures ne s'incremente pas.
AjusterTemps recoit toujours heure et pas heure+1.
Pourquoi aucune idee.
Mon conseil : simplifie ton code, il y a trop de fonctions.


-------------------------------
Réponse au message :
-------------------------------

Un conseil l'ami passe à VC++6, ça trouve toutes les erreurs alors que DEV C++4 il en oublie la moitié.

mardi 26 mars 2002 à 11:53:04 | Re : Problème incompréhensible

monk31

je pense avoir trouvé ton erreur:
dans void Temps::AfficherTemps() :
quand tu fais ton premier test (seconde==60), tout se passe bien, tu incrémentes le nombre de minutes.
Seulement quand tu arrives à 60 secondes et 59 minutes, tu appeles d'abord Temps::AjusterTemps(heure,59+1,0)
(toujours par rapport à ton premier test), soit Temps::AjusterTemps(heure,60,0).

hors dans Temps::AjusterTemps(int h,int m,int s), tu va actualiser "minute" avec AjusterMinute(m),
mais m=60, donc tu va repositionner "minute" à 0.
tu ne passeras donc jamais ton second test (minute==60) car "minute" ne sera jamais égal à 60.

une solution serait de corriger ta fonction void Temps::AjusterMinute(int m),
en retournant le test suivant :
(m >= 0 && m <= 60 ? m : 0)
la différence provient du fait que tu testes si m<=60 et non plus m<60.

Je pense que c'est ça, mais je peux me tromper.
a+.



-------------------------------
Réponse au message :
-------------------------------



Regardez plutot...
Ce programme est une sorte d'horloge!
Il n'y a aucune erreur de compilation, mais les heures n'augmentent jamais!!

A la ligne 54, j'ai marqué un commentaire : !!ERREUR ICI!! c'est la que se trouve mon erreur.

Quelqu'un pourrait me dire ce que je fais de faux pour que les heures ne bougent pas..

Compilé avec DEV C++ 4

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

class Temps
{
public:
void AjusterTemps(int , int , int);
int AjusterHeure(int);
int AjusterMinute(int);
int AjusterSeconde(int);
void AfficherTemps();
private:
int heure;
int minute;
int seconde;
};

int Temps::AjusterHeure(int h)
{
return (h >= 0 && h < 24 ? h : 0); //Ajuster l'heure si plus grand que 0
} //et si plus petit que 24

int Temps::AjusterMinute(int m)
{
return (m >= 0 && m < 60 ? m : 0); //Ajuster les minutes si plus grand que 0
} //et si plus petit que 60

int Temps::AjusterSeconde(int s)
{
return (s >= 0 && s < 60 ? s : 0); //Ajuster les sec si plus grand que 0
} //et si plus petit que 60

void Temps::AjusterTemps(int h , int m , int s)
{
heure = Temps::AjusterHeure(h); //Ajustement de l'heure
minute = Temps::AjusterMinute(m); //Ajustement des minutes
seconde = Temps::AjusterSeconde(s); //Ajustement des secondes
}

void Temps::AfficherTemps()
{
int kb = 70;

do
{
if (seconde == 60)
Temps::AjusterTemps(heure,minute+1,0);

if (minute == 60)
Temps::AjusterTemps(heure+1,0,seconde); //!!ERREUR ICI!!

if (heure == 24)
{
Temps::AjusterTemps(0,0,0);
}

cout <<(heure < 10 ? "0" : "") <<heure <<" : ";
cout <<(minute < 10 ? "0" : "") <<minute <<" : ";
cout <<(seconde < 10 ? "0" : "") <<seconde;

Sleep(1000);
system("cls");
seconde++;
}while(seconde != -1);
}



void main()
{
Temps t;
t.AjusterTemps(2,59,50);
t.AfficherTemps();
}

jeudi 18 avril 2002 à 20:53:18 | Re : Problème incompréhensible

golum

moi je comprend, je crois le probleme c juste un probleme d'algo pourtant pour l'expliquer c plus dure vu le nombre de procedures on s'y pert
je propose ca ca marchera surement pas mais ca peut aider a trouver la faille

void Temps::AjusterTemps(int h , int m , int s)
{

heure += Temps::AjusterMinute(m); //Ajustement des minutes
minute += Temps::AjusterSeconde(s); //Ajustement des secondes
}

PS j'suis d'accord pour dire que le compilo de DevC++ pue



Cette discussion est classé dans : int, temps, seconde, include, heure


Répondre à ce message

Sujets en rapport avec ce message

Afficher heure [ par maxlog ] Bonjour, J'aimerais savoir comment afficher l'heure de mon serveur (mon Ordi) avec la commande 'date'... J'ai affiché la date mais je voudrais mainten ajouter une librairie utilisateur à un programme C sous Visual Studio 2008 [ par boualiasma ] Salut,on peut implémenter des fonctions dans header par exemple calcul.h qui implémente les fonctions somme, multiplication. Dans mon programme main.c soustraire l'heure systeme avec une heure entrée [ par bignoob13 ] Bonjour à tousj'aimerai créer un logiciel qui lance un programme à une heure que j'aurai indiqué avant,mais je ne sait pas du tout comment faire je m' FormatMessage [ par sphinx2 ] Bonjour, J'essaie d'appeler FormatMessage sous visual studio C++ 2008 en Windows forms donc en C++ "managé". Mon code est celui-c mais ne compile pas: Keybd_event dans DirectX [ par Hawatak ] Bonjour, Alors voilà, j'ai créé un petit programme qui simule l'appuie de certaines touches sur le clavier : #include #include #include #include b _arbres [ par angebrune8 ] Bonjour j'essaie d'implementer des b_arbres. Le soucis c'est que je dois lire et ecrire sur un dique en quoi celà consiste il exactement? De plus si q Boucle ne s'éxécute pas [ par Niwrad ] Bonjour à tous, Je suis plus ou moins débutant en programmation C, Je souhaite créer un programme (console) m'affichant une pyramide d'étoiles en fonc Problème avec type double / paramètre [ par DmX0rZ ] Bonjour,j'ai un problème qui me semble vraiment évident mais pour une raison inconnue, je ne comprens pas le comportement du programme... voilà, le pa VC++ 6 /recompilé sur VC++ 2005 [ par lui88 ] Bonjour , j'essai de recompilé mon programme sur VC++ 2005 , mais plein d'erreur s'affiche :s. j'en est reglé une grande partie mais là je n'y arrive Tableaux et C, aidez-moi! [ par phenix22000 ] Bonsoir à tous,quelqu'un peut-il m'aider pour m'expliquer comment savoir si un tableau contient déjà des éléments si on l'incrémente petit à petit...J


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.