begin process at 2012 02 11 00:44:26
  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 erreur de pointeur [ par africanwinners ] Bonsoir j'ai concu un programme c qui permet de lire un fichier,de supprimer les doublons (les doubles) mais il y a des problèmes lors de la lecture d 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 condition type char [ par Adict ] Bonjour voila j'ai un problème :p j'aime faire de petit programme pour m'entrainer et faire des challenges mais la je bloque [^^mad5] en gros j'aime Error: ""was not declared in this scope [ par LiaGalanodel ] Bonjour a tous je ne sais pas si je poste sur le bon sujet mais voila j'ai un problème. Je veu tout simplement créer un server mais je n'y arrive pas.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,652 sec (4)

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