begin process at 2010 02 10 06:23:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Problème incompréhensible


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

Problème incompréhensible

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ée 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 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' Correction de mon programme pour ecrire une image avec succés [ par ami2008 ] #include #include #include #include #define LARGEUR 256 #define HAUTEUR 256 int main() { //------------------------------------- // Déclaration Code C : resolveur de meistermind probleme [ par kinder87000 ] Salut à tous, Voila mon problème j'ai essayer de faire un résolveur de meistermind mais je ne sais pas comment associer des couleurs à des chiffres e tracer des points en c [ par fireman42 ] Bonjour à tous :) Pour un projet d'algorithmique, je dois écrire en C le programme suivant : a) Créer 1000 points d'abscisse de 1 à 1000 et d'ordonné [C] générer caractères aléatoires [ par Zestyr ] Bonjour, Je voudrais créer une fonction qui génère des caractères aléatoires avec un délai de 1ms max, si c'est possible moins ! Voila mon code [cod je n'arrive pas a affiche mon program [ par saidsarr ] quand je l'exécute il n'affiche pas le message de saisi de matrice et quand je tape une touche je sorte du programme si qu'elle peu m'aider a résoudr Probléme avec la fonction SetPixel de l'api windows [ par Mareck666 ] Salut Salut tous le monde si je vien poster sur ce forum c'est parce que je n'arrive pas a trouver des explication a un mystérieux bug de la fonction Temps d'execution d'un programme [ par abdoulax ] Bonjour,J'ai besoin de mesurer le temps d'éxecution d'un bou de code pour comparer les performances d'execution en fonction de la plateforme: windows, Temps GMT / Heure locale [ par hazkaal ] Bonjour, Je voudrais faire ceci :fonction heure_GMTfonction heure_LOCALEheure_GMT : hh*60*60 + mm*60 + ss   //transformer l'heure GMT en secondesheure


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,328 sec (4)

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