« Ex 4.6 » : différence entre les versions

De TravauxIndse
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
==Énoncer de l'exercice :==
==Énoncé de l'exercice :==
Écrivez un programme qui convertit un nombre entier de secondes fourni au départ en
Écrivez un programme qui convertit un nombre entier de secondes fourni au départ en
un nombre d’années, de mois, de jours, de minutes et de secondes (utilisez l’opérateur
un nombre d’années, de mois, de jours, de minutes et de secondes (utilisez l’opérateur

Dernière version du 4 avril 2011 à 13:32

Énoncé de l'exercice :[modifier]

Écrivez un programme qui convertit un nombre entier de secondes fourni au départ en un nombre d’années, de mois, de jours, de minutes et de secondes (utilisez l’opérateur modulo : %).

Solutions de cet exercices :[modifier]

  • Solution de Cyril Dewez :
nbsec=int(input("Entrez un nombre de secondes et vous verez ...   "))
nbans=nbsec//31104000 #le chiffre c'est le nombre de seconde dans un an
resteans=nbsec%31104000
print(nbans, end=(" Année(s), "))
nbmois=resteans//2592000
restemois=resteans%2592000
print(nbmois, end=(" Mois, "))
nbjour=restemois//86400
restejour=restemois%86400
print(nbjour, end=(" Jour(s), "))
nbheure=restejour//3600
resteheure=restejour%3600
print(nbheure, end=(" Heure(s), "))
nbminute=resteheure//60
resteminute=resteheure%60
print(nbminute, end=(" Minute(s), "))
print(resteminute, end=(" Seconde(s)."))
  • Solution de Gérard Swinnen :
# Le nombre de secondes est fourni au départ : 
# (un grand nombre s'impose !) 
nsd = 12345678912 
# Nombre de secondes dans une journée : 
nspj = 3600 * 24 
# Nombre de secondes dans un an (soit 365 jours - 
# on ne tiendra pas compte des années bissextiles) : 
nspa = nspj * 365 
# Nombre de secondes dans un mois (en admettant 
# pour chaque mois une durée identique de 30 jours) : 
nspm = nspj * 30 
# Nombre d'années contenues dans la durée fournie : 
na = nsd // nspa        # division <entière> 
nsr = nsd % nspa        # n. de sec. restantes 
# Nombre de mois restants : 
nmo = nsr // nspm       # division <entière> 
nsr = nsr % nspm        # n. de sec. restantes 
# Nombre de jours restants : 
nj = nsr // nspj        # division <entière> 
nsr = nsr % nspj        # n. de sec. restantes 
# Nombre d'heures restantes : 
nh = nsr // 3600        # division <entière> 
nsr = nsr % 3600        # n. de sec. restantes 
# Nombre de minutes restantes : 
nmi = nsr // 60         # division <entière> 
nsr = nsr % 60          # n. de sec. restantes 
print("Nombre de secondes à convertir :", nsd) 
print("Cette durée correspond à", na, "années de 365 jours, plus") 
print(nmo, "mois de 30 jours,", end=' ') 
print(nj, "jours,", end=' ') 
print(nh, "heures,", end=' ') 
print(nmi, "minutes et", end=' ') 
print(nsr, "secondes.")