Creer un journal d'horaire sur une journée
Résolu/Fermé
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
-
Modifié par BunoCS le 10/02/2014 à 11:15
sarah! Messages postés 45 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juin 2014 - 14 févr. 2014 à 15:34
sarah! Messages postés 45 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juin 2014 - 14 févr. 2014 à 15:34
A voir également:
- Creer un journal d'horaire sur une journée
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Créer une liste déroulante excel - Guide
13 réponses
Utilisateur anonyme
Modifié par le père. le 13/02/2014 à 01:04
Modifié par le père. le 13/02/2014 à 01:04
Vérifie la syntaxe de Java, je ne connais pas ce langage :
Comme je te l'ai déjà dit, si la température est la même en début et en fin d'heure, elle est constante pendant toute l'heure.
import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; public class Temperature { public static void main(String[] args) throws FileNotFoundException, InterruptedException{ float temperature[] = {15,14,13,13,12,11,11,12,14,16,18,20,21,22,22,22,22,21,20,19,18,17,16,15,15}; float temper; // température. à quoi servait ce bizarre tableau à 718 éléments ? float t1; // température au début d'une heure float dt; // variation de température en une seconde int sec; // secondes depuis le début d'une heure for(int hour=0;hour<24;hour++) { t1=temperature[hour]; // température au début d'une heure dt=(temperature[hour+1]-t1)/3600; // variation de température en une seconde sec=0; // secondes depuis le début d'une heure for(int minute=0;minute<60;minute++) { for(int second=0;second<60;second+=5) { temper= t1 + dt*sec; System.out.printf("2014"+"-"+"01"+"-"+"01"+" "+hour+":"+minute+":"+ second+"\t"+"%.1f\n",temper); sec +=5; } // for second } // for minute } // for hour } // main } // class Temperature
Comme je te l'ai déjà dit, si la température est la même en début et en fin d'heure, elle est constante pendant toute l'heure.
Utilisateur anonyme
14 févr. 2014 à 15:04
14 févr. 2014 à 15:04
Je ne comprends absolument pas ton histoire d'ajouter un nombre aléatoire pour les secondes. Depusi le début, tu veux une mesure toutes les 5 secondes, ça n'a rien d'aléatoire.
Et de plus, ta façon de l'appliquer est très mauvaise,
Elle entraîne un décalage entre l'heure donnée par minute/second et celle donnée par sec.
Il s'ensuit que la température calculée ne correspond pas à l'instant affiché.
Ce décalage est cumulatif (sec = c + nombre aléatoire) et peut donc conduire à des discontinuités aux changements d'heure, même si tu as pris soin de choisir tes valeurs pour que leur moyenne soit bien 5 secondes.
Je ne comprends pas très bien non plus ton choix de valeurs (aussi faible que 0 et aussi haute que 15 ? )
Et de plus, ta façon de l'appliquer est très mauvaise,
Elle entraîne un décalage entre l'heure donnée par minute/second et celle donnée par sec.
Il s'ensuit que la température calculée ne correspond pas à l'instant affiché.
Ce décalage est cumulatif (sec = c + nombre aléatoire) et peut donc conduire à des discontinuités aux changements d'heure, même si tu as pris soin de choisir tes valeurs pour que leur moyenne soit bien 5 secondes.
Je ne comprends pas très bien non plus ton choix de valeurs (aussi faible que 0 et aussi haute que 15 ? )
Pourquoi ne pas utiliser la classe java.util.Date?
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
10 févr. 2014 à 10:08
10 févr. 2014 à 10:08
quelle class utilisé dans ce package qui me permettre de résoudre mon problème j'ai cherché et sa me semble qu'il existe pas !
merci
merci
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
Modifié par sarah! le 10/02/2014 à 10:34
Modifié par sarah! le 10/02/2014 à 10:34
je développe une petite application ou je dois récupéré une valeur chaque 5secondes de temprérature sur un fichier texte de la manière suivante :
Date; Time; Temp °C
01.02.2014; 00:00:00;22.63
01.02.2014; 00:00:05;22.56
01.02.2014; 00:00:10;22.63
... .... ....
est toute les 5secondes j'ai une nouvelle valeur dans le fichier
Date; Time; Temp °C
01.02.2014; 00:00:00;22.63
01.02.2014; 00:00:05;22.56
01.02.2014; 00:00:10;22.63
... .... ....
est toute les 5secondes j'ai une nouvelle valeur dans le fichier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
10 févr. 2014 à 11:05
10 févr. 2014 à 11:05
Bonjour
Tu te compliques beaucoup la vie...
Je ne connais pas Java, il y a peut-être quelques erreurs, mais j'aurais plutôt écrit ça :
Tu te compliques beaucoup la vie...
Je ne connais pas Java, il y a peut-être quelques erreurs, mais j'aurais plutôt écrit ça :
public class Ddate {
public static void main(String[] args) {
int hour =0;
int minute =0;
int second=0;
for(int hour=0;hour<24;hour++)
{
for(int minute=0;minute<60;minute++)
{
for(int second=0;second<12;second++)
{
System.out.printf(hour+":"+minute+":"+ 5*second+"\n");
}
}
}
}
}
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
10 févr. 2014 à 18:25
10 févr. 2014 à 18:25
Encore mieux :
Remarque : l'utilisation correcte de printf est
for(int second=0;second<60;second+=5)ça évite d'avoir un 12 qui se promène et une multiplication par 5 inutile.
Remarque : l'utilisation correcte de printf est
System.out.printf("%d : %d : %d\n", hour,minute,second);sinon autant se servir de println...
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
11 févr. 2014 à 13:47
11 févr. 2014 à 13:47
merci beaucoup le père et ça marché parfaitement et même avec *5
merci beaucoup KX aussi pour la correction
merci beaucoup KX aussi pour la correction
BunoCS
Messages postés
15472
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 mars 2024
3 894
10 févr. 2014 à 11:16
10 févr. 2014 à 11:16
Hello,
Il existe une classe Timer en Java. ça t'évite d'avoir des boucles pour compter le temps passé
Il existe une classe Timer en Java. ça t'évite d'avoir des boucles pour compter le temps passé
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
10 févr. 2014 à 18:27
10 févr. 2014 à 18:27
Je ne crois pas qu'il y ait de notion de temps ici, je n'ai pas vu de Thread.sleep, il s'agit juste d'énumérer les possibilités. Rien de trop sorcier ;)
BunoCS
Messages postés
15472
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 mars 2024
3 894
10 févr. 2014 à 18:40
10 févr. 2014 à 18:40
je développe une petite application ou je dois récupéré une valeur chaque 5secondes de temprératureC'est cette phrase qui m'a fait penser au timer. J'ai compris de travers ;)
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 014
Modifié par KX le 10/02/2014 à 18:51
Modifié par KX le 10/02/2014 à 18:51
Oups. J'ai pas du aller jusque là. Ce matin j'ai du m'arrêter aux "horreurs" (que tu as changé depuis)
Mais dans une discussion précédente sarah! expliquait qu'il s'agissait de simuler ces mesures. Son projet a peut-être changé depuis... bref je me suis un peu emmêlé les pinceaux ;-)
Sinon effectivement les Timer serait bien pour faire ça, mais ce n'est pas vraiment accessible aux débutants.
Mais dans une discussion précédente sarah! expliquait qu'il s'agissait de simuler ces mesures. Son projet a peut-être changé depuis... bref je me suis un peu emmêlé les pinceaux ;-)
Sinon effectivement les Timer serait bien pour faire ça, mais ce n'est pas vraiment accessible aux débutants.
BunoCS
Messages postés
15472
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 mars 2024
3 894
10 févr. 2014 à 21:01
10 févr. 2014 à 21:01
Attendons le retour de sarah! ;)
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
11 févr. 2014 à 11:05
11 févr. 2014 à 11:05
Bonjour ,effectivement c'est le même projet KX et j'ai réussi a faire simuler les mesures avec le temps récupéré de timer (Thread.sleep) ou le la différence entre deux mesures est la même dans le réel ce qui fait pour simuler une journée je dois attendre 24heurs ,mnt je ne veux pas ça je veux récupéré la simulation directement c'est pour ça je pense a récupéré le journal d'horaire .
j'espère j'étais un peu clair et merci pour vos propositions
j'espère j'étais un peu clair et merci pour vos propositions
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
Modifié par sarah! le 11/02/2014 à 12:23
Modifié par sarah! le 11/02/2014 à 12:23
j'ai réussi a le faire :
mais je ne suis pas satisfaite de la résulat ors je veux controler le random
je m'explique je vous affiche un extrait de résulat la première minute :
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Temperature {
public static void main(String[] args) throws FileNotFoundException, InterruptedException{
float temperature[] = {15,14,13,13,12,11,11,12,14,16,18,20,21,22,22,22,22,21,20,19,18,17,16,15,15};
float random[] = new float[718]; //60/5=12 on suppose que chaque 5secondes on a une nouvelle valeur
for(int j=0;j<=718;j++)
{
for(int hour=0;hour<25;hour++)
{
for(int minute=0;minute<60;minute++)
{
for(int second=0;second<12;second++)
{
random [j]= (float)(Math.random() * (temperature[hour]-temperature[hour+1])) + temperature[hour+1];
System.out.printf("2014"+"-"+"01"+"-"+"01"+" "+hour+":"+minute+":"+ 5*second+"\t"+"%.1f\n",random [j]);
}
}
}
}
}
}
mais je ne suis pas satisfaite de la résulat ors je veux controler le random
je m'explique je vous affiche un extrait de résulat la première minute :
2014-01-01 0:0:0 14,5là la température ne ressemble pas a la réalité ,je veux que mon changement ne se fait pas a chaque itération ainsi de manière croissante ou décroissante ;qu'est ce que vous en pensez? merci pour votre suggestion
2014-01-01 0:0:5 14,6
2014-01-01 0:0:10 14,5
2014-01-01 0:0:15 14,0
2014-01-01 0:0:20 14,8
2014-01-01 0:0:25 14,8
2014-01-01 0:0:30 14,9
2014-01-01 0:0:35 14,4
2014-01-01 0:0:40 15,0
2014-01-01 0:0:45 14,8
2014-01-01 0:0:50 14,0
2014-01-01 0:0:55 14,2
2014-01-01 0:1:0 14,6
Utilisateur anonyme
Modifié par le père. le 11/02/2014 à 13:38
Modifié par le père. le 11/02/2014 à 13:38
Bonjour
Si tu veux avoir quelque chose de plus lisse, prends une fonction sinus par exemple.
Je ne connais pas la syntaxe Java, alors adapte:
Initialisation :
Tmoy = 18.0; // température moyenne
Amplitude =3.0; // nb de degré en plus et en moins de la moyenne
Hmax = 13*3600: // heure du max de température, en secondes. Ici, la température sera maximale à 13h
et, dans la boucle :
Temperature = Tmoy+Amplitude * cos (( hour*3600 + minute*60 + second*5 -Hmax) * 2 * pi / 86400);
Si c'est trop lisse à ton goût, tu peux ajouter un petit peu de random.
Au passage, tu aurais mieux fait de suivre le conseil de KX sur la façon de boucler sur les secondes.
Si tu veux avoir quelque chose de plus lisse, prends une fonction sinus par exemple.
Je ne connais pas la syntaxe Java, alors adapte:
Initialisation :
Tmoy = 18.0; // température moyenne
Amplitude =3.0; // nb de degré en plus et en moins de la moyenne
Hmax = 13*3600: // heure du max de température, en secondes. Ici, la température sera maximale à 13h
et, dans la boucle :
Temperature = Tmoy+Amplitude * cos (( hour*3600 + minute*60 + second*5 -Hmax) * 2 * pi / 86400);
Si c'est trop lisse à ton goût, tu peux ajouter un petit peu de random.
Au passage, tu aurais mieux fait de suivre le conseil de KX sur la façon de boucler sur les secondes.
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
Modifié par sarah! le 12/02/2014 à 13:02
Modifié par sarah! le 12/02/2014 à 13:02
Bonjour le père ,
merci pour la proposition ça l air mieux adapter a mon problème sauf que je veux limiter la température entre deux heur de mesure,
par exemple :
je déclare un tableau :
float temperature[] = {15,14,13,13,12,11,11,12,14,16,18,20,21,22,22,22,22,21,20,19,18,17,16,15};//les 24 mesure dans 24 heurs
et les mesure entre deux variable ne change pas trop et ne change pas imédiatement,votre solution est mieux adapter sauf qu elle ne respecte pas les prise de mesure entre chaque deux heur .
ou je peux vous joindre le fichier de résulat pour voir?
merci bcp
cordialemnt
sarah!
merci pour la proposition ça l air mieux adapter a mon problème sauf que je veux limiter la température entre deux heur de mesure,
par exemple :
je déclare un tableau :
float temperature[] = {15,14,13,13,12,11,11,12,14,16,18,20,21,22,22,22,22,21,20,19,18,17,16,15};//les 24 mesure dans 24 heurs
et les mesure entre deux variable ne change pas trop et ne change pas imédiatement,votre solution est mieux adapter sauf qu elle ne respecte pas les prise de mesure entre chaque deux heur .
ou je peux vous joindre le fichier de résulat pour voir?
merci bcp
cordialemnt
sarah!
Utilisateur anonyme
12 févr. 2014 à 14:35
12 févr. 2014 à 14:35
Qu'entends-tu par "limiter la température entre deux heur de mesure" ?
Tu veux dire qu'il faut absolument respecter ton tableau : 15° à minuit, 14 degrés à 1h, etc. ?
Si c'est bien ça, il te faut un tableau de 25 mesures et non pas 24. Et faire une interpolation linéaire par exemple. Est-ce bien ce que tu veux ?
Tu veux dire qu'il faut absolument respecter ton tableau : 15° à minuit, 14 degrés à 1h, etc. ?
Si c'est bien ça, il te faut un tableau de 25 mesures et non pas 24. Et faire une interpolation linéaire par exemple. Est-ce bien ce que tu veux ?
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
12 févr. 2014 à 17:26
12 févr. 2014 à 17:26
oui exactement ce que je veux ,et je suis d'accord avec le 25valeurs sauf que pour l interpolation ne marche pas je l'ai essayer sauf que les valeurs ne ressemble pas a la réalité .
Utilisateur anonyme
12 févr. 2014 à 17:37
12 févr. 2014 à 17:37
Quelle interpollation avais-tu faite ? Celle qui était àce message-ci ? Ce n'était pas de l'interpollation : c'était une valeur aléatoire compris entre deux bornes.
Veux-tu une vraie interpolation linéaire, c'est à dire une température qui diminue à vitesse constante de 15 à 14 degrés entre minuit et 1 h ? Si c'est bien ça, attention ; la température va rester constante s'il y a la même température au début et à la fin de l'heure, par exemple 13 degrés entre 2 et 3 h.
Donne une définition précise de ce que tu appelles des valeurs qui ressemblent à la réalité.
Veux-tu une vraie interpolation linéaire, c'est à dire une température qui diminue à vitesse constante de 15 à 14 degrés entre minuit et 1 h ? Si c'est bien ça, attention ; la température va rester constante s'il y a la même température au début et à la fin de l'heure, par exemple 13 degrés entre 2 et 3 h.
Donne une définition précise de ce que tu appelles des valeurs qui ressemblent à la réalité.
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
Modifié par sarah! le 12/02/2014 à 20:42
Modifié par sarah! le 12/02/2014 à 20:42
j'ai essayer cette instruction d'interpolation :
entre deux valeurs V1 et V2
le moment de changement de la température se fait aléatoirement de manière progressif ...
j'espère j'étais assez claire
et merciii bcp pour ton temps
sarah!
entre deux valeurs V1 et V2
int V1 = 14;résulat:
int V2 = 15;
int step = 60/5;
for (int i = 1; i < step; i++)
{
float interpol = (float)(i)/step;
float val = V1 * (1-interpol) + V2 * (interpol);
System.err.println("=="+val);
}
ce que je souhaite avoir :
==14.9
==14.8
==14.7
==14.6
==14.5
==14.5
==14.4
==14.3
==14.2
==14.1
==14.0
==14.9
==14.8
==14.7
==14.6
==14.5
==14.5
==14.4
==14.3
==14.2
==14.1
==14.0
==14.9
==14.8
==14.7
==14.6
==14.5
==14.5
==14.4
==14.3
==14.2
==14.1
==14.0
14.0
14.1
14.1
14.1
15.1
14.1
14.2
...
...
14.7
14.7
14.8
14.9
14.9
14.9
150.
15.0
...
le moment de changement de la température se fait aléatoirement de manière progressif ...
j'espère j'étais assez claire
et merciii bcp pour ton temps
sarah!
Utilisateur anonyme
12 févr. 2014 à 21:06
12 févr. 2014 à 21:06
le moment de changement de la température se fait aléatoirement de manière progressif
Non, ce n'est pas clair du tout, ça ne veut rien dire en français.
Un moment ne se fait ni aléatoirement, ni de manière progressive : cela n'a aucune signification.
Sinon, je note que tu as inversé V1 et V2 pour ton interpolation et que tu aurais mieux fait de commencer avec i=0
Non, ce n'est pas clair du tout, ça ne veut rien dire en français.
Un moment ne se fait ni aléatoirement, ni de manière progressive : cela n'a aucune signification.
Sinon, je note que tu as inversé V1 et V2 pour ton interpolation et que tu aurais mieux fait de commencer avec i=0
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
Modifié par sarah! le 13/02/2014 à 00:17
Modifié par sarah! le 13/02/2014 à 00:17
je vois :(
et ça ne vous dit rien ce que je veux obtenir :
genre logiquement la température ne se change pas brusquement chaque 5secondes voir plus et logiquement lorsque la température se monte elle se progresse petit a petit ,c'est ça ce que je veux dire justement je sais pas comment l'automatisé et je suis désolée de ne pas pu transmette mon idée et pour mon français la langue française n'est pas ma langue natale .
merciii mille fois et bonne nuit le père
cordialement
et ça ne vous dit rien ce que je veux obtenir :
ce que je souhaite avoir :
14.0
14.1
14.1
14.1
15.1
14.1
14.2
...
...
14.7
14.7
14.8
14.9
14.9
14.9
150.
15.0
...
genre logiquement la température ne se change pas brusquement chaque 5secondes voir plus et logiquement lorsque la température se monte elle se progresse petit a petit ,c'est ça ce que je veux dire justement je sais pas comment l'automatisé et je suis désolée de ne pas pu transmette mon idée et pour mon français la langue française n'est pas ma langue natale .
merciii mille fois et bonne nuit le père
cordialement
sarah!
Messages postés
45
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
16 juin 2014
3
14 févr. 2014 à 15:34
14 févr. 2014 à 15:34
re bonjour ,
je voulais une prise de mesure chaque 5secondes ,mais pour la valeur de température je la voulais aléatoire controler entre deux heurs .
quand vous avez mit la varialble sec+=5 j'ai remarqué que la temprérature change chaque 5minute dans mon journal résulat c'est pour ça j'ai pensé a ajouter la valeur aléatoire pour que ma valeur change aléatoirement et non pas chaque 5minutes fixe a chaque fois ,c'est tout.
ou je peux vous envoyer les deux résultat pour voir le père?
je voulais une prise de mesure chaque 5secondes ,mais pour la valeur de température je la voulais aléatoire controler entre deux heurs .
quand vous avez mit la varialble sec+=5 j'ai remarqué que la temprérature change chaque 5minute dans mon journal résulat c'est pour ça j'ai pensé a ajouter la valeur aléatoire pour que ma valeur change aléatoirement et non pas chaque 5minutes fixe a chaque fois ,c'est tout.
ou je peux vous envoyer les deux résultat pour voir le père?
14 févr. 2014 à 14:36