Algorithme aide
Dernière réponse : dans Programmation
Bonjour à tous ,
en ce moment je travaille sur un algoritme permettant la conversion seconde ou minute en heure-minute-seconde , qui pourais m'aidé jai un peu de mal à trouvé la structure de cette algorithme
merci d'avance
en ce moment je travaille sur un algoritme permettant la conversion seconde ou minute en heure-minute-seconde , qui pourais m'aidé jai un peu de mal à trouvé la structure de cette algorithme
merci d'avance
Autres pages sur : algorithme aide
Lassé par la pub ? Créez un compte
voici l'algo , le problème qui se pose cest que par exemple lorsque j'entre une valeur 3600 et jmet seconde comme unite au lieu de mettre 1h il me met 60 min et 60 seconde ( double erreur : deja il y a le faite qu'il ne devrait pas afficher 60 minute mais une heure et ensuite il y a le faite qu'il y a toujours des secondes qui se promennent le résultat est donc faut " il calcule mal" voila si vous pouviez m'aidez merci
convertir seconde ou minute en heure-minute-seconde.
1 VARIABLES
2 Seconde EST_DU_TYPE NOMBRE
3 minute EST_DU_TYPE NOMBRE
4 heure EST_DU_TYPE NOMBRE
5 Durée EST_DU_TYPE NOMBRE
6 UNITE EST_DU_TYPE CHAINE
7 DEBUT_ALGORITHME
8 AFFICHER "entrez votre valeur"
9 LIRE Durée
10 AFFICHER "entrez l'unité (seconde ou minute)"
11 LIRE UNITE
12 SI (UNITE=="seconde") ALORS
13 DEBUT_SI
14 Seconde PREND_LA_VALEUR Durée%60
15 minute PREND_LA_VALEUR floor(Durée/60)
16 Seconde PREND_LA_VALEUR minute+Seconde
17 AFFICHER "le resultat est "
18 AFFICHER minute
19 AFFICHER " min "
20 AFFICHER Seconde
21 AFFICHER " sec"
22 SI (Seconde >= 3600) ALORS
23 DEBUT_SI
24 Seconde PREND_LA_VALEUR heure+minute+Seconde
25 heure PREND_LA_VALEUR minute*60
26 AFFICHER "le resultat est "
27 AFFICHER heure
28 AFFICHER "h"
29 AFFICHER minute
30 AFFICHER "min"
31 AFFICHER Seconde
32 AFFICHER "sec"
33 FIN_SI
34 FIN_SI
35 SI (UNITE=="minute") ALORS
36 DEBUT_SI
37 minute PREND_LA_VALEUR Durée%60
38 heure PREND_LA_VALEUR floor(Durée/60)
39 minute PREND_LA_VALEUR heure+minute+Seconde
40 AFFICHER "le resultat est "
41 AFFICHER heure
42 AFFICHER "h"
43 AFFICHER minute
44 AFFICHER "min"
45 AFFICHER Seconde
46 AFFICHER "sec"
47 FIN_SI
48
49 FIN_ALGORITHME
convertir seconde ou minute en heure-minute-seconde.
1 VARIABLES
2 Seconde EST_DU_TYPE NOMBRE
3 minute EST_DU_TYPE NOMBRE
4 heure EST_DU_TYPE NOMBRE
5 Durée EST_DU_TYPE NOMBRE
6 UNITE EST_DU_TYPE CHAINE
7 DEBUT_ALGORITHME
8 AFFICHER "entrez votre valeur"
9 LIRE Durée
10 AFFICHER "entrez l'unité (seconde ou minute)"
11 LIRE UNITE
12 SI (UNITE=="seconde") ALORS
13 DEBUT_SI
14 Seconde PREND_LA_VALEUR Durée%60
15 minute PREND_LA_VALEUR floor(Durée/60)
16 Seconde PREND_LA_VALEUR minute+Seconde
17 AFFICHER "le resultat est "
18 AFFICHER minute
19 AFFICHER " min "
20 AFFICHER Seconde
21 AFFICHER " sec"
22 SI (Seconde >= 3600) ALORS
23 DEBUT_SI
24 Seconde PREND_LA_VALEUR heure+minute+Seconde
25 heure PREND_LA_VALEUR minute*60
26 AFFICHER "le resultat est "
27 AFFICHER heure
28 AFFICHER "h"
29 AFFICHER minute
30 AFFICHER "min"
31 AFFICHER Seconde
32 AFFICHER "sec"
33 FIN_SI
34 FIN_SI
35 SI (UNITE=="minute") ALORS
36 DEBUT_SI
37 minute PREND_LA_VALEUR Durée%60
38 heure PREND_LA_VALEUR floor(Durée/60)
39 minute PREND_LA_VALEUR heure+minute+Seconde
40 AFFICHER "le resultat est "
41 AFFICHER heure
42 AFFICHER "h"
43 AFFICHER minute
44 AFFICHER "min"
45 AFFICHER Seconde
46 AFFICHER "sec"
47 FIN_SI
48
49 FIN_ALGORITHME
Je t'aide: Il faut que quelle que soit l'unitée d'entrée, tu convertisses la durée en secondes. Appelons cette variable Timestamp.
De là tu peux facilement convertir en heures, minutes et secondes.
SI (UNITE=="secondes") ALORS
DEBUT_SI
Timestamp = Durée
FIN_SI
SI (UNITE=="minutes") ALORS
DEBUT_SI
Timestamp = Durée*60
FIN_SI
SI (UNITE=="heures") ALORS
DEBUT_SI
Timestamp = Durée*3600
FIN_SI
De là tu peux facilement convertir en heures, minutes et secondes.
Non, je ne traite rien en privé, sinon ce n'est pas la peine d'être sur un forum.
Le système est pourtant très simple à faire, voici le code en PHP:
Je pense que tu peux en tirer l'algo facilement.
Le système est pourtant très simple à faire, voici le code en PHP:
<?php
function duration2human($duration, $unit="s") {
$heures = 0;
$minutes = 0;
$secondes = 0;
switch($unit) {
case "h": // heures
$duration = 3600*$duration;
break;
case "m": // minutes
$duration = 60*$duration;
break;
}
if ($duration >= 3600) {
$heures = floor($duration/3600);
$duration = $duration % 3600;
}
if ($duration >= 60) {
$minutes = floor($duration/60);
$durations = $duration % 60;
}
$secondes = $duration;
return sprintf("%02dh %02dm %02ds", $heures, $minutes, $secondes);
}
Je pense que tu peux en tirer l'algo facilement.
C'est pourtant assez simple, il n'y a que des mots simples:
C'est pas bien compliqué non ?
VARIABLES
seconde EST_DU_TYPE NOMBRE
seconde PREND_VALEUR( 0 )
minute EST_DU_TYPE NOMBRE
minute PREND_VALEUR( 0 )
heure EST_DU_TYPE NOMBRE
heure PREND_VALEUR( 0 )
Durée EST_DU_TYPE NOMBRE
Unité EST_DU_TYPE CHAINE
AFFICHER "entrez votre valeur"
LIRE Durée
AFFICHER "entrez l'unité (seconde, minute ouheure)"
LIRE Unité
DEBUT_ALGORITHME
SI Unité VAUT "heure" ALORS
Durée PREND_VALEUR( Durée * 3600 )
FIN SI
SI Unité VAUT "minute" ALORS
Durée PREND_VALEUR( Durée * 60 )
FIN SI
heure PREND_VALEUR( floor(Durée / 3600) )
Durée PREND_VALEUR( Durée MODULO 3600 )
minute PREND_VALEUR( floor(Durée / 60) )
seconde PREND_VALEUR( Durée MODULO 60 )
AFFICHER "le resultat est "
AFFICHER heure
AFFICHER "h"
AFFICHER minute
AFFICHER "min"
AFFICHER Seconde
AFFICHER "sec"
FIN_ALGORITHME
C'est pas bien compliqué non ?
jai reproduis ton algo et cela ne fonctionne pas ( il maffiche : ***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***)
ps :
(jutilise algobox et par exemple la commande modulo ny est pas )
et un autre probleme lalgorithme doit permettre de convertir les secondes ou les minutes en heure minute et seconde et non pas les heures et les minutes donc si tu pouvais une derniere fois me refaire au format texte avec tout sa pris en compte ce serais gentil .
Merci encore .
***Vérifiez la syntaxe des affectations et des conditions***)
ps :
(jutilise algobox et par exemple la commande modulo ny est pas )
et un autre probleme lalgorithme doit permettre de convertir les secondes ou les minutes en heure minute et seconde et non pas les heures et les minutes donc si tu pouvais une derniere fois me refaire au format texte avec tout sa pris en compte ce serais gentil .
Merci encore .
Ok mais la en suprimant les lignes 15à 17 jme retoruve avec un si que pour les minutes
et donc quand jentre une valeur lalgo affiche le meme resultat quelque soit lunité que jai donné (seconde ou minute) donc il manque quelquechose
ex jentre 3600 seconde il mafiche 1 h
jentre 3600 minute il mafiche aussi 1 h
et donc quand jentre une valeur lalgo affiche le meme resultat quelque soit lunité que jai donné (seconde ou minute) donc il manque quelquechose
ex jentre 3600 seconde il mafiche 1 h
jentre 3600 minute il mafiche aussi 1 h
stp envoie un algo bete et mechant au format texte toi la tu as redigé un algo en partant du principe que si cetais pas les minutes cetais les secondes etccc
si tu peux me passer un algo simple un peu comme celui que javais commencer avec les conditions pour les secondes et celles pour les minutes tous simplement.
merci j'espere qu'on va finir par y arriver
lol
si tu peux me passer un algo simple un peu comme celui que javais commencer avec les conditions pour les secondes et celles pour les minutes tous simplement.
merci j'espere qu'on va finir par y arriver
lol
Ok, alors je vais te le refaire et tu vas voir que ça ne change quasi rien.
Et maintenant je clos, parce que tu ne fais pas le moindre effort.
VARIABLES
seconde EST_DU_TYPE NOMBRE
seconde PREND_VALEUR( 0 )
minute EST_DU_TYPE NOMBRE
minute PREND_VALEUR( 0 )
heure EST_DU_TYPE NOMBRE
heure PREND_VALEUR( 0 )
Durée EST_DU_TYPE NOMBRE
Unité EST_DU_TYPE CHAINE
AFFICHER "entrez votre valeur"
LIRE Durée
AFFICHER "entrez l'unité (seconde ou minute)"
LIRE Unité
DEBUT_ALGORITHME
SI Unité VAUT "minute" ALORS
Durée PREND_VALEUR( Durée * 60 )
FIN SI
SI Unité VAUT "seconde" ALORS
Durée PREND_VALEUR( Durée )
FIN SI
heure PREND_VALEUR( floor(Durée / 3600) )
Durée PREND_VALEUR( Durée MODULO 3600 )
minute PREND_VALEUR( floor(Durée / 60) )
seconde PREND_VALEUR( Durée MODULO 60 )
AFFICHER "le resultat est "
AFFICHER heure
AFFICHER "h"
AFFICHER minute
AFFICHER "min"
AFFICHER Seconde
AFFICHER "sec"
FIN_ALGORITHME
Et maintenant je clos, parce que tu ne fais pas le moindre effort.
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :